Drupal';s网络表单模块isn';t使用webform.api.php

Drupal';s网络表单模块isn';t使用webform.api.php,php,drupal,drupal-7,drupal-webform,Php,Drupal,Drupal 7,Drupal Webform,我正在使用Drupal 7的Webform模块,我试图修改Webform.api.php中的hook\u Webform\u submission\u presave,但是模块似乎没有使用这个文件,因为我已经做了修改,但没有做任何更改 我必须在任何地方对Drupal说才能使用这个文件吗?或者我必须做什么?首先,我希望您知道不应该直接更改模块文件,而是向模块添加钩子函数,并用模块机器名更改函数名开头的“钩子” 其次,您必须清除所有缓存,这样Drupal将重新扫描您的模块,并确定有新的钩子函数并开始

我正在使用Drupal 7的Webform模块,我试图修改Webform.api.php中的
hook\u Webform\u submission\u presave
,但是模块似乎没有使用这个文件,因为我已经做了修改,但没有做任何更改


我必须在任何地方对Drupal说才能使用这个文件吗?或者我必须做什么?

首先,我希望您知道不应该直接更改模块文件,而是向模块添加钩子函数,并用模块机器名更改函数名开头的“钩子”

其次,您必须清除所有缓存,这样Drupal将重新扫描您的模块,并确定有新的钩子函数并开始使用它

因此,您必须首先创建自己的模块:

不要害怕,它只是一个文件夹,里面有一个描述模块的信息文件和模块文件(在最简单的情况下)

然后,如果模块名为“anna”,则应在模块文件中创建一个函数,并将其命名为:

anna_webform_submissions_presave()


然后清除缓存-之后Drupal应该开始调用钩子函数。

模块不使用它们的
.api.php
文件。这些文件是为了文档的目的而存在的。太好了。

谢谢。。。对不起,我是新手。。。如何添加钩子函数?我想修改
hook\u webform\u submission\u pressave
函数,因为我需要在将sid保存到数据库之前修改它@再一次,我有我的模块了。我问这个问题的原因是因为我想在保存之前修改webform_提交的sid。我尝试过做以下操作,但没有成功:
函数uvic_webform_submission_presave($node,&$submission){$result=db_select('webform_submissions','sid')->fields('sid')->condition('nid',$node->nid)->orderBy('sid',DESC DESC range(0,1)->execute();->fetchAssoc();if($submission->nid->nid==node->nid){if($result){$submission->['sid']=$result['sid']+1;}else{$submission->['sid']=1;}}}$component\u id=4;$submission->data[$component\u id][0]='uvic';}
@MilanGUh,这种方式很难调试。请在更改前后打印$submissions,并检查是否所有内容都按您希望的方式更改。谢谢!我又问了一次问题,您能看一下吗?@Pierre Buyle