2016-05-13 11 views
2

Ich habe ein großes Teaser-Bild oben auf der Seite. Der Autor kann im Backend auswählen, ob das Teaserbild statisch sein soll oder eine animierte Slideshow. Ich benutze Bootstrap für die Diashow btw.TYPO3: Automatische Verpackung CASE by page.layout

Die Auswahl an Seite erscheint> Bearbeiten> Erscheinungsbild
Rootpage TSConfig:

TCEFORM.pages { 
    layout.altLabels.1 = Default (with Slideshow) 
    layout.altLabels.0 = Default 
} 

Jetzt ist es ein bisschen schwieriger wird.
Um den Bootstrap-Schieberegler zum Laufen zu bringen, müssen Sie eine äußere Umhüllung und jede Folie auch eingewickelt haben. Dies ist, was ich bisher habe:

page.10.variables { 
    teaser < styles.content.get 
    teaser.select.where = colPos = 0 
    teaser.stdWrap.required = 1 
    teaser.stdWrap.wrap { 
     cObject = CASE 
     cObject { 
      key.field = layout 

      default = TEXT 
      default.value = | 

      1 = TEXT 
      1.value = <div id="teaser" ...>|</div> ### shortened 
     } 
    } 

    teaser.renderObj.stdWrap.wrap { 
     cObject = CASE 
     cObject { 
      key.field = layout 

      default = TEXT 
      default.value = | 

      1 = TEXT 
      1.value = <div class="item">|</div> 
     } 
    } 
} 

Die erste teaser.stdWrap.wrap funktioniert wie ein Zauber. Bei Auswahl des Frontend-Layouts wird der Teaser entsprechend umbrochen.
Aber die teaser.renderObj.stdWrap.wrap will nicht funktionieren. Vor allem, weil ich denke, dass der Schlüssel des CASE nicht das Frontend-Layout ist, sondern das Layout des Inhaltselements. Wie ändere ich das?

Zweite Frage. Dies ist, wie derzeit die Wraps aussehen (oder wie sie aussehen würden, wenn der TS oben wie beabsichtigt funktionieren wird):

<div class="item"> 
    <div id="c14"> 
     <div class="ce-textpic ce-right ce-intext"> 
      <div class="ce-gallery" data-ce-columns="1" data-ce-images="1"> 
       <div class="ce-row"> 
        <div class="ce-column"> 
         <div class="ce-media"> 
          <img src="img.jpg" width="1150" height="632" alt=""> 
         </div> 
        </div> 
       </div> 
      </div> 
     <div class="ce-bodytext"></div> 
    </div> 
</div> 

Gibt es eine Möglichkeit, es mehr oder weniger so aussehen zu machen?

<div class="item"> 
    <img class="slide" src="img.jpg"> 
</div> 

Der Kunde wünscht keine Beschriftungen oder Text haben, so kann er ignoriert werden.

Ich benutze TYPO3 7.6.6 mit fluid_styled_content.

Antwort

3

So ist die Antwort für die 1. Frage:

Sie können die "getText" Datentyp in TypoScript verwenden. Siehe in Dokument here.

Es hat eine vordefinierte Variable für den aktuellen Seiteneintrag. So einfache Änderung das zweite Schlüsselattribut so:

key.data = page:layout 

Aber wenn Sie das System mit fluid_styled_content einsetzen, dann können Sie einfach Flüssigkeit, um dieses Problem zu lösen. (Es können Sie das Layout mit data.layout Zugriff)

die zweite Frage zu beantworten:

Ja. Es ist möglich, dass Sie einen Blick in die Erweiterung fluid_styled_content werfen müssen. Dort finden Sie eine Menge über die Vorlagen, Layouts und die Elemente. Sie können sie einfach mit Ihren Vorlagen überschreiben und Sie können alle nicht gewünschten div innen loswerden.

Um dies zu tun, kann ich Ihnen eine deutsche video empfehlen.

+0

Was für ein Zufall - ich bin Deutscher;) Das Video hat mir sehr geholfen. Ich habe gerade eine flüssige Bedingung hinzugefügt, um die Dinge anders zu verpacken, wenn das FE-Layout anders ist. Vielen Dank! – Norman