Drupal 7:将自定义内容类型字段调用到页面tpl中

时间:2011-03-04 15:37:59

标签: drupal cck drupal-7 drupal-theming

我正在使用Drupal 7网站。我需要一些页面的自定义布局。所以我创建了page - customContentTypeName.tpl.php文件,它完美地解决了。

问题是,我需要在页面tpl中显示一些字段。下面的代码在节点tpl中工作正常,但是页面tpl:/

<?php print $content['field_images']['#items']['0']['filename']; ?>" />

如何将自定义字段调用到页面tpl?

欣赏帮助!!非常感谢!!


** SORTED **

使用自定义字段编辑...这是教程视频:http://lin-clark.com/blog/intro-drupal-7-theming-fields-and-nodes-templates#comment-54

3 个答案:

答案 0 :(得分:2)

结构在7中更改,该字段首先由语言键入(默认情况下为“und”,表示“未定义”),然后您可以按照以下示例:

// Array of Image values
$images = $node->field_images['und'];

//If you don't know the language, the value is stored in:
$node->language


// First image
$image = $images[0];



// If you need informations about the file itself (e.g. image resolution):
image_get_info( $image["filename"] );


// If you want to access the image, use the URI instead of the filename !
$public_filename = file_create_url( $image["uri"] );


// Either output the IMG tag directly,
$html = '<img src="'.$public_filename.'"/>';

// either use the built-in theme function.
$html = theme(
    "image",
    array(
        "path" => $public_filename,
        "title" => $image["title"]
    )
);

请注意使用uri代替filename将图片嵌入页面中,因为File API in Drupal 7 is more abstracted(以便更轻松地与CDN服务集成)。

答案 1 :(得分:2)

对于page.tpl.php 如果直接访问节点,则可以使用$ node variable

$node['field_images']['und'][0]['filename']

否则使用$ page变量。

$page['content']['system_main']['nodes'][1]['field_images']['#items'][0]['filename'];

但请记住,在页面变量中,您可能有多个节点。

答案 2 :(得分:0)

主题开发人员在drupal中有两个有用的模块: Devel和Theme_developer Devel模块提供了一个名为dsm()的函数。 使用dsm,您可以识别元素如何存储在不同的对象中。 像节点或...... 例如,您可以使用以下语句:dsm($ node) 页面中任何节点的结构都将显示在消息框中。 您可以在代码中键入语句。