TYPO3 Plugin:

datamints_solarcalculator

EXT: datamints_solarcalculator

Diese Erweiterung stellt den Solarrechner zur Verfügung.

Die Erweiterung ist weitgehend in sich geschlossen, was bedeutet, dass Sie nur eine minimale Konfiguration benötigen, um sie auszuführen:

  • Statische TypoScript-Vorlage zu Ihrer Website hinzufügen
  • Speicherpfade anpassen
  • Sitename setzen (um die richtige CSS-Datei einzubinden)

Konzepte

Dies ist eine lose Beschreibung einiger der Schlüsselkonzepte der Erweiterung:

Fragen zu

Die Liste der möglichen Fragen ist in der Regel in TypoScript definiert, wobei die (internen) Namen der Fragen verwendet werden; alles zu Fragen (Fragendefinitionen, Avatarreaktionen, etc.) wird später unter diesem Namen angezeigt.

Anhand des Namens können Sie die Frage definieren, indem Sie einen entsprechenden Datenbankeintrag anlegen (siehe unten); dieser Datensatz definiert Folgendes die Art der Frage (z.B. eine einfache Eingabe oder eine Auswahl aus einigen Optionen) und ihr Verhalten (z.B. welche Werte berücksichtigt werden) gültig).

Den Hauptplugins der Erweiterung, d.h. denjenigen, die die Fragen anzeigen, werden Fragen basierend auf ihrem Namen zugeordnet und dann die Definition zu übernehmen, um die Ergebnisse zu liefern und das Verhalten der Website zu kontrollieren.

Informationen über Fragen werden von den Plugins auf den Seiten gesammelt; die geparsten Informationen dazu werden in so genannten registrierungseinträge, die später für den Zugriff auf Daten verwendet werden.

Der Fragename wird auch verwendet, um das Verhalten des Avatars zu definieren.

Datenverarbeitung

Alle Daten von Fragen werden in einem Session-Datenobjekt gespeichert, das aus einem Identifikator besteht (der im Benutzer sitzung) und einen datenbankbasierten Datensatz, der ein serialisiertes Array aller Daten enthält.

Der Zugriff auf die Daten erfolgt über einige Hilfsklassen, die Ihnen den gesamten Datensatz zur Verfügung stellen oder Einzelwerte nachschlagen können, basierend auf fragenamen.

Schleifen

Fragen können mit einem speziellen Kennzeichen versehen werden, das sie zu Schleifendefinitionspunkten macht; dies bedeutet, dass der Wert der Frage kann später im Seitenbaum verwendet werden, um eine Reihe von Fragen so oft wie der Wert der Schleifen-Definitionspunkte durchlaufen zu lassen was wir tun sollen.

Schleifen werden durch unsichtbare Seiten definiert, die das Loop-Plugin enthalten (siehe unten).

Daten für Schleifen werden in einem Unterbereich der Sitzungsdaten gespeichert; Hilfsklassen kennen Schleifen und können so auf einfache Weise verwendet werden auf Daten aus Schleifen zugreifen.

Gekennzeichneter Inhalt

Um ein einfaches Überschreiben von Inhalten für eine Microsite zu ermöglichen, verwenden wir ein Konzept von Tags; das bedeutet, dass wir Kategorien zuweisen zu Inhaltselementen, wobei die Kategorien ein spezielles Tag-Feld haben. In den Vorlagen können wir dann eine spezielle Ansicht verwenden helfer bei der Darstellung von Inhalten basierend auf einem Tag (z.B. für Mail-Fußzeilen, Informationen über Produkte, etc.).

Daten

Die Erweiterung verwendet zwei Hauptdatenquellen:

  • TypoScript: Alles, was nicht benötigt wird, um vom Kunden bearbeitet werden zu können, ist in TypoScript enthalten; dazu gehören auch Daten für die Produktkalkulation sowie Dateien, Mailadressen, etc.; die TypoScript-Dateien sind gut kommentiert und sollten daher gut kommentiert werden genügend Informationen zur Verfügung stellen, um zu verstehen, was vor sich geht.
  • Datenbank: Alles, was über das TYPO3-Backend editierbar sein muss, wird in Datenbanktabellen gespeichert; dazu gehören auch Fragen, avatar-Reaktionen, etc.; eine kurze Beschreibung aller Tabellen folgt.

Tische

Die Erweiterung verwendet neue Tabellen, erweitert aber auch bestehende aus dem TYPO3-Kern (die teilweise erweitert sind):

Tabellen der Erweiterung

  • tx_datamintssolarrechner_domain_model_sessiondata: Speichert die Sitzungsdaten (d.h. alle Antworten und Entscheidungen) die ein Benutzer auf seinem Weg durch den Rechner generiert
  • tx_datamintssolarrechner_domain_modell_frage: Enthält die Definition einer Frage, d.h. deren Bezeichnung, Auswahlmöglichkeiten, austrittsbedingungen, etc.
  • tx_datamintssolarrechner_domain_modell_wahl: Definiert eine einzige Auswahl für eine Frage des Typs select
  • tx_datamintssolarrechner_domain_modell_hersteller: Hersteller einer Produktkomponente (nie wirklich verwendet)
  • tx_datamintssolarrechner_domain_model_product: Ein einzelnes Produkt (entweder mit oder ohne Batterie) zusammen mit dem Bild, beschreibung und preise
  • tx_datamintssolarrechner_domain_model_condition: Eine Bedingung wertet die Antwort auf eine Frage mit einem bestimmten Wert aus unter Verwendung eines definierbaren Operators; wird in der Frage zur Überprüfung der Gültigkeit und im Avatar zur Bestimmung seiner Reaktion verwendet
  • tx_datamintssolarrechner_domain_modell_avatar_reaktion: Die Reaktion eines Avatars besteht aus Bedingungen und Verhaltensweisen
  • tx_datamintssolarrechner_domain_modell_avatar_statement: Eine Avatar-Anweisung wird für Seiten ohne Frage verwendet darauf (z.B. die Übersichtsseite)
  • tx_datamintssolarrechner_domain_modell_avatar_verhalten: Definiert das Aussehen eines Avatars mit einer CSS-Klasse
  • tx_datamintssolarrechner_domain_modell_preis: Sonderstrompreis für die verbleibende Stromaufnahme; ist kombiniert mit Preiskonditionen und dann im Rechner verwendet, um den tatsächlichen Strompreis zu ermitteln
  • tx_datamintssolarrechner_domain_modell_preiskondition: Bedingung, die festlegt, welcher Strompreis zu erwarten ist für die verbleibende Leistungsaufnahme verwendet wird

Externe Tabellen, die verwendet und erweitert werden

  • fe_users: Diese Tabelle wird um viele Felder erweitert, die die Zusatzinformationen aus dem Auftrag übernehmen
  • sys_category: Wird um eine Überschrift und ein Tag-Feld erweitert, das für die Darstellung von Inhalten nach Tags verwendet wird
  • seiten: Wird mit einem neuen Flag versehen, um den Fortschrittsbalken auf einer Seite zu stoppen
  • tt_content: Wird um zwei neue Felder erweitert, um festzulegen, ob ein Inhaltsdatensatz für eines der folgenden Felder angezeigt werden soll modi "Kaufen" oder "Mieten"

Plugins

Die Erweiterung enthält einige Plugins, die hier kurz beschrieben werden:

  • Paket: Zeigt die Frage und den verbleibenden Prozess für das Ziel eines Paketverkaufs an
  • Vereinfacht: Ist eine vereinfachte Version mit weniger Fragen und nur einem Kontaktformular am Ende
  • Inhalt: Zeigt Inhalte in verschiedenen Formen an
  • Tasten: Zeigt Tasten zum Vor- und Zurückgehen an
  • Bezeichner: Zeigt die Sitzungskennung zusammen mit der Option, zu einer anderen Sitzung zu wechseln; auch über Ajax verwendet um die Klartextkennung für zusätzliche Informationen zu erhalten, die in einer Powermail-Mail dargestellt werden
  • Schleife: Definiert den Start- und Endpunkt einer Schleife

Die meisten Plugins haben eine FlexForm-Konfiguration; diese sollte in den meisten Fällen selbsterklärend sein, so dass eine detaillierte Beschreibung möglich ist der FlexForms bleibt hier außen vor.

Vermögenswerte

Definition

CSS wird über Less in one file per microsite generiert; in Resources/Public/Less gibt es für jede Microsite eine Datei, die einige Variablen für Farben setzt und die globale Definitionen beinhaltet; während der Kompilierung führt dies zu einem einzigen CSS-Datei für jede Microsite.

Die resultierende CSS-Datei wird dann per TypoScript eingebunden, basierend auf einer Konstanten, die den Sitenamen enthält (d.h. den Ordnernamen der Microsite).

Gebäude

JavaScript und CSS werden mit Gulp erstellt; um den Prozess auszuführen, wechseln Sie in das Erweiterungsverzeichnis, installieren Sie die erforderlichen Module durch Eingabe von

npm installieren

und starten Sie die Schluckaufgabe mit

schluckuhr

Die Überwachungsaufgabe führt alle Aufgaben einmal aus, dann sucht sie nach Dateiänderungen und kompiliert bei Bedarf Dateien.

Skripte synchronisieren

Für eine einfachere Synchronisation gibt es einfache Shell-Skripte, die den Erweiterungscode mit dem aktuellen Live- und Testlauf synchronisieren server; die Skripte verwenden rsync in Kombination mit der SSH-Authentifizierung des öffentlichen Schlüssels, so dass Sie diese erst kopieren müssen, wenn Sie Ihre SSH Public Key zum jeweiligen Server (unter Unix können Sie dazu den Befehl ssh-copy-id verwenden).

Notizen

  • Das Plugin kann Schleifen von Daten verarbeiten, aber NICHT verschachtelte Schleifen!

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


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