如果想在drupal的用户账号里添加一些自己的内容,就要用到hook_user钩子函数。
例如在wedpage.module中添加一个“创建页面的链接”和一个“发送邮件的form”
/**
* Implementation of hook_user.
*
* @return array
*/
function wedpage_user($type, &$edit, &$user, $category = NULL){
if ($type == 'view') {
$items['wedpage'] = array(
'value' => l(t('Create your wedding homepage.'), 'wedpage/add'),
);
$items_mail['send_mail'] = array(
'value' => drupal_get_form('wedpage_mail_form'),
);
$wedpage = array(
t('Wedding homepage') => $items,
t('Send email to your friends') => $items_mail,
);
return $wedpage;
}
}
user的钩子函数就设置成功了!
下面创建mail的发送函数
/**
* Build form for sending e-mail.
*
* @return array
*/
function wedpage_mail_form(){
$form['wedpage_mail'] = array(
'#type' => 'textfield',
'#size' => 60,
'#prefix' => '<table><tr><td>',
'#suffix' => '</td>',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Send'),
'#prefix' => '<td>',
'#suffix' => '</td></tr></table>',
);
return $form;
}
function wedpage_mail_form_submit($form_id, $form_values){
global $user, $base_url;
if (valid_email_address($form_values['wedpage_mail'])) {
$mailkey = 'wedpage';
$to = $form_values['wedpage_mail'];
$subject = 'wedding web page address';
$url = $base_url.'/ourwedding/'.$user->uid;
$body = $url;
if (drupal_mail($mailkey, $to, $subject, $body)) {
drupal_set_message(t('The mail send successful!'));
}else {
drupal_set_message(t('The mail send failed.'), 'error');
}
}else {
drupal_set_message(t('The e-mail address %mail is not valid.', array('%mail' => $form_values['wpage_mail'])), 'error');
}
}
上面的函数中valid_email_address是一个系统的验证email的函数,drupal_mail函数用于测试邮件是否发送成功!
分享到:
相关推荐
通过上述介绍,我们可以看到,在Drupal中创建hook_user并调用mail函数发送电子邮件的过程涉及到Drupal模块开发的多个方面,包括对hook的理解和使用,表单的创建和处理,以及邮件系统的配置和调用。希望本文的内容...
2. **默认的站点电子邮件地址**:这是 Drupal 的系统通知邮件将使用的地址,用于接收用户的反馈或其他系统消息。 3. **SMTP服务器**(可选):如果你的网站需要通过SMTP服务器发送邮件,可以在“邮件系统”(Mail ...
以下是Drupal中几个常用过滤函数的介绍与使用说明,帮助开发者在使用Drupal时更好地保障内容的安全性和合规性。 check_plain()函数: check_plain()函数是Drupal中一个非常重要的文本处理函数,它的作用是确保输出...
在默认情况下,Drupal可能使用PHP的mail()函数来发送邮件,但这种方式在某些服务器配置下可能不可靠或者不支持,这时就需要借助SMTP模块。 SMTP模块提供了与各种SMTP服务提供商(如Google的Gmail、Microsoft的...
MySQL是一种广泛使用的开源关系型数据库管理系统,它为Drupal提供了稳定、高效的数据存储解决方案。 1. **Drupal 数据结构**:在Drupal中,数据主要以节点(Nodes)、用户(Users)、评论(Comments)等形式存在。...
它将帮助你了解Drupal7的核心概念,如节点、用户、角色和权限,以及如何使用内置的功能来搭建网站。你将学习如何使用 Views、CCK(内容构造工具)和Taxonomy来创建自定义内容类型和分类系统。此外,还会讲解如何通过...
本文将详细讲解Drupal的安装过程以及如何在Drupal中安装和使用所见即所得的编辑器FCKeditor。 一、Drupal的安装 1. 安装环境:首先,你需要一个运行PHP和MySQL的服务器环境。这里我们使用AppServ,这是一个包含...
2. **移除过时的库**:Drupal 9的一个关键目标是删除所有已弃用的代码和依赖,以确保系统的清洁和安全。这使得开发者能够利用最新技术和最佳实践。 3. **增强的安全性**:Drupal 9.0.1包含最新的安全补丁,以保护...
5. **多语言支持**:考虑到Drupal的国际化特性,"email_verify" 模块可能会支持多种语言,使全球用户都能理解和使用验证流程。 6. **后台管理**:管理员可能能在后台查看未验证和已验证的用户,以及管理验证相关的...
Drupal使用arg函数获取当前页面的URL参数,通过逻辑运算符进行比较。 7. 判断是否为节点(文章内容页) 判断是否为节点页面,可以检查URL的第一部分是否为"node",并且第二部分是否为一个数字。通过is_numeric函数...
6. **过滤和验证**:为了防止垃圾邮件,MimeMail模块可以与其他反垃圾邮件解决方案配合使用,例如添加邮件验证机制,确保发送的邮件符合行业标准和最佳实践。 7. **国际化支持**:Drupal 6 强调多语言支持,...
8. **安全编程**:遵循 Drupal 的最佳实践,如正确过滤用户输入、使用 `drupal_set_message()` 显示消息、使用 `drupal_get_form()` 创建表单,确保模块的安全性。 9. **测试与调试**:Drupal 7 提供了简单的单元...
标题中的 "d8mail" 模块是专为 Drupal 8 设计的一个示例模块,其目的是展示如何利用 Drupal 8 的邮件 API 来发送电子邮件。在这个例子中,每当有新的文章节点被创建或保存时,系统会自动通过 Mandrill 这个第三方...
drupal-scaffold, 使用 Drupal/core更新 Drupal scaffold文件的Composer插件 ...) 插件,用于自动下载Drupal脚本文件,通过编写器使用 drupal/core 。建议在 root root的项目的标准位置放置供应商目录;但是,供应商目
4. **数据库交互**:Drupal 使用自己的数据库层,通过 `db_query()` 或者 `EntityFieldQuery` API 进行数据操作。"news" 模块可能包含了创建新闻表的 SQL 脚本,以及用于添加、编辑、删除新闻的函数。 5. **视图和...
许多知名的组织和企业也在使用 Drupal 构建其官方网站或应用程序,例如哈佛大学、白宫官网、NASA 和索尼音乐等。 ##### Drupal 提供了哪些特性? - **高度可定制性**:Drupal 提供了大量的模块和主题,允许用户...
总之,从 Drupal 6 到 Drupal 7 的升级带来了众多改进和新功能,不仅提升了开发者的开发体验,也为最终用户提供了更好的使用体验。无论是对于网站所有者还是开发者而言,这些改进都具有重要意义。如果你正在考虑将 ...