views:

59

answers:

1

Anyone aware of a CCK module that adds a text field that's just a randomly generated number?

This means that when the user tries to create a fresh node, he sees a pre-populated random number as one of the fields (and can't change that field)

+4  A: 

Try the Computed Field module, which allows you to create fields whose values are defined by PHP snippets. For a random number, you might use something like this in your field's "Computed Code" configuration:

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

Note that rand() also accepts min and max arguments, in the form of rand(min, max).

Also be sure to enable the "Store using the database settings below" setting with a data type of "int" and a reasonable data length based on the expected range of values for rand(). This will ensure that the field isn't recomputed every time the node is displayed.

EDIT: I just realized that the above method stores a new random value each time the user updates/resaves the node. If you'd like the field to generate and store a random number once and only once for each node (at the node's initial save), try something like this instead:

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

This will only set a value for the field if one doesn't already exist.

peterjmag