Exemplo n.º 1
0
 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");
     }
 }
Exemplo n.º 2
0
 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];
 }