From 10db2c1799e7115396c88f215d7080c814bf6224 Mon Sep 17 00:00:00 2001 From: Daniel Wehner <daniel.wehner@erdfisch.de> Date: Mon, 27 Aug 2012 11:32:50 +0200 Subject: [PATCH] Simplify the constructor of ViewDisplay. --- lib/Drupal/views/Tests/ViewStorageTest.php | 2 +- lib/Drupal/views/ViewDisplay.php | 20 +++++++++++++------- lib/Drupal/views/ViewStorageController.php | 12 ++++++++++-- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/lib/Drupal/views/Tests/ViewStorageTest.php b/lib/Drupal/views/Tests/ViewStorageTest.php index fa07fbe1a863..5dc7ec07f0c3 100644 --- a/lib/Drupal/views/Tests/ViewStorageTest.php +++ b/lib/Drupal/views/Tests/ViewStorageTest.php @@ -168,7 +168,7 @@ function testConfigurableCRUD() { $created_loaded = reset($loaded_entities); $values_loaded = config('views.view.archive')->get(); - $this->assertTrue(isset($created_loaded->display['default']->display_options), 'Make sure that the display options exists.'); + $this->assertTrue(isset($created_loaded->display['default']->display_options), 'Make sure that the display options exist.'); $this->assertEqual($created_loaded->display['default']->display_plugin, 'default', 'Make sure the right display plugin is set.'); $this->assertEqual($values, $values_loaded, 'The loaded config is the same as the original loaded one.'); diff --git a/lib/Drupal/views/ViewDisplay.php b/lib/Drupal/views/ViewDisplay.php index 1e374d431d94..aa8c6cdd3010 100644 --- a/lib/Drupal/views/ViewDisplay.php +++ b/lib/Drupal/views/ViewDisplay.php @@ -29,13 +29,19 @@ class ViewDisplay { */ public $display_options; - function __construct(array $display_options = array()) { - if (!empty($display_options)) { - $this->display_options = $display_options['display_options']; - $this->display_plugin = $display_options['display_plugin']; - $this->id = $display_options['id']; - $this->display_title = $display_options['display_title']; - } + public function __construct(array $display_options = array()) { + $display_options += array( + 'display_options' => array(), + 'display_plugin' => NULL, + 'id' => NULL, + 'display_title' => '', + 'position' => NULL, + ); + + $this->display_options = $display_options['display_options']; + $this->display_plugin = $display_options['display_plugin']; + $this->id = $display_options['id']; + $this->display_title = $display_options['display_title']; } } diff --git a/lib/Drupal/views/ViewStorageController.php b/lib/Drupal/views/ViewStorageController.php index f297b075c4e3..7318b3c5090f 100644 --- a/lib/Drupal/views/ViewStorageController.php +++ b/lib/Drupal/views/ViewStorageController.php @@ -104,7 +104,6 @@ public function save(StorableInterface $entity) { * Overrides Drupal\config\ConfigStorageController::create(). */ public function create(array $values) { - // If there is no information about displays available add at least the // default display. $values += array( @@ -124,13 +123,22 @@ public function create(array $values) { * * @param Drupal\entity\StorableInterface $entity */ - protected function attachDisplays($entity) { + protected function attachDisplays(StorableInterface $entity) { if (isset($entity->display) && is_array($entity->display)) { $displays = array(); + foreach ($entity->get('display') as $key => $options) { + $options += array( + 'display_options' => array(), + 'display_plugin' => NULL, + 'id' => NULL, + 'display_title' => '', + 'position' => NULL, + ); // Create a ViewDisplay object using the display options. $displays[$key] = new ViewDisplay($options); } + $entity->set('display', $displays); } } -- GitLab