我有一个约20页的Drupal 6网站。在每个页面内部,我需要创建大量小部件,这些小部件的信息既可以存储在数据库中,也可以存储在外部Web服务中。大多数时候,“观点”(来自the view module)仅仅不足以解决这一要求。到目前为止,任何时候我需要这样一个小部件,我创建一个实现hook_block的新模块。然后,将这个新模块拖放到我想要的面板内。我将需要创建约20个模块。这工作很好。但是,我不确定这是否是正确的drupal策略,我很乐意从经验丰富的Drupal开发人员处获得一些反馈。Drupal 6 - 为每个动态信息块创建一个模块?
1
A
回答
3
模块可以根据需要显示尽可能多的块(理论上,admin/build/blocks会教你另外;))。
看看hook_block()的文档,你只需要扩展你的返回多块信息,然后根据$ delta决定显示哪一个。
所以你不需要20个独立的模块,也许2-3个模块以某种方式组合在一起,因为只有一个模块可能难以维护。问题是,每一个模块都会让你的站点慢一点(至少要加载一个文件,module_implements()需要遍历每个模块的每个模块,等等)。
没有更多的信息,很难给出任何更好的建议。也许你可以公开你的数据到视图,或者写一个视图插件以你想要的方式显示它,或者...
2
虽然Berdir的回答很不错,但我留下了深刻的印象,没有链接到任何文档它。 hook_block适用于多个区块,它们可以共享构建其内容的功能。 API页面很好,它给出的例子一次定义了两个块。
您应该注意到每个定义的块都有一个delta($ blocks数组中的一个键)。您可以拥有动态增量,并使用其中的值来获取数据(例如,传递nid或uid并获取相关内容)。
相关问题
- 1. 几个hook_cron为一个模块,drupal 6
- 2. 如何在Drupal 6中的一个模块中创建多个不同的块?
- 3. 如何在drupal中创建一个动态模块?
- 4. 使用标签创建drupal 6模块
- 5. Drupal获取模块信息?
- 6. 创建一个子模块模块
- 7. 创建一个Python模块
- 8. drupal 6:创建自定义模块并重新创建轮子?
- 9. 在Drupal 6的块中创建内容
- 10. Drupal 6:导航块Nice_menus模块
- 11. Drupal 6 - 使用“菜单块” - 模块
- 12. Drupal 6模块开发
- 13. Drupal 6的博客模块
- 14. Drupal 6:使用视图模块[动态路径]创建博客帖子页
- 15. 创建一个Python模块从几个不同的模块
- 16. 每个模块
- 17. 让用户在Drupal中创建一个列表(模块?)
- 18. Drupal问题,如何创建一个快速内容模块?
- 19. DotNetNuke 6 - 创建一个模块,使用javascripts
- 20. 我应该为每个网页模板创建模块吗?
- 21. 在drupal6中为模块创建一个php页面视图
- 22. 第一个Drupal模块 - 一些问题
- 23. 只允许用户访问drupal 6中的一个模块
- 24. 每日计划Drupal模块
- 25. Drupal 6重写模块模板文件
- 26. drupal模块中的多个块
- 27. 如何在Angular2中为多个模块创建包装模块?
- 28. 多个Drupal寻呼模块
- 29. 你如何创建一个Perl模块?
- 30. 在Sitefinity中创建一个新模块
谢谢!现在我有一个名为“myapp”的模块,里面有一个名为“myapp_block”的函数。如何在同一模块内创建和调用其他块?他们是否生活在不同的功能中,还是需要一些开关语句?我如何将参数传递给我的模块? – jdecuyper 2011-03-15 20:21:30
+1这两个建议,尤其是暴露在一个观点,因为它似乎已经够好了,但并不完全。自定义视图代码可以非常强大。我已将ajaxified“添加到购物车”按钮作为视图字段。很值得学习的初始投资。 – 2011-03-15 20:27:16
请参阅hook_block()的文档:http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_block/6(和barraponto的答案) – Berdir 2011-03-15 21:01:12