Admin_PageController::getDataByIdAction PHP Метод

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

public getDataByIdAction ( )
    public function getDataByIdAction()
    {
        // check for lock
        if (Element\Editlock::isLocked($this->getParam("id"), "document")) {
            $this->_helper->json(["editlock" => Element\Editlock::getByElement($this->getParam("id"), "document")]);
        }
        Element\Editlock::lock($this->getParam("id"), "document");
        $page = Document\Page::getById($this->getParam("id"));
        $page = clone $page;
        $page = $this->getLatestVersion($page);
        $pageVersions = Element\Service::getSafeVersionInfo($page->getVersions());
        $page->setVersions(array_splice($pageVersions, 0, 1));
        $page->getScheduledTasks();
        $page->idPath = Element\Service::getIdPath($page);
        $page->userPermissions = $page->getUserPermissions();
        $page->setLocked($page->isLocked());
        $page->setParent(null);
        if ($page->getContentMasterDocument()) {
            $page->contentMasterDocumentPath = $page->getContentMasterDocument()->getRealFullPath();
        }
        // get depending redirects
        $redirectList = new Redirect\Listing();
        $redirectList->setCondition("target = ?", $page->getId());
        $page->redirects = $redirectList->load();
        // unset useless data
        $page->setElements(null);
        $page->childs = null;
        $this->addTranslationsData($page);
        $this->minimizeProperties($page);
        //Hook for modifying return value - e.g. for changing permissions based on object data
        //data need to wrapped into a container in order to pass parameter to event listeners by reference so that they can change the values
        $returnValueContainer = new \Pimcore\Model\Tool\Admin\EventDataContainer(object2array($page));
        \Pimcore::getEventManager()->trigger("admin.document.get.preSendData", $this, ["document" => $page, "returnValueContainer" => $returnValueContainer]);
        if ($page->isAllowed("view")) {
            $this->_helper->json($returnValueContainer->getData());
        }
        $this->_helper->json(false);
    }