Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Typo3 V6:Wie erstelle ich einen Container für Inhaltselemente? (ohne Fernseher)

Ich bin der Autor der Fluid-Erweiterungssuite (flux, fluidcontent, fluidpages usw.) und möchte Ihnen natürlich helfen, mehr über die Verwendung von FluidContent zur Erstellung von FCEs zu erfahren. Es ist wirklich nicht so fortgeschritten, wie man befürchten könnte. Zumindest ist es viel kompakter als das obige Beispiel. Das Folgende erzielt das gleiche Ergebnis wie Ihr Beispiel in FluidContent:

TypoScript (statisch geladen:css_styled_content, fluid_content)

plugin.tx_fed.fce.yourname {
    templateRootPath = fileadmin/Templates # if you don't want to use an extension (1)
    # partial and layout root paths not defined (2)
}

In Bezug auf (1) sollten Sie wirklich, wirklich. Die Verwendung einer Erweiterung trennt die von Ihren Benutzern hochgeladenen Medien usw. von Ihren Website-Inhalten. Wenn Sie dies stattdessen tun, verwenden Sie einfach einen EXT:...-Pfad zum Ordner Private Ressourcen. Und zu (2) sind diese Pfade nur notwendig, wenn Sie tatsächlich Teiltöne verwenden möchten.

Dann die Vorlagendatei selbst (wird automatisch erkannt, wenn der Pfad, in dem sich die Datei befindet, in TS hinzugefügt wird):

{namespace flux=Tx_Flux_ViewHelpers}
<f:layout name="Content" />
<f:section name="Configuration">
    <flux:flexform id="columns" label="Columns" icon="path/to/iconfile.jpg">
        <flux:flexform.grid>
            <flux:flexform.grid.row>
                <flux:flexform.grid.column>
                    <flux:flexform.content name="left" label="Left content" />
                </flux:flexform.grid.column>
                <flux:flexform.grid.column>
                    <flux:flexform.content name="right" label="Right content" />
                </flux:flexform.grid.column>
            </flux:flexform.grid.row>
        </flux:flexform.grid>
    </flux:flexform>
</f:section>
<f:section name="Preview">
    <flux:widget.grid />
</f:section>
<f:section name="Main">
    <div class="row">
        <div class="span6">
            <flux:flexform.renderContent area="left" />
        </div>
        <div class="span6">
            <flux:flexform.renderContent area="right" />
        </div>
    </div>
</f:section>

Wie Sie sehen, steht es Ihnen völlig frei, beliebiges HTML hinzuzufügen, beliebige ViewHelper zu verwenden (sogar TS-Objekte zu rendern, wenn das Ihr Ding ist). Um weitere Inhaltselemente hinzuzufügen, fügen Sie einfach neue Vorlagendateien hinzu - sie werden automatisch erkannt.

Aber es funktioniert anders als IRRE (das Sie auch können mit Flux-Feldern erreichen - lassen Sie es mich wissen, wenn Sie eine Demo davon sehen möchten):Es ermöglicht Ihnen, das native Drag-n-Drop in TYPO3 zu verwenden, um Ihre untergeordneten Inhaltselemente in tatsächlichen Inhaltscontainern zu platzieren - wie Sie es früher getan haben mit Fernseher.

Daher kommt Fluid Content dem Fernsehen wahrscheinlich am nächsten.

Da Flux übertrieben ist, möchte ich Ihnen eine Vorstellung davon geben, was es tatsächlich leistet:

  • Zwischengespeichertes Lesen von TS, um Pfade zu kennen
  • Zwischengespeicherte Listen erkannter Vorlagen
  • Fluid speichert natives PHP, Flux verwendet Fluid nur zum Speichern der Konfiguration (was bedeutet, dass es durchgehend natives PHP ist)
  • Flux selbst registriert einen Hook-Abonnenten, der auf das Speichern von Inhalten reagiert, was das Backend (unmerklich) verlangsamt
  • Flux selbst erzeugt keine Last auf dem FE mit einer Ausnahme:Wenn in ungecachten Plugins (FluidContent wird gecacht!) kann Flux den nativen PHP-Cache-Code aufrufen, um Konfigurationen zu lesen.
  • FluidContent besteht aus einem extrem einfachen Controller; die Ausgabe wird vollständig zwischengespeichert.
  • Möglicherweise möchten Sie die VHS-ViewHelper-Sammlung hinzufügen - sie selbst erzeugt absolut keine Last:Sie verwendet nur Ressourcen, wo Sie ihre ViewHelper verwenden. Es enthält einen Haufen ViewHelper, von denen ich sicher bin, dass Sie sie nützlich finden werden.

Es mag auf den ersten Blick überwältigend aussehen, aber ich garantiere Ihnen, dass es weniger zu wissen und zu merken gibt als in pibase, FlexForm XML, TS oder nativen Extbase-Plugins. Wenn Sie noch mehr Sicherheitsnetz wünschen, empfehle ich dringend die Verwendung von XSD-Schemas in Ihrem Editor - dies bringt Ihnen die automatische Vervollständigung des speziellen <flux:....> Tags und andere.

Allerdings:Sie müssen ein wenig über die Logik von Fluid lernen:was Layouts und Partials sind (Sie werden diese höchstwahrscheinlich irgendwann verwenden wollen) und wie Sie die speziellen Tags verwenden und auf Variablen verweisen (die in benötigt werden andere Anwendungsfälle - aber nicht der vorliegende; es erfordert nur einfache ViewHelper-Tags).

Ich hoffe das hilft. Und dass ich deine Angst verringert habe, dass Flux übertrieben und zu viel zu lernen ist;)

Prost,
Claus alias. NamelessCoder