[TYPO3-german] Struktureller Aufbau, Blogansicht
bernd wilke
t3ng at bernd-wilke.net
Thu Sep 17 14:51:16 CEST 2015
Am 17.09.15 um 13:48 schrieb Ben Ner:
> Ich habe das PageTS entfernt und der Installation das css_styled_content
> und meine distribution hinzugefügt.
>
> In der Configuration/TypoScript/setup.txt steht folgendes:
> [code]
> <INCLUDE_TYPOSCRIPT:source="FILE:
> EXT:trend_distribution/Configuration/TypoScript/Setup/page.ts">
> <INCLUDE_TYPOSCRIPT:source="FILE:
> EXT:trend_distribution/Configuration/TypoScript/Setup/libs.ts">
> [/code]
>
> page.ts:
> [code]
> page = PAGE
> #page.config.metaCharset = utf-8
> page{
> config{
> metaCharset = utf-8
> additionalHeaders = Content-Type:text/html;charset=utf-8
> }
>
[...]
>
> 10 = FLUIDTEMPLATE
> 10{
> file =
> EXT:trend_distribution/Resources/Private/Template/index.html
> layoutRootPath = EXT:trend_distribution/Resources/Private/Layouts/
> partialRootPath =
> EXT:trend_distribution/Resources/Private/Partials/
> variables{
> hallo = TEXT
> hallo.value = Hallo welt
> content < styles.content.get
[1]
> }
> }
>
> }
> [/code]
>
> libs.ts: (erzeugt ein Menu mit dropdowns, habe ich mir nur schonmal
> angeschaut, wird so nicht benötigt)
> [code]
> lib.field_topmenu = HMENU
> lib.field_topmenu{
> entryLevel = 0
> 1 = TMENU
> 1{
> wrap = <ul class="nav navbar-nav"> | </ul>
> noBlur = 1
> NO = 1
> NO{
> wrapItemAndSub = <li> | </li>
> stdWrap.htmlSpecialChars = 1
> ATagTitle.field = title
> }
> ACT <.NO
> ACT{
> wrapItemAndSub = <li class="active"> | </li>
> }
> }
> }
>
> lib.field_submenu = HMENU
> lib.field_submenu{
> entryLevel = 0
> 1 = TMENU
> 1{
> expAll = 1
> wrap = <ul class="nav navbar-nav"> | </ul>
> noBlur = 1
> NO = 1
> NO{
> wrapItemAndSub = <li> | </li>
> stdWrap.htmlSpecialChars = 1
> ATagTitle.field = title
> }
> ACT <.NO
> ACT{
> wrapItemAndSub = <li class="active"> | </li>
> }
> IFSUB <.NO
> IFSUB{
> allWrap = <!!==:>|
> wrapItemAndSub = <li class="dropdown">|</li>
> ATagBeforeWrap = 1
> linkWrap = |�<b class="caret"></b>
> ATagParams = class="dropdown-toggle" data-toggle="dropdown"
> }
> ACTIFSUB <.IFSUB
> ACTIFSUB{
> allWrap = <!!==:>|
> }
> }
>
> 2 = TMENU
> 2{
> wrap = <ul class="dropdown-menu" role="menu"
> aria-labelledby="dLabel">|</ul>
> expAll = 1
> NO = 1
> NO{
> allWrap = <li>|</li>
> stdWrap.htmlSpecialChars = 1
> }
> ACT <.NO
> ACT{
> ATagParams = class="active"
> allWrap = <li class="active">|</li>
> }
> }
> }
> [/code]
>
> resources/private/template/index.html:
> [code]
> <f:layout name="Default" />
> <f:section name="page">
> <nav class="navbar navbar-inverse navbar-fixed-top">
> <div class="container">
> <div class="navbar-header">
> <button type="button" class="navbar-toggle collapsed"
> data-toggle="collapse" data-target=".navbar-collapse">
> <span class="sr-only">Toggle navigation</span>
> <span class="icon-bar"></span>
> <span class="icon-bar"></span>
> <span class="icon-bar"></span>
> </button>
> <a class="navbar-brand" href="#">Project name</a>
> </div>
> <div class="collapse navbar-collapse">
> <f:cObject typoscriptObjectPath="lib.field_topmenu" />
[*]
> </div>
> </div>
> </nav>
>
> <div class="container">
>
> <div class="container">
> <div class="navbar-header">
> <button type="button" class="navbar-toggle"
> data-toggle="collapse" data-target=".navbarsub-collapse">
> <span class="sr-only">Toggle navigation</span>
> <span class="icon-bar"></span>
> <span class="icon-bar"></span>
> <span class="icon-bar"></span>
> </button>
> <a class="navbar-brand" href="#">Project name</a>
> </div>
> <div class="collapse navbar-collapse navbarsub-collapse">
> <f:cObject typoscriptObjectPath="lib.field_submenu" />
[*]
> </div>
> </div>
>
> <div class="starter-template">
> <h1>{hallo}</h1>
> <p class="lead"><f:format.raw>{content}</f:format.raw></p>
> </div>
>
> </div>
> </f:section>
> [/code]
>
> wie wäre in diesem Fall eine gute Vorgehensweise?
[*] so etwas hab ich jetzt schon öfters gesehen. Ich bin mir nicht
sicher ob das so optimal ist.
Ich würde es anders realisieren (es gibt mal wieder diverse Lösungswege,
vielleicht ist es ja egal, vielleicht beeinflusst es aber auch die
Render-/ Response-Zeiten. vielleicht kann das mal wer testen?)
grundsätzlich versuche ich mein TS kleiner zu halten:
dazu verwende ich bevorzugt temp.* Objekte, die ich final irgendwo
kopiere. zb.
temp.field_topmenu = HMENU
temp.field_topmenu {
:
}
um später (Reihenfolge der includes beachten!) kopiert zu werden:
page.10.variables {
:
field_topmenu < temp.field_topmenu
}
(Wenn das gesamte TS zusammengeparst wurde werden alle temp.* Objekte
gelöscht und mit dem restliche Konfigurations-Array wird das Rendering
gestartet.)
dadurch habe ich das Menu fertig in einer Fluid-Variablen vorliegen.
Achtung: im Fluid-Template wird das dann mit dem VH format.raw eingebunden:
{field_topmenu->f:format.raw()}
was nur eine andere Schreibweise ist für
<f:format.raw>{field_topmenu}</f:format.raw>
bernd
--
http://www.pi-phi.de/cheatsheet.html
More information about the TYPO3-german
mailing list