Нужен модуль для CCK поля "nodereference с порядковым номером"
Прислано: naked_child
пн, 23/08/2010 - 19:20
Нужен модуль, реализующий составное CCK-поле. Субполя: ссылка на ноду (надо использовать готовый Node reference) и поле целого типа с номером.
Я пытался разобраться с руководствами по написанию составных полей, но застрял на этапе сохранения-восстановления данных в/из бд. Готов поделить нерабочим модулем, но там всё нехорошо пока.
Если кто-то поможет в написании или понимании, моя благодарность может приобрести различные формы :). Конкретнее: я готов и могу заплатить за написание соответствующего модуля, но чисто по-человечески интересно и понять сам механизм :).
Обсуждение лучше вести здесь, коммерческие предложения прошу в личку.
Дополнение
Залил полурабочий модуль.
На данный момент в нем работает сохранение субполя "ссылка на ноду". Не работает сохранение субполя "номер" -- в модуле у этого субполя имя "number". Значение этого субполя теряется где-то на пути от сабмита формы к бд, что немного видно из друпаловского лога последних сообщений.
Также не работает случай, когда данное поле присутствует в материале не в одном, а в нескольких экземплярах.
Вот ссылки, которые мне сильно помогли в деле доведения модуля до нынешнего состояния:
- http://www.poplarware.com/articles/cck_field_module
- http://maxeydevbox.org/blogs/geoffmaxey/building-custom-compound-fieldsw...
- http://wtanaka.com/node/447
- http://drupal.org/node/106716
- http://drupal.org/node/169815
Дополнение номер два
Залил значительно более рабочий модуль noderef_number.tgz.
Полностью работают сохранение-восстановление настроек поля. Полностью работает сохранение-восстановление значений поля в типе данных.
Пока не разобрался с интеграцией во Views.
Остался неясным вопрос, почему в функции noderef_number_noderef_number_select_text_process тип элемента $element['nid'] надо указывать select, а не nodereference_select, как можно было бы ожидать. Буду признателен, если кто-либо прояснит это затруднение.
| Прикрепленный файл | Размер |
|---|---|
| example.tgz | 4.67 кб |
| noderef_number.tgz | 10.17 кб |
- naked_child's blog
- Для комментирования войдите или зарегистрируйтесь
cck custom field плагин вам не поможет?, сочетает все что захотите, единственное оно не хранится в бд, а генерируется по существующим cck полям. но никто не мешает вставить свой submit обработчик в форму, чтобы сохранить данные из customfield поля в ваши составные.
- Для комментирования войдите или зарегистрируйтесь
cck custom field плагин вам не поможет?, сочетает все что захотите, единственное оно не хранится в бд, а генерируется по существующим cck полям. но никто не мешает вставить свой submit обработчик в форму, чтобы сохранить данные из customfield поля в ваши составные.
Если речь про этот модуль: http://drupal.org/project/views_customfield -- плохо понимаю, чем он мне поможет. Немного подробнее опишу, что хочется.
Дан объект типа "Цикл текстов", например "Три мушккетера". Даны три объекта типа "Текст" -- "Д'Артаньян и три мушкетера", "Двадцать лет спустя" и "Виконт де Бражелон, или Десять лет спустя". В объектах типа "Текст" есть поле "Цикл с номером". Все три текста ссылаются на цикл "Три мушкетера", но порядковые номера в каждом тексте, конечно, разные.
Если бы текст мог участвовать только в одном цикле, я бы добавил в текст поле "Номер" и всё. Но текст может участвовать больше чем в одном цикле, поэтому-то и нужно составное поле.
- Для комментирования войдите или зарегистрируйтесь
а нельзя в объекте Текст сделать составное поле типа Мегассылка в котором будет Reference и Counter(просто поле типа integer)
значений поля Мегассылка сделать произвольное число. и вуаля.
в последний раз у cck3 были проблемы с составными полями только если в них картинки использоваться, со ссылками вроде проблем не было
- Для комментирования войдите или зарегистрируйтесь
У сск3 до сих пор даже альфа-релиза нет. Теоретически это совершенно нестабильный модуль. Или вы лично уже успешно использовали его на production сайтах?
- Для комментирования войдите или зарегистрируйтесь
Лично я для подобных целей использую модуль flexifield, но мне его пришлось допиливать под свои нужды.
- Для комментирования войдите или зарегистрируйтесь
для cck2 вроде тоже был плагин составных групп.
а еще на хабре под новый год была статья о том как запрограммировать свою составную группу..
- Для комментирования войдите или зарегистрируйтесь
для cck2 вроде тоже был плагин составных групп.
а еще на хабре под новый год была статья о том как запрограммировать свою составную группу..
Правильно, я её изучил до дыр. Но там рассматривалось составное поле на основе Imagefield, а не Nodereference. В итоге попытка переписать те примеры под свои потребности пока упёрлась во что-то, чего я пока не понимаю.
- Для комментирования войдите или зарегистрируйтесь
что-то я не могу найти ту статью (
- Для комментирования войдите или зарегистрируйтесь
что-то я не могу найти ту статью (
http://www.poplarware.com/articles/cck_field_module -- вот оригинальная статья. Перевод http://shvetsgroup.com/ru/blog/custom-cck-2-field по неизвестной причине накрылся медным тазом.
- Для комментирования войдите или зарегистрируйтесь
я думал на хабре сам текст выложен
зы ага! http://hghltd.yandex.net/yandbtm?qtree=GkmqauiXc2axbelW8qK9Or%2BP8VEuqak...
- Для комментирования войдите или зарегистрируйтесь
могу попробовать сделать, но чуть попозже
- Для комментирования войдите или зарегистрируйтесь
могу попробовать сделать, но чуть попозже
Залил текущее состояние модуля, чтобы не совсем с нуля копать...
- Для комментирования войдите или зарегистрируйтесь
вот еще две косвенные статьи по теме
http://shvetsgroup.com/ru/node/28
http://shvetsgroup.com/ru/node/29
- Для комментирования войдите или зарегистрируйтесь
Предпринял вторую попытку, взяв за основу учебный модуль person_fld. Попытка оказалась весьма успешной, смотрите обновленный исходный пост.
- Для комментирования войдите или зарегистрируйтесь




Комментарии