IT-К@ФЕ. Welcome! :)
   
Добро пожаловать, Гость
Логин: Пароль: Запомнить меня


Joomla 1.7. Из sef-ссылки - обычную
(1 чел.) (1) гость
  • Страница:
  • 1

ТЕМА: Joomla 1.7. Из sef-ссылки - обычную

Joomla 1.7. Из sef-ссылки - обычную 5 мес., 2 нед. назад #3417

  • serge
  • Вне сайта
  • Expert Boarder
  • Постов: 149
  • Репутация: 7
Не могу не поделиться здесь очень интересной новостью, почерпнутой на страницах всеми любимого joomlaportal.ru:

Как из SEF-ссылки получить обычную в Joomla 1.7?
30.11.2011 | smartСтатьи и обзоры / Для разработчиков

В свое время была у меня задача — зная 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 уже вызвано!

Когда-то ведь тоже копал эту проблему... но не хватило терпения до ума довести. Надеюсь, теперь Вам пригодится эта публикация!
Изменено: 5 мес., 2 нед. назад от serge.
  • Страница:
  • 1
Время создания страницы: 0.21 секунд