werber
@werber
Системный администратор Windows

Как заставить CMS Joomla выводить URL компонента меток (com_tags) в адекватном виде?

Например, сейчас я начал активно использовать плагин SEF Wizard, но он только убирает ID из URL строки. Так же включено внутреннее SEF. В итоге у меня при выборе метки статьи происходит переход по ссылке вида: site.rucomponent/tags/tag/text.html, а мне бы хотелось лицезреть нечто типа site.ru/tags/text.html. Как-то можно заставить SEF обрабатывать, а точнее, прятать в данном случае в URL выделенные жирным куски ссылки? Не обязательно прямо именно такой итог, мне бы желательно в принципе получить что-то более адекватное, чем ссылка в данном случае.
  • Вопрос задан
  • 646 просмотров
Решения вопроса 1
werber
@werber Автор вопроса
Системный администратор Windows
Короче, временное решение из головы такое (АХТУНГ! БЫДЛОКОД!):
Так как я хотел не site.ru/component/tags/tag/text.html, а site.ru/tegi/text.html получить в итоге я сделал следующее:
1. Создал пункт меню "Теги" (отсюда и tegi в url, но меня и это устраивает), этот пункт в меню на сайте скрыл через CSS (#menu ul li.item-xxx{display:none}).
2. Написал простую php функцию, которую впихнул в index.php шаблона (проверено на Joomla 3.4.8):
function URLRedirect($url_part){
	if (strstr(JURI::current(),JURI::base().$url_part)){
		$length = strlen(JURI::current());
		$last_pos = strrpos(JURI::current(),"/")+1;
		$word = substr(JURI::current(),$last_pos,($length-$last_pos));
		$new_url = JURI::base()."tegi/".$word;
		header("Location:".$new_url);
	}
}

3. Вызвал в самом index.php шаблона в самом начале функцию таким образом:
URLRedirect("component/tags");

В итоге, функция ищет наличие в URL данной страницы упоминание компонента меток. Если таковое упоминание находится, получает название непосредственно страницы (xxx.html) и подменяет site.ru/component/tags/tag... на site.ru/tegi... + название страницы. В итоге получаем свою извращённую версию редиректа. Да, ещё раз повторю, я понимаю, что это быдлокод, я осознаю это. Просто изящнее пока написать не могу, навыков нет таких и опыта. Если кому будет полезно = пользуйтесь на здоровье. Ко всему прочему, мою методику можно додумать для иных аналогичных проблем. Буду особо благодарен, если у кого-то есть время и желание додумать мой код, может я что-то не учёл.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы