getCustomViewConfig() публичный статический Метод

public static getCustomViewConfig ( ) : array | boolean
Результат array | boolean
Пример #1
0
 public function adminCssAction()
 {
     // customviews config
     $cvData = Tool::getCustomViewConfig();
     $this->view->customviews = $cvData;
     $this->getResponse()->setHeader("Content-Type", "text/css; charset=UTF-8", true);
 }
Пример #2
0
 public function treeGetChildsByIdAction()
 {
     $object = Object::getById($this->getParam("node"));
     $objectTypes = null;
     $objects = [];
     if ($object instanceof Object\Concrete) {
         $class = $object->getClass();
         if ($class->getShowVariants()) {
             $objectTypes = array(Object\AbstractObject::OBJECT_TYPE_FOLDER, Object\AbstractObject::OBJECT_TYPE_OBJECT, Object\AbstractObject::OBJECT_TYPE_VARIANT);
         }
     }
     if (!$objectTypes) {
         $objectTypes = array(Object\AbstractObject::OBJECT_TYPE_OBJECT, Object\AbstractObject::OBJECT_TYPE_FOLDER);
     }
     if ($object->hasChilds($objectTypes)) {
         $limit = intval($this->getParam("limit"));
         if (!$this->getParam("limit")) {
             $limit = 100000000;
         }
         $offset = intval($this->getParam("start"));
         $childsList = new Object\Listing();
         $condition = "o_parentId = '" . $object->getId() . "'";
         // custom views start
         if ($this->getParam("view")) {
             $cvConfig = Tool::getCustomViewConfig();
             $cv = $cvConfig[$this->getParam("view") - 1];
             if ($cv["classes"]) {
                 $cvConditions = array();
                 $cvClasses = explode(",", $cv["classes"]);
                 foreach ($cvClasses as $cvClass) {
                     $cvConditions[] = "o_classId = '" . $cvClass . "'";
                 }
                 $cvConditions[] = "o_type = 'folder'";
                 if (count($cvConditions) > 0) {
                     $condition .= " AND (" . implode(" OR ", $cvConditions) . ")";
                 }
             }
         }
         // custom views end
         if (!$this->getUser()->isAdmin()) {
             $userIds = $this->getUser()->getRoles();
             $userIds[] = $this->getUser()->getId();
             $condition .= " AND (\n                                                    (select list from users_workspaces_object where userId in (" . implode(',', $userIds) . ") and LOCATE(CONCAT(o_path,o_key),cpath)=1  ORDER BY LENGTH(cpath) DESC LIMIT 1)=1\n                                                    OR\n                                                    (select list from users_workspaces_object where userId in (" . implode(',', $userIds) . ") and LOCATE(cpath,CONCAT(o_path,o_key))=1  ORDER BY LENGTH(cpath) DESC LIMIT 1)=1\n                                                 )";
         }
         $childsList->setCondition($condition);
         $childsList->setLimit($limit);
         $childsList->setOffset($offset);
         $childsList->setOrderKey("FIELD(o_type, 'folder') DESC, o_key ASC", false);
         $childsList->setObjectTypes($objectTypes);
         $childs = $childsList->load();
         foreach ($childs as $child) {
             $tmpObject = $this->getTreeNodeConfig($child);
             if ($child->isAllowed("list")) {
                 $objects[] = $tmpObject;
             }
         }
     }
     //Hook for modifying return value - e.g. for changing permissions based on object data
     //data need to wrapped into a container in order to pass parameter to event listeners by reference so that they can change the values
     $returnValueContainer = new Model\Tool\Admin\EventDataContainer($objects);
     \Pimcore::getEventManager()->trigger("admin.object.treeGetChildsById.preSendData", $this, array("returnValueContainer" => $returnValueContainer));
     if ($this->getParam("limit")) {
         $this->_helper->json(array("offset" => $offset, "limit" => $limit, "total" => $object->getChildAmount(array(Object\AbstractObject::OBJECT_TYPE_OBJECT, Object\AbstractObject::OBJECT_TYPE_FOLDER, Object\AbstractObject::OBJECT_TYPE_VARIANT), $this->getUser()), "nodes" => $returnValueContainer->getData(), "fromPaging" => intval($this->getParam("fromPaging"))));
     } else {
         $this->_helper->json($returnValueContainer->getData());
     }
 }
Пример #3
0
 public function getCustomviewsAction()
 {
     $data = Tool::getCustomViewConfig();
     $this->_helper->json(array("success" => true, "data" => $data));
 }
Пример #4
0
 public function removeCustomView()
 {
     $customViews = \Pimcore\Tool::getCustomViewConfig();
     if ($customViews) {
         foreach ($customViews as $key => $view) {
             if ($view['name'] == 'CoreShop') {
                 unset($customViews[$key]);
                 break;
             }
         }
         $writer = new \Zend_Config_Writer_Xml(array('config' => new \Zend_Config(array('views' => array('view' => $customViews))), 'filename' => PIMCORE_CONFIGURATION_DIRECTORY . '/customviews.xml'));
         $writer->write();
     }
 }
Пример #5
0
 public function indexAction()
 {
     // IE compatibility
     //$this->getResponse()->setHeader("X-UA-Compatible", "IE=8; IE=9", true);
     // clear open edit locks for this session (in the case of a reload, ...)
     \Pimcore\Model\Element\Editlock::clearSession(session_id());
     // check maintenance
     $maintenance_enabled = false;
     $manager = Model\Schedule\Manager\Factory::getManager("maintenance.pid");
     $lastExecution = $manager->getLastExecution();
     if ($lastExecution) {
         if (time() - $lastExecution < 610) {
             // maintenance script should run at least every 10 minutes + a little tolerance
             $maintenance_enabled = true;
         }
     }
     $this->view->maintenance_enabled = \Zend_Json::encode($maintenance_enabled);
     // configuration
     $sysConfig = Config::getSystemConfig();
     $this->view->config = $sysConfig;
     //mail settings
     $mailIncomplete = false;
     if ($sysConfig->email) {
         if (!$sysConfig->email->debug->emailaddresses) {
             $mailIncomplete = true;
         }
         if (!$sysConfig->email->sender->email) {
             $mailIncomplete = true;
         }
         if ($sysConfig->email->method == "smtp" && !$sysConfig->email->smtp->host) {
             $mailIncomplete = true;
         }
     }
     $this->view->mail_settings_complete = \Zend_Json::encode(!$mailIncomplete);
     // report configuration
     $this->view->report_config = Config::getReportConfig();
     // customviews config
     $cvConfig = Tool::getCustomViewConfig();
     $cvData = array();
     if ($cvConfig) {
         foreach ($cvConfig as $node) {
             $tmpData = $node;
             $rootNode = Model\Object::getByPath($tmpData["rootfolder"]);
             if ($rootNode) {
                 $tmpData["rootId"] = $rootNode->getId();
                 $tmpData["allowedClasses"] = explode(",", $tmpData["classes"]);
                 $tmpData["showroot"] = (bool) $tmpData["showroot"];
                 $cvData[] = $tmpData;
             }
         }
     }
     $this->view->customview_config = $cvData;
     // upload limit
     $max_upload = filesize2bytes(ini_get("upload_max_filesize") . "B");
     $max_post = filesize2bytes(ini_get("post_max_size") . "B");
     $upload_mb = min($max_upload, $max_post);
     $this->view->upload_max_filesize = $upload_mb;
     // csrf token
     $user = $this->getUser();
     $this->view->csrfToken = Tool\Session::useSession(function ($adminSession) use($user) {
         if (!isset($adminSession->csrfToken) && !$adminSession->csrfToken) {
             $adminSession->csrfToken = sha1(microtime() . $user->getName() . uniqid());
         }
         return $adminSession->csrfToken;
     });
     if (\Pimcore\Tool\Admin::isExtJS6()) {
         $this->forward("index6");
     }
 }
Пример #6
0
 public function indexAction()
 {
     // clear open edit locks for this session (in the case of a reload, ...)
     \Pimcore\Model\Element\Editlock::clearSession(session_id());
     // check maintenance
     $maintenance_enabled = false;
     $manager = Model\Schedule\Manager\Factory::getManager("maintenance.pid");
     $lastExecution = $manager->getLastExecution();
     if ($lastExecution) {
         if (time() - $lastExecution < 610) {
             // maintenance script should run at least every 10 minutes + a little tolerance
             $maintenance_enabled = true;
         }
     }
     $this->view->maintenance_enabled = \Zend_Json::encode($maintenance_enabled);
     // configuration
     $sysConfig = Config::getSystemConfig();
     $this->view->config = $sysConfig;
     //mail settings
     $mailIncomplete = false;
     if ($sysConfig->email) {
         if (!$sysConfig->email->debug->emailaddresses) {
             $mailIncomplete = true;
         }
         if (!$sysConfig->email->sender->email) {
             $mailIncomplete = true;
         }
         if ($sysConfig->email->method == "smtp" && !$sysConfig->email->smtp->host) {
             $mailIncomplete = true;
         }
     }
     $this->view->mail_settings_complete = \Zend_Json::encode(!$mailIncomplete);
     // report configuration
     $this->view->report_config = Config::getReportConfig();
     $cvData = [];
     // still needed when publishing objects
     $cvConfig = Tool::getCustomViewConfig();
     if ($cvConfig) {
         foreach ($cvConfig as $node) {
             $tmpData = $node;
             // backwards compatibility
             $treeType = $tmpData["treetype"] ? $tmpData["treetype"] : "object";
             $rootNode = Model\Element\Service::getElementByPath($treeType, $tmpData["rootfolder"]);
             if ($rootNode) {
                 $tmpData["rootId"] = $rootNode->getId();
                 $tmpData["allowedClasses"] = $tmpData["classes"] ? explode(",", $tmpData["classes"]) : null;
                 $tmpData["showroot"] = (bool) $tmpData["showroot"];
                 // Check if a user has privileges to that node
                 if ($rootNode->isAllowed("list")) {
                     $cvData[] = $tmpData;
                 }
             }
         }
     }
     $this->view->customview_config = $cvData;
     // upload limit
     $max_upload = filesize2bytes(ini_get("upload_max_filesize") . "B");
     $max_post = filesize2bytes(ini_get("post_max_size") . "B");
     $upload_mb = min($max_upload, $max_post);
     $this->view->upload_max_filesize = $upload_mb;
     // session lifetime (gc)
     $session_gc_maxlifetime = ini_get("session.gc_maxlifetime");
     if (empty($session_gc_maxlifetime)) {
         $session_gc_maxlifetime = 120;
     }
     $this->view->session_gc_maxlifetime = $session_gc_maxlifetime;
     // csrf token
     $user = $this->getUser();
     $this->view->csrfToken = Tool\Session::useSession(function ($adminSession) use($user) {
         if (!isset($adminSession->csrfToken) && !$adminSession->csrfToken) {
             $adminSession->csrfToken = sha1(microtime() . $user->getName() . uniqid());
         }
         return $adminSession->csrfToken;
     });
     if (\Pimcore\Tool\Admin::isExtJS6()) {
         $this->forward("index6");
     }
 }
Пример #7
0
 /** Returns the element tree config for the given config name
  * @param $name
  * @return array
  */
 protected static function getRuntimeElementTreeConfig($name)
 {
     $masterConfig = self::getPerspectivesConfig()->toArray();
     $config = $masterConfig[$name];
     if (!$config) {
         $config = [];
     }
     $tmpResult = $config["elementTree"];
     if (is_null($tmpResult)) {
         $tmpResult = [];
     }
     $result = [];
     $cfConfigMapping = [];
     $cvConfigs = Tool::getCustomViewConfig();
     if ($cvConfigs) {
         foreach ($cvConfigs as $node) {
             $tmpData = $node;
             if (!isset($tmpData["id"])) {
                 Logger::error("custom view ID is missing " . var_export($tmpData, true));
                 continue;
             }
             if ($tmpData["hidden"]) {
                 continue;
             }
             // backwards compatibility
             $treeType = $tmpData["treetype"] ? $tmpData["treetype"] : "object";
             $rootNode = Model\Element\Service::getElementByPath($treeType, $tmpData["rootfolder"]);
             if ($rootNode) {
                 $tmpData["type"] = "customview";
                 $tmpData["rootId"] = $rootNode->getId();
                 $tmpData["allowedClasses"] = $tmpData["classes"] ? explode(",", $tmpData["classes"]) : null;
                 $tmpData["showroot"] = (bool) $tmpData["showroot"];
                 $customViewId = $tmpData["id"];
                 $cfConfigMapping[$customViewId] = $tmpData;
             }
         }
     }
     foreach ($tmpResult as $resultItem) {
         if ($resultItem["hidden"]) {
             continue;
         }
         if ($resultItem["type"] == "customview") {
             $customViewId = $resultItem["id"];
             if (!$customViewId) {
                 Logger::error("custom view id missing " . var_export($resultItem, true));
                 continue;
             }
             $customViewCfg = $cfConfigMapping[$customViewId];
             if (!$customViewId) {
                 Logger::error("no custom view config for id  " . $customViewId);
                 continue;
             }
             foreach ($resultItem as $specificConfigKey => $specificConfigValue) {
                 $customViewCfg[$specificConfigKey] = $specificConfigValue;
             }
             $result[] = $customViewCfg;
         } else {
             $result[] = $resultItem;
         }
     }
     usort($result, function ($treeA, $treeB) {
         $a = $treeA["sort"] ? $treeA["sort"] : 0;
         $b = $treeB["sort"] ? $treeB["sort"] : 0;
         if ($a > $b) {
             return 1;
         } elseif ($a < $b) {
             return -1;
         } else {
             return 0;
         }
     });
     return $result;
 }
Пример #8
0
 public static function getCustomViewById($id)
 {
     $customViews = Tool::getCustomViewConfig();
     if ($customViews) {
         foreach ($customViews as $customView) {
             if ($customView["id"] == $id) {
                 return $customView;
             }
         }
     }
 }