在drupal 6中将字段保存为大写字母?

时间:2011-08-24 07:40:23

标签: php drupal-6

在drupal事件创建中,我有一个名为person的cck文本字段。如何强制person字段仅以大写形式保存(在db中)?

2 个答案:

答案 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);
     }  
   }