Как из SEF-ссылки получить обычную в Joomla 2.5?

  • 30.11.2011

В свое время была у меня задача — зная SEF-ссылку (для стандартного компонента SEF) получить оригинальную ссылку и надо признаться тогда я ее так и не решил. Однако недавно, изучая класс JRouter, я нашел решение этой задачи. Даже как-то обидно стало, что тогда не решил.

А решается задача проще простого:

<?php
// SEF-ссылка
$url = 'http://www.site.ru/index.php/using-joomla/parameters';
$uri = JURI::getInstance($url);
$app = & JFactory::getApplication('site');
$router = & $app->getRouter();

// массив переменных запроса
$vars = $router->parse($uri);

$parts = array();
foreach($vars as $k => $v) {
	$parts[] = $k . '=' . $v;
}

// оригинальная (не SEF) ссылка
$nonSefUrl = JURI::base() . 'index.php?' . implode('&', $parts);
?>

Однако следует обратить внимание, что если вам требуется получить какие-то параметры из текущей ссылки, данный код будет работать только при условии, что событие onAfterRoute уже вызвано!

Вот и все, будут вопросы - готов ответить у нас на форуме!

Для того, чтоб оставить комментарий, авторизуйтесь через социальные сети.

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Скачать Joomla! 3.9.4 Документация Joomla! CMS Свернуть

Расширения Joomla

Новости портала

Новое в блогах