Personnalisation des Modifieurs

Pour personnaliser un Modifieur, il faut une sous classe de patTemplate_Modifier et l’avoir placée dans patTemplate/Modifier. Le nom du fichier a été assorti à la dernière partie du nom de la classe. Ce qui signiphie que si vous souhaitez créer un filtre qui tronque des phrases vous devrez créer une nouvelle classe ‘pat_Template_Modifier_Truncate’ et la placer dans patTemplate/Modifier/Truncate.php.

La classe doit implementer une méthode modify( string value, array params ) qui a comme retour la valeur modifiée. Vous pouvez intégrer des méthodes pour modifier la valeur quels que soit vos envies.

patTemplate passera 2 paramètres à votre méthode:

Le modificateur truncate peut ressembler à ceci:

01        <?PHP
02        /**
03        * patTemplate modifier Truncate
04        *
05        * $Id: modifiers.xml,v 1.1 2004/05/11 19:46:09 schst Exp $
06        *
07        * @package        patTemplate
08        * @subpackage     Modifiers
09        * @author        Stephan Schmidt <schst@php.net>
10        */
11        class patTemplate_Modifier_Truncate extends patTemplate_Modifier
12        {
13           /**
14            * truncate the string
15            *
16            * @access    public
17            * @param    string        value
18            * @return    string       modified value
19            */
20            function modify( $value, $params = array() )
21            {
22                /**
23                 * pas de longueur spécifié
24                 */
25                if( !isset( $params['length'] ) )
26                    return $value;
27       
28                /**
29                 * est plus court que la longueur de value
30                 */
31                if( $params['length'] >strlen( $value ) )
32                    return $value;
33       
34                return substr( $value, 0, $params['length'] ) . '...';
35            }
36        }
37        ?>

Si vous copiez ce fichier dans le répertoire Modifier, vous pouvez immédiatement utiliser ceci dans vos fichiers de template, par spécification dans l’attribut modifier de chaque balise <patTemplate:var/>.

01    <patTemplate:tmpl name="page">
02          <div>
03                <patTemplate:var name="myVar" modifier="Truncate" length="50"/>
04          </div>
05    </patTemplate:tmpl>

Si maintenant vous passez une valeur plus longue que 50 caractères, le modifieur va automatiquement la tronquer, avant de l’inserer dans le template.

Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki