Esempio n. 1
0
 /**
  * Processes layout field by collecting its display parameters and processing nested fields
  *
  * @param MetaDataManager $metaDataManager Metadata manager
  * @param array $field The field being processed
  * @param array $fieldDefs Field definitions of the module the layout belongs to
  * @param array $fields Resulting set of fields
  * @param array $displayParams Resulting display parameters
  */
 public function processLayoutField(MetaDataManager $metaDataManager, array $field, array $fieldDefs, array &$fields, array &$displayParams)
 {
     $isNamedField = isset($field['name']);
     if ($isNamedField) {
         $displayParams[$field['name']] = $field;
         unset($displayParams[$field['name']]['name']);
     }
     $fieldAttributes = array('fields', 'related_fields');
     foreach ($fieldAttributes as $attribute) {
         if (isset($field[$attribute]) && is_array($field[$attribute])) {
             $fields = array_merge($fields, $metaDataManager->getFieldNames($field[$attribute], $fieldDefs, $displayParams));
             if ($isNamedField) {
                 unset($displayParams[$field['name']][$attribute]);
             }
         }
     }
 }