Skip to content

Hilfesystem

Till Uhlig edited this page Jun 21, 2017 · 2 revisions

Wenn die Komponente mittels der Assistants/Model.php entwickelt wurde (siehe Komponenten-erstellen), dann enthält dieses bereits (sofern nicht deaktiviert) eine Funktionalität um Hilfedateien dem allgemeinen Hilfesystem (CHelp) zur verfügung zu stellen.

Die Hilfedateien werden später von der Benutzerschicht über CHelp abgerufen und sofern es sich um .md Dateien handelt, diese auch in HTML umgewandelt (wir nutzen dazu php-markdown, siehe https://github.com/michelf/php-markdown).

A: Eine Hilfeseite

Die Hilfeseiten sehen dann später wie in Abbildung A aus (diese werden in einer Markup-Sprache beschrieben und können darüber hinaus natürlich auch jede andere Art von Datei nutzen).

Schaltflächen für Hilfeseiten

Sie können eigene Schaltflächen in Ihre Templates einbauen, indem Sie die vorgefertigte Funktion MakeInfoButton aus der UI/include/Helpers.php verwenden.

B: Die Schaltfläche einer Hilfeseite

Dabei geben Sie den globalen Pfad (zur CHelp) an und den Namen der Datei.

<?php echo MakeInfoButton('page/admin/courseManagement','addUser.md'); ?>

Auszug aus UI/include/CourseManagement/AddUser.template.html

In diesem Beispiel lautet der Pfad zur Datei page/admin/courseManagement und der Dateiname selbst dann addUser.md (CHelp übersetzt diese automatisch in HTML). Diese Hilfeseite wird dann auf unserem Server unter GET http://meineURL/uebungsplattform/CHelp/help/de/page/admin/courseManagement/addUser.md aufgerufen werden.

Hinweis: das de in der URL bezieht sich auf die gewählte Sprache.

Hilfedateien anbieten

Die Dateien der oben gezeigten Hilfeseite müssen natürlich bei CHelp angemeldet werden (denn sie sind normalerweise in einer Komponente enthalten, welche wir entwickelt).

Dazu müssen wir zunächst die Component.json unserer Komponente (welche die Hilfedateien enthält) anpassen. Hier wird nun eine Verbindung zum request Ausgang der CHelp hergestellt und ihr mitgeteilt, welche globalen Hilfepfade wir bedienen wollen (der Speicherort ist also unabhängig vom Aufrufpfad).

"connector": [
    {
        "name": "request",
        "target": "CHelp",
        "links": [
            {"path": "/help/:language/page/admin/courseManagement/addUser.md"},
            {"path": "/help/:language/page/admin/courseManagement/addUserA.png"},
            {"path": "/help/:language/page/admin/courseManagement/addUserB.png"},
            {"path": "/help/:language/page/admin/courseManagement/addUserC.png"},
            {"path": "/help/:language/page/admin/courseManagement/addUserD.png"},
            {"path": "/help/:language/page/admin/courseManagement/addUserE.png"}
        ]
    }
]

Auszug aus DB/CUIHelp/Component.json

In diesem Beispiel werden die Dateien addUser.md und die zugehörigen Bilder für eine Hilfeseite der Kursverwaltung angemeldet. Diese Dateien können wir nun im help/ Ordner unserer Komponente hinterlegen. Dabei müssen die Dateinamen jedoch eine bestimmte Struktur aufweisen (weil der Dateiname, mit _ getrennt, den Pfad darstellt).

Die Dateien zu unserem Beispiel liegen bei der Komponente CUIHelp und haben dann die folgenden Pfade und Namen:

  • DB/CUIHelp/help/page_admin_courseManagement_addUser_de.md
  • DB/CUIHelp/help/page_admin_courseManagement_addUserA_de.png
  • DB/CUIHelp/help/page_admin_courseManagement_addUserB_de.png
  • DB/CUIHelp/help/page_admin_courseManagement_addUserC_de.png
  • DB/CUIHelp/help/page_admin_courseManagement_addUserD_de.png
  • DB/CUIHelp/help/page_admin_courseManagement_addUserE_de.png

Der Dateiname page_admin_courseManagement_addUser_de.md setzt sich dabei wie nachfolgend zusammen: ORDNERA_ORDNERB_..._DATEINAME_SPRACHE.ENDUNG

Clone this wiki locally