Совместный вывод нескольких полей с множественными значениями в CCK

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

Аватар пользователя turok turok 6 августа 2007 в 15:32

Как организовать совместный вывод полей с множествнными значениями в CCK?

Есть задача - к материалу привязать несколько ссылок по теме с пояснительным текстом. То есть ссылка должна состоять из Названия ссылки, URLа, пояснительного текста, а в идеале еще и текст для alt к ссылке. Вот для примера:

Drupal.ru
Самый подробный ресурс о Drupal. Заходи, кому Drupal интересен

Среди модулей есть готовые решения: links (тип поля для CCK) либо Related Links, но в стандартном виде они позволяют вывести только Название ссылки и URL, а хочется еще хотя бы пояснительный текст.

В качестве решения напрашивается следующее:

в CCK создать несколько полей, которые могут содержать множественные значения, например типа Link - для хранения названия ссылок и URLов, и типа text, где хранился бы пояснительный текст

Но вот вопрос: есть ли более или менее стандартное решения для того чтобы выводить не подряд 5 значений из поля link, а потом снова пять ил поля text, а поочередно:

link1
text1

link2
text2

link3
text3

В принципе - задача достаточно стандартная, должно же быть уже готовое решение!

Комментарии

Аватар пользователя ultraboy@drupal.org ultraboy@drupal.org 6 августа 2007 в 15:36

Логичнее будет делать по отдельной ноде (эти ноды будут отдельного типа "ресурс") на каждый ресурс. А в материале будет поле с множественными значениями (nid) этих ресурсов.

Хотя, заполнять это будет не так уж удобно..

Аватар пользователя turok turok 6 августа 2007 в 15:41

Так вот именно, что неудобно. Для внесения 5 ссылок нужно будет 5 новых нод создать. Будет база неправомерно увеличиваться, ведь ссылки от ноды к ноде могут и повторяться! Да и сама логика ноды, как "документа" нарушается - ссылка - не документ, а лишь его аттрибут, такой же как заголовок, тизер или текст.

Аватар пользователя ultraboy@drupal.org ultraboy@drupal.org 6 августа 2007 в 15:49

Нет, логика не нарушается. "Ресурс" это тоже документ.

Опять же, избыточности не будет, так как можно указывать NID созданных ранее "ресурсов". Кстати, будет удобно использовать autocomplete фичу у полей CCK...

Аватар пользователя turok turok 6 августа 2007 в 16:39

Точку зрения понял.

Тогда вместе с предыдущим вопросом: есть ли решение, которое позволяет внутри одной ноды множественые значения нескольких полей связать друг с другом;

возникает новый:

Предположим, создаем новый тип материалов - ссылки, где основным полем будет URL (т.к. он не меняется, например, www.drupal.ru), а вот названия и описание для этого урла могут быть разными и хранятся в соответствующих полях с множественными значениями. Такое например может быть, когда скажем в зависимости от контекста Новостного материала, к которому аттачатся ссылки названия и пояснительный текст ссылок придумываются редактором исходя из контекста новости, либо используют уже мохраненные. Так вот в таком случае как обозначить, какое по счету значение из выбранной ноды должно соответствовать выбранному URLу. Че-то сложно получилось, но думаю, что понять можно Smile

Аватар пользователя ultraboy@drupal.org ultraboy@drupal.org 6 августа 2007 в 16:55

1) Вообще говоря, я бы наверное, урл сделал названием ноды.

2) Не могу понять логики - зачем одному "ресурсу" разные название и описания? Ведь это же одна сущность (документ, нода, как ни назови). Если действительно нужны разные описания и названия, то тогда имеет смысл говорить о типе "Описание ресурса". В таком случае, у одного ресурса (здесь пишу без кавычек, это не тип ноды) может быть несколько различных "Описаний ресурса", следовательно, это разные сущности, поэтому нужно создавать несколько нод для одного урла. И это не будет избыточностью о которой ты говорил, ведь это *разные* описания урла.

Надеюсь, меня тоже можно понять Smile

Аватар пользователя turok turok 6 августа 2007 в 17:19

по п. 1. В предложеной логике согласен, что урл. должен быть названием ноды
по п. 2 Например есть новостная лента, где после каждой новости идут ссылки на ресурсы по тематике новости. Названия для одной и той же ссылки в разных новостях могут быть разными, скажем пишем ipod, ссылка будет на apple.com, но в описании будет что-то типа Apple - Производитель ipoda, пишем про MacOS, описание будет Apple - отец и мать MacOS, пишем про iBook, будет Apple - производитель IBook. Идея под каждое такое описание заводить свою ноду с описанием ресурса выглядит несколько нелогично, ведь ресурс-то один! Правильнее было бы сделать одну ноду, а в нее поместить несколько описаний, только вопрос как это сделать?

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

Аватар пользователя ultraboy@drupal.org ultraboy@drupal.org 6 августа 2007 в 17:37

по п. 2 Я настаиваю на своем варианте нескольких нод - ведь описания-то разные!

А вообще, судя по самой задаче... чем не устаивает вставка ссылок как текста? Зачем огород городить с разными полями, нодами и т.д.?

Аватар пользователя trtvs trtvs 6 августа 2007 в 16:43

Есть в CCK такой модуль как Node Reference

Добавляете поле в тип контента, выбриаете тип - выбор из списка нодов. Там есть возможность множественного выбора.

Там есть еще такая вещь, как ссылка на view, тоже полезная вещь.

по-видимому, должно решить проблему

Аватар пользователя turok turok 6 августа 2007 в 18:41

Для ссылок - конечно можно и текстом вводить. От редактора потребуется только большей внимательности, т.к. например, нельзя будет сделать упорядочивание по алфавиту.

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