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();
 }
Пример #2
0
 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;
 }
Пример #3
0
 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;
 }