von typo3 zu Drupal, Strukturierung/Aufbau Anfängerfrage
am 16.02.2009 - 15:04 Uhr in
Hallo liebe Drupal Community,
ich bin von Typo3 zu Drupal gewechselt, und hätte nun eine grundlegende Frage zum Webseitenaufbau bei Drupal.
Ich nutze Drupal 6.9 .
Ich habe einen fixen Header und einen fixen Footer. Der Content dazwischen soll variabel sein.
Nun folgendes Problem, ich will News auf der Startseite ausgeben lassen in einem bestimmten div Container.
Weiters will ich nach eingabe von http://www.abc.at/irgendwas den header und den footer behalten, und "irgendwas" im content ausgeben lassen. Allerdings nicht im selben div Container wie zuvor die News.
Gelöst habe ich das bisher so: Für die News erstelle ich "Artikel (Storys)" und klicke an, diese sollen auf der Startseite ausgegeben werden.
In der page.tpl.php habe ich die verschiedenen div Container eingebaut, und innerhalb des "News div Container" habe ich
<?php
print $content
?>Nun das funktioniert soweit auch gut. Aber wenn ich nun auf den oben genannten Link http://www.abc.at/irgendwas klicke, wird mir ja ebenfalls der Inhalt dessen im "News div Container" den ich in page.tpl.php definiert habe ausgegeben.
So gehts also nicht. Dann dachte ich ich lagere es in Blöcken mit php Eingabe aus, und zeige es auf den Seiten genau das an was ich will. Leider wird innerhalb von blöcken
<?php
print $content
?>So gehts also auch nicht.
Dann dachte ich lege ich eine "page-front.tpl.php" für die Startseite an. Funktioniert auch, allerdings überschreibt mir diese die ganze page.tpl.php, und ich müsste Header und Footer somit doppelt definieren in 2 verschiedenen Dateien. (aber das will ich ja nicht).
Hoffe es ist klar worauf ich hinaus möchte. Verstehe noch nicht ganz wie ich das gewollte erreichen kann.
Vielen Dank!
mfg,
KeepOn
- Anmelden oder Registrieren um Kommentare zu schreiben

Inhaltstypen lassen sich
am 16.02.2009 - 15:08 Uhr
Inhaltstypen lassen sich separat themen. Siehe Handbuch: http://www.drupalcenter.de/handbuch/9912
Wenn dann noch konkret Fragen auftauchen, die das Handbuch nicht beantwortet, schieß los :)
Hallo, vielen Dank, aber das
am 16.02.2009 - 15:29 Uhr
Hallo,
vielen Dank, aber das kenn ich schon.
Hilft mir bei meinem Problem leider nicht weiter. Oder ich sehe die Lösung momentan nicht.
Eigentlich will ich ja den Inhalt von "$content" auf der Startseite in einer bestimmten "Div Verschachtelungsstruktur" ausgeben lassen und auf einer anderen Seite (www.abc.de/irgendwas) den Inhalt von "$content" wieder in einer eigenen "Div Verschachtelungsstruktur" ausgeben lassen.
Allerdings sollen header und footer gleich bei beiden gleich bleiben, ohne dass ich diese in 2 verschiedenen Dateien explizit aufführen muss.
mfg,
KeepOn
Hast du dir schonmal Panels
am 16.02.2009 - 15:36 Uhr
Hast du dir schonmal Panels angesehen (http://drupal.org/project/panels). Eventuell hilft dir das.
mfg Cyberschorsch
_________
Mei is des schee
Theming ist immer die
am 16.02.2009 - 15:51 Uhr
Theming ist immer die Lösung ;-)
Header und Footer werden über die page.tpl.php vorgegeben. $content in der page.tpl.php ist z.B. die gethemete Ausgabe des konkreten Nodes in Abhängigkeit von dessen Typ, so du eine node-[nodetyp].tpl.php hast.
Wenn du für denselben Nodetyp unterschiedlichen HTML-Code erzeugen willst, spricht nichts dagegen dir eigene Theme-Funktionen in der template.php zu schreiben und diese aufzurufen, oder dir dort eigene Template-Dateien via Callbacks zu definieren.
Wenn du aber z.B. auf der Startseite einen View benutzt um die Nodes auszugeben, wäre es das einfachste den View zu themen. Einfach mal im Handbuch stöbern und mit den passenden Suchbegriffen hier und im Internet suchen. Da findest du massig Beispiele und Tutorials.
Vielen Dank!
am 16.02.2009 - 15:57 Uhr
Vielen Dank!
Werde es mal suchen.
mfg,
KeepOn
Generell kann man bei Drupal
am 16.02.2009 - 16:04 Uhr
Generell kann man bei Drupal nur sagen, dass alles über ganz verschiedene Wege machbar ist. Generell gibt es also keinen "generellen" Weg. Das sorgt am Anfang nicht eben für mehr Klarheit, weil man sich natürlich wünscht die EINE für immer und alle Zeiten richtige Lösung zu finden.
Vor zusätzlichen Modulen musst du generell (Oh, gibts ja doch! ;-) ) keine Angst haben. Zumindest CCK und Views gehören eigentlich zum Grundrüstzeug. Das vom Kollegen oben erwähnte Panels ist schon relativ speziell und auch nicht soo ganz ohne :)
Sicher macht der Einsatz von Blöcken Sinn, dazu sind sie da. Panels wird genutzt, wo Blöcke nicht flexibel genug sind. Den eigentlichen Content einer einzelnen Seite gibt man aber nicht über einen Block aus - wozu auch, ich kann ja im Template genau bestimmten an welcher Stelle $content ausgegeben wird.
Blöcke werden eigentlich für das Drumrum des Content benutzt (Header, Footer, Sidebars, Werbeblöcke oder Navigationen unter und über Inhalt und anderen Blöcken, ...).
Hm, aber welchen Nodetyp hat
am 16.02.2009 - 16:58 Uhr
Hm, aber welchen Nodetyp hat dann der Nodetyp von www.abc.de/xy wobei ich hierbei ein phpbb Forum eingebunden habe, und bei Eingabe von www.abc.de/phpbbforum gibt der $content momentan den Inhalt von dem Forum aus.
Vielen Dank!
mfg,
KeepOn
So, bin etwas weiter
am 16.02.2009 - 18:17 Uhr
So, bin etwas weiter gekommen.
Vielen Dank für obige Erklärungen.
Nun noch eine Frage. Ich habe zB. für news einen node erstellt und das template angepasst. (node-news.tpl.php)
Da dieses Template, je nach Anzahl der News in einer schleife durchlaufen wird, kann ich den header vom newsfenster nicht auch in diesem node-news.tpl.php erzeugen, da er ja sonst auch ind er schleife öfters erzeugt wird.
Wie macht man dies nun?
Ich habe versucht, einen block zu definieren und diesen in der page.tpl.php anzugeben, und zwar in dieser at und weise:
regionA (enthält ein öffnendes div tag)
$content
regionB (enthält ein schließendes div tag)
so dachte ich mir kann ich die Blöcke einfach wieder ausblenden lasen.
Was aber leider nicht funktioniert, da die block.tpl.php für jeden block schon ein schließendes
vorgesehen hat.
Nun meine Frage, wie löst man so etwas am besten? (bzw. überhaupt)
Vielen Dank!
mfg,
KeepOn