У меня есть пользовательский компонент Joomla 3.4.1, который имеет представление, которое отображает данные в формате JSON (из представлений/myview/view.json.php) или HTML (из представлений/myview/view.html.php) формат. Есть ли способ, как изменить формат представления по умолчанию от HTML в JSON, так чтоКак изменить формат представления компонентов Joomla по умолчанию?
http://example.com/component/mycomponent/myview
возвращает JSON данных вместо HTML, а:
http://example.com/component/mycomponent/myview?format=html
еще возвращает шаблон HTML в представлении?
EDIT:
Насколько я получаю этот маршрутизатор:
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 по умолчанию используется, как я могу проверить, что запрос был запрошен без формата д? В JFactory есть «html»: getApplication() -> input-> get ('format'). – Blackhex