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

发布于 2024-10-20 11:41:28 字数 598 浏览 8 评论 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< /a>

I'm working on a Drupal 7 website. I need custom layout for some pages. so I created page--customContentTypeName.tpl.php file and it addresses perfectly.

The problem is, I need to display some fields in page tpl. The code below works fine in node tpl, but page tpl :/

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

How can I call custom fields into page tpl?

Appreciate helps!! thanks a lot!!


** SORTED **

with custom field editing... here is the tutorial video: http://lin-clark.com/blog/intro-drupal-7-theming-fields-and-nodes-templates#comment-54

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

若能看破又如何 2024-10-27 11:41:28

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

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

否则使用 $page 变量。

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

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

For page.tpl.php
if you access the node directly you can use $node variable

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

else use $page variable.

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

but remember in a page variable you might have more than one node.

狼性发作 2024-10-27 11:41:28

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 而不是 < code>filename 用于在页面中嵌入图像,因为 Drupal 7 中的文件 API 更加抽象< /a>(以便更轻松地与 CDN 服务集成)。

The structure changed in 7, the field is keyed by language first ("und" by default which means "undefined"), then you can follow this example:

// 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"]
    )
);

Note the usage of the uri instead of the filename for embedding the image in a page because the File API in Drupal 7 is more abstracted (to make it easier to integrate with CDN services).

七七 2024-10-27 11:41:28

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

there are 2 useful modules in drupal for theme developers:
Devel and Theme_developer
Devel module provides a function called dsm() .
using dsm you can recognize that how elements are stored in different objects.
like nodes or ...
for example you can use this statement : dsm($node)
the structure of any nodes in the page will show up in the message box.
you can type the statements in your codes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文