Получить 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

Другие вопросы по тегам