Как переопределить содержимое таксономии по умолчанию?


Я кодирую способ отображения терминов таксономии, и я не хочу, чтобы на некоторых страницах терминов сообщалось: "В настоящее время контент, классифицированный этим термином, отсутствует". Мне нужно удалить это сообщение из страниц терминов без содержимого, но пусть содержимое будет указано как обычно, когда есть содержимое, связанное с этим термином.

Author: kiamlaluno, 2011-05-16

2 answers

Эта информация добавлена в taxonomy_term_page(). Как вы можете видеть там, обратный вызов страницы возвращает массив с возможностью визуализации, что означает, что вы можете легко заменить его в пользовательском модуле, реализовав hook_page_alter().

В этом крючке убедитесь, что вы находитесь на странице терминов таксономии, посмотрите, существует ли блок "no_content", и если да, переопределите разметку #.

Я предлагаю использовать dpm() из devel.module для печати $страницы, чтобы вам было легче разобраться где именно содержимое страницы находится в этом огромном массиве рендеринга. Где-то в system_main, если я правильно помню.

 2
Author: Berdir, 2011-05-16 19:20:37

Другой способ сделать это - добавить класс в сообщение с помощью вашего template.php

function YOURTHEMENAME_process_page(&$variables) {

  if(isset($variables['page']['content']['system_main']['no_content'])) {
    $variables['page']['content']['system_main']['no_content']['#prefix'] = '<p class="empty-term">' ;
  }
}

Затем вы можете скрыть его, придать ему стиль и т. Д.

 1
Author: iAugur, 2012-07-10 10:39:40