Frontpage zweimal
am 03.10.2013 - 13:33 Uhr in
Hallo,
bin gerade dabei, eine Website mit drupal aufzubauen.
Habe einen Artikel mit Überschrift für die Frontpage gemacht und dafür einen alias 'willkommen' vergeben.
Beim Erstaufruf ($is_front = true) wird der Titel aber nicht ausserhalb des Contents ($page['content']) in einem h1-Tag, sondern _innerhalb_
des Contents in einem h2-Tag als Link angezeigt. Die Variable $title ist leer !
Erst wenn ich auf diesen Link klicke, wird, wird die Seite korrekt angezeigt (Titel im h1-Tag _vor_ dem content, nicht als link).
$is_front ist dann aber komischerweise false!?! Die Variable $title ist diesmal aber korrekt gefüllt....
Warum kommt die korrekte Version nicht sofort?
Die angepasste (vorerst rudimentäre ) page.tpl.php sieht so aus:
<div id="page-wrapper">
<div id="header">
<div id="header-image">
<img src="<?php echo getHeaderImage(); ?>" width="960px" height="274px"/>
</div> <!-- end id header-image-->
<div id="header-navi">
Header Navi
</div> <!-- end id header-navi-->
<div id="content-wrapper">
<div id="content">
<h1><?php print $title; ?></h1>
<?php print render ($page['content']); ?>
</div> <!-- end id content-->
<div id="sidebar">
Konzerte
</div> <!-- end id sidebar-->
</div> <!-- end id content-wrapper-->
<div id="footer">
</div> <!-- end id footer-->
</div> <!-- end id page -->
</div>
Gruss, Helmut
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo,wenn Du eine einzelne
am 04.10.2013 - 10:10 Uhr
Hallo,
wenn Du eine einzelne Node als Startseite festlegen willst, geht das nicht über "auf Startseite veröfentlichen" sondern über Konfiguration->System->Website-Informationen (Startseite) ..(/admin/config/system/site-information).
In Deinem Fall wird die einzelne Node auf der Startseite nicht als Page dargestellt, deshalb das Verhalten: $title ist damit nicht im Scope (beachte dabei auch die konditionalen Abfragen in der modules/system/page.tpl.php, die stehen da nicht umsonst...) Die Ausgabe von $title kommt aus der node.tpl.php.
<?php if (!$page): ?>
<h2<?php print $title_attributes; ?>><a href="<?php print $node_url; ?>"><?php print $title; ?></a></h2>
<?php endif; ?>
Wenn Du dann dem Link folgst, kommst Du auf die Node, die dann auch als Page ausgegeben wird:
$title ist dann im page.tpl.php verfügbar in der node.tpl.php wir die Ausgabe unterdrückt.
Gruß
Christian
Don't code today what you can't debug tomorrow
Ariya Hidayat
oteno schrieb Hallo, wenn Du
am 04.10.2013 - 10:37 Uhr
Hallo,
wenn Du eine einzelne Node als Startseite festlegen willst, geht das nicht über "auf Startseite veröfentlichen" sondern über Konfiguration->System->Website-Informationen (Startseite) ..(/admin/config/system/site-information).
Verstehe ich nicht. Ich will keinen Node als Startseite festlegen sondern eine stinknormale static page, so wie ich das auch vorher ohne Probleme schon gemacht habe.
Schliesslich habe ich ja über 'content' eine neue Seite erstellt. Was muss ich denn jetzt machen, damit die Seite gleich korrekt erscheint?
Helmut
ein Buch über die Grundlagen
am 04.10.2013 - 10:59 Uhr
ein Buch über die Grundlagen lesen?
Don't code today what you can't debug tomorrow
Ariya Hidayat
Ein Buch habe ich schon. Aber
am 04.10.2013 - 13:30 Uhr
Ein Buch habe ich schon. Aber ich weiss immer noch nicht, wieso in einem Fall eine Startseite, die als Frontpage deklariert wird, auch gleich als Frontpage erscheint, in einem anderen Fall aber nicht....
Ein Node ist in erster Linie
am 04.10.2013 - 14:17 Uhr
Ein Node ist in erster Linie zunächst mal mit einer "Page" gleichzusetzen: Die Vollansicht eines Nodes "ist" eine Page.
Wenn Du diese eine Seite also als Front-Page haben willst, dann musst Du das so festlegen, wie oteno oben beschrieben hat.
Wenn Du das nicht tust, und nur dann, kommt das Verhalten für "auf der Startseite anzeigen" zum Zuge, indem solcherart markierte Nodes als _Teaser_ automatisch
auf der Startseite in Listenform angezeigt werden, und das können dann mehr als 1 Node (=Inhalte) sein.
lg leda
"Du liebst es, Du brauchst es oder Du gibst es weg"
www.leda.ch