0

我是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";

return array('content_field' => array('template' => 'content-field', 'arguments' => array('element' => NULL), 'path' => $path, )," ...

从该代码中,我假设我的代码应该是:“ print theme('content_field', $element) ”

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

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

4

2 回答 2

2

CCK 字段在节点对象上以两种格式可用:

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

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

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

于 2010-10-12T14:12:41.090 回答
0

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

于 2010-10-20T14:37:24.780 回答