Ich versuche, den Titel der aktuellen Seite (wie von gedruckt page.tpl.php
) auszublenden, wenn die aktuelle Seite 1) ein Knoten in voller Anzeige (im Gegensatz zum Teaser-Modus) ist UND 2) der Knotentyp entweder Konzert oder Bio ist . Ich drucke den Knotentitel für diese Inhaltstypen direkt im Knoteninhalt, daher möchte ich das von page.tpl.php gedruckte Duplikat ausblenden. Ich bin nicht in der Lage, dies direkt in page.tpl.php zum Laufen zu bringen, und meine Lektüre legt nahe, dass die beste Vorgehensweise darin besteht, die Vorlagenlogik in template.php mithilfe von Vorverarbeitungs- und Prozessfunktionen zu behandeln. Also versuche ich, den aktuellen Seitentitel (mit den oben genannten 2 Bedingungen) mit auszublenden template_preprocess_page()
. Das ist mein Code.
<?php
function MYTHEME_preprocess_page(&$variables) {
if (!empty($variables['node']) && $variables['node']->type == 'concert') {
hide($variables['title']);
}
}
?>
Ich lese Wie teste ich den Knotentyp, um eine Variable aus template.php zu drucken? und die Dokumentationsseite für template_preprocess_page()
und verschiedene andere Websites, aber ich kann das einfach nicht zum Laufen bringen. Ich sah Hinweise darauf , dass Sie anrufen müssen isset()
auf $variables['node']
vor dem Test für den Knotentyp, aber das hat nicht funktioniert entweder. Ich habe nirgendwo eine klare Lösung gesehen und bin am Ende meines Witzes.
$title
Variable mit ändernmytheme_process_page(&$variables) { $title = false; }
.mytheme_process_page(&$variables) { $variables['title'] = false; }
und das funktioniert übrigens.<?php print $title; ?>
in<?php if (!$title_hidden): ?>
Sie können einfach eingestellt$variables['title_hidden'] = TRUE;
Sie können dies mit drupal_set_title () verwalten.
quelle
template_preprocess_page()
? Ich habe das Theme Developer-Modul verwendet, um den doppelten Seitentitel zu überprüfen und zu bestätigen, dass er von aufgerufen wirdpage.tpl.php
. Sollte ich darüber nachdenken, den Titel zu löschenpage.tpl.php
und ihn dann wieder dort hinzuzufügen, wo ich ihn verwenden möchtetemplate_preprocess_page()
? Ich möchte, dass der Titel beispielsweise gerendert wird, wenn die Seite eine Ansicht von Knoten enthält, aber nicht, wenn die Seite ein einzelner Knoten eines bestimmten Typs / bestimmter Typen ist.Versuchen Sie dies unter der Annahme, dass Ihre if-Bedingung korrekt ist :)
quelle
$variables['title']
mit dem von zurückgegebenen Wert gesetztdrupal_get_title()
.Weniger kompliziert ist es, dies in Ihrer page.tpl.php auszudrucken
Aber wenn Sie möchten, dass es dynamisch ist, würde ich vorschlagen, das zu verwenden,
preprocess_page
wie von anderen vorgeschlagen.quelle
hide()
wird beim Rendern von Arrays verwendet, nicht von Zeichenfolgen.In CSS habe ich dies mit meinem Thema gemacht
Wie von http://www.alistapart.com/articles/now-you-see-me/ empfohlen
Warum? Weil Sie immer noch den Header und h1 "sichtbar" haben möchten, um die Lesegeräte auf Barrierefreiheit zu überprüfen. Wenn Sie einfach den Wert des H1 entfernen, rauben Sie Ihren blinden und sehbehinderten Besuchern einige potenziell wichtige Informationen.
quelle
Der Vorschlag von mytheme_preprocess_page funktioniert bei mir aber wenn verwendet wird
$vars['title_hidden'] = TRUE;
quelle
Die richtige Funktion ist
anstatt
quelle