Drupal中有个钩子,叫做hook_link,参数如下:
) p( x0 z% S5 S: S4 m
" C8 o7 t" f) shook_link($type, $object, $teaser = FALSE),
, u8 I \# T; E& }, ?* V( \5 G+ ^& j! V+ s! I
第一个参数 $type, 可能的值为node,comment等。
% i# K8 K W b* K4 `. R `# l: F$object,如果type为node, 则$object就为node对象。1 @# t) ?, j3 ] x9 b
$teaser 如果为$node类型,则0,1表示该link是否显示在teaser中.
; g6 t/ e5 R( a1 d; G' F* n3 [9 }% R( a# x
参考:http://api.drupal.org/api/function/hook_link/6& {; F( P) A% Z1 _6 N. e. q% c
1 I$ }3 m4 c8 A! V& `/ r5 K
6 u5 E3 `; \8 z u* C" Q
那么想修改别的模块生成的link呢,很幸运,drupal为我们提供了另一个hook - hook_link_alter(&$links, $node)
: e; t/ L: j% f$links为引用类型,结构如下:
3 |, X$ y! ?, [- x0 d9 Z
9 r) h" x5 L6 D- _% j# E3 V6 Z( U. a4 A5 Z: _
<?php
, P2 d4 k* u, t T# A% I+ l$links["comment"] = array(
; v9 I& f- C5 A* _; \8 j'title' => t('Your title'),
* ^% U- ^; J7 ^" f'href' => 'create/comment',
( E% D2 M$ } Y9 ]* b8 I+ b) B' x'query' => 'destination=node/'.$node->nid,7 D" h+ |6 Q; O6 E1 w: F
);
' N# R. i$ C# c* D- X?>0 P( X/ J$ |# [) e5 f3 R3 x' X0 e
因为是引用,所以不用有返回值.
2 m; r8 Q1 X3 Y+ U
: x+ Q" ~: n' q
6 J0 M" ^3 d$ g( H B, `例:
2 ]6 q; n- v! B5 @1 G% \function photos_link_alter(&$links,$node){
0 I2 G7 _ z1 J6 Q/ U: Y$links["comment"] = array(
" F+ N5 ~" \. O) H'title' => t('Your title'),
6 @4 c: \1 { T p'href' => 'create/comment',% z: q1 [; J4 H. I; R* O5 r. \
'query' => 'destination=node/'.$node->nid,
2 D& q" }. m9 @% q/ L);- a. A) M* U5 T3 L1 I) K! L1 X
}
1 d3 F: d) E! {$ w- v9 B( }
1 [0 N6 ^) Y( k% M$ h0 a' j# i9 b' w2 z
1 S; k$ l# ?* ~- S7 F- o
1 z0 t5 ?& T% i$ A6 W8 f- W( z, ^7 x) ]
|