04/03/2008

Remplacer la conception d'une base 'notes'

J'ai à ce jour indentifié deux méthodes pour remplacer la conception d'une base 'Lotus notes'. Remplacer la conception d'une base, signifie que l'on change le modèle dont elle dépend pour la définition de ses éléments de structure.

Cette opération permet de modifier un modèle (template) en environnement de développement ou de production.

  • 'Remplacer Conception'

    Fichier > Base de documents > Remplacer conception

    Choisir le serveur sur lequel se trouve le modèle à utiliser, et le nom du modèle.

    RQ importante : Cocher 'Masquer formules et Lotus Scripts' pour ne pas laisser l'accès aux éléments de conception et les bibliothèques de scripts. Ainsi, 'Création > Concevoir' n'apparait plus dans le menu, les éléments de structure et les bibliothèques de scripts sont masqués. De plus les éléments de conception ne sont pas visibles au niveau de l'onglet 'conception' du panneau de propriétés de la base.

  • 'Actualiser Conception'

    Cette méthode ne peut être utilisée que si les éléments de conception ne sont pas masqués. Dans ce cas, les propriétés du modèle maître ne seront pas accessibles.

    Dans un premier temps, il faut modifier le nom du template dont la base hérite, dans les propriétés de la base notes.

    Fichier > Base de documents > Propriétés

    Onglet 'Conception' > panneau 'Héritage'

    On peut alors changer le nom du modèle par le nouveau modèle.

    Une fois le changement de modèle effectué, il reste à actualiser la base pour qu'elle prenne en compte le nouveau modèle. Ainsi, la base notes va mettre à jour ses propres éléments de structure conformément au modèle choisi.

    Fichier > Base de documents > Actualiser conception

Auteur: Euan MATEO

Extraire un modèle d'une base 'Notes'

Il faut pour cela faire une copie de la base en question.

Fichier > Base de documents > Nouvelle copie... ( en FR )

  • Préciser le serveur qui hébergera la nouvelle copie
  • Préciser un titre ( qui est aussi le nom visible par les utilisateurs )
  • Préciser le nom du fichier, avec une extension NTF
  • Puis cocher "Conception de la base uniquement"

Rq : Il n'est pas indispensable de cocher "Liste de contrôle d'accès", pour la copier, car elle pourra être modifiée plus tard.

Il faut maintenant paramétrer cette nouvelle copie pour qu'elle devienne un 'modèle maître' (master template). Pour celà:

Base de documents > Propriétés

Onglet 'conception'. Il faut alors cocher 'le fichier de la base ets un modèle maître', puis donner le nom du modèle. Un copier-coller du titre du modèle, présent dans l'onglet tout à gauche de la boîte de propriétés fait très bien l'affaire.

On peut désormais utiliser ce modèle pour définir les éléments de structure d'une base notes par héritage depuis ce modèle (ou template).

Rq : Les base 'Lotus Notes' classiques ont pour extension 'NSF'. Les modèles ont pour extension 'NTF'.

Auteur: Euan MATEO

23/01/2008

XSLT et PHP5

Le XSLT est un langage qui permet principalement de transformer du XML en page HTML. En fait, il permet de créer des feuilles de style pour la mise en page d'informations contenues dans des fichiers XML. On peut parler de template, au même titre que Smarty par exemple.

Depuis PHP5, la transformation du XML / XSLT, est prise en charge par la librairie libxslt. Google n'est pas très locace sur le sujet d'ailleurs. J'ai tout de même trouvé un tuto bien fait sur le sujet, et en Français: ICI

 Le traitement repose sur la classe PHP XSLTProcessor.

Le déroulement d'une transformation est assez simple:

  1. Créer une nouvelle instance de la classe XSLTProcessor
    • $xslt = new XSLTProcessor();
  2. Créer une instance de document Dom, et charger le fichier XML
    • $xml = new DOMDocument();
    • $xml->load($fichier_XML);
  3. Créer une instance de document Dom, et charger la feuille de style XSL
    • $xsl = new DOMDocument();
    • $xsl->load($fichier_XSLT);
  4. Charger le document Dom du XSLT dans l'instance de XSLTProcessor
    • $xslt->ImportStyleSheet($xsl);
  5. Lancer la transformation et récupérer une chaine 
    • $chaine = $xslt->transformToXML($xml);

Le résultat de la transformation peut être récupéré sous 3 formats, avec les méthodes 'transformToDoc()' pour récupérer un DomDocument, 'transformtoURI' pour récupérer une ressource identifiée par un URI, ou encore 'transformToXML()' pour récupérer une chaine.

Auteur: Euan MATEO