Як з SEF-посилання отримати звичайне посилання в Joomla 1.7?
30.11.2011, 11:04 | Прочитано: 9395 раз | Для розробників | Автор: smart
Свого часу була у мене завдання — знаючи SEF-посилання (для стандартного компонента SEF) отримати оригінальне посилання і треба зізнатися тоді я її так і не вирішив. Проте нещодавно, вивчаючи клас JRouter
, я знайшов рішення цієї задачі. Навіть якось образливо стало, що тоді не вирішив.
А вирішується завдання простіше простого:
<?php // SEF-посилання $url = 'http://www.site.ua/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
вже викликана!