Einleitung

Das Trainingssystem ist ein WordPress -Plugin zum Hosting einer Trainingsplattform auf WordPress-Basis. Trainingseinheiten lassen sich damit in Trainings, Lektionen und Seiten gliedern. Einzelne Trainings können für spezielle Benutzer*innen oder Gruppen von Benutzer*innen (z.B. Firmen oder Abteilungen) freigeschaltet werden. Es gelten die Voraussetzungen, die auch für WordPress gelten. Es ist empfohlen, das Theme Coachlight zu installieren. Das Trainingssystem verwendet Bootstrap , jQuery und Font Awesome .

Das Trainingssystem ist im Verbund eines Forschungsprojekts entstanden, in dem spezielle Inhalte zu integrieren waren. Aus diesem Grund enthält das System und die vorliegende Dokumentation vereinzelt Sonderlösungen, beispielsweise im Bereich des Layouts oder in Form von speziellen Skripten. Diese werden aber hier aufgeführt, um sie der Nutzung oder Weiterentwicklung zugänglich zu machen.

Serveranforderungen

Es gelten allgemein die Anforderungen an eine WordPress-Installation (siehe https://de.wordpress.org/about/requirements/ ). Folglich sollte PHP (min. 7.4.x) und MySQL (min. 5.6) installiert sein. Für größere Projekte ab ca. 100 Accounts wird empfohlen, dass das PHP-Memory-Limit einstellbar ist, beispielsweise auf 256MB. Die maximale Ausführungszeit ( max_execution_time ) sollte zudem auch einstellbar sein, beispielsweise auf mindestens 120 Sekunden bei einem Projekt ab etwa 10 Trainings mit je 50 Seiten.

Installation und Inbetriebnahme

Das Plugin kann ganz einfach über das WordPress-Backend und den Menüpunkt „Plugins–>Installieren“ installiert werden. Nachdem die ZIP-Datei über den Button „Plugin hochladen“ erfolgreich hochgeladen wurde, muss es nur noch aktiviert werden. Dass das funktioniert hat, erkennt man daran, dass im WordPress-Backend nun der Menüpunkt „Trainingssystem“ hinzugekommen ist.

Nachdem die WordPress-Installation aufgesetzt und das Plugin installiert wurde, sind noch einige wenige Schritte erforderlich, um die Plattform schließlich in Betrieb zu nehmen. Zunächst ist das Erzeugen eines Hauptmenüs empfehlenswert. Dies ist über das WordPress-Backend und den Punkt „Design–>Menüs“ möglich. Hier muss ein Menü mit einem beliebigen Titel wie z.B. „Hauptmenü“ erstellt werden. Beim Erstellen sollte darauf geachtet werden, dass die Checkbox „Primary Menu“ unter der Einstellung „Position in Theme“ gesetzt ist.
Sobald das Menü erstellt wurde, muss diesem mindestens ein Eintrag hinzugefügt werden. Dazu muss auf der linken Seite unter „Menüeinträge hinzufügen“ ein oder mehrere Elemente, z.B. eine neu erstellte Seite „Startseite“ oder „Home“, ausgewählt werden.
Um die Funktionen des Trainingssystems im Frontend zur Verfügung zu stellen, müssen dafür entsprechende Seiten ( Standardseiten ) erstellt werden. Dies muss nicht manuell durchgeführt werden, sondern kann über den Punkt „Trainingssystem->Einstellungen–>Standardseiten anlegen“ erledigt werden. Über den Punkt „Trainingssystem–>Einstellungen->Seitenzuteilung“ können die Funktionen den so erzeugten Seiten zugeteilt werden.
Wurde das Menü erzeugt, kann dieses in den Einstellungen des Trainingssystems im Abschnitt „Seitenzuteilung“ unter „Standardmenü anzeigen in (Menü)“ ausgewählt werden, um das Menü als Standardmenü auf der Plattform einzubinden. Wenn das Menü auf diese Weise eingefügt wurde, ist es möglich, bestimmte Menüpunkte wie bspw. Verwaltung oder Nachrichten optional ausblenden zu lassen.
Alternativ kann das Menü auch selbst erstellt werden. Dazu muss, wie zuvor bereits beschrieben, das Menü unter „Design–>Menüs“ nach Belieben zusammengestellt werden. Unter der Einstellung „Standardmenü anzeigen in (Menü)“ muss hier aber kein Menü, sondern die Option „nicht zugewiesen“ ausgewählt werden.

Um Probleme bei der Zugehörigkeit von Trainings, Lektionen sowie Seiten vorzubeugen, ist folgender Schritt notwendig: Wählt man über das Admin-Menü „Einstellungen“ und dann den Punkt „Permalinks“, sollte dort „Einfach“ ausgewählt sein. Falls nicht, sollte das entsprechend angepasst werden.

Inhaltsverzeichnis

  1. Grundlagen
    1.1 Trainings, Lektionen, Seiten
    1.2 User-Management
    1.3 Darstellungsempfehlungen für Trainingsseiten
    1.4 Plattform kopieren
    1.5 Alternative Themes
    1.6 Plugin-Vorschläge

  2. Standardseiten
    2.1 Profil-Seite
    2.2 Abzeichenübersicht
    2.3 Trainingsübersicht
    2.4 Trainingszuweisung
    2.5 Nutzerliste
    2.6 Trainingsvorlagen
    2.7 Firmenzuweisung
    2.8 CSV-Import
    2.9 Nutzer anlegen
    2.10 Freischaltecode
    2.11 Systemstatistiken
    2.12 Nachrichten
    2.13 Trainings Ex-/Import
    2.14 Unternehmen-Details
    2.15 Nutzer-Detail-Seite
    2.16 Nutzerdaten exportieren
    2.17 Coaching-/Supervisoren-Übersicht
    2.18 Datenexport

  3. Trainingsentwicklung: Interaktive Elemente
    3.1 Shortcode-Übersicht für interaktive Elemente
    3.2 Formulare
    3.3 Übungen
    3.4 Akkordeon
    3.5 Radio
    3.6 Quiz
    3.7 Radio-Buttons zurücksetzen
    3.8 Conditional Content
    3.9 Check Tables
    3.10 PDF-Dateien erzeugen
    3.11 Gefährdungsbeurteilung (GBU)
    3.12 Freigabe von Inhalten
    3.13 Coachingmodus-Formulare
    3.14 Ausgabe von Inhalten
    3.15 Anzeigen von Beiträgen
    3.16 Gamification-Elemente
    3.17 Weitere interaktive Elemente

  4. Trainingsentwicklung: Layout und visuelle Elemente
    4.1 Layout
    4.2 Shortcode-Übersicht für visuelle Elemente
    4.3 Icons
    4.4 Slideshow

  5. Weitere Elemente des Trainingssystems
    5.1 LimeSurvey-Anbindung
    5.2 Demo-Training
    5.3 Studien-Export
    5.4 Lieblingsübungen
    5.5 Zertifikate
    5.6 Hilfe-/Kontaktinformationen

  6. Entwicklung
    6.1 Allgemeine Hinweise zur Weiterentwicklung des Plugins
    6.2 Aufbau des Plugins
    6.3 Funktionalität hinzufügen
    6.4 Umgang mit Nachrichten vom System (Alerts)
    6.5 Design ändern
    6.6 Rollen und Rechte
    6.7 Einen Release erzeugen
    6.8 Code Samples
    6.9 PDF-Print
    6.10 Patch-Funktion

Grundlagen

Die Verwendung des Trainingssystems, also das Bereitstellen und das Erstellen von Inhalten, ist ohne Programmierkenntnisse möglich. Zur Erstellung von Inhalten muss das WordPress-Backend zugänglich sein. Das weitere Betreiben der Plattform und das Arbeiten mit Benutzer*innen ist über ein entsprechendes Menü im Frontend möglich, sodass nach Fertigstellung der Inhalte für eine geplante Plattform ausschließlich über das Frontend mit dem Trainingssystem gearbeitet werden kann.

Trainings, Lektionen, Seiten

Im Trainingssystem können Trainings zusammengestellt werden, die den Benutzer*innen bereitgestellt werden können. Ein Training gliedert sich in eine oder mehrere Lektionen. Diese unterteilen sich wiederum in eine oder mehrere Seiten.

gliederung_training.jpg

Trainings, Lektionen und Seiten können im WordPress-Backend angelegt werden. Über dem Menüpunkt „Trainings“ unter dem Reiter „Trainingssystem“ kann eine Übersicht über alle Trainings aufgerufen werden, die auf der Plattform angelegt wurden. Mit einem Klick auf die Schaltfläche „Neues Training“ öffnet sich eine neue Seite, auf der ein neues Training angelegt werden kann. Zunächst muss im obersten Eingabefeld ein Titel für das Training vergeben werden. Der Titel wird im gesamten System verwendet, um das Training zu identifizieren.

training_erstellen.PNG

Im Eingabefeld in der Mitte dieser Seite kann eine Kurzbeschreibung des Trainings eingefügt werden, welche in der Trainingsübersicht für das Training eingesehen werden kann. Diese Beschreibung kann hier genutzt werden, um den Benutzer*innen bspw. einen groben Überblick über den Inhalt des Trainings zu geben.

training_beschreibung_trainingsubersicht.PNG

Im dritten Eingabefeld können eine weitere Beschreibung oder auch Bilder eingefügt werden. Diese Inhalte werden in der Lektionsübersicht für ein Training angezeigt.

training_beschreibung_lektionsubersicht.PNG

Für jedes Training kann auch ein Beitragsbild ausgewählt werden, welches ebenfalls anstelle eines Standardbildes innerhalb der Trainingsübersicht angezeigt wird. Des Weiteren kann ein Training auch einer Kategorie zugeordnet werden. Dies wird relevant, wenn die Trainings in der Trainingsübersicht nach Kategorien gruppiert werden sollen (siehe den Abschnitt „Trainingsübersicht“ für weitere Informationen). Wurde ein Training mit den entsprechenden Informationen angelegt, muss dieses nur über den Button „Veröffentlichen“ veröffentlicht werden.
Im nächsten Schritt müssen eine oder mehrere Lektionen erstellt werden. Dies geschieht im WordPress-Backend über den Button „Neue Lektion“ über den Menüpunkt „Trainingssystem->Lektionen“. Hier muss nur ein Titel gewählt und der Button „Veröffentlichen“ geklickt werden, um die Lektion anzulegen.
Nun müssen Seiten für die erstellten Lektionen angelegt werden. Eine Seite kann im Trainingssystem über den Menüpunkt „Trainingssystem->Seiten“ durch Klick auf den Button „Neue Seite“ erstellt werden. Im sich öffnenden Fenster kann im Eingabefeld oben nun der Titel der Seite angegeben werden. Mittels des mittigen Textfeldes kann der Inhalt der Seite nach Belieben definiert werden.
Wurden nun ein Training, eine oder mehrere Lektionen sowie eine oder mehrere Seiten erstellt, müssen diese Elemente abschließend zu einem Training zusammengeschaltet werden. Dies ist im unteren Bereich der Übersicht für ein Training unter „Training zusammenstellen“ möglich. Mit „Lektion hinzufügen“ können hier Lektionen und nach Betätigung des Buttons „Seiten“ auch Seiten über einen entsprechenden Button hinzugefügt werden.

Das Ergebnis der Zusammenstellung bleibt stets ablesbar, da jeder Balken eine Lektion innerhalb des Trainings darstellt. Daneben kann für jede Lektion auch die Auflistung aller dazugehörigen Seiten über den entsprechenden Button eingeblendet werden.

Über den kleinen „-“-Button in der oberen rechten Ecke jedes Lektion-Balkens kann eine Lektion samt der dazugehörigen Seiten aus dem Training entfernt werden.

trainings_zusammenstellen.PNG

Es ist aus technischer Sicht davon abzuraten, eine Lektion in mehrere verschiedene Trainings zu integrieren.

User Management

Die Benutzer*innen können über das Frontend organisiert werden. Über den Menüpunkt „Verwaltung“ sind diesbezüglich verschiedene Optionen zugänglich.

Hinzufügen

Eine Tabelle aller registrierten Personen bildet den Kern der User-Verwaltung. In dieser sind auch Informationen zum Stand der jeweiligen Trainings oder zur Aktivität ablesbar. Weiterhin kann jede*r einzelne Benutzer*in ausgewählt werden, um weitere Details abzurufen. Das Hinzufügen von Benutzer*innen zur Plattform funktioniert einzeln oder als CSV-Import für eine größere Gruppe. Außerdem besteht die Möglichkeit, Benutzer*innen zu Firmen und Abteilungen zu gliedern und darüber in entsprechenden Trainings Gruppenauswertungen zu erhalten.

Trainings freigeben

Ist ein Training angelegt und ein*e Benutzer*in zur Plattform hinzugefügt, kann ganz individuell eine entsprechende Zusammenstellung an Trainings einem*r Benutzer*in zugewiesen werden. Diese Option ist entweder über den Menüpunkt „Trainings zuweisen“ oder über die Nutzer-Detail-Seite möglich. In der linken Spalte dieser zweigeteilten Seiten wird ein*e Benutzer*in ausgewählt, in der rechten Spalte erfolgt die Zusammenstellung der Trainings.

Ein Training kann in drei verschiedenen Trainingsmodi freigeschaltet werden:

Vorlagennutzer

Es können auch vorgefertigte Profile ( „Vorlagennutzer“ ) angelegt werden. Dies sind keine wirklichen Benutzer*innen, sondern Profile. Eine Zusammenstellung von verschiedenen Trainings kann einer Vorlage zugewiesen werden. Über Freischaltecodes ist eine solche Vorlage dann möglichen neuen Benutzer*innen bereitzustellen.

User-Modus

Der „User-Modus“ erlaubt das Betrachten der Eingaben in den Trainings, beispielsweise zu Analysezwecken durch einen Coach. Er kann über die Nutzer-Detail-Seite, welche über die zentrale Nutzerliste jeweils erreicht werden kann, gestartet werden. Navigiert man im aktiven User-Modus in ein Training, sind die Eingaben des*der jeweiligen Benutzer*in zu sehen.

user_modus.PNG

Es ist durch den roten Balken am oberen Rand der Seite stets erkennbar, für welche*n Benutzer*in man sich gerade im User-Modus befindet. Der User-Modus kann über den „Beenden“-Button in diesem roten Balken wieder verlassen werden.

Aktivität

Daneben können auch verschiedene Statistiken, beispielsweise Informationen darüber, welche Seiten wie lange besucht wurden, abgerufen werden.

Darstellungsempfehlungen für Trainingsseiten

Benennung von Trainingsseiten

Die Benennung der Seiten folgt bestenfalls dem Muster „Trainingsname + fortlaufende, dreistellige Nummer“.

Die Formulare folgen auch diesem Muster, um sie in der Formularliste schnell einer Seite zuordnen zu können.

Schrift in Trainingsseiten

Medien einbinden

Beim Erstellen von Trainingsseiten können Bilder über „Dateien hinzufügen“ eingebunden werden. Dateinamen sollten keine Umlaute enthalten, da dies bei Ex- und Importen von Trainings zu Fehlern führt. Die Größenverhältnisse sind global überschrieben. Jedes Bild ist damit so groß wie das übergeordnete Element (siehe Layout ). Im Sinne des Responsive-Design sorgt dies auch auf kleineren Bildschirmen für eine angemessene Darstellung. Beim Einbinden von Bildern ist es auch empfehleneswert, einen Alternativtext anzugeben, damit die Benutzer*innen Informationen über das Bild erhalten können, falls bspw. das Bild nicht geladen werden konnte oder falls ein Screen Reader genutzt wird. Ein Alternativtext für das Bild kann einerseits beim Einbinden über „Dateien hinzufügen“ im Textfeld „Alternativtext“ oder über das alt -Attribut für das <img> -Element angegeben werden.
Videos werden über „Dateien hinzufügen“ eingebunden. Auch hier sind die Größenverhältnisse global geregelt und Eintragungen im Tag unwirksam.
Audio-Sequenzen werden über „Dateien hinzufügen“ eingebunden.

Plattform kopieren (Duplizieren)

Um die Plattform zu kopieren bzw. zu Duplizieren benötigt es aufgrund der großen Datenmenge in der Datenbank ein separates Tool, da dies mit gewöhnlichen MySQL Exports nicht mehr zu bewerkstelligen ist. Im Folgenden sind diese Schritte kurz dokumentiert:

Alternative Themes

folgende Themes wurden mit dem Trainingssystem getestet:

Plugin-Vorschläge

Folgende zusätzliche Plugins werden bei der Nutzung des Trainingssystem-Plugins empfohlen:

Standardseiten

Es besteht die Möglichkeit, sogenannte Standardseiten im Frontend der Plattform zur Verfügung zu stellen. Hierbei handelt es sich um grundlegende Seiten, auf denen die Verwaltung, die Organisation und der generelle Betrieb der Plattform umgesetzt wird. Alle verfügbaren Standardseiten können unter „Trainingssystem->Einstellungen–>Standardseiten anlegen“ über den Button „Alle hinzufügen“ für die Plattform automatisch angelegt werden. Soll nur eine bestimmte Menge an Seiten hinzugefügt oder eine Seite ergänzt werden, kann dies über den Button „Individuell hinzufügen“ durchgeführt. Bei einem Klick auf diesen Button öffnet sich eine Liste über alle verfügbaren Standardseiten, welche über die jeweiligen Checkboxen ausgewählt werden können. Wurde eine Auswahl bestimmt, muss hier nur noch auf den Button „Hinzufügen“ geklickt werden, damit die gewählten Standardseiten der Plattform hinzugefügt werden. Bei Bedarf kann über den Haken „vorhandene ersetzen“ kann eine veraltete Version einer Seite ersetzt werden.
Alternativ können die einzelnen Seiten auch manuell via Shortcodes angelegt werden. Im folgenden Abschnitt werden die Shortcodes für die verfügbaren Standardseiten tabellarisch aufgeführt sowie die Funktionen der einzelnen Seiten beschrieben.

Shortcode Funktion Parameter
[tspv2_user_profil] Profil-Seite titel für individuelle Überschrift (optional, Default-Wert: „Mein Profil“)
[tspv2_abzeichen] Abzeichenübersicht titel für individuelle Überschrift (optional, Default-Wert: „Abzeichen“)
[tspv2_user_trainings] (ehemals [training_user_overview] ) Trainingsübersicht titel für individuelle Überschrift (optional, Default-Wert: „Meine Trainings“), grouped für eine Gruppierung nach Kategorien (optional, Default-Wert: „false“), category für das Anzeigen von Trainings der angegebenen Kategorie (optional, Default-Wert: „“), category_text zum Anzeigen eines Textes zwischen Überschrift der Kategorie und Trainings (optional, Default-Wert: „“)
[tspv2_coach_nutzer] Trainingszuweisung titel für individuelle Überschrift (optional, Default-Wert: „Trainingszuweisung“)
[tspv2_user_list] Nutzerliste titel für individuelle Überschrift (optional, Default-Wert: „Nutzerliste“)
[tspv2_vorlagen-user-grouper] Trainingsvorlagen titel für individuelle Überschrift (optional, Default-Wert: „Trainingsvorlagen“)
[tspv2_user_grouper] Firmenzuweisung titel für individuelle Überschrift (optional, Default-Wert: „Firmenzuweisung“)
[tspv2_csv_import] CSV-Import titel für individuelle Überschrift (optional, Default-Wert: „Teilnehmende importieren“)
[tspv2_create_user_manually] Nutzer anlegen titel für individuelle Überschrift (optional, Default-Wert: „Teilnehmende manuell hinzufügen“)
[tspv2_addregiserkey] Freischaltecode anlegen
[tspv2_showregiserkeylist] Freischaltecode-Übersicht
[tspv2_system_statistics] Systemstatistiken titel für individuelle Überschrift (optional, Default-Wert: „Systemstatistiken“)
[tspv2_mailbox] Nachrichten titel für individuelle Überschrift (optional, Default-Wert: „Nachrichten“)
[tspv2_trainings_ex_import] Trainings Ex-/Import titel für individuelle Überschrift (optional, Default-Wert: „Trainings Ex-/Import“)
[tspv2_company_details] Unternehmen-Details (Aufruf erfolgt separat für jede Firma über „Tortensymbol“-Button auf der Seite „Firmenzuweisung“ )
[tspv2_user_list_detail] Nutzer-Detail-Seite (Aufruf erfolgt über Nutzerliste oder Seite Coaching-Übersicht bzw. Supervisoren-Übersicht
[tspv2_user_results_export] Nutzerdaten exportieren
[tspv2_coaching_overview] Coaching-/Supervisoren-Übersicht titel für individuelle Überschrift (optional, Default-Wert: „Coaching-Übersicht“)
[tspv2_data_export] Datenexport titel für individuelle Überschrift (optional, Default-Wert: „Datenexport“)

Des Weiteren ist es möglich, im Backend via „Trainingssystem->Einstellungen–>Seitenzuteilung“ eigene Namen für die Menü-Einträge der einzelnen Standardseiten zu wählen. Dazu muss lediglich für die entsprechende Standardseite im Textfeld in der Spalte „Menübezeichnung“ eine neue Bezeichnung angegeben werden. Soll zusätzlich die Bezeichnung für die Seite im Tab des Browsers entsprechend angepasst werden, muss der Titel für diese im Backend unter „Seiten->Alle Seiten“ ebenfalls geändert werden.

Profil-Seite

Über den Shortcode [tspv2_user_profil] kann für Benutzer*innen eine Profil-Seite angelegt werden. Auf der Profil-Seite stehen folgende Funktionen zur Auswahl:

Der Shortcode [tspv2_user_profil] verfügt mit titel einen (optionalen) Parameter, mit welchem eine individuelle Überschrift für die Seite gewählt werden kann. Wird der Parameter nicht angegeben oder ist der Wert für diesen leer, wird der Default-Wert „Mein Profil“ genutzt.

Abzeichenübersicht

Mit dem Shortcode [tspv2_abzeichen] kann eine Übersicht über alle freigeschalteten Abzeichen (Badges) den Benutzer*innen bereitgestellt werden. Über den Parameter titel kann anstelle des Standardwerts „Abzeichen“ eine eigene Überschrift für diese Seite gewählt werden.
Die Übersicht führt Abzeichen für alle Trainings des*der Benutzer*in auf, sofern für das Training ein Abzeichen angelegt wurde. Jedes Abzeichen in der Übersicht stellt zusätzlich den Fortschritt im entsprechenden Training dar: Das Abzeichen wird zunächst in Grautönen angezeigt, sofern noch nicht alle Lektionen eines Trainings abgeschlossen wurden. Unterhalb des Abzeichens sind zudem kleine Punkte vorzufinden. Diese stellen die einzelnen Lektionen des Trainings dar und färben sich, sobald die entsprechende Lektion durch den*die Benutzer*in beendet wurde. Wurden alle Lektionen eines Trainings erfolgreich abgeschlossen, erscheint das Abzeichen schließlich in Farbe.

abzeichen_ubersicht.PNG

Um ein Abzeichen für ein Training einzustellen, muss dieses zunächst im Backend unter „Trainingssystem->Abzeichen“ angelegt werden. Neben dem Titel muss über das Dropdown-Menü auch ein Training für das Abzeichen ausgewählt werden. Über den Reiter „Beitragsbild“ kann für das Abzeichen zudem optional ein Bild festgelegt werden.

abzeichen_backend.PNG

Des Weiteren besteht die Möglichkeit, den Benutzer*innen über den Shortcode [tspv2_abzeichen_modal] im Training das entsprechende Abzeichen zu verleihen (siehe dazu den Abschnitt „Verleihung von Abzeichen“ ).

Trainingsübersicht

Über den Shortcode [tspv2_user_trainings] (ehemals [training_user_overview] ) kann für Benutzer*innen eine Übersicht aller zugewiesenen Trainings auf einer Seite eingebunden werden. Zusätzlich stehen für diesen Shortcode noch weitere (optionale) Parameter zur Verfügung, mit denen die Trainingsübersicht angepasst werden kann:

Beispiel für die Gruppierung von Trainings mit dem Parameter grouped :

[tspv2_user_trainings grouped="true"]

training_kategorien3.PNG

Beispiel für die Darstellung von Trainings einer bestimmten Kategorie mit den Parametern category und category_text :

[tspv2_user_trainings titel="Meine Fragebögen" category="Fragebögen" category_text="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua."]

training_kategorien4.PNG

Kategorien

Für Trainings können Kategorien angegeben werden, welche bspw. in der Trainingsübersicht zur Gruppierung von Trainings genutzt werden kann. Im Backend stehen dabei zwei Möglichkeiten zum Anlegen von Kategorien zur Verfügung:

  1. Auf der Seite zum Bearbeiten eines Trainings befindet sich ein Bereich mit dem Titel „Kategorien“. Hier kann für das Training eine zuvor erstellte Kategorie für das Training ausgewählt werden bzw. eine neue Kategorie angelegt werden.

training_kategorien.PNG

  1. Über den Reiter „Beiträge->Kategorien“ kann ebenfalls eine neue Kategorie erstellt werden, welche anschließend dem gewünschten Training zugeordnet werden muss. Außerdem ist es auf dieser Seite auch möglich, bereits bestehende Kategorien wieder zu löschen.
    Im Backend wird in der Trainingsübersicht zudem für jedes Training die Kategorie aufgeführt, sofern diesem eine zugeordnet wurde:

training_kategorien2.PNG

Trainingszuweisung

Mittels des Shortcodes [tspv2_coach_nutzer] kann die Funktionalität zum Zuweisen von Trainings in einer Seite eingebunden werden. Um Benutzer*innen über diese Funktion Trainings zuzuweisen, sind zwei grundlegende Schritte notwendig:

  1. Zunächst muss im Bereich „1. Teilnehmende auswählen“ ein oder mehrere Benutzer*innen ausgewählt werden, welchen die Trainings zugewiesen werden sollen. Dazu kann über die Suchfunktion entweder nach dem Benutzernamen oder der Studienteilnehmer-ID der Benutzer*innen gesucht werden. Wurde der*die gewünschte Benutzer*in gefunden, muss diese*r über den Button „hinzufügen“ der Liste an Teilnehmenden hinzugefügt werden. Werden mehrere Benutzer*innen auf diese Weise ausgewählt, erhält der*die oberste Benutzer*in in der Liste die Markierung „Master“. Beim Speichern von Trainings werden allen Benutzer*innen die Trainings des*der Benutzer*in mit der Markierung „Master“ zugewiesen.
  2. Im Bereich „2. Trainings zusammenstellen“ kann die Auswahl der Trainings erfolgen. Über den Button „Training auswählen“ kann aus dem sich öffnenden Dialog-Fenster ein oder mehrere Trainings der angezeigten Liste an Trainings hinzugefügt werden. Via Drag&Drop kann die Reihenfolge der Trainings in der Liste angepasst werden, wobei diese Reihenfolge auch in der Trainingsübersicht übernommen wird.
    Für jedes Training können für die ausgewählten Benutzer*innen noch einige Einstellungen vorgenommen werden: Zunächst kann über die drei Buttons „Individuell“, „Sequentiell“ und „Begleitet“ der Trainingsmodus für das Training ausgewählt werden. Über den Haken „E-Coaching aktivieren“ kann festgelegt werden, ob alle ausgewählten Benutzer*innen ein E-Coaching für das Training erhalten sollen. Über den Button „Unlock Coaching-Modus“ kann die „Sperre" aufgehoben werden, welche durch das Coachingmodus-Formular bei einmaliger Speicherung gesetzt wurde, sodass Benutzer*innen erneut die Möglichkeit haben, den gewünschten Coaching-Modus auszuwählen.
    Über das Dropdown-Menü „X Lektionen“ kann eingestellt werden, ob die Benutzer*innen für das gewählte Training alle Lektionen oder nur eine Auswahl sehen dürfen. Mit Klick auf den „-“-Button können den Benutzer*innen der Zugriff auf das Training entzogen werden.

trainingszuweisung.PNG

Standardmäßig wird als Titel für diese Seite „Trainingszuweisung“ genutzt. Mit dem Parameter titel kann ein alternativer Titel vergeben werden.

Nutzerliste

Mithilfe des Shortcodes [tspv2_user_list] kann einer Liste über alle Benutzer*innen auf einer Seite eingefügt werden. Für jede*n Benutzer*in werden dabei die Studienteilnehmner-ID (sofern vorhanden), der User-Name, die Firma (sofern zugeordnet), die mit dem Account vernüpfte E-Mail-Adresse, eine Liste an zugewiesenen Trainings, der letzte Login auf der Plattform sowie der Status des E-Coachings (grün: keine Probleme, rot: Benutzer*in wartet auf Feedback) aufgeführt.

nutzerliste_2.PNG

Zusätzlich ist es auch möglich, die Anzahl der Einträge an Benutzer*innen anzupassen. Über das Dropdown-Element in der rechten oberen Ecke kann die Anzahl an Elementen pro Seite festgelegt werden. Es sind hierbei die Werte 100 (Default-Wert), 250, 500, 1000 sowie „Alle“ auswählbar. Des Weiteren kann über die Such-Funktion auch nach einem Suchbegriff gesucht werden, welcher innerhalb der Einträge für die Spalten „Studien-TN-ID“, „User-Name“, „Firma“, „E-Mail-Adresse“ und „Zugewiesene Trainings“ gesucht wird. Die beiden Möglichkeiten zur Anpassungen der Anzahl an Einträgen können kombiniert werden.

Über den optionalen Parameter titel kann die Überschrift „Nutzerliste“ (Default-Wert) durch einen selbst gewählten Titel ausgetauscht werden.

Trainingsvorlagen

Mittels des Shortcodes [tspv2_vorlagen-user-grouper] kann eine Übersicht zum Erstellen und Bearbeiten von sogenannten Vorlagen-Nutzern eingebunden werden. Bei Vorlagen-Nutzern handelt es sich nicht um richtige Benutzer*innen, sondern eher um Profile, denen eine Zusammenstellung an verschiedenen Trainings zugewiesen kann. Über Freischaltcodes ist solch eine Trainings-Vorlage dann möglichen neuen Benutzer*innen bereitzustellen. Die Seite zur Übersicht aller Trainingsvorlagen gliedert sich in zwei Abschnitte:

Im linken Bereich mit dem Titel „1. Vorlage auswählen“ ist eine Übersicht über alle bereits erstellten Vorlagen-Nutzern aufgeführt. Neben dem Namen der Vorlage wird hier zudem der Name eines Coaches angezeigt, sofern dieser der Vorlage zugeordnet wurde. Außerdem besteht hier die Möglichkeit, bestehende Vorlagen-Nutzer zu bearbeiten („Stift“-Symbol) oder zu entfernen („Papierkorb“-Symbol). Über den Button „Vorlage hinzufügen“ unterhalb der Liste kann ein neuer Vorlagen-Nutzer angelegt werden. Im sich öffnenden Dialog-Fenster kann neben dem Namen der Vorlage auch optional ein Coach angegeben werden.
Auf der rechten Seite („2. Trainings zusammenstellen“) kann dem Vorlagen-Nutzer schließlich auf die gleiche Weise wie zuvor bei der Trainingszuweisung beschrieben eine Auswahl an Trainings zugeordnet werden.

trainingsvorlagen.PNG

Mit dem Attribut titel kann für diese Seite anstelle vom Default-Wert „Trainingsvorlagen“ eine eigene Überschrift angegeben werden.

Hinweis: Änderungen an Vorlagen-Nutzern wirken sich nicht rückwirkend, sondern nur auf zukünftige Accounts aus. Sollen Änderungen für einen Account vollzogen werden, muss dies über die Nutzer-Detail-Seite oder bei der Auswahl der Trainings über die Trainingszuweisung durchgeführt werden.

Firmenzuweisung

Im Trainingssystem können Benutzer*innen auch Firmen bzw. Gruppen und Abteilungen bzw. Untergruppen zugeordnet werden. Eine Übersicht über angelegte Firmen kann mittels des Shortcodes [tspv2_user_grouper] in eine Seite integriert werden. Die Übersicht zur Zuweisung von Firmen unterteilt sich in zwei Bereiche:
Im linken Abschnitt mit dem Titel „1. Unternehmen auswählen“ ist eine Übersicht über alle angelegten Firmen vorzufinden. Für jede angelegte Firma sind hier der Name der Firma und die Führungskraft sowie ein Krankenkassenadmin aufgeführt, sofern diese angegeben wurden. Des Weiteren befinden sich rechts für jede Firma noch drei Buttons:
Über den „Tortendiagramm“-Button können für die Firma weitere Informationen wie bspw. Statistiken eingesehen werden. Mittels des „Stift“-Buttons kann der Name der Firma sowie die Führungskraft und der Krankenkassenadmin angepasst werden und mit dem „Papierkorb“-Button kann die entsprechende Firma gelöscht werden. Mithilfe des Buttons "Unternehmen hinzufügen" unterhalb der Liste kann eine neue Firma angelegt werden. Neben dem Namen und der Führungskraft kann hier optional auch ein Krankenkassenadmin angegeben werden.
Hat man eine neue Firma erstellt bzw. eine bestehende Firma auf der linken Seite ausgewählt, erscheint auf der rechten Seite der Bereich zum Zusammenstellen von (Unter-)Gruppen mit dem Titel „2. Gruppen zusammenstellen“. Hier werden einerseits für die ausgewählte Firma bereits angelegte Gruppen aufgelistet, deren Mitglieder man über das jeweilige Dropdown-Menü einsehen kann, andererseits ist hier auch der Button „Gruppe hinzufügen“ vorzufinden, mit dem eine neue Gruppe für die Firma angelegt werden kann. Im sich öffnenden Dialog-Fenster kann hier neben dem Namen der Gruppe auch eine Auswahl an Mitglieder ausgewählt werden.
Des Weiteren ist es hier auch möglich, für jede Gruppe optional eine Teamleitung festzulegen. Bei Teamleitungen handelt es sich um Führungskräfte auf Gruppenebene. Damit ein*e Benutzer*in für eine Grupppe als Teamleitung ausgewählt werden kann, muss diese*r einerseits die Rolle „Teamleitung“ haben und sich als Mitglied in der entsprechenden Gruppe befinden.

firmenzuweisung_teamleitung.PNG

Mit dem optionalen Parameter titel kann anstelle des Default-Werts „Firmenzuweisung“ eine individuelle Überschrift gewählt werden.

CSV-Import

Anstelle des manuellen Anlegens von einzelnen Benutzer*innen über die Seite „Benutzer anlegen“ kann auch eine größere Gruppe an Benutzer*innen über einen CSV-Import angelegt werden. Eine Seite für den CSV-Import kann über den Shortcode [tspv2_csv_import] erzeugt werden.
Innerhalb des Bereichs „Datei hochladen“ kann über den Button „Datei auswählen“ eine CSV-Datei für den Import hochgeladen werden. Die Datei muss dabei in folgende Form gebracht werden:

Name E-Mail-Adresse Firma Gruppe (z.B. Abteilung) Studien-ID Freischaltcode
Vorname Nachname vorname.nachname@test123.de Testfirma Testabteilung 123 0000

Auf der Seite für den CSV-Import steht außerdem ein Beispiel für eine CSV-Datei zur Verfügung, welche bereits die erforderliche Form aufweist, sodass diese lediglich mit den realen Daten gefüllt werden muss.

Mit dem Parameter titel kann zudem eine individuelle Überschrift für die Seite bestimmt werden. Standardmäßig wird „Teilnehmende importieren“ als Titel für diese Seite gewählt.

Hinweis: Innerhalb der CSV-Datei muss immer ein Name sowie eine E-Mail-Adresse für eine*n Benutzer*in angegeben werden. Alle weiteren Werte können leer gelassen werden. Wird ein Freischaltcode für eine*n Benutzer*in genutzt, muss darauf geachtet werden, dass noch eine ausreichende Anzahl an verbleibenden Einlösungen für diesen zur Verfügung stehen. Des Weiteren muss bei der CSV-Datei darauf geachtet werden, dass diese eine Header-Zeile enthält.

Nutzer anlegen

Einzelne Benutzer*innen können manuell über die Seite „Benutzer anlegen“, welche mit dem Shortcode [tspv2_create_user_manually] erstellt wird, im Frontend angelegt werden. Beim Anlegen eines*r neuen Benutzer*in müssen stets die mit einem „*“ markierten Pflichtfelder „Benutzername“ und „E-Mail“ ausgefüllt werden. Zusätzlich kann über die Checkbox „E-Mail-Benachrichtung senden“ festgelegt werden, ob der*die Benutzer*in eine E-Mail mit Erstellung des Accounts erhalten soll, sodass diese*r das Passwort für den Account ändern können.
Des Weiteren können den neuen Benutzer*innen eine optionale Studienteilnehmer-ID, ein Coach oder eine Trainingsvorlage zugeordnet werden oder bestimmte Berechtigungen gegeben werden.

Mit Angabe eines Werts für den Parameter titel kann eine individuelle Überschrift für die Seite anstelle des Default-Wert „Teilnehmende manuell hinzufügen“ gewählt werden.

Freischaltecode

Es besteht die Möglichkeit, dass Benutzer*innen sich Trainings über Codes selbst freischalten können. Eine Zusammenstellung aus verschiedenen Trainings (oder anderen Inhalten) wird dabei in sogenannten Vorlagen gespeichert. Benutzer*innen können dann mit einem Code gemäß dieser Vorlage hinzugefügt werden.

Freischaltecode anlegen

Die Funktion zum Hinzufügen von Freischaltecodes kann über den Shortcode [tspv2_addregiserkey] in eine Seite eingebunden werden. Um einen neuen Freschaltecode anzulegen, sind folgende Schritte erforderlich:

  1. Ein*e Benutzer*in mit der Rolle „Administrator“, „Verwalter“ oder „Krankenkassenadmin“ legt (optional) im Frontend unter „Verwaltung->Trainingsvorlagen“ eine neue Trainingsvorlage an.
  2. Dem eben angelegten Vorlagennutzer wird auf der gleichen Seite eine Auswahl an Trainings zugewiesen.
  3. Nun muss der Freischaltecode angelegt werden. Dazu wechselt man im Frontend auf die Seite „Freischaltecode“ im Verwaltungsmenü oder auf eine Seite, in der der Shortcode [tspv2_addregiserkey] zuvor eingebunden wurde.
  4. Im Feld „Freischaltecode eingeben“ kann nun ein numerischer Wert gewählt werden, welcher von den Benutzer*innen später zum Einlösen des Freischaltecodes eingegeben werden muss.
  5. In den (optionalen) Feldern „Vorlage auswählen“ und „2. Vorlage auswählen“ können zuvor angelegte Trainingsvorlagen angegeben werden.
  6. Im Feld „maximale Anzahl der Anmeldungen“ kann die Anzahl an möglichen Einlösungen für den Freischaltcode festgelegt werden.
  7. Über die Felder „Firma auswählen“ und „Firmengruppen auswählen“ können optional für den Freischaltecode noch Firmen sowie Gruppen dieser ausgewählt werden. Diese Option ist zu empfehlen, wenn die Benutzer*innen bei der Registrierung über einen Freischaltecode direkt einer Firma zugeordnet werden sollen. Wird nur die Firma angegeben, können die Benutzer*innen bei der Registrierung eine der Gruppen der angegebenen Firma auswählen. Wurden sowohl eine Firma als auch eine Gruppe beim Anlegen des Freischaltecodes ausgewählt, werden die Benutzer*innen nach der Registrierung direkt dieser Gruppe zugeordnet.
  8. Abschließend muss nun noch auf den Button „Anlegen“ geklickt werden.

Freischaltecode-Übersicht

Eine Übersicht über alle angelegten Freischaltecodes kann über den Shortcode [tspv2_showregiserkeylist] in eine Seite eingefügt werden. Hier wird für jeden Freischaltecode neben den zugeordneten Trainingsvorlagen und Firmen auch die Anzahl an bisherigensowie maximalen Einlösungen aufgeführt. Für jeden Freischaltecode wurde zusätzlich unter der Spalte „QR-Code“ ein eigener QR-Code generiert, welcher den Benutzer*innen zugesendet werden kann. Alternativ kann der Freischaltecode auch als Link versandt werden, welcher ebenfalls über das „QR-Code“-Symbol für den entsprechenden Freischaltecode abgerufen werden kann.

Die Benutzer*innen haben nun folgende Möglichkeiten, einen Freischaltecode zu aktivieren:

In beiden Fällen werden den Benutzer*innen alle in der Trainingsvorlage zusammengestellten Inhalte übertragen. Das bedeutet, dass alle Trainings und Lektionen, die für die Vorlage hinterlegt sind, den Benutzer*innen zugewiesen werden.

Systemstatistiken

Über dem Menüpunkt „Verwaltung“ können mittels des Unterpunkts „Systemstatistiken“ verschiedene Statistiken über die Benutzer*innen des Trainingssystems angezeigt werden. Alternativ kann eine Übersicht aller Statistiken auch mittels des Shortcodes [tspv2_system_statistics] in eine Seite eingebunden werden. Über den Parameter titel kann eine individuelle Überschrift anstelle des Default-Werts „Systemstatistiken“ ausgewählt werden.

Hovern mit der Maus über Datenpunkte

Wird die Maus über einen Datenpunkt eines Diagramms bewegt, wird für das Element ein kleines Fenster eingeblendet, welches für den aktuellen Datenpunkt das Label (beispielsweise ein Datum für die Liniendiagramme) sowie den dazugehörigen Wert anzeigt.

Auswahl eines Darstellungszeitraums

Für die einzelnen Diagramme können bestimmte Zeiträume ausgewählt werden. Dazu können über die beiden Eingabefelder (links: untere Grenze, rechts: obere Grenze), welche sich oberhalb der Diagramme befinden, Daten im Format „TT.MM.JJJJ“ manuell eingegeben oder über den Kalender, welcher durch einen Mausklick auf das Eingabefeld eingeblendet wird, ausgewählt werden. Wurde ein Zeitraum für die Statistik schließlich gewählt, müssen die Eingaben über den Button „Ausführen“ abgeschickt werden, sodass der Zeitraum auf alle auf dieser Seite angezeigten Statistiken des Trainingssystems angewandt werden kann.
Generell müssen nicht beide Grenze für den Zeitraum angegeben werden. Es kann hierbei auch nur eine untere bzw. obere Grenze gewählt werden, um die Statistiken für einen Zeitraum darzustellen, welcher zeitlich nach bzw. vor der angegebenen Grenze liegt. Sind beide Eingabefelder leer, d.h. sie zeigen beide kein Datum, sondern den Platzhalter „TT.MM.JJJJ“ an und es wird der Button „Ausführen“ gedrückt, werden alle dargestellten Statistiken zurück in die Ausgangssituation versetzt.

Zurücksetzen der Daten

Die Daten, welche die Grundlage für die Systemstatistiken bilden, können über den Button „Daten zurücksetzen“ zurückgesetzt werden.

Hinweis: Sobald das nach Drücken des Buttons „Daten zurücksetzen“ erscheinende „Confirm“-Fenster bestätigt wurde, werden die Daten für die Systemstatistiken unwiederbringlich gelöscht. Die Daten von folgenden Diagrammen können aus organisatorischen Gründen nicht zurückgesetzt werden:

Zoomen und Panning innerhalb der Diagramme

Innerhalb der Diagramme kann mithilfe des Mausrads die Zoom-Funktion genutzt werden, um den dargestellten Ausschnitt des Diagramms zu vergrößern (Scrolling des Mausrads nach oben) oder zu verkleinern (Scrolling des Mausrads nach unten).
Des Weiteren kann auch Panning (deutsch: Verschieben, Schwenken) genutzt werden, um den aktuell dargestellten Ausschnitt des Diagramms zu verschieben. Dazu muss mit der Maus in das Diagramm geklickt werden, die Maustaste dabei gehalten werden und abschließend die Maus bewegt werden, um den Ausschnitt des Diagramms in die gewünschte Richtung zu verschieben.
Nachfolgend folgt eine Auflistung über alle Diagramme sowie die möglichen Richtungen für das Zoomen und des Pannings:

Diagramm Zooming Panning
Anzahl hinzugefügte Benutzer xy-Richtung xy-Richtung
Zeitpunkt des letzten Logins xy-Richtung xy-Richtung
Anzahl Benutzereingaben xy-Richtung xy-Richtung
Anzahl abgeschlossene Lektionen xy-Richtung xy-Richtung
Benutzeraktivität (gemessen in Seitenaufrufe/Uhrzeit) y-Richtung y-Richtung
Benutzeraktivität (gemessen in Seitenaufrufe/Wochentag) y-Richtung y-Richtung
Benutzeraktivität (gemessen in Seitenaufrufe/Seite) y-Richtung y-Richtung
Benutzeraktivität (gemessen in Sekunden/Seite) y-Richtung y-Richtung
Browserverteilung (gemessen in Seitenaufrufen) nicht unterstützt nicht unterstützt
Verteilung der Gerätetypen (gemessen in Seitenaufrufen) nicht unterstützt nicht unterstützt
Anzahl abgeschlossene Trainings x-Richtung x-Richtung

Speichern der Statistiken als Excel- und PDF-Datei

Die Daten der einzelnen Statistiken lassen sich über den Button mit dem Excel-Symbol als CSV-Datei für Excel herunterladen. Es werden hierbei die Daten in der Datei gespeichert, welche aktuell im Diagramm dargestellt werden, d.h. ein zuvor eingestellter Zeitraum oder ein gewählter Wertebereich wird auch auf die Daten angewandt, welche letztlich in der erstellten CSV-Datei erscheinen.
Zusätzlich können die Daten der einzelnen Statistiken über den Button mit dem PDF-Symbol als PDF-Datei herunterladen. Die erzeugte PDF-Datei beinhaltet zum einen auf der ersten Seite das Diagramm, zum anderen ab Seite 2 die Daten der Statistik. Auch für die PDF-Funktion werden in der PDF-Datei die Daten gespeichert, welche momentan im Diagramm dargestellt werden, sodass zuvor festgelegte Zeiträume oder Wertebereiche auf die Daten angewandt werden. Das in der PDF abgebildete Diagramm entspricht außerdem der aktuellen Darstellung auf der Seite „Systemstatistiken“, d.h. Zooms oder das Verschieben von Bildausschnitten wird für das Diagramm in der PDF-Datei übernommen.

Login-Aktivität des aktuellen Tages

Im Abschnitt „Heutige Login-Aktivität“ oberhalb der Diagramme ist eine Übersicht über alle erfolgreichen sowie fehlgeschlagenen Login-Versuche in das Trainingssystem für das aktuelle Datum vorzufinden, welche über den Button „Login-Aktivität anzeigen“ angezeigt werden kann. Hierbei wird in zeitlich absteigender Reihenfolge für jeden Login-Versuch angegeben, welche Benutzer*innen (Benutzername, ID) zu welchem Zeitpunkt versucht haben, sich in das Trainingssystem einzuloggen und ob der Versuch erfolgreich war.
Für gescheiterte Logins wird zusätzlich auch angegeben, warum der Login für den*die Benutzer*in nicht möglich war. Die möglichen Gründe sind hierbei:

Über den Button „Login-Aktivität ausblenden“ kann die dargestellte Login-Aktivität für das aktuelle Datum wieder ausgeblendet werden.

Liniendiagramme - Besonderheiten

Die Daten für die Liniendiagramme liegen für jede Statistik in dreifacher Ausführung vor, d.h. es können Werte pro Stunden (rote Datenpunkte), pro Tag (grüne Datenpunkte) bzw. pro Monat (blaue Datenpunkte) angezeigt werden. Über die drei Buttons „Stunden“, „Tag“ und „Monat“ unterhalb der jeweiligen Liniendiagramme kann hierbei der aktuell dargestellte Datensatz für das Diagramm gewechselt werden. Zuvor gewählte Zeiträume werden für die Liniendiagramme übernommen.
Außerdem können mithilfe des Buttons „Reset Zoom“ alle zuvor ausgeführten Zoomings und Pannings zurückgesetzt werden, sodass sich das Diagramm wieder in der Ausgangssituation befindet.

Säulendiagramme - Besonderheiten

Für die beiden Säulendiagramme „Benutzeraktivität (gemessen in Seitenaufrufe/Seite)“ sowie „Benutzeraktivität (gemessen in Sekunden/Seite)“ können zusätzlich durch den*die Benutzer*in Wertebereiche definiert werden, um die beiden Diagramme übersichtlicher bzw. lesbarer zu gestalten, da hier jeweils Werte für alle Seiten des Trainingssystem angezeigt werden.
Für den Wertebereich können hierbei, wie zuvor für die Eingrenzung der Zeiträume bereits beschrieben, eine untere (linkes Eingabefeld) und eine obere Grenze (rechtes Eingabefeld) ausgewählt werden, wobei auch hier wieder nicht zwingend beide Grenzen zum Beschränken des Wertebereichs angegeben werden müssen. Wurde für ein Säulendiagramm ein bestimmter Wertebereich gewählt und der Button „Ausführen“ wurde anschließend gedrückt, wird der ausgewählte Wertebereich auf den Datensatz angewandt und das Diagramm wird für die Statistik neu gezeichnet. Werden keine Grenzen angegeben, d.h. die Eingabefelder sind leer, wird das entsprechende Diagramm wieder in die Ausgangssituation zurückversetzt. Außerdem werden zuvor eingegebene Werte für die Eingabefelder zur Eingrenzung des Zeitraums ebenfalls mit einbezogen, sollte für einen gewählten Wertebereich der Button „Ausführen“ gedrückt werden.

Kreisdiagramme (oder auch Kuchen- bzw. Tortendiagramme) - Besonderheiten

Wird die Maus über einen Teilwert des Kreisdiagramms bewegt, werden einerseits die für den Browser bzw. für das entsprechende Gerät gemessenen Seitenaufrufe angezeigt, andererseits wird hier auch der relative Anteil dieses Teilwerts in Prozent (auf zwei Nachkommastellen gerundet) angegeben.
Zusätzlich können für die Kreisdiagramme auch einzelne Teilwerte ausgeblendet werden, indem das entsprechende Label oberhalb des Diagramms mit einem Mausklick ausgewählt wird. Durch einen erneuten Mausklick können die ausgeblendeten Teilwerte wieder im Kreisdiagramm eingeblendet werden.

Nachrichten

Das Trainingssystem verfügt eine über den Shortcode tspv2_mailbox einsetzbare Nachrichtenfunktion, über welche ein Austausch an Mitteilungen zwischen Teilnehmenden und ihren Coaches möglich ist. Auf der „Nachrichten“-Seite befinden sich eine Inbox („Eingang“) und eine Outbox („Gesendet“), über die alle Nachrichten abgerufen werden können, welche über das System empfangen bzw. gesendet wurden. Zusätzlich ist für Benutzer*innen mit der Rolle „Administrator“, „Psychologischer Coach“ oder „Supervisor“ der Nachrichtenverlauf einsehbar.
Über den Button „Neue Nachricht“ kann ein Fenster geöffnet, in welchem eine neue Mitteilung verfasst werden kann. Über das Dropdown-Menü in diesem Fenster kann der*die Empfänger*in für diese Nachricht gewählt werden. Normale Teilnehmende können als Empfänger*in lediglich ihren Coach sehen, Benutzer*innen mit der Rolle „Psychologischer Coach“ können alle zugeordneten Teilnehmenden auswählen.
Über den Parameter titel kann für diese Seite eine individuelle Überschrift anstelle des Default-Werts „Nachrichten“ gewählt werden.

Hinweis: Für normale Teilnehmende ohne zugeordneten Coach wird die Nachrichten-Funktion im Menü ausgeblendet.

Trainings Ex-/Import

Ein Ex- bzw. Import von Trainingsinhalten kann über den Shortcode tspv2_trainings_ex_import in eine Seite eingebunden werden. Über den optionalen Parameter titel kann eine eigene Überschrift für diese Standardseite bestimmt werden (Default-Wert: „Trainings Ex-/Import“). Im Folgenden werden die einzelnen Funktionen dieser Standardseite kurz beschrieben.

Export von Medieninhalten

In der Tabelle ist über das „Ordner“-Symbol der Download aller Medien-Dateien für ein Training möglich. Abhängig von der Art und Anzahl an Medien im ausgewählten Training kann dieser Vorgang dabei eine gewisse Zeit in Anspruch nehmen. Die exportierten Dateien werden hier in Form einer ZIP-Datei heruntergeladen.

Export von Trainings

Über das „Download“-Symbol kann in der Tabelle ein Training exportiert werden. Der Download des Trainings erfolgt hierbei in Form einer JSON-Datei, welche für den Import eines Trainings , zum Beispiel auf einer weiteren Plattform, genutzt werden kann.

Import von Medieninhalten

Zunächst muss für den Import eine ZIP-Datei mit Medien-Dateien via FTP auf dem Server hochgeladen und im Ordner wp-uploads/trainings-ex-import abgelegt werden. Anschließend muss die hochgeladene ZIP-Datei im Dropdown-Menü ausgewählt und der Import kann mit Klick auf den Button „Bestätigen“ gestartet werden.

Hinweis: Sollte eine Medien-Datei auf dem Server bereits vorhanden sein, so wird diese beim Import nicht mit der neuen Datei überschrieben, sondern bleibt unverändert!

Import von Trainings

Über den Button „Import Training“ kann ein Dialog-Fenster geöffnet werden, in dem eine, wie im Abschnitt Export von Trainings beschrieben, JSON-Datei mit Trainingsinhalten über das Upload-Formular für den Import hochgeladen werden.

Unternehmen-Details

Für jede auf der Seite „Firmenzuweisung“ aufgeführten Firma bzw. Gruppe können weiterführende Details eingesehen werden. Für diesen Zweck muss in der Tabelle im linken Bereich („1. Unternehmen auswählen“) auf dieser Seite für die gewünschte Firma das „Tortendiagramm“-Symbol angeklickt werden.
Die Seite für die Unternehmen-Details enthält zunächst einen Bereich „Gruppen“, in der alle Gruppen der aktuell betrachteten Firma zusammen mit der Mitgliederanzahl aufgeführt werden. Neben jeder Gruppe ist zudem ebenfalls ein „Tortendiagramm“-Symbol vorzufinden, welches zu einer Detail-Seite für diese Gruppe führt. Neben dem Bereich „Gruppen“ sind für die Firma noch eine Vielzahl an Statistiken aufgeführt.

Hinweis: Die Details einer Firma können aktuell nur ab einer Firmen-Größe von mindestens 8 Mitgliedern eingesehen werden. Benutzer*innen mit der Rolle „Administrator“ können die Informationen dieser Seite unabhängig von der Anzahl an Mitgliedern sehen.

Nutzer-Detail-Seite

Für die Benutzer*inne des Trainingssystem ist eine Nutzer-Detail-Seite aufrufbar, welche über die Nutzerliste und die Coaching- bzw. Supervisoren-Übersicht erreichbar ist. Grundlegend sind hier allgemeine Informationen über den*die Benutzer*in wie bspw. die E-Mail-Adresse, die ID oder ggf. ein zugeordneter Coach einsehbar. Zusätzlich können hier weiterführende Informationen wie der Trainings-Fortschritt, Firmeninformationen oder Statistiken über die Nutzung des Systems abrufbar. Des Weiteren kann über diese Seite der User-Modus für den*die aktuelle*n Benutzer*in gestartet oder Nachrichten an diese*n versendet werden.
Außerdem können auf dieser Seite über den „Bearbeiten“-Button die hinterlegte E-Mail-Adresse angepasst, eine Studienteilnehmer-ID vergeben oder ein neuer Coach für diese*n Benutzer*in zugeordnet werden. Benutzer*innen mit der Rolle Administrator“ können auf dieser Seite zudem dem*der aktuellen Benutzer*in eine oder mehrere Rollen des Trainingssystems gegeben werden.

Nutzerdaten exportieren

Hinweis: Diese Seite ist veraltet und wird standardmäßig nicht im Menü eingebunden. Dieser Export kann allerdings über den unten aufgeführten Shortcode bei Bedarf in eine Seite eingesetzt werden. Für den Export von Inhalten aus Formularen bitte den im Abschnitt „Datenexport“ beschriebenen Export nutzen.

In Zusammenarbeit mit effective webwork wurde der Shortcode [tspv2_user_results_export] für den Export von Nutzerdaten entwickelt. Für den Export sind mehrere Schritte notwendig:

  1. Zunächst muss eine Datenquelle für den Export ausgewählt werden. Es stehen folgende Quellen dafür zur Verfügung:

  2. Im nächsten Schritt können alle bzw. eine Auswahl an Trainings für den Export ausgewählt werden.

  3. Neben den Trainings kann im nächsten Schritt bei Bedarf auch eine Auswahl an Lektionen der zuvor gewählten Trainings für die Betrachtung im Export ausgewählt werden.
  4. Anschließend kann für die Auswahl der Benutzer*innen für den Export auch festgelegt werden, ob der Benutzername mit einer bestimmten Zeichenketten starten soll.
  5. Im letzten Schritt kann ein Zeitraum für die Betrachtung der Daten ausgewählt werden. Auf Klick in eines der Eingabefelder öffnet sich hierbei ein Kalender, in dem das gewünschte Start- bzw. Enddatum für den Export ausgewählt werden.
  6. Abschließend kann über den Button „Nutzerdaten exportieren“ kann der Export der Nutzerdaten gestartet werden. Je nach Auswahl der Datenquellen kann der Export eine längere Zeit in Anspruch nehmen.

Hinweis: Bei der Auswahl der Datenquelle, der Trainings sowie der Lektionen können in den Auswahllisten mittels der Taste „STRG“ und Klick auf die entsprechenden Elemente mehrere Optionen für den Export ausgewählt werden.

Coaching-/Supervisoren-Übersicht

Mithilfe des Shortcodes [tspv2_coaching_overview] kann eine Übersicht zum Coaching in eine Seite eingebunden werden, welche in zwei separate Sichten für die Rollen „Psychologischer Coach“ ( „Coaching-Übersicht“ ) und „Supervisor“ ( „Supervisoren-Übersicht“ ) aufgeteilt ist. Mittels des Parameters titel kann die Überschrift dieser Seite angepasst werden (Default-Wert: „Coaching-Übersicht“).

Coaching-Übersicht

Die Sicht für die Rolle „Psychologischer Coach“ unterteilt sich in die beiden Abschnitte „Mir zugewiesene Teilnehmende“ und „Meine Vorlagen“:

coaching_uebersicht.PNG

Supervisoren-Übersicht

DIe Übersicht für die Rolle „Supervisor“ teilt sich in die beiden Bereiche „Teilnehmende mit Coaching-Bedarf“ und „Coaches“ auf:

supervisoren_uebersicht.PNG

Datenexport

Über das Verwaltungsmenü kann die Seite für den Datenexport aufgerufen werden. Alternativ kann der Export auch über den Shortcode [tspv2_data_export] auf einer Seite eingebunden werden. Mit dem optionalen Parameter titel kann für diese Seite anstelle des Standardwerts „Datenexport“ eine eigene Überschrift gewählt werden. Der Vorgang zum Export von Daten besteht aus vier Schritten:

  1. Zunächst muss mindestens eine Datenquelle für den Export ausgewählt werden. Es stehen aktuell folgende drei Quellen zur Verfügung:

  2. Anschließend müssen für jede in Schritt 1 gewählte Datenquelle die gewünschten Daten ausgewählt werden, welche durch die Funktion exportiert werden sollen:
    Für den Export der Daten für die TS Forms kann eine Auswahl an Formularen manuell über die Liste ausgewählt werden. Alternativ können mit dem „+“- bzw. dem „-“-Button alle in der Liste sichtbaren Formulare aus- bzw. abgewählt werden. Zusätzlich kann über die Suchfunktion oberhalb der Liste auch nach bestimmten Begriffen oder IDs in den Titeln der Formulare gesucht werden.
    Bei der Datenquelle „Systemstatistiken“ muss einerseits eine Auswahl an Trainings für den Export gewählt werden, andererseits muss mindestens eine der folgenden Statistiken ausgewählt werden:

  3. Als Nächstes muss eine Auswahl an Benutzer*innen getroffen werden. Benutzer*innen können hierbei manuell über die Liste gewählt werden. Über die „+“- bzw. „-“-Buttons können alle sichtbaren Benutzer*innen aus- bzw. abgewählt werden, mit der Suchfunktion kann nach bestimmten Namen oder Studienteilnehmer-IDs gesucht werden. Außerdem kann auf die Liste an Benutzer*innen eine Filterung nach Registrierungsdatum angewandt werden.

  4. In diesem optionalen Schritt kann noch festgelegt werden, ob die Studienteilnehmer-ID oder auch Gruppen- bzw. Firmen-Informationen für die Benutzer*innen aufgeführt werden sollen, sofern diese vorhanden sind.

Je nach Auswahl kann das Erzeugen der Datei ein wenig Zeit in Anspruch nehmen. Es wird eine CSV-Datei importiert. Um die Daten in Excel einsehen zu können, sollte eine neue Excel-Mappe geöffnet werden. Über „Daten -> Externe Daten abrufen -> Aus Text“ muss die exportierte CSV-Datei ausgewählt werden. Im ersten Schritt dann „Mit Trennzeichen versehen“ auswählen. Aufgrund möglicher Sonderzeichen in der CSV-Datei sollte für eine fehlerfreie Darstellung als Dateiursprung „Unicode (UTF-8)“ gewählt werden. Nach Bestätigen mit „Weiter“ muss als Trennzeichen das Komma gewählt werden. Das Datenformat kann auf Standard bleiben.

datenexport_excel.PNG

Trainingsentwicklung: Interaktive Elemente

Shortcode-Übersicht für interaktive Elemente

In diesem Abschnitt wird eine Vielzahl an Elementen beschrieben, die die Trainingsseiten interaktiver gestalten können. Viele dieser Elemente werden dabei als Shortcode eingebunden. Die folgende Tabelle soll hierbei als Übersicht über alle Shortcodes für interaktive Elemente dienen:

Shortcode Funktion Parameter
[ts_forms] Formular id für ID des Formulars
[coach_output_format_data] Ausgabe von Formularinhalten id des Formulars, text für Darstellung des Inhalts als Text, list für Darstellung des Inhalts als Liste, table für Darstellung des Inhalts als Tabelle, title für einen oder mehrere Titel oberhalb der Ausgabe (optional, Default-Wert: „“), placeholder für Platzhalter für leere/nicht ausgefüllte Felder im Formular (optional, Default-Wert: „“)
[tspv2_media_grid] Ausgabe von Dateien uploadfieldid für ID des Upload-Felds, view für Sicht des Media-Grids, projectfieldid für ID des Projekt-Dropdowns (optional, Default-Wert: „“), titlefieldid für ID des Titel-Felds (optional, Default-Wert: „“), descfieldid für ID des Beschreibungs-Felds (optional, Default-Wert: „“), defaultimage für relativen Pfad für das Standardbild (optional, Default-Wert: „“), latest für Anzahl der anzuzeigenden Dateien (optional, Default-Wert: „“)
[ts_forms_submit] Manuelles Absenden von Formularinhalten text für Beschriftung des Buttons (optional, Default-Wert: „Absenden“), link für Link für Weiterleitung nach dem Absenden (optional, Default-Wert: „“), css für weitere CSS-Klassen für den Button (optional, Default-Wert: „“), extendedfeedback für die Anzeige von erweitertem Feedback für die Benutzer*innen (optional, Default-Wert: „“), extendedfeedbacktext für Feedback-Text bei erfolgreichem Absenden (optional, Default-Wert: „Ihre Eingaben wurden erfolgreich gespeichert.“), extendedfeedbacktext_fail für Feedback-Text bei fehlgeschlagenen Absenden (optional, Default-Wert: „Ihre Eingaben konnten nicht gespeichert werden. Bitte versuchen Sie es erneut.“)
[ts_exercise] Übungen id für ID der Übung
[accordionmd] Akkordeon title für Titel des Akkordeons, title-size zum Festlegen der Größe des Titels (optional, Default-Wert: „“)
[radiohn] Radio-Buttons name für einen Teilbezeichner (Präfix) für die ID des korrespondierenden <div> -Containers, wert für eienn Teilbezeichner (Suffix) für die ID und die Klasse des korrespondierenden <div> -Containers, nameX für einen Teilbezeichner (Präfix) für die ID des korrespondierenden <div> -Containers (optional, Default-Wert: „“, X ist hier Platzhalter für einen beliebigen numerischen Wert)
[quizhn] Quiz antwort für den Text, der dem Radio-Button zugeordnet werden soll, id für die ID der korrespondierenden <div> -Struktur, class für die übergeordnete Klassenbezeichnung
[tspv2_reset_radios] Radio-Buttons zurücksetzen type für die Radio-Button-Variante, ts-form-id für die ID eines TS Forms (für type=ts-form ), wert für den vergebenen Wert (für type=radiohn ), class für die vergebene Klasse (für type=quizhn )
[ts_forms_conditional] Conditional Content tsformid für die ID des korrespondierenden TS Forms, value für den Wert des Formulars, für den der Inhalt angezeigt werden soll, samepage für Angabe, ob Ausgabe des Inhalts auf der gleichen Seite wie das Formular ist (optional, Default-Wert: „false“), fieldid für die ID des Felds, dessen Wert auf value geprüft werden soll (optional, Default-Wert: das in der Sortierreihenfolge 1. Feld), formgroup für die Formgroup eines Formulars, welche überprüft werden soll (optional, Default-Wert: die letzte Formgroup des Formulars), show_on_default für die Ausgabe des Inhalts, wenn der*die Benutzer*in die Eingabe noch nicht verändert hat (optional, Default-Wert: „false“), range_min für untere Grenze für Ausgabe des Inhalts (nur für Formulartyp Slider“), range_max für obere Grenze für Ausgabe des Inhalts (nur für Formulartyp Slider“)
[ts_forms_conditional-inner1] , [ts_forms_conditional-inner2] , [ts_forms_conditional-inner3] Aliasse des Shortcodes [ts_forms_conditional] siehe Shortcode [ts_forms_conditional]
[pdfdownload] PDF-Funktion name für den Namen der PDF-Datei (optional, Default-Wert: „mypdf“), format für die Ausrichtung des Dokuments (optional, Default-Wert: „p“), title für Beschriftung des Download-Links (optional, Default-Wert: „Download als PDF“), pdfid für ID für Download-Link zur Unterscheidung bei mehrfacher Nutzung des Shortcodes, divid für ID des <div> -Containers, in dem der Download-Link eingebettet werden soll (optional, Default-Wert: „“), docheadline für Hauptüberschrift des Dokuments (optional, Default-Wert: „“)
[pdfdownloadignorestart] , [pdfdownloadignoreend] Ignorieren von Inhalten beim Erstellen einer PDF mit dem Shortcode [pdfdownload]
[coach_output_gbu] Ausgabe von verschiedenen Werten der Gefährdungsbeurteilung (GBU) mode für den Modus der Ausgabe, id für die ID eines Formulars
[tspv2_output_mittelwert_gesamt] Ausgabe des Mittelwerts für einen ganzen Block (GBU) id für die ID der Formualre, die bei der Berechnung mit einfließen sollen, groupbygroups für die Aufschlüsselung des Ergebnisses nach Gruppen (optional, Default-Wert: „false“), poszuneg für ein Farbskala von positiv nach negativ (optional, Default-Wert: „true“)
[tspv2_coach_download_csv_link] Ausgabe des Links zur Generierung einer CSV-Datei mit Daten der Gefährdungsbeurteilung data für ein JSON-Array mit Themen, Unterthemen und Formular-IDs, singleuser für den Download der Daten für den*die aktuelle*n Benutzer*in (optional, Default-Wert: „false“), groupbygroups für die Aufschlüsselung der Daten nach Gruppen (optional, Default-Wert: „false“)
[coach_output_gbu_chart] Visualisierung von Werten der Gefährdungsbeurteilung charttype für die Angabe eines Diagramm-Typs (optional, Default-Wert: „“), id für die Angabe der IDs eines oder mehrerer Formulare, charttitle für die Angabe eines oder mehrerer Titel für die betrachteten Skalen (optional, Default-Wert: „“), showpdfdownload für das Einbinden eines PDF-Downloads für die Ergebnisse der einzelnen Gruppen (optional, Default-Wert: „“), pdfdownloadtitle für die Angabe einer Beschriftung der mit showpdfdownload eingebundenen Download-Links (optional, Default-Wert: „Auswertung als PDF herunterladen“)
[forward_content] Einbinden eines Buttons, um Freigabe von Inhalten zu ermöglichen
[coach_output_forward_content] Ausgabe freigegebener Inhalte id für eine oder mehrere IDs freigegebener TS Forms, printlabels zur Ausgabe der Labels der freigegebenen Formulare (optional, Default-Wert: „“), boss für die Angabe, ob Benutzer*innen mit der Rolle „Führungskraft“ die freigegebenen Inhalte einsehen dürfen (optional, Default-Wert: „“), kadmin für die Angabe, ob Benutzer*innen mit der Rolle „Krankenkassenadmin“ die freigegebenen Inhalte einsehen dürfen (optional, Default-Wert: „“), headlines für das Einbinden von individuellen Überschriften zwischen den freigegebenen TS Forms (optional, Default-Wert: „“)
[coachingmodeform] Coachingmodus-Formular training für die ID des Trainings, für das der Coachingmodus festgelegt werden soll, title für das Anzeigen des Titels des Trainings im Formular (optional, Default-Wert: „“), multichoice für die Angabe, ob das Formular durch die Benutzer*innen mehrmals abgeschickt werden darf (optional, Default-Wert: „“), modi für die Angabe der zur Auswahl stehenden Coachingmodi (optional, Default-Wert: „“)
[copyfieldtext] Ausgabe des Inhalts eines Textfeldes in einen Paragraph id für die ID des Formulars, dessen Inhalt kopiert werden soll
[copycheckbox] Ausgabe des Textinhalt von gecheckten Checkboxen in einer Liste id für die ID des Formulars, dessen Inhalt kopiert werden soll
[copychecktableitems] Ausgabe von Beschreibungen einer Check Table id für die ID der Check Table, pos für die Spalte der Check Table, bei welcher das Kopieren der Beschreibungen ausgelöst werden soll, sammlung für die ID des Formulars, in welches die Beschreibungen kopiert werden sollen
[tspv2_latest_posts] Anzeigen von Beiträgen titel für Überschrift der Auflistung (optional, Default-Wert: „Aktuelles“), number für Anzahl der anzuzeigenden Beiträge (optional, Default-Wert: „3“), numberchars für Anzahl der anzuzeigenden Zeichen des Beitrags, bevor diese abgeschnitten werden (optional, Default-Wert: „150“), post_type für die Angabe von einem oder mehreren Tyen an Beiträgen, die dargestellt werden sollen (optional, Default-Wert: „posts“), category für einen Filter für Kategorien (optional, Default-Wert: „0“), morelink für die Angabe eines Buttons für weitere Beiträge (optional, Default-Wert: „null“), morelinktext für Beschriftung des Buttons, welcher über den Paramter morelink eingefügt wurde (optional, Default-Wert: „Weitere Beiträge“), include für die Angabe von IDs von Beiträgen die bei der Darstellung mit eingeschlossen werden sollen (optional, Default-Wert: leeres Array), exclude für die Angabe von IDs von Beiträgen die bei der Darstellung ausgeschlossen werden sollen (optional, Default-Wert: leeres Array)
[hnprogress] Fortschrittsübersicht in Prozent tname für den Namen des Trainings, percent für die Angabe des Fortschritts in Prozent
[tspv2_trainingprogress] Fortschritt: Trainingsfortschritt titel für individuelle Überschrift (optional, Default-Wert: „Detail Trainingsfortschritt“)
[tspv2_abzeichen_modal] Verleihung von Abzeichen titel für eine individuelle Überschrift (optional, Default-Wert: „Herzlichen Glückwunsch“), srclektion für die Vergabe einer IMG- bzw. GIF-Datei beim Absolvieren einer Lektion (optional, Default-Wert: „“), srctraining für die Vergabe einer IMG- bzw. GIF-Datei beim Absolvieren eines Trainings (optional, Default-Wert: „“), textlektion für die Angabe eines Texts beim Absolvieren einer Lektion (optional, Default-Wert: „Sie haben die Lektion erfolgreich abgeschlossen!“), texttraining für die Angabe eines Texts beim Absolvieren eines Trainings (optional, Default-Wert: „Sie haben das Training erfolgreich abgeschlossen!“), texttag für die Angabe des HTML-Tags für den Text, welcher durch die Parameter textlektion und texttraining erzeugt wird (optional, Default-Wert: „p“), buttontitel für die Beschriftung des Buttons (optional, Default-Wert: „Weiter“), overlaynone für das Erzeugen des Modal ohne Overlay (optional, Default-Wert: 0)
[tspv2_drag_drop_game] Drag&Drop-Spiel sections für die Angabe von Bereichen für das Drag&Drop-Spiel, items1 für die Angabe von Begriffen, welche zum ersten Bereich im Spiel gehören, items2 für die Angabe von Begriffen, welche zum zweiten Bereich im Spiel gehören, items3 für die Angabe von Begriffen, welche zum dritten Bereich im Spiel gehören, color für die Angabe von Farben bzw. Farbwerten für die einzelnen Bereiche (optional, Default-Wert: Grautöne)
[ts_timer] Timer h für die Zeit in Stunden (optional, Default-Wert: 0), m für die Zeit in Minuten (optional, Default-Wert: 0), s für die Zeit in Sekunden (optional, Default-Wert: 0), format für die Angabe des Zeitformats, stop für die Angabe des Modus für den Timer (optional, Default-Wert: 0)

Übersicht über veraltete Shortcodes für interaktive Elemente

Im Folgenden werden veraltete Shortcodes aufgeführt, deren Funktionalität noch innerhalb des Trainingssystem-Plugins verfügbar ist bzw. welche vom Plugin noch unterstützt werden. Die aufgelisteten Shortcodes sollten im Idealfall nicht mehr genutzt werden, da für diese entweder neue Eigenentwicklungen oder verbesserte Funktionen als Ersatz verfügbar sind (in der Tabelle die Spalte „Neue Alternative“).

Alter Shortcode Funktion Parameter Neue Alternative
[pdfprintstart] und [pdfprintende] PDF-Funktion [pdfdownload]
[coach_output_einzel_beurteilung1] Einzelauswertung für Beschäftige: positiv zu negativ (<3: sehr gut bis gut, >3: kritisch, Rest: mittelmäßig) id für die ID eines Formulars [coach_output_gbu] mit mode="einzel_pos_zu_neg"
[coach_output_einzel_beurteilung2] Einzelauswertung für Beschäftige: negativ zu positiv (<3 kritisch, >3 sehr gut bis gut, Rest: mittelmäßig) id für die ID eines Formulars [coach_output_gbu] mit mode="einzel_neg_zu_pos"
[coach_output_gesamt_haeufigkeit] Gesamtauswertung (Tabellenset 1): Häufigkeiten und Mittelwerte - positiv zu negativ id für die ID eines Formulars [coach_output_gbu] mit mode="ts1_ga_pos_zu_neg"
[coach_output_gesamt_haeufigkeit2] Gesamtauswertung (Tabellenset 1): Häufigkeiten und Mittelwerte - negativ zu positiv id für die ID eines Formulars [coach_output_gbu] mit mode="ts1_ga_neg_zu_pos"
[coach_output_gesamt_haeufigkeit_gruppen] Gruppenspezifika (Tabellenset 2): Häufigkeiten - positiv zu negativ (<= 2,3: sehr gut bis gut, >=3,7: kritisch, Rest: mittelmäßig) id für die ID eines Formulars [coach_output_gbu] mit mode="ts2_gs_pos_zu_neg"
[coach_output_gesamt_haeufigkeit_gruppen2] Gruppenspezifika (Tabellenset 2): Häufigkeiten - negativ zu postiv (<= 2,3: kritisch, >=3,7: sehr gut bis gut, Rest: mittelmäßig) id für die ID eines Formulars [coach_output_gbu] mit mode="ts2_gs_neg_zu_pos"
[coach_output_tabellenset3] Gruppenvergleich (Tabellenset 3): Mittelwerte - positiv zu negativ (<= 2,3: sehr gut bis gut, >=3,7: kritisch, Rest: mittelmäßig) id für die ID eines Formulars [coach_output_gbu] mit mode="ts3_gv_pos_zu_neg"
[coach_output_tabellenset3b] Gruppenvergleich (Tabellenset 3): Mittelwerte - negativ zu positiv (<= 2,3: kritisch, >=3,7: sehr gut bis gut, Rest: mittelmäßig) id für die ID eines Formulars [coach_output_gbu] mit mode="ts3_gv_neg_zu_pos"
[coach_output_gefaerdungsbeurteilung_text] Ausgabe der Freitextfelder bei der Gefährdungsbeurteilung id für die ID eines Formulars [coach_output_gbu] mit mode="text"

Formulare

TS-Forms

Eingaben

Anlegen von Formularen
Formulare können im Backend des Trainingssystems angelegt werden. Dazu muss zunächst über den Reiter „Trainingssystem“ auf den Menüpunkt „Formulare“ geklickt werden. Auf der folgenden Übersichtsliste wird jedes Formular mit ID, Titel sowie Datum der Veröffentlichung angezeigt. Auf der gleichen Seite kann nun über den Button „Neues Formular“ ein Formular für das Trainingssystem angelegt werden.
Im ersten Schritt muss der Titel des neuen Formulars eingegeben werden. Hierbei besteht generell eine freie Auswahl des Namens, allerdings wird empfohlen, eine sinnvolle Benennung des Titels wie folgt zu wählen:

Neben der Abkürzung des Typs des Formulars sollte im Titel auch die Seite aufgeführt werden, in der das Formular später genutzt wird. Des Weiteren sollte zusätzlich auch der Kontext, in dem das neu erstellt Formular genutzt wird, angegeben werden, damit eine leichtere Unterscheidung von Formularen gleichen Typs auf einer Seite möglich ist. Ein Beispiel für einen Titel nach dem zuvor beschriebenen Schema wäre folgender:

C:Stress101:Meine Stressfaktoren

Wurde schließlich ein geeigneter Titel eingegeben, muss das Formular nun veröffentlicht werden. Anschließend öffnet sich eine neue Seite, auf der das Formular bearbeitet werden kann. Die Seite teilt sich dabei in die drei Teilbereiche „Formular-Optionen“, „Formular zusammenstellen“ und „Formular wird verwendet in:“ auf.
Im Bereich „Formular-Optionen“ können einige grundlegende Einstellungen am aktuellen Formular vorgenommen werden. Zunächst wird hier der Shortcode mit der entsprechenden ID des Formulars aufgelistet, welcher genutzt werden kann, um das Formular in einer oder mehreren Seite zu integrieren, z.B. [ts_forms id='54495'] . Der Shortcode funktioniert genauso wie ein HTML-Tag und erzeugt das zuvor erstellte Formular an der Stelle, an der auf der Seite eingebunden wird. Durch einen Klick auf den grauen Button neben dem Shortcode des Formulars im Bereich „Formular-Optionen“ kann dieser in die Zwischenablage kopiert werden.
Im Bereich „Formular-Optionen“ besteht die Möglichkeit, über das entsprechende Textfeld zusätzliche CSS-Klassen anzugeben, die auf dem alle Felder umfassenden div-Container angewendet werden soll. Mehrere CSS-Klassen müssen durch ein Leerzeichen voneinander getrennt im Textfeld angegeben werden.

MultiFormulare (MultiForms)
Des Weiteren kann im Bereich „Formular-Optionen“ für ein Formular durch Setzen des Hakens bei der Checkbox „Dieses Formular ist ein MultiForm“ festgelegt werden, dass das Formular ein „MultiForm“ ist. Ein „MultiForm“ (kurz für „MultiFormular“) ist ein Formular, welches nach Laden der Webseite noch über den „+“-Button unterhalb des Formulars um weitere Felder durch den*die Benutzer*in erweitert werden kann. Ein Beispiel für ein „MultiForm“ ist in folgendem Bild zu sehen:

Multiform.PNG

Über die Radio-Auswahl „MultiForm-Anordnung“ kann für ein „MultiForm“ festgelegt werden, ob die einzelnen Felder des Formulars übereinander oder nebeneinander (Default-Wert) angeordnet werden sollen.

Formulareingaben manuell absenden
Über die Option „Formulareingaben manuell absenden“ im Bereich „Formular-Optionen“ kann für ein Formular festgelegt werden, dass die getätigten Eingaben nicht automatisch (bspw. durch Weiterschalten der Seite), sondern manuell gespeichert werden sollen. Wurde der Haken bei dieser Option gesetzt, wird automatisch ein Button zum manuellen Absenden der Eingaben platziert.
tsforms_manuelles_abschicken.PNG
Standardmäßig bleibt der*die Benutzer*in nach manuellem Abschicken der Eingaben auf der aktuellen Seite. Wurde für diese Option zusätzlich eine URL angegeben, wird der*die Benutzer*in nach Klick auf dem Button auf diese weitergeleitet.
Neben der Option, die Eingaben eines Formulars manuell abzuschicken, besteht auch die Möglichkeit, die Inhalte aller Formulare auf einer Seite mittels des Shortcodes [ts_forms_submit] (siehe Abschnitt Manuelles Absenden von Formularinhalten ) manuell mit einem einzelnen Button absenden zu lassen.

Formulareingaben per Mail senden
Außerdem kann für ein Formular über die Checkbox „Formulareingaben per Mail senden“ im Bereich „Formular-Optionen“ festgelegt werden, dass die durch die Benutzer*innen getätigten Eingaben an eine oder mehrere hinterlegte E-Mail-Adressen gesendet werden können. Für diese Funktion sollte zusätzlich der Shortcode [ts_forms_submit] zum manuellen Absenden mehrerer Formulare (siehe den Abschnitt „Manuelles Absenden von Formularinhalten“ ) oder die Option „Formulareingaben manuell absenden“ für das entsprechende Formualr genutzt werden.
Neben dem Versenden per E-Mail werden die Eingaben standardmäßig auch gespeichert, was jedoch über die entsprechende Checkbox auszuschalten ist. Diese Funktion sollte sehr achtsam und wenn möglich nur temporär eingesetzt werden, da die Daten ungefiltert verschickt werden und die Gefahr einer missbräuchlichen Verwendung besteht.

Hinweis: Es wird empfohlen, im entsprechenden Formular Labels für die einzelnen Felder zu nutzen, damit die Eingaben der Benutzer*innen in der E-Mail leichter den einzelnen Formularfeldern zugeordnet werden können.

Bestätigung an Nutzer senden
Mit dieser Funktion ist es möglich, dass eine E-Mail-Bestätigung über das erfolgreich abgesendete Formular an die ausfüllende Person gesendet wird. Diese Funktion kann durch Setzen der Checkbox „Bestätigung an Nutzer senden“ aktiviert werden.
Ist die Person beim Ausfüllen des Formulars angemeldet, wird die Bestätigung an die bei der Registrierung hinterlegten E-Mail-Adresse genutzt. Ist das Formular für alle Benutzer*innen verfügbar, wird im Formular nach einem Textfeld vom Typ „E-Mail“ gesucht und die dort angegebene E-Mail-Adresse für den Versand der Bestätigung verwendet. Existiert für das Formular kein Textfeld dieser Art, ist dieses Feld leer oder wurde keine gültige E-Mail-Adresse angegeben, erfolgt kein Bestätigungsversand. Es wird auch keine E-Mail-Bestätigung versendet, wenn der Betreff oder der Text der E-Mail leer ist.
Für den Text der E-Mail können folgende HTML-Elemente genutzt werden:

Speichermodus der Formulareingaben
Für jedes Formular kann ein Speichermodus festgelegt werden. Es stehen aktuell folgende drei Modi zur Verfügung:

Formular zusammenstellen
Im Bereich „Formular zusammenstellen“ kann schließlich eine Auswahl an Feldern für das Formular zusammengestellt werden. Dazu muss der blaue „+“-Button geklickt werden und es öffnet sich ein Fenster, in dem eines der folgenden Formularfelder ausgewählt werden kann:

Beschreibungen sowie Besonderheiten zu den einzelnen Formularfeldern sind im Abschnitt Formularfelder vorzufinden. Neben dem Typ kann für ein Feld auch ein optionales Label bzw. im Falle der Radio-Buttons ein Titel definiert werden, welcher oberhalb des Felds angezeigt wird. Über „Weitere Optionen“ können zudem Einstellungen wie beispielsweise Platzhalterwerte oder auch zusätzliche CSS-Klassen ergänzt werden.
Wurde eine Auswahl an Formularfeldern erstellt, kann die Sortierung der Elemente via Drag & Drop verändert werden. Dazu müssen das Formular bzw. Änderungen an diesem zunächst über den Button „Aktualisieren“ gespeichert werden.
Über den grauen Button auf der rechten Seite eines Feld können Änderungen an diesem vorgenommen werden. Des Weiteren kann über den roten „Papierkorb“-Button ein Feld des Formulars auch wieder entfernt werden.
Die aktuelle Darstellung des zusammengestellten Formulars kann über den „Vorschau“-Button betrachtet werden.

Verwendung des Formulars abrufen
Im Bereich „Formular wird verwendet in:“ kann über den Button „Daten abrufen“ eine Liste über alle Seiten aufgerufen werden, in denen bisher der aktuell betrachtete Shortcode genutzt wurde. Wurde der Shortcode für das Formular auf einer Seite genutzt, kann über den grauen Button der Editor für die entsprechende Seite aufgerufen werden.

verwendung_formular.PNG

Formularfelder

Textfeld
Mit dem Typ „Textfeld“ kann ein einfaches Textfeld für verschiedene Eingaben erstellt werden. Die Art der Eingabe kann unter „Weitere Optionen“ über den Punkt „Textfeld-Typ“ festgelegt werden. Es stehen dabei folgende Typen zur Auswahl:

tsforms_textfeld.JPG

Für die Typen „Text“, „E-Mail“, „Number“, „Passwort“, „Telefonnr.“ und „URL“ kann über den Punkt „Platzhalter“ ein Platzhalterwert definiert werden, welcher anstelle eines leeren Werts für das Feld angezeigt wird. Über dem Punkt „Value“ kann außerdem für das Feld ein Wert definiert werden, welcher standardmäßig eingefügt wird. Der Wert für „Value“ muss dabei für bestimmte Typen in einem festgelegten Format angegeben werden:

Textbox
Mit dem Feldtyp „Textbox“ kann ein mehrzeiliges Textfeld bzw. eine Textarea definiert werden. Unter „Weitere Optionen“ können für die Textbox ein Platzhalterwert, eine maximale Länge sowie die Anzahl an Zeilen festgelegt werden, welche für das Element auf der Seite angezeigt werden sollen.

ts_forms_textbox.PNG

Dropdown
Mit dem Formularfeld „Dropdown“ kann ein Dropdown-Menü definiert werden, aus welchem der*die Benutzer*in eine Option auswählen kann. Unter dem Bereich „Weitere Optionen“ kann für ein Dropdown-Element über dem Punkt „Anzahl der sichtbaren Elemente“ festgelegt werden, wie viele der definierten Optionen für den Benuzter sichtbar sein sollen.

ts_forms_dropdown.PNG

Über dem Punkt „Benutzer kann eigene Einträge hinzufügen“ kann für das Dropdown-Element festgelegt werden, ob es für die Benutzer*innen möglich sein soll, eigene wählbare Optionen dem Element hinzufügen. Dazu muss zusätzlich für das Formular die Option „Alle Formulareingaben behalten“ aktiviert werden.

ts_forms_dropdown_eigener_eintrag.png

Außerdem kann über dem Punkt „Multiple“ festgelegt werden, ob im Dropdown-Element mehrere Optionen auswählbar sein können.

ts_forms_dropdown_multiple.PNG

Radio-Button
Mit dem Formularfeld „Radio-Button“ kann eine Gruppe an Buttons zur Auswahl einer Option definiert werden. Für jeden Button kann hierbei im Bereich „Radio-Buttons“ mit „Label“ eine Beschriftung sowie mit „Value“ ein Wert festgelegt werden. Über den türkisen Button „Hinzufügen“ bzw. dem roten „-“-Button kann ein weiterer Radio-Button ergänzt oder der entsprechende Button wieder aus der Grupppe entfernt werden.
Über den grauen „+“-Button können weitere Einstellungen für die Gruppe an Radio-Buttons angezeigt werden. Neben CSS-Klassen kann für jeden Button separat angegeben werden, ob dieser das Attribut „Disabled“ erhalten soll, d.h. ob dieser Radio-Button überhaupt auswählbar sein soll. Zusätzlich kann hier für einen Radio-Button festgelgegt werden, dass dieser vorausgewählt sein soll, sofern die Option „Einen Radio-Button vorauswählen“ ausgewählt wurde.
Unter „Weitere Optionen“ kann außerdem die Anordnung der Radio-Buttons ausgewählt werden. Standardmäßig werden die Buttons einer Gruppe untereinander angeordnet. Wurde die Option „Inline“ ausgewählt, werden die Radio-Buttons nebeneinander dargestellt.

ts_forms_radio_buttons.PNG

Checkbox
Mit dem Formularfeld „Checkbox“ kann eine einzelne Checkbox definiert werden. Soll eine Checkbox-Liste erzeugt werden, muss jedes Checkbox-Element der Liste separat als Feld erstellt werden. Die einzelnen Elemente der Checkbox-Liste werden standardmäßig untereinander angezeigt. Sollen die Elemente nebeneinander dargestellt werden, müssen die einzelnen Checkbox-Felder einerseits in der Sortierung direkt untereinander folgen und es muss andererseits für jedes Feld auch die „Inline“-Funktion ausgewählt werden.

ts_forms_checkbox.PNG

Slider
Beim Erstellen eines Slider-Elements können unter „Min“ die Unter- und unter „Max“ die Obergrenze festgelegt werden. Über „Step“ kann die Schrittgröße beim Schieben des Reglers für das Slider-Element eingestellt werden. Für diese drei Attribute können neben ganzen Zahlen auch Kommazahlen genutzt werden, welche in der Form „X,Y“ oder „X.Y“ angegeben werden können.
Unter dem Punkt „Weitere Optionen“ kann mit dem Attribut „Value“ zudem der Startwert für das Slider-Element bestimmt werden, wobei hier auch wieder Kommazahlen möglich sind. Grundsätzlich sollte beim Erstellen eines Slider-Elements möglichst immer die „Tooltip“-Option ausgewählt werden. Diese Option fügt dem Slider ein kleines Fenster oberhalb des Cursors hinzu, welches dem*der Benutzer*in den aktuell ausgewählten Wert anzeigt. Außerdem kann für die Slider-Elemente über die Optionen ein Farbschema ausgewählt werden. Zur Auswahl stehen hierbei die Farbschemata „Kein“ (Default-Wert), „Ampel Rot-Gelb-Grün“ und „Ampel Grün-Gelb-Rot“:

Slider.PNG

Anstelle von numerischen Werten können für die Slider auch textuelle Repräsentationen im Tooltip ausgegeben werden. Dazu muss einerseits die Tooltip-Funktion aktiv sein, andererseits muss in das Textfeld unter „Tooltip-Text Funktion“ ein Skript folgender Form eingefügt werden:

                                            
                                            if
                                            (
                                            value
                                            >=
                                            0
                                            &&
                                            value
                                            <=
                                            33
                                            )
                                            {
                                            return
                                            "klein"
                                            ;
                                            }
                                            else
                                            if
                                            (
                                            value
                                            >
                                            33
                                            &&
                                            value
                                            <=
                                            66
                                            )
                                            {
                                            return
                                            "mittel"
                                            ;
                                            }
                                            else
                                            {
                                            return
                                            "groß"
                                            ;
                                            }
                                        

Im Skript kann mit einer Fallunterscheidung mittels if/else if/else-Anweisungen gearbeitet werden. Der numerische Wert wird durch value repräsentiert, die textuelle Repräsentation wird mit return zurückgegeben. Das obige Beispiel-Skript gibt für Werte zwischen 0 und 33 das Wort „klein“, für Werte zwischen 34 und 66 „mittel“ und für jeden Wert über 66 das Wort „groß“ im Tooltip des Sliders aus.

Text
Mit dem Feldtyp „Text“ können Textelemente definiert für ein Formular definiert werden, bspw. als ergänzender Beschreibungstext oder Überschrift zwischen zwei Feldern. Unter dem Punkt „Weitere Optionen“ kann hier einerseits die Position des Texts („linksbündig“, „zentriert“ und „rechtsbündig“) festgelegt werden, andererseits kann hier auch das HTML-Element für diesen Feldtyp bestimmt werden. Es stehen folgende HTML-Elemente für den Typ „Text“ zur Verfügung:

tsforms_text.JPG

Skala
Mit dem Feldtyp „Skala“ kann eine Skala mit mehreren Antwortmöglichkeiten sowie mit Labeln für Unter- und Obergrenze definiert werden. Unter „Optionen“ können mit „Label links“ und „Label rechts“ die Unter- bzw. die Obergrenze für diese Reihe der Skala definiert werden. Über den Punkt „Unterüberschrift“ kann zum Beispiel in Form einer Frage eine Unterüberschrift angegeben werden. Jede weitere Reihe der Skala unterhalb eines Eintrags mit Unterüberschrift wird dieser zugeordnet, sofern für diese selbst keine definiert wurde. Folgende Angaben
tsforms_skala_create.JPG

würden bspw. folgende Skala generieren:

tsforms_skala.JPG

Im Bereich „Weitere Optionen“ können für die Überschrift, die Unterüberschriften und die Labels zum einen die Position („linksbündig“, „zentriert“ und „rechtsbündig“) und zum anderen das entsprechende HTML-Element festgelegt werden. Es stehen dabei folgende HTML-Elemente zur Verfügung:

Des Weiteren kann unter „Weitere Optionen“ über dem Punkt „Required“ festgelegt werden, ob die Skala zwingend ausgefüllt werden muss, bevor die Seite verlassen werden kann.

Hinweis: Der Feldtyp „Skala“ ist nicht für MultiForms geeignet.

Matrix
Mit dem Feldtyp „Matrix“ lässt sich eine Tabelle in Form einer Antwortmatrix erstellen, welche die Zusammenfassung verschiedener themenbezogener Fragegruppen ermöglicht. Unter „Anzahl der Auswahlfelder“ können mindestens zwei und maximal elf Radio-Buttons festgelegt werden, welche dem*der Benutzer*in bei der Beantwortung der Fragen zur Auswahl stehen. Unter „Überschriften“ werden schließlich entsprechend der zuvor eingestellten Anzahl an Auswahlfeldern Reihen an Text/Value-Paaren aufgeführt. Für jedes Paar kann mit „Text“ die übergeordnete Überschrift und mit „Value“ der hinterlegte für das Auswahlfeld bestimmt werden. Über dem Punkt „Fragen“ können schließelich eine oder mehrere Fragen, welche als Reihe in der Matrix dargestellt werden, hinterlegt werden. Folgende Angaben
tsforms_matrix1_2.PNG

würden bspw. folgende Matrix generieren:

tsforms_matrix2.PNG

Zusätzlich kann optional für jede Frage der Matrix ein Meta-Wert hinterlegt werden. Diese Meta-Werte können bei der Nutzung des Shortcodes [coach_output_gbu_chart] (siehe Abschnitt „Visualisierung der Werte der Gefährdungsbeurteilung (GBU)“ für weitere Informationen) eingesetzt werden, um die Fragen innerhalb der Matrix einzelnen Subskalen zuzuordnen.

Unter „Weitere Optionen“ können für den übergeordneten Titel der Matrix, die einzelnen Überschriften sowie für den Titel für die Fragenspalte einerseits die Position („linksbündig“, „zentriert“ oder „rechtsbündig“) und andererseits das HTML-Element festgelegt werden. Es stehen dabei folgende Elemente zur Verfügung:

Zusätzlich können für den Titel, die einzelnen Überschriften sowie für den Titel für die Fragespalte auch CSS-Klassen anzugeben. Zur besseren Darstellung wird es empfohlen, die Klasse „hyphens-auto“ zu nutzen, damit längere Worte in den Titeln bzw. Überschriften abhängig von der Breite der Spalte umgebrochen werden.
Außerdem ist es auch möglich, dass die Überschriften in der Matrix auch um 90° gedreht werden können. Dazu muss der Haken bei der Option „Überschriften um 90° gedreht“ gesetzt werden.

matrix_ueberschrift_quer_backend.PNG

Damit die um 90° gedrehten Überschriften korrekt dargestellt werden, muss im Eingabefeld „Höhe der 1. Tabellenzeile in px“ noch die Höhe der 1. Tabellenzeile in ganzen Pixeln festgelegt werden. Dieser Wert muss anhand der individuellen Überschriften angepasst werden.

matrix_ueberschrift_quer.PNG

Bei Bedarf können die Überschriften der Matrix zusätzlich auch unterhalb aller Fragen angezeigt werden. Dazu muss die Checkbox „Überschriften zusätzlich unter der Matrix anzeigen“ aktiviert werden.

matrix_ueberschrift_footer.PNG

Hinweis: Der Feldtyp „Matrix“ ist nicht für MultiForms geeignet.

Upload
Mit dem Feldtyp „Upload“ kann ein Datei-Upload auf der Seite eingebunden werden. Im Bereich Weitere Optionen“ kann dabei der gewünschte Datei-Typ für den Upload festgelegt werden. Es stehen folgende Datei-Typen für den Feldtyp Upload“ zur Auswahl:

Die mit dem Feldtyp „Upload“ hochgeladenen Dateien können im Backend in unter dem Punkt „Medien“ in der „Medienübersicht“ bzw. in der „Mediathek“ eingesehen werden. Im Frontend kann eine Übersicht an Dateien für ein Formular mit dem Shortcode [tspv2_media_grid] (siehe Abschnitt Ausgabe von Dateien für weitere Beschreibungen) angezeigt werden.

ts_forms_upload.PNG

Ausgabe von Formularinhalten

Zur Ausgabe von Formular-Inhalten kann der Shortcode [coach_output_format_data id='tsformid'] genutzt werden. Der Shortcode unterstützt hierbei drei verschiedene Möglichkeiten zur Darstellung des Inhalts, welche über Parameter festgelegt werden können:
text="1"

Mit diesem Parameter wird der Inhalt des angegebenen Formulars in einem <p> -Tag auf der Seite ausgegeben. Der Shortcode [coach_output_format_data id='tsformid' text="1"] erzeugt dabei eine Ausgabe folgender Art:

coach_output_format_data_text.JPG

list="1"

Mit diesem Parameter wird der Inhalt des angegebenen Formulars in einer ungeordneten Liste ( <ul> ) auf der Seite ausgegeben. Diese Variante sollte vor allem für die Darstellung von Checkbox-Liste genutzt werden. Der Shortcode [coach_output_format_data id='tsformid' list="1"] erzeugt dabei eine Ausgabe folgender Art:

coach_output_format_data_list.JPG

table="1"

Mit diesem Parameter wird der Inhalt des angegebenen Formulars als Tabelle ( <table> ) dargestellt. Diese Variante der Darstellung wird standardmäßig und automatisch für MultiForms ausgewählt. Der Shortcode [coach_output_format_data id='tsformid' table="1"] erzeugt dabei eine Ausgabe folgender Art:

coach_output_format_data_table.JPG

Zusätzlich kann mit dem (optionalen) Parameter title ein oder mehrere Titel für die Ausgabe festgelegt werden. Bei mehreren Titeln müssen diese jeweils durch „|“ getrennt werden. Zum Beispiel würde der Shortcode [coach_output_format_data id='tsformid' table="1" title="Spalte_1|Spalte_2|Spalte_3"] folgende Ausgabe erzeugen:

coach_output_format_data_table_title.JPG

Außerdem kann mit dem (optionalen) Parameter placeholder auch ein Platzhalter angegeben werden, welcher angezeigt wird, wenn die Benutzer*innen das mit id angegebene Formular nicht ausgefüllt haben.

Ausgabe von Dateien

Mit dem Shortcode [tspv2_media_grid uploadfieldid="number" view="string"] kann eine Übersicht an Dateien angezeigt werden, welche über ein ausgewähltes Formular hochgeladen wurden.
Mittels des Parameters uploadfieldid muss die ID des Upload-Felds für das Formular für den Datei-Upload angegeben werden. Der Parameter view bestimmt die aktuelle Sicht für das Media-Grid. Es stehen folgende Werte für diesen Parameter zur Verfügung:

Außerdem bietet der Shortcode noch weitere optionale Parameter an, mit denen weitere Einstellungen für das Media-Grid vorgenommen werden können: Mit dem Parameter projectfieldid="number" kann die Feld-ID des Projekt-Dropdown angegeben werden, sodass die hochgeladenen Dateien einzelnen Projekten im Media-Grid zugeordnet werden können. Zusätzlich können die Parameter titlefieldid="number für das Titel-Feld sowie descfieldid="number" für das Beschreibungs-Feld des Formulars genutzt werden, sodass weitere Beschreibungen für die einzelnen Dateien angezeigt werden können. Mit dem Parameter defaultimage="string" kann der relative Pfad für das Standardbild angegeben werden. Über dem Parameter latest="number" kann schließlich die Anzahl der anzuzeigenden Dateien durch einen festen Wert begrenzt werden.

Nachfolgend ein kleines Beispiel, welches die Nutzung des Shortcodes verdeutlichen soll:
Zunächst muss ein Formular wie folgendes für den Datei-Upload erstellt werden:

dateiupload2.PNG

Es wurden hierbei als Felder ein Dropdown-Feld (ID: 3164), ein Textfeld (ID: 3165), eine Textbox (ID: 3166) sowie ein Upload-Feld (ID: 3167) gewählt. Außerdem wurden die beiden Optionen „Formulareingabe manuell absenden“ sowie „Alle Formulareingaben behalten“ ausgewählt. Letztere Option muss ausgewählt sein, damit die Dateien der Benutzer*innen bei mehrfacher Nutzung nicht überschrieben werden. Sobald das Formular für den Upload erstellt wurde, muss der Shortcode für das Media-Grid an der gewünschten Stelle wie folgt eingefügt werden:

                                            
                                            [tspv2_media_grid uploadfieldid='3167' projectfieldid="3164" titlefieldid="3165" descfieldid="3166" view="all" defaultimage=""]
                                        

Die notwendigen Feld-IDs für diesen Shortcode können, wie im obigen Bild dargestellt, in der Übersicht zum entsprechenden Formular eingesehen werden.

Ex-/Import von Formularen

In der Übersicht über alle erstellten Formulare, welche im Backend über „Trainingssystem->Formulare“ erreichbar ist, besteht die Möglichkeit zum Ex- bzw. Import von Formularen.
Für den Export müssen in der Übersicht bei den zu exportierenden Formularen der jeweilige Haken gesetzt werden, anschließend muss über den Button „Formular(e) exportieren“ der Export gestartet werden. Der Export erfolgt in Form einer JSON-Datei bzw. im Falle von mehreren Formularen als ZIP-Datei, welche mehrere JSON-Dateien enthält. Alternativ kann auch innerhalb der Bearbeitungs-Seite eines Formulars dieses ebenfalls exportiert werden.
Für den Import muss in der Übersicht zunächst der Button „Formular(e) importieren“ geklickt werden. Im darauf sich öffnenden Dialog-Fenster kann nun ein oder mehrere Formulare als JSON-Datei über das Upload-Feld hochgeladen werden und die Formulare werden der aktuellen Plattform hinzugefügt.

Duplizieren von Formularen

Ist eine exakte Kopie oder eine Variante eines Formular notwendig, muss dieses nicht unbedingt von Grund auf neu angelegt werden, sondern es kann die Funktion zum Duplizieren eines Formulars genutzt werden. Dazu muss auf der Seite zum Bearbeiten eines Formulars lediglich der Button „Formular duplizieren“ angeklickt werden und eine Kopie des aktuellen Formulars wird erstellt.

Manuelles Absenden von Formularinhalten

Neben der zuvor beschriebenen Möglichkeit zum manuellem Absenden von einzelnen Formularen kann mittels des Shortcodes [ts_forms_submit text="string" link="string" css="string"] auch ein Button auf einer Seite eingebunden werden, mit dem die Inhalte aller Formulare auf dieser Seite manuell abgesendet werden können.
Der Shortcode selbst hat einige optionale Parameter, mit denen weitere Einstellungen am Button vorgenommen werden können: Mit dem Parameter text kann eine Beschriftung für den Button angegeben werden. Wird dieser Parameter weggelassen, wird standardmäßig die Beschriftung „Absenden“ genutzt. Über dem Parameter link (Default-Wert: leer) kann ein Link angegeben werden, zu dem weitergeleitet werden soll, nachdem die Inhalte aller Formulare abgesendet wurden. Mit css (Default-Wert: leer) können weitere CSS-Klassen für den Button angegeben werden. Sollen mehrere CSS-Klassen genutzt werden, müssen diese durch Leerzeichen getrennt werden.
Außerdem kann mit dem Parameter extendedfeedback erweitertes Feedback beim Absenden für die Benutzer*innnen eingebunden werden. Dazu muss der Parameter auf den Wert „true“ gesetzt werden, standardmäßig ist diese Funktionalität allerdings nicht eingeschaltet. Des Weiteren können mit den Parametern extendedfeedbacktext (Default-Wert: „Ihre Eingaben wurden erfolgreich gespeichert.“) bzw. extendedfeedbacktext_fail (Default-Wert: „Ihre Eingaben konnten nicht gespeichert werden. Bitte versuchen Sie es erneut.“) individuelle Texte für das Feedback bei erfolgreichen bzw. fehlgeschlagenen Absenden der Inhalte angegeben werden.

Übungen

Im Backend des Trainingssystem können über „Trainingssystem->Übungen“ Übungen definiert werden, welche über den Shortcode [ts_exercise] in jede beliebige Seite eingebunden werden können. Nach Aufruf des Menüpunkts „Übungen“ wird zunächst eine Übersicht über alle bisher erstellten Übungen zusammen mit der jeweiligen ID, dem Titel der Übung, der Anzahl an Favorisierungen sowie dem Veröffentlichungsdatum angezeigt.
Über den Button „Neue Übung“ kann nun eine neue Übung im System angelegt werden. Zunächst muss hier ein Titel gewählt werden, welcher zudem als Überschrift in der späteren Übung dient. Im darauf folgenden Bildschirm kann nun der Inhalt für die Übung definiert werden. Wie bei einer normalen Seite können hier beliebige HTML-Elemente wie beispielsweise Paragraphen ( <p> ) oder Überschriften ( <h1> bis <h6> ), Medieninhalte wie Audio- oder Video-Dateien oder auch Elemente des Trainingssystem wie Formulare , Akkordeons oder Timer zur Definition des Inhalts der Übungen genutzt werden.

ubung_erstellung.PNG

Des Weiteren kann unter dem Reiter „Übungs Optionen“ der Shortcode zum Einbinden der Übung durch Klick auf den entsprechenden Button in die Zwischenablage kopiert werden. Zusätzlich kann hier eingesehen, wie oft diese Übung bereits durch Benutzer*innen als Favorit markiert wurde.

ubung_optionen.PNG

Über den Button „Daten abrufen“ im Bereich „Übungs wird verwendet in:“ kann zudem abgerufen werden, in welche Seiten der Plattform die aktuell betrachtete Übung eingesetzt wurde.
Wurde eine Übung mittels des Shortcodes [ts_exercise] in eine Seite eingebunden, wird der so eben definierte Inhalt in einem Kasten dargestellt. Im unteren Bereich des Kastens ist ein Button „Zu Favoriten hinzufügen“ verfügbar, mit dem die entsprechende Übung als Favorit markiert und damit auf der Seite „Lieblingsübungen“ auf Wunsch abgerufen werden kann. Über den Button „Aus Favoriten entfernen“ kann die Markierung als Favorit für diese Übung wieder rückgängig gemacht werden.

demo_uebung.PNG

Akkordeon

Um Inhalte nicht unmittelbar anzuzeigen, sondern diese nutzerseitig ausklappbar zu machen, ist ein sogenanntes Akkordeon vorgesehen. Ein einleitender Shortcode kann mit einem Titel versehen werden. Zwischen diesem und einem schließenden Shortcode kann ein beliebiger Inhalt eingefügt werden.

                                            
                                            [accordionmd title="hier steht ein Titel"]
                                            <
                                            p
                                            >

                                            Hier steht ein Satz.
                                            </
                                            p
                                            >
                                            <
                                            p
                                            >

                                            Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
                                            invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
                                            </
                                            p
                                            >

                                            [/accordionmd]
                                        
Daneben steht eine Variante mit kleinerem Titel zur Verfügung:

                                            
                                            [accordionmd title="hier steht ein Titel" title-size="small"]
                                        

accordion.PNG

Radio

Ein weiteres Element, um Inhalte nutzerseitig anzuzeigen, ermöglichen sogenannte "Radio-Buttons". Um Beispielsweise zwei verschiedene Optionen mit jeweils einem Text zu erzeugen, ist der folgenden Shortcode zu integrieren:

                                            
                                            [radiohn name=test name2=testzwei wert=77]
                                        

Die dazugehörigen Texte sind in eine entsprechende Struktur zu bringen:

                                            
                                            <
                                            div
                                            id
                                            =
                                            "test77"
                                            class
                                            =
                                            "textfeld77 info"
                                            >
                                            hier wird test ausgeklappt 
                                            </
                                            div
                                            >
                                            <
                                            div
                                            id
                                            =
                                            "testzwei77"
                                            class
                                            =
                                            "textfeld77 info"
                                            >
                                            hier wird testzwei ausgeklappt
                                            </
                                            div
                                            >
                                        

Um den jeweiligen Text mit dem entsprechenden "Radio-Button" in Verbindung zu bringen, wird ein Wert (im Beispiel 77) im Shortcode verwendet, der dann an die Ids (im Beispiel test77 und testzwei77) und die Klassenbezeichnungen (im Beispiel textfeld77) zu hängen ist. Für jede weitere Konstruktion in dieser Form auf einer Seite sind andere Werte zu verwenden, da Ids nicht mehrfach auf einer Seite vorkommen sollten. Optional können weitere Klassen hinzugefügt werden, beispielsweise info , um den Inhalt farbig hervorzuheben.

radiohn_beispiel.PNG

Quiz

Dieses Element fügt ein einfaches Quiz hinzu. Die korrekte Antwort bekommt die Klasse „info-radio“, die falschen Antworten die Klasse „exer-radio“. Wird das Plugin auch für andere Ausklapp-Elemente benutzt, die eine gewisse Länge nicht übersteigen, wird die Klasse info-radio verwendet.

Jede Antwort bekommt im Shortcode eine Id, die dann in der entsprechenden HTML-Struktur auch verwendet wird. Das ganze Quiz hat einheitliche Klassenbezeichnungen. Ein weiteres Quiz auf einer Seite muss hier andere Bezeichnungen verwenden. Der folgende Shortcode erzeugt die "Radio-Buttons":

                                            
                                            [quizhn antwort="hier steht eine antwort" id=antwort1 class=klasse1]
                                            [quizhn antwort="hier steht eine weitere antwort" id=antwort2 class=klasse1]
                                            [quizhn antwort="antwort drei" id=antwort3 class=klasse1]
                                            [quizhn antwort="antwort vier" id=antwort4 class=klasse1]
                                        

Dazu ist die folgende Struktur zu integrieren:

                                            
                                            <
                                            div
                                            id
                                            =
                                            "antwort1"
                                            class
                                            =
                                            "klasse1 exer-radio"
                                            ><
                                            p
                                            >
                                            Falsch!
                                            </
                                            p
                                            ></
                                            div
                                            >
                                            <
                                            div
                                            id
                                            =
                                            "antwort2"
                                            class
                                            =
                                            "klasse1 info-radio"
                                            ><
                                            p
                                            >
                                            Richtig!
                                            </
                                            p
                                            ></
                                            div
                                            >
                                            <
                                            div
                                            id
                                            =
                                            "antwort3"
                                            class
                                            =
                                            "klasse1 exer-radio"
                                            ><
                                            p
                                            >
                                            Falsch!
                                            </
                                            p
                                            ></
                                            div
                                            >
                                            <
                                            div
                                            id
                                            =
                                            "antwort4"
                                            class
                                            =
                                            "klasse1 exer-radio"
                                            ><
                                            p
                                            >
                                            Falsch!
                                            </
                                            p
                                            ></
                                            div
                                            >
                                        
Das Quiz erlaubt im Grunde die gleiche Funktionalität wie das "Radio". Die Antworten werden hier jedoch untereinander dargestellt und können aus mehreren Wörtern bestehen.

quizhn_beispiel.PNG

Radio-Buttons zurücksetzen

Alle drei Varianten von Radio-Buttons (ts-forms, radiohn, quizhn) können auch zurückgesetzt werden. Dafür ist der Shortcode [tspv2_reset_radios type=''] zu verwenden. Für den Typ "ts-form" wird der Parameter ts-form-id=123 übergeben. Für den Typ "radiohn" ist der der vergebene Wert mit wert=123 einzusetzen. Für den Typ "quizhn" wird die vergebene Klasse mit class=123 übergeben. Außerdem kann die Beschriftung des Buttons über den Parameter label='Radios zurücksetzen' bestimmt werden. Wird die Beschriftung nicht spezifiziert, wird als Standard "Auswahl aufheben" gesetzt.

Conditional Content

Um Inhalt abhängig von der Eingabe eines TS-Formulars anzuzeigen, kann der Shortcode ts_forms_conditional verwendet werden.

                                            
                                            [ts_forms id='123']
                                            [ts_forms_conditional tsformid='123' value='1' samepage='true|false' fieldid='' formgroup='' show_on_default='true|false']
                                            Dieser Inhalt wird angezeigt wenn der User im Formular 123 den Inhalt 1 eingegeben/angeklickt hat.
                                            [/ts_forms_conditional]
                                        

Der Shortcode zur Anzeige des Formulars ( [ts_forms id='123'] ) ist lediglich notwendig, wenn die Eingabe auf der selben Seite wie die Ausgabe des Conditional Content stehen soll. Dies muss nicht zwingend direkt davor sein, irgendwo auf der selben Seite ist ausreichend.

Die Parameter tsformid muss eine gültige TS-Form-ID sein, value und der Content (der Inhalt zwischen dem öffnenden und schließenden Shortcode-Tag) darf nicht leer sein.

Die Parameter samepage , fieldid , formgroup und show_on_default sind optional. samepage kann und sollte bei Verwendung der Ausgabe auf einer anderen Seite als die Eingabe auf false gesetzt werden, um unnötigen JavaScript-Code zu vermeiden. fieldid gibt die ID des Felds an, dessen Formulareingaben auf value überprüft werden sollen. formgroup ist für MultiForm-Formulare interessant, damit kann ausgehend vom Start der Indexierung bei 0 der Index der zu prüfenden Einträge angegeben werden. Beispielsweise kann hiermit überprüft werden, ob ein*e Benutzer*in mehrere neue Zeilen hinzugefügt hat und die Eingabe in der x-ten FormGroup mit value übereinstimmt. Bei allen Formularfeldern kann ein Standardwert eingegeben werden (z.B. kann ein Slider initial in der Mitte bei 50 stehen). Mit dem Attribut show_on_default='true' kann der Conditional Content also bereits angezeigt werden, wenn der*die Benutzer*in die Eingabe noch nicht verändert hat.

Standardwerte sind für samepage = true , fieldid das in der Sortierreihenfolge 1. Feld, bei formgroup die letzte Formgroup (trifft nur auf MultiForms zu, ansonsten gibt es immer nur die 1. FormGroup), bei show_on_default = false .

Der Conditional-Shortcode kann außerdem dazu verwendet werden, Slider auszuwerten und je nach Sliderstellung Inhalte anzuzeigen. Dazu ist die Angabe einer Range für jeden Inhalt erforderlich.

                                            
                                            #!html
                                            <!-- Slider von 0 bis 10: -->

                                            [ts_forms id='123']

                                            <!-- Diese Absätze werden je nach Sliderstellung angezeigt: -->

                                            [ts_forms_conditional tsformid='123' range_min='0' range_max='5' samepage='true]
                                               
                                            <p>
                                            Hier steht Text von 0 bis 5
                                            </p>

                                            [/ts_forms_conditional]

                                            [ts_forms_conditional tsformid='123' range_min='6' range_max='10' samepage='true]
                                               
                                            <p>
                                            Hier steht Text von 6 bis 10
                                            </p>

                                            [/ts_forms_conditional]
                                        

Conditional Content - Verschachtelung

Der Shortcode ts_forms_conditional hat noch 3 Aliasse, die aber nach dem selben Prinzip wie o.g. funktionieren, da ein Shortcode mit dem selben Namen nicht verschachtelt werden darf:

Check Tables

Tabellen können mit einer farbigen Markierung nach dem Ampelschema hinterlegt werden, um Themen oder Fragen zu bewerten. Dazu ist als Grundlage eine Bootstrap-Tabelle mit <table class="table"> zu empfehlen. Diesem Element werden die Klassen check-table und beispielsweise check-table-rgg für rot, gelb, grün (v.l.) hinzugefügt.

Dieses Element kann erforderlich sein, wenn beispielsweise in der ersten (linken) Tabellenspalte speziellen Themen aufgelistet werden und diesen dann in den weiteren Spalten mit einem Schweregrad (rot, gelb, grün) bewertet werden sollen.

Beispiel:

                                            
                                            <
                                            table
                                            class
                                            =
                                            "table check-table check-table-rgg"
                                            >
                                            <
                                            thead
                                            >
                                            <
                                            tr
                                            >
                                            <
                                            th
                                            >
                                            Thema
                                            </
                                            th
                                            >
                                            <
                                            th
                                            >
                                            nicht zufrieden
                                            </
                                            th
                                            >
                                            <
                                            th
                                            >
                                            zufrieden
                                            </
                                            th
                                            >
                                            <
                                            th
                                            >
                                            sehr zufrieden
                                            </
                                            th
                                            >
                                            </
                                            tr
                                            >
                                            </
                                            thead
                                            >
                                            <
                                            tbody
                                            >
                                            <
                                            tr
                                            >
                                            <
                                            td
                                            >
                                            Sind Sie mit ihren Arbeitszeiten zufrieden?
                                            </
                                            td
                                            >
                                            <
                                            td
                                            ></
                                            td
                                            >
                                            <
                                            td
                                            ></
                                            td
                                            >
                                            <
                                            td
                                            ></
                                            td
                                            >
                                            </
                                            tr
                                            >
                                            <
                                            tr
                                            >
                                            <
                                            td
                                            >
                                            Wie bewerten Sie XYZ?
                                            </
                                            td
                                            >
                                            <
                                            td
                                            ></
                                            td
                                            >
                                            <
                                            td
                                            ></
                                            td
                                            >
                                            <
                                            td
                                            ></
                                            td
                                            >
                                            </
                                            tr
                                            >
                                            <
                                            tr
                                            >
                                            <
                                            td
                                            >
                                            Wie bewerten Sie ABC?
                                            </
                                            td
                                            >
                                            <
                                            td
                                            ></
                                            td
                                            >
                                            <
                                            td
                                            ></
                                            td
                                            >
                                            <
                                            td
                                            ></
                                            td
                                            >
                                            </
                                            tr
                                            >
                                            </
                                            tbody
                                            >
                                            </
                                            table
                                            >
                                        

Für alternative Designs, beispielsweise eine andere Farbreihenfolge oder nur zwei Spalten mit rot und grün, muss lediglich der Klassenname entsprechend angepasst werden:

-ggr (grün, gelb, rot)
-rg (rot, grün)
-gr (grün, rot)

checktable1.png

checktable2.png

Mittels der Klasse check-table-gr-h kann außerdem ein Sonderfall für die Check Tables definiert werden. In der grundlegenden Struktur entspricht diese Check Table der Klasse check-table-gr (erste Spalte für Text, zweite (grün) und dritte (rot) Spalte sind ankreuzbar), wobei hier eine vierte Spalte für weiteren Text ergänzt wurde. Der Text in dieser Spalte kann durch Klick auf die rote Spalte angezeigt und durch Klick auf die grüne Spalte wieder verborgen werden. Auf diese Weise können den Benutzer*innen weiterführende Informationen bei bestimmten Bewertungen angezeigt werden.

checktablegrh.PNG

PDF-Dateien erzeugen

Shortcode pdfdownload

Es lassen sich mittels des Shortcodes [pdfdownload] ausgewählte Bereiche einer Seite als PDF-Datei exportieren. Der zu exportierende Inhalt muss dabei durch das öffnende und schließende Tag des Shortcodes wie folgt eingeschlossen werden:

[pdfdownload name="string" format="string" pdfid=number title="string" divid="string" docheadline="string"]

... zu druckender Inhalt

[/pdfdownload]

Der Shortcode verfügt über mehrere Attribute, mit denen gewisse Einstellungen an der PDF selbst bzw. am Download-Link vorgenommen werden können:

Standardmäßig wird für jede Seite des Dokuments mittig am unteren Rand die Seitenzahl beginnend ab der Seitenzahl 1 angegeben.

Der Shortcode liest bei der Bearbeitung Zeile für Zeile des eingeschlossenen Inhalts. Aktuell können folgende Elemente von der dahinterliegenden Funktion interpretiert und in der PDF ausgegeben werden:

Zusätzlich wurden mit [pdfdownloadignorestart] und [pdfdownloadignoreend] zwei weitere Shortcodes definiert, die es ermöglichen, dass bestimmte Zeilen des durch [pdfdownload] eingeschlossenen Inhalts ignoriert werden können. Die zu ignorierenden Zeilen müssen wie folgt durch die beiden Shortcodes eingeschlossen werden:

[pdfdownloadignorestart]
...zu ignorierende Zeilen
[pdfdownloadignoreend]

Die beiden Shortcodes sollte genutzt werden, um für die PDF unerwünschte Inhalte wie Beispiele oder aber auch Elemente zu ignorieren, die nicht in der obigen Liste aufgeführt sind.

Im Folgenden wird die Nutzung der genannten Shortcodes beispielhaft gezeigt:

Angenommen es wurde folgendes HTML-Dokument erzeugt:

                                            
                                            <
                                            h1
                                            >
                                            Beispielseite für das Erzeugen von PDF-Dateien
                                            </
                                            h1
                                            >

                                            <
                                            p
                                            >
                                            Gerne können Sie ihre Notizen als PDF ausdrucken!
                                            </
                                            p
                                            >
                                              

                                            [pdfdownload pdfid=1 name="Test123" title="PDF hier herunterladen!" format="p" divid="TestDiv123" docheadline="Meine eigene Überschrift"]  
                                            <
                                            h4
                                            >
                                            Meine Notizen
                                            </
                                            h4
                                            >
                                              

                                            [coach_output_format_data id='50645' text="1"]  
                                            [pdfdownloadignorestart]  
                                            [accordionmd title="Max Mustermanns Notizen"]  
                                            <
                                            p
                                            >
                                            Max Mustermanns Notizen erscheinen nicht in der PDF, da wir sie ignorieren!
                                            </
                                            p
                                            >
                                              
                                            [/accordionmd]  
                                            [pdfdownloadignoreend]  

                                            <
                                            h4
                                            >
                                            Möchten Sie noch weitere Gedanken notieren?
                                            </
                                            h4
                                            >
                                              

                                            [ts_forms id='50647']  
                                            [/pdfdownload]  
                                            <
                                            div
                                            class
                                            =
                                            "info-radio link"
                                            id
                                            =
                                            "TestDiv123"
                                            >
                                            </
                                            div
                                            >
                                        

Es wird dabei folgende Seite erzeugt:

pdfbsp1.JPG

Ein Klick auf den Link „PDF hier downloaden“ erzeugt die PDF „Test123.pdf“:

pdfbsp2.JPG

Shortcodes pdfprintstart und pdfprintende

Hinweis: Diese Funktion ist veraltet und sollte nicht mehr genutzt werden. Dieser Shortcode erfordert die Installation des Plugins „PDF & Print by BestWebSoft“
Es lassen sich Bereiche mit dem Plugin „PDF & Print by BestWebSoft“ und einer im Trainingssystem integrierten Anpassung als PDF exportieren bzw. drucken.

[pdfprintstart]

…zu druckender Inhalt

[pdfprintende]

Um die Datei zu erhalten, muss an den Pfad der Seite der Parameter &print=pdf angehängt werden. Daraus lässt sich z.B. auch ein Button unter dem zu druckenden Bereich erzeugen. Um eine Datei im Querformat zu erhalten, muss der Parameter wie folgt aussehen: &print=pdf&orientationshortcode=L .

Zu unterscheiden sind zwei Varianten:

Gefährdungsbeurteilung (GBU)

Ausgabe der Werte der Gefährdungsbeurteilung (GBU)

Mit dem Shortcode [coach_output_gbu] können verschiedene Werte der Gefährdungsbeurteilung ausgegeben werden. Der Shortcode erwartet mit id einerseits die ID eines Formulars, andererseits mit mode die Auswahl eines Modus zur Darstellung der Werte der Gefährdungsbeurteilung. Für den Parameter mode stehen folgende möglichen Werte zur Verfügung:

Hinweis: Die Ergebnisse bzw. Auswertungen für Gruppen des Shortcodes [coach_output_gbu] sind nur ab einer Firmen-Größe von mindestens 8 Mitgliedern einsehbar.

Ausgabe des Mittelwerts für einen Block der Gefährdungsbeurteilung (GBU)

Über den Shortcode [tspv2_output_mittelwert_gesamt] kann der Mittelwert über einen gewählten Block ausgegeben werden. Mit dem Parameter id müssen hierbei die IDs aller Formulare als Liste übergeben werden, welche bei der Berechnung des Mittelwerts einfließen sollen. Der optionale Parameter groupbygroups kann genutzt werden, um eine Aufschlüsselung des Wertes nach Gruppen festzulegen (Default-Wert: „false“). Außerdem kann über den Parameter poszuneg festgelegt werden, ob eine Farbskala von positiv nach negativ genutzt werden soll (Default-Wert: „true“).

Hinweis: Die Ergebnisse bzw. Auswertungen für Gruppen des Shortcodes [tspv2_output_mittelwert_gesamt] sind nur ab einer Firmen-Größe von mindestens 8 Mitgliedern einsehbar.

CSV-Download der Daten der Gefährdungsbeurteilung (GBU)

Ein CSV-Download mit Daten der Gefährdungsbeurteilung kann über den Shortcode [tspv2_coach_download_csv_link] eingebunden werden. Der Shortcode erwartet mit data ein JSON-Array an Themen, Unterthemen und Formular-IDs. Mit singleuser kann festgelegt werden, ob für den Download die Daten des*der aktuellen Benutzer*in betrachtet werden sollen (Default-Wert: „false“). Über den Parameter groupbygroups kann festgelegt werden, ob die Daten nach Gruppen aufgeschlüsselt werden sollen (Default-Wert: „false“). Wurde der Parameter singleuser auf den Wert „true“ gesetzt, wird der Parameter groupbygroups ignoriert.
Beispiel für ein JSON-Array für den Parameter data des Shortcodes [tspv2_coach_download_csv_link] :

                                            
                                            {
                                            "Arbeitsumgebung"
                                            :
                                            {
                                            "1 Raumklima"
                                            :
                                            616
                                            ,
                                            "2 Lärm"
                                            :
                                            629
                                            ,
                                            "3 Belechtung und Licht"
                                            :
                                            630
                                            ,
                                            "4 Bewegungsfläche"
                                            :
                                            631
                                            ,
                                            "5 Arbeitsmittel"
                                            :
                                            632
                                            ,
                                            "6 Arbeitstisch und -stuhl"
                                            :
                                            633
                                            ,
                                            "7 Computer-Arbeitsplatz"
                                            :
                                            634
                                            ,
                                            "8 Umfallschutz / Arbeitssicherheit"
                                            :
                                            635
                                            },
                                            "Work-Life-Balance"
                                            :
                                            {
                                            "1 Eingeschränkte Zeit-/ Ortsouveränität"
                                            :
                                            615
                                            ,
                                            "2 Überstunden"
                                            :
                                            636
                                            ,
                                            "3 Zeitdruck"
                                            :
                                            1053
                                            ,
                                            "4 Pausen"
                                            :
                                            1048
                                            ,
                                            "5 Entgrenzung"
                                            :
                                            637
                                            ,
                                            "6 Vereinbarkeit von Arbeit und Freizeit"
                                            :
                                            638
                                            ,
                                            "7  Unterbrechungen"
                                            :
                                            1055
                                            },
                                            "Arbeitsorganisation"
                                            :
                                            {
                                            "1 Qualifizierung / Passung"
                                            :
                                            627
                                            ,
                                            "2 Entscheidungs-/ Handlungsspielraum"
                                            :
                                            639
                                            ,
                                            "3 Aufgabenkomplexität"
                                            :
                                            640
                                            ,
                                            "4 Information"
                                            :
                                            641
                                            ,
                                            "5 Emotionale Inanspruchnahme"
                                            :
                                            642
                                            ,
                                            "6 Prozessgestaltung / Projektorganisation"
                                            :
                                            643
                                            ,
                                            "7 Umgang mit Arbeits-/Projektzielen"
                                            :
                                            644
                                            ,
                                            "8 Meetings"
                                            :
                                            645
                                            },
                                            "Unternehmenskultur"
                                            :
                                            {
                                            "1 Beteiligung"
                                            :
                                            618
                                            ,
                                            "2 Fürsorge"
                                            :
                                            646
                                            ,
                                            "3 Wertschätzung / Fairness"
                                            :
                                            647
                                            ,
                                            "4 Kommunikationskultur"
                                            :
                                            648
                                            ,
                                            "5 Arbeitsklima / Soziale Unterstützung"
                                            :
                                            649
                                            ,
                                            "6 Konfliktmanagement"
                                            :
                                            650
                                            },
                                            "Auswirkung auf die Beschäftigten"
                                            :
                                            {
                                            "1 Erholungsfahigkeit"
                                            :
                                            619
                                            ,
                                            "2 Arbeitszufriedenheit"
                                            :
                                            651
                                            ,
                                            "3 Arbeitsfreude"
                                            :
                                            652
                                            ,
                                            "4 Bindung und Zugehörigkeit"
                                            :
                                            653
                                            }
                                            }
                                        
Bzw. in minified:
                                            
                                            {
                                            "Arbeitsumgebung"
                                            :
                                            {
                                            "1 Raumklima"
                                            :
                                            616
                                            ,
                                            "2 Lärm"
                                            :
                                            629
                                            ,
                                            "3 Belechtung und Licht"
                                            :
                                            630
                                            ,
                                            "4 Bewegungsfläche"
                                            :
                                            631
                                            ,
                                            "5 Arbeitsmittel"
                                            :
                                            632
                                            ,
                                            "6 Arbeitstisch und -stuhl"
                                            :
                                            633
                                            ,
                                            "7 Computer-Arbeitsplatz"
                                            :
                                            634
                                            ,
                                            "8 Umfallschutz / Arbeitssicherheit"
                                            :
                                            635
                                            },
                                            "Work-Life-Balance"
                                            :
                                            {
                                            "1 Eingeschränkte Zeit-/ Ortsouveränität"
                                            :
                                            615
                                            ,
                                            "2 Überstunden"
                                            :
                                            636
                                            ,
                                            "3 Zeitdruck"
                                            :
                                            1053
                                            ,
                                            "4 Pausen"
                                            :
                                            1048
                                            ,
                                            "5 Entgrenzung"
                                            :
                                            637
                                            ,
                                            "6 Vereinbarkeit von Arbeit und Freizeit"
                                            :
                                            638
                                            ,
                                            "7 Unterbrechungen"
                                            :
                                            1055
                                            },
                                            "Arbeitsorganisation"
                                            :
                                            {
                                            "1 Qualifizierung / Passung"
                                            :
                                            627
                                            ,
                                            "2 Entscheidungs-/ Handlungsspielraum"
                                            :
                                            639
                                            ,
                                            "3 Aufgabenkomplexität"
                                            :
                                            640
                                            ,
                                            "4 Information"
                                            :
                                            641
                                            ,
                                            "5 Emotionale Inanspruchnahme"
                                            :
                                            642
                                            ,
                                            "6 Prozessgestaltung / Projektorganisation"
                                            :
                                            643
                                            ,
                                            "7 Umgang mit Arbeits-/Projektzielen"
                                            :
                                            644
                                            ,
                                            "8 Meetings"
                                            :
                                            645
                                            },
                                            "Unternehmenskultur"
                                            :
                                            {
                                            "1 Beteiligung"
                                            :
                                            618
                                            ,
                                            "2 Fürsorge"
                                            :
                                            646
                                            ,
                                            "3 Wertschätzung / Fairness"
                                            :
                                            647
                                            ,
                                            "4 Kommunikationskultur"
                                            :
                                            648
                                            ,
                                            "5 Arbeitsklima / Soziale Unterstützung"
                                            :
                                            649
                                            ,
                                            "6 Konfliktmanagement"
                                            :
                                            650
                                            },
                                            "Auswirkung auf die Beschäftigten"
                                            :
                                            {
                                            "1 Erholungsfahigkeit"
                                            :
                                            619
                                            ,
                                            "2 Arbeitszufriedenheit"
                                            :
                                            651
                                            ,
                                            "3 Arbeitsfreude"
                                            :
                                            652
                                            ,
                                            "4 Bindung und Zugehörigkeit"
                                            :
                                            653
                                            }}
                                        

Visualisierung der Werte der Gefährdungsbeurteilung (GBU)

Mittels des Shortcodes [coach_output_gbu_chart] können Auswertungen der Ergebnisse von Befragungen wie der Gefährdungsbeurteilung in Form von Diagrammen visualisiert werden. Für diesen Shortcode sind verschiedene Sichten verfügbar, welche abhängig von der Rolle des*der entsprechenden Benutzer*in angezeigt werden:

Der Shortcode erwartet mit dem Parameter id die ID oder eine Liste an IDs (durch „,“ getrennt) von Matrix-Formularen, wobei jede Matrix einer Skala entspricht. Es wird empfohlen, die Fragen innerhalb einer Matrix über das Meta-Feld in einzelne Subskalen einzuteilen (vgl. Beschreibung des Formularfeldes „Matrix“ im Abschnitt „TS-Forms“ ). Für jede Skala bzw. jede Matrix werden für eine Gruppe zwei verschiedene Arten an Diagrammen erstellt:
Zunächst wird der Mittelwert für jede angegebene Subskala einer Skala für die aktuelle Gruppe in einem Säulendiagramm dargestellt. Für die Sichten für die Führungskräfte und Krankenkassenadmins werden hier zusätzlich auch die Mittelwerte für die gesamte Firma als Vergleichswert angegeben.

gbu_chart_bar.PNG

Darauffolgend werden die Häufigkeitsverteilungen für die einzelnen Items bzw. Fragen der Matrix gruppiert nach den einzelnen Subskalen in Form von Liniendiagrammen angezeigt.

gbu_chart_line.PNG

Die Auswertungen werden abhängig von der Anzahl an Teilnehmenden dargestellt. Gab es bei einem Item bzw. einer Frage einer Matrix nicht genügend Antworten, wird die entsprechende Häufigkeitsverteilung für diese Gruppe nicht angezeigt. Gleichzeitig wird das dazugehörige Werte-Paar für die Subskala aus dem Säulendiagramm entfernt, welche dem Item bzw. der Frage über das Meta-Feld innerhalb der Matrix zuvor zugeordnet wurde. Wurde für eine Gruppe eine Teamleitung eingestellt, werden die Eingaben von diesem*r Benutzer*in für diese Gruppe nicht berücksichtigt.
Soll nur einer der beiden Typen an Diagrammen angezeigt werden, kann der optionale Parameter charttype genutzt werden. Für den Wert „bar“ wird lediglich die Auswertung in Form eines Säulendiagramm angezeigt, mit dem Wert „line“ werden die Häufigkeitsverteilungen für die Items bzw. Fragen des Matrix-Formulars dargestellt. Standardmäßig werden beide Arten an Diagramm-Typen in der oben beschriebenen Reihenfolge in eine Seite eingebunden. Mittels des optionalen Parameters charttitle können die Namen der Skalen bzw. eigene Bezeichnungen angegeben werden, welche jeweils oberhalb eines Blocks an Diagrammen eines Matrix-Formulars als Überschrift platziert werden. Sollen mehrere Namen angegeben werden, müssen diese durch das Zeichen „|“ voneinander getrennt werden.
Über den optionalen Parameter showpdfdownload kann unter den Ergebnissen für jede Gruppe ein Download-Link automatisch eingefügt werden, welcher den Download der Ergebnisse als PDF-Datei ermöglicht. Dazu muss der Wert für diesen Parameter auf „1“ gesetzt werden ( showpdfdownload="1" ). Mit dem ebenfalls optionalen Parameter pdfdownloadtitle kann anstelle des Standardwerts „Auswertung als PDF herunterladen“ eine eigene Beschriftung des Download-Links gewählt werden. Alternativ kann der Download der gesamten Ergebnisse als PDF auch über den Shortcode pdfdownload (siehe den Abschnitt „PDF-Dateien erzeugen“ ) ermöglicht werden.

Freigabe von Inhalten

Freigabe von Inhalten ermöglichen

Mithilfe des Shortcodes [forward_content id="number"] kann ein Button auf einer Seite eingebunden werden, der es ermöglicht, den Inhalt eines Formulars einer Führungskraft bzw. einem Krankenkassenadmin freizugeben. Über den Parameter id muss hierbei die ID für das entsprechende Formular angegeben werden. Wurde der Inhalt auf diese Weise für ein Formular freigegeben, wird der Button durch einen „Freigabe aufheben“-Button ersetzt, mit dem die Freigabe für das angegebene Formular durch den*die Benutzer*in zurückgesetzt werden kann. Wurde die Freigabe so zurückgesetzt, kann der Inhalt wie zuvor freigegeben werden.

Ausgabe freigegebener Inhalte

Mit dem Shortcode [coach_output_forward_content id="string" printlabels="number" boss="number" kadmin="number" headlines="string"] können für eine Führungskraft oder für einen Krankenkassenadmin alle Inhalte von Benutzer*innen einer Firma, die durch diese freigegeben wurden, auf einer Seite eingebunden werden. Die freigegebenen Inhalte werden anonym und für jede Gruppe separat gesammelt für jedes Feld eines Formular für die Führungskraft bzw. für den Krankenkassenadmin angezeigt. Wurden keine Inhalte für ein Formular freigegeben, wird der Führungskraft bzw. dem Krankenkassenadmin der Text "Sie sehen nichts, da für Sie noch keine Texte freigegeben wurden." angezeigt. Handelt es sich um den*die Benutzer*in um keine Führungskraft oder einem Krankenkassenadmin, wird der Text "Sie sehen nichts, da Sie nicht die notwendigen Berechtigungen für diesen Inhalt haben." dargestellt.
Über den Parameter id kann eine oder mehrere IDs von Formularen angegeben werden, welche zuvor mit dem Shortcode [ts_forms] erzeugt wurden. Werden mehrere IDs angegeben, müssen diese jeweils durch Komma getrennt werden.
Mittels des (optionalen) Parameters printlabels kann zusätzlich angegeben werden, ob die Labels einzelner Felder eines Formulars angezeigt werden sollen. Dies ist vor allem als inhaltliche Trennung zwischen zwei oder mehreren Feldern eines einzelnen Formulars zu empfehlen. Sollen die Labels von Feldern angezeigt werden, muss dies mit printlabels="1" festgelegt werden. Die Labels werden standardmäßig nicht angezeigt.
Mit Hilfe der beiden Parameter boss und kadmin kann eingestellt werden, welche Rollen die freigegebenen Inhalte einsehen sollen. Hierfür müssen die entsprechenden Parameter auf den Wert "1" gesetzt werden, also boss="1" bzw. kadmin="1" .
Mit dem optionalen Parameter headlines können eigene Überschriften definiert werden, welche vor den jeweiligen Formularen angezeigt werden (die erste in headlines angegebene Überschrift wird vor dem ersten in id angegebenen Formular platziert, usw.). Sollen mehrere Überschriften angegeben werden, müssen diese durch das Zeichen "|" voneinander getrennt werden. Soll vor einem bestimmten Formular keine Überschrift platziert werden, muss die Überschrift in der in headlines angegebenen Liste an der entsprechenden Sztelle leer gelassen werden.
Bei der Darstellung der freigegebenen Inhalte werden Formulare mit einzelnen Feldern, Formulare mit mehreren Feldern sowie MulitForms unterstützt. Für die Formulare mit mehreren Feldern und für die MultiForms werden hierbei jeweils für jedes einzelne Feld die Inhalte gesammelt dargestellt, sodass hier eine inhaltliche Trennung vorzufinden ist.

Coachingmodus-Formulare

Mit dem Shortcode [coachingmodeform training="number" title="number" multichoice="number" modi="string"] lässt sich an jeder Stelle im Trainingssystem ein Formular für das angegebene Training anzeigen, mit dem der/die Benutzer*in selbst den gewünschten Coaching-Modus einstellen kann.
Über den Parameter training muss hierbei die ID des Trainings angegeben werden, für welches das Coachingmodus-Formular angezeigt werden soll. Die ID eines Trainings kann auf der Seite „Training zuweisen“ eingesehen werden.
Mit dem (optionalen) Parameter title kann festgelegt werden, ob der Titel des angegebenen Trainings im Formular erscheinen soll. Dies kann mit title="1" angegeben werden. Standardmäßig wird der Titel des Trainings nicht im Coachingmodus-Formular angezeigt.
Mittels des (optionalen) Parameters multichoice kann für ein Formular angegeben werden, ob dieses mehrfach abgeschickt werden darf. Dazu muss der Parameter im Shortcode auf 1 gesetzt werden ( multichoice="1" ). Darf das Formular für das angegebene Training nur einmal abgesendet werden, wird für den*die Benutzer*in, wenn diese/r die Auswahl für den Coaching-Modus angeschickt hat, intern eine Sperre für das Training gesetzt und das Formular wird an anderer Stelle dem*der Benutzer*in nicht mehr angezeigt. Formulare, welche mittels Angabe des Parameters multichoice mehrmals abgeschickt werden dürfen, werden dabei ebenfalls nicht angezeigt, sofern zuvor eine Sperre durch ein Formular für dieses Training gesetzt wurde. Die Sperre für ein Training kann für einen oder mehrere Benutzer*innen auf der Seite „Training zuweisen“ mit dem Button „Reset“ zurückgesetzt werden.
Über dem Parameter modi kann angegeben werden, welche Coaching-Modi dem*der Benutzer*in im Formular zur Auswahl gesetellt werden sollen. Es sind hierbei folgende Werte für den Parameter möglich, welche durch Komma getrennt angegeben werden müssen:

Wird der Parameter modi nicht angegeben werden, stehen alle der oben genannten Coaching-Modi im Formular zur Auswahl.

coachingmodeform_bsp.PNG

Hinweis: Erfolgt beim Absenden des Formulars ein Wechsel vom Modus „selbstständig“ bzw. „E-Coaching bei Bedarf“ zum Modus „Umfasendes E-Coaching“, erfolgt gleichzeitig ein Wechsel des Trainings-Modus zum Modus „begleitet“. Wird vom Coaching-Modus „Umfassendes E-Coaching“ zu einem der anderen beiden Modi gewechselt, wird der Trainings-Modus auf den Modus „sequentiell“ für das Training geändert.

Ausgabe von Inhalten

Ausgabe des Inhalts eines Textfeldes in einen Paragraph

Mithilfe des folgenden Shortcode kann der Inhalt eines ein- oder mehrzeiligen Textfeldes als Text an jeder beliebigen Stelle einer Seite ausgegeben werden:

[copyfieldtext id=number]

[copyfieldtext] erwartet mit id die ID, welche im Shortcode [ts_forms] für das ein- bzw. mehrzeilige Textfeld angegeben wurde. Der Shortcode erzeugt an der Stelle, an der dieser gesetzt wurde, einen Paragraph ( <p> ), in welchen der Inhalt das Textfeldes kopiert wird. Für eine korrekte Funktionsweise des Shortcodes müssen sich dieser sowie das betreffende Textfeld auf der gleichen Seite befinden.

Ausgabe des Textinhalt von gecheckten Checkboxen in einer Liste

Der folgende Shortcode ermöglicht es, den Inhalt von gecheckten Elemente einer Checkbox-Liste in einer Liste ausgeben zu lassen:

[copycheckbox id=number]

[copycheckbox] erwartet mit id die ID, welche im [ts_forms] -Shortcode für die Checkbox-Liste angegeben wurde. Der Shortcode erzeugt an der Stelle, an der dieser gesetzt wurde, eine Liste ( <ul> ), in welchen die Inhalte der Checkbox-Liste kopiert werden. Für eine korrekte Funktionsweise des Shortcodes müssen sich dieser sowie das betreffende Checkbox-Liste auf der gleichen Seite befinden.

Ausgabe von Beschreibungen einer Check Table

Mithilfe des folgenden Shortcodes können durch den*die Benutzer*in ausgewählte Beschreibungen einer Check Table in ein Textfeld kopiert werden:

[copychecktableitems id="string" pos=number sammlung="string"]

Der Shortcode erwartet folgende Attribute:

Anzeigen von Beiträgen

Mit dem Shortcode [tspv2_latest_posts] ist es möglich, eine gewisse Anzahl an Beiträgen (engl. Posts) auf einer Seite anzuzeigen. Der Shortcode verfügt über einige optionale Parameter, mit denen weitere Einstellungen an der Auflistung der Beiträge vorgenommen werden können:

Gamification-Elemente

Fortschrittsübersicht

Hinweis: Diese Funktion ist veraltet und wird eventuell bald überarbeitet.
Um den Fortschritt für ein Training in Prozentwerten auszugeben, ist folgender Shortcode zu verwenden:

[hnprogress tname=Trainingsname percent=1 ]
Der Trainingsname ( tname ) ist dabei der Name, der bei Erstellung des Trainings vergeben wurde. Dieser wird auch unter den verschiedenen Auflistungen der Trainings angezeigt.

Trainingsfortschritt

Mit dem Shortcode [tspv2_trainingprogress] lässt sich für Benutzer*innen der aktuelle Fortschritt für alle zugewiesenen Trainings sowie die untergeordneten Lektionen in Prozent anzeigen. Über den optionalen Parameter titel kann eine eigene Überschrift ausgewählt werden. Wird dieser Parameter nicht angegeben oder ist der Wert für den Titel leer, wird der Default-Wert „Detail Trainingsfortschritt“ genutzt.

Verleihung von Abzeichen

Um Abzeichen für das Absolvieren von einer Lektion oder des gesamten Trainings zu verleihen, wird der Shortcode [tspv2_abzeichen_modal] benötigt. Bei der Benutzung ist Folgendes zu berücksichtigen:

Der Shortcode muss in jeder Lektion eines Trainings jeweils in der letzten Seite eingebunden werden.

Der Shortcode verfügt über optionale Parameter, mit denen individuelle Anpassungen vorgenommen werden können:

Der Pfad zu einer Bilddatei bzw. zu einem GIF für die Parameter srclektion und srctraining kann über das WordPress-Backend abgerufen werden. Dazu muss zunächst die Mediathek der Plattform über „Medien->Medienübersicht“ aufgerufen werden. Anschließend muss nur noch die entsprechende Datei durch einen Klick ausgewählt werden. Die Adresse ist in der Dateiübersicht auf der rechten Seite unter „Datei-URL“ abrufbar. Diese muss im Shortcode für den entsprechenden Parameter eingefügt werden.
Es ist ratsam, dass bei der Nutzung der Parameter zur Angabe des Pfades einer Bilddatei ( srclektion und srctraining ) oder zur Vergabe eines individuellen Textes im Modal ( textlektion und texttraining ) diese sowohl für die Lektionen als auch für das Training bei allen Einfügungen des Shortcodes in die Lektionen eines Trainings mit angegeben werden. Der Grund liegt darin, dass die Lektionen eines Trainings nicht unbedingt in Reihenfolge durch die Benutzer*innen in bestimmten Fällen bearbeitet werden, sodass der Abschluss des gesamten Trainings und somit das Anzeigen des entsprechenden Modals nicht unbedingt durch das Beenden der letzten Lektion erfolgt.

Folgendes Beispiel soll die Nutzung des Shortcodes [tspv2_abzeichen_modal] verdeutlichen:

[tspv2_abzeichen_modal srclektion="MEINE_PLATTFORM/wp-content/uploads/2021/09/heart.png" srctraining="MEINE_PLATTFORM/wp-content/uploads/2021/09/heart.gif" textlektion="Herzlichen Glückwunsch! Sie haben diese Lektion erfolgreich abgeschlossen!" texttraining="Herzlichen Glückwunsch! Sie haben das Training erfolgreich abgeschlossen!" titel="Super!" buttontitel="Fortfahren"]

abzeichen_modal_beispiel.PNG

Weitere interaktive Elemente

Drag&Drop-Spiel

Der Shortcode [tspv2_drag_drop_game sections="" items1="" items2="" items3=""] integriert ein einfaches Drag&Drop-Spiel, bei dem verschiedene Begriffe jeweils einem Bereich zugeordnet werden sollen. Nach der Zuordnung ist eine Auswertung über einen entsprechenden Button möglich. Die Bereiche werden über das Attribut sections von links nach rechts gelesen angelegt. Es müssen mindestens zwei Bereiche (Sections) hinterlegt werden. Die Begriffe werden sortiert nach ihrer Zugehörigkeit zu einem Bereich mit items1 (zugehörig zur ersten Section), items2 und items3 angelegt. Standardmäßig sind verschiedene Grautöne als Farben hinterlegt. Diese können z.B. mit colors="red, green, yellow" geändert werden. Auch die Hex-Schreibweise (#FF0000) wird unterstützt. Auch hier gelten die Anweisungen von links nach rechts, sodass die linke Section rot wäre, die mittlere grün und die rechte gelb.

Beispiel: Der folgende Shortcode integriert ein Spiel mit eigener Farbgebung, in dem Tiere ihrer Klasse zugeordnet werden sollen:

[tspv2_drag_drop_game sections="Vögel, Säugetiere, Fische" items1="Specht, Amsel, Meise" items2="Maus, Wal, Bär" items3="Hecht, Aal, Steinbutt" colors="#fed330, #45aaf2, #2bcbba"]
dd-game.png

Timer

Mithilfe des Shortcodes [ts_timer h=number m=number s=number format="string" stop=number] lässt sich ein Timer/Countdown in eine Seite einbinden. Mit den Parametern h , m und s lässt sich die Zeit in Stunden, Minuten bzw. Sekunden für den Timer angeben. Wird einer dieser Parameter bei der Nutzung des Shortcodes weggelassen, wird für die entsprechende Zeiteinheit der Default-Wert 0 genutzt.
Mit dem Paramter format lässt sich die Art der Zeitdarstellung festlegen. Folgende Werte sind hierbei möglich:

Über den Parameter stop lässt sich der Modus für den Timer/Countdown festlegen:

ts_timer_beispiel.PNG

Tooltips

Für einzelne Worte oder längere Textpassagen können sogenannte Tooltips im Trainingssystem genutzt werden, sodass bei Hovern über dieses Element eine weitere Beschreibung als kleines Pop-up angezeigt werden kann. Hierfür wurde die Tooltip-Funktionalität von Bootstrap integriert.
Die Tooltip-Funktionalität kann auf folgende Weise eingebunden werden:

                                            
                                            Bitte hovern Sie 
                                            <
                                            span
                                            data-toggle
                                            =
                                            "tooltip"
                                            data-placement
                                            =
                                            "bottom"
                                            title
                                            =
                                            "Hier kann eine Beschreibung eingefügt werden!"
                                            >
                                            HIER
                                            </
                                            span
                                            >
                                            , um weitere Beschreibungen zu erhalten.
                                        
Das Element, für welches das Tooltip angezeigt werden soll, muss hierbei durch ein HTML-Element wie <span> eingeschlossen werden. Über das Attribut data-toggle wird hierbei das Tooltip für das Element integriert. Die Position des Tooltips wird über das Attribut data-placement angegeben, wobei hierbei die Werte "top", "bottom", "left" und "right" möglich sind. Mit dem Attribut title kann die Beschreibung festgelegt werden, welche im Tooltip dargestellt werden soll.
Das obige Beispiel würde folgendes Ergebnis liefern:
TooltipBsp1.JPG
Grundsätzlich sollte bei der Nutzung von Tooltips darauf geachtet werden, dass auch erkennbar ist, dass sie auf der Seite vorhanden sind. Dazu sollte das Element, für das das Tooltip dargestellt werden soll, durch entsprechende Mittel, z.B. gepunktetes Unterstreichen mit style="text-decoration:underline;text-decoration-style: dotted;" , Fettdruck mit <b> oder ähnlichem, gekennzeichnet werden.

Trainingsentwicklung: Layout und visuelle Elemente

Layout

Das Layout wird in erster Linie durch das Theme Coachlight geregelt. Wie bereits einleitend erwähnt, enthält das Trainingssystem jedoch auch relevante Komponenten.

Bootstrap

(Zwei) Spalten mit Bootstrap-Klassen: Das Frontend-Framework Bootstrap stellt Inhalte in einem 12er-Grid dar. Die Ziffern in den Klassenbezeichnungen müssen zusammen jeweils 12 ergeben, wenn zwei Spalten dargestellt werden sollen. Soll die ganze Breite mit einer Spalte gefüllt werden, ist 12 einzutragen (wie im Beispiel bei xs für mobile Geräte).

Beispiel für zwei Spalten mit einem Bild links (zu vier Anteilen) und einem Text rechts (zu acht Anteilen):

                                            
                                            <
                                            div
                                            class
                                            =
                                            "row"
                                            >
                                            <
                                            div
                                            class
                                            =
                                            "col-xs-12 col-sm-4 col-md-4 col-lg-4"
                                            >
                                            <
                                            img
                                            class
                                            =
                                            "img-responsive pull-left"
                                            src
                                            =
                                            "...."
                                            alt
                                            =
                                            "text"
                                            />
                                            </
                                            div
                                            >
                                            <
                                            div
                                            class
                                            =
                                            "col-xs-12 col-sm-8 col-md-8 col-lg-8"
                                            >
                                            <
                                            p
                                            >
                                            Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
                                                 tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
                                                 At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
                                                 no sea takimata sanctus est Lorem ipsum dolor sit amet.
                                            </
                                            p
                                            >
                                            </
                                            div
                                            >
                                            </
                                            div
                                            >
                                        

Um beispielsweise ein kleines Bild (z.B. Portrait einer Person) mit einem entsprechenden Text anzuzeigen, sind folgende Werte zu empfehlen:

                                            
                                            <
                                            div
                                            class
                                            =
                                            "row"
                                            >
                                            <
                                            div
                                            class
                                            =
                                            "col-xs-6 col-sm-3 col-md-2 col-lg-2"
                                            >

                                                BILD
                                              
                                            </
                                            div
                                            >
                                            <
                                            div
                                            class
                                            =
                                            "col-xs-12 col-sm-9 col-md-10 col-lg-10"
                                            >

                                                TEXT
                                              
                                            </
                                            div
                                            >
                                            </
                                            div
                                            >
                                        

Klassen

Für das Layout steht in Bootstrap eine Vielzahl an Klassen zur Verfügung. Die genaue Verwendung ist der Dokumentation von Bootstrap selbst zu entnehmen. Ein unterer Abstand (margin-bottom) ist beispielsweise über die Klassen mb-0 bis mb-5 zu realisieren.

                                            
                                            #!html
                                            <div
                                            class=
                                            "container"
                                            >
                                            <div
                                            class=
                                            "mb-1"
                                            >
                                            Ich habe wenig Abstand nach unten
                                            </div>
                                            <div
                                            class=
                                            "mb-5"
                                            >
                                            Ich habe viel Abstand nach unten
                                            </div>
                                            <div>
                                            Ich bin nur so hier und verdeutliche den Abstand des Divs über mir.
                                            </div>
                                            </div>
                                        

Ein oberer Abstand (margin-top) ist entsprechend mit den Klassen mt-0 bis mt-5 umzusetzen. Auch links und rechts ist durch entsprechende Klassen abgedeckt. Ein Innenabstand (padding) funktioniert auf die gleiche Weise (pb-0 bis pb-5). Weiterhin können mit sm, md, lg, und xl die Bildschirmgrößen hinzugefügt werden, für die der Abstand gelten soll. Beispiel: mb-md-5 für einen großen unteren Abstand bei kleiner bis mittlerer Bildschirmbreite.

Daneben sind im Theme Coachlight einige Klassen integriert worden, um Eigenschaften für das Layout und Design zu vergeben. Diese sollten jedoch nicht mehr verwendet werden. Für die Umsetzung der entsprechenden Anweisungen stehen zahlreiche Klassen von Bootstrap zur Verfügung:

Funktion Bootstrap 4 (TS ab Version 2.1.0) alte Klassen (nicht mehr verwenden!)
Innenabstand .p-1, .p-2, ... .abstand
Abstand rechts .mr-1, .mr-2, ... .abstand-rechts
Innenabstand rechts .pr-1, .pr-2, ... .padding-rechts
(Innen-)Abstand oben .mt-1, .mt-2, .pt-1, .pt-2, ... .bildhoehe, .oben30, .rowabstand
(Innen-)Abstand unten .mb-1, .mb-2, ... .marginbottom10, .marginbottom20
(Innen-)Abstände unterbinden .m-0, .p-0, .mb-0, pl-0, ml-0, ... .keinabstand, .nomarginbottom, .keineinzug
kein (Innen-)Abstand oben .mt-0, .pt-0 .keinabstandoben
Bild über die ganze Breite .w-100 .bildbreite

Bereiche

Um Bereiche innerhalb der Trainingsseiten kenntlich zu machen, stehen Klassen zur Verfügung. So kann beispielsweise eine Überschrift mit einem farbigen Rahmen versehen werden (Klasse "info") und ein entsprechendes Icon (Klasse "icon-info") davor angezeigt werden. Neben der Klasse Info, um z.B. auf Informationsbereiche hinzuweisen, ist auch eine Klasse "exer" (von Exercices) für einen Übungsbereich vorhanden. Für diese Klasse wird eine entsprechende Highlight-Farbe verwendet, wodurch sie auch für andere Inhaltsbereiche für die Aufmerksamkeitssteuerung verwendet werden kann.

                                            
                                            <
                                            div
                                            class
                                            =
                                            "info"
                                            >
                                            <
                                            div
                                            class
                                            =
                                            "icon-info"
                                            ></
                                            div
                                            >
                                            <
                                            h3
                                            >
                                            Überschrift in h3
                                            </
                                            h3
                                            >
                                            </
                                            div
                                            >
                                        

Soll über mehrere Zeilen hinweg, beispielsweise in einem größeren "Kasten", informiert werden, kann das Code-Beispiel auch mit einem p-Tag (anstatt hier h3) verwendet werden.

beispiel_info_exer.PNG

Automatische Silbentrennung

Mit der CSS-Klasse „hyphens-auto“ kann eine automatische Silbentrennung für Texte erzwungen werden.

Shortcode-Übersicht für visuelle Elemente

Im Folgenden werden visuelle Elemente beschrieben, welche in Trainingsseiten eingefügt werden können. Einiger dieser Elemente werden dabei als Shortcode eingebunden. Die folgende Tabelle soll hierbei als Übersicht über alle Shortcodes für visuelle Elemente dienen:

Shortcode Funktion Parameter
[ts_carousel] Slideshow fullwidth für Art der Slideshow (optional, Default-Wert: „“ (kleine Variante)), controls (nur für fullwidth="1" ) für das Einbinden von Buttons zum manuellen Durchschalten der Bilder (optional, Default-Wert: „“ (keine Buttons)), indicators (nur für fullwidth="1" ) für das Einbinden von Indikatoren (optional, Default-Wert: „“ (keine Indikatoren)), text (nur für fullwidth="1" ) für das Einbinden von Beschriftungen für die Bilder (optional, Default-Wert: leeres Array), headline (nur für fullwidth="1" ) für das Einbinden von Überschriften für die Bilder (optional, Default-Wert: leeres Array), textcolor (nur für fullwidth="1" ) für die Angabe einer Farbe für den Text (optional, Default-Wert: „FFFFFF“ (weiß)), headlinecolor (nur für fullwidth="1" ) für die Angabe einer Farbe für die Überschriften (optional, Default-Wert: „FFFFFF“ (weiß)), links (nur für fullwidth="1" ) für die Angabe von Links (optional, Default-Wert: leeres Array), linktexts (nur für fullwidth="1" ) für die Angabe von Beschriftungen für die Links (optional, Default-Wert: leeres Array), interval (nur für fullwidth="0" ) für die Angabe der Zeit in ms bis zum Wechsel zum nächsten Bild (optional, Default-Wert: 2000), amount (nur für fullwidth="0" ) für die Anzahl an Bildern, die zur gleichen Zeit angezeigt werden sollen (optional, Default-Wert: 3), border (nur für fullwidth="0" ) für das Einbinden eines Rahmens um die Bilder (optional, DefaultWert: „1“)

Icons

Einbinden von Icons

Für den Einsatz von Icons im Trainingssystem wird die Bibliothek Font Awesome empfohlen. Wurde ein passendes Icon gefunden, kann der HTML-Code in die Zwischenablage kopiert und somit auf einfache Weise in der Seite eingebunden werden:

                                            
                                            <
                                            p
                                            >
                                            Hier wurde ein Herz mit der Klasse "fas fa-heart" eingebunden: 
                                            </
                                            p
                                            >
                                            <
                                            i
                                            class
                                            =
                                            "fas fa-heart"
                                            ></
                                            i
                                            >
                                        

fontawesome-icon.PNG

TS-Icons

Zusätzlich können für die Icons auch Kreise in der Highlight-Farbe des aktuelllen Themes ergänzt werden, welche diese umschließen. Dazu muss neben den Klassen für das Icon aus der Bibliothek „Font Awesome“ die Klasse „ts-icon“ sowie eine der drei Klassen „ts-icon-small“, „ts-icon-medium“ oder „ts-icon-large“ zur Angabe der Größe des Kreises genutzt werden. Soll das Icon selbst weiß sein, muss daneben noch die Klasse „white“ eingefügt werden.

ts-icon.PNG

Slideshow

Mit dem Shortcode [ts_carousel] lässt sich eine Slideshow auf einer Seite einbinden, welche automatisch durch eine Reihe an Bildern schaltet. Die Bilder müssen dabei auf folgende Weise durch die Tags des Shortcodes eingeschlossen werden:

                                            
                                            [ts_carousel]
                                            <
                                            img
                                            src
                                            =
                                            "..."
                                            alt
                                            =
                                            "..."
                                            >

                                            ...
                                            <
                                            img
                                            src
                                            =
                                            "..."
                                            alt
                                            =
                                            "..."
                                            >

                                            [/ts_carousel]
                                        

Zusätzlich verfügt dieser Shortcode optionale Parameter, mit denen weitere Anpassungen an der Slideshow vorgenommen werden können:

Die kleine Variante verfügt über weitere Parameter:

Weitere Elemente des Trainingssystems

LimeSurvey Anbindung

Im Rahmen einer Kooperation wurde von effective webwork eine LimeSurvey Integration für das Trainingssystem-Plugin entwickelt. Hiermit ist es möglich vor Beginn eines Trainings, direkt nach Beendigung des Trainings und nochmals nach einer gewissen Zeitspanne nach Beendigung des Trainings eine Befragung mittels einer LimeSurvey Umfrage durchzuführen. Ebenfalls werden die Teilnehmenden mit jeweils bis zu 2 Erinnerungsmails auf die beiden Befragungen nach Beendigung hingewiesen, sollten sie die Befragung noch nicht durchgeführt haben. Diese Umfragen werden außerhalb des Trainingssystems erstellt und durchgeführt und werden durch Verlinkungen in der Lektionsübersicht in das Trainingssystem eingebunden. Um diese Funktion nutzen zu können, sind vorab einige Einstellungen vorzunehmen:

LimeSurvey_ACF.png

Demo-Training

Der Shortcode [tspv2_demo_login id="123"] ermöglicht Demo-Trainings, die ohne den herkömmlichen Login-Prozess funktionieren. Zunächst muss ein Demo-Benutzer mit der Rolle „Abonnent“ im System angelegt werden. Diesem Demo-Benutzer können dann „Schnupperversionen“ bzw. Demo-Trainings wie gehabt über die Trainingszuweisung freigegeben werden. Über den Parameter id muss hierbei die ID für den entsprechenden Demo-Benutzer angegeben werden. Der Shortcode verfügt über optionale Parameter:

Um die Berechtigung des Speicherns für den Demo-Benutzer zu entziehen, muss auf der Nutzer-Detail-Seite die Checkbox „User darf Inhalte in der Datenbank speichern“ abgewählt werden.

Hinweis: Der mit dem Shortcode [tspv2_demo_login] erzeugte Button für den Login als Demo-Benutzer wird für eingeloggte Benutzer*innen ausgeblendet.

Studien-Export

Mit dem Shortcode [tspv2_study_export] kann ein Export von Benutzereingaben für Formulare der Typen „Skala“ oder „Matrix“ in eine Seite eingebunden werden. Über den Parameter titel kann anstelle des Default-Werts „Studien-Export“ ein eigener Titel für den Export ausgewählt werden.
Für den Export der Eingaben sind grundsätzlich zwei Schritte nötig:
Im ersten Schritt müssen in der Tabelle im oberen Bereich der Übersicht einerseits die gewünschten Trainings durch das Setzen der entsprechenden Checkboxen ausgewählt sowie eine Auswahl an Skala- bzw. Matrix-Formularen für den Export bestimmt werden. Die Formulare können hierbei über die Checkbox-Liste gewählt werden. Es ist dabei auch möglich, nach bestimmten Bezeichnungen oder IDs über die Such-Funktion gesucht werden. Neben der Auswahl von Trainings kann der Export auch auf bestimmte Lektionen des Trainings beschränkt werden, indem die entsprechenden Checkboxen auf Lektions-Ebene gesetzt werden.
Wurde eine Auswahl an Trainings bzw. Lektionen sowie Formularen getroffen, muss zusätzlich noch angegeben werden, für welche Benutzer*innen der Plattform der Export durchgeführt werden soll. Eine Auswahl an Benutzer*innen kann dabei über die Liste bzw. über die Such-Funktion oberhalb der Liste bestimmt werden.
Abschließend muss für den Export nur noch auf den „Exportieren“-Button geklickt werden und die zu exportierenden Daten werden als CSV-Datei heruntergeladen.

Hinweis: Je nach Auswahl der Trainings sowie Benutzer*innen kann der Export der Daten ein wenig Zeit in Anspruch nehmen.

Lieblingsübungen

Eine Übersicht über alle Übungen , die durch die Benutzer*innen als Favorit markiert wurden, kann über den Shortcode [tspv2_exercise_favorites] in eine Seite eingebunden werden. Auf dieser Seite können die Benutzer*innen die favorisierten Übungen erneut betrachten sowie auf Wunsch diese über den Button „Aus Favoriten entfernen“ aus der Übersicht wieder entfernen. Außerdem ist es möglich, über den Button „Übung aus Training X“ bzw. „Übung aus einer anderen Seite“ direkt zur Seite zu gelangen, in der die entsprechende Übung eingebunden bzw. als Favorit markiert wurde.

lieblingsuebungen.PNG

Mit dem optionalen Parameter titel kann anstelle des Standardwerts „Lieblingsübungen“ eine eigene Überschrift für diese Seite festgelegt werden. Des Weiteren kann über den optionalen Parameter orderby die Sortierung für die Übungen bestimmt werden. Es sind hierbei folgende Werte möglich:

Zertifikate

Hinweis: Diese Funktion ist veraltet und wird bald überarbeitet.

Neben Abzeichen können auch Zertifikate eingestellt werden, welche bei Abschluss des Trainings den Benutzer*innnen ausgestellt werden. Dazu muss zunächst für das entsprechende Training im Backend unter „Trainingssystem->Zertifikate“ ein Zertifikat erstellt und im Dropdown-Menü dem Training zugeordnet werden. Über den Shortcode [tspv2_zertifikate] kann eine Übersicht über alle Zertifikate eingebunden werden.

Hilfe-/Kontaktinformationen

Mit dem Shortcode [tspv2_show_contactinfo] können den Benutzer*innen Informationen für den Kontakt bzw. für Hilfe bereitgestellt werden. Über den optionalen Parameter titel kann eine eigene Überschrift anstelle des Standardwerts „Kontakt“ festgelegt werden. Soll keine Überschrift angezeigt werden, muss dies durch einen leeren Wert ( title="" ) angegeben werden.
Grundsätzlich werden den Benutzer*innen die Kontaktinformationen der eigenen Führungskraft, dem zugeordneten Krankenkassenadmin und einem zugeordneten Coach angezeigt. Für jeden Kontakt ist hierbei der Name, die E-Mail-Adresse sowie eine Telefonnummer aufgeführt, sofern diese im System hinterlegt wurden. Ist eine Person mit einer der genannten Rollen für eine*n Benutzer*in nicht vorhanden, weil bspw. diesem*r kein Coach zugewiesen wurde oder für die Firma keine Führungskraft bzw. kein Krankenkassenadmin eingetragen wurde, wird kein Kontakt für diese Rolle in der Auflistung angezeigt. Soll einer oder mehrere dieser festen Kontakte bewusst nicht aufgeführt werden, können diese über den optionalen Parameter exclude für die Darstellung ausgeschlossen werden. Dazu müssen eine oder mehrere der folgenden Rollen als Liste (mehrere Elemente müssen durch Komma getrennt werden) diesem Parameter übergeben werden:

Des Weiteren können neben den oben aufgeführten Kontakten für die Rollen Führungskraft, Krankenkassenadmin und Coach auch noch weitere Kontakte als Liste über den Parameter contacts angegeben werden. Es sind hierbei zwei Formen für die Angabe eines Kontakts möglich:
In der ersten Variante kann ein weiterer Kontakt in der Form „Titel|Name|E-Mail-Adresse|Telefonnummer“ angegeben werden. Diese Variante ist zu empfehlen, wenn der Kontakt kein Profil im System besitzt.
Alternativ kann in der zweiten Variante ein Kontakt auch in der Form „Titel|ID“ aufgeführt werden, wobei es sich um „ID“ bei der ID eines*r Benutzer*in handelt, welche auf der Plattform registriert ist.
Bei beiden Varianten kann über den ersten Wert „Titel“ eine Überschrift für diesen Kontakt bestimmt werden. Mehrere Kontakte müssen dabei jeweils durch ein „||“ voneinander getrennt werden.
Mit dem optionalen Parameter mode kann die Art der Darstellung der Kontakte festgelegt werden. Es stehen hierbei folgende Werte zur Auswahl:

Nachfolgend werden einige Beispiele zur Nutzung dieses Shortcodes aufgeführt:

Es werden die Kontaktinformationen für die Führungskraft, für den Krankenkassenadmin sowie den Coach, aber für keine weitere Rolle aufgeführt.

                                            
                                            [tspv2_show_contactinfo]
                                        

contactinfo_nocard.PNG

Es werden die Kontaktinformationen für die Führungskraft und den Krankenkassenadmin angezeigt. Die Rolle Coach wird hier über den Parameter exclude bewusst ausgeschlossen und dementsprechend nicht dargestellt. Die einzelnen Kontakte erhalten hier einen Rahmen und werden untereinander aufgelistet.

                                            
                                            [tspv2_show_contactinfo exclude="coach" mode="singlecard"]
                                        

contactinfo_singlecard.PNG

Es werden hier alle festen Rollen über den Parameter exclude ausgeschlossen und nicht angezeigt. Stattdessen werden zwei Kontakte angezeigt, welche über den Parameter contacts angegeben wurden. Die einzelnen Kontakte erhalten jeweils einen Rahmen und es werden pro Reihe jeweils zwei Kontakte nebeneinander dargestellt.

                                            
                                            [tspv2_show_contactinfo exclude="boss, kadmin, coach" mode="multicard" 
                                            contacts="Ihr Ansprechpartner für technische Fragen|Test1|test1@test123.de|0123456789||Ihr Ansprechpartner für inhaltliche Fragen|259"]
                                        

contactinfo_multicard.PNG

Entwicklung

Allgemeine Hinweise zur Weiterentwicklung des Plugins

Aufbau des Plugins

Dem Plugin liegt die folgende Struktur zugrunde:

Funktionalität hinzufügen

Zur Weiterentwicklung des Plugins ist die vorgegebene Struktur einzuhalten. Im Folgenden ist anhand eines Beispiels erläutert, wie bei Weiterentwicklungen vorzugehen ist.

Beispiel: Es soll eine neue Funktionalität, beispielsweise das Verwalten von Benutzer*innen, Betrachten von Eingaben o.ä., entstehen:

  1. Im Backend unter Settings muss ein neuer Eintrag entstehen.
    Dazu muss die Datei unter module -> Settingspage um diesen Eintrag erweitert werden.
  2. Es muss ein Menüeintrag hinzugefügt werden.
    Dazu muss die Datei unter module -> frontend-menu erweitert werden, die auf Settings zugreift.
  3. Der hauptsächliche Programmcode der Funktion kann/sollte zu einem eigenen Modul gemacht werden.
  4. Das neue Modul muss unter includes -> class-trainingssystem-plugin-dependencies.php referenziert werden, damit es geladen wird.
  5. Es wird ein Shortcode angelegt, der den Programmcode aus 3.) lädt.
    Dazu muss ein entsprechender Eintrag in includes -> hooks-define -> ...-hooks-define-public.php angelegt werden.
  6. Es muss ein Template angelegt werden, welches innerhalb des Shortcodes geladen und ausgegeben wird.
  7. Damit die neue Funktion/Seite bei erstmaliger Installation des Gesamtsystems bereits hinzugefügt wird, kann eine automatische Funktion zum Anlegen verwendet werden. Dazu muss die neue Funktion unter module -> demodata -> ...-demodata.php hinterlegt werden.

Wenn nur eine kleinere Funktionalität mit einem Shortcode implementiert werden soll, müssen nur die Punkte 3-6 abgearbeitet werden. Für Filter oder Actions müssen nur die Punkte 3-5 bearbeitet werden. Hier sind anstatt Shortcodes entsprechend Filter oder Actions angelegt werden.

Hinweis zu Punkt 7.: Es sollte beim Hinterlegen einer neuen Seite unter module -> demodata -> ...-demodata.php darauf geachtet werden, dass die Seite nicht bereits zuvor im Trainingssystem angelegt wurde oder dass sich eine Seite mit dem gleichen Namen nicht im Papierkorb von WordPress befindet.

Umgang mit Nachrichten vom System (Alerts)

Im Trainingssystem werden Nachrichten durch das System, sogenannte Alerts, genutzt, die die Benutzer*innen über bestimmte Zustände informieren können. Es gibt Alerts für Hinweise, Warnungen und Fehler, welche alle ein spezielles Icon sowie eine eigene Farbe haben. Für die Alerts werden Klassen von Bootstrap genutzt. Das übergeordnete <div> -Element für den Alert muss grundsätzlich die Klasse alert sowie eine Kontext-Klasse der Form alert-KONTEXT haben. Des Weiteren muss für dieses Element auch role="alert" angegeben werden.
Es hat sich für die Alerts im Traningssystem ein gewisser Standard etabliert. Dieser sollte bei der Weiterentwicklung des Plugins beibehalten werden. Bei der Nutzung von Alerts gelten dabei folgende Regeln:

Nachfolgend folgt eine Übersicht über die verschiedenen Alerts innerhalb des Trainingssystems.

Hinweise

Der Alert für Hinweise wird genutzt, wenn ein Dialog oder eine Anzeige in einem bestimmten Status möglicherweise unklar sein könnte. Für Hinweise muss die Klasse alert-info genutzt werden. Beispiel: Eine Liste ist leer, weil noch keine Einträge hinzugefügt wurden.

                                            
                                            <
                                            div
                                            class
                                            =
                                            "alert alert-info"
                                            role
                                            =
                                            "alert"
                                            >
                                            <
                                            h5
                                            ><
                                            i
                                            class
                                            =
                                            "fas fa-info-circle"
                                            ></
                                            i
                                            >
                                            &nbsp;
                                            Hinweis
                                            </
                                            h5
                                            >
                                            <
                                            p
                                            >

                                                    Sie haben noch keine Übungen als Lieblingsübung markiert.
                                                
                                            </
                                            p
                                            >
                                            </
                                            div
                                            >
                                        

alert_hinweis.PNG

Warnungen

Der Alert für Warnungen wird genutzt, wenn ein Fehler bzw. größeres Problem noch vermeidbar ist, wenn richtig gehandelt wird. Für Warnungen muss die Klasse alert-warning genutzt werden. Beispiel: Wollen Sie wirklich löschen?

                                            
                                            <
                                            div
                                            class
                                            =
                                            "alert alert-warning"
                                            role
                                            =
                                            "alert"
                                            >
                                            <
                                            h5
                                            ><
                                            i
                                            class
                                            =
                                            "fas fa-exclamation-triangle"
                                            ></
                                            i
                                            >
                                            &nbsp;
                                            Warnung
                                            </
                                            h5
                                            >
                                            <
                                            p
                                            >

                                                    Der User ist noch im Systems als Psychologischer Coach, Supervisor und Führungskraft hinterlegt. Bitte tragen
                                                    Sie dafür Sorge, dass die Nachfolge des Users geregelt ist, damit die Funktionen aller involvierten Personen
                                                    erhalten bleiben.
                                                
                                            </
                                            p
                                            >
                                            <
                                            p
                                            >

                                                    Hier steht noch ein zweiter Absatz.
                                                
                                            </
                                            p
                                            >
                                            </
                                            div
                                            >
                                        

alert_warnung.PNG

Fehler

Der Alert für Fehler wird genutzt, wenn tatsächlich ein Fehler aufgrund einer Nutzereingabe passiert ist. Für Fehler muss die Klasse alert-danger genutzt werden. Beispiel: Ein Shortcode wurde falsch verwendet.

                                            
                                            <
                                            div
                                            class
                                            =
                                            "alert alert-danger"
                                            role
                                            =
                                            "alert"
                                            >
                                            <
                                            h5
                                            ><
                                            i
                                            class
                                            =
                                            "fas fa-times-circle"
                                            ></
                                            i
                                            >
                                            &nbsp;
                                            Fehler
                                            </
                                            h5
                                            >
                                            <
                                            p
                                            >

                                                    Der Shortcode [XYZ] wurde möglicherweise falsch verwendet. Bitte überprüfen Sie ihre Eingabe.
                                                
                                            </
                                            p
                                            >
                                            </
                                            div
                                            >
                                        

alert_fehler.PNG

Zusätzlich kann die Klasse alert-link für Links innerhalb der Alerts genutzt werden, sodass diese eine zum Alert passende Farbe erhalten.

                                            
                                            <
                                            div
                                            class
                                            =
                                            "alert alert-info"
                                            role
                                            =
                                            "alert"
                                            >
                                            <
                                            h5
                                            ><
                                            i
                                            class
                                            =
                                            "fas fa-info-circle"
                                            ></
                                            i
                                            >
                                            &nbsp;
                                            Hinweis
                                            </
                                            h5
                                            >
                                            <
                                            p
                                            >

                                                    Ein 
                                            <
                                            a
                                            href
                                            =
                                            "#"
                                            class
                                            =
                                            "alert-link"
                                            >
                                            Beispiel-Link
                                            </
                                            a
                                            >
                                             in einem Hinweis-Alert.
                                                
                                            </
                                            p
                                            >
                                            </
                                            div
                                            >

                                            <
                                            div
                                            class
                                            =
                                            "alert alert-warning"
                                            role
                                            =
                                            "alert"
                                            >
                                            <
                                            h5
                                            ><
                                            i
                                            class
                                            =
                                            "fas fa-exclamation-triangle"
                                            ></
                                            i
                                            >
                                            &nbsp;
                                            Warnung
                                            </
                                            h5
                                            >
                                            <
                                            p
                                            >

                                                    Ein 
                                            <
                                            a
                                            href
                                            =
                                            "#"
                                            class
                                            =
                                            "alert-link"
                                            >
                                            Beispiel-Link
                                            </
                                            a
                                            >
                                             in einem Warnung-Alert.
                                                
                                            </
                                            p
                                            >
                                            </
                                            div
                                            >

                                            <
                                            div
                                            class
                                            =
                                            "alert alert-danger"
                                            role
                                            =
                                            "alert"
                                            >
                                            <
                                            h5
                                            ><
                                            i
                                            class
                                            =
                                            "fas fa-times-circle"
                                            ></
                                            i
                                            >
                                            &nbsp;
                                            Fehler
                                            </
                                            h5
                                            >
                                            <
                                            p
                                            >

                                                    Ein 
                                            <
                                            a
                                            href
                                            =
                                            "#"
                                            class
                                            =
                                            "alert-link"
                                            >
                                            Beispiel-Link
                                            </
                                            a
                                            >
                                             in einem Fehler-Alert.
                                                
                                            </
                                            p
                                            >
                                            </
                                            div
                                            >
                                        

alert_link.PNG

Design ändern

Das Layout, die verwendeten Abstände und grundlegende Regeln zur Erscheinung der Trainings werden im Trainingssystem selbst unter assets--sass bestimmt. Die visuelle Erscheinung der mit diesem Trainingssystem entwickelten Trainings wird hauptsächlich durch das Theme Coachlight erzeugt. Prinzipiell ist es möglich, dieses Theme durch andere auszutauschen, die ebenfalls auf Bootstrap basieren. Dadurch können jedoch mehr oder weniger umfangreiche Anpassungen erforderlich werden. Wegen der engen Verzahnung von Plugin und Theme empfiehlt es sich, Farben, Schriften, Größen, Formen etc. im Theme Coachlight und ggf. im Plugin selbst nach eigenen Bedürfnissen anzupassen. Eine einfache Farbänderung beispielsweise ist aufgrund der Verwendung von scss-Variablen im oberen Bereich des Plugins und Themes schnell und einfach möglich.

Rollen und Rechte

Neben den Rollen von WordPress wurden für das Trainingssystem weitere Rollen implementiert:

Jede dieser Rollen hat eine Menge an Berechtigungen, welche in einem eigenen Berechtigungssystem in Form einer Tabelle auf der Plattform bei Bedarf angepasst werden kann. Soll eine Rolle eine weitere Berechtigungen erhalten oder soll diese entzogen werden, muss in der Tabelle, welche im Backend unter „Trainingssystem->Berechtigungen“ erreichbar ist, für die Rolle für die entsprechende Funktion der Haken aus- bzw. abgewählt werden.

Folgende Tabelle stellt aktuell den Standard für die Rollen und ihre Berechtigungen dar:

Funktion Administrator Training-Entwickler Psychologischer Coach Supervisor Krankenkassenadmin Führungskraft Datenadmin Teamleitung
Coaching-Übersicht ja nein ja nein nein nein nein nein
Datenexport ja nein nein nein nein nein ja nein
Firmen ja nein nein nein ja nein nein nein
Firmen - Alle Firmen sehen ja nein nein nein nein nein nein nein
Firmen - Meine Firmen sehen ja nein nein nein ja nein nein nein
Freigegebene Texte einsehen (Führungskraft-Sicht) ja nein nein nein nein ja nein nein
Freigegebene Texte einsehen (Krankenkassenadmin-Sicht) ja nein nein nein ja nein nein nein
Freischaltecodes ja ja nein nein ja nein nein nein
Nachrichten versenden ja nein ja ja nein nein nein nein
Nachrichtenverlauf einsehen ja nein ja ja nein nein nein nein
Nutzer anlegen ja ja nein nein ja nein nein nein
Nutzer-Details ja ja ja ja ja nein nein nein
Nutzer-Details bearbeiten ja ja nein ja ja nein nein nein
Nutzer-Import ja ja nein nein ja nein nein nein
Nutzerberechtigungen ja nein nein nein nein nein nein nein
Nutzerliste ja ja ja ja ja nein nein nein
Nutzerliste - Alle Abonnenten ja ja nein nein nein nein nein nein
Nutzerliste - Alle Coach-Teilnehmer ja nein ja nein nein nein nein nein
Nutzerliste - Alle Firmenmitglieder ja nein nein nein ja nein nein nein
Nutzerliste - Alle Nutzenden ja nein nein ja nein nein nein nein
Supervisoren-Übersicht ja nein nein ja nein nein nein nein
Systemstatistiken ja ja nein nein nein nein ja nein
Trainings bearbeiten ja ja nein nein nein nein nein nein
Trainings Ex-/Import ja nein nein nein nein nein nein nein
Trainings zuweisen ja ja ja ja nein nein nein nein
Trainingsvorlagen ja ja nein nein ja nein nein nein
User-Modus ja nein ja ja nein nein nein nein
Visualisierungen von Befragungsergebnissen einsehen (Führungskraft-Sicht) ja nein nein nein nein ja nein nein
Visualisierungen von Befragungsergebnissen einsehen (Krankenkassenadmin-Sicht) ja nein nein nein ja nein nein nein
Visualisierungen von Befragungsergebnissen einsehen (Teamleitung-Sicht) ja nein nein nein nein nein nein ja

Grundsätzlich können nur Benutzer*innen mit der Rolle „Administrator“ anderen Benutzer*innen Rollen beim Anlegen des Accounts bzw. nachträglich über die Bearbeiten-Funktion der Nutzer-Detail-Seite vergeben. Ein*e Benutzer*in kann dabei mehrere der oben aufgeführten Rollen haben. Die Berechtigungen werden addiert, ein*e Benutzer*in verliert hierbei nicht den Zugriff auf eine Funktion.
Neben den vordefinierten können auch eigene Rollen für die Plattform definiert werden. Dazu muss über den „+ Rolle“-Button eine neue Rolle mit ID, Titel sowie Beschreibung erstellt werden. Anschließend muss für diese Rolle ein Set an Berechtigungen bestimmt und die Auswahl gespeichert werden. Die neue Rolle erscheint schließlich in der Tabelle für die Berechtigungen sowie (für Benutze*innen mit der Rolle „Administrator“) auf der Seite zum Anlegen von neuen Accounts und bei der Bearbeitungsfunktion innerhalb der Nutzer-Detail-Seite.
Wurden Veränderungen am oben genannten Standard für die Berechtigungen durchgeführt, kann dieser über den Button „Standard wiederherstellen“ wiederhergestellt werden. Dies hat zur Folge, dass alle Berechtigungen für die vordefinierten Rollen zurückgesetzt und neu angelegte Rollen gelöscht werden.

Einen Release erzeugen

Um einen neuen Release zu erzeugen, sind folgende Schritte notwendig:

  1. Die Versionsnummer in der trainingssystem-plugin.php -Datei muss entsprechend der Menge der Änderungen auf eine neue Haupt- oder Unterversion erhöht werden.

  2. In der readme.txt -Datei sind die vorgenommenen Änderungen im Changelog kurz zu beschreiben. Diese Übersicht wird dem WordPress-Nutzer im Aktualisierungsvorgang angezeigt.

  3. Sofern gulp mitsamt der benötigten Abhängigkeiten noch nicht installiert ist, muss dies im Projektordner geschehen. Eine beispielhafte Anleitung findet sich bspw. hier: gulpJS . Hierbei wird von npm automatisch der node_modules -Ordner angelegt und mit den benötigten npm-Projekten gefüllt. Deshalb wird dieser Ordner auch nicht über das Repository synchronisiert, sondern muss bei jedem*r Anwender*in neu gebaut werden.

  4. Befindet man sich mit einem Terminal im entsprechenden Projektordner, wird mit gulp customcopy der Bau der neuen Version gestartet. Sobald dieser Prozess fertiggestellt ist, zeigt das Terminal dies mit einem Finished 'customcopy' after xxx ms an. Im Ordner output befindet sich nun ein Ordner mit den Plugin-Dateien sowie eine ZIP-Datei, welche die selben Dateien in komprimierter Form enthält. Diese ZIP-Datei kann beispielsweise über einen Update-Server oder manuell über das WordPress-Backend verteilt und aktualisiert werden.

Code Samples

input data * https://developer.wordpress.org/plugins/security/securing-input/ * als Beispiel: wird hier der Title eingelesen und wieder ausgegeben.

                                            
                                            #!php

                                            $twig = Trainingssystem_Plugin_Twig::getInstance()->twig;
                                            ob_start();

                                            $current_user = wp_get_current_user();
                                            if ( 0 == $current_user->ID ) {
                                                echo $twig->render('notloggedin.html');
                                                exit;
                                            }

                                            $title="";

                                            $nonceaction = TRAININGSSYSTEM_PLUGIN_SLUG.'submit';
                                            $noncefield = 'teststring';

                                            if (!isset( $_POST[$noncefield] ) ||
                                                !isset($_POST['title']) ||
                                                !wp_verify_nonce($_POST[$noncefield], $nonceaction ) ) {
                                                 print 'Sorry, your nonce did not verify.';
                                                 exit;
                                            } else {
                                                 $title = sanitize_text_field($_POST['title']);
                                                 echo $twig->render('testview.html', [
                                                        'title'=> $title,
                                                        'submitnonce'=>wp_nonce_field($nonceaction,$noncefield,true,false)] );
                                            }
                                            return ob_get_clean();
                                        
                                            
                                            #!html

                                            <
                                            h2
                                            >
                                            {{title}}
                                            </
                                            h2
                                            >
                                            <
                                            form
                                            method
                                            =
                                            "post"
                                            >
                                            <
                                            input
                                            id
                                            =
                                            "title"
                                            type
                                            =
                                            "text"
                                            name
                                            =
                                            "title"
                                            >
                                            <
                                            input
                                            type
                                            =
                                            "submit"
                                            value
                                            =
                                            "Submit"
                                            >

                                            {{submitnonce | raw}}
                                            </
                                            form
                                            >
                                        

Der Gutenberg Editor
Vier Dateien: * 1xJS
1xCSS(optional)
1xPHP(geht auch ohne, wir nutzen das aber für twig templates)
* 1xTwig html

                                            
                                            #
                                            !
                                            javascript

                                            (
                                            function
                                            ()
                                            {
                                            var
                                            __
                                            =
                                            wp
                                            .
                                            i18n
                                            .
                                            __
                                            ;
                                            // The __() for internationalization.
                                            var
                                            el
                                            =
                                            wp
                                            .
                                            element
                                            .
                                            createElement
                                            ;
                                            // The wp.element.createElement() function to create elements.
                                            var
                                            registerBlockType
                                            =
                                            wp
                                            .
                                            blocks
                                            .
                                            registerBlockType
                                            ;
                                            // The registerBlockType() to register blocks.
                                            var
                                            RichText
                                            =
                                            wp
                                            .
                                            editor
                                            .
                                            RichText
                                            ;
                                            registerBlockType
                                            (
                                            'gb/trainingssystem-block-test1'
                                            ,
                                            {
                                            // Block name. Block names must be string that contains a namespace prefix. Example: my-plugin/my-custom-block.
                                            title
                                            :
                                            'Test2'
                                            ,
                                            // Block title.
                                            icon
                                            :
                                            'shield-alt'
                                            ,
                                            // Block icon from Dashicons → https://developer.wordpress.org/resource/dashicons/.
                                            category
                                            :
                                            'md-trainingssystem-9872'
                                            ,
                                            // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed.
                                            attributes
                                            :
                                            {
                                            images
                                            :
                                            {
                                            default
                                            :
                                            [],
                                            type
                                            :
                                            'array'
                                            ,
                                            },
                                            content
                                            :
                                            {
                                            default
                                            :
                                            "kein content"
                                            ,
                                            type
                                            :
                                            'string'
                                            ,
                                            }
                                            },
                                            edit
                                            ({
                                            attributes
                                            ,
                                            setAttributes
                                            ,
                                            className
                                            ,
                                            focus
                                            ,
                                            id
                                            })
                                            {
                                            var
                                            content
                                            =
                                            attributes
                                            .
                                            content
                                            ;

                                            function
                                            onChangeContent
                                            (
                                            newContent
                                            )
                                            {
                                            setAttributes
                                            (
                                            {
                                            content
                                            :
                                            newContent
                                            ,
                                            images
                                            :
                                            [
                                            "img1"
                                            ,
                                            "img2"
                                            ]}
                                            );
                                            }

                                            return
                                            el
                                            (
                                            RichText
                                            ,
                                            {
                                            tagName
                                            :
                                            'p'
                                            ,
                                            className
                                            :
                                            className
                                            ,
                                            onChange
                                            :
                                            onChangeContent
                                            ,
                                            value
                                            :
                                            content
                                            ,
                                            }
                                            );
                                            },
                                            save
                                            ({
                                            attributes
                                            ,
                                            className
                                            })
                                            {
                                            //gutenberg will save attributes we can use in server-side callback
                                            return
                                            null
                                            ;
                                            },
                                            });
                                            })();
                                        
                                            
                                            #
                                            !
                                            php

                                            // muss in der haupt include datei wie folgt geladen werden -> $this->loader->add_action( 'init', $Trainingssystem_Plugin_Module_Block_Test, 'yourgutenberg_block');
                                            class
                                            Trainingssystem_Plugin_Module_Block_Test
                                            {
                                            public
                                            function
                                            yourgutenberg_block
                                            ()
                                            {
                                            //optional
                                            wp_register_style
                                            (
                                            'nameof-mystyle'
                                            ,
                                            plugins_url
                                            (
                                            '../../../assets/css/blocks/test1.css'
                                            ,
                                            __FILE__
                                            ),
                                            array
                                            (
                                            'wp-edit-blocks'
                                            ),
                                            $path
                                            .
                                            '/css/blocks/test1.css'
                                            );
                                            //optional
                                            wp_register_style
                                            (
                                            'nameof-mystyle-editor'
                                            ,
                                            plugins_url
                                            (
                                            '../../../assets/css/blocks/test1.css'
                                            ,
                                            __FILE__
                                            ),
                                            array
                                            (
                                            'wp-edit-blocks'
                                            ),
                                            plugins_url
                                            (
                                            '../../../assets/css/blocks/test1.css'
                                            ,
                                            __FILE__
                                            ));

                                            wp_register_script
                                            (
                                            'name-ofyour-script-js2'
                                            ,
                                            plugins_url
                                            (
                                            '../../../assets/js/blocks/test2.js'
                                            ,
                                            __FILE__
                                            ),
                                            array
                                            (
                                            'wp-blocks'
                                            ,
                                            'wp-i18n'
                                            ,
                                            'wp-element'
                                            ,
                                            'wp-editor'
                                            ));

                                            //name muss exact der gleiche sein wie in dem javascript dokument
                                            register_block_type
                                            (
                                            'gb/trainingssystem-block-test1'
                                            ,
                                            array
                                            (
                                            'editor_script'
                                            =>
                                            'name-ofyour-script-js2'
                                            ,
                                            // 'editor_style' => 'nameof-mystyle-editor', //optional
                                            // 'style' => 'nameof-mystyle',//optional
                                            'render_callback'
                                            =>
                                            array
                                            (
                                            $this
                                            ,
                                            'trainingssystem_block_test1_render_callback'
                                            ),
                                            'attributes'
                                            =>
                                            array
                                            (
                                            'content'
                                            =>
                                            array
                                            (
                                            'type'
                                            =>
                                            'string'
                                            ,
                                            'default'
                                            =>
                                            'kein content'
                                            ,
                                            ),
                                            'images'
                                            =>
                                            array
                                            (
                                            'type'
                                            =>
                                            'array'
                                            ,
                                            'default'
                                            =>
                                            [],
                                            'items'
                                            =>
                                            [
                                            'type'
                                            =>
                                            'string'
                                            ,
                                            'integer'
                                            ,
                                            ],
                                            ),
                                            ),
                                            ));
                                            }

                                            public
                                            function
                                            trainingssystem_block_test1_render_callback
                                            (
                                            $attributes
                                            )
                                            {
                                            if
                                            (
                                            !
                                            empty
                                            (
                                            $attributes
                                            ))
                                            {
                                            $twig
                                            =
                                            Trainingssystem_Plugin_Twig
                                            ::
                                            getInstance
                                            ()
                                            ->
                                            twig
                                            ;
                                            return
                                            $twig
                                            ->
                                            render
                                            (
                                            'gutenberg-block-test1.html'
                                            ,
                                            [
                                            'images'
                                            =>
                                            $attributes
                                            [
                                            'images'
                                            ],
                                            'text'
                                            =>
                                            $attributes
                                            [
                                            'content'
                                            ],
                                            ]);
                                            }
                                            return
                                            '<div></div>'
                                            ;
                                            }
                                            }
                                        
                                            
                                            #!html

                                            <h2>
                                            test gutenberg mit twig 
                                            </h2>
                                            {#<div class=bullet-container>
                                              {% for image in images%}
                                              <span class=bullet-filled> {{image}} </span>
                                              {% endfor %}
                                            </div>#}

                                            <div
                                            class=
                                            "info"
                                            >
                                            <div
                                            class=
                                            "icon-info"
                                            ></div>
                                            <h4>
                                            {{
                                            text
                                            }}
                                            </h4>
                                            </div>
                                        

PDF-Print

Das PDF-Print Plugin ist in seiner jetzigen Version nicht für PHP > 7 optimiert. Da in diesem Plugin aber manuell Änderungen vorgenommen wurden, die nicht mit einer neueren Version des PDF-Plugins kompatibel sind, wurde das Plugin angepasst um die Fehler zu unterdrücken. Diese Unterdrückung der Fehler wirkt sich aber auch auf das ganze Trainingssystem-Plugin aus, da PDF-Print immer eingebunden wird. Wird für die Weiterentwicklung eine Fehlerausgabe gewünscht, so ist in der Datei pdf-print.php die Zeile 31 error_reporting(0); auskommentiert werden. Zm Exportieren als PDF muss das Error-Reporting dann wieder unterdrückt werden.

Patch-Funktion

Die Patch-Funktion dient dazu Inhalte der Datenbank zu bearbeiten und auch auf Tabellen zuzugreifen, die mit dem Update-Funktion der Trainingssystem-eigenen Tabellen nicht erreichbar sind. Die Patch-Funktion ist im Backend unter dem Menüpunkt Trainingssystem -> Patch zu finden. Hier gibt es die Möglichkeit eine oder mehrere JSON-Dateien hochzuladen und auszuführen. Diese Dateien müssen vorweg erstellt werden und können anschließend z.B. als ZIP-Archiv per Mail oder als Link über den Updateserver an die verschiedenen Installationen verteilt werden. Die Möglichkeit mehrere kleinere Patch-Dateien hochzuladen wurde geschaffen, da eine große Datei mit vielen Ersetzungen die maximale Ausführungszeit des Servers bei Weitem überschreiten würde. Daher ist darauf zu achten, dass die einzelnen Teildateien nicht mehr als ca. 10-15 Änderungen beinhalten, je nach Umfang der Datenbank. Bei einer Testinstallation mit ca. 70.000 Einträgen inkl. Revisionen in der Posts-Tabelle benötigt die Ersetzung von allen 112 Ersetzungen beim Upgrade von Bootstrap 3 auf 4 ca. 15 Minuten. Mit einem Split auf maximal 12 Ersetzungen läuft jede Einzeldatei immer noch ca. 1 Minute, mit der für das Trainingssystem empfohlenen max_execution_time von 120s ist dies ein guter Wert.

Die JSON-Dateien sind wie folgt aufgebaut und können um eine neue Methode (wie bspw. fertige SQL-Statements) neben der bereits implementierten Ersetzen-Funktion erweitert werden:

                                            
                                            #!json

                                            {
                                                "tables": 
                                                    {
                                                        "posts": {
                                                            "replace": [
                                                                {
                                                                    "column": "post_content",
                                                                    "old": "pull-left",
                                                                    "new": "float-left"
                                                                },
                                                                {
                                                                    "column": "post_content",
                                                                    "old": "
                                            <span
                                            class=
                                            \"glyphicon
                                            glyphicon-link
                                            generatepdf\"
                                            ></span>
                                            ",
                                                                    "new": "
                                            <i
                                            class=
                                            \"fas
                                            fa-external-link-alt
                                            generatepdf\"
                                            ></i>
                                            "
                                                                }
                                                            ]
                                                        }
                                                    }
                                            }
                                        

Das Attribut tables ist verpflichtend, darunter kommt für jede zu patchende Tabelle ein Objekt mit dem Tabellennamen ohne Prefix (lediglich posts statt wp_posts). Innerhalb des Tabellennamens existiert ein Objekt pro Methode, hier ist derzeit nur replace implementiert. Die Replace-Methode hat ein Array mit Objekten, wofür jedes Objekt darin für eine Patchaufgabe steht. Dieses Objekt benötigt zwingend die Attribute column, old und new. Dies ersetzt den String <old> durch <new> in der Spalte <column>.