Estou tentando ocultar o título da página atual (impressa por page.tpl.php
) se a página atual for 1) um nó em exibição completa (em oposição ao modo teaser) E 2) o tipo de nó é concerto ou biografia . Imprimo o título do nó para esses tipos de conteúdo diretamente no conteúdo do nó, por isso quero ocultar a duplicata que está sendo impressa por page.tpl.php. Não consigo fazer isso funcionar diretamente em page.tpl.php, e minha leitura sugere que a melhor prática é lidar com a lógica de modelo no template.php usando funções de pré-processo e processo. Então, estou tentando ocultar o título da página atual (com as 2 condições acima) usando template_preprocess_page()
. Este é o meu código.
<?php
function MYTHEME_preprocess_page(&$variables) {
if (!empty($variables['node']) && $variables['node']->type == 'concert') {
hide($variables['title']);
}
}
?>
Eu li Como testo o tipo de nó para imprimir uma variável do template.php? e a página de documentação template_preprocess_page()
e vários outros sites, mas não consigo fazer isso funcionar. Vi sugestões que você tem que chamar isset()
on $variables['node']
antes de testar para o tipo de nó, mas isso não quer trabalhar. Não vi uma solução clara publicada em nenhum lugar e estou no meu juízo final.
$title
variável real commytheme_process_page(&$variables) { $title = false; }
.mytheme_process_page(&$variables) { $variables['title'] = false; }
e que funciona BTW.<?php print $title; ?>
em<?php if (!$title_hidden): ?>
que você pode simplesmente definir$variables['title_hidden'] = TRUE;
Você pode gerenciar isso usando drupal_set_title ().
fonte
template_preprocess_page()
? Eu usei o módulo Theme Developer para inspecionar o título da página duplicada e confirmei que está sendo chamadopage.tpl.php
. Devo pensar em excluir o títulopage.tpl.php
e adicioná-lo de volta para onde eu quisertemplate_preprocess_page()
? Desejo que o título seja renderizado, por exemplo, quando a página contém uma exibição de nós, mas não quando a página é um nó único de um determinado tipo / tipos.Tente isso assumindo que sua condição está correta :)
fonte
$variables['title']
com o valor retornadodrupal_get_title()
.A maneira menos complicada é imprimindo isso no seu page.tpl.php
Mas se você quiser que seja dinâmico, sugiro usar o
preprocess_page
como sugerido por outros.fonte
hide()
é usado com matrizes de renderização, não cadeias.Em CSS, fiz isso no meu tema
Conforme recomendado por http://www.alistapart.com/articles/now-you-see-me/
Por quê? Porque você ainda deseja ter o cabeçalho e o h1 'visíveis' para rastrear os leitores quanto à acessibilidade. Se você simplesmente retirar o valor do H1, está roubando aos visitantes cegos e com baixa visão algumas informações potencialmente importantes.
fonte
a sugestão de mytheme_preprocess_page funciona para mim, mas se for usada
$vars['title_hidden'] = TRUE;
fonte
A função correta é
ao invés de
fonte