сохранить поле в верхний регистр в drupal 6? - PullRequest
1 голос
/ 24 августа 2011

При создании события drupal у меня есть текстовое поле cck, называемое person. Как заставить поле person сохранять (в дБ) только в верхнем регистре?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2014

для друпала 7, который работает:

   function mymodule_node_presave($node) {
     if ($node->type == ('article') {       
       $node->title = ucfirst($node->title);
     }  
   }
0 голосов
/ 10 сентября 2011

Проверить 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));
...