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);
}