Всем привет. Заезжанный вопрос.
Сontent Multigroup Drupal6 - рабочая вещь.
Однако упорно не могу ничего найти похожего для Drupal7.
Задача: наполнять контент в табличном стиле, где ячейка каждой строки - cck поле. Есть кнопка добавить строку.
Если есть решение - отпишите.
Если нет - буду куралесить сам, ибо выхода нет. Отпишите опыт, что юзали, какие идеи.
В 6ке я представляю как внутрях работает это, поскольку вывод у меня всегда кастомный.
Если что доброе выйдет в итоге, как бы универсальное, повторное использование из коробки и тп - поделюсь...
Комментарии
http://drupal.org/project/cck_table
Если конкретно надо, то напишу:
нужно составить таблицу, где в первой колонке будут ссылки на термин (цвет), во второй колонки будет Unlimeted Image (изображения с разных ракурсов).
Не обязательно визуально, чтобы выглядело как таблица. Главное, чтобы при редактировании ноды цвет и цепочка ракурсов были сгруппированы в одну сущность.
У меня куча грязных javascript мыслей по этому поводу уже Но так неохота садиться за то, что уже решенов 6ке
double_field dev версия может оформить вывод ввиде таблицы. Хотя я всё равно не понимаю, как вы реализуете «Unlimeted Image (изображения с разных ракурсов)».
ну я же говорю, что не обязательно, чтобы поля были в 1 строчку. Их же можно в филдсет закрывающийся пихать. В начале идет выбор цвета, а потом цепочка ракурсов. Туда напихали ракурсов, внизу тыкнули добавить строчку - снова филдсет с цветом и балванкой под ракурсы...
http://drupal.org/project/field_collection
меня удивляет на самом деле, что среди разрабов нет устойчивого мнения по этому поводу. Вещь реально нужная. В 3х последних проектах (инет магазины) я ее использовал. Как так то )))
Просто никто так и не понял, что вы хотите. Field collection — чушь, потому что вы не смогли его осилить. Другие варианты обсуждать нет смысла.
Меня удивляют хомячки, чья ограниченность мышления создаёт им проблемы.
Ну обвинить меня в ограниченности можно легко и просто, так же как вас в уродстве, или недоделанности. Но когда с вас/меня потребуют факты, обосновывающие данные утверждения, то с этим начинаются проблемы. Если хочешь поругаться - дуй на форум розовых блондинок. Если есть что сказать - скажи без прилюдий, потому как тема очень хорошо проиндексирована в гугле и люди, которые будут в нее заходить, будут ожидать ответ, а не великие умозаключения не сертифицированного аналитика границ человеческих.
Т.е. от вас фактов не будет?
Ок.
Объясняю.
Вы не стали утруждаться в полном описании хотелки, вероятно делаете аналог атрибутов мульти-полями.
Field collection ниасилили, модуль плохой, ну оно и ясно, чо уж там.
Теперь о реализации атрибутов мульти-полями - способ хренов изначально.
1. затратный по ресурсам.
2. с большими ограничениями, в мульти-полях не работает тип поля image
3. Практически исключается возможность рефакторинга.
Идём далее, про ограниченность мышления.
Вы сами себе вбили в голову что данная задача решается так.
Естественно существования модулей
http://drupal.org/project/editview
http://drupal.org/project/editablefields
http://drupal.org/project/multi_node_add
http://drupal.org/project/slickgrid
http://drupal.org/project/cck_table
http://drupal.org/project/tablefield
и кучи других было проигнорировано.
Проблема ваша вытекает из неправильной архитектуры и кривизны рук (ограниченности мышления)
не нужно судить шаблонно, как пивосос возле зомбоящика! Судя по опыту работы, чем думать у вас есть => думайте красочней обо мне. Я установил этот модуль, добавил поле. В админке - пустота, devel показывает null - че за хрень. Накатал тему, пошел заниматься делами другими.
Как раз щас появилось время, чтобы погуглить гайды как раз по этому модулю и вот что я нашел
Исходя из этого видео, кирка довольно увесистая, щас пойду ей махать (тестить).
как так? ))) так это как? Я разве предложил вариант решения? )))
Половину модулей из списка я уже установил. Таблицы - только текстовые поля, не подходит. Вообще, я ищу в глубину, перебирая по очереди пока не успех. Вы ищите в ширину - нагуглив аналогов, а потом уже пытаться понять что из них надо фильтрануть. Это подход к освоению, а не ограниченность - не надо путать яичницу с гениальностью!
Круг очевидности мой не расширился из вашего поста, потому для меня не очевидно:
1. почему я ограничен
2. если бы я не проявил инициативу (что в подавляющем случае приходится делать, а потом самому же отвечать на поставленный вопрос), то и выбора бы из списка модулей сделать не смог, ибо четкого ответа дано не было.
В связи с этим могу утверждать, что вы либо закомплексованный антисоциальный тип, самоутверждающийся за счет уличения в нензнаии и подмене понятий "незнание" и "ограниченность" - тем самым спикулируя на ответной реакции. Либо вы просто находитесь на не справедливо оплачиваемой работе, где вас всё и все (эти тупые уроды) достало/и, да еще какието хомячки пишут. В любому случае проблема в вас, а не во мне Я бы задачу решил, ибо деньги уже проплачены. Другое дело общение с подобными - это показатель друпал.ру сообщества
я ещё детей ем
отлично! В них много белка, что позволит вам не вести малоподвижный образ жизни. Одобряю.
ну и?
ну и я ковыряю Field collection
но!
Стоит отметить довольно мудреную структуру представления данных, которую использует этот модуль (entity api). Например, чтобы добраться до URI картинки, надо сделать около 9 разименований массива $variables в hook_preprocess_node, что ололо! Но это не совсем беда, не считая совершенно нечитабельного кода. Беда (вот прямо щас) заключается в том, что при выводе модулем views списка тизеров, где я хочу естественно добраться до обложек, я до них вообще не добираюсь! Гдето там в дебрях field_collection_item #items is null! И это пиз... Щас буду пытаться как то по другому выводить views (не тизерами, полями, хз...)
Еще отловлен баг. Когда наполняешь материал картинками - все ок! Можно городить сколь угодно картинок, потом добавлять еще одну строку и в ней опять городить сколь угодно картинок. Вот только баг заключается в том, что если ты нажмешь на remove любой картинки, то удалится не она сама, а строка целиком, вместе со всеми картинками и ссылкой на термин (который вообще не имеет отношения к картинкам какбе)! Обращаю внимание, что нажимаю remove именно картинки, а не строки field collection целиком! С этим я пока даже не представляю как бороться...
Хочется вообще на..й снести друпал и залит Django =E
VIEWS!
Когда выводим список тизеров нод, у которых есть коллекции, в hook_preprocess_node мы не можем найти конкретные entity. Однако если не лезть в дебри $variables['content'], а посмотреть $variables['field_name'], то увидим, что он выдает для текущего языка item_id.
Можно подгружать ручками вот такой функцией (нашел, порывшись в field_collection.module):
<?php
/**
* Gets a field collection item entity for a given field item.
*
* @param $field_name
* (optional) If given and there is no entity yet, a new entity object is
* created for the given item.
*
* @return
* The entity object or FALSE.
*/
field_collection_field_get_entity(&$item, $field_name = NULL) {...}
?>
Причем $item - тут не id, а array('value' => ), так что будьте внимательны, когда кормите функцию параметрами
$field_name - я не особо понял для чего толкового нужна (из описания), функция юзается где-то в модуле, видимо для чего-то годится.
Таким образом, первый костыль вставили. Думаю пригодится кому-нибудь
ЗЫ: модуль Field Collection Views - на первый взгляд совершенно бестолковый...
Никто так и не нашел альтернативу модулю Multigroup для семерки?
На днях искал решение для подобной проблемы - группировка полей и соответственно вывод их потом. В итоге, решением стало использование Field Collection и Field Collection View.
Первый позволил сделать несколько полей с одинаковым наполнением, второй позволил сделать вывод всего этого безобразия через Views с минимальными затратами на темизацию контента определенного типа, благо поля надо было выводить просто в табличном виде.
Свежее, очень многообещающее решение от Dave Reid: Multifield .
Отличается от прочих подобных аналогов тем, что не плодит сущности (буквально): вместо вложенных сущностей данные хранятся как дополнительные поля таблицы. Это накладывает на решение некоторые ограничения (см. на странице проекта) - но зато даёт и ряд колоссальных преимуществ, например скорость.
За прочими подробностями рекомендую обратиться к видео с главной.