Как извлечь определенное поле для отображения на странице таксономии?Drupal 7: Как извлечь определенное поле на странице таксономии
У меня есть пользовательский тип контента, называемый «фильм», и у каждого фильма есть поле «Ссылочное слово», называемое «литье». Как и ожидалось, я могу нажать на «casting» (tag), он приносит мне страницу, где все фильмы перечислены везде, где этот тег связан. Для примера, если я нажму на «Кейт Уинслет» из фильма «Титаник», я приземлюсь на странице http://localhost/mysite/tags/kate-winslet
, где перечислены другие фильмы Кейт Уинслет. До этого момента все в порядке.
Я не хочу Drupal тянуть в и поля показывать по умолчанию, как только Заголовок и Body в своем собственном формате отображения. Скорее я хочу, чтобы я мог отображать фотографию из каждого фильма, год выпуска и, конечно же, название и обрезанную версию тела. Я хочу только настроить содержание этой страницы, чтобы у меня был контроль над Что показывать и где показывать определенное значение поля.
Это то, что я пробовал:
Я клонированы и положить page.tpl.php
в папке шаблона моей темы. Переименовали его как page--vocabulary--tags.tpl.php
. Затем я достал следующую строку кода (<?php print render($page['content']);?>
) из моего page--vocabulary--tags.tpl.php
. Намерение состояло в том, чтобы проверить, действительно ли переопределенный шаблон фактически доступен Drupal или нет. Оно делает!
Но я не смог извлечь такие поля, как field_photo
или field_release_date
от $page['content]
. Чтобы получить представление об определенных переменных и их размещении, я использовал следующую строку кода: <pre><?php /*print var_export(get_defined_vars(), TRUE);*/ ?></pre>
. Но даже оттуда я не мог извлечь определенную область, как я упоминал выше. Поля выглядят где-то внутри $page['content']['system_main']['nodes']
, но я не знаю, как напрямую попасть в конкретное поле.
Я также создал template.php
с помощью следующей функции предобработки крюка:
<?php
function introduction_preprocess_page(&$vars) {
if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2))) {
$term = taxonomy_term_load(arg(2));
$vars['theme_hook_suggestions'][] = 'page__vocabulary__' . $term->vocabulary_machine_name;
$vars['content'] = $vars['page']['content']['system_main']['nodes'];
}
}
?>
Оба <?php print render($content) ?>
и <?php print render($page['content']) ?>
печати такого же результат, но я хочу что-то вроде <?php render($content['photo_field'])?>
который я не был в состоянии ,
Прошу прощения за это слишком долго. Я только что вошел в Drupal. Поэтому я хотел убедиться, что то, что я пытаюсь объяснить, соответствует именно тому, что я хочу выполнить.
Отлично! Таксономический термин работал красиво :) Теперь заглянем в модуль «Панели». Надеюсь, это позволит мне настраивать страницы больше, как я хочу! Спасибо. –
Модуль панелей действительно потрясающий. Но ваше предложение показало мне путь :). Я создал представление, предоставив Termonomy Term, а затем переопределит 'views-view-fields.tpl.php' с помощью' views-view-fields-taxonomy-term.tpl.php'. Затем я создал свой собственный HTML-макет с полями, которые я хочу показать (' Php print $ fields [" field_photo "] -> content') и, наконец, создал классы CSS для настройки внешнего вида страницы. Большое вам спасибо за вашу чрезвычайную помощь :) –