/** * Runs update index for all tenants * - but does not run processPreparationQueue or processUpdateIndexQueue * * @param $objectListClass * @param string $condition * @param bool $updateIndexStructures * @param string $loggername */ public static function updateIndex($objectListClass, $condition = "", $updateIndexStructures = false, $loggername = "indexupdater") { $updater = OnlineShop_Framework_Factory::getInstance()->getIndexService(); if ($updateIndexStructures) { \Pimcore\Model\Cache::clearTag("ecommerceconfig"); $updater->createOrUpdateIndexStructures(); } $page = 0; $pageSize = 100; $count = $pageSize; while ($count > 0) { self::log($loggername, "========================="); self::log($loggername, "Update Index Page: " . $page); self::log($loggername, "========================="); $products = new $objectListClass(); $products->setUnpublished(true); $products->setOffset($page * $pageSize); $products->setLimit($pageSize); $products->setObjectTypes(array("object", "folder", "variant")); $products->setIgnoreLocalizedFields(true); $products->setCondition($condition); foreach ($products as $p) { self::log($loggername, "Updating product " . $p->getId()); $updater->updateIndex($p); } $page++; $count = count($products->getObjects()); Pimcore::collectGarbage(); } }
public function glossaryAction() { if ($this->getParam("data")) { $this->checkPermission("glossary"); Cache::clearTag("glossary"); if ($this->getParam("xaction") == "destroy") { $data = \Zend_Json::decode($this->getParam("data")); if (\Pimcore\Tool\Admin::isExtJS5()) { $id = $data["id"]; } else { $id = $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 { // get list of glossaries $list = new Glossary\Listing(); $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); }
/** * @return void */ public function clearDependentCache() { // this is mostly called in Redirect\Resource not here try { \Pimcore\Model\Cache::clearTag("redirect"); } catch (\Exception $e) { \Logger::crit($e); } }
public function clearCacheAction() { \Pimcore\Model\Cache::clearTag("ecommerceconfig"); exit; }
/** * @return void */ public function clearDependentCache() { // this is mostly called in Staticroute\Dao not here try { \Pimcore\Model\Cache::clearTag("staticroute"); } catch (\Exception $e) { \Logger::crit($e); } }
/** * @return void */ public function delete() { // empty object cache try { Cache::clearTag("customlayout_" . $this->getId()); } catch (\Exception $e) { } // empty output cache try { Cache::clearTag("output"); } catch (\Exception $e) { } $this->getResource()->delete(); }
/** * @return void */ public function delete() { // delete all objects using this class $list = new Listing(); $list->setCondition("o_classId = ?", $this->getId()); $list->load(); foreach ($list->getObjects() as $o) { $o->delete(); } $this->deletePhpClasses(); // empty object cache try { Cache::clearTag("class_" . $this->getId()); } catch (\Exception $e) { } // empty output cache try { Cache::clearTag("output"); } catch (\Exception $e) { } $customLayouts = new ClassDefinition\CustomLayout\Listing(); $customLayouts->setCondition("classId = " . $this->getId()); $customLayouts = $customLayouts->load(); foreach ($customLayouts as $customLayout) { $customLayout->delete(); } $this->getDao()->delete(); }