Drupal测验模块 - 参加测验后通过电子邮件发送结果

par*_*nde 2 drupal drupal-modules

我有一个Drupal网站,它使用Quiz模块来管理访问者的测试.匿名用户需要使用这些测试.我的问题是我需要能够让考生输入姓名和电子邮件,以便将结果发送给他们.我只是不知道该怎么做.我认为自己是Drupal和PHP的初学者.任何帮助,将不胜感激.

小智 5

- 首先,创建一个自定义模块.

- 其次,您需要添加电子邮件地址和名称字段.您可以通过在自定义模块中通过hook_form_alter添加两个字段,或者通过启用和使用Quiz模块中包含的Short Answer模块/字段,然后根据您的需要自定义字段样式来实现此目的(因为它会看起来像一个问题).就个人而言,我建议使用hook_form_alter添加它们.另外,我建议您了解Drupal中的Hooks,它会让您的生活更轻松.

- 您必须验证并检索两个字段的值.您也可以使用相同的form_alter挂钩.将验证和提交功能添加到测验表单($form['#validate'][] = 'your_validate_function';$form['#submit'][] = 'your_submit_function';)的验证和提交堆栈中.您可以使用Drupal的函数valid_email_address验证您的电子邮件,当然,您可以验证其他字段并调用Drupal的form_set_error来通知用户任何输入错误.

- 在提交测验后发送您的电子邮件,在您的提交功能中调用Drupal的drupal_mail,它基本上会获取发送电子邮件所需的所有参数.您必须在自定义模块中创建一个hook_mail.在这里查看如何执行此操作的示例.您可以从本地数组$ form_state ['values']检索表单值(名称和电子邮件地址),将它们作为$ params传递给drupal_mail函数,并将它们添加到hook_mail函数中的电子邮件正文中.就是这样:D

- 或者,您可以通过创建操作发送电子邮件,并指定在用户完成此测验后要执行的操作.测验模块支持这一点.这是一个如何编写动作的示例.