2012-08-02 68 views
0

创建自定义块只是想知道,如果有可能不使用挂钩hook_block_info)块()或hook_block_configure(等创建在Drupal 7的自定义块不使用Drupal的7块钩

我的要求是添加动态块到Drupal系统。

在此先感谢...

+0

它也可能是一个静态块内的面板。或老派的内置页框。 – 2012-08-02 16:23:26

回答

1

我不知道你的意思是通过创建“动态”块,但两种方式无需编写模块来创建块

  1. 要管理/结构/块,然后点击'添加块',然后在那里手工创建一个...如果您在网站上启用'Php过滤器'模块,您甚至可以拥有包含php代码的块。
  2. 您可以创建块视图。转到admin/structure/views/add并添加一个带有块显示的视图。不知道如果你熟悉Views module,但那是另一种方式的乡亲创建的节点内容列表块,但也可以只包含文本等

是否回答你的问题?

===================编辑======================

如果你想以编程的方式做到这一点,看看块模块是如何做到的! 在Drupal 7中,这将是modules/block/block.admin.inc中的block_add_block_form_submit()函数。这是在上面#1中通过管理员窗体创建块时处理表单的函数。您可以使用该代码根据需要创建尽可能多的块。请注意,它只是将所有必需的信息放入数据库中,而无需调用任何附加功能。

+0

我想以编程方式创建一个块,当我希望调用一个像block_hook那样的函数时,它会根据块标题,描述等参数调用块。应该只在我调用这些函数时创建块,而不是像block_hook。 这是否清除了事情? – 2012-08-03 07:08:11

+1

好的。现在我明白了。看看我在答复中提供的附加信息。这应该让你去... – 2012-08-03 16:14:05

0

好的,我实际上是在寻找动态创建一个块。如果以后有人需要这个帖子,这篇文章可能会很有用:http://drupal.org/node/1709954

+0

是的,上面的建议是为动态创建块。本质上,我只是说你可以通过块模块本身来完成块创建的方式(通过查看我建议的函数中的代码)。当然,你可以在你的代码中插入你想要的*任意位置并且完全动态地构建一个块...即动态地。无论如何,我只是想澄清,如果我没有说清楚。但是我很高兴你找到了不止一种方式来做到这一点! – 2012-08-06 13:01:36