Admin_ObjectHelperController::prepareExportList PHP Метод

prepareExportList() защищенный Метод

protected prepareExportList ( )
    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];
    }