getCustomLayoutDefinitionForGridColumnConfig() public static method

Determines the custom layout definition (if necessary) for the given class
public static getCustomLayoutDefinitionForGridColumnConfig ( ClassDefinition $class, integer $objectId ) : array
$class ClassDefinition
$objectId integer
return array layout
コード例 #1
0
ファイル: ClassController.php プロジェクト: pimcore/pimcore
 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);
 }