2011-03-14 40 views
0

我正在为我的新项目学习Drupal 7。Drupal 7 - 可以在模板文件中编写php代码吗?

这是我想要做的

  1. 创建新的内容类型,称为“视频”
  2. 创建一个名为“视频”的新模块
  3. 使http://domain.com/video访问。
  4. 当用户访问/视频时,然后执行查询视频表中的视频行(由'视频'内容类型'创建),然后显示具有自定义模板的查询。

我已经学会了如何做#1〜#3,但我很困惑与#4一点点。

让我们假设我的自定义模板的文件名是“video.tpl.php”

在video.tpl.php,做我写PHP函数查询视频行?

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

我该怎么做?

回答

1

您应该使用views

+0

//感谢您的输入。由于我是Drupal的新手,我很想知道事情是如何在内部工作的。你知道如何用你自己的模块或代码做到这一点吗? – Moon 2011-03-14 23:57:04

+0

我猜想还没有。但我会学习并在我的博客上放些东西,这样我们可以讨论它:) – bluefoot 2011-03-15 00:53:47

1

意见肯定是要走的路。你可以编写一个模块,但它会像重新发明车轮。了解意见,你会一次又一次地使用它.... 教程:

a views tutorial

Another views tutorial

+0

//恩......我想我应该听你和蓝脚。我会试一试!感谢你们! – Moon 2011-03-15 00:19:40

2

对于4,你首先需要创建一个模块,实现hook_menu(),定义一个菜单项目的'视频'与页面回调。如果你不知道该怎么做,那么可能已经有很多关于这个问题的问题了)。在页面回调中,你需要做3件事。

  1. 装入NIDS,像

    $ NIDS = db_query( “选择NID FROM {节点} WHERE类型= '视频' ORDER BY创建DESC”) - > fetchCol();

  2. 加载节点。

    $ nodes = node_load_multiple($ nids);

  3. 建立它们。

    return node_view_multiple($ nodes);

但同样,你应该只如果你想学习的API做到这一点。视图将所有这些为你做,你只需要一起点击它。

+0

//我今天非常感谢你的回答。我从你身上学到了很多东西。谢谢!! – Moon 2011-03-15 01:13:38

相关问题