protected function getData() { try { $locale = Zend_Registry::get("Zend_Locale"); } catch (Exception $e) { return array(); } $cacheKey = "glossary_" . $locale->getLanguage(); try { $data = Zend_Registry::get($cacheKey); return $data; } catch (Exception $e) { } if (!($data = Pimcore_Model_Cache::load($cacheKey))) { $list = new Glossary_List(); $list->setCondition("language = ?", $locale->getLanguage()); $list->setOrderKey("LENGTH(`text`)", false); $list->setOrder("DESC"); $data = $list->getDataArray(); $data = $this->prepareData($data); Pimcore_Model_Cache::save($data, $cacheKey, array("glossary"), null, 995); Zend_Registry::set($cacheKey, $data); } return $data; }
public function glossaryAction() { if ($this->_getParam("data")) { if ($this->getUser()->isAllowed("glossary")) { Pimcore_Model_Cache::clearTag("glossary"); if ($this->_getParam("xaction") == "destroy") { $id = Zend_Json::decode($this->_getParam("data")); $glossary = Glossary::getById($id); $glossary->delete(); $this->_helper->json(array("success" => true, "data" => array())); } else { if ($this->_getParam("xaction") == "update") { $data = Zend_Json::decode($this->_getParam("data")); // save glossary $glossary = Glossary::getById($data["id"]); if ($data["link"]) { if ($doc = Document::getByPath($data["link"])) { $tmpLink = $data["link"]; $data["link"] = $doc->getId(); } } $glossary->setValues($data); $glossary->save(); if ($link = $glossary->getLink()) { if (intval($link) > 0) { if ($doc = Document::getById(intval($link))) { $glossary->setLink($doc->getFullPath()); } } } $this->_helper->json(array("data" => $glossary, "success" => true)); } else { if ($this->_getParam("xaction") == "create") { $data = Zend_Json::decode($this->_getParam("data")); unset($data["id"]); // save glossary $glossary = new Glossary(); if ($data["link"]) { if ($doc = Document::getByPath($data["link"])) { $tmpLink = $data["link"]; $data["link"] = $doc->getId(); } } $glossary->setValues($data); $glossary->save(); if ($link = $glossary->getLink()) { if (intval($link) > 0) { if ($doc = Document::getById(intval($link))) { $glossary->setLink($doc->getFullPath()); } } } $this->_helper->json(array("data" => $glossary, "success" => true)); } } } } else { Logger::err("user [" . $this->getUser()->getId() . "] attempted to modify static routes, but has no permission to do so."); } } else { // get list of routes $list = new Glossary_List(); $list->setLimit($this->_getParam("limit")); $list->setOffset($this->_getParam("start")); if ($this->_getParam("sort")) { $list->setOrderKey($this->_getParam("sort")); $list->setOrder($this->_getParam("dir")); } if ($this->_getParam("filter")) { $list->setCondition("`text` LIKE " . $list->quote("%" . $this->_getParam("filter") . "%")); } $list->load(); $glossaries = array(); foreach ($list->getGlossary() as $glossary) { if ($link = $glossary->getLink()) { if (intval($link) > 0) { if ($doc = Document::getById(intval($link))) { $glossary->setLink($doc->getFullPath()); } } } $glossaries[] = $glossary; } $this->_helper->json(array("data" => $glossaries, "success" => true, "total" => $list->getTotalCount())); } $this->_helper->json(false); }
protected function getData() { if (Zend_Registry::isRegistered("Zend_Locale")) { $locale = Zend_Registry::get("Zend_Locale"); } else { return array(); } $siteId = ""; try { $site = Site::getCurrentSite(); if ($site instanceof Site) { $siteId = $site->getId(); } } catch (Exception $e) { // not inside a site } $cacheKey = "glossary_" . $locale->getLanguage() . "_" . $siteId; try { $data = Zend_Registry::get($cacheKey); return $data; } catch (Exception $e) { } if (!($data = Pimcore_Model_Cache::load($cacheKey))) { $list = new Glossary_List(); $list->setCondition("(language = ? OR language IS NULL OR language = '') AND (site = ? OR site IS NULL OR site = '')", array($locale->getLanguage(), $siteId)); $list->setOrderKey("LENGTH(`text`)", false); $list->setOrder("DESC"); $data = $list->getDataArray(); $data = $this->prepareData($data); Pimcore_Model_Cache::save($data, $cacheKey, array("glossary"), null, 995); Zend_Registry::set($cacheKey, $data); } return $data; }