Нужен модуль для CCK поля "nodereference с порядковым номером"

Прислано: naked_child

пн, 23/08/2010 - 19:20

Нужен модуль, реализующий составное CCK-поле. Субполя: ссылка на ноду (надо использовать готовый Node reference) и поле целого типа с номером.

Я пытался разобраться с руководствами по написанию составных полей, но застрял на этапе сохранения-восстановления данных в/из бд. Готов поделить нерабочим модулем, но там всё нехорошо пока.

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

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

Дополнение

Залил полурабочий модуль.

На данный момент в нем работает сохранение субполя "ссылка на ноду". Не работает сохранение субполя "номер" -- в модуле у этого субполя имя "number". Значение этого субполя теряется где-то на пути от сабмита формы к бд, что немного видно из друпаловского лога последних сообщений.

Также не работает случай, когда данное поле присутствует в материале не в одном, а в нескольких экземплярах.

Вот ссылки, которые мне сильно помогли в деле доведения модуля до нынешнего состояния:

Дополнение номер два

Залил значительно более рабочий модуль noderef_number.tgz.

Полностью работают сохранение-восстановление настроек поля. Полностью работает сохранение-восстановление значений поля в типе данных.

Пока не разобрался с интеграцией во Views.

Остался неясным вопрос, почему в функции noderef_number_noderef_number_select_text_process тип элемента $element['nid'] надо указывать select, а не nodereference_select, как можно было бы ожидать. Буду признателен, если кто-либо прояснит это затруднение.

Прикрепленный файлРазмер
example.tgz4.67 кб
noderef_number.tgz10.17 кб

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Xermit в вт, 24/08/2010 - 01:12.

cck custom field плагин вам не поможет?, сочетает все что захотите, единственное оно не хранится в бд, а генерируется по существующим cck полям. но никто не мешает вставить свой submit обработчик в форму, чтобы сохранить данные из customfield поля в ваши составные.


Опубликовано naked_child в вт, 24/08/2010 - 08:20.

Xermit написал(а):

cck custom field плагин вам не поможет?, сочетает все что захотите, единственное оно не хранится в бд, а генерируется по существующим cck полям. но никто не мешает вставить свой submit обработчик в форму, чтобы сохранить данные из customfield поля в ваши составные.

Если речь про этот модуль: http://drupal.org/project/views_customfield -- плохо понимаю, чем он мне поможет. Немного подробнее опишу, что хочется.

Дан объект типа "Цикл текстов", например "Три мушккетера". Даны три объекта типа "Текст" -- "Д'Артаньян и три мушкетера", "Двадцать лет спустя" и "Виконт де Бражелон, или Десять лет спустя". В объектах типа "Текст" есть поле "Цикл с номером". Все три текста ссылаются на цикл "Три мушкетера", но порядковые номера в каждом тексте, конечно, разные.

Если бы текст мог участвовать только в одном цикле, я бы добавил в текст поле "Номер" и всё. Но текст может участвовать больше чем в одном цикле, поэтому-то и нужно составное поле.


Опубликовано orangeudav в вт, 24/08/2010 - 08:30.

а нельзя в объекте Текст сделать составное поле типа Мегассылка в котором будет Reference и Counter(просто поле типа integer)
значений поля Мегассылка сделать произвольное число. и вуаля.

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


Опубликовано naked_child в вт, 24/08/2010 - 08:40.

У сск3 до сих пор даже альфа-релиза нет. Теоретически это совершенно нестабильный модуль. Или вы лично уже успешно использовали его на production сайтах?


Опубликовано G.A. Vinogradov в вт, 24/08/2010 - 08:56.

Лично я для подобных целей использую модуль flexifield, но мне его пришлось допиливать под свои нужды.


Опубликовано orangeudav в вт, 24/08/2010 - 09:02.

для cck2 вроде тоже был плагин составных групп.

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


Опубликовано naked_child в вт, 24/08/2010 - 09:10.

orangeudav написал(а):

для cck2 вроде тоже был плагин составных групп.

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

Правильно, я её изучил до дыр. Но там рассматривалось составное поле на основе Imagefield, а не Nodereference. В итоге попытка переписать те примеры под свои потребности пока упёрлась во что-то, чего я пока не понимаю.


Опубликовано orangeudav в вт, 24/08/2010 - 09:17.

что-то я не могу найти ту статью (


Опубликовано naked_child в вт, 24/08/2010 - 09:21.

orangeudav написал(а):

что-то я не могу найти ту статью (

http://www.poplarware.com/articles/cck_field_module -- вот оригинальная статья. Перевод http://shvetsgroup.com/ru/blog/custom-cck-2-field по неизвестной причине накрылся медным тазом.


Опубликовано orangeudav в вт, 24/08/2010 - 09:35.

я думал на хабре сам текст выложен

зы ага! http://hghltd.yandex.net/yandbtm?qtree=GkmqauiXc2axbelW8qK9Or%2BP8VEuqak...


Опубликовано orangeudav в вт, 24/08/2010 - 09:52.

могу попробовать сделать, но чуть попозже


Опубликовано naked_child в вт, 24/08/2010 - 10:35.

orangeudav написал(а):

могу попробовать сделать, но чуть попозже

Залил текущее состояние модуля, чтобы не совсем с нуля копать...


Опубликовано orangeudav в вт, 24/08/2010 - 11:49.

вот еще две косвенные статьи по теме
http://shvetsgroup.com/ru/node/28
http://shvetsgroup.com/ru/node/29


Опубликовано naked_child в ср, 25/08/2010 - 17:31.

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


Новое на сайте