Hallo zusammen,
Ich bin gerade dabei, mich in Typo3 einzuarbeiten und habe diverse simple Seiten aufgebaut.
Bei diesen Seiten habe ich immer nur ein template mit einem header, 1-2 Menüs und einem Contentbereich erstellt.
Kann ich in den Contentbereich auch weitere Templates inkludieren.
Wenn ich für eine tiefere Seite ein neues template anlege, dann wird es ja nicht in den content inkludiert - sondern als "root" Template geladen...
...Ich hoffe, dass ich mich deutlich ausgedrückt habe 😃
Kann ich in den Contentbereich auch weitere Templates inkludieren.
Wenn ich für eine tiefere Seite ein neues template anlege, dann wird es ja nicht in den content inkludiert - sondern als "root" Template geladen...
...Ich hoffe, dass ich mich deutlich ausgedrückt habe
Hast Du, aber alles ein bisschen durcheinander gebracht 😉
Templates inkludieren kannst Du in jedem Template unter "click here to edit whole template record", dort include basis template.
Wenn Du für eine tiefere Seite ein neues Template anlegst wird es nicht als root geladen sondern als extension template. Normalerweise, es sei denn Du definierst es explizit als root template ("click here to edit whole template record" ...). Ein extension template überschreibt eine oder mehrere (oder alle) Eigenschaften Deines übergeordneten Templates, je nach dem was Du da hineinschreibst.
Viele Grüße
Niki
Wenn ich im "hauptTemplate" für einen bestimmten DIV tag festlege, dass hier der content der seiten dargestellt werden soll, dann werden natürlich auch nur seiteninhalte dargestellt - und keine templates inkludet.
z.B. subparts.content < styles.content.get
muss ich da einen switch vorbauen, der entweder seiteninhalte oder templates darstellt?
muss ich da einen switch vorbauen, der entweder seiteninhalte oder templates darstellt?
Templates werden eigentlich nie dargestellt (ausser hier im Forum für Code Diskussionen) sondern konfigurieren die Ausgabe des Seiteninhalts.
Vielleicht schreibst Du einfach mal was Du genau vorhast.
Viele Grüße
Niki
sorry - das wahr wirklich sehr verwirrend!
Ich möchte in mein HTML-Template, dass ich in meinem (typo3)Haupttemplate aufrufe ein weiteres HTML-Template inkludieren.
Dieses weitere HTML-Template, dass in den Content bereich geladen werden soll, ist allerdings von der unterseite abhängig.
Ein Beispiel:
Ich habe eine Seite mit einem Header, einem Menü (links) und rechts davon den Content Bereich.
Wenn ich z.B auf meine unterseite "homepage" klicke, dann möchte ich in meinem Content-Bereich meine Homepage darstellen, die allerdings mit einem HTML Template gestaltet wurde.
Dafür muss ich doch meiner unterseite ein (typo3) Template geben, dass wiederum mein HTML Template lädt.
hm glaub nicht dass das mit Unter-HTML-Templates geht. Normalerweise lädst Du einfach ein komplett anderes HTML Template. Mach also einfach ein HTML Template für die eine Seite und eines für die andere Seite. Und dann referenzierst Du die entsprechend über Dein TypoScript. Das kannst Du entweder über extension templates oder - meist besser - über conditions steuern.
Oder Du machst das gleich ganz modern und arbeitest ohne HTML Template, baust also die gesamte Seite über TypoScript auf dann bist Du am flexibelsten. Machen wir immer so, Voraussetzung ist aber eigentlich dass Du css-basierendes XHTML erstellt hast, bei Tabellenwahnsinn dauerst sonst zu lang.
Viele Grüße
Niki
xhtml ist für mich auch standart.
aber wie differenzierst du die gestaltung der verschiedenen seiteninhalte?
ich bräuchte mal ein beispiel.
in den tutorials werden die seiten vielzu anpruchslos aufgebaut.
Gruß Henning
wenn Du xhtml und css basierend hast, brauchst Du um Content, Menü etc. nur ein paar divs legen damit Du sie übers css ansprechen kannst.
Startest dann Dein TS Template ganz einfach mit
page.10 = IMAGE
page.10.file = fileadmin/logo.gif
page.10.wrap = <div id="logo"> | </div>
etc. etc.
Wenn Du um mehrere Elemente ein div brauchst, pack alle Elemente in ein COA und gib dem COA ein wrap mit. Wenn Du einzelne Bereich ändern willst kannst Du das total easy über conditions machen.
Z.B.
page.10 = IMAGE
page.10.file = fileadmin/logo.gif
page.10.wrap = <div id="logo"> | </div>
[globalVar = TSFE:id=123]
page.10 >
page.10 = TEXT
page.10.value = Hier war mal ein Logo
page.10.wrap = <div id="logotext"> | </div>
[end]
Super flexibel so.
Viele Grüße
Niki
Hallo, Borcherd,
anbei mal ein wenig komplexeres Beispiel, das Dir zeigt, wie man verschachteln kann:
Hier, im Haupttemplate, wird eine allgemeine Seitenstruktur erzeugt. Die Bereiche werden über libs eingebunden. Die Bereiche sind in extra templates-Einträgen gespeichert und in das Haupttemplate als Basis Templates eingebunden.
page = PAGE
page {
typeNum = 0
bodytag = <body>
# Creates Shortcut Icon for browser address line, tab and favourites
headerData.10 = TEXT
headerData.10.value = <link rel="SHORTCUT ICON" href="http://papandina.cip.cgiar.org/favicon.ico" />
includeCSS < lib.cssStyles.10
#Referencing areas into page
10 < lib.areaTop
20 < lib.areaLeft
40 < lib.areaCenter
30 < lib.areaRight
50 < lib.areaBottom
#Referencing absolute positioned Elements into page
60 < lib.services
70 < lib.logo
80 < lib.languageSelection
}
Hier nun beispielsweise das Template für den linken Bereich. Dieser Bereich wird je nachdem, wo sich der User befindet, anders befüllt, bzw. gar nicht angezeigt:
# Creates and fills left Area
lib.areaLeft = COA
lib.areaLeft.wrap = <div id="areaLeft">|</div>
#Fills in Patron Organization Box, if current page IS Web Site Root
[globalVar = TSFE:id = {$webSiteRootID}]
lib.areaLeft.10 < styles.content.getLeft
lib.areaLeft.20 < lib.patronOrganizationBox
# Fills in secondary navigation and sub pages, if current page is NOT Web Site Root (Home)
[else]
lib.areaLeft.30 < lib.secondaryNavigation
lib.areaLeft.40 < lib.subpages
[end]
#Removes left Area for certain Conditions (mostly pages or subtrees)
[globalVar = {$noLeftAreaPages}][PIDinRootline = {$noLeftAreaBranches}]
lib.areaLeft >
[end]
Ich hoffe, das verwirrt nicht zusehr, sondern zeigt Dir, wie man Nikis Ansatz "im Großen" anwenden kann.
Ist zwar ne ziemliche TS-Coderei, aber man hat halt die Intelligenz im TS und nicht im HTML drin. Ich wollte anfangs auch wie Du innerhalb der HTML-Vorlagen auf weitere Vorlagen verweisen, hat aber leider nicht geklappt. Daher bin ich auf diesen Ansatz gegangen.
Randbemerkung: Das Füllen der Konditionen mit Konstanten hat den Vorteil, dass auch weniger Typo3-bewanderte Editoren das Layout von Seiten verändern können - ohne im TS rumzuwühlen.
Grüßle
Falk
Vielen Dank für eure umfangreiche Hilfe!
Das mir den [Bedingungen] hatte bei mir erst nicht funktioniert, weil ich diese in geschweiften klammern hatte. scheint TS nihct zu mögen.
aber langsam verstehe ich die logic.
Andererseits verstehe ich nicht, dass viele auf template-extensions wie TemplateVoila schwören?
Jetzt würde mich nochmal interessiern, wie man eigene PHP scripts am sinnvollsten einbringt 😉
(...ich freue mich schon auf meine Typo3 Bücher, die morgen da sein sollten)