Benutzer-Werkzeuge

Webseiten-Werkzeuge


typo3:verschiedenes

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
typo3:verschiedenes [2014/03/21 21:05] – [Headlines mit Klassen versehen] admintypo3:verschiedenes [2017/05/10 22:02] (aktuell) – Beliebig viele Spalten/Inhaltsbereiche in Front- und Backend admin
Zeile 1: Zeile 1:
 ===== Externes Typoscript einbinden ===== ===== Externes Typoscript einbinden =====
  
-<code typoscript><INCLUDE_TYPOSCRIPT:source="file:fileadmin/ordner/dateiname.t3s"></code+  * Pfade können relativ oder absolut sein 
-----+  * man kann auf Extensions verweisen (''EXT:''
 +  * man kann auch auch ganze Ordner auslesen (''DIR:''
 +  * es können Dateiendungen gefiltert werden (zB. nur //.t3s// auslesen; //.txt//-Dateien im selben Ordner könnten dann für aktuell inaktiven Code verwendet werden) 
 +  * Conditions sind möglich <wrap caution>ab TYPO3 7.6</wrap
 +  * auch für TSconfig verwendbar
  
 +<code typoscript>
 +<INCLUDE_TYPOSCRIPT: source="FILE:fileadmin/TypoScript/config.t3s">
 +<INCLUDE_TYPOSCRIPT: source="FILE:EXT:basetemplate8/Configuration/TypoScript/config.t3s">
 +<INCLUDE_TYPOSCRIPT: source="DIR: ./plugin">
 +<INCLUDE_TYPOSCRIPT: source="DIR:EXT:basetemplate8/Configuration/TypoScript">
 +<INCLUDE_TYPOSCRIPT: source="DIR: ../plugin" extensions="t3s">
 +<INCLUDE_TYPOSCRIPT: source="FILE:fileadmin/TypoScript/user.t3s" condition="[loginUser = *]">
 +</code>
  
-===== Mehr als 4 Spalten in Front- und Backend =====+==== registerPageTSConfigFile und INCLUDE_TYPOSCRIPT ====
  
-Für die vier Standard-Spalten in TYPO3 ist die Frontend-Ausgabe des Seiteninhalts schon in ''css_styled_content'' konfiguriertMit TypoScript kann diese Konfiguration einfach an die gewünschte Stelle kopiert werden:+Wenn man in einer Extension über ''registerPageTSConfigFile'' eine Datei lädt, in welcher mit ''INCLUDE_TYPOSCRIPT'' wieder eine Datei oder ein Ordner eingeschlossen wird, muss der Pfad dorthin **absolut** sein! Derzeit gibt es einen Bug, der relative Pfade in diesem Zusammenspiel verhindert.
  
-<code typoscript+**Configuration/TCA/Overrides/pages.php** 
-# colPos = 0: +<code php
-10 styles.content.get +<?php 
-# colPos = 1: +defined('TYPO3_MODE') or die(); 
-10 < styles.content.getLeft + 
-# colPos = 2+\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile( 
-10 < styles.content.getRight +        'basetemplate8', // Extension-Key 
-# colPos = 3+        'Configuration/TSconfig/Page.t3s', // Datei-Pfad 
-10 < styles.content.getBorder+        'Template ExtensionPage TSconfig' // Titel 
 +);
 </code> </code>
  
-Wer mehr Spalten benötigt, kann mit Backend-Layouts die gewünschte Menge sowie das Layout im Backend einstellenUm die Seiteninhalte der zusätzlichen Spalten im Frontend ausgeben zu können, benötigt man noch folgendes TypoScript. Diese Konfiguration ist identisch mit der in ''css_styled_content'' für die Standard-Spalten.+**Configuration/TSconfig/Page.t3s** 
 +<code typoscript> 
 +// funktioniert nicht: 
 +<INCLUDE_TYPOSCRIPT: source="DIR: ./Page" extensions="t3s">
  
-<code typoscript> +// so gehts: 
-page.10.marks.NEWCOLUMN CONTENT +<INCLUDE_TYPOSCRIPT: source="DIR:EXT:basetemplate8/Configuration/TSconfig/Page" extensions="t3s"> 
-page.10.marks.NEWCOLUMN { +<INCLUDE_TYPOSCRIPT: source="FILE:EXT:basetemplate8/Configuration/TSconfig/Page/BackendLayouts.t3s">
-  table tt_content +
-  select { +
-    orderBy sorting +
-    where = colPos=4 +
-    # Muss bei mehrsprachigen Websites gesetzt werden, sonst wird der Inhalt aller Sprachen ausgegeben. +
-    select.languageField = sys_language_uid +
-  } +
-}+
 </code> </code>
 +
 +Quelle: [[https://forge.typo3.org/issues/79737|Bug #79737: Registered pageTSconfig file won't allow relative paths for include - Core - TYPO3 Forge]]
  
 ---- ----
  
-===== Headlines mit Klassen versehen ===== 
  
-//css_styled_content// gibt Überschriften aus dem Feld //Header// wie folgt aus:+===== Beliebig viele Spalten/Inhaltsbereiche in Front- und Backend =====
  
-<code html> +Bei ''fluid_styled_content'' ist aus historischen Gründen noch das klassische ''styles.content.get'' für die Spalte //0// (''colPos'') vorkonfiguriert.
-<div class="csc-header csc-header-n1"> +
-  <h1 class="csc-firstHeader">Überschrift erster Ordnung, erste Überschrift auf Seite</h1> +
-</div> +
-<div class="csc-header csc-header-n2"> +
-  <h1>Überschrift erster Ordnung</h1> +
-</div> +
-<div class="csc-header csc-header-n3"> +
-  <h2>Überschrift zweiter Ordnung</h2> +
-</div> +
-</code>+
  
-Jede Überschrift wird also mit einem zusätzlichen //div//-Element umschlossen, welches eine allgemeine Klasse sowie eine fortlaufend nummerierte Klasse (//-n1// etc.) erhält. Die erste Überschrift auf jeder Seite erhält zudem die Klasse //csc-firstHeader//.+''page.10.variables.content_0 < styles.content.get'' wird also noch funktionieren. Die anderen drei Spalten aus ''css_styled_content'' gibt es allerdings nicht mehr.
  
-Mit diesem TypoScript wird folgendes erreicht:  +Neue Spalten können in TYPO3 aber auf einfache Weise angelegt werden. Mit Backend-Layouts lässt sich die gewünschte Menge sowie das Layout im Backend unter Web>Page einstellenEin Wizard hilft bei der Erstellung der Konfiguration. Für jeden Bereich gibt es einen frei wählbaren Namen sowie die Spaltennummer, die dem Datenbankfeld //colPos// in tt_content entspricht.
-  * Die div-Elemente werden komplett entfernt +
-  * Allen Überschriften wird direkt eine Klasse zugewiesen, die abhängig vom Wert im Feld //header_layout// ist. +
-  * Falls das Feld //header_layout// ''0'' (Default) zurückgibt, wird der Wert 1 genommen. +
-  * Die praktische Klasse der ersten Überschrift auf einer Seite bleibt erhalten.+
  
 +**Page TSconfig für BackendLayout:**
 <code typoscript> <code typoscript>
-lib.stdheader +mod.web_layout.BackendLayouts 
- 3 > +  1 { 
- LOAD_REGISTER +    title Example 
- 3.headerClass.cObject = COA +    icon = EXT:template_extension/Resources/Public/Images/BackendLayouts/2col.png 
- 3.headerClass.cObject +    config 
- 10.cObject = CASE +      backend_layout 
- 10.cObject +        colCount 2 
- key.field header_layout +        rowCount 2 
- TEXT +        rows 
- +          { 
- value = header-first header-+            columns { 
- if.value = +              { 
- if.equals.data cObj:parentRecordNumber +                name Header 
- noTrimWrap | class="|"| +                colspan 
- +                colPos 0 
- default = TEXT +              
- default +            } 
- value = header-first header-{field:header_layout} +          } 
- if.value = +          2 
- if.equals.data cObj:parentRecordNumber +            columns 
- stdWrap.insertData = 1 +              { 
- noTrimWrap = | class="|"+                name linke Spalte 
- +                colPos = 1 
- +              
- stdWrap.ifEmpty.cObject = CASE +              
- stdWrap.ifEmpty.cObject +                name rechte Spalte 
- key.field header_layout +                colPos 2 
- TEXT +              } 
- 0 { +            } 
- value = header-1 +          
- noTrimWrap = | class="|"+        
- +      
- default = TEXT +    
- default { +  }
- value = header-{field:header_layout+
- insertData = 1 +
- noTrimWrap = | class="|"+
- +
- +
- } +
- stdWrap.dataWrap >+
 } }
 </code> </code>
  
-<WRAP center round info 80%> +Um die Seiteninhalte der konfigurierten Spalten im Frontend ausgeben zu könnenbenötigt man dann noch folgendes TypoScript:
-==== Erklärung: ==== +
-Wir passen //css_styled_content// an. Das Register mit der Überschriften-Klasse //csc-firstHeader// wird überschrieben von einem COAwelches zwei CASE-Abfragen beinhaltet. Die Zuweisung von Klassen erfolgt nach **zwei Abhängigkeiten**: Dem Wert in //header_layout// (''CASE'') und dem Wert von //cObj:parentRecordNumber// (''IF'').+
  
-Das erste CASE-Objekt gibt nur dann einen Wert (also die Klassen) zurück, wenn der Wert aus //cObj:parentRecordNumber// mit ''1'' identisch ist. In diesem Fall handelt es sich dann um die erste Überschrift dieser Seite. Die erste Klasse wäre daher __header-first__, die zweite Klasse beinhaltet den Wert aus dem Feld //header_layout//. Da dies bedeuten würde, dass die Default-Überschrift die Klasse __header-0__ erhalten würde, korrigieren wir dies mit der CASE-Abfrage und weisen der Default-Überschrift den festen Wert __header-1__ zu. 
- 
-Wenn das erste CASE-Objekt keinen Wert ausgibt, weil es sich nicht um die erste Überschrift der Seite handelt, wird Dank ''ifEmpty'' der Wert des zweiten CASE-Objekts ausgegeben. Bis auf die fehlende if-Abfrage sind beide CASE-Objekte identisch. 
-</WRAP> 
- 
- 
-Das zweite TypoScript sorgt dafür, dass Überschriften aus dem RTE ebenfalls Klassen erhalten: 
 <code typoscript> <code typoscript>
-lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines { +page.10.variables.content_0 = CONTENT 
- addAttributes.H1.class header-1 +page.10.variables.content_0 { 
- addAttributes.H2.class header-2 +        table tt_content 
- addAttributes.H3.class header-3+        select.orderBy = sorting 
 +        select.where colPos=0 
 +        select.languageField sys_language_uid 
 +    }
 } }
-</code> 
  
-Ergebnis: +page.10.variables.content_1 page.10.variables.content_0 
-<code html>+page.10.variables.content_1.select.where = colPos=1
  
 +page.10.variables.content_2 < page.10.variables.content_0
 +page.10.variables.content_2.select.where = colPos=2
 </code> </code>
  
----- 
-===== Listenelemente im RTE um <span> ergänzen ===== 
  
-Hiermit lassen sich Auflistungszeichen und Text separat formatieren. 
-<html><ul><li style="color:red;list-style-type:disc"><span style="color:black;">Listenelement mit andersfarbigem Zeichen</span></li></ul></html> 
-**Setup:** 
-<code typoscript> 
-lib.parseFunc_RTE.externalBlocks := addToList(ol,ul,li) 
-lib.parseFunc_RTE.externalBlocks { 
- li.callRecursive = 1 
- li.callRecursive.alternativeWrap = <li><span>|</span></li> 
- li.stdWrap.HTMLparser { 
- allowTags = li,span,p 
- removeTags = p 
- } 
- ul.callRecursive = 1 
- ol.callRecursive = 1 
-} 
-</code> 
-**CSS:** 
-<code css> 
-li {color:red;} 
-li > span {color:black;} 
-</code> 
typo3/verschiedenes.1395432356.txt.gz · Zuletzt geändert: 2015/12/03 19:28 (Externe Bearbeitung)