×
Внимание, мошенник-работодатель (10 авг 2017)

Вниманию программистов Санкт-Петербурга, на SuperJob-е вновь активизировался Семен Григорьевич Шумейко..

Идея Joomla 1.7. Из sef-ссылки - обычную

Больше
5 года 8 мес. назад - 5 года 8 мес. назад #1 от serge
serge создал эту тему: Joomla 1.7. Из sef-ссылки - обычную
Не могу не поделиться здесь очень интересной новостью, почерпнутой на страницах всеми любимого 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 года 8 мес. назад от serge.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.