Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
 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;
 }