Drupal中有个钩子,叫做hook_link,参数如下:, Q% X' d7 _( q
+ i* N( o# X p% p' L) |: e% xhook_link($type, $object, $teaser = FALSE),0 R E$ R1 }0 o; E7 A$ q1 _- s
; v! _. O9 G# p$ r第一个参数 $type, 可能的值为node,comment等。
* Z3 S7 Y0 P9 E' Q Z8 v8 t& T0 i$object,如果type为node, 则$object就为node对象。
G6 Y0 [) f" l6 T* ~5 W$ ?" O$teaser 如果为$node类型,则0,1表示该link是否显示在teaser中.0 {+ ~7 i$ t8 y3 J! g
7 P9 o- j! `! N) s参考:http://api.drupal.org/api/function/hook_link/6
9 n3 j, n1 Z8 P: v) V# Z. o+ e& R; M
' S% R; ]! R4 U, L R L! {1 ]& V. _0 Z* N- T+ v" {0 q) O* o4 f" B& K b
那么想修改别的模块生成的link呢,很幸运,drupal为我们提供了另一个hook - hook_link_alter(&$links, $node)
3 m0 m: E7 ~/ _: ?! ^8 V5 c0 s1 {$links为引用类型,结构如下:
" u' x& i% z# N; H+ W1 j# C: l0 P: l1 O
1 E$ y. A, o& }( N
<?php
3 J" ~& [5 j! P6 n+ g7 B$links["comment"] = array(
8 X! R% I, |- j5 K'title' => t('Your title'),' }( o) a0 o6 e
'href' => 'create/comment',% f1 a) B' B3 ?4 `# ?* c2 ^& w
'query' => 'destination=node/'.$node->nid,* M; [& G* M$ K# |! Y0 P$ l
);
6 M2 F) J) I7 v+ [* p* k?>
; ~% }* ?8 x) e# Z因为是引用,所以不用有返回值.- q( `) N @/ i8 C/ s9 |9 N
1 \; {( O5 ^1 O1 a9 L0 P
: H$ B: A, }( o1 _/ \例:. A' d6 L" W2 G1 m4 @9 v3 F/ }
function photos_link_alter(&$links,$node){
( D# L, V6 t7 J1 U6 D9 ~% F$links["comment"] = array(
1 k2 S+ @/ j9 W: H+ X( n) e! g'title' => t('Your title'),8 R6 [7 B$ f2 h' T" T
'href' => 'create/comment',
! w* o3 X0 X/ s) n$ G H" q/ M'query' => 'destination=node/'.$node->nid,
- ~9 I' d$ L' a);) `- m% p0 m6 F
}
4 K. z6 j, I# s$ H, J1 }! `$ @' X6 H+ c8 Q( \
2 C4 m6 V/ h( E3 Y( W4 D7 o: e! F( j2 D) k+ w" `# `/ [ M
1 J# S* d; F2 g2 `0 b+ D& Z* G, _
|