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
Letzte ÜberarbeitungBeide Seiten, nächste Überarbeitung
typo3:verschiedenes [2014/03/21 21:05] – [Headlines mit Klassen versehen] admintypo3:verschiedenes [2017/05/10 21:08] – registerPageTSConfigFile 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> 
 + 
 +==== registerPageTSConfigFile und INCLUDE_TYPOSCRIPT ==== 
 + 
 +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. 
 + 
 +**Configuration/TCA/Overrides/pages.php** 
 +<code php> 
 +<?php 
 +defined('TYPO3_MODE') or die(); 
 + 
 +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerPageTSConfigFile( 
 +        'basetemplate8', // Extension-Key 
 +        'Configuration/TSconfig/Page.t3s', // Datei-Pfad 
 +        'Template Extension: Page TSconfig' // Titel 
 +); 
 +</code> 
 + 
 +**Configuration/TSconfig/Page.t3s** 
 +<code typoscript> 
 +// funktioniert nicht: 
 +<INCLUDE_TYPOSCRIPT: source="DIR: ./Page" extensions="t3s"> 
 + 
 +// so gehts: 
 +<INCLUDE_TYPOSCRIPT: source="DIR:EXT:basetemplate8/Configuration/TSconfig/Page" extensions="t3s"> 
 +<INCLUDE_TYPOSCRIPT: source="FILE:EXT:basetemplate8/Configuration/TSconfig/Page/BackendLayouts.t3s"> 
 +</code> 
 + 
 +Quelle: [[https://forge.typo3.org/issues/79737|Bug #79737: Registered pageTSconfig file won't allow relative paths for include - Core - TYPO3 Forge]] 
 ---- ----
  
Zeile 35: Zeile 78:
 </code> </code>
  
----- 
  
-===== Headlines mit Klassen versehen ===== 
- 
-//css_styled_content// gibt Überschriften aus dem Feld //Header// wie folgt aus: 
- 
-<code html> 
-<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//. 
- 
-Mit diesem TypoScript wird folgendes erreicht:  
-  * 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. 
- 
-<code typoscript> 
-lib.stdheader { 
- 3 > 
- 3 = LOAD_REGISTER 
- 3.headerClass.cObject = COA 
- 3.headerClass.cObject { 
- 10.cObject = CASE 
- 10.cObject { 
- key.field = header_layout 
- 0 = TEXT 
- 0 { 
- value = header-first header-1 
- if.value = 1 
- if.equals.data = cObj:parentRecordNumber 
- noTrimWrap = | class="|"| 
- } 
- default = TEXT 
- default { 
- value = header-first header-{field:header_layout} 
- if.value = 1 
- if.equals.data = cObj:parentRecordNumber 
- stdWrap.insertData = 1 
- noTrimWrap = | class="|"| 
- } 
- } 
- stdWrap.ifEmpty.cObject = CASE 
- stdWrap.ifEmpty.cObject { 
- key.field = header_layout 
- 0 = TEXT 
- 0 { 
- value = header-1 
- noTrimWrap = | class="|"| 
- } 
- default = TEXT 
- default { 
- value = header-{field:header_layout} 
- insertData = 1 
- noTrimWrap = | class="|"| 
- } 
- } 
- } 
- stdWrap.dataWrap > 
-} 
-</code> 
- 
-<WRAP center round info 80%> 
-==== Erklärung: ==== 
-Wir passen //css_styled_content// an. Das Register mit der Überschriften-Klasse //csc-firstHeader// wird überschrieben von einem COA, welches 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> 
-lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines { 
- addAttributes.H1.class = header-1 
- addAttributes.H2.class = header-2 
- addAttributes.H3.class = header-3 
-} 
-</code> 
- 
-Ergebnis: 
-<code html> 
- 
-</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.txt · Zuletzt geändert: 2017/05/10 22:02 von admin