Inhalt

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/
    }
  }
}
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

      }
    }
  }
}