Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Joomla 3:如何在不向URL添加format=raw的情况下使用raw格式?_Php_Joomla_Joomla3.0 - Fatal编程技术网

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

Php Joomla 3:如何在不向URL添加format=raw的情况下使用raw格式?,php,joomla,joomla3.0,Php,Joomla,Joomla3.0,我希望将view.raw.php作为原始视图加载,就像在URL中附加view=raw一样。但是我不想在URL中添加view=raw 我在主控制器内尝试了以下操作,但未成功: 首先,我尝试了这个: JFactory::$document = null; JFactory::getDocument(); $input = JFactory::getApplication()->input; $input->set('format', 'raw'); 然后我试了一下: JFacto

我希望将view.raw.php作为原始视图加载,就像在URL中附加view=raw一样。但是我不想在URL中添加view=raw

我在主控制器内尝试了以下操作,但未成功:

首先,我尝试了这个:

JFactory::$document = null;
JFactory::getDocument();  
$input = JFactory::getApplication()->input;
$input->set('format', 'raw');
然后我试了一下:

JFactory::$document = null;
JFactory::getDocument();  
$input = JFactory::getApplication()->input;
$input->set('format', 'raw');
这是:

$_REQUEST['format'] = 'raw';
$doc = JFactory::getDocument();            
$doc->setType('raw');
这是: $urlparams['format']='raw'; $urlparams[]=array('format'=>'raw')

这是:

$_REQUEST['format'] = 'raw';
$doc = JFactory::getDocument();            
$doc->setType('raw');

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

我不确定您将代码放在了哪里,但如果代码在模板中,那么更改就太晚了,joomla已经以默认格式呈现。创建一个插件并使用在渲染之前调度的事件

是可用事件的列表

祝你好运


顺便说一句,我也做了类似的事情,使用了»system«类型的插件,并使用了»onAfterInitialize«事件

要实现此目的,请在控制器内添加以下内容:

$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

>“在我的主控制器内部”-感谢您的快速回答,尽管它可以简化为:$document=JDocument::getInstance('raw')//这个新实例是一个原始文档对象$viewType=$document->getType();//$下面的viewname是在jinput中设置的,或者是您命名的$this->getView($viewname,$viewType)$此->输入->设置('view',$viewName);