Scripts post publication

Il existe 3 type de scripts :

  • xslt
  • plugins
  • script shell

Ces scripts sont configurés dans le fichier weblib/pubscripts.xml dans le répertoire d'installation de kOLEKTi. Ce fichier au format xml a comme élement racine scripts qui contient une séquence d'éléments pubscript définissant les différents scripts disponibles. Chaque élement pubscript porte les attributs suivants :

  • type : xslt, plugin ou shell
  • id : identifiant (caractères alphanumériques seulement)

Une configuration de script peut, de plus, proposer à l'utilisateur des paramètres spécifiques dont les valeurs pourront être fixées dans les lancements.

Définition des prametres des scripts

Chaque définition de script (pubscript peut contenir un élément parameters permettant de définir des paramètres à passer au script.

Les paramètres ont proposés à l'utilisateur dans l'interface d'édition du lancement, dans la partie "Scripts de publication".

Dans l'élément parameters, on définit chaque paramètre par un élément parameter. Cet élément porte les attributs suivants :

  • name : nom du paramètre
  • type : type du paramètre : boolean,string,enum ou filelist
  • label : intitulé du paramètre, sera affiché dans la page d'édition du script

De plus, les paramètres de type filelist portent les attributs :

  • dir : répertoire à lister (relatif à la racine de la base)
  • ext : extension des fichiers à inclure dans la liste
  • copyto : nom du répertoire ou le fichier sélectionné doit être copié (relatif au répertoire de publication

Les éléments parameter de type enum doivent contenir des sous-éléments value portant un attribut val pour chacune des valeurs proposées à l'utilisateur. Les éléments parameter de types boolean,string,enum sont des éléments vides.

Lorsqu'un élément parameter de type filelist est présent, le fichier choisi par l'utilisateur est copié dans le répertoire de publication avant que le script soit lancé.

Exemple

  <pubscript id="T3helpo" type="plugin">
    <name>T3Helpo (Aide en ligne xhtml)</name>
    <plugin>help</plugin>
    <parameters>
      <parameter name="template" label="Directives" 
         type="filelist" 
         dir="autres/directives" 
         ext="xht"/>
      <parameter name="css" label="Feuille de style" 
         type="filelist" 
         dir="styles/T3helpo" 
         ext="css" 
         copyto="T3helpo/usercss"/>
      <parameter name="title" label="Titre de l'aide" 
         type="string"/> 
      <parameter name="gui" label="Interface utilisateur" 
         type="enum">
         <value val="simplifiée"/>
         <value val="standard"/>
         <value val="avancée"/>
      </parameter> 
      <parameter name="zip" label="Créer zip" 
         type="boolean"/>
    </parameters>
  </pubscript>

Types de scripts de publication

Scripts xslt

Application d'une feuille xslt au document pivot

Configuration :

<pubscript id="monscript" type="xslt">
  <name>Nom du Script</name>
  <stylesheet>feuille.xsl</stylesheet>
  <output>fichier sortie</output>
</pubscript>

La feuille de style feuille.xsl doit être placée dans le sous répertoire xslt/plugins du répertoire d'installation de kOLEKTi

Le nom de fichier de sortie est un chemin absolu, les substitutions des macros suivantes sont effectuées :

  • PIV est remplacé par le chemin complet du pivot
  • LANG est remplacé par la langue de publication
  • ZONE est remplacé par la zone géographique de publication
  • DOCNAME est remplacé par le radical (nom de fichier sans extension) du pivot
  • PUBDIR est remplacé par le répertoire de publication
  • param est remplacé par la valeur du paramètre param, fixé dans le lancement

A partir de la version 0.5, les variables de script sont passées en paramètres à la feuilles XSLT, ainsi que les parametres fixes suivants :

  • LANG : langue de publication
  • ZONE : zone géographique de publication
  • DOCNAME : nom de fichier sans extension du pivot
  • PUBDIR : répertoire de publication

Plugins

Un plugin est une classe python nomée plugin étendant la classe de base plugin présente dans le fichier pluginBase.py. Cette classe doit être définie dans un fichier .py placé dans le répertoire plugins de l'installation.

Configuration :

<pubscript id="monscript" type="plugin">
  <name>Nom du Script</name>
  <plugin>monPlugin.py</plugin>
</pubscript>

Si le script est selectionné dans l'ordre de lancement, la classe plugin est instancié, et sa méthode postpub est appellée avec les paramètres suivants :

  • pubpath : le répertoire de publication
  • pivname : le radical (nom de fichier sans extension) du pivot
  • pivot : le document lxml.etree pivot
  • lang : la langue de publication
  • zone : la zone géographique de publication
  • params : un dictionnaire contenant les paramètres du script et leur valeurs

Scripts Shell

Lancement d'une commande shell suite à la publication

Configuration :

<pubscript id="monscript" type="shell">
  <name>Nom du Script</name>
  <cmd>commande shell</cmd>
</pubscript>

La commande shell est prétraitée pour effectuer les substitutions suivantes :

  • PIV est remplacé par le chemin complet du pivot
  • LANG est remplacé par la langue de publication
  • ZONE est remplacé par la zone géographique de publication
  • DOCNAME est remplacé par le radical (nom de fichier sans extension) du pivot
  • PUBDIR est remplacé par le répertoire de publication
  • param est remplacé par la valeur du paramètre correspondant, fixé dans le lancement

Also available in: HTML TXT