diff --git a/core/includes/entity.api.php b/core/includes/entity.api.php index 3da0d27..01e3370 100644 --- a/core/includes/entity.api.php +++ b/core/includes/entity.api.php @@ -518,26 +518,25 @@ function hook_view_mode_load($entities) { /** * Act on an view mode before it is about to be created or updated. * - * @param Drupal\Core\Entity\EntityInterface $entity + * @param Drupal\Core\Entity\EntityInterface $view_mode * The view mode object. */ -function hook_view_mode_presave(Drupal\Core\Entity\EntityInterface $entity) { - entity_info_cache_clear(); - state()->set('menu_rebuild_needed', TRUE); +function hook_view_mode_presave(Drupal\Core\Entity\EntityInterface $view_mode) { + mymodule_cache_clear(); } /** * Act on view modes when inserted. * - * @param Drupal\Core\Entity\EntityInterface $entity + * @param Drupal\Core\Entity\EntityInterface $view_mode * The view mode object. */ -function hook_view_mode_insert(Drupal\Core\Entity\EntityInterface $entity) { +function hook_view_mode_insert(Drupal\Core\Entity\EntityInterface $view_mode) { // Insert the new view mode into a fictional table of all view modes. db_insert('example_view_mode') ->fields(array( - 'type' => $entity->entityType(), - 'id' => $entity->id(), + 'type' => $view_mode->entityType(), + 'id' => $view_mode->id(), 'created' => REQUEST_TIME, 'updated' => REQUEST_TIME, )) @@ -547,31 +546,31 @@ function hook_view_mode_insert(Drupal\Core\Entity\EntityInterface $entity) { /** * Act on view modes when updated. * - * @param Drupal\Core\Entity\EntityInterface $entity + * @param Drupal\Core\Entity\EntityInterface $view_mode * The view mode object. */ -function hook_view_mode_update(Drupal\Core\Entity\EntityInterface $entity) { +function hook_view_mode_update(Drupal\Core\Entity\EntityInterface $view_mode) { // Update the view mode's entry in a fictional table of all view modes. db_update('example_view_mode') ->fields(array( 'updated' => REQUEST_TIME, )) - ->condition('type', $entity->entityType()) - ->condition('id', $entity->id()) + ->condition('type', $view_mode->entityType()) + ->condition('id', $view_mode->id()) ->execute(); } /** * Act before view mode deletion. * - * @param Drupal\Core\Entity\EntityInterface $entity + * @param Drupal\Core\Entity\EntityInterface $view_mode * The view mode object for the view mode that is about to be deleted. */ -function hook_view_mode_predelete(Drupal\Core\Entity\EntityInterface $entity) { +function hook_view_mode_predelete(Drupal\Core\Entity\EntityInterface $view_mode) { // Count references to this view mode in a custom table before they are // removed upon view mode deletion. - $id = $entity->id(); - $type = $entity->entityType(); + $id = $view_mode->id(); + $type = $view_mode->entityType(); $count = db_select('example_view_mode_data') ->condition('type', $type) ->condition('id', $id) @@ -583,10 +582,9 @@ function hook_view_mode_predelete(Drupal\Core\Entity\EntityInterface $entity) { /** * Respond to view mode deletion. * - * @param Drupal\Core\Entity\EntityInterface $entity + * @param Drupal\Core\Entity\EntityInterface $view_mode * The view mode object for the view mode that has been deleted. */ -function hook_view_mode_delete(Drupal\Core\Entity\EntityInterface $entity) { - entity_info_cache_clear(); - state()->set('menu_rebuild_needed', TRUE); +function hook_view_mode_delete(Drupal\Core\Entity\EntityInterface $view_mode) { + mymodule_cache_clear(); } diff --git a/core/includes/entity.inc b/core/includes/entity.inc index 71dff6a..323f212 100644 --- a/core/includes/entity.inc +++ b/core/includes/entity.inc @@ -82,15 +82,16 @@ function entity_get_info($entity_type = NULL) { // Add view modes. $view_modes = drupal_container()->get('config.storage')->listAll('view_mode.'); foreach ($view_modes as $config_name) { + // Load the config directly, entity_load() would cause recursion. $view_mode = config($config_name)->get(); - $definition = array( - 'label' => check_plain($view_mode['label']), - 'custom settings' => $view_mode['custom'], - ); $name = strtok($view_mode['name'], '.'); $name = strtok('.'); + if (isset($view_mode['type']) && !empty($name) && isset($entity_info[$view_mode['type']])) { - $entity_info[$view_mode['type']]['view modes'][$name] = $definition; + $entity_info[$view_mode['type']]['view modes'][$name] = array( + 'label' => check_plain($view_mode['label']), + 'custom settings' => $view_mode['custom'], + ); } } diff --git a/core/lib/Drupal/Core/Entity/ViewMode/EntityViewMode.php b/core/lib/Drupal/Core/Entity/ViewMode/EntityViewMode.php index d8f6bc9..2b55b4a 100644 --- a/core/lib/Drupal/Core/Entity/ViewMode/EntityViewMode.php +++ b/core/lib/Drupal/Core/Entity/ViewMode/EntityViewMode.php @@ -2,7 +2,7 @@ /** * @file - * Definition of Drupal\Core\Entity\ViewMode\EntityViewMode. + * Contains Drupal\Core\Entity\ViewMode\EntityViewMode. */ namespace Drupal\Core\Entity\ViewMode; @@ -97,14 +97,4 @@ public function uri() { ); } - /** - * Returns the entity types that are used by the view mode. - * - * @return array - * An array where both keys and values are entity types for the view mode. - */ - public function getUsedEntityTypes() { - return array_filter($this->entityTypes); - } - } diff --git a/core/modules/entity_ui/entity_ui.admin.inc b/core/modules/entity_ui/entity_ui.admin.inc index 69e505a..bc55f47 100644 --- a/core/modules/entity_ui/entity_ui.admin.inc +++ b/core/modules/entity_ui/entity_ui.admin.inc @@ -12,15 +12,13 @@ function entity_ui_view_mode_list() { $build = array(); $controller = entity_list_controller('view_mode'); foreach (entity_get_info() as $type => $info) { - if ($type == 'view_mode') { - continue; + if ($type != 'view_mode') { + $build[$type] = array( + '#type' => 'fieldset', + '#title' => $info['label'], + ); + $build[$type]['view_modes'] = $controller->set($type)->render(); } - - $build[$type] = array( - '#type' => 'fieldset', - '#title' => $info['label'], - ); - $build[$type]['view_modes'] = $controller->set($type)->render(); } return $build; } diff --git a/core/modules/entity_ui/entity_ui.info b/core/modules/entity_ui/entity_ui.info index 9dcc4e5..9d2b59c 100644 --- a/core/modules/entity_ui/entity_ui.info +++ b/core/modules/entity_ui/entity_ui.info @@ -3,5 +3,4 @@ description = User interface for the Entity API. package = Core version = VERSION core = 8.x -recommends[] = field_ui configure = admin/config/system/view-modes diff --git a/core/modules/entity_ui/entity_ui.module b/core/modules/entity_ui/entity_ui.module index 38df289..ff25f50 100644 --- a/core/modules/entity_ui/entity_ui.module +++ b/core/modules/entity_ui/entity_ui.module @@ -47,13 +47,13 @@ function entity_ui_menu() { 'access arguments' => array('administer view modes'), 'file' => 'entity_ui.admin.inc', ); - $items['admin/config/system/view-modes/%view_mode/edit'] = array( + $items['admin/config/system/view-modes/%entity_ui_view_mode/edit'] = array( 'title' => 'Edit view mode', 'page callback' => 'entity_get_form', 'page arguments' => array(4), 'access arguments' => array('administer view modes'), ); - $items['admin/config/system/view-modes/%view_mode/delete'] = array( + $items['admin/config/system/view-modes/%entity_ui_view_mode/delete'] = array( 'title' => 'Delete view mode', 'page callback' => 'drupal_get_form', 'page arguments' => array('entity_ui_view_mode_delete_form', 4), @@ -65,17 +65,17 @@ function entity_ui_menu() { } /** - * Load a custom view mode by machine name. + * Loads a custom view mode by machine name. */ -function view_mode_load($machine_name) { +function entity_ui_view_mode_load($machine_name) { return entity_load('view_mode', $machine_name); } /** * Checks for an existing view mode. */ -function view_mode_exists($machine_name, $element) { - return view_mode_load($element['#entity_type'] . ".$machine_name"); +function entity_ui_view_mode_exists($machine_name, $element) { + return entity_load('view_mode', $element['#entity_type'] . ".$machine_name"); } /** diff --git a/core/modules/entity_ui/lib/Drupal/entity_ui/Tests/ViewModeTest.php b/core/modules/entity_ui/lib/Drupal/entity_ui/Tests/ViewModeTest.php index f70f4b8..d5b3ee7 100644 --- a/core/modules/entity_ui/lib/Drupal/entity_ui/Tests/ViewModeTest.php +++ b/core/modules/entity_ui/lib/Drupal/entity_ui/Tests/ViewModeTest.php @@ -2,7 +2,7 @@ /** * @file - * Definition of Drupal\entity_ui\Tests\ViewModeTest. + * Contains Drupal\entity_ui\Tests\ViewModeTest. */ namespace Drupal\entity_ui\Tests; @@ -10,7 +10,7 @@ use Drupal\simpletest\WebTestBase; /** - * Test managing of view modes. + * Tests managing of view modes. */ class ViewModeTest extends WebTestBase { @@ -55,7 +55,7 @@ function createViewMode(&$edit = array()) { } /** - * Test managing view modes. + * Tests managing view modes. */ function testManageViewModes() { $edit = array(); diff --git a/core/modules/entity_ui/lib/Drupal/entity_ui/ViewModeFormController.php b/core/modules/entity_ui/lib/Drupal/entity_ui/ViewModeFormController.php index 3f9fefc..edac556 100644 --- a/core/modules/entity_ui/lib/Drupal/entity_ui/ViewModeFormController.php +++ b/core/modules/entity_ui/lib/Drupal/entity_ui/ViewModeFormController.php @@ -2,7 +2,7 @@ /** * @file - * Definition of Drupal\entity_ui\ViewModeFormController. + * Contains Drupal\entity_ui\ViewModeFormController. */ namespace Drupal\entity_ui; @@ -36,7 +36,7 @@ public function form(array $form, array &$form_state, EntityInterface $view_mode '#type' => 'machine_name', '#machine_name' => array( 'source' => array('label'), - 'exists' => 'view_mode_exists', + 'exists' => 'entity_ui_view_mode_exists', ), '#entity_type' => $view_mode->type, '#default_value' => $view_mode->name(), diff --git a/core/modules/entity_ui/lib/Drupal/entity_ui/ViewModeListController.php b/core/modules/entity_ui/lib/Drupal/entity_ui/ViewModeListController.php index ebbf75a..2c554a4 100644 --- a/core/modules/entity_ui/lib/Drupal/entity_ui/ViewModeListController.php +++ b/core/modules/entity_ui/lib/Drupal/entity_ui/ViewModeListController.php @@ -2,7 +2,7 @@ /** * @file - * Definition of Drupal\entity_ui\ViewModeListController. + * Contains Drupal\entity_ui\ViewModeListController. */ namespace Drupal\entity_ui;