public function saveBlock() { $io = new FileIO(); //Build the file name from the bucket path (includes the bucket extension) //and the block id. $filename = Constants::GET_PAGES_DIRECTORY() . '/' . $this->getBucketId() . '/' . $this->getBlockId() . '.incl'; $serialized = serialize($this); $io = new FileIO(); $io->writeFile($filename, $serialized); }
public function appendScoreboardInfo(&$charData, &$dynData) { $home = getenv("HOME"); $filePath = "{$home}/.blaventure/{$charData->nick}.scoreboard"; // Delete the current save game. $charFilePath = "{$home}/.blaventure/{$charData->nick}.char"; $mapFilePath = "{$home}/.blaventure/{$charData->nick}.map"; unlink($charFilePath); unlink($mapFilePath); // Dynasty management. $thisCharGold = $charData->gold; $dynData->gold += $thisCharGold; $dynFilePath = "{$home}/.blaventure/{$charData->nick}.dynasty"; if (file_exists($dynFilePath)) { FileIO::WriteFile($dynData, $dynFilePath); } // Scoreboard management. $currentTop = null; if (file_exists($filePath)) { $currentTop = FileIO::UnserializeFile($filePath); } $textOutput = " You gained {$thisCharGold} GP for your Dynasty!"; if (is_null($currentTop) || $charData->level > $currentTop->level) { FileIO::WriteFile($charData, $filePath); $textOutput .= " HIGH SCORE!"; } return "{$textOutput}"; }
public function load($bucketid) { $io = new FileIO(); $bucketConfigString = $io->readFile(Constants::GET_PAGES_DIRECTORY() . '/' . $bucketid . '/.bucket'); $config = unserialize($bucketConfigString); if (isset($config['type'])) { $type = $config['type']; switch ($type) { case BucketTypes::Text: return $this->buildTextBucket($config); break; case BucketTypes::Blog: return $this->buildBlogBucket($config); break; default: break; } } }
public function delete($blnRemovePhysical = FALSE) { self::$object = "ElementFieldBigText"; self::$table = "pcms_element_field_bigtext"; if ($blnRemovePhysical) { //*** Get TemplateField. $objElementField = ElementField::selectByPk($this->fieldId); if (is_object($objElementField)) { $objTemplateField = TemplateField::selectByPk($objElementField->getTemplateFieldId()); switch ($objTemplateField->getTypeId()) { case FIELD_TYPE_FILE: case FIELD_TYPE_IMAGE: //*** Get remote settings. $strServer = Setting::getValueByName('ftp_server'); $strUsername = Setting::getValueByName('ftp_username'); $strPassword = Setting::getValueByName('ftp_password'); $strRemoteFolder = Setting::getValueByName('ftp_remote_folder'); //*** Remove deleted files. $objFtp = new FTP($strServer); $objFtp->login($strUsername, $strPassword); $objFtp->pasv(TRUE); $arrValues = explode("\n", $this->value); foreach ($arrValues as $value) { if (!empty($value)) { //*** Find file name. $arrFile = explode(":", $value); if (count($arrFile) > 1) { //*** Check if the file is used by other elements. if (!ElementField::fileHasDuplicates($value, 1)) { //*** Remove files. $strFile = $strRemoteFolder . $arrFile[1]; $objFtp->delete($strFile); if ($objTemplateField->getTypeId() == FIELD_TYPE_IMAGE) { //*** Remove template settings files. $objImageField = new ImageField($objElementField->getTemplateFieldId()); $arrSettings = $objImageField->getSettings(); foreach ($arrSettings as $key => $arrSetting) { if (!empty($arrSetting['width']) || !empty($arrSetting['height'])) { //*** Remove file. $strFile = $strRemoteFolder . FileIO::add2Base($arrFile[1], $arrSetting['key']); $objFtp->delete($strFile); } } } } } } } break; } } } return parent::delete(); }
public static function WriteFile($saveData, $filePath) { if (!FileIO::CanLockFile($filePath)) { echo "WARNING: File is in use. Wait a second and try again.\n"; exit(15); } $handle = fopen($filePath, "w"); $serialData = serialize($saveData); fwrite($handle, $serialData); fclose($handle); }
public function getSrc($strApiName = "") { $strReturn = ""; if (empty($strApiName) || count($this->__settings) < 2) { $strReturn = $this->__path . $this->__src; } else { foreach ($this->__settings as $arrSetting) { if ($arrSetting['api'] == $strApiName) { $strReturn = $this->__path . FileIO::add2Base($this->__src, $arrSetting['key']); break; } } } return $strReturn; }
function parsePages($intElmntId, $strCommand) { global $objLang, $_CLEAN_POST, $objLiveUser, $_CONF, $_PATHS, $DBAConn, $objMultiUpload; $objTpl = new HTML_Template_IT($_PATHS['templates']); $blnUiError = Request::get('err', 0); switch ($strCommand) { case CMD_LIST: $objTpl->loadTemplatefile("multiview.tpl.htm"); $objTpl->setVariable("MAINTITLE", $objLang->get("pcmsElements", "menu")); $objElement = Element::selectByPK($intElmntId); if (empty($intElmntId)) { $strElmntName = "Website"; } else { if (is_object($objElement)) { $strElmntName = $objElement->getName(); } else { $strElmntName = ""; } } if (is_object($objElement) || empty($intElmntId)) { if (empty($intElmntId)) { $objElements = Elements::getFromParent(0, false); } else { $objElements = $objElement->getElements(false); } if (is_object($objElements)) { //*** Initiate child element loop. $listCount = 0; $intPosition = request("pos"); $intPosition = !empty($intPosition) && is_numeric($intPosition) ? $intPosition : 0; $intPosition = floor($intPosition / $_SESSION["listCount"]) * $_SESSION["listCount"]; $objElements->seek($intPosition); //*** Loop through the elements. foreach ($objElements as $objSubElement) { //if (Permissions::hasElementPermission(SPINCMS_ELEMENTS_READ, $objSubElement)) { $objTemplate = Template::selectByPK($objSubElement->getTemplateId(), array('name')); $strMeta = $objLang->get("editedBy", "label") . " " . $objSubElement->getUsername() . ", " . Date::fromMysql($objLang->get("datefmt"), $objSubElement->getModified()); $objTpl->setCurrentBlock("multiview-item"); if ($objSubElement->getTypeId() != ELM_TYPE_LOCKED) { $objTpl->setVariable("BUTTON_DUPLICATE", $objLang->get("duplicate", "button")); $objTpl->setVariable("BUTTON_DUPLICATE_HREF", "javascript:PElement.duplicate({$objSubElement->getId()});"); $objTpl->setVariable("BUTTON_REMOVE", $objLang->get("delete", "button")); $objTpl->setVariable("BUTTON_REMOVE_HREF", "javascript:PElement.remove({$objSubElement->getId()});"); } $objTpl->setVariable("MULTIITEM_VALUE", $objSubElement->getId()); //if (Permissions::hasElementPermission(SPINCMS_ELEMENTS_WRITE, $objSubElement)) { $objTpl->setVariable("MULTIITEM_HREF", "href=\"?cid=" . NAV_PCMS_ELEMENTS . "&eid={$objSubElement->getId()}&cmd=" . CMD_EDIT . "\""); //} else { // $objTpl->setVariable("MULTIITEM_HREF", ""); //} if ($objSubElement->getActive() < 1) { $objTpl->setVariable("MULTIITEM_ACTIVE", " class=\"inactive\""); } $strValue = htmlspecialchars($objSubElement->getName()); $strShortValue = getShortValue($strValue, 50); $intSize = strlen($strValue); $objTpl->setVariable("MULTIITEM_NAME", $intSize > 50 ? $strShortValue : $strValue); $objTpl->setVariable("MULTIITEM_TITLE", $intSize > 50 ? $strValue : ""); $strTypeClass = ""; if ($objSubElement->getTypeId() == ELM_TYPE_FOLDER) { $strTypeClass = "folder"; } else { $objChildElements = $objSubElement->getElements(); if (is_object($objChildElements) && $objChildElements->count() > 0) { switch ($objSubElement->getTypeId()) { case ELM_TYPE_DYNAMIC: $strTypeClass = "widget-dynamic"; break; case ELM_TYPE_LOCKED: $strTypeClass = "widget-locked"; break; default: $strTypeClass = "widget"; } } else { switch ($objSubElement->getTypeId()) { case ELM_TYPE_DYNAMIC: $strTypeClass = "element-dynamic"; break; case ELM_TYPE_LOCKED: $strTypeClass = "element-locked"; break; default: $strTypeClass = "element"; } } } $objTpl->setVariable("MULTIITEM_TYPE_CLASS", $strTypeClass); if (is_object($objTemplate)) { $objTpl->setVariable("MULTIITEM_TYPE", ", " . $objTemplate->getName()); } $objTpl->setVariable("MULTIITEM_META", $strMeta); $objTpl->parseCurrentBlock(); $listCount++; if ($listCount >= $_SESSION["listCount"]) { break; } //} } //*** Render page navigation. $pageCount = ceil($objElements->count() / $_SESSION["listCount"]); if ($pageCount > 0) { $currentPage = ceil(($intPosition + 1) / $_SESSION["listCount"]); $previousPos = $intPosition - $_SESSION["listCount"] > 0 ? $intPosition - $_SESSION["listCount"] : 0; $nextPos = $intPosition + $_SESSION["listCount"] < $objElements->count() ? $intPosition + $_SESSION["listCount"] : $intPosition; $objTpl->setVariable("PAGENAV_PAGE", sprintf($objLang->get("pageNavigation", "label"), $currentPage, $pageCount)); $objTpl->setVariable("PAGENAV_PREVIOUS", $objLang->get("previous", "button")); $objTpl->setVariable("PAGENAV_PREVIOUS_HREF", "?cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}&pos={$previousPos}"); $objTpl->setVariable("PAGENAV_NEXT", $objLang->get("next", "button")); $objTpl->setVariable("PAGENAV_NEXT_HREF", "?cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}&pos={$nextPos}"); //*** Top page navigation. for ($intCount = 0; $intCount < $pageCount; $intCount++) { $objTpl->setCurrentBlock("multiview-pagenavitem-top"); $position = $intCount * $_SESSION["listCount"]; if ($intCount != $intPosition / $_SESSION["listCount"]) { $objTpl->setVariable("PAGENAV_HREF", "href=\"?cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}&pos={$position}\""); } $objTpl->setVariable("PAGENAV_VALUE", $intCount + 1); $objTpl->parseCurrentBlock(); } //*** Bottom page navigation. for ($intCount = 0; $intCount < $pageCount; $intCount++) { $objTpl->setCurrentBlock("multiview-pagenavitem-bottom"); $position = $intCount * $_SESSION["listCount"]; if ($intCount != $intPosition / $_SESSION["listCount"]) { $objTpl->setVariable("PAGENAV_HREF", "href=\"?cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}&pos={$position}\""); } $objTpl->setVariable("PAGENAV_VALUE", $intCount + 1); $objTpl->parseCurrentBlock(); } } } } //*** Render list action pulldown. if (!is_object($objElement) || $objElement->getTypeId() != ELM_TYPE_LOCKED) { $arrActions[$objLang->get("choose", "button")] = 0; $arrActions[$objLang->get("delete", "button") . " "] = "delete"; $arrActions[$objLang->get("duplicate", "button") . " "] = "duplicate"; $arrActions[$objLang->get("activate", "button") . " "] = "activate"; $arrActions[$objLang->get("deactivate", "button") . " "] = "deactivate"; if (is_object($objElement)) { $arrActions[$objLang->get("export", "button") . " "] = "export"; } foreach ($arrActions as $key => $value) { $objTpl->setCurrentBlock("multiview-listactionitem"); $objTpl->setVariable("LIST_ACTION_TEXT", $key); $objTpl->setVariable("LIST_ACTION_VALUE", $value); $objTpl->parseCurrentBlock(); } } //*** Render the rest of the page. $objTpl->setCurrentBlock("multiview"); $objTpl->setVariable("ACTIONS_OPEN", $objLang->get("pcmsOpenActionsMenu", "menu")); $objTpl->setVariable("ACTIONS_CLOSE", $objLang->get("pcmsCloseActionsMenu", "menu")); $objTpl->setVariable("LIST_LENGTH_HREF_10", "href=\"?list=10&cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}\""); $objTpl->setVariable("LIST_LENGTH_HREF_25", "href=\"?list=25&cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}\""); $objTpl->setVariable("LIST_LENGTH_HREF_100", "href=\"?list=100&cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}\""); switch ($_SESSION["listCount"]) { case 10: $objTpl->setVariable("LIST_LENGTH_HREF_10", ""); break; case 25: $objTpl->setVariable("LIST_LENGTH_HREF_25", ""); break; case 100: $objTpl->setVariable("LIST_LENGTH_HREF_100", ""); break; } $objTpl->setVariable("LIST_LENGTH_HREF", "&cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}"); if (!is_object($objElement) || $objElement->getTypeId() != ELM_TYPE_LOCKED) { $objTpl->setVariable("LIST_WITH_SELECTED", $objLang->get("withSelected", "label")); $objTpl->setVariable("BUTTON_LIST_SELECT", $objLang->get("selectAll", "button")); $objTpl->setVariable("BUTTON_LIST_SELECT_HREF", "javascript:PElement.multiSelect()"); $objTpl->setVariable("LIST_ACTION_ONCHANGE", "PElement.multiDo(this, this[this.selectedIndex].value)"); } $objTpl->setVariable("LIST_ITEMS_PER_PAGE", $objLang->get("itemsPerPage", "label")); if (!isset($objElement) || $objElement->getTypeId() != ELM_TYPE_DYNAMIC && $objElement->getTypeId() != ELM_TYPE_LOCKED) { $objTpl->setVariable("BUTTON_NEWSUBJECT", $objLang->get("newElement", "button")); $objDefaultLang = ContentLanguage::getDefault(); if (!is_object($objDefaultLang)) { $objTpl->setVariable("BUTTON_NEWSUBJECT_HREF", "javascript:alert('" . $objLang->get("elementBeforeLanguage", "alert") . "')"); } else { $objTpl->setVariable("BUTTON_NEWSUBJECT_HREF", "?cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}&cmd=" . CMD_ADD); } $objTpl->setVariable("BUTTON_NEWFOLDER", $objLang->get("newFolder", "button")); $objTpl->setVariable("BUTTON_NEWFOLDER_HREF", "?cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}&cmd=" . CMD_ADD_FOLDER); if ($objLiveUser->checkRight($_CONF['app']['navRights'][NAV_PCMS_TEMPLATES] == true)) { $objTpl->setVariable("BUTTON_EXPORT_ELEMENT", $objLang->get("export", "button")); $objTpl->setVariable("BUTTON_EXPORT_ELEMENT_HREF", "?cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}&cmd=" . CMD_EXPORT_ELEMENT); $objTpl->setVariable("BUTTON_IMPORT_ELEMENT", $objLang->get("import", "button")); $objTpl->setVariable("BUTTON_IMPORT_ELEMENT_HREF", "?cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}&cmd=" . CMD_IMPORT_ELEMENT); } } if (!isset($objElement) || $objElement->getTypeId() != ELM_TYPE_LOCKED) { $objTpl->setVariable("BUTTON_NEWDYNAMIC", $objLang->get("newDynamic", "button")); $objTpl->setVariable("BUTTON_NEWDYNAMIC_HREF", "?cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}&cmd=" . CMD_ADD_DYNAMIC); if ($intElmntId > 0) { $objElement = Element::selectByPK($intElmntId); $objTpl->setVariable("BUTTON_EDIT", $objLang->get("edit", "button")); $objTpl->setVariable("BUTTON_EDIT_HREF", "?cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}&cmd=" . CMD_EDIT); } } $objTpl->setVariable("LABEL_SUBJECT", $objLang->get("elementsIn", "label") . " "); $objTpl->setVariable("SUBJECT_NAME", $strElmntName); $objTpl->setVariable("EID", $intElmntId); $objTpl->parseCurrentBlock(); break; case CMD_REMOVE: if (strpos($intElmntId, ',') !== false) { //*** Multiple elements submitted. $arrElements = explode(',', $intElmntId); $objElements = Element::selectByPK($arrElements); $intParent = $objElements->current()->getParentId(); foreach ($objElements as $objElement) { $objElement->delete(); } } else { //*** Single element submitted. $objElement = Element::selectByPK($intElmntId); $intParent = $objElement->getParentId(); $objElement->delete(); } //*** Redirect the page. $strReturnTo = request('returnTo'); if (empty($strReturnTo)) { header("Location: " . Request::getUri() . "/?cid=" . request("cid") . "&cmd=" . CMD_LIST . "&eid=" . $intParent); exit; } else { header("Location: " . Request::getURI() . $strReturnTo); exit; } break; case CMD_DUPLICATE: if (strpos($intElmntId, ',') !== false) { //*** Multiple elements submitted. $arrElements = explode(',', $intElmntId); $objElements = Element::selectByPK($arrElements); $intParent = $objElements->current()->getParentId(); foreach ($objElements as $objElement) { $objElement->setUsername($objLiveUser->getProperty("name")); $objDuplicate = $objElement->duplicate($objLang->get("copyOf", "label")); //*** Update the search index. $objSearch = new Search(); $objSearch->updateIndex($objDuplicate->getId()); } } else { //*** Single element submitted. $objElement = Element::selectByPK($intElmntId); $intParent = $objElement->getParentId(); $objElement->setUsername($objLiveUser->getProperty("name")); $objDuplicate = $objElement->duplicate($objLang->get("copyOf", "label")); //*** Update the search index. $objSearch = new Search(); $objSearch->updateIndex($objDuplicate->getId()); } //*** Redirect the page. $strReturnTo = request('returnTo'); if (empty($strReturnTo)) { header("Location: " . Request::getURI() . "/?cid=" . request("cid") . "&cmd=" . CMD_LIST . "&eid=" . $intParent); exit; } else { header("Location: " . Request::getURI() . $strReturnTo); exit; } break; case CMD_ACTIVATE: case CMD_DEACTIVATE: if (strpos($intElmntId, ',') !== false) { //*** Multiple elements submitted. $arrElements = explode(',', $intElmntId); $objElements = Element::selectByPK($arrElements); $intParent = $objElements->current()->getParentId(); foreach ($objElements as $objElement) { if ($strCommand == CMD_ACTIVATE) { $objElement->setActive(1); } else { $objElement->setActive(0); } $objElement->save(); } } else { //*** Single element submitted. $objElement = Element::selectByPK($intElmntId); $intParent = $objElement->getParentId(); if ($strCommand == CMD_ACTIVATE) { $objElement->setActive(1); } else { $objElement->setActive(0); } $objElement->save(); } //*** Redirect the page. $strReturnTo = request('returnTo'); if (empty($strReturnTo)) { header("Location: " . Request::getURI() . "/?cid=" . request("cid") . "&cmd=" . CMD_LIST . "&eid=" . $intParent); exit; } else { header("Location: " . Request::getURI() . $strReturnTo); exit; } break; case CMD_ADD: case CMD_EDIT: case CMD_ADD_FOLDER: case CMD_ADD_DYNAMIC: $objTpl->loadTemplatefile("elementfields.tpl.htm"); $blnError = false; $blnIsFolder = false; $blnIsDynamic = false; //*** Check the element type (element or folder) if ($strCommand == CMD_EDIT) { $objElement = Element::selectByPK($intElmntId); if (is_object($objElement) && $objElement->getTypeId() == ELM_TYPE_FOLDER) { $blnIsFolder = true; } else { if (is_object($objElement) && $objElement->getTypeId() == ELM_TYPE_DYNAMIC) { $blnIsDynamic = true; } } } else { if ($strCommand == CMD_ADD_FOLDER) { $blnIsFolder = true; } else { if ($strCommand == CMD_ADD_DYNAMIC) { $blnIsDynamic = true; } } } //*** Check if the rootfolder has been submitted. if ($strCommand == CMD_EDIT && $intElmntId == 0) { //*** Redirect to list mode. header("Location: " . Request::getURI() . "/?cid=" . request("cid") . "&cmd=" . CMD_LIST . "&eid=" . $intElmntId); exit; } //*** Check if an invalid element has been submitted. if ($strCommand == CMD_EDIT && !is_object($objElement)) { //*** Redirect to list mode. header("Location: " . Request::getURI() . "/?cid=" . request("cid") . "&cmd=" . CMD_LIST . "&eid=0"); exit; } //*** Set section title. if ($blnIsFolder) { if ($strCommand == CMD_EDIT) { $objTpl->setVariable("MAINTITLE", $objLang->get("folderDetailsFor", "label")); $objTpl->setVariable("MAINSUB", $objElement->getName()); } else { $objTpl->setVariable("MAINTITLE", $objLang->get("folderDetails", "label")); } } else { if ($blnIsDynamic) { if ($strCommand == CMD_EDIT) { $objTpl->setVariable("MAINTITLE", $objLang->get("dynamicDetailsFor", "label")); $objTpl->setVariable("MAINSUB", $objElement->getName()); } else { $objTpl->setVariable("MAINTITLE", $objLang->get("dynamicDetails", "label")); } } else { if ($strCommand == CMD_EDIT) { $objTpl->setVariable("MAINTITLE", $objLang->get("pageDetailsFor", "label")); $objTpl->setVariable("MAINSUB", $objElement->getName()); } else { $objTpl->setVariable("MAINTITLE", $objLang->get("pageDetails", "label")); } } } //*** Post the element form if submitted. if (count($_CLEAN_POST) > 0 && !empty($_CLEAN_POST['dispatch']) && $_CLEAN_POST['dispatch'] == "addElement") { //*** The element form has been posted. //*** Check sanitized input. if (is_null($_CLEAN_POST["frm_active"])) { $objTpl->setVariable("ERROR_ACTIVE_ON", " error"); $objTpl->setVariable("ERROR_ACTIVE", $objLang->get("active", "formerror")); $blnError = true; } if ($strCommand == CMD_ADD_FOLDER || $blnIsFolder) { if (is_null($_CLEAN_POST["frm_ispage"])) { $objTpl->setVariable("ERROR_ISPAGE_ON", " error"); $objTpl->setVariable("ERROR_ISPAGE", $objLang->get("isPage", "formerror")); $blnError = true; } } if ($strCommand == CMD_ADD_DYNAMIC || $blnIsDynamic) { if (is_null($_CLEAN_POST["frm_feed"])) { $objTpl->setVariable("ERROR_FEED_ON", " error"); $objTpl->setVariable("ERROR_FEED", $objLang->get("feed", "formerror")); $blnError = true; } if (is_null($_CLEAN_POST["frm_feedpath"])) { $objTpl->setVariable("ERROR_FEEDPATH_ON", " error"); $objTpl->setVariable("ERROR_FEEDPATH", $objLang->get("feedPath", "formerror")); $blnError = true; } if (is_null($_CLEAN_POST["frm_maxitems"])) { $objTpl->setVariable("ERROR_MAXITEMS_ON", " error"); $objTpl->setVariable("ERROR_MAXITEMS", $objLang->get("maxItems", "formerror")); $blnError = true; } } if (is_null($_CLEAN_POST["frm_name"])) { $objTpl->setVariable("ERROR_NAME_ON", " error"); $objTpl->setVariable("ERROR_NAME", $objLang->get("templateName", "formerror")); $blnError = true; } if (is_null($_CLEAN_POST["frm_apiname"])) { $objTpl->setVariable("ERROR_APINAME_ON", " error"); $objTpl->setVariable("ERROR_APINAME", $objLang->get("commonTypeWord", "formerror")); $blnError = true; } /* if (is_null($_CLEAN_POST["frm_alias"])) { $objTpl->setVariable("ERROR_ALIAS_ON", " error"); $objTpl->setVariable("ERROR_ALIAS", $objLang->get("commonTypeWord", "formerror")); $blnError = true; } */ if (is_null($_CLEAN_POST["frm_template"]) && !$blnIsFolder) { $objTpl->setVariable("ERROR_TEMPLATE_ON", " error"); $objTpl->setVariable("ERROR_TEMPLATE", $objLang->get("commonTypeText", "formerror")); $blnError = true; } if (is_null($_CLEAN_POST["frm_description"])) { $objTpl->setVariable("ERROR_NOTES_ON", " error"); $objTpl->setVariable("ERROR_NOTES", $objLang->get("commonTypeText", "formerror")); $blnError = true; } if (is_null($_CLEAN_POST["dispatch"])) { $blnError = true; } //*** Check element specific fields. //*** TODO!! if ($blnError === true) { //*** Display global error. if ($blnIsFolder) { $objTpl->setVariable("FORM_ISPAGE_VALUE", isset($_POST["frm_ispage"]) && $_POST["frm_ispage"] == "on" ? "checked=\"checked\"" : ""); } $objTpl->setVariable("FORM_ACTIVE_VALUE", isset($_POST["frm_active"]) && $_POST["frm_active"] == "on" ? "checked=\"checked\"" : ""); $objTpl->setVariable("FORM_NAME_VALUE", $_POST["frm_name"]); $objTpl->setVariable("FORM_APINAME_VALUE", $_POST["frm_apiname"]); //$objTpl->setVariable("FORM_ALIAS_VALUE", $_POST["frm_alias"]); if ($blnIsDynamic) { $objTpl->setVariable("FORM_MAXITEMS_VALUE", $_POST["frm_maxitems"]); } $objTpl->setVariable("FORM_NOTES_VALUE", $_POST["frm_description"]); $objTpl->setVariable("ERROR_MAIN", $objLang->get("main", "formerror")); //*** Display element specific errors. //*** TODO!! } else { //*** Input is valid. Save the element. if ($strCommand == CMD_EDIT) { $objElement = Element::selectByPK($intElmntId); $objParent = Element::selectByPK($objElement->getParentId()); } else { $objParent = Element::selectByPK($_POST["eid"]); $objPermissions = new ElementPermission(); if (is_object($objParent)) { $objPermissions->setUserId($objParent->getPermissions()->getUserId()); $objPermissions->setGroupId($objParent->getPermissions()->getGroupId()); } $objElement = new Element(); $objElement->setParentId($_POST["eid"]); $objElement->setAccountId($_CONF['app']['account']->getId()); $objElement->setPermissions($objPermissions); } $objElement->setActive(empty($_CLEAN_POST["frm_active"]) ? 0 : 1); $objElement->setIsPage(empty($_CLEAN_POST["frm_ispage"]) ? 0 : 1); $objElement->setName($_CLEAN_POST["frm_name"]); $objElement->setApiName($_CLEAN_POST["frm_apiname"]); $objElement->setDescription($_CLEAN_POST["frm_description"]); $objElement->setUsername($objLiveUser->getProperty("name")); //*** Get remote settings. $strServer = Setting::getValueByName('ftp_server'); $strUsername = Setting::getValueByName('ftp_username'); $strPassword = Setting::getValueByName('ftp_password'); $strRemoteFolder = Setting::getValueByName('ftp_remote_folder'); if ($blnIsFolder) { $objElement->setTypeId(ELM_TYPE_FOLDER); } else { if ($blnIsDynamic) { $objElement->setTypeId(ELM_TYPE_DYNAMIC); $objElement->setTemplateId($_CLEAN_POST["frm_template"]); } else { $objElement->setTypeId(ELM_TYPE_ELEMENT); $objElement->setTemplateId($_CLEAN_POST["frm_template"]); } } $objElement->save(); if ($blnIsDynamic) { $intFeedId = $_CLEAN_POST["frm_feed"]; if (empty($intFeedId)) { $intFeedId = $objParent->getFeed()->getFeedId(); } $objElementFeed = new ElementFeed(); $objElementFeed->setFeedId($intFeedId); $objElementFeed->setFeedPath($_CLEAN_POST["frm_feedpath"]); $objElementFeed->setMaxItems($_CLEAN_POST["frm_maxitems"]); if ($_CLEAN_POST["frm_dynamic_alias_check"]) { $objElementFeed->setAliasField($_CLEAN_POST["frm_dynamic_alias"]); } else { $objElementFeed->setAliasField(""); } $objElement->setFeed($objElementFeed); } //*** Handle the publish values. $objElement->clearSchedule(); $objSchedule = new ElementSchedule(); if (!empty($_CLEAN_POST["publish_start"])) { $strDate = $_CLEAN_POST["publish_start_date"]; if (empty($strDate)) { $strDate = strftime($_CONF['app']['universalDate']); } $strDate = Date::convertDate($strDate, $_CONF['app']['universalDate'], "%d %B %Y"); $strHour = empty($_CLEAN_POST["publish_start_hour"]) ? "00" : $_CLEAN_POST["publish_start_hour"]; $strMinute = empty($_CLEAN_POST["publish_start_minute"]) ? "00" : $_CLEAN_POST["publish_start_minute"]; $strDate = $strDate . " " . $strHour . ":" . $strMinute . ":00"; $objSchedule->setStartActive(1); $objSchedule->setStartDate(Date::toMysql($strDate)); } else { //*** If not set we set the date to 0. This is nessecary for the client side library, $objSchedule->setStartActive(0); $objSchedule->setStartDate(APP_DEFAULT_STARTDATE); } if (!empty($_CLEAN_POST["publish_end"])) { $strDate = $_CLEAN_POST["publish_end_date"]; if (empty($strDate)) { $strDate = strftime($_CONF['app']['universalDate']); } $strDate = Date::convertDate($strDate, $_CONF['app']['universalDate'], "%d %B %Y"); $strHour = empty($_CLEAN_POST["publish_end_hour"]) ? "00" : $_CLEAN_POST["publish_end_hour"]; $strMinute = empty($_CLEAN_POST["publish_end_minute"]) ? "00" : $_CLEAN_POST["publish_end_minute"]; $strDate = $strDate . " " . $strHour . ":" . $strMinute . ":00"; $objSchedule->setEndActive(1); $objSchedule->setEndDate(Date::toMysql($strDate)); } else { //*** If not set we set the date in the far future. This is nessecary for the client side library, $objSchedule->setEndActive(0); $objSchedule->setEndDate(APP_DEFAULT_ENDDATE); } $objElement->setSchedule($objSchedule); //*** Handle the meta values. if ($objElement->isPage()) { $objElement->clearMeta(); $objElement->clearAliases(); $arrFields = array("title", "keywords", "description"); $objContentLangs = ContentLanguage::select(); foreach ($objContentLangs as $objContentLanguage) { //*** Insert the value by language. foreach ($arrFields as $value) { $objMeta = new ElementMeta(); $arrCascades = explode(",", request("frm_meta_{$value}_cascades")); $blnCascade = in_array($objContentLanguage->getId(), $arrCascades) ? 1 : 0; $objMeta->setName($value); $objMeta->setValue(request("frm_meta_{$value}_{$objContentLanguage->getId()}")); $objMeta->setLanguageId($objContentLanguage->getId()); $objMeta->setCascade($blnCascade); $objElement->setMeta($objMeta); } $objAlias = new Alias(); $arrCascades = explode(",", request("frm_meta_alias_cascades")); $blnCascade = in_array($objContentLanguage->getId(), $arrCascades) ? 1 : 0; $objAlias->setAlias(request("frm_meta_alias_{$objContentLanguage->getId()}")); $objAlias->setLanguageId($objContentLanguage->getId()); $objAlias->setCascade($blnCascade); $objElement->setAlias($objAlias); } } //*** Handle element values. if (!$blnIsFolder) { //*** Cache and clear values. $objCachedFields = $objElement->getFields(true); $objElement->clearFields(); $objElement->clearLanguages(); //*** Insert the active flag by language. $arrActives = explode(",", request("language_actives")); $objContentLangs = ContentLanguage::select(); foreach ($objContentLangs as $objContentLanguage) { $blnActive = in_array($objContentLanguage->getId(), $arrActives) ? true : false; $objElement->setLanguageActive($objContentLanguage->getId(), $blnActive); if ($strCommand == CMD_ADD && !isset($_POST['language_actives'])) { $objElement->setLanguageActive($objContentLanguage->getId(), true); } } //*** Cache to handsome array. $arrFieldCache = array(); foreach ($objCachedFields as $objCacheField) { foreach ($objContentLangs as $objContentLanguage) { if ($objCacheField->getTypeId() == FIELD_TYPE_FILE || $objCacheField->getTypeId() == FIELD_TYPE_IMAGE) { $arrFieldCache[$objCacheField->getTemplateFieldId()][$objContentLanguage->getId()] = $objCacheField->value[$objContentLanguage->getId()]->getValue(); } } } foreach ($_REQUEST as $key => $value) { //*** Template Fields. if (substr($key, 0, 4) == "efv_") { //*** Get the template Id from the request $intTemplateFieldId = substr($key, 4); //*** Is the Id really an Id? if (is_numeric($intTemplateFieldId)) { $objTemplateField = TemplateField::selectByPK($intTemplateFieldId); $objField = new ElementField(); $objField->setElementId($objElement->getId()); $objField->setTemplateFieldId($intTemplateFieldId); $objField->save(); //*** Get the cascade value for the currentfield. $arrCascades = explode(",", request("efv_{$intTemplateFieldId}_cascades")); //*** Loop through the languages to insert the value by language. $objContentLangs = ContentLanguage::select(); foreach ($objContentLangs as $objContentLanguage) { //*** Insert the value by language. in_array($objContentLanguage->getId(), $arrCascades) ? $blnCascade = true : ($blnCascade = false); $strValue = request("efv_{$intTemplateFieldId}_{$objContentLanguage->getId()}"); //*** Check for certain type requirements. switch ($objTemplateField->getTypeId()) { case FIELD_TYPE_FILE: case FIELD_TYPE_IMAGE: $cacheFileValue = ""; $arrCurrent = is_array($strValue) ? $strValue : array(); foreach ($arrCurrent as $value) { if (!empty($value)) { $arrFile = explode(":", $value); if (count($arrFile) > 1 && !empty($arrFile[1])) { $cacheFileValue .= $value . "\n"; //*** Remove file from cache. if (isset($arrFieldCache[$intTemplateFieldId]) && isset($arrFieldCache[$intTemplateFieldId][$objContentLanguage->getId()])) { $arrFieldCache[$intTemplateFieldId][$objContentLanguage->getId()] = str_replace($value, "", $arrFieldCache[$intTemplateFieldId][$objContentLanguage->getId()]); } } } } //*** Multifile SWFUpload foreach ($arrCurrent as $value) { if (!empty($value)) { $arrFile = explode(":", $value); if (count($arrFile) > 1 && empty($arrFile[1])) { //*** Any image manipulation? $strLocalValue = ImageField::filename2LocalName($arrFile[0]); $objImageField = new ImageField($intTemplateFieldId); $arrSettings = $objImageField->getSettings(); if (count($arrSettings) > 1) { foreach ($arrSettings as $key => $arrSetting) { $strFileName = FileIO::add2Base($strLocalValue, $arrSetting['key']); if (copy($_PATHS['upload'] . $arrFile[0], $_PATHS['upload'] . $strFileName)) { if ($objTemplateField->getTypeId() == FIELD_TYPE_IMAGE && (!empty($arrSetting['width']) || !empty($arrSetting['height']))) { //*** Check if the image has the right size. $blnResize = true; $arrSize = getimagesize($_PATHS['upload'] . $strFileName); if ($arrSize !== false) { if ($arrSize[0] == $arrSetting['width'] && $arrSize[1] == $arrSetting['height']) { //*** Skip image resize. $blnResize = false; } } //*** Resize the image. if ($blnResize) { $intQuality = empty($arrSetting['quality']) ? 75 : $arrSetting['quality']; ImageResizer::resize($_PATHS['upload'] . $strFileName, $arrSetting['width'], $arrSetting['height'], $arrSetting['scale'], $intQuality, true, NULL, false, $arrSetting['grayscale']); } } //*** Move file to remote server. $objUpload = new SingleUpload(); if (!$objUpload->moveToFTP($strFileName, $_PATHS['upload'], $strServer, $strUsername, $strPassword, $strRemoteFolder)) { Log::handleError("File could not be moved to remote server. " . $objUpload->errorMessage()); } } } //*** Move original file. if (rename($_PATHS['upload'] . $arrFile[0], $_PATHS['upload'] . $strLocalValue)) { $objUpload = new SingleUpload(); if (!$objUpload->moveToFTP($strLocalValue, $_PATHS['upload'], $strServer, $strUsername, $strPassword, $strRemoteFolder)) { Log::handleError("File could not be moved to remote server. " . $objUpload->errorMessage()); } } //*** Unlink original file. @unlink($_PATHS['upload'] . $arrFile[0]); } else { if ($objTemplateField->getTypeId() == FIELD_TYPE_IMAGE && (!empty($arrSettings[0]['width']) || !empty($arrSettings[0]['height']))) { $strFileName = FileIO::add2Base($strLocalValue, $arrSettings[0]['key']); //*** Resize the image. if (rename($_PATHS['upload'] . $arrFile[0], $_PATHS['upload'] . $strFileName)) { //*** Check if the image has the right size. $blnResize = true; $arrSize = getimagesize($_PATHS['upload'] . $strFileName); if ($arrSize !== false) { if ($arrSize[0] == $arrSettings[0]['width'] && $arrSize[1] == $arrSettings[0]['height']) { //*** Skip image resize. $blnResize = false; } } if ($blnResize) { $intQuality = empty($arrSettings[0]['quality']) ? 75 : $arrSettings[0]['quality']; ImageResizer::resize($_PATHS['upload'] . $strFileName, $arrSettings[0]['width'], $arrSettings[0]['height'], $arrSettings[0]['scale'], $intQuality, true, NULL, false, $arrSettings[0]['grayscale']); } //*** Move file to remote server. $objUpload = new SingleUpload(); if (!$objUpload->moveToFTP($strFileName, $_PATHS['upload'], $strServer, $strUsername, $strPassword, $strRemoteFolder)) { Log::handleError("File could not be moved to remote server."); } } } //*** Move original file. if (file_exists($_PATHS['upload'] . $arrFile[0]) && rename($_PATHS['upload'] . $arrFile[0], $_PATHS['upload'] . $strLocalValue)) { //*** Move file to remote server. $objUpload = new SingleUpload(); if (!$objUpload->moveToFTP($strLocalValue, $_PATHS['upload'], $strServer, $strUsername, $strPassword, $strRemoteFolder)) { Log::handleError("File could not be moved to remote server."); } } //*** Unlink original file. @unlink($_PATHS['upload'] . $arrFile[0]); } //*** Set file value. $cacheFileValue .= $arrFile[0] . ":" . $strLocalValue . "\n"; } } } //*** Check newly uploaded files. $strFiles = "efv_{$intTemplateFieldId}_{$objContentLanguage->getId()}_new"; $fileValue = $cacheFileValue; if (isset($_FILES[$strFiles])) { if ($objTemplateField->getTypeId() == FIELD_TYPE_FILE) { $objValue = $objTemplateField->getValueByName("tfv_file_extension"); $strExtensions = is_object($objValue) ? $objValue->getValue() : ""; if (!empty($strExtensions)) { $strExtensions = str_replace("%s", Setting::getValueByName('file_upload_extensions'), $strExtensions); $objMultiUpload->setExtensions(explode(" ", strtolower($strExtensions))); } else { $objMultiUpload->setExtensions(explode(" ", strtolower(Setting::getValueByName('file_upload_extensions')))); } } else { $objMultiUpload->setExtensions(explode(" ", strtolower(Setting::getValueByName('image_upload_extensions')))); } $objMultiUpload->setTempNames($_FILES[$strFiles]['tmp_name']); $objMultiUpload->setOriginalNames($_FILES[$strFiles]['name']); $objMultiUpload->setErrors($_FILES[$strFiles]['error']); $objMultiUpload->uploadFiles(); if ($objMultiUpload->getTotalFiles() == $objMultiUpload->getSuccessFiles()) { //*** Everything is cool. $localValues = $objMultiUpload->getLocalNames(); //*** Any image manipulation? $blnResize = false; $objImageField = new ImageField($intTemplateFieldId); $arrSettings = $objImageField->getSettings(); if ($objTemplateField->getTypeId() == FIELD_TYPE_IMAGE && (!empty($arrSettings[0]['width']) || !empty($arrSettings[0]['height']))) { $blnResize = true; } foreach ($objMultiUpload->getOriginalNames() as $subkey => $subvalue) { if (!empty($subvalue)) { $fileValue .= $subvalue . ":" . $localValues[$subkey] . "\n"; //*** Check if the image has the right size. if ($blnResize) { $arrSize = getimagesize($_PATHS['upload'] . $localValues[$subkey]); if ($arrSize !== false) { if ($arrSize[0] == $arrSettings[0]['width'] && $arrSize[1] == $arrSettings[0]['height']) { //*** Skip image resize. $blnResize = false; } } } //*** Resize the image. if ($blnResize) { $intQuality = empty($arrSettings[0]['quality']) ? 75 : $arrSettings[0]['quality']; ImageResizer::resize($_PATHS['upload'] . $localValues[$subkey], $arrSettings[0]['width'], $arrSettings[0]['height'], $arrSettings[0]['scale'], $intQuality, true, NULL, false, $arrSettings[0]['grayscale']); } } } //*** Move file to remote server. if (!$objMultiUpload->moveToFTP($strServer, $strUsername, $strPassword, $strRemoteFolder)) { $strMessage = $objLang->get("moveToFTP", "alert"); $fileValue = $cacheFileValue; } } else { $strMessage = $objMultiUpload->errorMessage() . "<br />"; $strMessage .= "Files: " . $objMultiUpload->getTotalFiles() . " and Success: " . $objMultiUpload->getSuccessFiles(); } } $strValue = $fileValue; break; case FIELD_TYPE_BOOLEAN: if ($strValue == "1") { $strValue = "true"; } if (empty($strValue)) { $strValue = "false"; } break; } $objValue = $objField->getNewValueObject(); $objValue->setValue($strValue); $objValue->setLanguageId($objContentLanguage->getId()); $objValue->setCascade($blnCascade ? 1 : 0); $objField->setValueObject($objValue); } } } //*** Feed Fields. if (substr($key, 0, 4) == "tpf_") { //*** Get the template Id from the request $intTemplateFieldId = substr($key, 4); //*** Is the Id really an Id? if (is_numeric($intTemplateFieldId)) { //*** Get the cascade value for the currentfield. $arrCascades = explode(",", request("efv_{$intTemplateFieldId}_cascades")); //*** Loop through the languages to insert the value by language. $objContentLangs = ContentLanguage::select(); foreach ($objContentLangs as $objContentLanguage) { //*** Insert the value by language. in_array($objContentLanguage->getId(), $arrCascades) ? $blnCascade = true : ($blnCascade = false); $strValue = request("tpf_{$intTemplateFieldId}_{$objContentLanguage->getId()}"); $objFeedField = new ElementFieldFeed(); $objFeedField->setElementId($objElement->getId()); $objFeedField->setTemplateFieldId($intTemplateFieldId); $objFeedField->setFeedPath(str_replace("----", "/", $strValue)); $objFeedField->setXpath(str_replace("----", "/", $strValue)); $objFeedField->setLanguageId($objContentLanguage->getId()); $objFeedField->setCascade($blnCascade ? 1 : 0); $objFeedField->save(); } } } } //*** Remove deleted files. $objFtp = new FTP($strServer, NULL, NULL, true); $objFtp->login($strUsername, $strPassword); $objFtp->pasv(true); foreach ($arrFieldCache as $intTemplateFieldId => $arrLanguage) { foreach ($arrLanguage as $strValue) { $arrValues = explode("\n", $strValue); foreach ($arrValues as $value) { if (!empty($value)) { //*** Find file name. $arrFile = explode(":", $value); if (count($arrFile) > 1 && count($arrFile) < 3) { //*** Check if the file is used by other elements. if (!ElementField::fileHasDuplicates($value)) { //*** Remove file. $strFile = $strRemoteFolder . $arrFile[1]; $objFtp->delete($strFile); //*** Resized variations? $objImageField = new ImageField($intTemplateFieldId); $arrSettings = $objImageField->getSettings(); foreach ($arrSettings as $key => $arrSetting) { if (!empty($arrSetting['width']) || !empty($arrSetting['height'])) { //*** Remove file. $strFile = $strRemoteFolder . FileIO::add2Base($arrFile[1], $arrSetting['key']); $objFtp->delete($strFile); } } } } } } } } //*** Update the search index. $objSearch = new Search(); $objSearch->updateIndex($objElement->getId()); //*** Clear cache if caching enabled. $objElement->clearCache($objFtp); $objElement->clearZeroCache($objFtp); } else { //*** Activate all languages for the folder type. $objContentLangs = ContentLanguage::select(); foreach ($objContentLangs as $objContentLanguage) { $objElement->setLanguageActive($objContentLanguage->getId(), true); } } //*** Redirect the page. if (empty($strMessage)) { $intForward = $objElement->getParentId(); $varCmd = CMD_LIST; $intForwardToElement = null; $varValue = Setting::getValueByName("edit_after_save"); if ($varValue && $strCommand == CMD_ADD) { $intForwardToElement = $objElement->getId(); $varCmd = CMD_EDIT; } else { if (Setting::getValueByName('next_after_save') && $intForward > 0) { //*** Try to get first child element if (Setting::getValueByName("next_is_child")) { $objChildren = $objElement->getElements(); if (is_object($objChildren) && $objChildren->count() > 0) { $objChild = $objChildren->current(); $intForwardToElement = $objChild->getId(); if ($intForwardToElement > 0) { $varCmd = CMD_EDIT; } } } //*** Get next sibling $objParent = Element::selectByPK($objElement->getParentId()); $objChildren = $objParent->getElements(); $blnBreak = false; if (is_object($objChildren) && is_null($intForwardToElement)) { foreach ($objChildren as $objChild) { if ($blnBreak) { $intForwardToElement = $objChild->getId(); $varCmd = CMD_EDIT; break; } if ($objElement->getId() == $objChild->getId()) { $blnBreak = true; } } } } } if (!empty($intForwardToElement) && $intForwardToElement !== 0) { $intForward = $intForwardToElement; } header("Location: " . Request::getUri() . "/?cid=" . $_POST["cid"] . "&cmd=" . $varCmd . "&eid=" . $intForward); exit; } else { $_SESSION['uiError'] = $strMessage; header("Location: " . Request::getUri() . "/?cid=" . $_POST["cid"] . "&cmd=" . CMD_EDIT . "&eid=" . $objElement->getId() . "&err=1"); exit; } } } //*** Parse the page. $objElement = Element::selectByPK($intElmntId); //*** Errors. if ($blnUiError) { $objTpl->setCurrentBlock("error-main"); $objTpl->setVariable("ERROR_MAIN", $_SESSION['uiError']); $objTpl->parseCurrentBlock(); } //*** Render the template pulldown. if ($blnIsFolder) { $objTpl->setCurrentBlock("headertitel_simple"); $objTpl->setVariable("HEADER_TITLE", $objLang->get("details", "label")); $objTpl->parseCurrentBlock(); $objTemplates = NULL; } else { $objTpl->setCurrentBlock("headertitel_simple"); $objTpl->setVariable("HEADER_TITLE", $objLang->get("details", "label")); $objTpl->parseCurrentBlock(); if (is_object($objElement)) { if ($strCommand == CMD_EDIT) { $objTemplate = Template::selectByPK($objElement->getTemplateId()); $objTemplates = new DBA__Collection(); $objTemplates->addObject($objTemplate); } else { $objTemplates = $objElement->getSubTemplates(); } } else { $strSql = sprintf("SELECT * FROM pcms_template WHERE parentId = '0' AND accountId = '%s'", $_CONF['app']['account']->getId()); $objTemplates = Template::select($strSql); } } if (is_object($objTemplates)) { foreach ($objTemplates as $objTemplate) { $objTpl->setCurrentBlock("list_template"); $objTpl->setVariable("TEMPLATELIST_VALUE", $objTemplate->getId()); $objTpl->setVariable("TEMPLATELIST_TEXT", $objTemplate->getName()); $objTpl->parseCurrentBlock(); } //*** Render fields if there is only one template. if ($objTemplates->count() == 1 || $strCommand == CMD_EDIT) { $strLanguageBlock = $blnIsDynamic ? "feed.list_language" : "list_language"; $intDefaultLanguage = ContentLanguage::getDefault()->getId(); $intSelectLanguage = $intDefaultLanguage; $objContentLangs = ContentLanguage::select(); foreach ($objContentLangs as $objContentLanguage) { $objTpl->setCurrentBlock($strLanguageBlock); $objTpl->setVariable("LANGUAGELIST_VALUE", $objContentLanguage->getId()); if ($intDefaultLanguage == $objContentLanguage->getId()) { $objTpl->setVariable("LANGUAGELIST_TEXT", $objContentLanguage->getName() . " (" . $objLang->get("default", "label") . ")"); } else { $objTpl->setVariable("LANGUAGELIST_TEXT", $objContentLanguage->getName()); } if ($intSelectLanguage == $objContentLanguage->getId()) { $objTpl->setVariable("LANGUAGELIST_SELECTED", " selected=\"selected\""); } $objTpl->parseCurrentBlock(); } $objTemplates->rewind(); $objFields = $objTemplates->current()->getFields(); $objTpl->setVariable("LABEL_ELEMENT_FIELDS", $objLang->get("elementFields", "label")); $strFields = ""; if (!$blnIsDynamic) { foreach ($objFields as $objField) { $objFieldTpl = new HTML_Template_ITX($_PATHS['templates']); $objFieldTpl->loadTemplatefile("elementfield.tpl.htm"); //*** Get the field value from the element. $strValue = ""; if (is_object($objElement)) { $strValue = $objElement->getValueByTemplateField($objField->getId()); } $strDescription = $objField->getDescription(); //*** Get the field type object. $objType = TemplateFieldType::selectByPK($objField->getTypeId()); $intMaxFileCount = null; switch ($objField->getTypeId()) { case FIELD_TYPE_DATE: $objFieldTpl->addBlockfile('ELEMENT_FIELD', 'field.date', 'elementfield_date.tpl.htm'); foreach ($objContentLangs as $objContentLanguage) { $objFieldTpl->setCurrentBlock("field.{$objType->getInput()}.value"); $objFieldTpl->setVariable("FIELD_LANGUAGE_ID", "efv_{$objField->getId()}_{$objContentLanguage->getId()}"); if (is_object($objElement)) { $strValue = $objElement->getValueByTemplateField($objField->getId(), $objContentLanguage->getId(), true); $strValue = Date::fromMysql($_CONF['app']['universalDate'], $strValue); } else { $strValue = ""; } $objFieldTpl->setVariable("FIELD_LANGUAGE_VALUE", htmlspecialchars($strValue)); $objFieldTpl->parseCurrentBlock(); } $objValue = $objField->getValueByName("tfv_field_format"); $strFormatValue = is_object($objValue) ? $objValue->getValue() : ""; $objFieldTpl->setCurrentBlock("field.date"); $objFieldTpl->setVariable("FIELD_ID", "efv_{$objField->getId()}"); if ($objField->getRequired()) { $objFieldTpl->setVariable("FIELD_REQUIRED", "* "); } $objFieldTpl->setVariable("FIELD_DATE_FORMAT", $strFormatValue); $objFieldTpl->setVariable("FIELD_NAME", html_entity_decode($objField->getName())); if (is_object($objElement)) { $objElementField = $objElement->getFieldByTemplateField($objField->getId()); if (is_object($objElementField)) { $objFieldTpl->setVariable("FIELD_CASCADES", implode(",", $objElementField->getCascades())); } } if (!empty($strDescription)) { $objFieldTpl->setVariable("FIELD_DESCRIPTION", $objField->getDescription()); } $objFieldTpl->parseCurrentBlock(); break; case FIELD_TYPE_LARGETEXT: $objFieldTpl->addBlockfile('ELEMENT_FIELD', 'field.simpletext', 'elementfield_textarea.tpl.htm'); foreach ($objContentLangs as $objContentLanguage) { $objFieldTpl->setCurrentBlock("field.simpletext.value"); $objFieldTpl->setVariable("FIELD_LANGUAGE_ID", "efv_{$objField->getId()}_{$objContentLanguage->getId()}"); if (is_object($objElement)) { $strValue = htmlspecialchars($objElement->getValueByTemplateField($objField->getId(), $objContentLanguage->getId())); } else { $strValue = ""; } $objFieldTpl->setVariable("FIELD_LANGUAGE_VALUE", $strValue); $objFieldTpl->parseCurrentBlock(); } //*** Calculate and set the textarea height. $minHeight = 115; $maxHeight = 400; $intHeight = $minHeight; $objValue = $objField->getValueByName("tfv_field_max_characters"); $strMaxChar = is_object($objValue) ? $objValue->getValue() : ""; if (!empty($strMaxChar) && is_numeric($strMaxChar)) { $intHeight = ($strMaxChar - 500) * 0.05 + $minHeight; if ($intHeight < $minHeight) { $intHeight = $minHeight; } if ($intHeight > $maxHeight) { $intHeight = $maxHeight; } } $objFieldTpl->setCurrentBlock("field.simpletext"); $objFieldTpl->setVariable("FIELD_ID", "efv_{$objField->getId()}"); $objFieldTpl->setVariable("FIELD_HEIGHT", "{$intHeight}px"); if ($objField->getRequired()) { $objFieldTpl->setVariable("FIELD_REQUIRED", "* "); } $objFieldTpl->setVariable("FIELD_NAME", html_entity_decode($objField->getName())); if (!empty($strDescription)) { $objFieldTpl->setVariable("FIELD_DESCRIPTION", $objField->getDescription()); } if (is_object($objElement)) { $objElementField = $objElement->getFieldByTemplateField($objField->getId()); if (is_object($objElementField)) { $objFieldTpl->setVariable("FIELD_CASCADES", implode(",", $objElementField->getCascades())); } } $objFieldTpl->parseCurrentBlock(); break; case FIELD_TYPE_SELECT_LIST_SINGLE: case FIELD_TYPE_SELECT_LIST_MULTI: if ($objField->getTypeId() == FIELD_TYPE_SELECT_LIST_SINGLE) { $objDefaultValue = $objField->getValueByName("tfv_list_default"); $objValue = $objField->getValueByName("tfv_list_value"); $strFieldClass = "select-one"; $strMultiple = ""; } else { $objDefaultValue = $objField->getValueByName("tfv_multilist_default"); $objValue = $objField->getValueByName("tfv_multilist_value"); $strFieldClass = "select-multiple"; $strMultiple = "multiple=\"multiple\""; } $objFieldTpl->addBlockfile('ELEMENT_FIELD', 'field.select', 'elementfield_selectlist.tpl.htm'); $strTemplValue = is_object($objDefaultValue) ? $objDefaultValue->getValue() : ""; foreach ($objContentLangs as $objContentLanguage) { $objFieldTpl->setCurrentBlock("field.select.value"); $objFieldTpl->setVariable("FIELD_LANGUAGE_ID", "efv_{$objField->getId()}_{$objContentLanguage->getId()}"); //*** Determine the selected value for the list. if (is_object($objElement)) { $strValue = $objElement->getValueByTemplateField($objField->getId(), $objContentLanguage->getId()); } else { $strValue = NULL; } if (!empty($strValue) || !is_null($strValue)) { //*** Do Nothing. } elseif (!empty($strTemplValue)) { $strValue = $strTemplValue; } $arrDefaultValue = explode("\n", $strValue); $arrValue = array(); foreach ($arrDefaultValue as $value) { $value = trim($value); if (!empty($value)) { array_push($arrValue, $value); } } $objFieldTpl->setVariable("FIELD_LANGUAGE_VALUE", implode(",", $arrValue)); $objFieldTpl->parseCurrentBlock(); } //*** Render options for the list. $strListValue = is_object($objValue) ? $objValue->getValue() : ""; $arrValues = explode("\n", $strListValue); foreach ($arrValues as $value) { if (!empty($value)) { //*** Determine if we have a label. $arrValue = explode(":", $value); if (count($arrValue) > 1) { $optionLabel = trim($arrValue[0]); $optionValue = trim($arrValue[1]); } else { $optionLabel = trim($value); $optionValue = trim($value); } $objFieldTpl->setCurrentBlock("field.select.option"); $objFieldTpl->setVariable("FIELD_VALUE", $optionValue); $objFieldTpl->setVariable("FIELD_TEXT", xhtmlsave($optionLabel)); $objFieldTpl->parseCurrentBlock(); } } $objFieldTpl->setCurrentBlock("field.select"); $objFieldTpl->setVariable("FIELD_SELECT_SIZE", 1); $objFieldTpl->setVariable("FIELD_CLASS", $strFieldClass); $objFieldTpl->setVariable("FIELD_MULTIPLE", $strMultiple); $objFieldTpl->setVariable("FIELD_ID", "efv_{$objField->getId()}"); if ($objField->getRequired()) { $objFieldTpl->setVariable("FIELD_REQUIRED", "* "); } $objFieldTpl->setVariable("FIELD_NAME", html_entity_decode($objField->getName())); if (!empty($strDescription)) { $objFieldTpl->setVariable("FIELD_DESCRIPTION", $objField->getDescription()); } if (is_object($objElement)) { $objElementField = $objElement->getFieldByTemplateField($objField->getId()); if (is_object($objElementField)) { $objFieldTpl->setVariable("FIELD_CASCADES", implode(",", $objElementField->getCascades())); } } $objFieldTpl->parseCurrentBlock(); break; case FIELD_TYPE_CHECK_LIST_SINGLE: case FIELD_TYPE_CHECK_LIST_MULTI: if ($objField->getTypeId() == FIELD_TYPE_CHECK_LIST_SINGLE) { $objDefaultValue = $objField->getValueByName("tfv_list_default"); $objValue = $objField->getValueByName("tfv_list_value"); $strType = "radio"; } else { $objDefaultValue = $objField->getValueByName("tfv_multilist_default"); $objValue = $objField->getValueByName("tfv_multilist_value"); $strType = "checkbox"; } $objFieldTpl->addBlockfile('ELEMENT_FIELD', 'field.check', 'elementfield_checklist.tpl.htm'); $strTemplValue = is_object($objDefaultValue) ? $objDefaultValue->getValue() : ""; foreach ($objContentLangs as $objContentLanguage) { $objFieldTpl->setCurrentBlock("field.check.value"); $objFieldTpl->setVariable("FIELD_LANGUAGE_ID", "efv_{$objField->getId()}_{$objContentLanguage->getId()}"); //*** Determine the selected value for the list. if (is_object($objElement)) { $strValue = $objElement->getValueByTemplateField($objField->getId(), $objContentLanguage->getId()); } else { $strValue = NULL; } if (!empty($strValue) || !is_null($strValue)) { //*** Do Nothing. } elseif (!empty($strTemplValue)) { $strValue = $strTemplValue; } $arrDefaultValue = explode("\n", $strValue); $arrValue = array(); foreach ($arrDefaultValue as $value) { $value = trim($value); if (!empty($value)) { array_push($arrValue, $value); } } $objFieldTpl->setVariable("FIELD_LANGUAGE_VALUE", implode(",", $arrValue)); $objFieldTpl->parseCurrentBlock(); } //*** Render options for the list. $strListValue = is_object($objValue) ? $objValue->getValue() : ""; $arrValues = explode("\n", $strListValue); $intCount = 0; foreach ($arrValues as $value) { if (!empty($value)) { //*** Determine if we have a label. $arrValue = explode(":", $value); if (count($arrValue) > 1) { $optionLabel = trim($arrValue[0]); $optionValue = trim($arrValue[1]); } else { $optionLabel = trim($value); $optionValue = trim($value); } $objFieldTpl->setCurrentBlock("field.check.item"); $objFieldTpl->setVariable("SUBFIELD_TYPE", $strType); $objFieldTpl->setVariable("SUBFIELD_VALUE", $optionValue); $objFieldTpl->setVariable("SUBFIELD_TEXT", $optionLabel); $objFieldTpl->setVariable("SUBFIELD_ID", "efv_{$objField->getId()}_sub_{$intCount}"); $objFieldTpl->setVariable("FIELD_ID", "efv_{$objField->getId()}"); $objFieldTpl->parseCurrentBlock(); $intCount++; } } $objFieldTpl->setCurrentBlock("field.list"); $objFieldTpl->setVariable("SUBFIELD_TYPE", $strType); $objFieldTpl->parseCurrentBlock(); $objFieldTpl->setCurrentBlock("field.check"); $objFieldTpl->setVariable("FIELD_ID", "efv_{$objField->getId()}"); if ($objField->getRequired()) { $objFieldTpl->setVariable("FIELD_REQUIRED", "* "); } $objFieldTpl->setVariable("FIELD_NAME", html_entity_decode($objField->getName())); if (!empty($strDescription)) { $objFieldTpl->setVariable("FIELD_DESCRIPTION", $objField->getDescription()); } if (is_object($objElement)) { $objElementField = $objElement->getFieldByTemplateField($objField->getId()); if (is_object($objElementField)) { $objFieldTpl->setVariable("FIELD_CASCADES", implode(",", $objElementField->getCascades())); } } $objFieldTpl->parseCurrentBlock(); break; case FIELD_TYPE_IMAGE: $objValue = $objField->getValueByName('tfv_image_count'); $intMaxFileCount = is_object($objValue) ? $objValue->getValue() : 10000; $strCurrentTitle = $objLang->get("imagesCurrent", "label"); $strNewTitle = $objLang->get("imagesNew", "label"); $strThumbPath = Setting::getValueByName("web_server") . Setting::getValueByName("file_folder"); $strUploadPath = Request::getURI() . $_CONF['app']['baseUri'] . "files/"; case FIELD_TYPE_FILE: if (!isset($intMaxFileCount)) { $objValue = $objField->getValueByName('tfv_file_count'); $intMaxFileCount = is_object($objValue) ? $objValue->getValue() : 10000; $strCurrentTitle = $objLang->get("filesCurrent", "label"); $strNewTitle = $objLang->get("filesNew", "label"); $strThumbPath = Setting::getValueByName("web_server") . Setting::getValueByName("file_folder"); $strUploadPath = Request::getURI() . $_CONF['app']['baseUri'] . "files/"; } if (is_object($objElement)) { $objElementField = $objElement->getFieldByTemplateField($objField->getId()); } $objFieldTpl->addBlockfile('ELEMENT_FIELD', 'field.file', 'elementfield_file.tpl.htm'); foreach ($objContentLangs as $objContentLanguage) { if (is_object($objElement)) { $strValue = $objElement->getValueByTemplateField($objField->getId(), $objContentLanguage->getId(), true); } else { $strValue = ""; } $intFileCount = 0; if (!empty($strValue)) { $arrValues = explode("\n", $strValue); foreach ($arrValues as $value) { if (!empty($value)) { $arrValue = explode(":", $value); if (count($arrValue) > 1) { $strValue = $arrValue[1]; $strLabel = $arrValue[0]; //*** Media library item? if (count($arrValue) > 2) { $strValue = $arrValue[1] . ":" . $arrValue[2]; } } else { $strValue = $arrValue[0]; $strLabel = $arrValue[0]; } $intFileCount++; $objFieldTpl->setCurrentBlock("field.file.edit"); $objFieldTpl->setVariable("FIELD_LANGUAGE_ID_COUNT", "efv_{$objField->getId()}_{$objContentLanguage->getId()}_{$intFileCount}"); $objFieldTpl->setVariable("FIELD_LANGUAGE_ID", "efv_{$objField->getId()}_{$objContentLanguage->getId()}"); $objFieldTpl->setVariable("FIELD_LANGUAGE_VALUE", "{$strLabel}:{$strValue}"); $objFieldTpl->parseCurrentBlock(); } } } $objFieldTpl->setCurrentBlock("field.file.value"); $objFieldTpl->setVariable("FIELD_LANGUAGE_ID", "efv_{$objField->getId()}_{$objContentLanguage->getId()}"); $objFieldTpl->setVariable("FIELD_LANGUAGE_CURRENT_FILES", $intFileCount); $objFieldTpl->setVariable("FIELD_LANGUAGE_ALTTEXT_VALUE", ""); $objFieldTpl->parseCurrentBlock(); } $intFileCount = 0; if (!empty($strValue)) { $arrValues = explode("\n", $strValue); foreach ($arrValues as $value) { if (!empty($value)) { $arrValue = explode(":", $value); if (count($arrValue) > 1) { $strValue = $arrValue[1]; $strLabel = $arrValue[0]; } else { $strValue = $arrValue[0]; $strLabel = $arrValue[0]; } if ($objField->getTypeId() == FIELD_TYPE_IMAGE) { $objFieldTpl->setCurrentBlock("thumbnail"); $objFieldTpl->setVariable("FIELD_ORIGINAL_VALUE", $strLabel); $objFieldTpl->setVariable("FIELD_VALUE", $strValue); $objFieldTpl->parseCurrentBlock(); } $objFieldTpl->setCurrentBlock("field.{$objType->getInput()}.edit"); $objFieldTpl->setVariable("FIELD_FILE_ID", "efv_{$objField->getId()}"); $objFieldTpl->setVariable("FIELD_ORIGINAL_VALUE", $strLabel); $objFieldTpl->setVariable("FIELD_VALUE", $strValue); $objFieldTpl->parseCurrentBlock(); $intFileCount++; } } } //*** Parse the rest of the block. $objFieldTpl->setCurrentBlock("field.file.select-type.library"); $objFieldTpl->setVariable("LABEL_LIBRARY", $objLang->get("pcmsInlineStorage", "menu")); $objFieldTpl->setVariable("FIELD_ID", "efv_{$objField->getId()}"); $objFieldTpl->parseCurrentBlock(); $objFieldTpl->setCurrentBlock("field.file.select-type.upload"); $objFieldTpl->setVariable("FIELD_ID", "efv_{$objField->getId()}"); $objFieldTpl->parseCurrentBlock(); $objFieldTpl->setCurrentBlock("field.file"); $objFieldTpl->setVariable("FIELD_ID", "efv_{$objField->getId()}"); if ($objField->getRequired()) { $objFieldTpl->setVariable("FIELD_REQUIRED", "* "); } $objFieldTpl->setVariable("FIELD_NAME", html_entity_decode($objField->getName())); $objFieldTpl->setVariable("FIELD_BROWSE_NAME", $objLang->get("browseImage", "label")); //$objFieldTpl->setVariable("FIELD_ALT_NAME", $objLang->get("altImage", "label")); $objFieldTpl->setVariable("FIELD_CURRENT_FILES", $intFileCount); $objFieldTpl->setVariable("FIELD_MAX_FILES", $intMaxFileCount); $objFieldTpl->setVariable("FIELD_THUMB_PATH", $strThumbPath); $objFieldTpl->setVariable("FIELD_UPLOAD_PATH", $strUploadPath); $objFieldTpl->setVariable("FIELD_MAX_CHAR", 60); $objFieldTpl->setVariable("STORAGE_ITEMS", StorageItems::getFolderListHTML()); $objFieldTpl->setVariable("LABEL_CHOOSE_FOLDER", $objLang->get("chooseFolder", "label")); $objFieldTpl->setVariable("FIELD_HEADER_CURRENT", $strCurrentTitle); $objFieldTpl->setVariable("FIELD_HEADER_NEW", $strNewTitle); $objFieldTpl->setVariable("FIELD_LABEL_REMOVE", $objLang->get("delete", "button")); $objFieldTpl->setVariable("FIELD_LABEL_CANCEL", strtolower($objLang->get("cancel", "button"))); $objFieldTpl->setVariable("FIELD_LABEL_ALT", $objLang->get("alttag", "button")); if (!empty($strDescription)) { $objFieldTpl->setVariable("FIELD_DESCRIPTION", $objField->getDescription()); } if (is_object($objElementField)) { $objFieldTpl->setVariable("FIELD_CASCADES", implode(",", $objElementField->getCascades())); } if ($objField->getTypeId() == FIELD_TYPE_FILE) { $objValue = $objField->getValueByName("tfv_file_extension"); $strExtensions = is_object($objValue) ? $objValue->getValue() : ""; if (!empty($strExtensions)) { $strExtensions = str_replace("%s", Setting::getValueByName('file_upload_extensions'), $strExtensions); } else { $strExtensions = strtolower(Setting::getValueByName('file_upload_extensions')); } } else { $strExtensions = strtolower(Setting::getValueByName('image_upload_extensions')); } $objFieldTpl->setVariable("FIELD_FILE_TYPE", "*" . implode("; *", explode(" ", $strExtensions))); $objFieldTpl->parseCurrentBlock(); break; case FIELD_TYPE_SMALLTEXT: case FIELD_TYPE_NUMBER: case FIELD_TYPE_LINK: $objFieldTpl->addBlockfile('ELEMENT_FIELD', 'field.text', 'elementfield_text.tpl.htm'); foreach ($objContentLangs as $objContentLanguage) { $objFieldTpl->setCurrentBlock("field.text.value"); $objFieldTpl->setVariable("FIELD_LANGUAGE_ID", "efv_{$objField->getId()}_{$objContentLanguage->getId()}"); if (is_object($objElement)) { $strValue = htmlspecialchars($objElement->getValueByTemplateField($objField->getId(), $objContentLanguage->getId())); } else { $strValue = ""; } $objFieldTpl->setVariable("FIELD_LANGUAGE_VALUE", $strValue); $objFieldTpl->parseCurrentBlock(); if ($objField->getTypeId() == FIELD_TYPE_LINK) { $objFieldTpl->setCurrentBlock("field.text.elementvalue"); $objFieldTpl->setVariable("FIELD_ELEMENT_ID", "efv_{$objField->getId()}_{$objContentLanguage->getId()}"); $objFieldTpl->setVariable("ELEMENT_FIELD_ID", "efv_{$objField->getId()}"); $objFieldTpl->setVariable("FIELD_CLASS", "deeplink"); $elementTrail = Element::generateElementTrailString($strValue); $objFieldTpl->setVariable("FIELD_ELEMENT_VALUE", htmlentities($elementTrail)); $objFieldTpl->parseCurrentBlock(); } } $objFieldTpl->setCurrentBlock("field.text"); $objFieldTpl->setVariable("FIELD_ID", "efv_{$objField->getId()}"); if ($objField->getRequired()) { $objFieldTpl->setVariable("FIELD_REQUIRED", "* "); } $objFieldTpl->setVariable("FIELD_NAME", html_entity_decode($objField->getName())); if (!empty($strDescription)) { $objFieldTpl->setVariable("FIELD_DESCRIPTION", $objField->getDescription()); } if (is_object($objElement)) { $objElementField = $objElement->getFieldByTemplateField($objField->getId()); if (is_object($objElementField)) { $objFieldTpl->setVariable("FIELD_CASCADES", implode(",", $objElementField->getCascades())); } } $objFieldTpl->parseCurrentBlock(); break; case FIELD_TYPE_MOVABLECANVAS_COORDINATES: $objFieldTpl->addBlockfile('ELEMENT_FIELD', 'field.mccoordinates', 'elementfield_mccoordinates.tpl.htm'); foreach ($objContentLangs as $objContentLanguage) { $objFieldTpl->setCurrentBlock("field.mccoordinates.value"); $objFieldTpl->setVariable("FIELD_LANGUAGE_ID", "efv_{$objField->getId()}_{$objContentLanguage->getId()}"); if (is_object($objElement)) { $strValue = htmlspecialchars($objElement->getValueByTemplateField($objField->getId(), $objContentLanguage->getId())); } else { $strValue = ""; } $objFieldTpl->setVariable("FIELD_LANGUAGE_VALUE", $strValue); $objFieldTpl->parseCurrentBlock(); } $objFieldTpl->setCurrentBlock("field.mccoordinates"); $objFieldTpl->setVariable("FIELD_ID", "efv_{$objField->getId()}"); if ($objField->getRequired()) { $objFieldTpl->setVariable("FIELD_REQUIRED", "* "); } $objFieldTpl->setVariable("FIELD_NAME", html_entity_decode($objField->getName())); if (!empty($strDescription)) { $objFieldTpl->setVariable("FIELD_DESCRIPTION", $objField->getDescription()); } $objFieldTpl->setVariable("MC-API-ID", $objField->getValueByName("tfv_field_api_key")->getValue()); $objFieldTpl->setVariable("MC-MAP-ID", $objField->getValueByName("tfv_field_map_key")->getValue()); if (is_object($objElement)) { $objElementField = $objElement->getFieldByTemplateField($objField->getId()); if (is_object($objElementField)) { $objFieldTpl->setVariable("FIELD_CASCADES", implode(",", $objElementField->getCascades())); } } $objFieldTpl->parseCurrentBlock(); break; case FIELD_TYPE_SIMPLETEXT: $objFieldTpl->addBlockfile('ELEMENT_FIELD', 'field.simpletext', 'elementfield_simpletext.tpl.htm'); foreach ($objContentLangs as $objContentLanguage) { $objFieldTpl->setCurrentBlock("field.simpletext.value"); $objFieldTpl->setVariable("FIELD_LANGUAGE_ID", "efv_{$objField->getId()}_{$objContentLanguage->getId()}"); if (is_object($objElement)) { $strValue = htmlspecialchars($objElement->getValueByTemplateField($objField->getId(), $objContentLanguage->getId())); } else { $strValue = ""; } $objFieldTpl->setVariable("FIELD_LANGUAGE_VALUE", $strValue); $objFieldTpl->parseCurrentBlock(); } //*** Calculate and set the textarea height. $minHeight = 115; $maxHeight = 400; $intHeight = $minHeight; $objValue = $objField->getValueByName("tfv_field_max_characters"); $strMaxChar = is_object($objValue) ? $objValue->getValue() : ""; if (!empty($strMaxChar) && is_numeric($strMaxChar)) { $intHeight = ($strMaxChar - 500) * 0.05 + $minHeight; if ($intHeight < $minHeight) { $intHeight = $minHeight; } if ($intHeight > $maxHeight) { $intHeight = $maxHeight; } } $objFieldTpl->setCurrentBlock("field.simpletext"); $objFieldTpl->setVariable("FIELD_ID", "efv_{$objField->getId()}"); $objFieldTpl->setVariable("FIELD_HEIGHT", "{$intHeight}px"); if ($objField->getRequired()) { $objFieldTpl->setVariable("FIELD_REQUIRED", "* "); } $objFieldTpl->setVariable("FIELD_NAME", html_entity_decode($objField->getName())); if (!empty($strDescription)) { $objFieldTpl->setVariable("FIELD_DESCRIPTION", $objField->getDescription()); } if (is_object($objElement)) { $objElementField = $objElement->getFieldByTemplateField($objField->getId()); if (is_object($objElementField)) { $objFieldTpl->setVariable("FIELD_CASCADES", implode(",", $objElementField->getCascades())); } } $objFieldTpl->parseCurrentBlock(); break; case FIELD_TYPE_USER: $strFieldClass = "select-one"; $objFieldTpl->addBlockfile('ELEMENT_FIELD', 'field.select', 'elementfield_selectlist.tpl.htm'); foreach ($objContentLangs as $objContentLanguage) { $objFieldTpl->setCurrentBlock("field.select.value"); $objFieldTpl->setVariable("FIELD_LANGUAGE_ID", "efv_{$objField->getId()}_{$objContentLanguage->getId()}"); //*** Determine the selected value for the list. if (is_object($objElement)) { $strValue = $objElement->getValueByTemplateField($objField->getId(), $objContentLanguage->getId()); } else { $strValue = ""; } $objFieldTpl->setVariable("FIELD_LANGUAGE_VALUE", $strValue); $objFieldTpl->parseCurrentBlock(); } //*** Render options for the list. global $objLiveAdmin; $filters = array('container' => 'auth', 'filters' => array('account_id' => array($_CONF['app']['account']->getId()))); $objUsers = $objLiveAdmin->getUsers($filters); if (is_array($objUsers)) { foreach ($objUsers as $objUser) { $objFieldTpl->setCurrentBlock("field.select.option"); $objFieldTpl->setVariable("FIELD_VALUE", $objUser["perm_user_id"]); $objFieldTpl->setVariable("FIELD_TEXT", xhtmlsave($objUser["handle"])); $objFieldTpl->parseCurrentBlock(); } } $objFieldTpl->setCurrentBlock("field.select"); $objFieldTpl->setVariable("FIELD_SELECT_SIZE", 1); $objFieldTpl->setVariable("FIELD_CLASS", $strFieldClass); $objFieldTpl->setVariable("FIELD_MULTIPLE", ""); $objFieldTpl->setVariable("FIELD_ID", "efv_{$objField->getId()}"); if ($objField->getRequired()) { $objFieldTpl->setVariable("FIELD_REQUIRED", "* "); } $objFieldTpl->setVariable("FIELD_NAME", html_entity_decode($objField->getName())); if (!empty($strDescription)) { $objFieldTpl->setVariable("FIELD_DESCRIPTION", $objField->getDescription()); } if (is_object($objElement)) { $objElementField = $objElement->getFieldByTemplateField($objField->getId()); if (is_object($objElementField)) { $objFieldTpl->setVariable("FIELD_CASCADES", implode(",", $objElementField->getCascades())); } } $objFieldTpl->parseCurrentBlock(); break; case FIELD_TYPE_BOOLEAN: $objDefaultValue = $objField->getValueByName("tfv_boolean_default"); $strTemplValue = is_object($objDefaultValue) ? $objDefaultValue->getValue() : ""; $objFieldTpl->addBlockfile('ELEMENT_FIELD', 'field.checkbox', 'elementfield_checkbox.tpl.htm'); foreach ($objContentLangs as $objContentLanguage) { $objFieldTpl->setCurrentBlock("field.checkbox.value"); $objFieldTpl->setVariable("FIELD_LANGUAGE_ID", "efv_{$objField->getId()}_{$objContentLanguage->getId()}"); if (is_object($objElement)) { $strValue = $objElement->getValueByTemplateField($objField->getId(), $objContentLanguage->getId()); } else { $strValue = NULL; } if (!empty($strValue) || !is_null($strValue)) { //*** Do Nothing. } elseif (!empty($strTemplValue)) { $strValue = $strTemplValue; } $objFieldTpl->setVariable("FIELD_LANGUAGE_VALUE", $strValue); $objFieldTpl->parseCurrentBlock(); } $objFieldTpl->setCurrentBlock("field.checkbox"); $objFieldTpl->setVariable("FIELD_ID", "efv_{$objField->getId()}"); if ($objField->getRequired()) { $objFieldTpl->setVariable("FIELD_REQUIRED", "* "); } $objFieldTpl->setVariable("FIELD_NAME", html_entity_decode($objField->getName())); $objFieldTpl->setVariable("FIELD_VALUE", $strValue); if (!empty($strDescription)) { $objFieldTpl->setVariable("FIELD_DESCRIPTION", $objField->getDescription()); } if (is_object($objElement)) { $objElementField = $objElement->getFieldByTemplateField($objField->getId()); if (is_object($objElementField)) { $objFieldTpl->setVariable("FIELD_CASCADES", implode(",", $objElementField->getCascades())); } } $objFieldTpl->parseCurrentBlock(); break; } $strFields .= $objFieldTpl->get(); } } if (!empty($strFields)) { $objTpl->setVariable("ELEMENT_FIELDS", $strFields); } if (!$blnIsDynamic) { $objTpl->setVariable("LABEL_LANGUAGE", $objLang->get("language", "form")); $objTpl->setVariable("ACTIVE_LANGUAGE", $intDefaultLanguage); $objTpl->setVariable("DEFAULT_LANGUAGE", $intDefaultLanguage); } else { $objTpl->setCurrentBlock("feedlanguage"); $objTpl->setVariable("LABEL_LANGUAGE", $objLang->get("language", "form")); $objTpl->setVariable("ACTIVE_LANGUAGE", $intDefaultLanguage); $objTpl->setVariable("DEFAULT_LANGUAGE", $intDefaultLanguage); $objTpl->parseCurrentBlock(); } //*** Meta tab. if (is_object($objElement) && $objElement->isPage()) { $objTpl->setCurrentBlock("meta-title"); $objTpl->setVariable("HEADER", $objLang->get("meta", "label")); $objTpl->parseCurrentBlock(); $objTpl->setCurrentBlock("description-meta"); $objTpl->setVariable("LABEL", $objLang->get("metaInfo", "form")); $objTpl->parseCurrentBlock(); //*** Meta specific labels $objTpl->setVariable("LABEL_META_ALIAS", $objLang->get("alias", "form")); $objTpl->setVariable("LABEL_META_TITLE", $objLang->get("metaTitle", "label")); $objTpl->setVariable("LABEL_META_KEYWORDS", $objLang->get("metaKeywords", "label")); $objTpl->setVariable("LABEL_META_DESCRIPTION", $objLang->get("metaDescription", "label")); $objTpl->setVariable("META_KEYWORDS_NOTE", $objLang->get("metaKeywords", "tip")); $objTpl->setVariable("META_DESCRIPTION_NOTE", $objLang->get("metaDescription", "tip")); $objTpl->setVariable("META_ALIAS_NOTE", $objLang->get("alias", "tip")); $objTpl->setVariable("ACTIVE_META_LANGUAGE", $intSelectLanguage); $objTpl->setVariable("DEFAULT_META_LANGUAGE", $intDefaultLanguage); $objTpl->setVariable("LABEL_META_LANGUAGE", $objLang->get("language", "form")); //*** Meta languages $objContentLangs = ContentLanguage::select(); foreach ($objContentLangs as $objContentLanguage) { $objTpl->setCurrentBlock("list_meta-language"); $objTpl->setVariable("LANGUAGELIST_VALUE", $objContentLanguage->getId()); if ($intDefaultLanguage == $objContentLanguage->getId()) { $objTpl->setVariable("LANGUAGELIST_TEXT", $objContentLanguage->getName() . " (" . $objLang->get("default", "label") . ")"); } else { $objTpl->setVariable("LANGUAGELIST_TEXT", $objContentLanguage->getName()); } if ($intSelectLanguage == $objContentLanguage->getId()) { $objTpl->setVariable("LANGUAGELIST_SELECTED", " selected=\"selected\""); } $objTpl->parseCurrentBlock(); } //*** Meta language values. foreach ($objContentLangs as $objContentLanguage) { $strValue = $strCommand != CMD_ADD ? $objElement->getAlias($objContentLanguage->getId()) : ''; $objTpl->setCurrentBlock("field.meta_alias.value"); $objTpl->setVariable("FIELD_ALIAS_ID", "frm_meta_alias_{$objContentLanguage->getId()}"); $objTpl->setVariable("FIELD_ALIAS_VALUE", $strValue); $objTpl->parseCurrentBlock(); $objMeta = is_object($objElement) && $strCommand != CMD_ADD ? $objElement->getMeta($objContentLanguage->getId()) : NULL; $strValue = is_object($objMeta) ? $objMeta->getValueByValue("name", "title") : ""; $objTpl->setCurrentBlock("field.meta_title.value"); $objTpl->setVariable("FIELD_LANGUAGE_ID", "frm_meta_title_{$objContentLanguage->getId()}"); $objTpl->setVariable("FIELD_LANGUAGE_VALUE", $strValue); $objTpl->parseCurrentBlock(); $strValue = is_object($objMeta) ? $objMeta->getValueByValue("name", "keywords") : ""; $objTpl->setCurrentBlock("field.meta_keywords.value"); $objTpl->setVariable("FIELD_LANGUAGE_ID", "frm_meta_keywords_{$objContentLanguage->getId()}"); $objTpl->setVariable("FIELD_LANGUAGE_VALUE", $strValue); $objTpl->parseCurrentBlock(); $strValue = is_object($objMeta) ? $objMeta->getValueByValue("name", "description") : ""; $objTpl->setCurrentBlock("field.meta_description.value"); $objTpl->setVariable("FIELD_LANGUAGE_ID", "frm_meta_description_{$objContentLanguage->getId()}"); $objTpl->setVariable("FIELD_LANGUAGE_VALUE", $strValue); $objTpl->parseCurrentBlock(); } //*** Meta language cascades. if ($strCommand != CMD_ADD) { $objTpl->setVariable("META_ALIAS_CASCADES", implode(",", Alias::getCascades($objElement->getId()))); $objTpl->setVariable("META_TITLE_CASCADES", implode(",", ElementMeta::getCascades($objElement->getId(), "title"))); $objTpl->setVariable("META_KEYWORDS_CASCADES", implode(",", ElementMeta::getCascades($objElement->getId(), "keywords"))); $objTpl->setVariable("META_DESCRIPTION_CASCADES", implode(",", ElementMeta::getCascades($objElement->getId(), "description"))); } } } //*** Feeds if dynamic. if ($blnIsDynamic) { if ($strCommand == CMD_EDIT) { $objElementFeed = $objElement->getFeed(); $objFeed = Feed::selectByPK($objElementFeed->getFeedId()); $objFeeds = new DBA__Collection(); $objFeeds->addObject($objFeed); $objParent = Element::selectByPK($objElement->getParentId()); } else { $objFeeds = Feed::select(); $objParent = Element::selectByPK($intElmntId); } if (isset($objParent) && $objParent->getTypeId() == ELM_TYPE_DYNAMIC) { $objNodes = $objParent->getFeed()->getStructuredNodes(); $objTpl->setCurrentBlock("list_feedpath"); $objTpl->setVariable("VALUE", ""); $objTpl->setVariable("TEXT", "Basepath"); $objTpl->parseCurrentBlock(); $objTpl->setCurrentBlock("list_feedpath"); $objTpl->setVariable("VALUE", ""); $objTpl->setVariable("TEXT", "-------------"); $objTpl->parseCurrentBlock(); if (count($objNodes) > 0) { foreach ($objNodes as $objSubElement) { $objTpl->setCurrentBlock("list_feedpath"); $objTpl->setVariable("VALUE", $objSubElement->getName()); $objTpl->setVariable("TEXT", $objSubElement->getName()); $objTpl->parseCurrentBlock(); } } } else { if (is_object($objFeeds)) { foreach ($objFeeds as $objFeed) { $objTpl->setCurrentBlock("list_feed"); $objTpl->setVariable("FEEDLIST_VALUE", $objFeed->getId()); $objTpl->setVariable("FEEDLIST_TEXT", $objFeed->getName()); $objTpl->parseCurrentBlock(); } } } if ($strCommand == CMD_EDIT) { $blnDynamicAlias = false; $objFeedFields = $objElementFeed->getStructuredNodes(); foreach ($objFeedFields as $objFeedField) { $objTpl->setCurrentBlock("list_feed_field"); $objTpl->setVariable("FEEDLIST_VALUE", $objFeedField->getName()); $objTpl->setVariable("FEEDLIST_TEXT", $objFeedField->getName()); if ($objElementFeed->getAliasField() == $objFeedField->getName()) { $objTpl->setVariable("FEEDLIST_SELECTED", "selected=\"selected\""); $blnDynamicAlias = true; } $objTpl->parseCurrentBlock(); } if ($blnDynamicAlias) { $objTpl->setVariable("FORM_DYNAMIC_ALIAS_VALUE", "checked=\"checked\""); } $objTpl->setVariable("FORM_MAXITEMS_VALUE", $objElementFeed->getMaxItems()); //*** Template fields. foreach ($objFields as $objField) { foreach ($objContentLangs as $objContentLanguage) { $objTpl->setCurrentBlock("feed.field.value"); $objTpl->setVariable("FIELD_LANGUAGE_ID", "tpf_{$objField->getId()}_{$objContentLanguage->getId()}"); if (is_object($objElement)) { $strValue = htmlspecialchars($objElement->getFeedValueByTemplateField($objField->getId(), $objContentLanguage->getId())); } else { $strValue = ""; } $objTpl->setVariable("FIELD_LANGUAGE_VALUE", $strValue); $objTpl->parseCurrentBlock(); } $objTpl->setCurrentBlock("feed.field"); $objTpl->setVariable("FIELD_ID", "tpf_{$objField->getId()}"); $objTpl->setVariable("FIELD_NAME", html_entity_decode($objField->getName())); if (is_object($objElement)) { $objFeedField = $objElement->getFeedFieldByTemplateField($objField->getId()); if (is_object($objFeedField)) { $objTpl->setVariable("FIELD_CASCADES", implode(",", $objFeedField->getCascades())); } } $objTpl->parseCurrentBlock(); } //*** Feed fields. $objFeedFields = $objElementFeed->getStructuredNodes(); $strFields = renderRecursiveFeedFields($objFeedFields); $objTpl->setCurrentBlock("feed.tag"); $objTpl->setVariable("FEEDFIELDS", $strFields); $objTpl->parseCurrentBlock(); } } } //*** Render the element form. $objTpl->setCurrentBlock("description-details"); $objTpl->setVariable("LABEL", $objLang->get("requiredFields", "form")); $objTpl->parseCurrentBlock(); $objTpl->setVariable("LABEL_ACTIVE", $objLang->get("active", "form")); $objTpl->setVariable("LABEL_NAME", $objLang->get("name", "form")); $objTpl->setVariable("LABEL_NOTES", $objLang->get("notes", "form")); //$objTpl->setVariable("LABEL_ALIAS", $objLang->get("alias", "form")); $objTpl->setVariable("APINAME_NOTE", $objLang->get("apiNameNote", "tip")); //$objTpl->setVariable("ALIAS_NOTE", $objLang->get("alias", "tip")); $objTpl->setVariable("LABEL_SAVE", $objLang->get("save", "button")); if (isset($objElement) && $objElement->getTypeId() == ELM_TYPE_LOCKED) { $objTpl->setVariable("DISABLED_SAVE", "disabled=\"disabled\""); } if ($blnIsFolder) { $objTpl->setVariable("LABEL_ELEMENTNAME", $objLang->get("folderName", "form")); $objTpl->setVariable("LABEL_ISPAGE", $objLang->get("pageContainer", "form")); if ($blnError === false && is_object($objElement)) { $objTpl->setVariable("FORM_ISPAGE_VALUE", $objElement->getIsPage() ? "checked=\"checked\"" : ""); } } else { $objTpl->setVariable("LABEL_ELEMENTNAME", $objLang->get("elementName", "form")); $objTpl->setVariable("LABEL_TEMPLATENAME", $objLang->get("template", "form")); if ($blnIsDynamic) { if (isset($objParent) && $objParent->getTypeId() == ELM_TYPE_DYNAMIC) { $objTpl->setVariable("LABEL_FEEDPATH", $objLang->get("basepath", "form")); } else { $objTpl->setVariable("LABEL_FEEDNAME", $objLang->get("feed", "form")); } $objTpl->setVariable("LABEL_MAXITEMS", $objLang->get("maxItems", "form")); } } //*** Predefine schedule variables. $intStartHour = 8; $intStartMinute = 0; $intEndHour = 17; $intEndMinute = 0; //*** Insert values if action is edit. if ($strCommand == CMD_EDIT) { if ($blnError === false) { $objTpl->setVariable("FORM_ACTIVE_VALUE", $objElement->getActive() ? "checked=\"checked\"" : ""); $objTpl->setVariable("FORM_NAME_VALUE", str_replace("\"", """, $objElement->getName())); $objTpl->setVariable("FORM_APINAME_VALUE", $objElement->getApiname()); //$objTpl->setVariable("FORM_ALIAS_VALUE", $objElement->getAlias()); $objTpl->setVariable("FORM_NOTES_VALUE", $objElement->getDescription()); } $objTpl->setVariable("BUTTON_CANCEL_HREF", "?cid=" . NAV_PCMS_ELEMENTS . "&eid={$objElement->getParentId()}&cmd=" . CMD_LIST); $objTpl->setVariable("BUTTON_FORMCANCEL_HREF", "?cid=" . NAV_PCMS_ELEMENTS . "&eid={$objElement->getParentId()}&cmd=" . CMD_LIST); if (!$blnIsFolder && $objElement->getTypeId() != ELM_TYPE_DYNAMIC) { $objTpl->setVariable("ACTIVES_LANGUAGE", implode(",", $objElement->getLanguageActives())); } //*** Publish specific values. $objSchedule = $objElement->getSchedule(); if ($objSchedule->getStartActive()) { $strValue = Date::fromMysql("%d %B %Y", $objSchedule->getStartDate()); $objTpl->setVariable("START_DATE_DISPLAY", empty($strValue) ? " " : $strValue); $objTpl->setVariable("START_DATE_VALUE", Date::fromMysql($_CONF['app']['universalDate'], $objSchedule->getStartDate())); $strValue = Date::fromMysql("%H", $objSchedule->getStartDate()); if (!empty($strValue)) { $intStartHour = $strValue; } $strValue = Date::fromMysql("%M", $objSchedule->getStartDate()); if (!empty($strValue)) { $intStartMinute = $strValue; } $objTpl->setVariable("START_DATE_ACTIVE", "checked=\"checked\""); } else { $objTpl->setVariable("START_DATE_DISPLAY", " "); } if ($objSchedule->getEndActive()) { $strValue = Date::fromMysql("%d %B %Y", $objSchedule->getEndDate()); $objTpl->setVariable("END_DATE_DISPLAY", empty($strValue) ? " " : $strValue); $objTpl->setVariable("END_DATE_VALUE", Date::fromMysql($_CONF['app']['universalDate'], $objSchedule->getEndDate())); $strValue = Date::fromMysql("%H", $objSchedule->getEndDate()); if (!empty($strValue)) { $intEndHour = $strValue; } $strValue = Date::fromMysql("%M", $objSchedule->getEndDate()); if (!empty($strValue)) { $intEndMinute = $strValue; } $objTpl->setVariable("END_DATE_ACTIVE", "checked=\"checked\""); } else { $objTpl->setVariable("END_DATE_DISPLAY", " "); } } else { if ($blnError === false) { if (Setting::getValueByName('elmnt_active_state') == 1) { $objTpl->setVariable("FORM_ACTIVE_VALUE", "checked=\"checked\""); } } $objTpl->setVariable("BUTTON_CANCEL_HREF", "?cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}&cmd=" . CMD_LIST); $objTpl->setVariable("BUTTON_FORMCANCEL_HREF", "?cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}&cmd=" . CMD_LIST); //*** Publish specific values. $objTpl->setVariable("START_DATE_DISPLAY", " "); $objTpl->setVariable("END_DATE_DISPLAY", " "); } //*** Render tabs. if (is_object($objTemplates) && ($objTemplates->count() == 1 || $strCommand == CMD_EDIT)) { if (!$blnIsFolder) { //*** Fields tab. $objTpl->setCurrentBlock("field-title"); $objTpl->setVariable("HEADER", $objLang->get("fields", "label")); $objTpl->parseCurrentBlock(); $objTpl->setCurrentBlock("description-fields"); $objTpl->setVariable("LABEL", $objLang->get("requiredFields", "form")); $objTpl->parseCurrentBlock(); //*** Set all language as active by default for a new element if ($strCommand == CMD_ADD) { $objContentLangs = ContentLanguage::select(); $aActiveLanguages = array(); foreach ($objContentLangs as $objContentLang) { $aActiveLanguages[] = $objContentLang->getId(); } $objTpl->setVariable("ACTIVES_LANGUAGE", implode(",", $aActiveLanguages)); } } //*** Permissions tab. // $objTpl->setCurrentBlock("permission-title"); // $objTpl->setVariable("HEADER", $objLang->get("permissions", "label")); // $objTpl->parseCurrentBlock(); // $objTpl->setCurrentBlock("description-permission"); // $objTpl->setVariable("LABEL", $objLang->get("permissionInfo", "form")); // $objTpl->parseCurrentBlock(); } //*** Publish tab. $objTpl->setCurrentBlock("publish-title"); $objTpl->setVariable("HEADER", $objLang->get("publish", "label")); $objTpl->parseCurrentBlock(); $objTpl->setCurrentBlock("description-publish"); $objTpl->setVariable("LABEL", $objLang->get("publishInfo", "form")); $objTpl->parseCurrentBlock(); //*** Publish specific labels $objTpl->setVariable("LABEL_START_DATE", $objLang->get("startDate", "label")); $objTpl->setVariable("LABEL_END_DATE", $objLang->get("endDate", "label")); $objTpl->setVariable("LABEL_DATE", $objLang->get("date", "label")); $objTpl->setVariable("LABEL_TIME", $objLang->get("time", "label")); foreach (range(0, 23) as $hour) { $objTpl->setCurrentBlock("date.start.hour"); $objTpl->setVariable("VALUE", $hour); $objTpl->setVariable("LABEL", str_pad($hour, 2, 0, STR_PAD_LEFT)); if (trim($intStartHour) == $hour) { $objTpl->setVariable("SELECTED", "selected=\"selected\""); } $objTpl->parseCurrentBlock(); } foreach (range(0, 45, 15) as $minute) { $objTpl->setCurrentBlock("date.start.minute"); $objTpl->setVariable("VALUE", $minute); $objTpl->setVariable("LABEL", str_pad($minute, 2, 0, STR_PAD_LEFT)); if (trim($intStartMinute) == $minute) { $objTpl->setVariable("SELECTED", "selected=\"selected\""); } $objTpl->parseCurrentBlock(); } foreach (range(0, 23) as $hour) { $objTpl->setCurrentBlock("date.end.hour"); $objTpl->setVariable("VALUE", $hour); $objTpl->setVariable("LABEL", str_pad($hour, 2, 0, STR_PAD_LEFT)); if (trim($intEndHour) == $hour) { $objTpl->setVariable("SELECTED", "selected=\"selected\""); } $objTpl->parseCurrentBlock(); } foreach (range(0, 45, 15) as $minute) { $objTpl->setCurrentBlock("date.end.minute"); $objTpl->setVariable("VALUE", $minute); $objTpl->setVariable("LABEL", str_pad($minute, 2, 0, STR_PAD_LEFT)); if (trim($intEndMinute) == $minute) { $objTpl->setVariable("SELECTED", "selected=\"selected\""); } $objTpl->parseCurrentBlock(); } $objTpl->setVariable("LANG", strtolower($objLang->get("abbr"))); //*** Render the element form. $objTpl->setVariable("BUTTON_CANCEL", $objLang->get("back", "button")); $objTpl->setVariable("BUTTON_FORMCANCEL", $objLang->get("cancel", "button")); $objTpl->setVariable("CID", NAV_PCMS_ELEMENTS); $objTpl->setVariable("CMD", $strCommand); $objTpl->setVariable("EID", $intElmntId); break; case CMD_EXPORT_ELEMENT: $objTpl->loadTemplatefile("export.tpl.htm"); $arrElementIds = NULL; // export via selection of (multiple) elements if (isset($_GET['sel'])) { $arrElementIds = explode(',', $intElmntId); $objChild = Element::selectByPK($arrElementIds[0]); $objElement = Element::selectByPK($objChild->getParentId()); } else { $objElement = Element::selectByPK($intElmntId); } //*** Set section title. $objTpl->setVariable("MAINTITLE", $objLang->get("export", "label")); //*** Set tab title. $objTpl->setCurrentBlock("headertitel_simple"); $objTpl->setVariable("HEADER_TITLE", $objLang->get("exportOptions", "label")); $objTpl->parseCurrentBlock(); $objTpl->setVariable("FORM_NAME", "exportForm"); //*** Handle request & create export if ($_SERVER['REQUEST_METHOD'] == 'POST') { $arrElementFilters = array(); $arrTemplateFilters = array(); foreach ($_POST['elem'] as $id => $val) { $arrElementFilters[] = intval($id); $objTmpElement = Element::selectByPK(intval($id)); if (!in_array($objTmpElement->getTemplateId(), $arrTemplateFilters)) { $arrTemplateFilters[] = $objTmpElement->getTemplateId(); } } if ($_POST['sel'] == 1) { $includeSelf = false; $arrElementIds = explode(',', $intElmntId); $objChild = Element::selectByPK($arrElementIds[0]); $objElement = Element::selectByPK($objChild->getParentId()); } else { $includeSelf = true; $objElement = Element::selectByPK($intElmntId); } $strZipFile = ImpEx::exportFrom($objElement->getId(), $objElement->getTemplateId(), $arrElementFilters, $arrTemplateFilters, $_CONF['app']['account']->getId(), true, true, $includeSelf); //*** Return XML. header("HTTP/1.1 200 OK"); header("Pragma: public"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private", false); header('Content-Type: application/octetstream; charset=utf-8'); header("Content-Length: " . (string) filesize($strZipFile)); header('Content-Disposition: attachment; filename="' . date("Y-m-d") . '_exportElements.zip"'); header("Content-Transfer-Encoding: binary\n"); readfile($strZipFile); unlink($strZipFile); exit; } //*** Create element checkboxes $objTpl->setVariable("SELECT_ITEMS", $objLang->get("selectElements", "label")); $objTpl->setVariable("FORM_CHECKBOXES", createElementTree($objElement, isset($_GET['sel']), $arrElementIds)); //*** Set form buttons $objTpl->setVariable("BUTTON_FORMCANCEL_HREF", "?cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}&cmd=" . CMD_LIST); $objTpl->setCurrentBlock("singleview"); $objTpl->setVariable("BUTTON_CANCEL", $objLang->get("back", "button")); $objTpl->setVariable("BUTTON_FORMCANCEL", $objLang->get("cancel", "button")); $objTpl->setVariable("LABEL_SAVE", $objLang->get("export", "button")); $objTpl->setVariable("CID", NAV_PCMS_ELEMENTS); $objTpl->setVariable("CMD", CMD_EXPORT_ELEMENT); $objTpl->setVariable("EID", $intElmntId); $objTpl->setVariable("SEL", isset($_GET['sel']) ? '1' : '0'); $objTpl->parseCurrentBlock(); break; case CMD_IMPORT_ELEMENT: $objTpl->loadTemplatefile("import.tpl.htm"); //*** Parse the template. $objElement = Element::selectByPK($intElmntId); //*** Set section title. $objTpl->setVariable("MAINTITLE", $objLang->get("import", "label")); //*** Set tab title. $objTpl->setCurrentBlock("headertitel_simple"); $objTpl->setVariable("HEADER_TITLE", $objLang->get("importOptions", "label")); $objTpl->parseCurrentBlock(); //*** Handle request & do import if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_FILES["file"]["name"])) { if ($_FILES["file"]["error"] > 0) { $objTpl->setVariable('ERROR_MAIN', 'Error: ' . $_FILES["file"]["error"]); } else { if (end(explode(".", $_FILES["file"]["name"])) !== 'zip') { $objTpl->setVariable('ERROR_MAIN', 'Error: Only *.ZIP files allowed'); } else { if (!ImpEx::importIn($_FILES["file"]["tmp_name"], $objElement->getId(), $objElement->getTemplateId(), $_CONF['app']['account']->getId(), false, true, true)) { $objTpl->setVariable('ERROR_MAIN', 'Templates and/or fields of templates in file do not match the destination templates'); } } } } $objTpl->setVariable('CUR_LOCATION', $objElement->getName()); $objTpl->setVariable("IMPORT_FILE", $objLang->get("importFile", "label")); $objTpl->setVariable("IMPORT_FILE_TIP", $objLang->get("importFile", "tip")); //*** Set form buttons $objTpl->setVariable("BUTTON_FORMCANCEL_HREF", "?cid=" . NAV_PCMS_ELEMENTS . "&eid={$intElmntId}&cmd=" . CMD_LIST); $objTpl->setCurrentBlock("singleview"); $objTpl->setVariable("BUTTON_CANCEL", $objLang->get("back", "button")); $objTpl->setVariable("BUTTON_FORMCANCEL", $objLang->get("cancel", "button")); $objTpl->setVariable("LABEL_SAVE", $objLang->get("import", "button")); $objTpl->setVariable("CID", NAV_PCMS_ELEMENTS); $objTpl->setVariable("CMD", CMD_IMPORT_ELEMENT); $objTpl->setVariable("EID", $intElmntId); $objTpl->parseCurrentBlock(); break; } return $objTpl->get(); }
public function save() { global $_CONF, $_PATHS; if (is_object($this->__template)) { $strServer = Setting::getValueByName('ftp_server'); $strUsername = Setting::getValueByName('ftp_username'); $strPassword = Setting::getValueByName('ftp_password'); $strRemoteFolder = Setting::getValueByName('ftp_remote_folder'); //*** Element. $objElement = new Element(); $objElement->setParentId($this->__parent->getId()); $objElement->setAccountId($_CONF['app']['account']->getId()); $objElement->setPermissions($this->__permissions); $objElement->setActive($this->active); $objElement->setName($this->name); $objElement->setUsername($this->username); $objElement->setSort($this->sort); $objElement->setTypeId(ELM_TYPE_LOCKED); $objElement->setTemplateId($this->__template->getId()); $objElement->save(true, false); //*** Activate default schedule. $objSchedule = new ElementSchedule(); $objSchedule->setStartActive(0); $objSchedule->setStartDate(APP_DEFAULT_STARTDATE); $objSchedule->setEndActive(0); $objSchedule->setEndDate(APP_DEFAULT_ENDDATE); $objElement->setSchedule($objSchedule); //*** Alias. if ($objElement->isPage()) { $objAlias = new Alias(); $objAlias->setAlias($this->alias); $objElement->setAlias($objAlias); } foreach ($this->__fields as $intTemplateFieldId => $arrField) { $objTemplateField = TemplateField::selectByPK($intTemplateFieldId); $objField = new ElementField(); $objField->setElementId($objElement->getId()); $objField->setTemplateFieldId($objTemplateField->getId()); $objField->save(); foreach ($arrField as $intLanguage => $arrValue) { $objValue = $objField->getNewValueObject(); switch ($objField->getTypeId()) { case FIELD_TYPE_FILE: case FIELD_TYPE_IMAGE: //*** Upload file. $arrPath = parse_url($arrValue['value']); if ($arrPath !== false) { $strFile = @file_get_contents(str_replace(" ", "%20", $arrValue['value'])); if ($strFile !== false) { $strOriginalName = array_pop(explode("/", $arrPath['path'])); $strLocalValue = ImageField::filename2LocalName($strOriginalName); $objImageField = new ImageField($intTemplateFieldId); $arrSettings = $objImageField->getSettings(); if (file_put_contents($_PATHS['upload'] . $strOriginalName, $strFile) !== false) { if (count($arrSettings) > 1) { foreach ($arrSettings as $key => $arrSetting) { $strFileName = FileIO::add2Base($strLocalValue, $arrSetting['key']); if (copy($_PATHS['upload'] . $strOriginalName, $_PATHS['upload'] . $strFileName)) { if ($objTemplateField->getTypeId() == FIELD_TYPE_IMAGE && (!empty($arrSetting['width']) || !empty($arrSetting['height']))) { //*** Resize the image. $intQuality = empty($arrSetting['quality']) ? 75 : $arrSetting['quality']; ImageResizer::resize($_PATHS['upload'] . $strFileName, $arrSetting['width'], $arrSetting['height'], $arrSetting['scale'], $intQuality, true, NULL, false, $arrSetting['grayscale']); } //*** Move file to remote server. $objUpload = new SingleUpload(); if (!$objUpload->moveToFTP($strFileName, $_PATHS['upload'], $strServer, $strUsername, $strPassword, $strRemoteFolder)) { Log::handleError("File {$strFileName} could not be moved to remote server. " . $objUpload->errorMessage()); } } } //*** Move original file. if (rename($_PATHS['upload'] . $strOriginalName, $_PATHS['upload'] . $strLocalValue)) { $objUpload = new SingleUpload(); if (!$objUpload->moveToFTP($strLocalValue, $_PATHS['upload'], $strServer, $strUsername, $strPassword, $strRemoteFolder)) { Log::handleError("File {$strLocalValue} could not be moved to remote server. " . $objUpload->errorMessage()); } } //*** Unlink original file. @unlink($_PATHS['upload'] . $strOriginalName); } else { if ($objTemplateField->getTypeId() == FIELD_TYPE_IMAGE && (!empty($arrSettings[0]['width']) || !empty($arrSettings[0]['height']))) { $strFileName = FileIO::add2Base($strLocalValue, $arrSettings[0]['key']); //*** Resize the image. if (rename($_PATHS['upload'] . $strOriginalName, $_PATHS['upload'] . $strFileName)) { $intQuality = empty($arrSettings[0]['quality']) ? 75 : $arrSettings[0]['quality']; ImageResizer::resize($_PATHS['upload'] . $strFileName, $arrSettings[0]['width'], $arrSettings[0]['height'], $arrSettings[0]['scale'], $intQuality, true, NULL, false, $arrSettings[0]['grayscale']); //*** Move file to remote server. $objUpload = new SingleUpload(); if (!$objUpload->moveToFTP($strFileName, $_PATHS['upload'], $strServer, $strUsername, $strPassword, $strRemoteFolder)) { Log::handleError("File {$strFileName} could not be moved to remote server."); } } } //*** Move original file. if (file_exists($_PATHS['upload'] . $strOriginalName) && rename($_PATHS['upload'] . $strOriginalName, $_PATHS['upload'] . $strLocalValue)) { //*** Move file to remote server. $objUpload = new SingleUpload(); if (!$objUpload->moveToFTP($strLocalValue, $_PATHS['upload'], $strServer, $strUsername, $strPassword, $strRemoteFolder)) { Log::handleError("File {$strLocalValue} could not be moved to remote server."); } } //*** Unlink original file. @unlink($_PATHS['upload'] . $strOriginalName); } $objValue->setValue($strOriginalName . ":" . $strLocalValue . "\n"); } } } break; default: $objValue->setValue($arrValue['value']); } $objValue->setLanguageId($intLanguage); $objValue->setCascade($arrValue['cascade']); $objField->setValueObject($objValue); //*** Activate the language. $objElement->setLanguageActive($intLanguage, true); } } return $objElement; } }
private static function GetLinesFromFile($filePath) { $data = FileIO::ReadFile($filePath); $lines = explode(PHP_EOL, $data); return $lines; }
public function getAutoValue() { $objCms = PCMS_Client::getInstance(); $return = ''; switch ($this->typeid) { case FIELD_TYPE_LARGETEXT: $return = $this->getHtmlValue(); break; case FIELD_TYPE_IMAGE: $values = array(); $arrSettings = $this->getSettings(); $objImages = $this->getValue(VALUE_IMAGES); foreach ($objImages as $objImage) { $templates = array(); // search for templates foreach ($arrSettings as $arrSetting) { if ($arrSetting['api'] != '') { $templates[$arrSetting['api']] = $objCms->getFilePath() . FileIO::add2Base($objImage->getSrc(), $arrSetting['key']); } } $values[] = array('original' => $objImage->getOriginal(), 'src' => $objImage->getSrc(), 'height' => $objImage->getHeight(), 'width' => $objImage->getWidth(), 'templates' => $templates); } $return = $values; break; case FIELD_TYPE_FILE: $values = array(); $arrFiles = $this->getValue(); foreach ($arrFiles as $arrFile) { $values[] = array('original' => $arrFile['original'], 'src' => $objCms->getFilePath() . $arrFile['src'], 'download' => $objCms->getDownloadpath() . $this->elementfieldid); } $return = $values; break; case FIELD_TYPE_LINK: $return = $this->getLink(); break; default: $return = $this->getValue(); break; } return $return; }
function parseFiles($intElmntId, $strCommand) { global $objLang, $_CLEAN_POST, $objLiveUser, $_CONF, $_PATHS, $DBAConn, $objMultiUpload; $objTpl = new HTML_Template_IT($_PATHS['templates']); switch ($strCommand) { case CMD_LIST: $objTpl->loadTemplatefile("multiview.tpl.htm"); $objTpl->setVariable("MAINTITLE", $objLang->get("pcmsStorage", "menu")); $objFolder = StorageItem::selectByPK($intElmntId); if (empty($intElmntId)) { $strFolderName = "ROOT"; } else { if (is_object($objFolder)) { $strFolderName = $objFolder->getName(); } else { $strFolderName = ""; } } if (is_object($objFolder) || empty($intElmntId)) { if (empty($intElmntId)) { $objItems = StorageItems::getFromParent(0); } else { $objItems = StorageItems::getFromParent($intElmntId); } if (is_object($objItems) && $objItems->count() > 0) { //*** Initiate child item loop. $blnBreak = false; $listCount = 0; $intPosition = request("pos"); $intPosition = !empty($intPosition) && is_numeric($intPosition) ? $intPosition : 0; $intPosition = floor($intPosition / $_SESSION["listCount"]) * $_SESSION["listCount"]; $objItems->seek($intPosition); //*** Loop through the items. foreach ($objItems as $objItem) { $strMeta = $objLang->get("editedBy", "label") . " " . $objItem->getUsername() . ", " . Date::fromMysql($objLang->get("datefmt"), $objItem->getModified()); $objTpl->setCurrentBlock("multiview-item"); $objTpl->setVariable("BUTTON_REMOVE", $objLang->get("delete", "button")); $objTpl->setVariable("BUTTON_REMOVE_HREF", "javascript:StorageItem.remove({$objItem->getId()});"); $objTpl->setVariable("BUTTON_DUPLICATE", $objLang->get("duplicate", "button")); $objTpl->setVariable("BUTTON_DUPLICATE_HREF", "javascript:StorageItem.duplicate({$objItem->getId()});"); $objTpl->setVariable("MULTIITEM_VALUE", $objItem->getId()); $objTpl->setVariable("MULTIITEM_HREF", "href=\"?cid=" . NAV_PCMS_STORAGE . "&eid={$objItem->getId()}&cmd=" . CMD_EDIT . "\""); $strValue = htmlspecialchars($objItem->getName()); $strShortValue = getShortValue($strValue, 50); $intSize = strlen($strValue); $objTpl->setVariable("MULTIITEM_NAME", $intSize > 50 ? $strShortValue : $strValue); $objTpl->setVariable("MULTIITEM_TITLE", $intSize > 50 ? $strValue : ""); $objTpl->setVariable("MULTIITEM_META", $strMeta); switch ($objItem->getTypeId()) { case STORAGE_TYPE_FOLDER: $objTpl->setVariable("MULTIITEM_TYPE_CLASS", "folder"); break; case STORAGE_TYPE_FILE: $objTpl->setVariable("MULTIITEM_TYPE_CLASS", "element"); break; } $objTpl->parseCurrentBlock(); $listCount++; if ($listCount >= $_SESSION["listCount"]) { break; } } //*** Render page navigation. $pageCount = ceil($objItems->count() / $_SESSION["listCount"]); if ($pageCount > 0) { $currentPage = ceil(($intPosition + 1) / $_SESSION["listCount"]); $previousPos = $intPosition - $_SESSION["listCount"] > 0 ? $intPosition - $_SESSION["listCount"] : 0; $nextPos = $intPosition + $_SESSION["listCount"] < $objItems->count() ? $intPosition + $_SESSION["listCount"] : $intPosition; $objTpl->setVariable("PAGENAV_PAGE", sprintf($objLang->get("pageNavigation", "label"), $currentPage, $pageCount)); $objTpl->setVariable("PAGENAV_PREVIOUS", $objLang->get("previous", "button")); $objTpl->setVariable("PAGENAV_PREVIOUS_HREF", "?cid=" . NAV_PCMS_STORAGE . "&eid={$intElmntId}&pos={$previousPos}"); $objTpl->setVariable("PAGENAV_NEXT", $objLang->get("next", "button")); $objTpl->setVariable("PAGENAV_NEXT_HREF", "?cid=" . NAV_PCMS_STORAGE . "&eid={$intElmntId}&pos={$nextPos}"); //*** Top page navigation. for ($intCount = 0; $intCount < $pageCount; $intCount++) { $objTpl->setCurrentBlock("multiview-pagenavitem-top"); $position = $intCount * $_SESSION["listCount"]; if ($intCount != $intPosition / $_SESSION["listCount"]) { $objTpl->setVariable("PAGENAV_HREF", "href=\"?cid=" . NAV_PCMS_STORAGE . "&eid={$intElmntId}&pos={$position}\""); } $objTpl->setVariable("PAGENAV_VALUE", $intCount + 1); $objTpl->parseCurrentBlock(); } //*** Bottom page navigation. for ($intCount = 0; $intCount < $pageCount; $intCount++) { $objTpl->setCurrentBlock("multiview-pagenavitem-bottom"); $position = $intCount * $_SESSION["listCount"]; if ($intCount != $intPosition / $_SESSION["listCount"]) { $objTpl->setVariable("PAGENAV_HREF", "href=\"?cid=" . NAV_PCMS_STORAGE . "&eid={$intElmntId}&pos={$position}\""); } $objTpl->setVariable("PAGENAV_VALUE", $intCount + 1); $objTpl->parseCurrentBlock(); } } } } //*** Render list action pulldown. $arrActions[$objLang->get("choose", "button")] = 0; $arrActions[$objLang->get("delete", "button")] = "delete"; $arrActions[$objLang->get("duplicate", "button")] = "duplicate"; foreach ($arrActions as $key => $value) { $objTpl->setCurrentBlock("multiview-listactionitem"); $objTpl->setVariable("LIST_ACTION_TEXT", $key); $objTpl->setVariable("LIST_ACTION_VALUE", $value); $objTpl->parseCurrentBlock(); } //*** Render the rest of the page. $objTpl->setCurrentBlock("multiview"); $objTpl->setVariable("ACTIONS_OPEN", $objLang->get("pcmsOpenActionsMenu", "menu")); $objTpl->setVariable("ACTIONS_CLOSE", $objLang->get("pcmsCloseActionsMenu", "menu")); $objTpl->setVariable("LIST_LENGTH_HREF_10", "href=\"?list=10&cid=" . NAV_PCMS_STORAGE . "&eid={$intElmntId}\""); $objTpl->setVariable("LIST_LENGTH_HREF_25", "href=\"?list=25&cid=" . NAV_PCMS_STORAGE . "&eid={$intElmntId}\""); $objTpl->setVariable("LIST_LENGTH_HREF_100", "href=\"?list=100&cid=" . NAV_PCMS_STORAGE . "&eid={$intElmntId}\""); switch ($_SESSION["listCount"]) { case 10: $objTpl->setVariable("LIST_LENGTH_HREF_10", ""); break; case 25: $objTpl->setVariable("LIST_LENGTH_HREF_25", ""); break; case 100: $objTpl->setVariable("LIST_LENGTH_HREF_100", ""); break; } $objTpl->setVariable("LIST_LENGTH_HREF", "&cid=" . NAV_PCMS_STORAGE . "&eid={$intElmntId}"); $objTpl->setVariable("LIST_WITH_SELECTED", $objLang->get("withSelected", "label")); $objTpl->setVariable("LIST_ACTION_ONCHANGE", "StorageItem.multiDo(this, this[this.selectedIndex].value)"); $objTpl->setVariable("LIST_ITEMS_PER_PAGE", $objLang->get("itemsPerPage", "label")); $objTpl->setVariable("BUTTON_LIST_SELECT", $objLang->get("selectAll", "button")); $objTpl->setVariable("BUTTON_LIST_SELECT_HREF", "javascript:StorageItem.multiSelect()"); $objTpl->setVariable("BUTTON_NEWSUBJECT", $objLang->get("newFile", "button")); $objTpl->setVariable("BUTTON_NEWSUBJECT_HREF", "?cid=" . NAV_PCMS_STORAGE . "&eid={$intElmntId}&cmd=" . CMD_ADD); $objTpl->setVariable("BUTTON_NEWFOLDER", $objLang->get("newFolder", "button")); $objTpl->setVariable("BUTTON_NEWFOLDER_HREF", "?cid=" . NAV_PCMS_STORAGE . "&eid={$intElmntId}&cmd=" . CMD_ADD_FOLDER); if ($intElmntId > 0) { $objTpl->setVariable("BUTTON_EDIT", $objLang->get("edit", "button")); $objTpl->setVariable("BUTTON_EDIT_HREF", "?cid=" . NAV_PCMS_STORAGE . "&eid={$intElmntId}&cmd=" . CMD_EDIT); } $objTpl->setVariable("LABEL_SUBJECT", $objLang->get("mediaIn", "label") . " "); $objTpl->setVariable("SUBJECT_NAME", $strFolderName); $objTpl->parseCurrentBlock(); break; case CMD_REMOVE: if (strpos($intElmntId, ',') !== false) { //*** Multiple elements submitted. $arrElements = explode(',', $intElmntId); $objElements = StorageItem::selectByPK($arrElements); $intParent = $objElements->current()->getParentId(); foreach ($objElements as $objElement) { $objElement->delete(); } } else { //*** Single element submitted. $objElement = StorageItem::selectByPK($intElmntId); $intParent = $objElement->getParentId(); $objElement->delete(); } //*** Redirect the page. $strReturnTo = request('returnTo'); if (empty($strReturnTo)) { header("Location: " . Request::getUri() . "/?cid=" . request("cid") . "&cmd=" . CMD_LIST . "&eid=" . $intParent); exit; } else { header("Location: " . Request::getURI() . $strReturnTo); exit; } break; case CMD_DUPLICATE: if (strpos($intElmntId, ',') !== false) { //*** Multiple elements submitted. $arrElements = explode(',', $intElmntId); $objElements = StorageItem::selectByPK($arrElements); $intParent = $objElements->current()->getParentId(); foreach ($objElements as $objElement) { $objElement->setUsername($objLiveUser->getProperty("name")); $objDuplicate = $objElement->duplicate($objLang->get("copyOf", "label")); } } else { //*** Single element submitted. $objElement = StorageItem::selectByPK($intElmntId); $objElement->setUsername($objLiveUser->getProperty("name")); $intParent = $objElement->getParentId(); $objDuplicate = $objElement->duplicate($objLang->get("copyOf", "label")); } //*** Redirect the page. $strReturnTo = request('returnTo'); if (empty($strReturnTo)) { header("Location: " . Request::getURI() . "/?cid=" . request("cid") . "&cmd=" . CMD_LIST . "&eid=" . $intParent); exit; } else { header("Location: " . Request::getURI() . $strReturnTo); exit; } break; case CMD_ADD: case CMD_EDIT: case CMD_ADD_FOLDER: $objTpl->loadTemplatefile("storageitems.tpl.htm"); $blnError = false; $blnIsFolder = false; //*** Check the element type (element or folder) if ($strCommand == CMD_EDIT) { $objElement = StorageItem::selectByPK($intElmntId); if (is_object($objElement) && $objElement->getTypeId() == STORAGE_TYPE_FOLDER) { $blnIsFolder = true; } } else { if ($strCommand == CMD_ADD_FOLDER) { $blnIsFolder = true; } } //*** Check if the rootfolder has been submitted. if ($strCommand == CMD_EDIT && $intElmntId == 0) { //*** Redirect to list mode. header("Location: " . Request::getURI() . "/?cid=" . request("cid") . "&cmd=" . CMD_LIST . "&eid=" . $intElmntId); exit; } //*** Set section title. if ($blnIsFolder) { if ($strCommand == CMD_EDIT) { $objTpl->setVariable("MAINTITLE", $objLang->get("folderDetailsFor", "label")); $objTpl->setVariable("MAINSUB", $objElement->getName()); } else { $objTpl->setVariable("MAINTITLE", $objLang->get("folderDetails", "label")); } } else { if ($strCommand == CMD_EDIT) { $objTpl->setVariable("MAINTITLE", $objLang->get("fileDetailsFor", "label")); $objTpl->setVariable("MAINSUB", $objElement->getName()); } else { $objTpl->setVariable("MAINTITLE", $objLang->get("fileDetails", "label")); } } //*** Post the element form if submitted. if (count($_CLEAN_POST) > 0 && !empty($_CLEAN_POST['dispatch']) && $_CLEAN_POST['dispatch'] == "addStorageItem") { //*** The element form has been posted. //*** Check sanitized input. if (is_null($_CLEAN_POST["frm_name"]) && $strCommand != CMD_ADD) { $objTpl->setVariable("ERROR_NAME_ON", " error"); $objTpl->setVariable("ERROR_NAME", $objLang->get("elementName", "formerror")); $blnError = true; } if (!$blnIsFolder && empty($_FILES['frm_file_new']['name'][0])) { if (empty($_CLEAN_POST['frm_file'])) { $objTpl->setVariable("ERROR_FILE_ON", " error"); $objTpl->setVariable("ERROR_FILE", $objLang->get("noFile", "formerror")); $blnError = true; } } if (is_null($_CLEAN_POST["frm_description"])) { $objTpl->setVariable("ERROR_NOTES_ON", " error"); $objTpl->setVariable("ERROR_NOTES", $objLang->get("commonTypeText", "formerror")); $blnError = true; } //*** TODO: Check element specific fields. if ($blnError === true) { //*** Display global error. $objTpl->setVariable("FORM_NAME_VALUE", $_POST["frm_name"]); $objTpl->setVariable("FORM_NOTES_VALUE", $_POST["frm_description"]); $objTpl->setVariable("ERROR_MAIN", $objLang->get("main", "formerror")); //*** TODO: Display element specific errors. } else { //*** Input is valid. Save the element. if ($blnIsFolder || $strCommand == CMD_EDIT && is_array(Request::get('frm_file'))) { if ($strCommand == CMD_EDIT) { $objElement = StorageItem::selectByPK($intElmntId); } else { $objElement = new StorageItem(); $objElement->setParentId($_POST["eid"]); $objElement->setAccountId($_CONF['app']['account']->getId()); } $objElement->setName($_CLEAN_POST["frm_name"]); $objElement->setDescription($_CLEAN_POST["frm_description"]); $objElement->setUsername($objLiveUser->getProperty("name")); if ($blnIsFolder) { $objElement->setTypeId(STORAGE_TYPE_FOLDER); } else { $objElement->setTypeId(STORAGE_TYPE_FILE); } $objElement->save(); } else { //*** Get remote settings. $strServer = Setting::getValueByName('ftp_server'); $strUsername = Setting::getValueByName('ftp_username'); $strPassword = Setting::getValueByName('ftp_password'); $strRemoteFolder = Setting::getValueByName('ftp_remote_folder'); if ($strCommand == CMD_EDIT) { $objElement = StorageItem::selectByPK($intElmntId); $objElement->setName($_CLEAN_POST["frm_name"]); $objElement->setDescription($_CLEAN_POST["frm_description"]); $objElement->setUsername($objLiveUser->getProperty("name")); $objElement->save(); $objData = $objElement->getData(); $strOldFile = $objData->getLocalName(); } if (isset($_FILES['frm_file_new'])) { $objMultiUpload->setExtensions(explode(" ", Setting::getValueByName('file_upload_extensions') . " " . Setting::getValueByName('image_upload_extensions'))); $objMultiUpload->setTempNames($_FILES['frm_file_new']['tmp_name']); $objMultiUpload->setOriginalNames($_FILES['frm_file_new']['name']); $objMultiUpload->setErrors($_FILES['frm_file_new']['error']); $objMultiUpload->uploadFiles(); if ($objMultiUpload->getTotalFiles() == $objMultiUpload->getSuccessFiles()) { //*** Everything is cool. $localValues = $objMultiUpload->getLocalNames(); $arrCleanup = array(); foreach ($objMultiUpload->getOriginalNames() as $subkey => $subvalue) { $blnSkipData = false; if (!is_null($subvalue)) { if ($strCommand == CMD_ADD) { if (FileIO::extension($subvalue) == "zip") { //*** Zip file. Extract and add. require_once 'dzip/dUnzip2.inc.php'; $blnSkipData = true; $strZip = $_PATHS['upload'] . $localValues[$subkey]; $strTempDir = Account::generateId(); $strTempPath = $_PATHS['upload'] . $strTempDir . "/"; if (is_file($strZip)) { $objZip = new dUnzip2($strZip); if (is_object($objZip)) { array_push($arrCleanup, $localValues[$subkey]); mkdir($strTempPath); $objZip->unzipAll($strTempPath); if ($handle = opendir($strTempPath)) { while (false !== ($file = readdir($handle))) { if (is_file($strTempPath . $file)) { $objElement = new StorageItem(); $objElement->setParentId($_POST["eid"]); $objElement->setAccountId($_CONF['app']['account']->getId()); $objElement->setName($file); $objElement->setDescription($_CLEAN_POST["frm_description"]); $objElement->setUsername($objLiveUser->getProperty("name")); $objElement->setTypeId(STORAGE_TYPE_FILE); $objElement->save(); $objData = $objElement->getData(); $objData->setItemId($objElement->getId()); $objData->setOriginalName($file); $objData->setLocalName($file); $objData->save(); //*** Move file to remote server. $objUpload = new SingleUpload(); if (!$objUpload->moveToFTP($file, $strTempPath, $strServer, $strUsername, $strPassword, $strRemoteFolder)) { Log::handleError("File could not be moved to remote server. " . $objUpload->errorMessage()); } } } closedir($handle); } FileIO::unlinkDir($strTempPath); } } } else { $objElement = new StorageItem(); $objElement->setParentId($_POST["eid"]); $objElement->setAccountId($_CONF['app']['account']->getId()); $objElement->setName(empty($_CLEAN_POST["frm_name"]) ? $subvalue : $_CLEAN_POST["frm_name"]); $objElement->setDescription($_CLEAN_POST["frm_description"]); $objElement->setUsername($objLiveUser->getProperty("name")); $objElement->setTypeId(STORAGE_TYPE_FILE); $objElement->save(); $objData = $objElement->getData(); } } if (!$blnSkipData) { $objData->setItemId($objElement->getId()); $objData->setOriginalName($subvalue); $objData->setLocalName($localValues[$subkey]); $objData->save(); } } } //*** Move file to remote server. if (!$objMultiUpload->moveToFTP($strServer, $strUsername, $strPassword, $strRemoteFolder)) { $strMessage = $objMultiUpload->errorMessage(); } //*** Fix file linkage. if (is_object($objElement)) { $objElement->fixLinkedElements(); } //*** Cleanup zip files. foreach ($arrCleanup as $value) { $objFtp = new FTP($strServer, NULL, NULL, true); $objFtp->login($strUsername, $strPassword); $strFile = $strRemoteFolder . $value; $objFtp->delete($strFile); } } else { $strMessage = $objMultiUpload->errorMessage() . "<br />"; $strMessage .= "Files: " . $objMultiUpload->getTotalFiles() . " and Success: " . $objMultiUpload->getSuccessFiles(); } } //*** Remove deleted files. if ($strCommand == CMD_EDIT && !empty($strOldFile)) { $objFtp = new FTP($strServer, NULL, NULL, true); $objFtp->login($strUsername, $strPassword); $strFile = $strRemoteFolder . $strOldFile; $objFtp->delete($strFile); } } //*** Redirect the page. if (empty($strMessage)) { $intElmntId = $blnIsFolder ? $intElmntId : $objElement->getParentId(); header("Location: " . Request::getUri() . "/?cid=" . $_POST["cid"] . "&cmd=" . CMD_LIST . "&eid=" . $intElmntId); exit; } else { echo $strMessage; } } } //*** Parse the page. $objElement = StorageItem::selectByPK($intElmntId); //*** Render the details tab. $objTpl->setCurrentBlock("headertitle_simple"); $objTpl->setVariable("HEADER_TITLE", $blnIsFolder ? $objLang->get("newFolder", "label") : $objLang->get("singleFile", "label")); $objTpl->parseCurrentBlock(); //*** Render the element form. $objTpl->setCurrentBlock("description-details"); $objTpl->setVariable("LABEL", $objLang->get("requiredFields", "form")); $objTpl->parseCurrentBlock(); $objTpl->setVariable("LABEL_NAME", $objLang->get("name", "form")); $objTpl->setVariable("LABEL_REQUIRED", $objLang->get("requiredFields", "form")); $objTpl->setVariable("LABEL_SAVE", $objLang->get("save", "button")); if ($blnIsFolder) { $objTpl->setVariable("LABEL_ELEMENTNAME", $objLang->get("folderName", "form")); $objTpl->setVariable("LABEL_NOTES", $objLang->get("notes", "form")); } else { $objTpl->setVariable("LABEL_ELEMENTNAME", $objLang->get("fileName", "form")); $objTpl->setVariable("LABEL_ELEMENTNAME_TIP", $objLang->get("storageName", "tip")); $objTpl->setVariable("LABEL_CHOOSER", $objLang->get("browseImage", "label")); $objTpl->setVariable("LABEL_NOTES", $objLang->get("description", "form")); $objTpl->setVariable("FIELD_LABEL_REMOVE", $objLang->get("delete", "button")); $objTpl->setVariable("FIELD_THUMB_PATH", Setting::getValueByName("web_server") . Setting::getValueByName("file_folder")); } //*** Insert values if action is edit. if ($strCommand == CMD_EDIT) { if ($blnError === false) { $objTpl->setVariable("FORM_NAME_VALUE", $objElement->getName()); $objTpl->setVariable("FORM_NOTES_VALUE", $objElement->getDescription()); if (!$blnIsFolder) { $objData = $objElement->getData(); if (is_object($objData)) { $objTpl->setVariable("FORM_CHOOSER_VALUE", $objData->getOriginalName() . ":" . $objData->getLocalName()); } $objTpl->setVariable("FIELD_CURRENT_FILES", 1); $objTpl->setVariable("FIELD_MAX_FILES", 1); } } $objTpl->setVariable("BUTTON_CANCEL_HREF", "?cid=" . NAV_PCMS_STORAGE . "&eid={$objElement->getParentId()}&cmd=" . CMD_LIST); $objTpl->setVariable("BUTTON_FORMCANCEL_HREF", "?cid=" . NAV_PCMS_STORAGE . "&eid={$objElement->getParentId()}&cmd=" . CMD_LIST); } else { if (!$blnIsFolder) { $objTpl->setVariable("FIELD_CURRENT_FILES", 0); $objTpl->setVariable("FIELD_MAX_FILES", 50); } $objTpl->setVariable("BUTTON_CANCEL_HREF", "?cid=" . NAV_PCMS_STORAGE . "&eid={$intElmntId}&cmd=" . CMD_LIST); $objTpl->setVariable("BUTTON_FORMCANCEL_HREF", "?cid=" . NAV_PCMS_STORAGE . "&eid={$intElmntId}&cmd=" . CMD_LIST); } //*** Render the element form. $objTpl->setVariable("BUTTON_CANCEL", $objLang->get("back", "button")); $objTpl->setVariable("BUTTON_FORMCANCEL", $objLang->get("cancel", "button")); $objTpl->setVariable("CID", NAV_PCMS_STORAGE); $objTpl->setVariable("CMD", $strCommand); $objTpl->setVariable("EID", $intElmntId); break; } return $objTpl->get(); }
/** * Deletes the page from this site as well as the directory and any * containers below it. * * @return boolean */ public function removeBucket($bucketid) { if (isset($this->bucketlist[$bucketid])) { $path = Constants::GET_PAGES_DIRECTORY() . "/" . $bucketid; $io = new FileIO(); if (!$io->deleteDirectory($path, true)) { return false; } unset($this->bucketlist[$bucketid]); return true; } else { return false; } }
public static function exportElement($objDoc, $intAccountId, $intId, &$arrFiles, $arrTemplateFilters = NULL, $arrElementFilters = NULL, $includeSelf = false) { global $_CONF; $objElements = $objDoc->createElement('elements'); if ($includeSelf) { $objElement = Element::selectByPK($intId); $objDbElements = new DBA__Collection(); $objDbElements->addObject($objElement); } else { //$objDbTemplates = Templates::getFromParent($intId, false, $intAccountId); $objDbElements = Elements::getFromParent($intId, false, "'1', '2', '3', '4', '5'", $intAccountId); } if ($objDbElements->count() > 0) { foreach ($objDbElements as $objDbElement) { if (($arrTemplateFilters == NULL || in_array($objDbElement->getTemplateId(), $arrTemplateFilters)) && ($arrElementFilters == NULL || in_array($objDbElement->getId(), $arrElementFilters))) { $objElement = $objDoc->createElement('element'); $objElement->setAttribute("id", $objDbElement->getId()); $objElement->setAttribute("name", $objDbElement->getName()); $objElement->setAttribute("nameCount", $objDbElement->getNameCount()); $objElement->setAttribute("apiName", $objDbElement->getApiName()); $objElement->setAttribute("description", $objDbElement->getDescription()); $objElement->setAttribute("typeId", $objDbElement->getTypeId()); $objElement->setAttribute("templateId", $objDbElement->getTemplateId()); $objElement->setAttribute("isPage", $objDbElement->getIsPage()); $objElement->setAttribute("userId", $objDbElement->getUserId()); $objElement->setAttribute("groupId", $objDbElement->getGroupId()); $objElement->setAttribute("sort", $objDbElement->getSort()); $objElement->setAttribute("active", $objDbElement->getActive()); $objElement->setAttribute("username", $objDbElement->getUsername()); $objElement->setAttribute("created", $objDbElement->getCreated()); $objElement->setAttribute("modified", $objDbElement->getModified()); //*** Schedule. $objSchedule = $objDbElement->getSchedule(); $objElement->setAttribute("scheduleStartActive", $objSchedule->getStartActive()); $objElement->setAttribute("scheduleStartDate", $objSchedule->getStartDate()); $objElement->setAttribute("scheduleEndActive", $objSchedule->getEndActive()); $objElement->setAttribute("scheduleEndDate", $objSchedule->getEndDate()); //*** Fields. $arrActiveLangs = $objDbElement->getLanguageActives(); $objContentLangs = ContentLanguage::select(); $objFields = $objDoc->createElement('fields'); $objDbFields = $objDbElement->getFields(); foreach ($objDbFields as $objDbField) { $objField = $objDoc->createElement('field'); $objField->setAttribute("templateFieldId", $objDbField->getTemplateFieldId()); $objField->setAttribute("sort", $objDbField->getSort()); foreach ($objContentLangs as $objContentLanguage) { $objValue = $objDbField->getValueObject($objContentLanguage->getId()); if (is_object($objValue)) { $strValue = str_replace("&", "&", $objValue->getValue()); $objLanguage = $objDoc->createElement('language', $strValue); $objLanguage->setAttribute("id", $objContentLanguage->getId()); $objLanguage->setAttribute("active", in_array($objContentLanguage->getId(), $arrActiveLangs) ? 1 : 0); $objLanguage->setAttribute("cascade", $objValue->getCascade()); $objField->appendChild($objLanguage); switch ($objDbField->getTypeId()) { case FIELD_TYPE_FILE: $arrFileTemp = explode("\n", $strValue); foreach ($arrFileTemp as $fileValue) { if (!empty($fileValue)) { $arrTemp = explode(":", $fileValue); $strSrc = count($arrTemp) > 1 ? $arrTemp[1] : $arrTemp[0]; array_push($arrFiles, $strSrc); } } break; case FIELD_TYPE_IMAGE: $arrFileTemp = explode("\n", $strValue); foreach ($arrFileTemp as $fileValue) { if (!empty($fileValue)) { $arrTemp = explode(":", $fileValue); $strSrc = count($arrTemp) > 1 ? $arrTemp[1] : $arrTemp[0]; $objImageField = new ImageField($objDbField->getTemplateFieldId()); $arrSettings = $objImageField->getSettings(); foreach ($arrSettings as $key => $arrSetting) { if (!empty($arrSetting['width']) || !empty($arrSetting['height'])) { //*** Add file. array_push($arrFiles, FileIO::add2Base($strSrc, $arrSetting['key'])); } } array_push($arrFiles, $strSrc); } } break; } } } $objFields->appendChild($objField); } if ($objDbFields->count() > 0) { $objElement->appendChild($objFields); } else { $objDbLanguages = ElementLanguage::selectByElement($objDbElement->getId()); $objLanguages = $objDoc->createElement('languages'); foreach ($objDbLanguages as $objDbLanguage) { if ($objDbLanguage->getActive()) { $objLanguage = $objDoc->createElement('language'); $objLanguage->setAttribute("id", $objDbLanguage->getLanguageId()); $objLanguage->setAttribute("active", $objDbLanguage->getActive()); $objLanguage->setAttribute("cascade", $objDbLanguage->getCascade()); $objLanguages->appendChild($objLanguage); } } if ($objDbLanguages->count() > 0) { $objElement->appendChild($objLanguages); } } //*** Feed fields. $objDbFeed = $objDbElement->getFeed(); if (is_object($objDbFeed) && $objDbFeed->getId() > 0) { $objFeed = $objDoc->createElement('feed'); $objFeed->setAttribute("feedId", $objDbFeed->getFeedId()); $objFeed->setAttribute("feedPath", $objDbFeed->getFeedPath()); $objFeed->setAttribute("maxItems", $objDbFeed->getMaxItems()); $objFeed->setAttribute("sortBy", $objDbFeed->getSortBy()); $objFeed->setAttribute("aliasField", $objDbFeed->getAliasField()); $objDbFields = ElementFieldFeed::selectByElement($objDbElement->getId()); foreach ($objDbFields as $objDbField) { $objField = $objDoc->createElement('feedfield'); $objField->setAttribute("templateFieldId", $objDbField->getTemplateFieldId()); $objField->setAttribute("feedPath", $objDbField->getFeedPath()); $objField->setAttribute("xpath", $objDbField->getXpath()); $objField->setAttribute("languageId", $objDbField->getLanguageId()); $objField->setAttribute("cascade", $objDbField->getCascade()); $objField->setAttribute("sort", $objDbField->getSort()); $objFeed->appendChild($objField); } $objElement->appendChild($objFeed); } //*** Meta values. if ($objDbElement->isPage()) { $blnHasMeta = false; $objMeta = $objDoc->createElement('meta'); foreach ($objContentLangs as $objContentLanguage) { $objDbMeta = $objDbElement->getMeta($objContentLanguage->getId()); if (is_object($objDbMeta)) { $objLanguage = $objDoc->createElement('language'); $objLanguage->setAttribute("id", $objContentLanguage->getId()); $strValue = str_replace("&", "&", $objDbMeta->getValueByValue("name", "title")); $objLanguage->setAttribute("title", $strValue); $strValue = str_replace("&", "&", $objDbMeta->getValueByValue("name", "keywords")); $objLanguage->setAttribute("keywords", $strValue); $strValue = str_replace("&", "&", $objDbMeta->getValueByValue("name", "description")); $objLanguage->setAttribute("description", $strValue); $objMeta->appendChild($objLanguage); $blnHasMeta = true; } } if ($blnHasMeta) { $objElement->appendChild($objMeta); } } //*** Permissions. $objPermissions = $objDoc->createElement('permissions'); $objDbPermissions = $objDbElement->getPermissions(); $objPermissions->setAttribute("users", implode(",", $objDbPermissions->getUserId())); $objPermissions->setAttribute("groups", implode(",", $objDbPermissions->getGroupId())); $objElement->appendChild($objPermissions); //*** Sub elements. $objSubElements = self::exportElement($objDoc, $intAccountId, $objDbElement->getId(), $arrFiles, $arrTemplateFilters, $arrElementFilters); if ($objSubElements) { $objElement->appendChild($objSubElements); } $objElements->appendChild($objElement); } } } return $objElements; }
private function createUser($username, $password, $usertype, $pagePermissions) { $io = new FileIO(); $newuser = new User($username, $usertype); $newuser->setPassword($password); if (!empty($pagePermissions)) { foreach ($pagePermissions as $page => $perm) { $newuser->addPagePermission($page, $perm); } } $filename = Constants::GET_USERS_DIRECTORY() . '/' . $username . '.usr'; $serialized = serialize($newuser); return $io->writeFile($filename, $serialized); }
/** * @param string $alias */ public static function io_handler($alias) { switch ($_GET['action']) { // General case "permission": require_once "io/data.io.php"; DataIO::permission(); break; case "chown": require_once "io/data.io.php"; DataIO::change_owner(); break; case "chgroup": require_once "io/data.io.php"; DataIO::change_group(); break; case "image_browser_detail": require_once "io/data.io.php"; DataIO::image_browser_detail(); break; case "image_browser_multi": require_once "io/data.io.php"; DataIO::image_browser_multi(); break; // Values // Values case "value_detail": require_once "io/value.io.php"; ValueIO::detail(); break; case "value_history": require_once "io/value.io.php"; ValueIO::history(); break; case "value_delete_version": require_once "io/value.io.php"; ValueIO::delete_version(); break; // File // File case "file_add": require_once "io/file.io.php"; FileIO::upload(); break; case "file_update": case "file_update_minor": require_once "io/file.io.php"; FileIO::update(); break; case "file_detail": require_once "io/file.io.php"; FileIO::detail(); break; case "file_history": require_once "io/file.io.php"; FileIO::history(); break; case "file_delete": require_once "io/file.io.php"; FileIO::delete(); break; case "file_delete_version": require_once "io/file.io.php"; FileIO::delete_version(); break; // Parameter // Parameter case "parameter_detail": require_once "io/parameter.io.php"; ParameterIO::detail(); break; case "parameter_history": require_once "io/parameter.io.php"; ParameterIO::history(); break; // Common Dialogs // Common Dialogs case "common_dialog": require_once "core/modules/base/common.request.php"; CommonRequest::common_dialog(); break; // Default // Default default: require_once "io/data.io.php"; DataIO::browser(); break; } }
/** * This method checks to see if this bucket already exists in the directory or not. */ private function bucketExists() { $path = Constants::GET_PAGES_DIRECTORY() . "/" . $this->getBucketId() . "/.bucket"; $io = new FileIO(); return $io->fileExists($path); }
function main() { $nick = getNickFromArgs(); $mapData = null; $charData = null; // This will force everyone into creating a Dynasty save. // We patching shit, yo. $dynPatch = false; $dynPath = getSaveFilePath($nick, SaveFileType::Dynasty); if (!file_exists($dynPath)) { saveGame($nick, SaveFileType::Dynasty); $dynPatch = true; } if (!checkIfNewGame($nick)) { // Load character save data. $charFilePath = getSaveFilePath($nick, SaveFileType::Character); $charData = FileIO::UnserializeFile($charFilePath); $charDataDirty = false; // Load map save data. $mapFilePath = getSaveFilePath($nick, SaveFileType::Map); $mapData = FileIO::UnserializeFile($mapFilePath); $mapDataDirty = false; // Load dynasty save data. $dynFilePath = getSaveFilePath($nick, SaveFileType::Dynasty); $dynData = FileIO::UnserializeFile($dynFilePath); $dynDataDirty = false; // Put everyone into the dynasty initialisation state, just this once. //$notYetPatched = !isset($charData->patched); $notYetPatched = !isset($dynData->initialised); $notPatching = $charData->state != GameStates::DynastyInit; if (empty($dynData) || $notYetPatched && $notPatching) { $charData->patchState = $charData->state; $charData->patchPrevState = $charData->previousState; DEBUG_echo("Patching in Dynasty..."); StateManager::ChangeState($charData, GameStates::DynastySplash); } // Patch the stat changes in. doStatPatchIfNeeded($charData); // Ensure it's sane. if (empty($charData) || empty($mapData)) { echo "ERROR: Save data's f****d.\n"; exit(3); } // Read STDIN for input. $input = readStdin(); switch ($charData->state) { case GameStates::DynastySplash: DEBUG_echo("DynastySplash"); echo "Your Dynasty begins, and needs a name. Choose your name wisely - you cannot alter history.\n"; StateManager::ChangeState($charData, GameStates::DynastyInit); $dynData->initialised = true; $charDataDirty = true; $dynDataDirty = true; break; case GameStates::DynastyInit: DEBUG_echo("DynastyInit"); // Validate input. $validName = preg_match("/^[a-zA-Z]{1,16}\$/", $input, $output); if (!$validName) { echo "Please enter a valid name. Letters only, between 1 and 16 characters.\n"; return; } $dynData->name = $input; $output = "The Dynasty of {$input} begins! Onwards, to adventure!"; echo "{$output}\n"; // Hook back up to where we were. $charData->state = $charData->patchState; $charData->previousState = $charData->patchPrevState; $charDataDirty = true; $dynDataDirty = true; break; case GameStates::NameSelect: DEBUG_echo("NameSelect"); $validName = preg_match("/^[a-zA-Z]{1,16}\$/", $input, $output); if (!$validName) { echo "Please enter a valid name. Letters only, between 1 and 16 characters.\n"; exit(13); } $output = "Please choose a class for {$input} {$dynData->name}: "; global $classSelect; foreach ($classSelect->commands as $fragment) { $output .= "{$fragment->displayString}, "; } $output = rtrim($output, ", ") . "\n"; echo $output; $charData->name = $input; StateManager::ChangeState($charData, GameStates::ClassSelect); $charDataDirty = true; break; case GameStates::ClassSelect: DEBUG_echo("ClassSelect"); $input = strtolower($input); $setClass = classSelect($input, $charData, $dynData, $charData->name); if ($setClass) { StateManager::ChangeState($charData, GameStates::FirstPlay); $charDataDirty = true; } break; // Initialise the characters // Initialise the characters case GameStates::FirstPlay: DEBUG_echo("FirstPlay"); firstPlay($charData, $dynData); StateManager::ChangeState($charData, GameStates::Adventuring); // purposeful fall-through! // The main loop for when we're romping around. // purposeful fall-through! // The main loop for when we're romping around. case GameStates::Adventuring: DEBUG_echo("Adventuring"); adventuring($input, $charData, $mapData, $dynData); $charDataDirty = true; $mapDataDirty = true; break; // Sleepy nap time. // Sleepy nap time. case GameStates::Resting: DEBUG_echo("Resting"); resting($input, $charData, $mapData); $charDataDirty = true; break; // IT'S CLOBBERING TIME // IT'S CLOBBERING TIME case GameStates::Combat: DEBUG_echo("Combat"); combat($input, $charData, $mapData, $dynData); $charDataDirty = true; $mapDataDirty = true; break; case GameStates::Spellcasting: DEBUG_echo("Spellcasting"); $nonCombat = isset($charData->previousState) && $charData->previousState != GameStates::Combat; spellcasting($input, $charData, $mapData, $nonCombat); $charDataDirty = true; $mapDataDirty = true; break; case GameStates::Looting: DEBUG_echo("Looting"); looting($input, $charData, $mapData); $charDataDirty = true; $mapDataDirty = true; break; case GameStates::LevelUp: DEBUG_echo("LevelUp"); levelUp($input, $charData, $mapData); $charDataDirty = true; break; case GameStates::UsingItem: DEBUG_echo("UsingItem"); $nonCombat = isset($charData->previousState) && $charData->previousState != GameStates::Combat; usingItem($input, $charData, $mapData, $nonCombat); $charDataDirty = true; break; case GameStates::Shopping: DEBUG_echo("Shopping"); shopping($input, $charData, $mapData); $charDataDirty = true; $mapDataDirty = true; break; case GameStates::Dynasty: DEBUG_echo("Dynasty"); dynasty($input, $charData, $mapData, $dynData); $charDataDirty = true; $dynDataDirty = true; break; default: break; } } else { // Initialise the character save. saveGame($nick, SaveFileType::Character); // Initialise the map save. saveGame($nick, SaveFileType::Map); // Prompt for name/dynasty select. if (!$dynPatch) { echo "How do you want to alter your Dynasty?\n"; } else { echo "Welcome to blaventure!\n"; } } if (isset($charData) && $charDataDirty) { saveGame($nick, SaveFileType::Character, $charData); } if (isset($mapData) && $mapDataDirty) { saveGame($nick, SaveFileType::Map, $mapData); } if (isset($dynData) && $dynDataDirty) { saveGame($nick, SaveFileType::Dynasty, $dynData); } }
include_once '../src/util.php'; require_once __DIR__ . '/../src/framework/classloader.php'; /* * this is the login form, it provides a secure way to access the application. it relies on the * cred.php file, which holds a hashed version of the password. */ $message = ''; if (!isset($_SESSION['UID']) || !isset($_SESSION['USER'])) { //If the form is submitted, then check the username and password if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (isset($_POST['loginp']) && isset($_POST['loginu'])) { $u = $_POST['loginu']; $p = $_POST['loginp']; $p = sha1($p); //Unserialize all our users to check for a user with this name $io = new FileIO(); $users = array(); $userFiles = $io->getDirectoryFiles(Constants::GET_USERS_DIRECTORY()); $cuser = new User('dummy1', 'dummy2'); $userFound = false; foreach ($userFiles as $userFile) { $val = $io->readFile(Constants::GET_USERS_DIRECTORY() . '/' . $userFile); $cuser = unserialize($val); if ($cuser->getUsername() == $u) { $userFound = true; break; } } if ($userFound) { if ($cuser->getPassword() == $p) { $_SESSION['UID'] = $cuser->getUsername();