mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-10-31 12:21:36 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			158 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			158 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="iso-8859-1"?>
 | |
| <!-- $Revision$ -->
 | |
| <!-- EN-Revision: 1.2 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 4 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>
 | |
| 
 | |
| <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 <literal>true</literal> si
 | |
|  elle réussit à récupérer la ressource et <literal>false</literal> sinon.
 | |
| </para>
 | |
| 
 | |
| <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 <literal>true</literal> si elle
 | |
|  réussit à récupérer la date et <literal>false</literal> sinon.
 | |
| </para>
 | |
| 
 | |
| <para>
 | |
|  La troisième fonction est supposée retourner <literal>true</literal>
 | |
|  ou <literal>false</literal> 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>
 | |
| 
 | |
| <para>
 | |
|  La quatrième fonction est supposée retourner <literal>true</literal>
 | |
|  ou <literal>false</literal> 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
 | |
|  <command>include_php</command> ou <command>insert</command>
 | |
|  ayant un attribut <structfield>src</structfield>. Quoiqu'il en soit,
 | |
|  elle doit être définie pour les ressources templates.
 | |
| </para>
 | |
| 
 | |
| <para>
 | |
|  Lisez également
 | |
|  <link linkend="api.register.resource">register_resource()</link> et
 | |
|  <link linkend="api.unregister.resource">unregister_resource()</link>.
 | |
| </para>
 | |
| <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>
 | |
| </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
 | |
|  -->
 |