【问题标题】:Theming node-xxx.tpl.php主题节点-xxx.tpl.php
【发布时间】:2010-10-12 13:46:05
【问题描述】:

我是 drupal 主题的新手。 我想做以下事情: 我有一个产品内容类型,我正在处理它的 node-product.tpl.php, 产品内容类型有一个“嵌入式视频”类型的 CCK 字段(使用位于 http://drupal.org/project/media 的媒体模块)。 因为我需要用一个

包装“嵌入式视频”字段

我想在我的 node-product.tpl.php 中添加一些 php 代码,如下所示: “打印主题(...)”

我在 sites/all/modules/cck/content-module 文件中发现了以下函数:

"函数内容主题() {

$path = drupal_get_path('module', 'content') .'/theme'; require_once "./$path/theme.inc";

返回数组( 'content_field' => 数组( '模板' => '内容字段', '参数' => 数组('元素' => NULL), '路径' => $路径, )," ...

从该代码中,我假设我的代码应该是: " 打印主题('content_field', $element) "

几个问题: 1.我在正确的轨道上吗?我应该使用主题功能吗,我是在调用正确的 cck 钩子主题吗? 2.假设我是正确的,我不知道 $element 参数应该是什么,在我的 node-product.tpl.php 上我有 $node 参数,其中有很多数据,我怎么能从$node 参数应该发送到 theme(...) 函数的正确 $element 吗? 3. 有没有比浏览模块代码更容易找到每个模块注册的主题钩子名称和他们期望得到的参数的方法?

感谢您阅读我的长问题,我们将不胜感激。

【问题讨论】:

    标签: php drupal drupal-6 cck drupal-theming


    【解决方案1】:

    节点对象上的 CCK 字段有两种格式:

    • $node->field_[field_name]
    • $node->field_[field_name]_rendered

    渲染版本是 CCK 字段的主题版本,包含所有标记,另一个版本是包含渲染版本和 CCK 存储的其他数据的数组。

    使用 CCK 在节点对象上注入的数据,您应该能够在没有主题功能的情况下做您想做的事情。

    【讨论】:

    • 糟糕,我只是从调试drupal代码中理解了它。 $node 有一个 field_[field_name],我可以在其中找到操作 node.tpl.php 所需的所有数据。非常感谢
    【解决方案2】:

    下次使用 print_r() 函数即可。 ;-) 例如,在这种情况下,查找 print_r($node),您会看到很多好东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 2020-09-27
      • 2016-06-27
      • 1970-01-01
      相关资源
      最近更新 更多