Як з SEF-посилання отримати звичайне посилання в Joomla 1.7?
30.11.2011, 11:04 | Прочитано: 9881 раз | Для розробників | Автор: 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 вже викликана!