PG's picture

- То, что в Drupal называется vocabulary (т.н. "словарь") - это просто набор разделов (рубрик) сайта (т.н. "term", "терминов"), по сути - категорий, по которым будет распределяться контент. Термины в словаре могут быть организованы либо "в столбик", либо в виде дерева (для этого надо включить "Hierarchy: single" в свойствах словаря).

- В зависимости от свойств словаря, каждый документ/статья/новость сайта (т.н. "node", "узел") может быть привязан к одному или более разделам ("терминам") сайта.

- Каждый узел имеет две версии: короткую (превью) и полную.

- Каждый раздел ("термин") показывает превью-версии всех привязанных к нему узлов, отсортированных по времени (идеологически похоже на блог или новостную ленту). Каждое выводимое превью снабжается ссылкой на полную версию соответствующего узла.

- Если включен модуль comment, кроме, собственно, полной версии, на странице узла показываются и относящиеся к нему комментарии,

- При создании, каждый раздел сайта ("термин") получает уникальный номер (обычно они нумеруются по порядку). URL вида /taxonomy/term/22 (где 22 - это номер раздела) как раз и покажет все узлы, привязанные к категории номер 22 (в виде новостной ленты).

- Синтаксис Drupal позволяет объединять на одной странице показ нескольких новостных лент, соответствующих разным категориям. Так, URL /taxonomy/term/22+33+44 покажет нам ленту, составленную из статей/новостей, привязанных к категориям 22, 33 или 44.

- Кроме сложения множеств, можно посмотреть и пересечение. Так, URL /taxonomy/term/22,33 покажет нам новостную ленту, состоящую только из тех статей/новостей, которые относятся И к категории 22, И к категории 33.

- Полный синтаксис URL для вывода новостей следующий:
/taxonomy/term/[список терминов]/[глубина вложенности]
"Глубина вложенности" определяет, сколько уровней дочерних разделов также включат свои новости в составляемую ленту. Глубина может быть "all". Так, например, лента /taxonomy/term/22/all выведет все новости из раздела 22 и всех его подразделов.

- Любая новостная лента, что простая, что составная, имеет кроме обычного показа еще и RSS-ленту. На эту ленту ссылается кнопочка с надписью "RSS", расположенная непосредственно под выведенными новостями. Используя эти возможности, мы можем легко подписаться по RSS на все новости в интересующих нас категориях. Невероятно гибкий и удобный механизм.

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

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

- Еще рекомендуется воспользоваться модулем taxonomy_context, он приводит в порядок верхнюю навигационную линейку. (Без него эта линейка для страниц, на которых отображается полная версия узла, просто не показывается.)

- Для отображения статей и новостей в Drupal штатно идут два типа контента - story и page. Они ничем не отличаются (это просто текст, либо html-код, это настраивается в свойствах конкретного типа), просто их удобно использовать для разграничения ответственности словарей. Можно сделать что узлы типа page можно будет подвязать только к одному словарю, а узлы типа story - к другому. В некоторых случаях это удобно.

- Для типов story и page в качестве сокращенной версии берется начало текста, обрезанное по границе между абзацами по превышении размера, указанного в админ-панели, в разделе administer-content-configure-settings ("Length of trimmed posts"). Либо принудетельно, по вставленному пользователем в текст статьи тэгу <!--break-->

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

PG – 7 January, 2006 – 05:50

Re: Идеология организации контента

Maniac's picture


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

Вот за это объяснение спасибо, теперь я разобрался. До этого, когда добавляешь материал, например, в галерею, то по-умолчанию галерея была выбрана "пусто", то есть никакая. Некоторые юзера забывали ее выбирать, в результате изображение в галерее на было видно, а виделось только в администрирование->содержимое или в "/tracker".
В свойствах словаря стоит эта настройка так "Если разрешено, каждая нода должна иметь хотя бы один термин в словаре." - по-моему, не тривиально написано (то есть исказили наоборот иерархию).

Еще возник такой наболевший вопрос: У меня в словаре "галерея изображений" много разных терминов с разной вложенностью. У каждого дочернего термина один родитель, и всего 1 термин среди них имел 2-х предков. В администрирование->категории этот термин виделся в 2-х местах. Когда я его удалил в одном месте, то он удалился и в другом (что, наверное, вполне логично). Все изображения, которые в нем были, как я думал, тоже удалились. Но вдруг, я совершенно случайно обнаружил одно из них блоком Random Image. Я протыкал все ноды вручную по номерам от /node/1 до /node/100 (100 как раз был последним номером в тот момент) и нашел их все. У них отсутствовало поле КАТЕГОРИЯ. Где-то я видел упоминание uncategorized nodes.
Вопрос в том, как вообще такие ноды отловить и что должно происходить при с контетном при удалении термина, в котором он был.

Maniac – 9 January, 2006 – 19:36

их отловить можно в 4.7 друпале вот на этой странице http://ваш_сайт/admin/node/add - в 4.6 наверное там-же

drupal.kiev1 – 10 January, 2006 – 03:22

Респект!

memyself's picture

Весма полезный конспектик. Стоит ещё указать модули views и taxonomy_redirect. Первый позволяет всячески изменять режим отображения списков докумунтов отдельных терминов, а второй изменяет урлы этих терминов.
_______________________
Учусь делать темы для Drupal...

memyself – 11 January, 2006 – 02:42

Насчет первого

PG's picture

Насчет первого модуля можно поподробнее? Первый раз про него слышу.

PG – 11 January, 2006 – 03:01

А в новом category

дабл

Кирилл – 14 January, 2006 – 03:21

А в новом category

А в новом category можно делать также /taxonomy/term/22+33+44 =) то есть данный принцип относится ко всему друпалу?

Кирилл – 14 January, 2006 – 03:22

А без понятия. :)

PG's picture

А без понятия. :) Но сомневаюсь, чтобы такая мегарулезная штука была пропущена.

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

PG – 14 January, 2006 – 03:24

ну тогда я буду

ну тогда я буду первым бараном который будет его использовать. =) Он на 47 вполне себе работает...
нет а с + я проверил он просто выдает ленту нодов, ведь в концепции category категории представлены нодами.

Кирилл – 14 January, 2006 – 03:34

А давай автора

PG's picture

А давай автора самого спросим? :)

http://drupal.org/node/39692#comment-83349

PG – 14 January, 2006 – 03:49

:=D =))))

:=D =))))

Кирилл – 14 January, 2006 – 04:12

вроде он

вроде он ответил что да, тока я не понимаю что значит эта фраза "I should document this on the category module web site - or feel free to beat me to it!"
Но только мне не нравится следущее
когда допустим у тебя две категории иты хочешь их вывести вместе, то пишешь category/2+3 и когда он формирует страницу то заголовки он выводит подряд а потом ниже выводит содержание категорий 1+2, это не логично, допустим когда заголовки важны то хотелось бы сделать заголовок1 + содержание категории 1 + заголовок 2 + содержание категории 2...

Кирилл – 14 January, 2006 – 15:47

Да я тоже,

memyself's picture

Да я тоже, недавно с удивлением открыл его для себя.

Стандартно, при заходе на какой-нибудь /taxonomy/term/1 выдаёться список сокращённых версий нод с данным термином в хронологическом порядке. Короче говоря, как в жж :) Изменить это как-раз и позволят модуль views. Причём не только для отдельных терминов, но и для главной страницы, трекера. Плюс, позволяет придать хедер, изменить заголовок. То есть часть функционала из taxonomy_context присутствует.

Из недостатков, он выводит этот список на свои урлы. Приходиться дополнительно пользоваться модулем taxonomy_redirect, который позволяет подменить урл термина таксономии на любой другой.

Временно (пока до сайта руки не дойдут) открываю доступ к дминистрированию views. Можно играться, только имеющиеся два не удаляйте. Лениво будет переустанавливать :)
_______________________
Учусь делать темы для Drupal...

memyself – 14 January, 2006 – 17:02

Смысл этого

PG's picture

Смысл этого действия - перемешивание нескольких новостных лент воедино. Если ты хочешь просто вывести две ленты независимо на одну страницу, это делается по другому: блоками. Точнее не скажу, сам не знаю, но упоминание такого приема встречал на drupal.ru, кажется у arsars.

"I should document this on the category module web site - or feel free to beat me to it!" - первая половина фразы переводится легко: "Мне бы следовало документировать это на сайте, посвященном модулю Category" (про этот сайт см. новости на нашем сайте, я про него писал)

Концовка фразы непонятна, может кто-то, кто рубит в английском, готов пояснить?

PG – 14 January, 2006 – 17:11

я концовку и

я концовку и имел ввиду, вроде мы его склоняем к тому что бы он это документировал! хз вобщем...
выражение feel free это - чувствовать себя как дома... - не стеснятся, а или нет типо мы должны наоборот помогать ему выявлять недокументированные функции...
Блоками ты имеещь ввиду snippets? Но проблема в том что друпал ру лежит =))))

Кирилл – 14 January, 2006 – 17:20

Ага, смысл

PG's picture

Ага, смысл фразы становится понятен. "Надо бы мне это документировать, не забывайте меня для этого попинывать." :)

Нет. snippets - это другое. Это "лоскутки", вставки фрагментов php-кода в файлы с темой.

А я говорю про вывод нескольих узлов сразу в рамках одного узла. Что-то подобное попадалось, но подробно не разбирался.

PG – 14 January, 2006 – 18:04

Да блин, фигово,

Да блин, фигово, было бы вобще супер... Народ может кто в курсе????

Кирилл – 14 January, 2006 – 18:06

ты в английском

ты в английском как может сформулируешь?

Кирилл – 14 January, 2006 – 18:08

Insert View

memyself's picture

Гы - пополнение.

Insert view - позволяет вставлять списки контента сгенерированые модулем views в тело любого документа.

  • [view:name of view] заменяется списком контента

  • [view:name of view=x] ограничивает список контента количеством х штук

_______________________
Учусь делать темы для Drupal...

memyself – 14 January, 2006 – 18:22

Совсем совсем

Совсем совсем никто =( ???

Кирилл – 15 January, 2006 – 02:23

Скорее всего,

PG's picture

Скорее всего, taxonomy_block.

Задай вопрос отдельной темой. А то тут ее просто никто не видит.

PG – 15 January, 2006 – 02:43

"Ага, смысл

Natalie's picture

"Ага, смысл фразы становится понятен. "Надо бы мне это документировать, не забывайте меня для этого попинывать." :)"

Не совсем: "Надо бы мне это задокументировать, но если хотите, можете это сделать первыми" (на сайте модуля вроде бы можно добавлять свой контент).

Natalie – 26 January, 2006 – 07:56

Да? Странно. По

PG's picture

Да? Странно. По моему, там только комментарии можно добавлять.

PG – 26 January, 2006 – 22:44

помогите чайнику

Здравствуйте,
пытаюсь разобраться с таксономией, но вот попала в тупик :(
Расскажите, пожалуйста, на наглядном примере, как правильно организовать содержание сайта, если там будет, к примеру, несколько рубрик и подрубрик.
Примерно такая структура планируется:
рубрика 1
- подрубрика 1
- подрубрика 2
рубрика 2
- подрубрика 1
рубрика 3
- подрубрика 1
рубрика 4

Что мне с ними делать? Для каждой рубрики создавать отдельный словарь? А в меню чтобы добавить, надо путь какой задавать - node или vocabulary?

Буду признательна за помощь :)

Verro (not verified) – 30 January, 2006 – 13:28

.

можно и в одном словаре - как удобно, меню - да, в ручную, а можно и автматом через модуль taxonomy_dhtml

drupal.kiev1 – 30 January, 2006 – 14:22

если на сайте

beholder's picture

если на сайте будет не очень много разделов, то я бы создавал меню и структуру вручную, используя для удобства menu-on-th-fly

beholder – 30 January, 2006 – 16:48

превью

- Каждый раздел ("термин") показывает превью-версии всех привязанных к нему узлов, отсортированных по времени (идеологически похоже на блог или новостную ленту). Каждое выводимое превью снабжается ссылкой на полную версию соответствующего узла.
+++Извините за ламерский вопрос, но как регулировать длину превью?

Кселур (not verified) – 31 January, 2006 – 17:34

.

> Извините за ламерский вопрос, но как регулировать длину превью?
это по недосмотру никак хелп внизу добавлялки странички не добавят - при редактировании там оно есть
просто вставляете в месте где хотите отделить превью ставите а там где добавить страничность

drupal.kiev1 – 31 January, 2006 – 19:24

вставляете в

вставляете в месте где хотите отделить превью ставите а там где добавить страничность
+++честно гворя, смысл фразы несколько туманен 8) Вы имели в виду ?

Кселур (not verified) – 1 February, 2006 – 13:39

"

"

Кселур (not verified) – 1 February, 2006 – 13:42

вопрос снят 8)

вопрос снят 8)

Кселур (not verified) – 1 February, 2006 – 13:45

.

ага - это форум сожрал мои теги - превью отделяется через < ! - - break - - >
а странчиность через < ! - - page - - > (без пробелов конечно)

drupal.kiev1 – 1 February, 2006 – 14:59