Zum Inhalt springen

Wie geht das mit dem Content?

Erstellt am 30. September 2003 · 6 Antworten · letzte Antwort am 3. Oktober 2003

Tags: Templates & Layouts, Frage

kaepten ·

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

thoko ·

(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!

kaepten ·

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

thoko ·

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. 😢

kaepten ·

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

kaepten ·

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

siggi ·

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