drupal CCK: как добавить текстовое поле, значение которого зависит от других полей CCK на той же странице? - PullRequest
0 голосов
/ 23 февраля 2011

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

Например: предположим, у меня есть следующие поля:
Поле1: [список выбора]
Поле 2: [Выбор даты]
Filed3: [автоматически сгенерированное значение в зависимости от выбора поля 2]

Таким образом, мое намерение заключается в том, что в зависимости от того, как пользователь выбирает даты в Field2, я автоматически сгенерирую и покажу некоторое значение в Field3.

Я полагаю, что Field3 не обязательно должен быть полем CCK, поскольку он вообще не собирает никакой информации от пользователя. Что мне действительно нужно, так это «обратная связь в реальном времени», где пользователи могут видеть, что происходит, если они вводят что-то в поля CCK.

Есть идеи? Спасибо.

1 Ответ

0 голосов
/ 23 февраля 2011

Насколько я знаю, кроме вычисляемого поля нет способа присвоить бизнес-логику полям CCK в Drupal.

Если вы хотите, чтобы такая бизнес-логика управляла вашими полями, я предлагаю один из двух вариантов:

  1. Создайте свое собственное поле. Это звучит сложнее, чем есть; самая сложная часть вызвана отсутствием документации: она требует прочтения примера кода, проб и ошибок. Хороший учебник можно найти в тополе .
  2. Создайте свой собственный тип контента со своими полями. Это, безусловно, самый простой. Но ему не хватает гибкости CCK: вы жестко кодируете поля этого типа контента, поэтому не можете использовать их повторно для других. Представления не будут интегрироваться в ваш модуль без написания собственных интеграций представлений и поискового индексирования, а другие расширения часто требуют дополнительной работы.

При этом я лично чаще всего выбираю последнее; Мне вряд ли когда-нибудь понадобится руководство по настройке, все параметры и гибкость, когда я все равно занимаюсь разработкой пользовательских материалов для сайтов, так зачем их беспокоить? Хорошим примером является тот факт, что поля CCK могут быть единичными и множественными: ваша архитектура и ее код должны будут охватывать оба варианта, в противном случае все будет сломано. Даже если вы точно знаете, что вам никогда не понадобится множественность в поле, вы все равно будете тратить часы на ее разработку.

...