function views_db_object::new_display

Same name in other branches
  1. 6.x-3.x includes/view.inc \views_db_object::new_display()

Create a new display and a display handler for it.

Parameters

string $type: The plugin type from the views plugin data. Defaults to 'page'.

string $title: The title of the display; optional, may be filled in from default.

int $id: The id to use.

Return value

views_plugin_display A reference to the new handler object.

File

includes/view.inc, line 2511

Class

views_db_object
Base class for views' database objects.

Code

public function &new_display($type = 'page', $title = NULL, $id = NULL) {
    $id = $this->add_display($type, $title, $id);
    // Create a handler.
    $this->display[$id]->handler = views_get_plugin('display', $this->display[$id]->display_plugin);
    if (empty($this->display[$id]->handler)) {
        // Provide a 'default' handler as an emergency. This won't work well but
        // it will keep things from crashing.
        $this->display[$id]->handler = views_get_plugin('display', 'default');
    }
    if (!empty($this->display[$id]->handler)) {
        // Initialize the new display handler with data.
        $this->display[$id]->handler
            ->init($this, $this->display[$id]);
        // If this is NOT the default display handler, let it know which is.
        if ($id != 'default') {
            $this->display[$id]->handler->default_display =& $this->display['default']->handler;
        }
    }
    return $this->display[$id]->handler;
}