使用module_invoke调用模块,模块怎么知道具体调用模块的是哪一个节点? 就是node.tpl.php怎么与模块交流信息的问题。 论坛: 有问必答 1,从node.tpl.php中调用模块里面的函数(比如在 1,从node.tpl.php中调用模块里面的函数(比如在这里调用module_invoke) 如果你调用到了node.tpl.php,那么就说明,你访问的是一个节点,也就是drupal内部路径node/nid的形式,这里的Nid是一个整数。 如果在这个时候调用其它模块的函数,也就是在node.tpl.php里面调用其它模块的函数,那么模块中,可以通过arg(1)来或许节点id,通过nid就可以获得当前节点的title。 2,对于从模块--〉node.tpl.php的调用顺序,需要了解Drupal模板的预处理机制,其实模板就是一个theme函数,就是为了方便美工,以及方便覆写,复用,在theme函数的基础上作了进一步的抽象。 找到答案了,通过在module_invoke函数调用时增加参数的办法传递给模块 代码如下: <?php$block = module_invoke('philquotes', 'block', 'view', 0, $nid);print $block['content'];?> 然后,在模块的程序中,如模块文件philquotes.module的函数philquotes_block,进行如下参数的接受 function philquotes_block($op='list' , $delta=0, $nid, $edit=array()) { 下面就可以使用节点序号$nid了。 这里暗藏一个问题,就是$nid参数放在$edit参数之前,在需要$edit参数的时候会不会出现问题。 也谢谢葛老师及时回复。 你可以把它放在edit之后,然后设置一个默认值。 你可以把它放在edit之后,然后设置一个默认值。 function function philquotes_block($op='list' , $delta=0, $edit=array(), $nid=1) $block = module_invoke('philquotes', 'block', 'view', 0, array(), $nid); 葛老师的方法很好! 1.我的方法导致警告错误warning: array_merge_recursive() [function.array-merge-recursive]: Argument #5 is not an array in……模块调用<?php$block = module_invoke('philquotes', 'block', 'view', 0, $nid);print $block['content'];?>模块里面的函数function philquotes_block($op='list' , $delta=0, $nid, $edit=array()) { 2.葛老师的方法很好,没有警告错误了:<?php $block = module_invoke('philquotes', 'block', 'view', 0, array(), $nid); print $block['content']; ?>相应地模块里的函数写法是这样function philquotes_block($op='list' , $delta=0, $edit=array(), $nid) {警告错误消失了。 最后一个参数最好设置一个默认值。 最后一个参数最好设置一个默认值。 葛老师又对了 不设置默认值会出错: * warning: Missing argument 4 for philquotes_block() in F:\wamp\www\gofangke\sites\all\modules\philquotes\philquotes.module on line 24. 代码我看不懂啊,上海大众物流公司 代码我看不懂啊, 上海大众物流公司
1,从node.tpl.php中调用模块里面的函数(比如在 1,从node.tpl.php中调用模块里面的函数(比如在这里调用module_invoke) 如果你调用到了node.tpl.php,那么就说明,你访问的是一个节点,也就是drupal内部路径node/nid的形式,这里的Nid是一个整数。 如果在这个时候调用其它模块的函数,也就是在node.tpl.php里面调用其它模块的函数,那么模块中,可以通过arg(1)来或许节点id,通过nid就可以获得当前节点的title。 2,对于从模块--〉node.tpl.php的调用顺序,需要了解Drupal模板的预处理机制,其实模板就是一个theme函数,就是为了方便美工,以及方便覆写,复用,在theme函数的基础上作了进一步的抽象。
找到答案了,通过在module_invoke函数调用时增加参数的办法传递给模块 代码如下: <?php$block = module_invoke('philquotes', 'block', 'view', 0, $nid);print $block['content'];?> 然后,在模块的程序中,如模块文件philquotes.module的函数philquotes_block,进行如下参数的接受 function philquotes_block($op='list' , $delta=0, $nid, $edit=array()) { 下面就可以使用节点序号$nid了。 这里暗藏一个问题,就是$nid参数放在$edit参数之前,在需要$edit参数的时候会不会出现问题。 也谢谢葛老师及时回复。
function function philquotes_block($op='list' , $delta=0, $edit=array(), $nid=1) $block = module_invoke('philquotes', 'block', 'view', 0, array(), $nid);
葛老师的方法很好! 1.我的方法导致警告错误warning: array_merge_recursive() [function.array-merge-recursive]: Argument #5 is not an array in……模块调用<?php$block = module_invoke('philquotes', 'block', 'view', 0, $nid);print $block['content'];?>模块里面的函数function philquotes_block($op='list' , $delta=0, $nid, $edit=array()) { 2.葛老师的方法很好,没有警告错误了:<?php $block = module_invoke('philquotes', 'block', 'view', 0, array(), $nid); print $block['content']; ?>相应地模块里的函数写法是这样function philquotes_block($op='list' , $delta=0, $edit=array(), $nid) {警告错误消失了。
葛老师又对了 不设置默认值会出错: * warning: Missing argument 4 for philquotes_block() in F:\wamp\www\gofangke\sites\all\modules\philquotes\philquotes.module on line 24.
1,从node.tpl.php中调用模块里面的函数(比如在
1,从node.tpl.php中调用模块里面的函数(比如在这里调用module_invoke)
如果你调用到了node.tpl.php,那么就说明,你访问的是一个节点,也就是drupal内部路径node/nid的形式,这里的Nid是一个整数。
如果在这个时候调用其它模块的函数,也就是在node.tpl.php里面调用其它模块的函数,那么模块中,可以通过arg(1)来或许节点id,通过nid就可以获得当前节点的title。
2,对于从模块--〉node.tpl.php的调用顺序,需要了解Drupal模板的预处理机制,其实模板就是一个theme函数,就是为了方便美工,以及方便覆写,复用,在theme函数的基础上作了进一步的抽象。
找到答案了,通过在module_invoke函数调用时增加参数的办法传递给模块
代码如下:
<?php
$block = module_invoke('philquotes', 'block', 'view', 0, $nid);
print $block['content'];
?>
然后,在模块的程序中,如模块文件philquotes.module的函数philquotes_block,进行如下参数的接受
function philquotes_block($op='list' , $delta=0, $nid, $edit=array()) {
下面就可以使用节点序号$nid了。
这里暗藏一个问题,就是$nid参数放在$edit参数之前,在需要$edit参数的时候会不会出现问题。
也谢谢葛老师及时回复。
你可以把它放在edit之后,然后设置一个默认值。
你可以把它放在edit之后,然后设置一个默认值。
function
function philquotes_block($op='list' , $delta=0, $edit=array(), $nid=1)
$block = module_invoke('philquotes', 'block', 'view', 0, array(), $nid);
葛老师的方法很好!
1.我的方法导致警告错误
warning: array_merge_recursive() [function.array-merge-recursive]: Argument #5 is not an array in……
模块调用
<?php
$block = module_invoke('philquotes', 'block', 'view', 0, $nid);
print $block['content'];
?>
模块里面的函数
function philquotes_block($op='list' , $delta=0, $nid, $edit=array()) {
2.葛老师的方法很好,没有警告错误了:
<?php
$block = module_invoke('philquotes', 'block', 'view', 0, array(), $nid);
print $block['content'];
?>
相应地模块里的函数写法是这样
function philquotes_block($op='list' , $delta=0, $edit=array(), $nid) {
警告错误消失了。
最后一个参数最好设置一个默认值。
最后一个参数最好设置一个默认值。
葛老师又对了
不设置默认值会出错:
* warning: Missing argument 4 for philquotes_block() in
F:\wamp\www\gofangke\sites\all\modules\philquotes\philquotes.module on line 24.
代码我看不懂啊,上海大众物流公司
代码我看不懂啊,
上海大众物流公司