在drupal事件创建中,我有一个名为person的cck文本字段。如何强制person字段仅以大写形式保存(在db中)?
答案 0 :(得分:0)
查看hook_nodeapi(http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_nodeapi/6)
你应该能够在模块中编写一个看起来像这样的函数:
function mymodule_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
if ($op == 'presave' && $node->type == 'event') {
$person = strtoupper($node->field_person[0]['value']);
$node->field_person[0]['value'] = $person;
}
}
如果 事件 ,只需使用您的机器友好型内容类型名称替换,并在其中显示 field_person ,将此替换为您的人员字段的计算机名称(在您的情况下可能是 field_person 。
如果你想知道它是否有效,那么在if语句结束之前把它放在你的代码中(应该是你的CCK字段都是大写的......可能后面有一个1,但只是忽略它,它只是die()
: - ))
die(print_r($person));
答案 1 :(得分:0)
适用于有效的drupal 7:
function mymodule_node_presave($node) {
if ($node->type == ('article') {
$node->title = ucfirst($node->title);
}
}