How to display view without template?

To display the component only add "tmpl=component" parameter to url. If need to display something besides component's view it can be customized - create "component.php" file in template's root folder and include in it whatever you need. More templates can be done in the same way - create "some_template.php" in template's root folder and add "tmpl=some_template" parameter to url.


Start Edit

OK so the below works, but I found a better way. In your controller do ...

if (JRequest::getVar('format') != 'raw') {
    $url = JURI::current() . '?' . $_SERVER['QUERY_STRING'] . '&format=raw';
    header('Location: ' . $url);
    // or, if you want Content-type of text/html just use ...
    // redirect($url);
}

End Edit

You can set 'tmpl' to 'component', as suggested by Babur Usenakunov, in which case scripts and css may be loaded, like ...

JRequest::setVar('tmpl','component');

However if you want to create raw output you can add &format=raw or in your component make a view of type 'raw' ...

Unfortunately the only functional way I can find to make a viewType of raw render correctly is to call exit() after the view class calls parent::display() ...

In your controller.php ...

class com_whateverController() extends JController
{
    function __construct()
    {
        // the following is not required if you call exit() in your view class (see below) ...
        JRequest::setVar('format','raw');
        JFactory::$document = null;
        JFactory::getDocument();
        // or
        //JFactory::$document = JDocument::getInstance('raw');
        parent::__construct();
    }

    function display()
    {
        $view = $this->getView('whatever', 'raw');
        $view->display();
    }

}

then in views/whatever/view.raw.php ...

class com_whateverViewWhatever extends JView
{
    public function display($tpl = null)
    {
            parent::display();
            exit; // <- if you dont have this then the output is captured in and output buffer and then lost in the rendering
    }
}