extviewer
Entwickler können eforia® web manager um eigene Tags erweitern. Dazu dient das Modul extviewer.

Liegt im Verzeichnis extension die Datei extviewer.prg, erkennt dies der Viewer das automatisch und bindet das Modul ein.

Das Modul enthält eine vorgegebene Prozedur, die zurückliefert nach welchen Tags gesucht werden soll und definiert für jedes Tag eine Prozedur für Ersetzungen.

extension/extviewer.prg
Welche Tags gesucht werden bestimmt die Prozedur ext_UserCMSTag:
Procedure ext_UserCMSTag (n : Integer) : String
  Var i : Integer := 3  .. Max count of defined users tag
  If n > i - 1 Then Return '' End
  Var aExt : String []
  InitArray (aExt[i-1])
aExt [0] := 'grey'
aExt [1] := 'blue'
aExt [2] := 'red'
  Return aExt [n]
endproc
In diesem Beispiel wird nach drei Tags gesucht: grey, blue und red.
Wichtig: Vergessen Sie nicht, die Anzahl der Tags in der ersten Zeile anzupassen!
Dabei kann jeweils ein Parameter angegeben werden.
Beispiel: {red="light"}

Für jeden Tag benötigen wir im Modul eine Prozedur. Der Name ist ext_Subst_ plus der Tagname. Also z.B. ext_Subst_red. Definiert wird die Prozedur mit einem String-Parameter. Dieser enthält einen evtl. angegebenen Parameter. Die Prozedur gibt einen String zurück, duch den der Tag ersetzt wird.
Beispiel:
Procedure ext_Subst_red (cParam : String) : String
  Var c : String
  If cParam like 'dark'
    c := '#660000'
  ElsIf cParam like 'light'
    c := '#ff8888'
  Else
    c := '#ff0000'
  End
  Return c
EndProc


Beispiel:
Hier das komplette Modul. Es erlaubt die Tags grey, blue und redzu benutzen und einen Parameter für die Helligkeit anzugeben. Erlaubt ist dark für dunkel, light für hell. Bei jeder anderen Angabe wird ein "Normalwert" ausgegeben.
Dieses Beispiel macht natürlich wenig Sinn und soll nur die Vorgehensweise demonstrieren.

/////////////////////////////////////////////////////////////
////
//
//   Description: Example module for processing
//                new external CmsTags defined by the user.
//
//   Project:     eforia CMS
//   Autor:       Sergey Tsybov <st@tdb.de>
//   Manager:     Horst Klier <hk@tdb.de>
//   Copyright:   tdb Software Service GmbH
//   Create date: 20020429
//   Last update: 20030314
//
//   TODO:        Processing of compound tags.
//                Example: {tag="param"}{/tag}.
///////////////////////////////////////////////////////////////
////
//
//  Procedure define ExtrnalUserTag for following processing.
//  User must define own tags in this.
//  User can change next:
//    1. Max count of defined tag.
//    2. Name tag for processing as array element
//  Each tag must have function for processing.
//  This function must have name like ext_Subst_NameTag .
//  If function is not defined will be generated error message
//  in output html-code.
//  Restrictions:
//  The user tags can't have in beginning the next words:
//  template, main, execmacro, graphic, file, link,
//  switch, user, file, ifdatetime, get, extern.
//
//


Procedure ext_UserCMSTag (n : Integer) : String
  Var i : Integer := 3  .. Max count of defined users tag
  If n > i - 1 Then Return '' End
  Var aExt : String []
  InitArray (aExt[i-1])
  aExt [0] := 'grey'
  aExt [1] := 'blue'
  aExt [2] := 'red'
  Return aExt [n]
endproc
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////
//
//  Example procedure for processing UserCmsTag
//  {usertag="cParam"}
//  cParam : String
//  Return : ramtext or string for subst of CmsUserTag
//

Procedure ext_Subst_grey (cParam : String) : String
  Var c : String
  If cParam like 'dark'
    c := '#666666'
  ElsIf cParam like 'light'
    c := '#ffffff'
  Else
    c := '#cccccc'
  End
  Return c
EndProc

Procedure ext_Subst_blue (cParam : String) : String
  Var c : String
  If cParam like 'dark'
    c := '#000066'
  ElsIf cParam like 'light'
    c := '#8888ff'
  Else
    c := '#0000ff'
  End
  Return c
EndProc

Procedure ext_Subst_red (cParam : String) : String
  Var c : String
  If cParam like 'dark'
    c := '#660000'
  ElsIf cParam like 'light'
    c := '#ff8888'
  Else
    c := '#ff0000'
  End
  Return c
EndProc


eforia® web manager Dokumentation
Stand V 3.01 / 20.12.2010
© Horst Klier
http://www.klier.net
Impressum