/** * Loads a list of Classificationstore collection configs for the specified parameters, returns an array of config elements * * @return array */ public function load() { $sql = "SELECT id FROM " . Object\Classificationstore\CollectionConfig\Dao::TABLE_NAME_COLLECTIONS . $this->getCondition() . $this->getOrder() . $this->getOffsetLimit(); $configsData = $this->db->fetchCol($sql, $this->model->getConditionVariables()); $configData = []; foreach ($configsData as $config) { $configData[] = Object\Classificationstore\CollectionConfig::getById($config); } $this->model->setList($configData); return $configData; }
public function collectionsAction() { if ($this->getParam("data")) { $dataParam = $this->getParam("data"); $data = \Zend_Json::decode($dataParam); $id = $data["id"]; $config = Classificationstore\CollectionConfig::getById($id); foreach ($data as $key => $value) { if ($key != "id") { $setter = "set" . $key; $config->{$setter}($value); } } $config->save(); $this->_helper->json(array("success" => true, "data" => $config)); } else { $start = 0; $limit = 15; $orderKey = "name"; $order = "ASC"; if ($this->getParam("dir")) { $order = $this->getParam("dir"); } if ($this->getParam("limit")) { $limit = $this->getParam("limit"); } if ($this->getParam("start")) { $start = $this->getParam("start"); } $sortingSettings = \Pimcore\Admin\Helper\QueryParams::extractSortingSettings($this->getAllParams()); if ($sortingSettings['orderKey'] && $sortingSettings['order']) { $orderKey = $sortingSettings['orderKey']; $order = $sortingSettings['order']; } if ($this->getParam("overrideSort") == "true") { $orderKey = "id"; $order = "DESC"; } $allowedCollectionIds = array(); if ($this->getParam("oid")) { $object = Object_Concrete::getById($this->getParam("oid")); $class = $object->getClass(); $fd = $class->getFieldDefinition($this->getParam("fieldname")); $allowedGroupIds = $fd->getAllowedGroupIds(); if ($allowedGroupIds) { $db = \Pimcore\Db::get(); $query = "select * from classificationstore_collectionrelations where groupId in (" . implode(",", $allowedGroupIds) . ")"; $relationList = $db->fetchAll($query); if (is_array($relationList)) { foreach ($relationList as $item) { $allowedCollectionIds[] = $item["colId"]; } } } } $list = new Classificationstore\CollectionConfig\Listing(); $list->setLimit($limit); $list->setOffset($start); $list->setOrder($order); $list->setOrderKey($orderKey); $condition = ""; $db = Db::get(); $searchfilter = $this->getParam("searchfilter"); if ($searchfilter) { $condition = "(name LIKE " . $db->quote("%" . $searchfilter . "%") . " OR description LIKE " . $db->quote("%" . $searchfilter . "%") . ")"; } if ($this->getParam("filter")) { $filterString = $this->getParam("filter"); $filters = json_decode($filterString); $count = 0; foreach ($filters as $f) { if ($count > 0) { $condition .= " AND "; } $count++; if (\Pimcore\Tool\Admin::isExtJS6()) { $condition .= $db->getQuoteIdentifierSymbol() . $f->property . $db->getQuoteIdentifierSymbol() . " LIKE " . $db->quote("%" . $f->value . "%"); } else { $condition .= $db->getQuoteIdentifierSymbol() . $f->field . $db->getQuoteIdentifierSymbol() . " LIKE " . $db->quote("%" . $f->value . "%"); } } } if ($allowedCollectionIds) { if ($condition) { $condition .= " AND "; } $condition .= " id in (" . implode(",", $allowedCollectionIds) . ")"; } $list->setCondition($condition); $list->load(); $configList = $list->getList(); $rootElement = array(); $data = array(); foreach ($configList as $config) { $name = $config->getName(); if (!$name) { $name = "EMPTY"; } $item = array("id" => $config->getId(), "name" => $name, "description" => $config->getDescription()); if ($config->getCreationDate()) { $item["creationDate"] = $config->getCreationDate(); } if ($config->getModificationDate()) { $item["modificationDate"] = $config->getModificationDate(); } $data[] = $item; } $rootElement["data"] = $data; $rootElement["success"] = true; $rootElement["total"] = $list->getTotalCount(); return $this->_helper->json($rootElement); } }