我想将view.raw.php加载为原始视图,就像我将view = raw附加到URL一样。但是我想在不向网址添加view = raw的情况下这样做。
我在主控制器内部尝试了以下操作但没有工作:
首先我尝试了这个:
JFactory::$document = null;
JFactory::getDocument();
然后我尝试了这个:
$input = JFactory::getApplication()->input;
$input->set('format', 'raw');
而且:
$_REQUEST['format'] = 'raw';
这个: $ urlparams [ '格式'] = '原始'; $ urlparams [] = array('format'=>'raw');
而且:
$doc = JFactory::getDocument();
$doc->setType('raw');
他们似乎都没有做到这一点。
答案 0 :(得分:1)
我不确定您放置代码的位置,但是如果它位于模板内部,则更改太晚并且joomla已经以默认格式呈现。创建一个插件并使用在渲染之前调度的事件。
Here是可用事件的列表。
祝你好运!顺便说一句。我做了类似的事情,使用了类型»system«的插件并使用了»onAfterInitialize«事件。
答案 1 :(得分:1)
要实现此目的,请在控制器中添加以下内容:
$document = JDocument::getInstance('raw'); //this new instance is a raw document object
$viewType = $document->getType();
// $viewname below is set in jinput or as you named it
$this->getView($viewName, $viewType);
$this->input->set('view', $viewName);
以上调用view.raw.php