2010-07-31 90 views
4

任何人都知道CCK模块添加一个文本字段,它只是一个随机生成的数字?CCK字段是一个随机数

这意味着,当用户尝试创建一个新的节点,他看到一个预填充的随机数作为其中的一个字段(并且不能改变这一领域)

回答

5

尝试Computed Field module,它允许你创建其值由PHP片段定义的字段。对于一个随机数,你可以使用这样的事情在你的领域的“计算出的代码”的配置:

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

注意RAND()也接受最小和最大的论点,在兰德的形式(分钟最大)。

此外,请务必根据rand()的期望值范围启用“数据库设置下的存储”设置,数据类型为“int”,数据长度合理。这将确保每次显示节点时都不重新计算该字段。

编辑:我刚刚意识到,每次用户更新/重新保存节点时,上面的方法存储一个新的随机值。如果您想现场生成并为每个节点一次且仅一次存储的随机数(节点的初始保存),尝试这样的事情,而不是:

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

这将只设置了一个值字段,如果一个不存在。