Навигация по таксономии и пространство имен URL в Drupal - PullRequest
2 голосов
/ 29 июня 2010

Я пытаюсь обновить сайт старой школы PHP (http://cordair.com/) для работы с Drupal под управлением Ubercart. Одна из ключевых вещей заключается в том, чтобы убедиться, что URL-адреса, добавленные людьми в закладки, остаются прежними.

Моя таксономия выглядит примерно так

Catalog
 + Artists
    + Pablo Picaso
    + Lenardo DaVinci
 + Medium
    + Sculpture
    + Painting
    + Print

Таксономия множественная, поэтому у каждого есть 1 художник и потенциально несколько медиумов (например, что-то может быть как оригинальной картиной, так и доступной для печати). IЯ хочу, чтобы сайт мог отображать страницу в http://foo.com/picaso со списком всех элементов в или под Pablo Picaso. Я также хочу иметь страницу типа http://foo.com/paintings, в которой перечислены всекартины всех художников.

Какой лучший способ это осуществить? Похоже, мне нужно использовать Path Auto, но это действительно сбивает с толку, чтобы выяснить, каковы правильные настройки. Я также не вижуспособ индивидуально адаптировать способ превращения термина таксономии в URL, сейчас я просто получаю идентификаторы. Похоже, есть способ использовать имя термина, но URL, которые я пытаюсь создать, просто используютфамилия, а не имя.

Прости меня за глупость в Drupal, так как я уверен, что это все возможно и, вероятно, проще, чем я думаю.

Ответы [ 2 ]

2 голосов
/ 04 июля 2010

Возможный, но сомнительный подход:

Чтобы извлечь только фамилии, вам нужно реализовать собственный токен для терминов таксономии, которые будут выполнять необходимые манипуляции со строками. (Можно создать вариант токена [cat] по умолчанию. Этот пример для токена заголовка пользовательского узла также может помочь понять процесс.)

Однако у этого подхода есть несколько серьезных недостатков:

Рекомендуемый альтернативный подход:

Чтобы избежать решения описанных выше проблем неоднозначности, и учитывая, что сайт, который вы хотите заменить, имеет довольно небольшой набор целевых имен, я бы просто использовал стандартный токен [cat], используя полные имена для URL-адреса (Pathauto позволяет указывать замены по умолчанию для специальных символов, например пробелы для подчеркивания или тире). Затем вы можете добавить правила перенаправления для всех старых URL-адресов «только фамилии» в файлы сайтов .htaccess, чтобы сохранить их работоспособность при продвижении новых версий:

# http://example.com/picasso  => http://example.com/pablo_picasso
RewriteRule ^picasso $ http://example.com/pablo_picasso [L,R=301]
# ... and so on for all old urls that changed

(Вы также можете проверить модуль перенаправления пути как «внутреннюю Drupal» альтернативу манипулированию .htaccess).


Кроме того, я бы рекомендовал разделить иерархию «Каталога» на два отдельных словаря, например, «художники» и «средний». Хотя это приведет к двум отдельным полям таксономии в форме ввода узла, оно соответствует семантической разнице и даст большую гибкость для фильтрации, сортировки и группировки узлов в будущем.

0 голосов
/ 03 июля 2010

Path auto предназначен для автоматической генерации псевдонимов пути для контента на основе атрибутов этого контента.

Похоже, вы больше говорите о наличии некоторых других типов контента (cck) и связывании этих типов с модулем ссылки на узел. Тогда ваши URL-адреса в Picaso и Pictures представляют собой простые представления, которые могут принимать аргументы или использовать открытые фильтры для дополнительного ограничения отображаемых узлов.

...