В погоне за красивыми URL(алиасы для терминов таксономии)

Главные вкладки

Аватар пользователя rumzes rumzes 30 июля 2009 в 17:48

Приветствую сообщество!

Столкнулся с такой проблемой(вечное и прекрасное — URL алиасы для терминов таксономии)
Нужно было сделать примерно следующее:

Небольшой сайт, с разделом портфолио, в котором собраны работы компании. Все работы разбиты по категориям.
Пути для просмотра материалов должны были выглядеть примерно так:

www.example.com/portfolio — все работы с постраничным выводом
www.example.com/portfolio/flats — только работы по ремонту квартир
www.example.com/portfolio/offices — только работы по ремонту офисов
Всего категорий около 10.

Хотелось найти простой способ отобразить все это при помощи Views+Taxonomy. Решение нашел следующее...
Создаем словарь с необходимыми терминами(категориями). Для каждого термина задаем синоним(он будет URL алиасом для данного термина)

Создаем View(фильтр по типу материала + аргумент — term synonym). Все работет нормально, вот только есть одна проблемка... Есть термин «ремонт квартир»(синоним «flats»), по адресу www.example.com/portfolio/flats мы видим список нужных нам нод, но заголовок View при этом не «ремонт квартир» а значение аргумента, тоесть «flats».

Решается это следующим образом.

В заголовок View пишем код:

<?php
  $ArrayOfPath 
explode("/"$_GET['q']); 
    if (isset(
$ArrayOfPath[1])) {
      
$TermSynonymObject taxonomy_get_synonym_root($ArrayOfPath[1]) ; 
      
$TermNameObject taxonomy_get_term($TermSynonymObject->tid) ; 
      
drupal_set_title($TermNameObject->name) ;  
    }
?>  

Данный код берет из текущего URL строку с синонимом, и по ней находит значение термина. Далее значение термина выводится в заголовок View.

И так, мы получили быстрый,простой, но далекий от совершенства способ использовать красивые URL при передаче View в качестве аргументов терминов таксономии. Теперь можно создавать термины и указывать для них URL алиасы(синонимы в настройках термина).

Всем спасибо за внимание. Может кому пригодится.

Комментарии

Аватар пользователя Artu Artu 19 октября 2009 в 1:48

В заголовок View пишем код:

Это как?Я написал код в заголовок View

<?php
      drupal_set_title
('Pa-ram-pam-pa') ;  
?>  

Он и вывелся как код?

Аватар пользователя rumzes rumzes 20 октября 2009 в 10:18

Идем в модули admin/build/modules, включаем PHP Filter. Далее заходим в свою вьюху и пробуем изменить заголовок(не название, а заголовок). При вводе заголовка можно будет указать формат ввода.

Аватар пользователя RoSk0 RoSk0 18 июня 2010 в 23:22

2rumzes а можешь по подробней описать? никак не могу заставить это работать
хочу сделать чтобы pathauto генерировал алиасы, а во вьюхе их использовать как аргумент,типа:
http://example.com/view-page/vocab-alias/term-alias