Отображение поля типа контента Drupal вне узла - PullRequest
1 голос
/ 12 октября 2011

Я создал настраиваемое поле для типа контента в Drupal 7, которое мне нужно отобразить за пределами узла, в отдельной области на странице.

Подобно тому, как работает переменная $ title (в которой вы можете разместить ее там, где хотите, в файле page.tpl.php), я хотел бы иметь возможность создать другую переменную с именем $ subtitle, которая будет вызывать данные из текущий узел и позвольте мне распечатать переменную в области файла page.tpl.php.

Я видел примеры представлений, которые, как представляется, используют представления и блоки для выполнения этой задачи, но это выглядит несколько излишним и задается вопросом, существует ли более простой способ.

1 Ответ

2 голосов
/ 12 октября 2011

Существует более простой способ, вам нужно помнить, что не каждая страница является страницей узла, и не каждая страница узла будет иметь правильный тип содержимого, поэтому вы должны быть избирательными. Просто добавьте это в файл template.php вашей темы:

function mytheme_preprocess_node(&$vars) {
  $node = $vars['node'];
  if ($node->type == 'my_type') {
   $vars['subtitle'] = $node->field_my_field[LANGUAGE_NONE][0]['value'];
  }
}

Тогда в page.tpl.php вы должны сделать что-то вроде этого:

if (isset($subtitle)) :
  echo $subtitle;
endif;

Убедитесь, что вы очистили свои кеши (в admin / config / development / performance), как только вы реализовали ловушку в template.php, или Drupal не будет ее поднимать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...