Hallo typo3 Freunde
Auf Grund eines "wilden" Layouts mit insgesamt 4 Spalten suche ich nach einer flexiblen Lösung diese 4 Spalten (bzw. Bereiche auf der Seite) mit Inhalt zu füllen.
Mit der typo3 Grundfunktionalität geht das nicht.
Meine Idee wäre diese:
Eine Seite kann 4 Inhalt(-Records) haben die im HTML-Template via Markers (z.B. ###CONTENT1###, ###CONTENT2###, ###CONTENT3###,###CONTENT4###) platziert werden können. Das Header-Feld, oder vielleicht einfach die Reihenfolge stellt den Link zum jeweiligen CONTENT-Marker her.
Wie kann nun mein TS-Template aussehen, dass obiges Vorhaben geht?
Oder ist meine Idee unsinn und es gibt eine bessere und _einfachere_ Lösung?
Vielen Dank für Hinweise und Tipps
Patrik
(M)Eine Idee wäre: Im HTML-Template eintsprechende Marker
<!--###CONTENT1###start-->
Inhalt Links
<!###CONTENT1###stop-->
usw. für die anderen 3.
Im TS-Setup fügt man dann in die Seite die Inhalte ein:
workOnSubpart = DOCUMENT_BODY
subparts.CONTENT2 < styles.content.get
subparts.CONTENT1 < styles.content.getLeft
Man sollte aber schon wissen, welcher Inhaltselement in welchen Block soll, sonst wird es Brühe...
Viele Grüße!
Hallo thoko
Ich glaube, das ist nicht ganz das was ich suche. Wenn ich es richtig interpretiere, dann arbeitet Deine Lösung mit den vorhandenen Bereichen von typo3 (Link, Normal, Rechts, Border) Aber das meine ich nicht. Diese Spalten will ich nicht brauchen ( - finde ich eh ein riesen unsinn - aber das ist ein anderes Thema. 8-)
Nein ich meine im Grunde das, dass ich Inhalts-Elemente (Records) einer Seite variabel auf der Seite positionieren kann. In dem Sinne Variabel, dass die Records nicht nacheinander abgespuhlt werden und in den CONTENT-Marker gefüllt werden, sondern dass ich meine Markers auf der Seite verteilt mit den dem jeweiligen Record füllen kann.
Wie das statisch funktioniert, also mit der Angabe einer RECORD-ID konnte ich an anderer Stelle finden.
subparts.CONTENT1 = RECORDS
subparts.CONTENT1 {
tables = tt_content
source = 47
Wie geht das aber, wenn ich nicht die Record-ID weiss weil sie für jede Seite wieder anders ist?
Patrik
Ah, so langsam glaube ich zu verstehen...Du willst die Elemente also quasi wie in einer FOREACH-Schleife abspulen lassen und dann bsp. jedes 2. Element irgendwohin schieben...
Ich glaube, das wird so nix. Wenn mich jemand eines besseren belehrt - ok, aber so wie ich TypoScript verstanden habe geht sowas nicht. 😢
Hallo typo3 Freunde
Ich habe einen Lösungsansatz gefunden. Poste den mal hier, vielleicht gibts daraus noch verbesserungsmöglichkeiten.
subparts.CONTENT1 = CONTENT
subparts.CONTENT1 {
table = tt_content
select {
pidInList = this
where = header LIKE '%CONTENT1%'
}
Eingentlich trivial, wusste nicht, dass man quasi SQL über TS absetzen kann (bin eben ein typo3 Anfänger).
Also das obige setzt voraus, dass der Inhalts-Record auf der Seite im header den Titel 'CONTENT1' hat.
Für meine Idee und Anwendungsgebiet ist das nicht weiter tragisch.
Mein Seitenlayout hat demnach für jeden Text der irgendwo platziert wird:
1. einen Marker
2. Einen Inhalts-Record
Alles klar? :o
Ein Beispiel meines Seitenlayouts/Struktur, ich habe folgende Elemente auf meiner Seite:
1. Titel = TS-Marker : TITEL1
2. Lead = TS-Marker : LEAD1
3. Fliesstext = TS-Marker : FLIESSTEXT1
4. Spalte 1 Bild = TS-Marker : BILD1
5. Spalte 2 Text= TS-Marker : SPALTETEXT1
6. Spalte 3 Bild = TS-Marker : BILD2
7. Spalte 4 Text= TS-Marker : SPALTETEXT2
Für alle diese 7 Elemente wird es also einen Inhalts-Record geben. Der Titel/Header des jeweiligen Records wird so wie der Marker benennt. Der eigentliche Text ist dann das, was ich letzlich angezeigt bekomme. Im Falle von Element 1 sähe der Record so aus:
Type: Text
Header: TITEL1
Text: Das ist mein Titel der in der Seite angezeigt wird
Patrik
Also da gibts noch mehrere Probleme die ich im Moment nicht in den Griff kriege.
Eines davon:
Wie kann ich z.B. nur den bodytext anzeigen? Mit meiner Lösung bekomme ich natürlihc immer den header und den Bodytext...
Patrik
Hallo kaepten,
Dein Vorschlag funktioniert gut. Um das Problem mit der Trennung von Header und Bodytext zu lösen, sehe ich zwei Wege:
1. Hier im Forum gibt es einige Postings dazu, wie man Header und Text spezifisch ansprechen kann.
2. Du generierst bei der Erstellung des Content einfach den Header extra mit dem Inhaltstyp "Header". Das gleiche für den Text (Header-Angabe bleibt leer). Die einzelnen Inhalte kannst Du dann mit einer kleinen Änderung in Deinem Skript ansprechen:
subparts.CONTENT1 = CONTENT
subparts.CONTENT1 {
table = tt_content
select {
pidInList = this
where = uid LIKE '%3%'
}
}
Also das Contentelement über die UID und nicht über den Header ansprechen.
Gruß Siggi