0

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

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

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

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

欣赏帮助!!多谢!!


**排序**

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

4

3 回答 3

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将图像嵌入页面,因为Drupal 7 中的 File API 更加抽象(以便更容易与 CDN 服务集成)。

于 2011-03-04T16:44:21.920 回答
2

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

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

否则使用 $page 变量。

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

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

于 2011-03-04T16:50:17.457 回答
0

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

于 2013-04-18T10:43:23.270 回答