Получить Joomla non sef url, когда SEF включен
Я создаю плагин для системы Joomla. Я хочу проверить, загружает ли текущая страница какую-либо статью.
Для этого я планировал проверить, является ли просмотр статьи и получить идентификатор в этом случае. Но это не работает в случае, если sef включен.
Есть ли способ получить это. или как получить не-sef URL, если SEF включен.
3 ответа
Это может быть слишком поздно, чтобы ответить.:) Но другие, имеющие такую же проблему, могут использовать этот код - вы должны использовать событие onAfterRoute в системном плагине. попробуй это-
function onAfterRoute()
{
$option = JRequest::getVar('option');
$view = JRequest::getVar('view');
}
Это всегда должно отлавливать части 'option' и 'view' независимо от того, включен или выключен SEF. Точно так же вы можете поймать другие части URL.
РЕДАКТИРОВАТЬ: Примечание для Joomla 3.x вы должны использовать JInput
$jinput = JFactory::getApplication()->input;
$option = $jinput->get('option');
$view = $jinput->get('view');
Возможно, вы также захотите проверить переменную представления, так как есть больше макетов, которые означают, что вы не находитесь конкретно на странице статьи, например макет блога категории...
Вы можете получить свой variables
когда вы хотели это по этой строке:
$yourVariable = JRequest::getVar('yourVariableName');
просто будь уверен, на router.php
в yourComponentNameBuildRoute
функция передать ваш varable к $segment
И в yourComponentNameParseRoute
функция поставить вашу переменную, когда вы вернулись $var
,
для получения более подробной информации посетите: http://docs.joomla.org/Supporting_SEF_URLs_in_your_component