/** * 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); }