Joomla 3:如何在不向URL添加format = raw的情况下使用原始格式?

时间:2014-01-03 14:12:52

标签: php joomla joomla3.0

我想将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');

他们似乎都没有做到这一点。

2 个答案:

答案 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