Поле CCK это случайное число - PullRequest
4 голосов
/ 31 июля 2010

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

Это означает, что когда пользователь пытается создать новый узел, он видит предварительно заполненное случайное число как единое целоеполей (и не может изменить это поле)

1 Ответ

5 голосов
/ 01 августа 2010

Попробуйте модуль Computed Field *1001*, который позволяет создавать поля, значения которых определяются фрагментами PHP. Для случайного числа, вы можете использовать что-то вроде этого в конфигурации вашего вычислительного кода:

$node_field[0]['value'] = rand();

Обратите внимание, что rand () также принимает аргументы min и max в форме rand ( min , max ).

Также обязательно включите параметр «Хранить с использованием настроек базы данных ниже» с типом данных «int» и разумной длиной данных, основанной на ожидаемом диапазоне значений для rand (). Это гарантирует, что поле не будет пересчитываться каждый раз, когда отображается узел.

РЕДАКТИРОВАТЬ: Я только что понял, что вышеупомянутый метод сохраняет новое случайное значение каждый раз, когда пользователь обновляет / перезапускает узел. Если вы хотите, чтобы поле генерировало и сохраняло случайное число один и только один раз для каждого узла (при первоначальном сохранении узла), попробуйте что-то вроде этого:

if (!$node_field[0]['value']) {
  $node_field[0]['value'] = rand();
}

Это установит значение для поля, только если оно еще не существует.

...