Создание cоставного поля в CCK 2.x

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

Аватар пользователя neochief neochief 28 декабря 2009 в 21:01

Чем можно порадовать друпаллера на новый год? Канистрой пива, скажут некоторые, шашлычком с коньячком подтвердят другие. Мы же решили порадовать всех более практичным подарком, а именно переводом замечательной статьи Creating a Compound Field Module for CCK in Drupal 6.x Статья довольно обширная, так что запасайтесь чаем/пивом/текиллой и можете начинать с небольшой аннотации:

При создании сайта на базе системы управления контентом Drupal вы заметите, что часто необходимо задавать типы контента, к которым, помимо дефолтных Title и Body, добавлены еще и другие поля.

В Друпале, начиная с 7-ой версии, функционал полей запланирован в базовом дистрибутиве, однако в версиях 6 и ранее он реализован в пользовательском модуле CCK и других связанных модулях, которые предусматривают дополнительные типы полей для создания контента.

При создании некоторых сайтов вам придется задавать поля с несколькими значениями, например, нужно будет разместить несколько изображений (каждое из которых будет полем-изображением) в правой части страницы. Это не проблема, так как модуль CCK позволяет задать несколько значений любому полю, а во второй версии CCK можно с легкостью сортировать, удалять или добавлять элементы с помощью удобного интерфейса на AJAX.

Но что, если нужно привязать, например, подпись и термин таксономии к каждому изображению? Другими словами, что если надо добавить поля к вашему типу контента группой?

Полная статья »

P.S. Даешь ликбез в массы!

Комментарии

Аватар пользователя wazzup wazzup 29 декабря 2009 в 8:38

По статье

Quote:
2. Подтип контента. Создайте второй тип контента «Image Caption Term», который будет содержать изображение и привязанные к нему данные. Далее к первоначальному типу контента добавьте поле с несколькими значениями Node Reference, которое привяжет страницу к ее изображениям. На практике редактировать такой контент очень неудобно и, в конце концов, у вас соберется куча элементов Image Caption Term, которые будут засорять экран и сбивать с толку неопытных пользователей.

я бы добавил еще вот такой вариант. скажем как 2Б.

удобнее если добавить Node Reference не к первоначальному типу контанта а как раз таки к
«Image Caption Term» и должно ссылатся на первоначальный тип контента.
Затем создаем View с параметром на этот Node Reference. Добавим показ этого View в теме офомления первоначального типа контента (как вариант можно использовать Viewfield).
Для удобства редактирования покажем у View поля "редактировать" и "удалить".
а для того чтобы Node Reference заполнялся автоматом воспользуемся модулем Node Reference URL.

Аватар пользователя orangeudav orangeudav 29 декабря 2009 в 15:35

wazzup wrote:

Для удобства редактирования покажем у View поля "редактировать" и "удалить".

что-то я не нашел у вьюх такой опции, чтобы показать "радектировать" "удалить" . Или имеется ввиду следелать руками в node-xxx.tpl.php ?

Аватар пользователя wazzup wazzup 29 декабря 2009 в 17:28

это когда
Стиль строки: Поля

ну и добавить к представлению вот эти поля:

Материал: Ссылка "Изменить"
Прямая ссылка для изменение материала.
Материал: Ссылка "Удалить"
Прямая ссылка для удаления материала.

Аватар пользователя Zaboev Sergey Zaboev Sergey 29 декабря 2009 в 13:57

Добрый день, я изучаю Drupal недавно. Статья весьма полезная! Часть информации я проглотил, но у меня есть задача создать составное поле из текстовых полей. Тут вопрос: Какие элементы кода мне пригодятся из статьи, а какие нет? Пробовал сам разобраться - не получилось - потерялся в коде. Подскажите, пожалуйста.

Аватар пользователя Murz Murz 29 декабря 2009 в 16:04

Ещё есть модуль Flexifield http://drupal.org/project/flexifield - он как раз позволяет сделать то что надо, правда реализует это через отдельную ноду для каждой группы полей, но интерфейс вполне приличный, для тех кому руками ковырять неохота - сойдёт. А так - тормозов он конешно добавит немало при подгрузке ноды, на высокопосещаемых сайтах лучше своё писать.

Аватар пользователя PVasili PVasili 30 декабря 2009 в 15:44

"Murz" wrote:
А так - тормозов он конешно добавит немало при подгрузке ноды,
никаких там тормозов не добавится...
новый тип служит только для связки CCK полей. Топик стартер не посмотрел среди модулей. Вот и велик изобрёл...

Аватар пользователя Dan Dan 30 декабря 2009 в 17:46

"PVasili" wrote:
Топик стартер не посмотрел среди модулей. Вот и велик изобрёл...

Василий, топикстартер статью перевёл. И она имхо весьма полезна как руководство по написанию своего собственного поля ССК.

Аватар пользователя PVasili PVasili 30 декабря 2009 в 17:55

"Dan" wrote:
статью перевёл. И она имхо весьма полезна как руководство
как руководство - полезна, слов нет...

Аватар пользователя PVasili PVasili 31 декабря 2009 в 0:39

"neochief" wrote:
тебе все труднее и труднее угодить
Саш, стареем видать ;).
Я часто, что-нибудь сделаю, ать а тут модуль есть уже давно ...

За статью псиб, полезно и познавательно почитать.

Аватар пользователя andypost@drupal.org andypost@drupal.org 31 декабря 2009 в 4:44

Считаю статью гипер-полезной, орентирована она безсловно на кодеров, так что Василия просьба не беспокоиться Smile

Теперь бы еще views API перевести... хотя из приложенного сним хелпа Wacko

Аватар пользователя falkon@drupal.org falkon@drupal.org 21 сентября 2010 в 10:56

А можно ли подправить ссылочку на вашу статью, т.к. открывается страница "Доступ запрещён
У вас нет доступа к этой странице."

Аватар пользователя Advin Advin 14 октября 2010 в 21:25

Буду признателен, если сочтете возможным опять открыть публичный доступ к данной статье.
В свое время видел – не дочитал… теперь жалею Smile

Аватар пользователя neochief neochief 15 октября 2010 в 3:12

Статья вернулась. Буквально 6 часов назад разрешили наконец проблему с оригинальным автором статьи. Всегда спрашивайте разрешение на перевод.

Аватар пользователя orangeudav orangeudav 17 октября 2010 в 14:34

>> Всегда спрашивайте разрешение на перевод.

в смысле, "всегда указывайте кто автор"?

зы в любом случае спасибо еще раз за перевод!

Аватар пользователя neochief neochief 17 октября 2010 в 18:16

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