Начать редактировать
ОК, поэтому приведенное ниже работает, но я нашел лучший способ. В вашем контроллере сделать ...
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);
}
Конец редактирования
Вы можете установить 'tmpl' в 'component', как это было предложено Бабуром Усенакуновым, и в этом случае скрипты и css могут быть загружены, как ...
JRequest::setVar('tmpl','component');
Однако, если вы хотите создать необработанный вывод, вы можете добавить & format = raw или в своем компоненте сделать вид типа «raw» ...
К сожалению, единственный функциональный способ найти правильный вид viewType для необработанного рендера - это вызвать exit () после того, как класс представления вызовет parent :: display () ...
В вашем 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();
}
}
затем в views / whats / 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
}
}