Default-Startseite abändern
Eingetragen von piddy (21)
am 07.11.2008 - 16:49 Uhr in
am 07.11.2008 - 16:49 Uhr in
hallo community,
ich habe als startseite einfach nur "node" angegeben, damit neu veröffentlichte artikel dort angezeigt werden können.
nun möchte ich an dieser "default-startseite" aber noch änderungen vornehmen. kann mir jemand sagen, wo ich diese finde, bzw. ob ich dafür möglicherweise eine neue datei im themeordner anlegen muss?!
hab nix dazu gefunden trotz sufu und google :(
gruß
piddy
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo piddy, da Drupal aus
am 08.11.2008 - 17:59 Uhr
Hallo piddy,
da Drupal aus Content in der Datenbank und dem Template zusammen HTML-Dateien erzeugt, die den Inhalt darstellen ist Deine Frage nach Änderungen dieser Darstellung nicht eindeutig.
Leider sind Drupal-Begriffe nicht immer durchgängig logisch oder zum Teil verwirrend. Das liegt zum Teil anscheinend an der extremen Flexibiltät von Drupal.
Als Startseite (frontpage) kann in den Einstellungen ein bestimmter Node oder eine komplett dynamisch erzeugte Seite angegeben werden. Die gerne genutzte Startseite /node erzeugt ebenso wie das Views-Modul Content-Listen dynamisch als "Seite".
Die Frage ist, was Du konkret erreichen möchtest?
Geht es Dir um die Veränderung dessen, was auf der Startseite angezeigt werden soll, dann ist das Views-Modul eine gute Strategie und sei es nur, um den View (z.B. eine Node-Liste "neue Beiträge") in einer einzigen (als Startseite zu definierenden) Node-Seite anzeigen zu lassen.
Geht es Dir um die Darstellung (Anordnung, HTML-Code usw.) ist das Template schon der richtige Ansatz, den ich aber nicht auswendig erklären kann. Vor allem gibt es auch dort mehrere Möglichkeiten. Wenn es nur um eine kleine Änderung des Layouts auf der Startseite geht, ist evtl. schon etwas CSS hilfreich über die Klasse "front", die viele Templates im Body-Tag ausgeben, wenn sie die "Startseite" erzeugen.
Um die Verwirrung komplett zu machen, lassen sich View-Modul oder direkte Datenbank-Abfragen im Template nutzen und auch in Nodes PHP-Code unterbringen usw. Ich schätze diese vielen Möglichkeiten sehr, weiß aber auch, daß diese vor allem für Anfänger den Einstieg erschweren.
Viel Grüße,
Carsten
startseite
am 18.11.2008 - 15:32 Uhr
sry das ich so lange gebraucht habe um zu antworten, bin aber leider im moment ohne internet.
es ist so, das jeder artikel, der auf meiner seite veröffentlicht wird, einen titel hat, welcher mit einer grafik hinterlegt ist.
die startseite (auf der ebenfalls einige artikel veröffentlicht sind) hat eben diese grafik am seitenanfang, jedoch ohne jeglichen inhalt.
d.h.
< leere grafik ohne titeltext (von der startseite generiert) >
< titel von beitrag 1 >
TEXT TEXT
< titel von beitrag 2 >
TEXT TEXT
jetzt möchte ich wissen, an welcher stelle ich entweder verhindern kann das die leere titelgrafik erzeugt wird oder wo ich dort etwas hineinschreiben kann (also z.b. titel der startseite).
gruß piddy
title
am 19.11.2008 - 12:00 Uhr
ein stück weiter bin ich jetzt:
der titel über jedem artikel wird mit
<?php
print $title;
?>
ich muss jetzt bloß nur noch wissen, wie ich verhindern kann das die startseite einen titel bekommt...
weiss das zufällig jemand was?
If-Bedinung ist vllt. die Lösung
am 19.11.2008 - 12:58 Uhr
Ich nehme mal an, daß Du per CSS an den HTML-Headern arbeitest? Aber evtl. muss ich ja auch gar nicht mehr wissen, wenn Dir das Folgende schon helfen sollte.
Hat Dein Template eine If-Bedingung um der Titel-Ausgabe in der page.tpl.php? Z.B.:
<?php if ($title): ?><h1 class="title"><?php print $title; ?></h1><?php endif; ?>
Hier könntest Du evtl. noch andere Bedingungen einbringen, z.B. eine Frontpage-Abfrage:
<?php if ($is_front): ?> <!-- anderer PHP und/oder HTML-Code --><?php endif; ?>
Weitere page.tpl-Variablen: http://drupal.org/node/11812
Vielleicht hilft es auch, die Ausgabe der Title-Variable aus der page.tpl.php in einen if ($page == 0)-Abschnitt der node.tpl.php zu holen.
Viel Erfolg,
Carsten
kein if
am 19.11.2008 - 14:42 Uhr
ich benutze lediglich
<?php
print $title;
?>
gäbe es nicht die möglichkeit das mit ifelse zu lösen.
also wenn startseite dann kein title, sonst title?
gruß piddy
if ($is_front == false)
am 19.11.2008 - 15:12 Uhr
Da brauchen wir nicht unbedingt ELSE, sondern können nach FALSE fragen:
<?php
if ($is_front == false)
{
print $title;
}
?>
Die "if $title"-Variante macht in diesem Fall aber evtl. mehr Sinn, da vor allem auch der Fall abgedeckt wird, wenn an anderen Stellen auch kein Titel existiert (vllt. bei Views?). Aber wenn das Projekt überschaubar ist und Du vor allem weißt, wo Du was geändert hast und ansetzen könntest, dann ist das im Moment relativ egal.
effekt nur mit true
am 19.11.2008 - 15:16 Uhr
also wenn ich
<?php
if ($is_front == false)
{
print $title;
}
?>
einfüge tut sich nichts.
ich hab mal spaßeshalber
<?php
if ($is_front == true)
{
print 'test';
}
?>
reingeschrieben.
dann erscheint auf der startseite in der leeren titelleiste "test".
gruß piddy
Startseite sollte doch kein Titel haben
am 19.11.2008 - 15:31 Uhr
Wenn ich das richtig verstanden habe, sollte doch auch auf der Startseite kein $title ausgegeben werden. Probier mal mit meinem Code die anderen (nicht front-)Seiten.
kein effekt
am 19.11.2008 - 15:37 Uhr
hab deinen code jetzt drin. dann tut sich aber nichts. die leere titelgrafik ist noch auf der startseite und sonst ist alles unverändert.
hier mal ein auszug (html)
<div class="title">
<?php
if ($is_front == false)
{
print $title;
}
?>
</div>
und css
.title {
background-image:url(images/node/glaskasten.png);
width:590px;
height:39px;
background-repeat:no-repeat;
font-size:16px;
text-indent:20px;
line-height:33px;
vertical-align:middle;
}
Fehlersuche
am 19.11.2008 - 16:54 Uhr
Ich habe if ($is_front == false) in einer Drupal 6.4-Testumgebung erfolgreich getestet. Drupal 5 verhält sich vielleicht anders, aber Du hast Deinen beitrag ja mit Drupal 6 gekennzeichnet.
Aber evtl. wurden die Veränderungen am Template-File noch nicht vom System registriert. Ich füge zum Testen dieses Problems immer noch einen kleinen Hinweis in den HTML-Bereich ein, der auch ohne PHP-Logik erscheint (später das Entfernen nicht vergessen).
Ein entsprechender Funktions-Aufruf für Drupal 6 im Template hilft diesbezüglich in der Entwicklungs-Phase (hier erst recht das Entfernen nicht vergessen).
<?php
drupal_rebuild_theme_registry();
?>
Siehe auch: http://api.drupal.org/api/function/drupal_rebuild_theme_registry
Ich glaube ein Aufruf der cron.php ist auch hilfreich.
hat doch funktioniert, aber...
am 24.11.2008 - 10:24 Uhr
ok, es hat doch so geklappt wie du gesagt hast. hatte nur was falsch geschrieben. allerdings bewirkt der code, das mir auf der startseite gar keine titel mehr angezeigt werden.
mir gehts ja eigentlich nur um diesen einen überflüssigen.
mfg piddy^
NACHTRAG:
ich habe jetzt mal testweise aus meiner page.tpl.php $title und $content rausgenommen. wie erwartet erscheint kein inhalt mehr und auch keine (beitrags)überschriften. nur der seitentitel wird weiterhin angezeigt, auf jeder seite.
an welcher stelle wird der denn nun erzeugt?!
templates
am 24.11.2008 - 10:31 Uhr
Moin!
Du kannst Dir für bestimmte Seiten eigene Templates (wie z.B. die bereits bestehenden page.tpl.php oder node.tpl.php) erstellen: http://drupal.org/node/190815 (irgendwo in der Mitte der Seite).
In Deinem Fall page-front.tpl.php.
Dort kannst Du dann den Titel verändern, entfernen oder was auch immer :-)
hth,
Stefan
dev server
am 24.11.2008 - 13:13 Uhr
die seite kommt in den nächsten tagen online auf einen dev server. dann kann ich euch mal genauer zeigen was ich meine.
melde mich dann wieder,
danke bis hierhin
piddy
lösung
am 25.11.2008 - 11:32 Uhr
ich habe die lösung dank carstens ansatz gefunden.
<div class="title">
<?php
if ($is_front == false)
{
print $title;
}
?>
</div>
das war schon fast richtig. ich hatte ja das problem das auf der startseite trotzdem noch die leere titelgrafik aus
<div class="title">
war.die lösung war lediglich, das das div nicht um die php anweisung herum steht, sondern duch diese selbst gerendert wird:
<?php
if ($is_front == false)
{
print "<div class='title'>$title</div>";
}
?>
also vielen vielen dank für eure hilfe,
alleine wär ich nie drauf gekommen.
viele grüße, piddy
Modul "Front Page"
am 25.11.2008 - 12:20 Uhr
Guck mal hier: http://drupalmodules.com/module/front-page
(Außerdem lohnt dort auch immer ein Blick auf die "Related Modules".)
Frank