Applis Web/Exemple Php Rdf Smarty

Templates RDF et PHP/Smarty

  • httpSmarty est un moteur de "templates" (modèles) pour PHP. De façon plus précise il permet de séparer la logique applicative (comment fonctionne l'application) de la présentation. Dans une architecture particulièrement séduisante lorsque l'on veut conserver un certaine lisibilité du code.

Exemple créer une liste déroulante XUL alimenté par un template RDF construit à partir d'une annuaire LDAP : ldap_exemple.xul

Code xul pour la liste déroulante ldap_exemple.xul

   <?xml version="1.0"?>
   <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
   <?xml-stylesheet href="css/enregistrement_temps.css" type="text/css"?>
   <window  id="Xululu-LDAP"
            xmlns="httphttp://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
   <vbox flex="1">
      <menulist id="collaborateur-id" label="collaborateurs">
         <menupopup datasources="ldap_rdf.php" ref="urn:ldap:people">
            <template>
               <menuitem uri="rdf:*" id="rdf:urn:ldap:rdf#cn"
                         label="rdf:urn:ldap:rdf#cn"
                         value="rdf:urn:ldap: rdf#uid"/>
            </template>
         </menupopup>
      </menulist>
   </vbox>
   </window>

Code PHP pour la logique applicative ldap_rdf.php

   <?php
   $liste=ldap::GetRDFPeople("ou=people,o=xululu",
                             "(cn=*)",
                             array("sn","uid","cn","telephonenumber"));
   $s = new XululuSmarty;
   header( "Content-type: text/xml" );
   $s->assign("people",$liste);
   $s->display('ldap_rdf.tpl');
   ?>

Template PHP pour la présentation ldap_rdf.tpl

   <?xml version="1.0"?>
   <RDF:RDF xmlns:RDF="httphttp://www.w3.org/1999/02/22-rdf-syntax-ns#"
            xmlns:PEOPLE="urn:ldap:rdf#">
   <RDF:Description RDF:about="urn:ldap:people">
      <PEOPLE:cn>people</PEOPLE:cn>
   </RDF:Description>
   {foreach from=$people item=item}
      <RDF:Description RDF:about='urn:ldap:people:{$item.uid}'>
         <PEOPLE:cn>{$item.cn}</PEOPLE:cn>
         <PEOPLE:uid>{$item.uid}</PEOPLE:uid>
         <PEOPLE:phone>{$item.telephonenumber}</PEOPLE:phone>
      </RDF:Description>
   {/foreach}
   <RDF:Seq RDF:about="urn:ldap:all-PEOPLE" PEOPLE:name="XULULU">
      <RDF:li>
         <RDF:Seq RDF:about="urn:ldap:people">
            {foreach from=$people item=item}
               <RDF:li RDF:resource="urn:ldap:people:{$item.uid}"/>
            {/foreach}
         </RDF:Seq>
      </RDF:li>
   </RDF:Seq>
   </RDF:RDF>

Gestion du cache pour les templates RDF

Pour les problèmes de cache ou la mise à jour d'une source de données RDF, voir SourceDeDonneesRdf .

Dernière modification le mai 4, 2005 1:56 .


Le contenu de cette page est disponible selon certaines conditions de réutilisation. Lire aussi la page des informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.