Drupal中有个钩子,叫做hook_link,参数如下:
+ g7 v7 j9 n% M
0 A8 [) w8 k3 {/ Y2 J dhook_link($type, $object, $teaser = FALSE),
" d! ~3 X9 o6 u$ T& {
% F, H9 @, V# w* E- C第一个参数 $type, 可能的值为node,comment等。
. |+ A }, x& e6 F) x$object,如果type为node, 则$object就为node对象。
, G v, q J) U# @$teaser 如果为$node类型,则0,1表示该link是否显示在teaser中.
! a) F/ h0 p) ^0 b# t H/ Q
- I6 d2 R1 _- K9 J9 K! |. |参考:http://api.drupal.org/api/function/hook_link/6
8 V! |) f/ D$ s
8 H# [! c- R+ G4 ?- i7 K; h
: R2 w1 Z1 l! ?- A那么想修改别的模块生成的link呢,很幸运,drupal为我们提供了另一个hook - hook_link_alter(&$links, $node)
1 b* G6 w9 L! r* T; `- o) L$links为引用类型,结构如下:8 t6 o5 t# h9 F8 d7 R5 t
`* H" m1 ?- H4 v1 \: n8 J6 x, h5 n4 u1 E* x, N9 e( |
<?php
8 ~9 L, V. R1 h/ c$links["comment"] = array(
y& y3 e8 \* W3 J2 d; N'title' => t('Your title'),
7 L5 V r/ r# ?7 V) L7 E9 o% K1 o'href' => 'create/comment',
5 I* ?5 Y1 A4 E0 E/ X$ X'query' => 'destination=node/'.$node->nid,9 S9 R G7 w3 p4 v$ T, h
);
# B, x- {( ?, f( Z7 s?>* M3 _9 z8 L5 ^ f' S+ L
因为是引用,所以不用有返回值.* A9 x; f# L/ { o
! y/ W4 s4 F. w. H! r3 b8 o. o; ]1 a/ I& u# n
例:
0 T) Q: [% C, x' n/ G; P5 Sfunction photos_link_alter(&$links,$node){0 j3 G D4 m& H2 y' R
$links["comment"] = array(: L+ w+ i- Y3 w" R5 B
'title' => t('Your title'),
9 c5 ~7 d" r+ `, w A'href' => 'create/comment',
# {' o6 C$ B( c" E" n'query' => 'destination=node/'.$node->nid,
4 J. T7 U$ |6 i* z* H$ {);
5 z R0 b. B, ~0 g, S ?4 G" K}
- t! s% A) \, @5 f+ N* S; l4 Y. l% X8 K+ K5 R1 G4 ~
% L* V3 c! W) c; Z7 W) [1 H4 t }. y# d$ h1 R
6 S- q6 o+ Y) M |