国外设计欣赏网站 - DOOOOR.com

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,微信登陆

搜索

[Drupal教程] Drupal中创建一个hook_user,并用mail函数发送email方法教程

[复制链接]
发表于 2-1-2012 22:32 | 显示全部楼层 |阅读模式
如果想在drupal的用户账号里添加一些自己的内容,就要用到hook_user钩子函数。& y% Q- w+ X5 O% r. c- U- v( T
例如在wedpage.module中添加一个“创建页面的链接”和一个“发送邮件的form”, u. w7 z. e3 t/ z1 ]2 L2 V  M% a
  L, N7 ^! N4 ]% Q; R" C& P) M
function wedpage_user($type, &$edit, &$user, $category = NULL){
9 M( |! C) g. _* d( l/ S6 s( {; y. rif ($type == 'view') {5 H" g' s" K6 ^8 ]
$items['wedpage'] = array(
& x  a& y4 B" g- m; j'value' => l(t('Create your wedding homepage.'), 'wedpage/add'),: c8 N4 Z& d. p, ?
);
) S4 ~; C) d& G& z$items_mail['send_mail'] = array(! k6 x/ ~  Q/ j$ r. K: O' T
'value' => drupal_get_form('wedpage_mail_form'),3 F. u5 {  ~7 p/ u/ B
);
3 Z$ a- `7 k! g$wedpage = array(
, Z, x% W# a! R/ N- A# m8 A! l7 Wt('Wedding homepage') => $items,
  o+ B' n; t# X) M' z& kt('Send email to your friends') => $items_mail,5 p, ~  v( i7 {- N2 v7 N% W( K2 R! L
);/ ?; o9 g. J6 C$ \
return $wedpage;
; O. @2 T2 X. L* K. z  F3 H}& S, Y: D3 e# j  w) H+ \
}
5 \: {. q% Y8 b; E! Uuser的钩子函数就设置成功了!
2 p, _7 r* F- V9 o下面创建mail的发送函数
3 c  ]! y" V; I( [6 [' G
6 Y2 |) j& n' n- }3 S8 Lfunction wedpage_mail_form(){
5 R/ U3 U) }+ l$ V$form['wedpage_mail'] = array(1 R" v/ F- R1 |7 w1 _7 m
'#type'             => 'textfield',
& z, k% Z% B: b$ t1 ?7 V" I5 z: h'#size'             => 60,5 M5 `; W3 o0 u6 A" \  l$ S
'#prefix'            => '<table><tr><td>',
2 c9 z) R: _/ S4 u  ?* ?6 k'#suffix'            => '</td>',
. `8 f+ {7 M/ N% R' H6 v; i);    2 A9 k5 U" S5 y/ }: o( t8 ^2 o
$form['submit'] = array(
! P+ W4 l" S3 i4 ]$ N; i( `( p, x& k'#type'             => 'submit',
5 J  ?% c6 `% S0 Y+ ^# D) k'#value'             => t('Send'),3 e5 e: e: L( s& O! }5 k
'#prefix'            => '<td>',
1 V. i" u( ^: t; Y'#suffix'            => '</td></tr></table>',/ C9 w3 I3 W( [) T) D- X
);      
5 p/ P3 c) A1 kreturn $form;   
- R7 Z  Q- _2 q}
0 e" q1 d; N- z$ d1 Nfunction wedpage_mail_form_submit($form_id, $form_values){
0 U! o7 v1 k0 \4 E" yglobal $user, $base_url;9 g8 [$ i6 H5 h' G7 q& b3 q% k
if (valid_email_address($form_values['wedpage_mail'])) {2 f; X. p+ D% d! h  u
$mailkey = 'wedpage';
! ^$ L( a# i/ z) ?; P$to = $form_values['wedpage_mail'];
5 G& @' q) P9 v$subject = 'wedding web page address';
+ {% p- f( a3 r" u/ n$url     = $base_url.'/ourwedding/'.$user->uid;
3 m. i) ?0 H* l6 b$body = $url;
8 h$ _; Q& e$ @+ k) o5 R9 lif (drupal_mail($mailkey, $to, $subject, $body)) {- g& _* }  Q* M: O0 k% K- f
drupal_set_message(t('The mail send successful!'));: p2 u# y$ x$ f
}else {
; h% {* N7 }% E5 k7 ~$ G0 l; H' ddrupal_set_message(t('The mail send failed.'), 'error');
5 z0 q- N( W2 b9 _) V& g: d; ~}
7 b2 T2 \( c: l2 k}else {
" \, D4 A& n; a4 N& Sdrupal_set_message(t('The e-mail address %mail is not valid.', array('%mail' => $form_values['wpage_mail'])), 'error');) G1 l: Y. K# v" j
}' w! h' s0 [, u9 s# \' }
}
% x5 P9 k& V" X5 ?6 ~- C% k上面的函数中valid_email_address是一个系统的验证email的函数,drupal_mail函数用于测试邮件是否发送成功!7 M. ~$ w- P% |' [8 i

( m3 F/ ]; b. s6 ?: i3 ^6 a3 J. _( x! ^$ G' S! H9 r
% V( X- h  W  X  C( {+ k

|2011-2026-版权声明|平台(网站)公约|DOOOOR 设计网 ( 吉ICP备2022003869号 )

GMT+8, 7-2-2025 22:58 , Processed in 0.782597 second(s), 108 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表