Eigene PlugIn's erstellen
Was sind PlugIn's?
Plug-In's sind Komponenten (DLLs), mit denen Sie CONTEX selbständig um Funktionalität erweitern können. Sie können eigene PlugIn's Programmieren und diese dann in CONTEX "einklinken" um so z.B. eigene Inhaltstypen zu erstellen.
Hier ist beschrieben, welche PlugIn's mit CONTEX ausgeliefert werden.
Eigene PlugIn's erstellen
Um eigene PlugIn's zu erstellen brauchen Sie eine
Programmiersprache, welche .NET (Assemblies) Komponenten erstellen kann
(z.B. VisualBasic.NET oder C#) und natürlich einigermassen gute
Programierkentnisse dieser Sprache. Der Einfachheit halber verwenden wir hier
VisualBasic SourceCode Beispiele.
Damit das PlugIn mit dem CONTEX
"kommunizieren" kann bietet CONTEX eine Schnittstelle (Interface) das sie in
eine Klasse in Ihrem PlugIn Implementieren müssen. Dieses Interface heisst:
ox.CONTEX30.Generator.ICTXPlugin
Um dieses Interface zu verwenden, müssen Sie zuerst eine Verweis (Reference) auf den CONTEX Generator (oxCONTEX30Generator.dll ) erstellen. Erstellen Sie nun eine neue Klasse und Implementieren Sie dort das Interface mit: Implements ox.CONTEX30.Generator.ICTXPlugin
Eigenschaften des Interfaces
| CtxDB | Ctx-DB für erweiterte Funktionen. Über dieses Datenbank Objekt erhalten Sie Zugriff auf die CONTEX Datenbank. |
| CtxSession | Hier erhalten sie das Hauptobjekt des CONTEX Generators, der viele nützliche Funktionen bietet. |
| ContentSettings | Hier können Sie Ihre Einstellungen pro Inhalt laden bzw. Speichern. |
| AutoSave | Bestimmt, ob CONTEX die Einstellungen (ContentSettings) automatisch Speichern soll. |
| CntID | Die ID des Inhalts |
| Bez | Bezeichnug des Inhaltes für die Anzeige im CONTEX-GUI. |
| Aktiv | Liefert/Setzt, ob der Inhalt aktiv ist. |
| EditAfterNew | Gibt an ob direkt nach der erstellung des neuen contents der Inhalt automatisch editiert werden soll. (Wenn True wird ShowConfigDialog angesprungen) |
| Content | Der eigentliche Inhalt. |
| ActLanguage | Liefert die ID der aktuellen Sprache. |
| MenuPicture | Setzt das Bild, das verwendet werden soll, wenn Ihr PlugIn im GUI dargestellt wird. |
| MenuText | Setzt den Text, der im Menü "Neu" von CONTEX für Ihr PlugIn angezeigt wird. |
| Description | Setzt die Beschreibung Ihres PlugIn's. |
| Version | Setzt die Version Ihres PlugIn's. |
| HasNewForm | Hier können Sie definieren, ob Sie einen eigene NewForm haben (Wird nach dem neu erstellen des PlugIn's angesprungen). |
| HasEditor | Definieren Sie hier, ob sie einen eigenen Inhaltseditor haben (wenn nicht, wird der HTML Editor verwendet) |
| HasPropDialog | Definieren Sie hier, ob sie einen eigenen Eigenschaftsdialog haben. |
| HasConfigDialog | Definiert, ob ein allegemeiner (Globaler) Dialog für das PlugIn existiert. |
| HasGenerator | Definiert, ob das PlugIn selber verwantwortlich für das generieren ist oder ob der gespeicherte Text (Content) einfach auf die seite eingefügt werden kann. |
| ParentWindow | Liefert die Parent Form, über der Sie Ihre eigenen Dialoge anzeigen sollten. |
| GlobalSettings | Kann verwendet werden, um Globale Einstellungen zu laden und zu Speichern. |
Methoden des Interfaces
| GetContentHTML | Wird während der
Generierung aufgerufen falls HasGenerator = True ist. lPAG_ID ist die
ID der Seite auf welcher der Inhalt generiert werden
soll. bReset = Weisst das PlugIn an alle Global gecachten Daten zu verwerfen (Ist das erst mal während Generierung auf True). |
| ShowPropDialog | Wird aufgerufen, wenn der Eigenschaftendialog des Contents angezeigt werden soll. (nur wenn HasPropDialog = True ist) |
| EditContent | Wird aufgerufen, wenn der Editor für den Content angezeigt werden soll. (nur wenn HasEditor = true ist) |
| NewContent | Wird durch das menu "neu" inhalt aufgerufen. (nur wenn HasNewForm = true ist) |
| ShowConfigDialog | ShowConfigDialog zeigt den Konfigurationsdialog der Global für das PlugIn gilt. |
Um Ihre PlugIn zu verwenden, müssen Sie es in das CONTEX Programmverzeichnis installieren und anschliessend bei Ihrem Web konfigurieren (Extras --> Benutzerinhalte (PlugIns)).
Wenn Sie weitere Informationen für das erstellen eigener PlugIn's benötigen, oder uns Ihre eigenen PlugIn's zu veröffentlichung senden möchten, dann tretten Sie doch bitte mit uns in Kontakt.

