Joomla! Україна

Блоги — цікаві статті та записи про Joomla, програмування, верстку та інше.
  • Версія Joomla! 5.0.3 від 20.02.2024
  • 60 записи в блогах
  • 791 новини та статті
     

Як з SEF-посилання отримати звичайне посилання в Joomla 1.7?

30.11.2011, 11:04  |  Прочитано: 9088 раз  |  Для розробників  |  Автор: smart

(0 голоси)

Свого часу була у мене завдання — знаючи 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 вже викликана!

Теги:: JRouter Joomla 1.7 SEF

Написати коментар