TOOL_IMDBWEB_SEARCH, 'showFields' => TOOL_IMDBWEB_FIELDS, 'storage' => PATH_SYSTEMOUT, 'browserAgent' => TOOL_IMDBWEB_BROWSER_AGENT, 'browserLang' => TOOL_IMDBWEB_BROWSER_ACCEPT_LANG, 'browserAccept' => TOOL_IMDBWEB_BROWSER_ACCEPT, 'debug' => false )); $TemplateData['movieData'] = array(); $TemplateData['saveToSelection'] = ''; $TemplateData['showMatchingForm'] = false; // prepare fields to save into selection // create one time and then reuse it $collectionFields = $ManangeCollectionsFields->getExistingFields(false, true); if(!empty($collectionFields)) { foreach ($collectionFields as $k=>$v) { $TemplateData['saveToSelection'] .= "\n"; } } if(isset($_POST['submitFormSearch'])) { $fdata = $_POST['fdata']; if (!empty($fdata)) { $search = trim($fdata['search']); $search = Summoner::validate($search) ? $search : false; if(!empty($search)) { try { $IMDB->search($search); } catch (Exception $e) { if(DEBUG) Summoner::sysLog("[DEBUG] imdb search catch: ".$e->getMessage()); } if ($IMDB->isReady) { $TemplateData['movieData'] = $IMDB->getAll(); $TemplateData['movieImdbId'] = "tt".$IMDB->iId; // this is the IMDB id you can search for $TemplateData['showMatchingForm'] = true; } else { $TemplateData['message']['content'] = $I18n->t('global.message.nothingFound'); $TemplateData['message']['status'] = "error"; } } else { $TemplateData['message']['content'] = $I18n->t('global.message.invalidSearchTerm'); $TemplateData['message']['status'] = "error"; } } } if(isset($_POST['submitFormSave'])) { $fdata = $_POST['fdata']; if (!empty($fdata)) { $_imdbId = $fdata['imdbId']; $_imdbId = Summoner::validate($_imdbId,'nospace') ? $_imdbId : false; if(!empty($_imdbId)) { try { $IMDB->search($_imdbId); // cache used } catch (Exception $e) { if(DEBUG) Summoner::sysLog("[DEBUG] imdb search catch: ".$e->getMessage()); } if ($IMDB->isReady) { $TemplateData['movieImdbId'] = $_imdbId; $_movieData = $IMDB->getAll(); // build data array based on submit // see creation log for structure $_data = array(); foreach($fdata['into'] as $k=>$v) { if(!empty($v)) { $_t = $IMDB->$k(); // multiple selections format for field type lookup_multiple if(strstr($_t, $IMDB->sSeparator)) { $_t = str_replace($IMDB->sSeparator,",", $_t); } if(isset($collectionFields[$v])) { $_data[$v] = $collectionFields[$v]; $_data[$v]['valueToSave'] = $_t; } } } $_r = $Tools->getDefaultCreationInfo(); if(!empty($TemplateData['editEntry'])) { // update existing one $do = $Manageentry->create($_data, $_r['id'], $_r['group'], $_r['rights'], $TemplateData['editEntry']['id'] ); $TemplateData['message']['content'] = $I18n->t('global.message.dataSaved'); } else { // create into loaded collection $do = $Manageentry->create($_data, $_r['id'], $_r['group'], $_r['rights'] ); $TemplateData['message']['content'] = $I18n->t('global.message.dataSaved')." ".$I18n->t('global.view').""; } if(!empty($do)) { $TemplateData['message']['status'] = "success"; } else { $TemplateData['message']['content'] = $I18n->t('global.message.couldNotBeSaved'); $TemplateData['message']['status'] = "error"; } } else { $TemplateData['message']['content'] = $I18n->t('global.message.nothingFound'); $TemplateData['message']['status'] = "error"; } } else { $TemplateData['message']['content'] = "IMDB search result information lost."; $TemplateData['message']['status'] = "error"; } } } /** * Helper function. Takes the prebuild options for the target selection field and search for a matching key. * Since the optionString is prebuild, avoiding looping over and over again, the selection needs to be done * by search and replace. * Checks if TOOL_IMDBWEB_FIELDS_TO is defined and a matching key=>value pair is available * * @param string $optionString * @param string $imdbKey * @return string */ function toolMethod_GetTargetSelection(string $optionString, string $imdbKey): string { if(defined('TOOL_IMDBWEB_FIELDS_TO') & !empty($imdbKey)) { if(isset(TOOL_IMDBWEB_FIELDS_TO[$imdbKey])) { $_k = "sel_".TOOL_IMDBWEB_FIELDS_TO[$imdbKey]; $optionString = str_replace($_k,'selected="selected"',$optionString); } } return $optionString; }