Mittwald CM Service: TYPO3-Hosting, TYPO3-Schulungen, Agenturpakete, Managed-Server
Optimiertes TYPO3 Hosting von Mittwald CM Service

Inhalte aus den Spalten LINKS, NORMAL, RECHTS, RAND ausgeben

Wenn Sie im Backend alle 4 Inhalts-Spalten nutzen wollen, müssen Sie im TypoScript definieren, wo die Datensätze der einzelnen Spalten im Frontend ausgegeben werden sollen.

Nehmen wir an, Sie haben einen Inhaltselement in der Normal-Spalte. Ein weiteres Text-Seitenelement ist in der Randspalte. Mithilfe von phpMyAdmin können Sie auch selbst überprüfen, worin sich diese beiden Datensätze unterscheiden: Der 1. Text hat in der Spalte colPos den Wert 0, der 2. Text hat den Wert 3.

Hier die komplette Liste:

Spalte

colPos-Wert

Links

1

Normal

0

Rechts

2

Rand

3

Aber wie kann der Inhalt ausgegeben werden?
Angenommen, Sie hätten ein Layout in folgender Art:

Beispiel: designvorlage.tmpl

<!-- ###SCREEN### -->
<table>
  <tr>
    <td>###INHALT_NORMAL###</td><td>###INHALT_RAND###</td>
  </tr>
</table>
<!-- ###SCREEN### -->

Wie spricht man die Marker an?

Die Marker ###INHALT_NORMAL### und ###INHALT_RAND### müssen nun von Typo3 ersetzt werden. Typo3 muss nun folgendes von Ihnen "erklärt" bekommen:

  • Aus welcher Tabelle sollen die Daten kommen?
  • Welche Spalte des Backends soll gezeigt werden?
  • In welcher Reihenfolge sollen die Daten ausgegeben werden?
  • Falls die Webseite mehrsprachig ist: Welche Sprache soll ausgegen werden?

Die Definition dieser Ausgabe geschieht im TypoScript-Setup:

TypoScrip-Setup:

  1. page = PAGE
  2. page {
  3.         typeNum = 0
  4.         10 = TEMPLATE
  5.         10 {
  6.                 template = TEXT
  7.                 template.file = fileadmin/templates/designvorlage.tmpl
  8.                 workOnSubpart = SCREEN
  9.                 marks {
  10.                         INHALT_NORMAL = CONTENT
  11.                         INHALT_NORMAL {
  12.                                 table = tt_content
  13.                                 select {
  14.                                         where = colPos = 0
  15.                                         orderBy = sorting
  16.                                         languageField = sys_language_uid
  17.                                 }
  18.                         }
  19.                         INHALT_RAND = CONTENT
  20.                         INHALT_RAND {
  21.                                 table = tt_content
  22.                                 select {
  23.                                         where = colPos = 3
  24.                                         orderBy = sorting
  25.                                         languageField = sys_language_uid
  26.                                 }
  27.                         }
  28.                 }
  29.         }
  30. }

In den Zeilen 1-3 wird die Seite 'page' mit einer zwingend anzugebenden typeNum definiert.

In Zeile 4 wird an Position 10 der Seite (hier die einzige Position) ein Template ausgegeben. Dieses Template kommt aus einer Datei, die wir vorher z.B. im Fileadmin im Ordner templates angelegt haben (Zeile 7).

Damit Sie z.B. in der Datei designvorlage.tmpl sowohl das Layout der Website sowie ein weiteres Template für eine Druckansicht speichern können, bietet Typo3 die Möglichkeit, einen Bereich aus dem Template zu extrahieren (Zeile 8).

Ein Template kann nun Marker enthalten. Diese haben in der Designvorlage immer drei '#' vor und hinter dem in Großbuchstaben geschriebenen Markernamen. In TypoScript werden diese Marker dann allerdings ohne die '#' angegeben.
Wie Sie sehen können, sind die Abschnitte INHALT_NORMAL und INHALT_RAND bis auf den Wert von colPos völlig gleich.


Kommentare von registrierten Benutzern:

Kommentar von: L.M.Seifert

03. 12. 2009, 12:18
Sehr interessant...habe als Anfänger auch Probleme mit Typo3! Bis jetzt alles mit Hilfe von "Praxiswissen Typo3" zum Laufen gebracht, nur bei der Ausgabe von Texten komme ich nicht klar. Muß das o.a. TypoScript-Setup nun in die "Root" eingebaut werden, oder kommt es als Template auf die jeweilige Seite (Homepage, Impressum etc.)? Ich komme da ein wenig durcheinander, da Zeile 1 + 2 ja schon in der "Root" stehen (PAGE)!
Nachdem ich durch's Experimentieren nun schon das vierte mal eine Installation auf dem Server vorgenommen habe, möchte ich nicht schon wieder was "schießen" ...icon_wink.gif... ist eh' schon schwer genug ohne IM/GM da mein Provider eine derartige Installation nicht zuläßt.
Grüße aus München an die 'gestreßten' Moderatoren[/HTML][/TYPOSCRIPT][/PHP]

Profil

Kommentar von: Andreas Mohr

11. 08. 2009, 12:37
Klasse: Kommentar von wyy!!!

Mit der folgenden Zeile kann man auch im Root Page Setup die Reihenfolge ändern:

Typoscript:Zeilennummerierung:  An / Aus

  1. mod.SHARED.colPos_list = 0,1,2,3,4,5


Ich habe leider noch nicht herausgefunden wie man ohne Layouts definiert zu haben die Bezeichnung der Spalten im Root Page Setup per Typo Script beeinflussen kann. Folgendes funktioniert dann nämlich nicht:

Typoscript:Zeilennummerierung:  An / Aus

  1. TCEFORM.pages.layout.altLabels.0 = Haupttext


Profil

Kommentar von: Jo

19. 06. 2009, 21:25
Spalte nicht anzeigen, wenn kein Content vorhanden:

Typoscript:Zeilennummerierung:  An / Aus

  1. temp.marginale_rechts < styles.content.getRight
  2. temp.marginale_rechts.stdWrap.required = 1
  3. temp.marginale_rechts.stdWrap.wrap = <div class="marginale_rechts">|</div>


Profil

Kommentar von: Hendrik

06. 04. 2008, 22:03
Interessant wäre noch zu wissen, wie man eine Spalte ausblendet, wenn kein Content vorhanden ist.

Ich hab nämlich jetzt nach dem Tutorial das Problem, daß ich auf Seiten ohne Content in "Rechts" eine leere Spalte am rechten Rand habe...

Profil

Kommentar von: Reinhold

06. 03. 2008, 22:49
Hat sich erledigt.. im Template fehlte etwas...

Profil

Kommentar von: Reinhold

06. 03. 2008, 22:40
Hey! Irgendwie macht ers bei mir nicht... Außer die "colPos = 0" will er mir nichts anzeigen!

Ich habe auch "template = FILE" gesetzt....

Profil

Kommentar von: BS

26. 02. 2008, 11:44
Vielen lieben Dank! Auch mir als absolutem "T3-Newbie" hat dieses kleine Tutorial sehr geholfen. Mir ging es ähnlich wie meinem Vorredner.

*Daumen verdammt hoch*icon_smile.gif

Profil

Kommentar von: tim

03. 02. 2008, 17:26
super!

eine sehr schönes Tutorial!

Profil

Kommentar von: Mario

24. 03. 2007, 22:16
Bei mir hats erst funktioniert nachdem ich template mit FILE deklariert habe!
Typoscript:Zeilennummerierung:  An / Aus

  1. template = FILE


Profil

Kommentar von: wyy

17. 07. 2006, 15:37
Mann kann Spalten sogar völlig frei definieren:

In die Datei typo3conf/extTables.php:
Php:Zeilennummerierung:  An / Aus

  1. // Spltenanzeige für alle pages
  2. t3lib_extMgm::addPageTSConfig('
  3. mod.SHARED.colPos_list = 0,1,2,3,4,5
  4. ');
  5. // Spaltenarray neu definieren (letzter Param ist sortierung im BE)
  6. $TCA["tt_content"]["columns"]["colPos"]["config"]["items"] = array (
  7. "0" => array ("Haupttext||Haupttext||||||||","0"),         //get
  8. "1" => array ("Spalte 1||Spalte 1||||||||","1"), //getLeft
  9. "2" => array ("Spalte 2||Spalte 2||||||||","2"), //getRight
  10. "3" => array ("Spalte 3||Spalte 3||||||||","3"), //getBorder
  11. "4" => array ("Spalte 4||Spalte 4||||||||","4"), //getAdditional
  12. );


nun muss das TS-Template die Natürlich auch finden:
Typoscript:Zeilennummerierung:  An / Aus

  1. styles.content.getAdditional < styles.content.get
  2. styles.content.getAdditional.select.where = colPos=4

Ganz einfach, ohne Extensions, Fehlerfrei

Profil

Kommentar von: just2b

26. 07. 2005, 13:14
bestimmten Inhalt mehrfach verwenden - Angabe von ID des/der Seitenelemente:

marks.XY = RECORDS
marks.XY {
tables = tt_content
source = ID1, ID2, ID3
dontCheckPid = 1
}
- - - - - - - - - - - - - - - -
Bestimmten Inhalt mehrfach verwenden - Angabe von Seiten-ID (+ Angabe von Colpos):
marks.XY = CONTENT
marks.XY {
table = tt_content
select {
pidInList = ID1, ID2
orderBy = sorting
where = colPos= 0
}
}


Kommentar von: Forman

23. 05. 2005, 13:19
Man kann die Anzahl der Spalten im Backend mit folgendem Zusatz in der TSconfig der Root-Seite reduzieren:
Typoscript:Zeilennummerierung:  An / Aus

  1. mod.SHARED.colPos_list = [Nummer der Spalten]

Bei "Nummer der Spalten" muss man einfach die oben beschriebenen Nummern eingeben (0=Normal,..). Wichtig hierbei ist auch die Reihenfolge, denn diese wird 1:1 umgesetzt,



Kommentar von: clivot

06. 05. 2005, 11:43
Das stimme ich Kesonic zu.
Ich hätte nur noch gerne gewusst, wie ich die Anzahl der Spalten reduzieren kann. Ich würde im Backend gerne nur Normal und Rechts erscheinen lassen, aber nur bei einem bestimmten Template


Kommentar von: Kesonic

02. 05. 2005, 21:04
Danke!
Ich beschäftige mich erst seit kurzem mit Typo3 und habe div. Dokumentationen und 2 Bücher über Typo3 angelesen bzw. bin dabei.
Komischerweise habe ich auf diese grundlegende und so naheliegende Frage noch nie eine so kompakte und verständliche Antwort bekommen wie hier!




Seite drucken
 
TYPO3 Hosting in der Version 4.3.2 kostenlos bei Mittwald CM Service testen

TYPO3 4.3.2 jetzt testen

Testen Sie die neue TYPO3 Version 4.3.2 kostenlos für einen Monat


Entwicklerschulungen

  • Espelkamp:
    Mit., 17.03.10 - Fre., 19.03.10
  • Berlin:
    Mit., 21.04.10 - Fre., 23.04.10
  • Köln:
    Mon., 21.06.10 - Mit., 23.06.10