load($_collection, "write");
if(!empty($TemplateData['loadedCollection'])) {
$ManageEntry->setCollection($Trite->param('id'));
$TemplateData['editFields'] = $ManageEntry->getEditFields();
$TemplateData['availableTools'] = $Trite->getAvailableTools();
$TemplateData['pageTitle'] = 'Add - '.$Trite->param('name');
if(!empty($_id)) {
$TemplateData['storagePath'] = PATH_WEB_STORAGE . '/' . $_collection . '/' . $_id;
// prefill template data. Used also later to check if on edit mode
$TemplateData['editData'] = $ManageEntry->getEditData($_id);
// special case. Title field should be always available.
if(!isset($TemplateData['editData']['title'])) {
$TemplateData['message']['content'] = $I18n->t('manageentry.message.noTitle');
$TemplateData['message']['status'] = "error";
}
else {
$TemplateData['pageTitle'] = 'Edit - '.$TemplateData['editData']['title'].' - '.$Trite->param('name');
$TemplateData['possibleDuplicates'] = $ManageEntry->checkForDuplicates($TemplateData['editData']);
}
}
if(isset($_POST['submitForm'])) {
$fdata = $_POST['fdata'];
$fupload = array('name' => ''); // match $_FILES
if(!empty($_FILES) && isset($_FILES['fdata'])) {
$fupload = $_FILES['fdata'];
}
$_fieldsToSave = array();
if (!empty($fdata)) {
// default
$_owner = $Doomguy->param('id');
$_group = $Trite->param('group');
$_rights = $Trite->param('rights');
if(!empty($fdata['rights'])) {
$_rightsString = Summoner::prepareRightsString($fdata['rights']);
if(!empty($_rightsString)) {
$_rights = $_rightsString;
}
}
foreach ($TemplateData['editFields'] as $fieldId=>$fieldData) {
if(isset($fdata[$fieldData['identifier']])) {
$_value = trim($fdata[$fieldData['identifier']]);
$fieldData['valueToSave'] = trim($fdata[$fieldData['identifier']]);
$_fieldsToSave[$fieldData['identifier']] = $fieldData;
} elseif(isset($fupload['name'][$fieldData['identifier']])) { // special case upload
if(isset($fdata[$fieldData['identifier']."_delete"])) {
$fieldData['deleteData'] = $fdata[$fieldData['identifier']."_delete"];
}
// $_FILES data is combined if multiple
$fieldData['uploadData'] = $fupload;
$_fieldsToSave[$fieldData['identifier']] = $fieldData;
}
}
// special case. Title field should be always available.
if(!empty($TemplateData['editData']['title'])) { // EDIT
if(isset($fdata['doDelete'])) {
$do = $ManageEntry->delete($_id);
if ($do === true) {
$TemplateData['refresh'] = 'index.php?p=collections&collection='.$_collection;
} else {
$TemplateData['message']['content'] = $I18n->t('manageentry.message.couldNotBeRemoved');
$TemplateData['message']['status'] = "error";
}
} elseif (!empty($_fieldsToSave) && isset($_fieldsToSave['title'])) {
$do = $ManageEntry->create($_fieldsToSave, $_owner, $_group, $_rights, $_id);
if ($do !== 0) {
$TemplateData['refresh'] = 'index.php?p=entry&collection='.$_collection.'&id='.$_id;
} else {
$TemplateData['message']['content'] = $I18n->t('manageentry.message.couldNotBeUpdated');
$TemplateData['message']['status'] = "error";
}
}
}
else { // ADD
// special case. Title field should be always available.
if (!empty($_fieldsToSave) && !empty($_fieldsToSave['title']['valueToSave'])) {
$do = $ManageEntry->create($_fieldsToSave, $_owner, $_group, $_rights);
if (!empty($do)) {
$TemplateData['message']['content'] = "".$I18n->t('manageentry.message.viewNewEntry')."
| ".$I18n->t('manageentry.message.editNewEntry')."";
$TemplateData['message']['status'] = "success";
} else {
// use editData to display given data
$TemplateData['editData'] = $fdata;
$TemplateData['message']['content'] = $I18n->t('manageentry.message.couldNotBeAdded');
$TemplateData['message']['status'] = "error";
}
} else {
// use editData to display given data
$TemplateData['editData'] = $fdata;
$TemplateData['message']['content'] = $I18n->t('manageentry.message.missingTitle');
$TemplateData['message']['status'] = "error";
}
}
}
}
}
else {
$TemplateData['message']['content'] = $I18n->t('global.message.couldNotLoadCollection');
$TemplateData['message']['status'] = "error";
$TemplateData['existingCollections'] = $Trite->getCollections("write");
}
}
else {
$TemplateData['pageTitle'] .= 'collection overview';
$TemplateData['existingCollections'] = $Trite->getCollections("write");
}