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 generierttx_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 selecttx_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 preisetx_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 verwendettx_datamintssolarrechner_domain_modell_avatar_reaktion
: Die Reaktion eines Avatars besteht aus Bedingungen und Verhaltensweisentx_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-Klassetx_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 ermittelntx_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 übernehmensys_category:
Wird um eine Überschrift und ein Tag-Feld erweitert, das für die Darstellung von Inhalten nach Tags verwendet wirdseiten
: Wird mit einem neuen Flag versehen, um den Fortschrittsbalken auf einer Seite zu stoppentt_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 anVereinfacht
: Ist eine vereinfachte Version mit weniger Fragen und nur einem Kontaktformular am EndeInhalt
: Zeigt Inhalte in verschiedenen Formen anTasten
: Zeigt Tasten zum Vor- und Zurückgehen anBezeichner
: 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 werdenSchleife:
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.
[DependciesAndConflicts]