public function diffVersionsAction() { Pimcore\Model\Object\AbstractObject::setDoNotRestoreKeyAndPath(true); $id1 = intval($this->getParam("from")); $id2 = intval($this->getParam("to")); $version1 = Model\Version::getById($id1); $object1 = $version1->loadData(); $version2 = Model\Version::getById($id2); $object2 = $version2->loadData(); Pimcore\Model\Object\AbstractObject::setDoNotRestoreKeyAndPath(false); if ($object1 && $object2) { if ($object1->isAllowed("versions") && $object2->isAllowed("versions")) { $this->view->object1 = $object1; $this->view->object2 = $object2; } else { throw new \Exception("Permission denied, version ids [" . $id1 . ", " . $id2 . "]"); } } else { throw new \Exception("Version with ids [" . $id1 . ", " . $id2 . "] doesn't exist"); } }
protected function prepareExportList() { $requestedLanguage = $this->extractLanguage(); $folder = Pimcore\Model\Object\AbstractObject::getById($this->getParam("folderId")); $class = Object\ClassDefinition::getById($this->getParam("classId")); $className = $class->getName(); $listClass = "\\Pimcore\\Model\\Object\\" . ucfirst($className) . "\\Listing"; if (!empty($folder)) { $conditionFilters = ["o_path LIKE '" . $folder->getRealFullPath() . "%'"]; } else { $conditionFilters = []; } $featureJoins = []; if ($this->getParam("filter")) { $conditionFilters[] = Object\Service::getFilterCondition($this->getParam("filter"), $class); $featureFilters = Object\Service::getFeatureFilters($this->getParam("filter"), $class); if ($featureFilters) { $featureJoins = array_merge($featureJoins, $featureFilters["joins"]); } } if ($this->getParam("condition")) { $conditionFilters[] = "(" . $this->getParam("condition") . ")"; } /** @var Object\Listing\Concrete $list */ $list = new $listClass(); $list->setCondition(implode(" AND ", $conditionFilters)); //parameters specified in the objects grid $ids = $this->getParam('ids', []); if (!empty($ids)) { //add a condition if id numbers are specified $list->addConditionParam('o_id IN (' . implode(',', $ids) . ')'); } $list->setOrder("ASC"); $list->setOrderKey("o_id"); $objectType = $this->getParam("objecttype"); if ($objectType) { if ($objectType == Object\AbstractObject::OBJECT_TYPE_OBJECT && $class->getShowVariants()) { $list->setObjectTypes([Object\AbstractObject::OBJECT_TYPE_OBJECT, Object\AbstractObject::OBJECT_TYPE_VARIANT]); } else { $list->setObjectTypes([$objectType]); } } list($fields, $bricks) = $this->extractFieldsAndBricks(); if (!empty($bricks)) { foreach ($bricks as $b) { $list->addObjectbrick($b); } } $list->setLocale($requestedLanguage); Object\Service::addGridFeatureJoins($list, $featureJoins, $class, $featureFilters, $requestedLanguage); return [$list, $fields, $requestedLanguage]; }