$fields = $_POST['fields']; $date = new SymDate($Admin->getConfigVar("time_zone", "region"), $Admin->getConfigVar("date_format", "region")); ##Make sure all required fields are filled $required = array('name', 'source'); for ($i = 0; $i < count($required); $i++) { if (trim($fields[$required[$i]]) == "") { $errors[$required[$i]] = true; } } if (is_array($errors)) { define("__SYM_ENTRY_MISSINGFIELDS__", true); } else { $defines = array(); $fields['name'] = str_replace(array('\'', '"'), "", $fields['name']); $handle = General::createFileName($fields['name'], $Admin->getConfigVar('handle_length', 'admin'), '_'); $rootelement = General::createFileName($fields['name'], $Admin->getConfigVar('handle_length', 'admin'), '-'); $classname = ucfirst($handle); $source = $fields['source']; $var = array('HANDLE' => $handle, 'ROOT-ELEMENT' => $rootelement, 'CLASS NAME' => $classname, 'NAME' => $fields['name'], 'DESCRIPTION' => "", 'AUTHOR-NAME' => $Admin->getAuthorName(), 'AUTHOR-WEBSITE' => General::validateURL(URL), 'AUTHOR-EMAIL' => $Admin->getAuthorEmail(), 'VERSION' => "1.0", 'RELEASE DATE' => date("Y-m-d H:i:s", $date->get(true, false))); $xml_elements = array(); if (is_array($fields['xml-elements']) && !empty($fields['xml-elements'])) { foreach ($fields['xml-elements'] as $f) { $f = trim($f, '[]'); $bits = preg_split('/\\]\\[/i', $f, -1, PREG_SPLIT_NO_EMPTY); list($group, $element) = $bits; $xml_elements[$group][] = $element; } } switch ($source) { case "authors": $defines['status'] = $fields['status'];
if (array_key_exists("save", $_POST['action']) || array_key_exists("done", $_POST['action'])) { ##Split open the POST var into $fields & $hierarchy extract($_POST); ##Make sure all required fields are filled $required = array('name', 'body'); for ($i = 0; $i < count($required); $i++) { if (trim($fields[$required[$i]]) == "") { $errors[$required[$i]] = true; } } if (is_array($errors)) { define("__SYM_ENTRY_MISSINGFIELDS__", true); } else { $fields["data_sources"] = @implode(",", $fields["data_sources"]); $fields["events"] = @implode(",", $fields["events"]); $fields['name'] = General::createFileName(trim($fields['name'])); $file = WORKSPACE . "/masters/" . $fields['name'] . ".xsl"; if ($_REQUEST['file'] != $fields['name'] && @is_file($file)) { $Admin->pageAlert("duplicate", array("A Page Master", "name"), false, 'error'); } elseif (!($write = General::writeFile($file, $fields['body'], $Admin->getConfigVar("write_mode", "file")))) { $Admin->pageAlert("write-failed", array("Page Master"), false, 'error'); } else { $id = $DB->fetchVar("id", 0, "SELECT `id` FROM tbl_masters WHERE `name` = '" . $_REQUEST['file'] . "'"); ##No longer need the body text unset($fields['body']); ##Insert the new data if (!$DB->update($fields, "tbl_masters", "WHERE `id` = '{$id}'")) { define("__SYM_DB_INSERT_FAILED__", true); } else { $DB->query("UPDATE `tbl_pages` SET `master` = '" . $fields['name'] . ".xsl' WHERE `master` = '" . $_REQUEST['file'] . ".xsl'"); ##Ensure our metadata for the template is set
***/ if (array_key_exists("save", $_POST['action']) || array_key_exists("done", $_POST['action'])) { ##Split open the POST var into $fields extract($_POST); ##Make sure all required fields are filled $required = array('name', 'body'); for ($i = 0; $i < count($required); $i++) { if (trim($fields[$required[$i]]) == "") { $errors[$required[$i]] = true; } } if (is_array($errors)) { define("__SYM_ENTRY_MISSINGFIELDS__", true); } else { $fields['type'] = strtolower($fields['type']); $fields['name'] = General::createFileName($fields['name']); $file_rel = str_replace("workspace/", "", $fields['location']) . $fields['name']; $file = DOCROOT . "/" . $fields['location'] . $fields['name']; if ($_REQUEST['file'] != "/" . $file_rel && @is_file($file)) { $Admin->pageAlert("duplicate", array("An Asset", "name"), false, 'error'); } elseif (!($write = General::writeFile($file, $fields['body'], $Admin->getConfigVar("write_mode", "file")))) { $Admin->pageAlert("write-failed", array("Asset"), false, 'error'); } else { if ($file != WORKSPACE . $_REQUEST['file']) { unlink(WORKSPACE . $_REQUEST['file']); } ### # Delegate: Edit # Description: After saving the asset, the file path is provided. $CampfireManager->notifyMembers('Edit', CURRENTPAGE, array("file" => $file)); if (@array_key_exists("save", $_POST['action'])) {