commit 7a96255d7b60bc524d2a0ba29a9f2d8bd70d82dd Author: Yves Chedemois Date: Sun Jun 16 17:23:20 2013 +0200 simplify prepareView() signature diff --git a/core/lib/Drupal/Core/Entity/EntityStorageControllerBase.php b/core/lib/Drupal/Core/Entity/EntityStorageControllerBase.php index 7820f13..5c0d975 100644 --- a/core/lib/Drupal/Core/Entity/EntityStorageControllerBase.php +++ b/core/lib/Drupal/Core/Entity/EntityStorageControllerBase.php @@ -223,7 +223,7 @@ public function invokeFieldMethodMultiple($method, array $entities, $langcode) { $type_definition = \Drupal::typedData()->getDefinition($definition['type']); // @todo do we really need to pass the $definition here ? - $type_definition['class']::$method($entities_items, $definition); + $type_definition['class']::$method($entities_items); // @todo Remove when all core entity types are converted. if (!empty($BC_mode)) { diff --git a/core/lib/Drupal/Core/Entity/Field/FieldItemBase.php b/core/lib/Drupal/Core/Entity/Field/FieldItemBase.php index 69ef065..6c451b8 100644 --- a/core/lib/Drupal/Core/Entity/Field/FieldItemBase.php +++ b/core/lib/Drupal/Core/Entity/Field/FieldItemBase.php @@ -182,7 +182,7 @@ public function deleteRevision() { } * * @todo Do we need a separate PrepareViewInterface ? */ - public static function prepareView(array $entities_items, array $definition) { } + public static function prepareView(array $entities_items) { } // @todo diff --git a/core/modules/field/lib/Drupal/field/Plugin/Type/FieldType/ConfigFieldItemInterface.php b/core/modules/field/lib/Drupal/field/Plugin/Type/FieldType/ConfigFieldItemInterface.php index 4aeafe3..ec53ef7 100644 --- a/core/modules/field/lib/Drupal/field/Plugin/Type/FieldType/ConfigFieldItemInterface.php +++ b/core/modules/field/lib/Drupal/field/Plugin/Type/FieldType/ConfigFieldItemInterface.php @@ -109,7 +109,7 @@ public function instanceSettingsForm(array $form, array &$form_state); * @param array $entities_items * Array of field items, keyed by entity ID. */ - public static function prepareView(array $entities_items, array $definition); + public static function prepareView(array $entities_items); // @todo Decide what to do with those diff --git a/core/modules/field/lib/Drupal/field/Plugin/field/field_type/LegacyConfigFieldItem.php b/core/modules/field/lib/Drupal/field/Plugin/field/field_type/LegacyConfigFieldItem.php index 2b92362..2f1005a 100644 --- a/core/modules/field/lib/Drupal/field/Plugin/field/field_type/LegacyConfigFieldItem.php +++ b/core/modules/field/lib/Drupal/field/Plugin/field/field_type/LegacyConfigFieldItem.php @@ -109,40 +109,43 @@ public function prepareCache() { /** * {@inherotdoc} */ - public static function prepareView(array $entities_items, array $definition) { - $field_type_definition = \Drupal::typedData()->getDefinition($definition['type']); - $module = $field_type_definition['module']; - $callback = "{$module}_field_prepare_view"; - if ($entities_items && function_exists($callback)) { - $entities = array(); - $instances = array(); - $itemsBC = array(); - foreach ($entities_items as $id => $items) { - $entities[$id] = $items->getParent(); - $instances[$id] = $items->offsetGet(0)->instance; - // We need to remove the empty "prototype" item here. - // @todo Revisit after http://drupal.org/node/1988492. - $items->filterEmptyValues(); - $itemsBC[$id] = $items->getValue(TRUE); - } - - // Determine the entity type, langcode and field. - $entity_type = current($entities)->entityType(); - $langcode = current($entities)->language()->langcode; - $field = current($instances)->getField(); - - $args = array( - $entity_type, - $entities, - $field, - $instances, - $langcode, - &$itemsBC, - ); - call_user_func_array($callback, $args); - - foreach ($entities_items as $id => $items) { - $items->setValue($itemsBC[$id]); + public static function prepareView(array $entities_items) { + if ($entities_items) { + // Determine the legacy callback. + $field_type_definition = current($entities_items)->getPluginDefinition(); + $module = $field_type_definition['module']; + $callback = "{$module}_field_prepare_view"; + if (function_exists($callback)) { + $entities = array(); + $instances = array(); + $itemsBC = array(); + foreach ($entities_items as $id => $items) { + $entities[$id] = $items->getParent(); + $instances[$id] = $items->offsetGet(0)->instance; + // We need to remove the empty "prototype" item here. + // @todo Revisit after http://drupal.org/node/1988492. + $items->filterEmptyValues(); + $itemsBC[$id] = $items->getValue(TRUE); + } + + // Determine the entity type, langcode and field. + $entity_type = current($entities)->entityType(); + $langcode = current($entities)->language()->langcode; + $field = current($instances)->getField(); + + $args = array( + $entity_type, + $entities, + $field, + $instances, + $langcode, + &$itemsBC, + ); + call_user_func_array($callback, $args); + + foreach ($entities_items as $id => $items) { + $items->setValue($itemsBC[$id]); + } } } } diff --git a/core/modules/text/lib/Drupal/text/Plugin/field/field_type/ConfigTextItemBase.php b/core/modules/text/lib/Drupal/text/Plugin/field/field_type/ConfigTextItemBase.php index a74fb3e..cc66af1 100644 --- a/core/modules/text/lib/Drupal/text/Plugin/field/field_type/ConfigTextItemBase.php +++ b/core/modules/text/lib/Drupal/text/Plugin/field/field_type/ConfigTextItemBase.php @@ -114,7 +114,7 @@ public function prepareCache() { // * // * @todo Just for testing - remove... // */ -// public static function prepareView(array $entities_items, array $definition) { +// public static function prepareView(array $entities_items) { // foreach ($entities_items as $entity_items) { // foreach ($entity_items as $delta => $item) { // $item->safe_value = $delta . $item->safe_value;