首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Drupal7中如何将块插入到节点或模板中?

在Drupal7中如何将块插入到节点或模板中?
EN

Stack Overflow用户
提问于 2011-01-19 03:16:47
回答 15查看 85.5K关注 0票数 36

在Drupal6中,使用以下代码可以轻松地将块插入到模板中:

代码语言:javascript
运行
AI代码解释
复制
$block = module_invoke('views', 'block', 'view', 'block_name');
print $block['content'];

然而,在Drupal7中使用相同的指令似乎不起作用。我环顾四周,找不到新方法。

Drupal7有没有允许以编程方式将块插入到模板或节点中的例程?

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2014-03-10 16:12:37

根据wrburgess的回答,如果您的服务器使用的是较新版本的PHP,则可能会出现错误。

代码语言:javascript
运行
AI代码解释
复制
Strict warning: Only variables should be passed by reference in include()...

这就是我为了不引起/消除错误而做的事情。

代码语言:javascript
运行
AI代码解释
复制
  <?php
    $blockObject = block_load('views', 'block_name');
    $block = _block_get_renderable_array(_block_render_blocks(array($blockObject)));
    $output = drupal_render($block);
    print $output;
  ?>
票数 21
EN

Stack Overflow用户

发布于 2011-10-20 13:18:49

D7:

代码语言:javascript
运行
AI代码解释
复制
<?php
  $block = module_invoke('module_name', 'block_view', 'block_delta');
  print render($block['content']);
?>

'module_name' =模块的机器名称(即模块的文件夹名称)。对于核心模块也是如此,例如“搜索”、“用户”和“评论”都可以在这里工作。

'block_delta' =块的机器名称。您可以通过访问数据块管理页面并编辑数据块来确定这是什么。例如,用于编辑for表单块的URL如下所示:

Drupal7: admin/structure/block/manage/webform/client-block-11/configure

在本例中,'webform'是模块的名称,'client-block-11'是块的增量。

自定义块将具有模块名称' block‘和一个增量编号,您也可以通过编辑该块来找到它。

更多信息:http://drupal.org/node/26502

票数 86
EN

Stack Overflow用户

发布于 2011-01-19 17:30:05

这似乎是将块插入到Drupal7的模板中的解决方案,但它似乎有点笨拙,我不知道对性能的影响:

代码语言:javascript
运行
AI代码解释
复制
$block = block_load('views', 'block_name');      
$output = drupal_render(_block_get_renderable_array(_block_render_blocks(array($block))));        
print $output;

如果有人有更好的程序,请添加。

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4731420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档