Admin_SettingsController::glossaryAction PHP Метод

glossaryAction() публичный Метод

public glossaryAction ( )
    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::isExtJS6()) {
                    $id = $data["id"];
                } else {
                    $id = $data;
                }
                $glossary = Glossary::getById($id);
                $glossary->delete();
                $this->_helper->json(["success" => true, "data" => []]);
            } elseif ($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->getRealFullPath());
                        }
                    }
                }
                $this->_helper->json(["data" => $glossary, "success" => true]);
            } elseif ($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->getRealFullPath());
                        }
                    }
                }
                $this->_helper->json(["data" => $glossary, "success" => true]);
            }
        } else {
            // get list of glossaries
            $list = new Glossary\Listing();
            $list->setLimit($this->getParam("limit"));
            $list->setOffset($this->getParam("start"));
            $sortingSettings = \Pimcore\Admin\Helper\QueryParams::extractSortingSettings($this->getAllParams());
            if ($sortingSettings['orderKey']) {
                $list->setOrderKey($sortingSettings['orderKey']);
                $list->setOrder($sortingSettings['order']);
            }
            if ($this->getParam("filter")) {
                $list->setCondition("`text` LIKE " . $list->quote("%" . $this->getParam("filter") . "%"));
            }
            $list->load();
            $glossaries = [];
            foreach ($list->getGlossary() as $glossary) {
                if ($link = $glossary->getLink()) {
                    if (intval($link) > 0) {
                        if ($doc = Document::getById(intval($link))) {
                            $glossary->setLink($doc->getRealFullPath());
                        }
                    }
                }
                $glossaries[] = $glossary;
            }
            $this->_helper->json(["data" => $glossaries, "success" => true, "total" => $list->getTotalCount()]);
        }
        $this->_helper->json(false);
    }