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;
}