From 283d9f907b0bd0479862f76335696b0fb6a2433e Mon Sep 17 00:00:00 2001
From: damiankloip <damian@damoweb.co.uk>
Date: Sun, 26 Aug 2012 16:54:37 +0200
Subject: [PATCH] Added attachDisplays() method to ViewStorageController

---
 lib/Drupal/views/ViewStorageController.php | 26 ++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/lib/Drupal/views/ViewStorageController.php b/lib/Drupal/views/ViewStorageController.php
index 305ffa5cf5ae..702de479fe71 100644
--- a/lib/Drupal/views/ViewStorageController.php
+++ b/lib/Drupal/views/ViewStorageController.php
@@ -17,10 +17,7 @@ class ViewStorageController extends ConfigStorageController {
    */
   protected function attachLoad(&$queried_entities, $revision_id = FALSE) {
     foreach ($queried_entities as $id => $entity) {
-      foreach ($entity->display as $key => $options) {
-        // Create a ViewsDisplay object using the display options.
-        $entity->display[$key] = new ViewsDisplay($options);
-      }
+      $this->attachDisplays($entity);
     }
   }
 
@@ -97,4 +94,25 @@ public function save(StorableInterface $entity) {
     return $return;
   }
 
+  /**
+   * Overrides Drupal\config\ConfigStorageController::create().
+   */
+  public function create(array $values) {
+    $entity = parent::create($values);
+    $this->attachDisplays($entity);
+    return $entity;
+  }
+
+  /**
+   * @todo
+   */
+  protected function attachDisplays(&$entity) {
+    if (isset($entity->display) && is_array($entity->display)) {
+      foreach ($entity->display as $key => $options) {
+        // Create a ViewsDisplay object using the display options.
+        $entity->display[$key] = new ViewsDisplay($options);
+      }
+    }
+  }
+
 }
\ No newline at end of file
-- 
GitLab