custom-content-element-management-server.png

Schon gewusst? "Custom Content Element API"

Wie auch schon im Artikel zur Custom Rendertag API geschildert, wird aktuell im CMS-Umfeld sehr viel über APIs gesprochen. Jedoch gibt es nicht nur Schnittstellen, welche auf die Inhalte im Management (RedDot CMS) Server zugreifen. Auch der Management Server selbst möchte gerne Inhalte aus anderen Systemen oder Plattformen verwenden.

Daher wurde die Custom Content Element API im Management Server eingeführt ... hier ein Auszug der Beschreibung aus dem OpenText™ Knowledge Center:

The custom content element API

With the custom content element API, a new content element can be implemented. This element can define which dialogs are used and will also decide how it will be rendered. The Management Server will just call some methods that are exposed in the appropriate interfaces and does not implement any logic for rendering the elements. This means, that a developer can decide how the dialogs for the new element should look like and behave. In addition, the developer can fully decide on custom properties or parameters that a custom element needs and also implement the rendering logic for an element. Though the custom content element API is that powerful, it is also easier to implement than e.g. a MediaElement repository integration. 

Es gibt einen Berg an Informationen im OpenText™ Web Site Management API Wiki dazu.
Hier mal eine Auflistung der verfügbaren Artikel:
 

Die API

Bei diesen Artikeln aus dem API Wiki handelt es sich um eine Übersicht der Funktionalitäten des Custom Content Element:


 

Beispiel Implementierung

Hier nun ein Beispiel zu einem Custom Content Element für eine YouTube-Integration:


 

Beispiel Implementierung zum Download

Im OpenText™ Knowledge Center findet man auch das zuvor gezeigte Beispiel als fertigen Download:


 

JavaScript für die Kommunikation mit dem Management Server

Hier werden die JavaScript-Funktionen für die Dialog-Integration eines Custom Content Element an den Management Servers erläutert.

  • The cms.js Javascript - Communicating with the Management Server
     
    • Dialog related functions:
      • openHelpWindow: This function opens a window with the same size like the Management Server help window and opens the given help url.
      • closeEditElementDialog: This function closes the edit template element dialog and refreshes the SmartTree if the parameter is set to true.
      • closeEditPageElementDialog: This function closes the edit page element dialog and refreshes either the SmartEdit or the SmartTree depending on the edit mode.
      • setSaveState: This function sets the save state when the dialog is in form edit mode. This is used to inform the Management Server about the current save state, i.e. the dialog will inform if saving is necessary, if the dialog is currently saving, or if nothing has changed/saving has been done.
      • elementChanged: This is a convenience function for calling the setSaveState function with an appropriate value if the element has been changed.
      • inFormMode: This function returns if the dialog is shown the form edit mode.
         
    • Settings related functions:
      • initializeElementDialog: The initializeElementDialog function initializes an element dialog. It creates a div element with the id wsmSettings if there is no such div found in the HTML source. It loads the element configuration from the elementConfig.json file that has to reside beside the elements dialog html file. This file currently supports only a typeGuid parameter that has to be in JSON format. The parameters send by the Management Server when opening the dialog and the typeGuid parameter from the elementConfig.json are read and made available within the settings object.
      • getSettings: This function returns the div containing the settings for the element dialog.
      • getSettingValue: The getSettingValue function takes the settings object and a name of a setting and returns its value.
         
    • Encoding/data format related functions:
      • htmlEncode: This function encodes strings to html encoded ones.
      • htmlDecode: This function decodes html encoded strings.
      • convertJSONSettingsToEncodedXml: This function is used to convert the json formatted settings object to an encoded xml that can be used by the Management Server template editor.
         
    •  Elements service related functions:
      • getTemplateElement: This function calls the Management Servers element service to get the current template element for the element that should be edited. In case of a successful call, the successhandler is called, otherwise the errorhandler.
      • getDefaultTemplateElement: This function calls the Management Servers element service to get the default setting for a new template element.
      • getPageElement: This function calls the Management Servers element service to get the current value for a page element that should be edited. It calls a successhandler in case of a successful call and an errorhandler in case of an error. In the YouTube element, a showVideos function is given as success handler.
      • saveContentElement: This function saves the template element depending on the edit mode. In case of opening the dialog from the SmartTree, this function uses the elements service to save the template element in the Management Server. It closes the dialog and refreshes the SmartTree if the save operation was successful. If the dialog has been opened from the template editor, this function saves the element configuration back to the template editor as xml based structure. It inserts or updates the appropriate element in the template editor. The dialog is closed afterwards. Generally, both parts use the saveMode, the loginGuid, the templateGuid/the guid of the content class and the settings object in JSON format.
      • savePageElement: This function calls the Management Server elements service to save a page element. A call is only successful if there is a valid session. This function gets the loginGuid, the elementGuid, the typeGuid, the pageId and the element configuration as xml as parameters. The dialog is automatically closed and possibly refreshes the SmartTree.
         
    • Request parameter related functions:
      • GetParamValueFromURL: This function returns the value of a parameter with the given parameter name from the given url.
      • getUrlVars: This function returns all the parameter value pairs that have been sent when opening the dialog.
      • getUrlVar: This function returns the value of the parameter with the given name that has been sent when opening the dialog.


 

Dokumentation

Dazu kommt selbstverständlich noch die Dokumentation des Management (RedDot CMS) Servers Release 16:


 


Fazit

Das Custom Content Element ist eine geniale Erweiterung. Damit ist man in der Lage die native Elementbibliothek um weitere eigene Elemente sinnvoll zu vergrößern.

Auch wenn es bestimmt eine gewisse Zeit in Anspruch nimmt, sich in das Thema einzuarbeiten. Bietet diese API eine sehr flexible und leistungsstarke Schnittestelle zu anderen Systemen. Welche der OpenText™ Management (RedDot CMS) Server nicht direkt mitbringt bzw. die für eine ganz spezielle Integration extra zugeschnitten werden müssen.

Denn es gibt immer einen Elementtyp, welchen man für bestimmte Integrationen benötigt und der nicht nativ im System vorhanden ist.

Das Custom Content Element ist mit Sicherheit die Erweiterung, welche mehr Aufwand bei der Entwicklung und Implementierung benötigt. Jedoch bringt diese API auch den besten Komfort für den Anwender bei der täglichen Arbeit. Denn die Dialoge sind optimal zugeschnitten für die Datenerfassung aus dem Drittsystem, welches angebunden werden soll.

Wie immer lautet das Motto auch hier, stöbern, ausprobieren und sinngemäß zum Einsatz bringen :)


Weitere ergänzende Informationen dazu findet man auch in der Online-Hilfe unter:

  • Handbuch: Server Manager Online-Hilfe
  • Handbuch: SmartTree Online-Hilfe