Как переопределить содержимое таксономии по умолчанию?
Я кодирую способ отображения терминов таксономии, и я не хочу, чтобы на некоторых страницах терминов сообщалось: "В настоящее время контент, классифицированный этим термином, отсутствует". Мне нужно удалить это сообщение из страниц терминов без содержимого, но пусть содержимое будет указано как обычно, когда есть содержимое, связанное с этим термином.
2 answers
Эта информация добавлена в taxonomy_term_page(). Как вы можете видеть там, обратный вызов страницы возвращает массив с возможностью визуализации, что означает, что вы можете легко заменить его в пользовательском модуле, реализовав hook_page_alter().
В этом крючке убедитесь, что вы находитесь на странице терминов таксономии, посмотрите, существует ли блок "no_content", и если да, переопределите разметку #.
Я предлагаю использовать dpm() из devel.module для печати $страницы, чтобы вам было легче разобраться где именно содержимое страницы находится в этом огромном массиве рендеринга. Где-то в system_main, если я правильно помню.
Другой способ сделать это - добавить класс в сообщение с помощью вашего 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">' ;
}
}
Затем вы можете скрыть его, придать ему стиль и т. Д.