TOOL_BRAINZ_RESULT_LIMIT, 'browserAgent' => TOOL_BRAINZ_BROWSER_AGENT, 'browserLang' => TOOL_BRAINZ_BROWSER_ACCEPT_LANG, 'browserAccept' => TOOL_BRAINZ_BROWSER_ACCEPT, 'debug' => false )); $TemplateData['releases'] = array(); $TemplateData['release'] = array(); $TemplateData['saveToSelection'] = ''; // 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)) { $artist = trim($fdata['artist']); $artist = Summoner::validate($artist) ? $artist : false; $album = trim($fdata['album']); $album = Summoner::validate($album) ? $album : false; if(!empty($artist) && !empty($album)) { $releaseSearch = $Brainz->searchForRelease($artist, $album); if(!empty($releaseSearch)) { $TemplateData['releases'] = $releaseSearch; } 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['submitFormReleaseSelect'])) { if (isset($_POST['fdata'])) { $fdata = $_POST['fdata']; if (!empty($fdata)) { $releaseId = $fdata['rselect']; if(!empty($releaseId)) { $releaseInfo = $Brainz->getReleaseInfo($releaseId); if(!empty($releaseInfo)) { $TemplateData['release'] = $releaseInfo; } else { $TemplateData['message']['content'] = $I18n->t('global.message.nothingFound'); $TemplateData['message']['status'] = "error"; } } } } else { $TemplateData['message']['content'] = "Invalid selection"; $TemplateData['message']['status'] = "error"; } } if(isset($_POST['submitFormSave'])) { $fdata = $_POST['fdata']; if (!empty($fdata)) { // build data array based on submit // see creation log for structure $_data = array(); foreach($fdata['into'] as $k=>$v) { if(!empty($v) && isset($fdata['from'][$k])) { if(isset($collectionFields[$v])) { $_data[$v] = $collectionFields[$v]; $_data[$v]['valueToSave'] = $fdata['from'][$k]; // special case for image if($k == "image") { $fieldData = array(); $_f = $Brainz->downloadCover($fdata['from'][$k]); if($_f && is_file($_f)) { $_e = UPLOAD_ERR_OK; // build _FILES based on regular add form $fieldData['name'][$_data[$v]['identifier']] = 'cover.jpg'; $fieldData['type'][$_data[$v]['identifier']] = mime_content_type($_f); $fieldData['size'][$_data[$v]['identifier']] = filesize($_f); $fieldData['tmp_name'][$_data[$v]['identifier']] = $_f; $fieldData['error'][$_data[$v]['identifier']] = UPLOAD_ERR_OK; $fieldData['rebuildUpload'][$_data[$v]['identifier']] = true; } $_data[$v]['uploadData'] = $fieldData; } } } } $_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"; } // remove tmp file if(isset($_f) && is_file($_f) && file_exists($_f)) { unlink($_f); } } } /** * 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_BRAINZ_FIELDS_TO is defined and a matching key=>value pair is available * * @param string $optionString * @param string $key * @return string */ function toolMethod_GetTargetSelection(string $optionString, string $key): string { if(defined('TOOL_BRAINZ_FIELDS_TO') & !empty($key)) { if(isset(TOOL_BRAINZ_FIELDS_TO[$key])) { $_k = "sel_".TOOL_BRAINZ_FIELDS_TO[$key]; $optionString = str_replace($_k,'selected="selected"',$optionString); } } return $optionString; }