Drupal 7 - 可以在模板文件中编写php代码吗?

时间:2011-03-14 23:49:40

标签: drupal module themes

我正在为我的新项目学习Drupal 7.

这是我想要做的事情

  1. 创建名为“video”的新内容类型
  2. 创建一个名为“video”的新模块
  3. 使http://domain.com/video可访问。
  4. 当用户访问/视频时,然后执行查询视频表中的视频行(由“视频”内容类型'创建),然后使用自定义模板显示查询。
  5. 我已经学会了如何做#1~#3,但我对#4有点困惑。

    我们假设我的自定义模板的文件名为'video.tpl.php'

    在video.tpl.php中,我是否编写php函数来查询视频行?

    我认为这不是一个好习惯。相反,我想在加载video.tpl.php时编写一个模块并在模块中调用一个函数。

    我该怎么做?

3 个答案:

答案 0 :(得分:2)

对于4,首先需要创建一个模块,实现hook_menu(),使用页面回调为“视频”定义一个菜单项。如果您不知道如何做到这一点,可能已经有很多问题了。在页面回调中,你需要做3件事。

  1. 加载nids,如

    $ nids = db_query(“SELECT nid FROM {node} WHERE type ='video'ORDER BY created DESC”) - > fetchCol();

  2. 加载节点。

    $ nodes = node_load_multiple($ nids);

  3. 构建它们。

    return node_view_multiple($ nodes);

  4. 但是,如果你想学习API,你应该只 这样做。视图将为您完成所有这些操作,您只需将它们一起单击即可。

答案 1 :(得分:1)

您应该使用views

答案 2 :(得分:1)

观点肯定是要走的路。你可以写一个模块,但这就像重新发明轮子一样。学习视图,你会一次又一次地使用它.... 教程:

a views tutorial

Another views tutorial