Таксономия: как это работает?

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

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 20 декабря 2008 в 17:05

Здравствуйте, уважаемые!

В течение последних нескольких дней пытался найти материалы по таксономии, чтобы понять, как это работает, и что нужно сделать, чтобы оно работало именно так, как надо мне. Проясните, пожалуйста, некоторые моменты, в которых я так и не разобрался.

Задача:
Мне нужна разветвлённая система в словаре «География», в который будут «складываться» страны и города. Я предположил, что структура будет примерно такой:
География
-Страны
--Англия
--Бразилия
--Россия
и т.д.
-Города
--Ливерпуль
--Мидлсбро
--Москва
и т.д.

При этом для терминов Ливерпуль и Мидлсбро родителем будут не только «Города», но и «Англия» из География->Страны, для термина «Москва» — «Города» и «Россия»... и так далее.

Мои действия:
1. Я создал новый словарь «География» и определил ноды, к которым термины этого словаря будут относиться.
2. Затем создал термин «Страны», родителем которого стал корень.
3. Потом начал по очереди создавать новые термины из подготовленного списка стран, каждому из них определяя в родители «Страны».
4. В итоге я получил на выходе в example.net/admin/content/taxonomy/2 плоский алфавитный список всех введённых терминов словаря «География», среди которых затесался и термин «Страны».
5. Для пробы указал для одного из материалов термин «Дания» и посмотрел, что получилось. При просмотре термина «Дания» выводится тизер материала, в который был прописан тег, при просмотре тега «Страны» я вижу пустую страницу без указания входящих в эту рубрику терминов и надпись «В этой категории нет материалов».

Вопрос:
1. Может быть я что-то неправильно понял, но зачем тогда нужна древообразная структура? Мне это интересно в связи с тем, что я собирался использовать рубрикацию вида «страны» и «города» исключительно для того, чтобы авторам было удобно находить и указывать новые термины.
2. Что в таком случае мне даст определение в родители городам определённых стран? Я планировал, что при просмотре страницы термина «Англия», например, пользователь будет заголовки (тизеры?) страниц, для которых проставлен не только тег «Англия», но и теги «Ливерпуль», «Мидлсбро» и так далее.
3. Может быть мне нужно что-то изменить при создании структуры терминов, чтобы получилось то, что я хочу видеть? Если да, то что именно?

Спасибо.

Комментарии

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 20 декабря 2008 в 18:28

Большое спасибо. Интересно, почему мне самому не пришло такое в голову?

Я так понимаю, это ответ на третий вопрос.
Хочется сразу спросить, а поможет мне такая структура реализовать мои задумки? Я имею в виду:
1. Возможно ли сделать иерархии терминов в рамках одного словаря,
2. Можно ли, чтобы при выборе термина «Россия», отображались не только страницы, для которых указан этот термин, но и все страницы, для которых указаны только «Москва», «Новосибирск» и проч.?
3. При создании терминов с городами надо ли мне в качестве родителя указывать корень словаря или достаточно только страны (или стран для Бреста и Львова, например), в которой город находи{л,т}ся?

Спасибо ещё раз.

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 20 декабря 2008 в 19:22

Спасибо. Попробую создать словарь и потестирую, как он работает с модулем hierarchical_select. Но есть у меня подозрение, что всех моих проблем он не решит -)

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 20 декабря 2008 в 20:49

Нашёл ответ на свой второй вопрос здесь:

"GogA" wrote:
taxonomy/term/1/all -все материалы принадлежащие термиу 1 и его подкатегории.
taxonomy/term/1+2 - суммирование материалов терминов
taxonomy/term/1,2 - пересечение материалов терминов
Так что способ просматривать тизеры для термина и его «потомков» найден...

AndyPost
Спасибо. Обязательно посмотрю, что из этого выбрать. До написания модулей самостоятельно я ещё, пожалуй, не дорос.

Ломаю голову над «связанными терминами» — у нас на форуме ничего внятно про них не сказано. Непонятно, ни что это такое, ни для чего они нужны. Нашёл лишь упоминание, непосредственно работать с ними не получится — только через дополнительные модули или самостоятельно написанные скрипты. Причём так и не растолковано, что же за штука такая -\

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 20 декабря 2008 в 21:21

penexe
Не подойдёт мне пока hierarchical select, потому что он требует jQuery Update 2, а для шестого Друпала, который я сейчас использую, есть только первый jQuery Update -(

Аватар пользователя ingumsky@drupal.org ingumsky@drupal.org 20 декабря 2008 в 22:25

Вот здесь рассказывается о том, как решить проблему с каталогом статей, а точнее с отображением в таком каталоге не только содержимого категории, но и статей, входящих в её подкатегории.

PS Надеюсь, никого не возмутит то, что пост становится похож на мини-коллекцию решений, связанных с таксономией...

Аватар пользователя Алешка Алешка 21 декабря 2008 в 21:40

"<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a>" wrote:
PS Надеюсь, никого не возмутит то, что пост становится похож на мини-коллекцию решений, связанных с таксономией...

Очего же... Очень удачное начинание Smile Это, конечно, уже не в первый раз здесь делается, но каждый раз интересно. Перечитываю и вновь нахожу новые решения вопросов. Спасибо за идеи.