Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


typoscript_constants [2023.12.12 16:02] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== TypoScript Constants ======
  
 +
 +In diesem Teil des TypoScript Setup werden Konstanten für die Webseite definiert. 
 +Dies sind z. B. Suchpfade für Templates, mit denen die Layouts von Extensions überschrieben werden.
 +Hier können auch Angaben zu bestimmten PageUIDs gemacht werden, also die IDs von Seiten wie z. B. dem Ziel der Suchfunktion. Da sich diese Seiten in verschiedenen Installationen wie z. B. der DEV und der PROD Version einer Webseite unterscheiden können, muss von Fall zu Fall unterschieden werden, ob es sinnvoll ist, diese Information in diese Datei oder das Page Template zu legen.
 +
 +
 +===== Konstanten für Bilder =====
 +
 +
 +Bilder werden auf einer TYPO3 Webseite als Standard maximal 600 px breit dargestellt. Diese Einstellung sollte man in den Konstanten überschreiben.
 +
 +  styles.content.imgtext.maxWInText = 2000
 +  styles.content.textmedia.maxWInText = 2000
 +  styles.content.imgtext.linkWrap.width = 2000
 +  styles.content.imgtext.maxW = 2000
 +  styles.content.textmedia.maxW = 2000
 +  
 +  tt_content.image.20.maxW = 2000
 +  tt_content.image.20.maxH = 2000
 +  tt_content.image.20.maxWInText = 2000
 +
 +
 +===== Pfade für Templates definieren =====
 +
 +Über TypoScript hat man die charmante Möglichkeit, Templates einer Extension zu überschreiben. Dies ist vor allem bei Extensions externer Anbieter sinnvoll, die man aus dem TYPO3 Repository (TER) heruntergeladen und auf der eigenen Webseite einbindet. Mit dieser Methode hat man die volle Kontrolle über das Layout, behält jedoch die Option, die Extension jederzeit updaten zu können, um z. B. Sicherheitslücken zu schließen. 
 +Die Konfiguration der Suchpfade für Templates, Layouts und Partials geschieht im günstigsten Fall über die eigene Provider Extension und dort über das standardmäßig eingebundene TypoScript in der ''constants.txt''.
 +
 +
 +==== Beispiel IBK Provider Extension ====
 +
 +
 +
 +  plugin.tx_ibkprovider {
 +    view {
 +      # cat=plugin.tx_ibkprovider/file; type=string; label=Path to template root (FE)
 +      templateRootPaths {
 +        10 = EXT:alteextension/Resources/Private/Templates/      
 +        20 = EXT:ibkprovider/Resources/Private/Templates/
 +      }
 +      # cat=plugin.tx_ibkprovider/file; type=string; label=Path to template partials (FE)
 +      partialRootPaths {
 +        10 = EXT:alteextension/Resources/Private/Partials/      
 +        20 = EXT:ibkprovider/Resources/Private/Partials/
 +      }
 +      # cat=plugin.tx_ibkprovider/file; type=string; label=Path to template layouts (FE)
 +      layoutRootPaths {
 +        10 = EXT:alteextension/Resources/Private/Layouts/      
 +        20 = EXT:ibkprovider/Resources/Private/Layouts/
 +      }
 +    }
 +  }
 +
 +==== Beispiel KE Facetted Search ====
 +
 +
 +  plugin.tx_kesearch_pi1 {
 +    templateRootPath = EXT:ibkprovider/Resources/Private/Ke_search/Templates/
 +    templateRootPaths {
 +      10 = EXT:ibkprovider/Resources/Private/Ke_search/Templates/
 +    }
 +  }
 +
 +Für **neuere** Versionen der **KE_SEARCH** kann man ein solches Objekt verwenden:
 +
 +  plugin.tx_kesearch.templateRootPath = EXT:ibkprovider/Resources/Private/Ke_search/Templates/
 +==== Beispiel News Extension ====
 +
 +
 +  plugin.tx_news {
 +    view {
 +      # cat=plugin.tx_news/file; type=string; label=Path to template root (FE)
 +      templateRootPath = EXT:news/Resources/Private/Templates/
 +      # cat=plugin.tx_news/file; type=string; label=Path to template partials (FE)
 +      partialRootPath = EXT:news/Resources/Private/Partials/
 +      # cat=plugin.tx_news/file; type=string; label=Path to template layouts (FE)
 +      layoutRootPath = EXT:news/Resources/Private/Layouts/
 +    }
 +  }
 +  
 +===== Settings definieren =====
 +
 +Über die Settings lassen sich eine Reihe von Werten für die Webseite oder die eingebundenen Extensions setzen. Dies hat den Vorteil, dass man all diese Einstellungen und Konfigurationen an einer einzigen Stelle speichern kann.
 +
 +
 +==== IBK Blog: Werte für Settings ====
 +
 +
 +  plugin.tx_ibkblog {
 +    persistence {
 +      # cat=plugin.tx_ibkblog//a; type=string; label=Default storage PID Blog Data:Speicherort für die Daten des Blog
 +      storagePid = 49
 +    }
 +    pages {
 +      # PageUID for login; label=Default UID Login Page:UID der Seite für das Login zum Blog
 +      pageLoginUID = 75
 +      # PageUID for Start page Blog; label=Default UID Start Page for Blog:UID der Startseite für den Blog
 +      pageStartUID = 75
 +    }
 +  }
 +==== IBK Blog: Settings in Setup abfragen ====
 +
 +Settings wie z. B. der Speicherort für eine Extension oder die PageUIDs für bestimmte Seiten können in der ''Setup'' Datei des TypoScript der Webseite oder einer Extension abgefragt werden. Diese Daten können dann nun wieder im //Repository// einer //Extension// ebenfalls abgefragt und weiterverarbeitet sowie einem //Fluid Template// weitergereicht werden.
 +Hier das Beispiel des IBK Blog.
 +
 +  plugin.tx_ibkblog {
 +    settings {
 +      storagePid = {$plugin.tx_ibkblog.persistence.storagePid}
 +      pageLoginUID = {$plugin.tx_ibkblog.pages.pageLoginUID}
 +      pageStartUID = {$plugin.tx_ibkblog.pages.pageStartUID}
 +    }
 +  }
 +
 +===== Powermail Formular einspaltig =====
 +
 +Powermail bastelt Eingabemasken für seine Formulare aus einer Vielzahl von Variablen und Elementen zusammen, was das System sehr flexibel macht. Um das Standardformular einspaltig zu gestalten, kann man in den Konstanten mehrere Einstellungen von Powermail überschreiben.
 +
 +  plugin.tx_powermail {
 +    settings {
 +      BasicCss = EXT:powermail/Resources/Public/Css/Basic.css
 +    
 +      styles {
 +        bootstrap {
 +          # cat=powermail_styles//0020; type=int; label= Number of columns
 +          numberOfColumns = 1
 +  
 +          # cat=powermail_styles//0110; type=text; label= Framework classname overall wrapping container field/label
 +          fieldAndLabelWrappingClasses = form-group col-md-12
 +  
 +          # cat=powermail_styles//0120; type=text; label= Framework classname wrapping container of a field
 +          fieldWrappingClasses = col-sm-12
 +  
 +          # cat=powermail_styles//0130; type=text; label= Framework classname fieldlabels
 +          labelClasses = control-label col-sm-12
 +  
 +          # cat=powermail_styles//0150; type=text; label= Framework classname fields with offset
 +          offsetClasses = col-sm-offset-0
 +  
 +        }
 +      }
 +    }
 +  }