예제 #1
0
 /**
  * Builds the render array outline for the given display.
  *
  * This render array has a #pre_render callback which will call
  * ::executeDisplay in order to actually execute the view and then build the
  * final render array structure.
  *
  * @param string $display_id
  *   The display ID.
  * @param array $args
  *   An array of arguments passed along to the view.
  * @param bool $cache
  *   (optional) Should the result be render cached.
  *
  * @return array|null
  *   A renderable array with #type 'view' or NULL if the display ID was
  *   invalid.
  */
 public function buildRenderable($display_id = NULL, $args = array(), $cache = TRUE)
 {
     // @todo Extract that into a generic method.
     if (empty($this->current_display) || $this->current_display != $this->chooseDisplay($display_id)) {
         if (!$this->setDisplay($display_id)) {
             return NULL;
         }
     }
     return $this->display_handler->buildRenderable($args, $cache);
 }