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 function getFieldById($intId) { $objReturn = NULL; $intId = (int) $intId; if ($intId > 0) { $strSql = "SELECT pcms_element_field.* FROM pcms_element_field, pcms_element, pcms_element_schedule\n\t\t\t\t\tWHERE pcms_element_field.id = %s\n\t\t\t\t\tAND pcms_element.id = pcms_element_field.elementId\n\t\t\t\t\tAND pcms_element.active = '1'\n\t\t\t\t\tAND pcms_element.accountId = '%s'\n\t\t\t\t\tAND pcms_element.id = pcms_element_schedule.elementId\n\t\t\t\t\tAND pcms_element_schedule.startDate <= '%s'\n\t\t\t\t\tAND pcms_element_schedule.endDate >= '%s'\n\t\t\t\t\tORDER BY pcms_element_field.sort"; $objFields = ElementField::select(sprintf($strSql, DBA__Object::escape($intId), PCMS_Client::getAccount()->getId(), __Elements::toMysql(), __Elements::toMysql())); if ($objFields->count() > 0) { $objField = $objFields->current(); $objReturn = new __ElementField($objField->getElementId(), TemplateField::selectByPk($objField->getTemplateFieldId())); } } return $objReturn; }
public static function treeRender($strType, $intElmntId) { global $_CONF, $objLang, $strCommand; $intCid = 0; $strTreeConfig = ""; $strReturn = ""; $strDragMethod = ""; switch ($strType) { case "elements": $intCid = NAV_PCMS_ELEMENTS; $strDragMethod = "Element::setParent"; $strReturn .= "function doOnImageRollOver(itemId) { return overlib('" . self::escapeForXml($objLang->get("editElement", "tip")) . "'); }\n"; $strTreeConfig = "objTree.enableDragAndDrop(true);\n"; $strTreeConfig .= "objTree.enableMultiselection(true,true);\n"; $strTreeConfig .= "objTree.setOnImageClickHandler(doOnImageSelect);\n"; $strTreeConfig .= "objTree.setOnImageRollOverHandler(doOnImageRollOver);\n"; $strTreeConfig .= "objTree.setOnImageRollOutHandler(doOnImageRollOut);\n"; $strTreeConfig .= "objTree.setDragHandler(doOnDrag);\n"; $strTreeConfig .= "objTree.setDragBehavior('complex');\n"; break; case "elements-ckeditor": $intCid = NAV_PCMS_ELEMENTS; $strTreeConfig .= "objTree.setOnImageClickHandler(doOnSelect);\n"; $strTreeConfig .= "objTree.setOnClickHandler(doOnSelect);\n"; break; case "templates": case "templatefields": $intCid = NAV_PCMS_TEMPLATES; $strDragMethod = "Template::setParent"; $strReturn .= "function doOnImageRollOver(itemId) { return overlib('" . self::escapeForXml($objLang->get("editTemplate", "tip")) . "'); }\n"; $strTreeConfig = "objTree.enableDragAndDrop(true);\n"; $strTreeConfig .= "objTree.enableMultiselection(true,true);\n"; $strTreeConfig .= "objTree.setOnImageClickHandler(doOnImageSelect);\n"; $strTreeConfig .= "objTree.setOnImageRollOverHandler(doOnImageRollOver);\n"; $strTreeConfig .= "objTree.setOnImageRollOutHandler(doOnImageRollOut);\n"; $strTreeConfig .= "objTree.setDragHandler(doOnDrag);\n"; $strTreeConfig .= "objTree.setDragBehavior('complex');\n"; if ($strType == "templatefields") { $objTemplateField = TemplateField::selectByPk($intElmntId); $intElmntId = $objTemplateField->getTemplateId(); $strType = "templates"; } break; case "users": $intCid = NAV_MYPUNCH_USERS; break; case "forms": $intCid = NAV_PCMS_FORMS; $strReturn .= "function doOnImageRollOver(itemId) { return overlib('" . self::escapeForXml($objLang->get("editForm", "tip")) . "'); }\n"; $strTreeConfig .= "objTree.setOnImageClickHandler(doOnImageSelect);\n"; $strTreeConfig .= "objTree.setOnImageRollOverHandler(doOnImageRollOver);\n"; $strTreeConfig .= "objTree.setOnImageRollOutHandler(doOnImageRollOut);\n"; break; case "storage": $intCid = NAV_PCMS_STORAGE; $strDragMethod = "StorageItem::setParent"; $strReturn .= "function doOnImageRollOver(itemId) { return overlib('" . self::escapeForXml($objLang->get("editFolder", "tip")) . "'); }\n"; $strTreeConfig = "objTree.enableDragAndDrop(true);\n"; $strTreeConfig .= "objTree.enableMultiselection(true,true);\n"; $strTreeConfig .= "objTree.setOnImageClickHandler(doOnImageSelect);\n"; $strTreeConfig .= "objTree.setOnImageRollOverHandler(doOnImageRollOver);\n"; $strTreeConfig .= "objTree.setOnImageRollOutHandler(doOnImageRollOut);\n"; $strTreeConfig .= "objTree.setDragHandler(doOnDrag);\n"; $strTreeConfig .= "objTree.setDragBehavior('complex');\n"; break; case "media-ckeditor": $intCid = NAV_PCMS_STORAGE; $strTreeConfig .= "objTree.setOnImageClickHandler(doOnSelect);\n"; $strTreeConfig .= "objTree.setOnClickHandler(doOnSelect);\n"; break; } $strReturn .= "var objTree;\n"; $strReturn .= "function doOnLoad() { this.openItem({$intElmntId});this.selectItem({$intElmntId}, false, false); window._treeLoaded = true; }\n"; $strReturn .= "function doOnSelect(itemId) { if('{$strType}' == 'elements-ckeditor') { insertIntoCkEditor('?eid=' + itemId); } else if('{$strType}' == 'media-ckeditor') { insertIntoCkEditor('?mid=' + itemId); } else if (objTree.getSelectedItemId().split(',').length == 1) { document.location.href = '?cid={$intCid}&eid=' + itemId; } }\n"; $strReturn .= "function doOnImageSelect(itemId) { if('{$strType}' == 'elements-ckeditor') { insertIntoCkEditor('?eid=' + itemId); } else if('{$strType}' == 'media-ckeditor') { insertIntoCkEditor('?mid=' + itemId); } else if (objTree.getSelectedItemId().split(',').length == 1) { document.location.href = '?cid={$intCid}&eid=' + itemId + '&cmd=3'; } }\n"; $strReturn .= "function doOnImageRollOut(itemId) { return nd(); }\n"; $strReturn .= "function doOnOpenEnd() { window._treeLoaded = true; }\n"; $strReturn .= "function doOnDrag(idSubject, idTarget, idTargetParent, objTreeSubject, objTreeTarget) {\n"; $strReturn .= "var objSaver = new dtmlXMLLoaderObject(null, null, false);\n"; $strReturn .= "objSaver.loadXML(\"ajax.php?cmd={$strDragMethod}&eid=\" + idSubject + \"&parentId=\" + idTarget);\n"; $strReturn .= "var objRoot = objSaver.getXMLTopNode(\"value\");\n"; $strReturn .= "if (objRoot) {\n"; $strReturn .= "var id = objRoot.firstChild.text;\n"; $strReturn .= "if (id == undefined) {\n"; $strReturn .= "var id = objRoot.firstChild.nodeValue;\n"; $strReturn .= "}\n"; $strReturn .= "if (id == -1) {\n"; $strReturn .= "alert(\"Save failed\");\n"; $strReturn .= "return false;\n"; $strReturn .= "} else {\n"; $strReturn .= "//objTreeTarget.selectItem(idTarget, true);\n"; $strReturn .= "return true;\n"; $strReturn .= "}\n"; $strReturn .= "} else {\n"; $strReturn .= "return false;\n"; $strReturn .= "}\n"; $strReturn .= "}\n"; if ($strType !== 'elements-ckeditor' && $strType !== 'media-ckeditor') { $strReturn .= "function loadTree() {\n"; $strReturn .= "objTree = new dhtmlXTreeObject('treeContainer', '100%', '100%', -1);\n"; $strReturn .= "objTree.setXMLAutoLoading('/ajaxtree.php?type=" . $strType . "');\n"; $strReturn .= "objTree.setImagePath('/images/xmltree/');\n"; $strReturn .= "objTree.setOnClickHandler(doOnSelect);\n"; $strReturn .= $strTreeConfig; $strReturn .= "objTree.setOnOpenEndHandler(doOnOpenEnd);\n"; $strReturn .= "objTree.loadXML('/ajaxtree.php?cmd=init&type=" . $strType . "&id=" . $intElmntId . "', function() {objTree.openItem({$intElmntId});objTree.selectItem({$intElmntId}, false, false); window._treeLoaded = true;});\n"; $strReturn .= "objTree.openItem({$intElmntId});\n"; $strReturn .= "objTree.selectItem({$intElmntId}, false, false);\n"; $strReturn .= "window._treeApi = objTree;\n"; // new stuff depends on this //*** Add elementfield link field dragzones. if ($strType == "elements") { $objElement = Element::selectByPk($intElmntId); if (is_object($objElement)) { switch ($strCommand) { case CMD_ADD: $objTemplates = $objElement->getSubTemplates(); if ($objTemplates->count() == 1) { //*** Only one template available. $objTemplate = $objTemplates->current(); $objFields = TemplateField::selectByTypeId(FIELD_TYPE_LINK, $objTemplate->getId()); foreach ($objFields as $objField) { $strReturn .= "objTree.dragger.addDragLanding(document.getElementById('efv_{$objField->getId()}'), new DragDropLink);\n"; } } case CMD_EDIT: $objFields = TemplateField::selectByTypeId(FIELD_TYPE_LINK, $objElement->getTemplateId()); foreach ($objFields as $objField) { $strReturn .= "objTree.dragger.addDragLanding(document.getElementById('efv_{$objField->getId()}'), new DragDropLink);\n"; } break; } } } $strReturn .= "}\n"; } return $strReturn; }