在节点中包含drupal模块

时间:2010-12-16 12:56:27

标签: drupal module include embed

我是Drupal的新手......到目前为止,我已经学会了一些方法并敲定了一个自定义模块。我试图弄清楚是否有一种方法可以在PHP输入格式的节点中包含或嵌入另一个模块。就我而言,我有一个带有几个动态生成的表的节点,我想在同一个视图中包含类似WebFM的文件管理。 drupal有没有办法做这种事情,还是我完全走错了路?如果是后者,我是否正在创建另一个自定义模块来实现我正在寻找的东西?我真的只需要用户能够在同一页面上上传和查看文件(仅可由该用户查看)以及其他一些用户特定信息。 WebFM可能比我需要的更多,我想稍微修改它的外观,但我想我可以让它适用于我的情况。感谢您提供任何指导。

2 个答案:

答案 0 :(得分:0)

Filefield CCK module可能正是您要找的。

答案 1 :(得分:0)

很棒的是你正在制作自己的自定义模块,所以你很顺利。

如果我是你,我个人会将您想要添加到页面中的内容添加到一个块中,您可以将其放置在节点的下方或上方。块api非常强大且灵活。

但是如果你真的想把内容放到节点本身,它是可行的,但更棘手。有节点预处理挂钩(MYMODULE_preprocess_node()),您可以更改提供给节点的内容,但是到目前为止,大部分节点内容已经被组合在一起,因此只需将任何内容添加到开头或节点内容的结尾。但是你可以在这里添加其他全新的变量,以便在你的node.tpl.php中使用。

另一种方法是使用hook_menu基于节点创建自己的页面。在这里,您可以使用node_load($ id)收集用于启动节点的参数,节点加载函数实际构建节点对象,您可以根据需要轻松地操作已分解的节点。然后,您可以使用此构建自己的页面。但是说如果你有自己的内容类型,你可以为该内容类型创建一个模板,并使用preprocess_node操作数据,但实际上将你从node_load获得的节点对象的修改输出传递给你自己的基于数据类型的模板/ p>

我知道有很多方法可以解决这个问题,每个方法都有自己的挑战。但Drupal在允许您轻松访问此类核心数据方面相当灵活。

希望它运作良好......