Drupal 7: вызов пользовательского поля типа контента на страницу tpl - PullRequest
0 голосов
/ 04 марта 2011

Я работаю над сайтом Drupal 7.Мне нужен собственный макет для некоторых страниц.поэтому я создал страницу - файл 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 ]

2 голосов
/ 04 марта 2011

Для page.tpl.php, если вы обращаетесь к узлу напрямую, вы можете использовать переменную $ node

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

, иначе использовать переменную $ page.

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

, но помните на страницепеременная у вас может быть более одного узла.

2 голосов
/ 04 марта 2011

Структура изменилась в 7, поле сначала вводится по языку (по умолчанию «und», что означает «undefined»), затем вы можете следовать этому примеру:

// 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 для встраивания изображения в страницу, потому что Файловый API в Drupal 7 более абстрактен (чтобы упростить интеграцию со службами CDN).

0 голосов
/ 18 апреля 2013

В drupal есть 2 полезных модуля для разработчиков тем: Devel и Theme_developer Модуль Devel предоставляет функцию с именем dsm (). Используя DSM вы можете узнать, как элементы хранятся в разных объектах. как узлы или ... например, вы можете использовать этот оператор: dsm ($ node) структура любых узлов на странице будет отображаться в окне сообщения. Вы можете ввести операторы в свои коды.

...