Determines the custom layout definition (if necessary) for the given class
public static getCustomLayoutDefinitionForGridColumnConfig ( |
||
$class | ||
$objectId | integer | |
return | array | layout |
public function getClassDefinitionForColumnConfigAction() { $class = Object\ClassDefinition::getById(intval($this->getParam("id"))); $objectId = intval($this->getParam("oid")); $filteredDefinitions = Object\Service::getCustomLayoutDefinitionForGridColumnConfig($class, $objectId); $layoutDefinitions = isset($filteredDefinitions["layoutDefinition"]) ? $filteredDefinitions["layoutDefinition"] : false; $filteredFieldDefinition = isset($filteredDefinitions["fieldDefinition"]) ? $filteredDefinitions["fieldDefinition"] : false; $class->setFieldDefinitions(null); $result = []; $result['objectColumns']['childs'] = $layoutDefinitions->getChilds(); $result['objectColumns']['nodeLabel'] = "object_columns"; $result['objectColumns']['nodeType'] = "object"; // array("id", "fullpath", "published", "creationDate", "modificationDate", "filename", "classname"); $systemColumnNames = Object\Concrete::$systemColumnNames; $systemColumns = []; foreach ($systemColumnNames as $systemColumn) { $systemColumns[] = ["title" => $systemColumn, "name" => $systemColumn, "datatype" => "data", "fieldtype" => "system"]; } $result['systemColumns']['nodeLabel'] = "system_columns"; $result['systemColumns']['nodeType'] = "system"; $result['systemColumns']['childs'] = $systemColumns; $list = new Object\Objectbrick\Definition\Listing(); $list = $list->load(); foreach ($list as $brickDefinition) { $classDefs = $brickDefinition->getClassDefinitions(); if (!empty($classDefs)) { foreach ($classDefs as $classDef) { if ($classDef['classname'] == $class->getId()) { $fieldName = $classDef["fieldname"]; if ($filteredFieldDefinition && !$filteredFieldDefinition[$fieldName]) { continue; } $key = $brickDefinition->getKey(); $result[$key]['nodeLabel'] = $key; $result[$key]['nodeType'] = "objectbricks"; $result[$key]['childs'] = $brickDefinition->getLayoutdefinitions()->getChilds(); break; } } } } $this->_helper->json($result); }