我正在使用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
答案 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) 页面中任何节点的结构都将显示在消息框中。 您可以在代码中键入语句。