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; }