Drupal中有个钩子,叫做hook_link,参数如下:
" E" N( N; o7 _+ R z7 J% I3 g! r3 }$ S0 G6 ?+ I, K- U7 S6 J
hook_link($type, $object, $teaser = FALSE),4 l* f# V; [9 a% @, J* b0 @* }
8 i: ` l7 i( O4 I2 X6 H1 y; e8 O
第一个参数 $type, 可能的值为node,comment等。
. G% k* M: e3 [( r" d6 G! a$object,如果type为node, 则$object就为node对象。/ Z1 ^9 H. t# o7 K4 y4 K
$teaser 如果为$node类型,则0,1表示该link是否显示在teaser中.
. j* x8 x1 N* n6 v! i1 v( a
; V5 d" s) ?, [参考:http://api.drupal.org/api/function/hook_link/6
- b% K; j/ O% f3 Q h
: g( Q1 y6 ?; m3 h) r
9 m% N, L' b/ M0 u }! |, z那么想修改别的模块生成的link呢,很幸运,drupal为我们提供了另一个hook - hook_link_alter(&$links, $node)
' \; n5 m- R" {) W4 m: D) |$links为引用类型,结构如下:/ A7 A9 ]) ~3 m, ?" T
* ~0 ?0 y# z F; B$ J" e: f+ j$ Y" y- e' P: z: u: R6 Z
<?php
$ X8 J( w# Y- B5 F# C2 g! ~$links["comment"] = array(6 r9 |) S8 c) Q
'title' => t('Your title'),
3 B; Z, j7 q( O'href' => 'create/comment',
; {8 ]6 @ L, I, G: s8 K0 Z'query' => 'destination=node/'.$node->nid,
: L% [, U5 W# N U9 T/ @);* J4 O, f: r$ V& F) d
?>
4 ~& H$ J9 V! `8 o) v) M因为是引用,所以不用有返回值.7 S F! M5 v+ r; Q1 u, h: ~
3 W4 X# s+ @7 `) c
; i# [% j4 ~" [) E2 X例:
4 n& `, A( Z. g+ D/ Xfunction photos_link_alter(&$links,$node){( q& p: y! V3 L
$links["comment"] = array(- u7 Q1 A" {8 W+ o0 U( q2 b
'title' => t('Your title'),
4 _' a6 K. }8 P'href' => 'create/comment',
& B. X0 y* \3 w( V8 r1 Y" }'query' => 'destination=node/'.$node->nid,
$ g- V8 C2 j" B8 V6 E8 Q3 k);3 M& p$ Y) s7 U# x: \5 _* r* T/ K5 V
}
6 t% z0 z, h c% {9 x! ]: J9 ?5 r2 U# N9 `
) A- m! x' x( W0 a! b
$ A+ g( U7 ]2 }. W5 L! _
2 y" t2 z- n. W |