我有一個定製的Joomla 3.4.1組件,它具有以JSON格式(來自views/myview/view.json.php文件)或HTML(來自views/myview/view.html.php文件)顯示數據的視圖。格式。有沒有辦法如何從HTML更改默認視圖的格式JSON,這樣如何更改Joomla組件的視圖默認格式?
http://example.com/component/mycomponent/myview
返回JSON數據,而不是HTML,而:
http://example.com/component/mycomponent/myview?format=html
仍返回視圖的HTML模板?
編輯:
據我得到的是這樣的路由器:
function TouristGuideParseRoute($segments) {
$count = count($segments);
$parameters = array();
if ($count > 0) {
$parameters['view'] = $segments[0];
}
if ($count > 1) {
$parameters['task'] = $segments[1];
}
if ($count > 2) {
$parameters['id'] = $segments[2];
}
if ($count > 3) {
$parameters['format'] = $segments[3];
}
if (($parameters['view'] == 'api') && empty($parameters['format'])) {
$application = JFactory::getApplication();
$input = $application->input;
$parameters['format'] = $input->getString('format', 'json');
}
return $parameters;
}
,顯示JSON格式即使URL中包含?format=html
因爲在這個路由器的$application->input
是空的(可能是填充以後的的Joomla請求處理鏈),因此$input->getString('format','json')
一直返回json
。
你可以直接回顯你的json數據到php文件的視圖模板 – Toretto
我知道但是這並不能解決問題,當默認格式爲HTML時,Joomla頁面框架(在HTML中)自動附加到響應中。此外,由於HTML格式是默認的,我怎樣才能檢查視圖是否被請求而沒有格式指定d?在JFactory :: getApplication() - > input-> get('format')中有'html'。 – Blackhex