昊天SEO

如何将Drupal7区块放在Node内容的任意部分?

如何将Drupal7区块放在Node内容的任意部分?我们都知道Drupal中区块是放置在区域中的,所以我们试图在node.tpl.php中添加区域;但是这个思路是错的,因为区域只能在page.tpl.php中输出,相关的钩子函数是:hook_preprocess_page(), hook_page_alter()和 hook_process_page()。

但是我们可以直接node.tpl.php中输出具体的区块:

菜单区块:

<?php
$block = block_load('menu', 'name-of-menu');
$output = drupal_render(_block_get_renderable_array(_block_render_blocks(array($block))));
print $output;
?>

视图区块:

<?php
$block = block_load('view', 'name-of-view');
$output = drupal_render(_block_get_renderable_array(_block_render_blocks(array($block))));
print $output;
?>

普通区块:

<?php
$block = block_load('block', 'name-of-view');
$output = drupal_render(_block_get_renderable_array(_block_render_blocks(array($block))));
print $output;
?>

这几种区块的区别主要是block_load()函数后面的两个参数,第一个参数都是固定的,主要分menu,view和block;后面是指这个区块的名称,普通区块实用区块ID;

通过这种方法可以很好的在node中显示不同区块!

本文地址官网    新乡网站建设,seo

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址