mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-10-31 04:11:37 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			164 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			164 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="iso-8859-1"?>
 | |
| <!-- $Revision$ -->
 | |
| <!-- EN-Revision: 1.3 Maintainer: yannick Status: ready -->
 | |
| 
 | |
| <sect1 id="plugins.resources"><title>Ressources</title>
 | |
|  <para>
 | |
|   Les plugins ressources sont un moyen générique de fournir des sources
 | |
|   de templates ou des composants de scripts PHP à Smarty. Quelques exemples
 | |
|   de ressources : bases de données, LDAP, mémoire partagée, sockets, etc.
 | |
|  </para>
 | |
|  <para>
 | |
|   Il y au total quatre fonctions qui ont besoin d'être enregistrées pour
 | |
|   chaque type de ressource. Chaque fonction reçoit le nom de la ressource demandée
 | |
|   comme premier paramètre et l'objet Smarty comme dernier paramètre.
 | |
|   Les autres paramètres dépendent de la fonction.
 | |
|  </para>
 | |
|  <funcsynopsis>
 | |
|   <funcprototype>
 | |
|    <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_source</function></funcdef>
 | |
|    <paramdef>string <parameter>$rsrc_name</parameter></paramdef>
 | |
|    <paramdef>string <parameter>&$source</parameter></paramdef>
 | |
|    <paramdef>object <parameter>&$smarty</parameter></paramdef>
 | |
|   </funcprototype>
 | |
|   <funcprototype>
 | |
|    <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_timestamp</function></funcdef>
 | |
|    <paramdef>string <parameter>$rsrc_name</parameter></paramdef>
 | |
|    <paramdef>int <parameter>&$timestamp</parameter></paramdef>
 | |
|    <paramdef>object <parameter>&$smarty</parameter></paramdef>
 | |
|   </funcprototype>
 | |
|   <funcprototype>
 | |
|    <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_secure</function></funcdef>
 | |
|    <paramdef>string <parameter>$rsrc_name</parameter></paramdef>
 | |
|    <paramdef>object <parameter>&$smarty</parameter></paramdef>
 | |
|   </funcprototype>
 | |
|   <funcprototype>
 | |
|    <funcdef>bool <function>smarty_resource_<replaceable>name</replaceable>_trusted</function></funcdef>
 | |
|    <paramdef>string <parameter>$rsrc_name</parameter></paramdef>
 | |
|    <paramdef>object <parameter>&$smarty</parameter></paramdef>
 | |
|   </funcprototype>
 | |
|  </funcsynopsis>
 | |
| 
 | |
|  <itemizedlist>
 | |
|   <listitem>
 | |
|    <para>
 | |
|     La première fonction est supposée récupérer la ressource. Son second
 | |
|     paramètre est une variable passée par référence où le résultat doit être
 | |
|     stocké. La fonction est supposée retourner &true; si
 | |
|     elle réussit à récupérer la ressource et &false; sinon.
 | |
|    </para></listitem>
 | |
| 
 | |
|   <listitem><para>
 | |
|     La seconde fonction est supposée récupérer la date de dernière modification
 | |
|     de la ressource demandée (comme un timestamp UNIX). Le second paramètre
 | |
|     est une variable passée par référence dans laquelle la date doit
 | |
|     être stockée. La fonction est supposée renvoyer &true; si elle
 | |
|     réussit à récupérer la date et &false; sinon.
 | |
|    </para></listitem>
 | |
| 
 | |
|   <listitem><para>
 | |
|     La troisième fonction est supposée retourner &true;
 | |
|     ou &false; selon si la ressource demandée est sûre
 | |
|     ou non. La fonction est utilisée seulement pour les ressources templates
 | |
|     mais doit tout de même être définie.
 | |
|    </para></listitem>
 | |
| 
 | |
|   <listitem><para>
 | |
|     La quatrième fonction est supposée retourner &true;
 | |
|     ou &false; selon si l'on peut faire confiance ou
 | |
|     non à la ressource demandée. Cette fonction est utilisée seulement
 | |
|     pour les composants de scripts PHP demandés par les balises
 | |
|     <link linkend="language.function.include.php">
 | |
|      <varname>{include_php}</varname></link> ou
 | |
|     <link linkend="language.function.insert"><varname>{insert}</varname></link>
 | |
|     ayant un attribut <parameter>src</parameter>. Quoiqu'il en soit,
 | |
|     elle doit être définie pour les ressources templates.
 | |
|    </para></listitem>
 | |
|  </itemizedlist>
 | |
| 
 | |
|  <example>
 | |
|   <title>resource plugin</title>
 | |
|   <programlisting role="php">
 | |
| <![CDATA[
 | |
| <?php
 | |
| /*
 | |
| * Smarty plugin
 | |
| * ------------------------------------------------------------- 
 | |
| * Fichier :  resource.db.php
 | |
| * Type :     ressource
 | |
| * Nom :      db
 | |
| * Rôle :     Récupére des templates depuis une base de données
 | |
| * -------------------------------------------------------------
 | |
| */
 | |
| function smarty_resource_db_source($tpl_name, &$tpl_source, &$smarty)
 | |
| {
 | |
|    // fait des requêtes BD pour récupérer votre template
 | |
|    // et remplir $tpl_source
 | |
|    $sql = new SQL;
 | |
|    $sql->query("select tpl_source
 | |
|    from my_table
 | |
|    where tpl_name='$tpl_name'");
 | |
|    if ($sql->num_rows) {
 | |
|       $tpl_source = $sql->record['tpl_source'];
 | |
|       return true;
 | |
|    } else {
 | |
|       return false;
 | |
|    }
 | |
| }
 | |
| 
 | |
| function smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$smarty)
 | |
| {
 | |
|    // fait des requêtes BD pour remplir $tpl_timestamp
 | |
|    $sql = new SQL;
 | |
|    $sql->query("select tpl_timestamp
 | |
|    from my_table
 | |
|    where tpl_name='$tpl_name'");
 | |
|    if ($sql->num_rows) {
 | |
|       $tpl_timestamp = $sql->record['tpl_timestamp'];
 | |
|       return true;
 | |
|    } else {
 | |
|       return false;
 | |
|    }
 | |
| }
 | |
| 
 | |
| function smarty_resource_db_secure($tpl_name, &$smarty)
 | |
| {
 | |
|    // suppose que tous les templates sont svrs
 | |
|    return true;
 | |
| }
 | |
| 
 | |
| function smarty_resource_db_trusted($tpl_name, &$smarty)
 | |
| {
 | |
|    // inutilisée pour les templates
 | |
| }
 | |
| ?>
 | |
| ]]>
 | |
|   </programlisting>
 | |
|  </example>
 | |
|  <para>
 | |
|   Voir aussi :
 | |
|   <link linkend="api.register.resource">register_resource()</link> et
 | |
|   <link linkend="api.unregister.resource">unregister_resource()</link>.
 | |
|  </para>
 | |
| </sect1>
 | |
| 
 | |
|  <!-- Keep this comment at the end of the file
 | |
|  Local variables:
 | |
|  mode: sgml
 | |
|  sgml-omittag:t
 | |
|  sgml-shorttag:t
 | |
|  sgml-minimize-attributes:nil
 | |
|  sgml-always-quote-attributes:t
 | |
|  sgml-indent-step:1
 | |
|  sgml-indent-data:t
 | |
|  indent-tabs-mode:nil
 | |
|  sgml-parent-document:nil
 | |
|  sgml-default-dtd-file:"../../../../manual.ced"
 | |
|  sgml-exposed-tags:nil
 | |
|  sgml-local-catalogs:nil
 | |
|  sgml-local-ecat-files:nil
 | |
|  End:
 | |
|  vim600: syn=xml fen fdm=syntax fdl=2 si
 | |
|  vim: et tw=78 syn=sgml
 | |
|  vi: ts=1 sw=1
 | |
|  --> |