TYPO3 Plugin:

fluidbackend

Fluid Backend: Flux Backend-Module

Paketstatus:

Framework-Status:

Das Fluid Backend verwendet Flux-Formulare als Backend-Module, die Daten in einer Vielzahl von Zielen und Zielarten speichern können.

Diese drei Codeteile ergeben zusammen ein neues Backend-Modul über das Fluid-Backend:

// ext_tables.php
\FluidTYPO3\Flux\Core::registerProviderExtensionKey('MyVendor.Myextension','Backend');
// Klassen/Controller/BackendController/BackendController
namensraum MyVendor\Myextension\Controller;
verwenden Sie FluidTYPO3\Fluidbackend\Controller\AbstractBackendController;
klasse BackendController erweitert AbstractBackendController {

}
<!-- Ressourcen/Private/Vorlagen/Backend/Example.html -->
{namespace flux=FluidTYPO3\Flux\ViewHelpers}
<f:layout name="Backend" />
<f:section name="Konfiguration">
    <flux:form id="mymodule">
        <!-- Die Optionen, die die Integration regeln -->
        <flux:form.option name="Fluidbackend" value="{
            moduleGroup:'mygroupnameoderexistierendeGruppe',
            modulePosition:'after:web',
            modulePageTree: 1}" (Seitenbaum) />

        <!-- Die Felder, die das Formular enthalten wird -->
        <flux:field.field.input name="inputfield" />

        <Die Leitung(en), die die Daten verarbeiten sollen -->
        <flux:pipe.flashMessage title="Win!" message="You win!" />
    </flux:form>
</f:section>
<f:section name="Main">
    <Wenn du einen Inhalt vor dem Formular haben willst..... -->
    <flux:form.render form="{form}"" />
    <!-- ...oder danach, hier ist der Ort, wo man es hinstellen kann -->
</f:section>

Konzept

Das Fluid Backend verwendet eine mit Flux angereicherte Fluid-Vorlage, die denjenigen ähnelt, die von anderen Flux-Features wie Fluidcontent und Fluidpages verwendet werden, und verwandelt die Flux-Formulardefinition innerhalb dieser Vorlage in ein vollwertiges Backend-Modul. Und wie Fluidcontent und Fluidpages, Fluidbackend erfordert auch, dass Sie Ihre Vorlagen innerhalb einer sogenannten Provider Extension versenden.

Fluidbackend benötigt eine Controller-Klasse - Ihr Modul muss noch als eigenes Backend-Modul in TYPO3 registriert sein, sondern eher als die Eingabe der gesamten Konfiguration, die diese Module benötigen (viel Boilerplate Code), verwendet Fluidbackend Flux zum Lesen von die Anleitung zur Registrierung der Vorlage als Backend-Modul. Diese Optionen definieren Sie innerhalb der Vorlage und zwar wie folgt mit Fluid-Inhalten und Fluid-Seiten kann ein Integrator diese Vorlagen später ersetzen, zusätzliche Felder hinzufügen, Datenverarbeitung etc.

Das Fluid Backend wurde entwickelt, um die 80% der Use Cases bewusst anzupassen und die Komplexität gering zu halten. Es handelt sich also nicht um einen Ersatz für fortgeschrittene Backend-Module - es ist nur eine Möglichkeit, sehr schnell ein Modul basierend auf einem Formular zu erstellen, das Daten speichert und verarbeitet.

Wie funktioniert es?

Der Entwicklerfluss des Fluid Backends sieht wie folgt aus:

  1. Der Entwickler registriert die Provider Extension bei Flux mit dem Controller-Namen Backend.
  2. Der Entwickler erstellt ein Formular in einer Vorlage mit Moduloptionen und Pipes, die Daten verarbeiten.
  3. Fluid Backend verbindet sich mit TYPO3 Backend Rendering und verarbeitet Backend Provider Extensions.
  4. Die Flux-Formular-Instanz aus jeder Vorlage wird abgerufen.
  5. Die in diesem Formular definierten Optionen werden verwendet, um das Modulsymbol, die Platzierung, die Gruppe usw. anzugeben.
  6. Das Modul wird in die Liste der verfügbaren TYPO3-Backend-Module aufgenommen.
  7. Die Schritte 3-5 werden mit jeder Vorlagendatei wiederholt, die eine gültige und aktivierte Formulardefinition enthält.

Und der Benutzerfluss ist wie folgt:

  1. Der Benutzer gibt das Backend-Modul ein.
  2. Die Vorlage, die diesem Modul entspricht, wird gerendert.
  3. Der Benutzer füllt das Formular aus, das in der Vorlage definiert wurde.
  4. Der Benutzer sendet die Formulardaten.
  5. Die BackendController-Aktion saveAction wird aufgerufen.
  6. Fluidbackend liest die Formularinstanz.
  7. Alle Ein- und Ausgabeverfahren, die in der Flussform als Rohre definiert sind, werden ausgeführt.
  8. Der Benutzer wird in das Formular zurückgeschickt.

Zusätzlich zur Weitergabe der Daten durch alle Pipes speichert das Fluid-Backend auch einen Datenbankeintrag (derzeit in PID-Null). Die die in diesem Datensatz gespeicherten Daten können dann abgerufen werden. Der Datensatz verwendet die Prinzipien des Extbase Domänenmodells und kann angehängt werden an andere Domänensätze von anderen Erweiterungen, wenn Sie einen gespeicherten Datensatz an eine oder mehrere Ihrer Modellinstanzen binden möchten.

Es gibt zwei Möglichkeiten, den gespeicherten Datensatz manuell zu erreichen:

<!-- in Fluid -->

{flux:form.data(Tabelle:'tx_fluidbackend_domain_model_configuration',
    feld:'Konfiguration', uid: uidOfSavedRecord) -> v:var.set(name: 'myData')}}
/ / In PHP

// $this->configurationRepository ist ein injiziertes \FluidTYPO3\Fluidbackend\Domain\Repository\ConfigurationRepository
$uid = 123; // Uid des gespeicherten Datensatzes.
/** @var $settingsRecord \FluidTYPO3\Fluidbackend\Domain\Model\Configuration */
$settingsRecord = $this->configurationRepository->findByUid($uid);
$configuration = (array) $settingsRecord->getConfiguration();

Was sind "Rohre"?

Die Rohre sind ein Konzept von Flux, das im Wesentlichen eine Handhabung definiert, die Input akzeptiert und Output liefert. Ein Rohr kann die empfangenen Daten ändern, oder es kann eine Aktion auslösen, ohne die Daten zu ändern. Im Inneren ist eine Pipe eine einfache Klasse, die Folgendes hat ein Verfahren, das die Daten als Eingabe akzeptiert und von dem erwartet wird, dass es die Daten zurückgibt, ob geändert oder nicht. Flux liefert dann ViewHelpers, das die folgenden Eigenschaften aufweist lassen Sie Entwickler Pipes mit der Flussform verknüpfen. Jede Leitung kann so konfiguriert werden, dass sie entweder vor der Steuerungsaktion oder vor der Steuerungsaktion wirkt aufgerufen oder nach dem Aufruf, unter Verwendung eines Richtungsparameters.

Wenn die Rohre ausgeführt werden, durchlaufen die Eingangsdaten jedes Rohr in der Reihenfolge, in der sie definiert wurden. Wenn eine Pipe konvertiert wird die Daten, dann werden die konvertierten Daten ab diesem Zeitpunkt übergeben und alle nächsten Pipes erhalten nur die konvertierten Daten.

Da die Rohre in der Vorlage definiert sind, können sie mit f:if Bedingungen und jedem Parameter jedes Rohres gesteuert werden kann individuell gesteuert werden. Neue Leitungen können hinzugefügt und bestehende entfernt/deaktiviert werden.

Fluidbackend verwendet dies dann bei der Übermittlung der Formulardaten. Die Formularinstanz wird abgerufen und daraus werden alle Pipe-Instanzen ermittelt abgeholt und verarbeitet. Zu jedem Zeitpunkt können die Rohre geändert werden - zum Beispiel im Controller, nachdem Daten gesendet wurden. Auf Rohre kann mit $form->getOutlet()->getPipesIn() oder $form->getOutlet()->getPipesOut() zugegriffen werden, in die sich Rohre befinden gruppiert nach ihrem Richtungsparameter.

Der Flussmittel beinhaltet einige Rohre:

  • TypeConverterPipe - konvertiert die Eingabe in einen anderen Ausgabetyp.
  • FlashMessagePipe - versendet eine FlashMessage mit ausgewähltem Titel/Message/Schwere.
  • EmailPipe - sendet eine E-Mail mit dem ausgewählten Betreff/Sender/Empfänger.
  • ControllerPipe - ruft eine benutzerdefinierte Steuerungsaktion mit den gebuchten Daten als Eingabe auf.

Sie als Entwickler können Ihre eigenen Pipe-Implementierungen erstellen und implementieren. Um dies zu tun:

  1. Zur Implementierung der PipeInterface von Flux.
  2. Um eine ViewHelper-Klasse zu erstellen, die AbstractFormViewHelper aus Flux untergliedert.
  3. Um das ViewHelper zu erreichen, machen Sie $this->getForm()->getOutlet()->addPipeIn($pipe) (oder addPipeOut($pipe)).
  4. Alternativ können Sie in Ihrem BackendController $this->provider->getForm($this->getRecord())->getOutlet()->addPipeIn($pipe) verwenden

Wenn Sie möchten, dass Ihre Pipe durch die Vorlage gesteuert wird, fügen Sie ihr einen ViewHelper hinzu. Andernfalls brauchst du nur die Klasse.

Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.

Verteilung:FLUIDBACKEND ist auf

0.07 % aller TYPO3 installiert.

  • 0.13 % aller TYPO3 8.7.x Installationen installiert
  • 0.07 % aller TYPO3 7.6.x Installationen installiert
  • 25 % aller TYPO3 7.2.x Installationen installiert
  • 0.1 % aller TYPO3 6.2.x Installationen installiert
  • 0.03 % aller TYPO3 4.7.x Installationen installiert
  • 0.01 % aller TYPO3 4.5.x Installationen installiert
  • 0.51 % aller TYPO3 4.3.x Installationen installiert
  • 0.39 % aller TYPO3 4.1.x Installationen installiert

Aktualität:FLUIDBACKEND ist auf dem neusten Stand (v.1.0.1) bei

11.54 % aller TYPO3 Installationen

  • 0 % aller TYPO3 9.5.x Installationen
  • 0 % aller TYPO3 9.3.x Installationen
  • 0 % aller TYPO3 9.2.x Installationen
  • 0.02 % aller TYPO3 8.7.x Installationen
  • 0.02 % aller TYPO3 7.6.x Installationen
  • 0 % aller TYPO3 7.5.x Installationen
  • 0 % aller TYPO3 7.4.x Installationen
  • 0 % aller TYPO3 7.3.x Installationen
  • 0 % aller TYPO3 7.2.x Installationen
  • 0 % aller TYPO3 7.1.x Installationen
  • 0 % aller TYPO3 7.0.x Installationen
  • 0.01 % aller TYPO3 6.2.x Installationen
  • 0 % aller TYPO3 6.1.x Installationen
  • 0 % aller TYPO3 6.0.x Installationen
  • 0 % aller TYPO3 5.0.x Installationen
  • 0 % aller TYPO3 4.7.x Installationen
  • 0 % aller TYPO3 4.6.x Installationen
  • 0 % aller TYPO3 4.5.x Installationen
  • 0 % aller TYPO3 4.4.x Installationen
  • 0 % aller TYPO3 4.3.x Installationen
  • 0 % aller TYPO3 4.2.x Installationen
  • 0 % aller TYPO3 4.1.x Installationen
  • 0 % aller TYPO3 4.0.x Installationen
  • 0 % aller TYPO3 3.5.x Installationen

FLUIDBACKEND Version:Verteilung nach installierten Versionen

  • 42.86 % FLUIDBACKEND v.1.1.0
  • 42.86 % FLUIDBACKEND v.1.0.1
  • 14.29 % FLUIDBACKEND v.0.9.1

PHP Version:FLUIDBACKEND wird benutzt mit

  • 16.67 % PHP/7.1
  • 16.67 % PHP/5.6
  • 16.67 % PHP/5.4
  • 33.33 % PHP/5.3
  • 16.67 % PHP/5.2

Gosign-Responsive Index: TYPO3 Installationen nutzen FLUIDBACKEND zu

  • 42 % wenn der Gosign-Responsive-Index zwischen 80 % und 100 % ist
  • 8 % wenn der Gosign-Responsive-Index zwischen 60 % und 80 % ist
  • 15 % wenn der Gosign-Responsive-Index zwischen 40 % und 60 % ist
  • 35 % wenn der Gosign-Responsive-Index zwischen 20 % und 40 % ist
  • 0 % wenn der Gosign-Responsive-Index zwischen 0 % und 20 % ist

Pagespeed: TYPO3 Installationen nutzen FLUIDBACKEND zu

  • 15 % wenn der Pagespeed zwischen 80 % und 100 % ist
  • 62 % wenn der Pagespeed zwischen 60 % und 80 % ist
  • 8 % wenn der Pagespeed zwischen 40 % und 60 % ist
  • 12 % wenn der Pagespeed zwischen 20 % und 40 % ist
  • 8 % wenn der Pagespeed zwischen 0 % und 20 % ist


Stichprobe n=37058 von Gosign gecrawlte TYPO3-Seiten mit den Top-Level-Domains <.de/.ch/.at>