Admin_ClassificationstoreController::addGroupsAction PHP Метод

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

public addGroupsAction ( )
    public function addGroupsAction()
    {
        $ids = \Zend_Json::decode($this->getParam("groupIds"));
        $keyCondition = "groupId in (" . implode(",", $ids) . ")";
        $keyList = new Classificationstore\KeyGroupRelation\Listing();
        $keyList->setCondition($keyCondition);
        $keyList->setOrderKey(["sorter", "id"]);
        $keyList->setOrder(["ASC", "ASC"]);
        $keyList = $keyList->load();
        $groupCondition = "id in (" . implode(",", $ids) . ")";
        $groupList = new Classificationstore\GroupConfig\Listing();
        $groupList->setCondition($groupCondition);
        $groupList->setOrder("ASC");
        $groupList->setOrderKey("id");
        $groupList = $groupList->load();
        $data = [];
        foreach ($groupList as $groupData) {
            $data[$groupData->getId()] = ["name" => $groupData->getName(), "id" => $groupData->getId(), "description" => $groupData->getDescription(), "keys" => []];
        }
        foreach ($keyList as $keyData) {
            $groupId = $keyData->getGroupId();
            $keyList = $data[$groupId]["keys"];
            $type = $keyData->getType();
            $definition = json_decode($keyData->getDefinition());
            $definition = \Pimcore\Model\Object\Classificationstore\Service::getFieldDefinitionFromJson($definition, $type);
            if (method_exists($definition, "__wakeup")) {
                $definition->__wakeup();
            }
            $keyList[] = ["name" => $keyData->getName(), "id" => $keyData->getKeyId(), "description" => $keyData->getDescription(), "definition" => $definition];
            $data[$groupId]["keys"] = $keyList;
        }
        return $this->_helper->json($data);
    }