Fusionner plusieurs fonctions _phptemplate_variables

Date du document en anglais : 11 Mars 2009 - 06:36 - http://drupal.org/node/152426 Drupal 5.x



Plusieurs bouts de code de thèmes PHPTemplate, et quelques modules contributifs , auront besoin que vous ajoutiez des fonctions _phptemplate_variables à vos fichiers template.php. Malheureusement, si vous voulez utiliser plus d'un module ou plus d'un de ces bouts de code, ou si votre thème possède déjà une fonction _phptemplate_variables, vous ne pourrez pas en ajouter de nouvelles, vous devrez fusionner les deux fonctions. Si vous ne connaissez pas suffisamment le PHP, cela vous semblera une tâche redoutable.

Voici une technique simple pour fusionner plusieurs de ces fonctions en une seule. Vous n'avez pas besoin de connaître le PHP, contentez-vous de copier et de coller, et changez aussi quelques noms comme indiqué ci-après.

  1. Placez toutes les fonctions  _phptemplate_variables dans votre fichier template.php, et modifiez tous leurs noms, de  _phptemplate_variables à quelque chose d'autre. Par exemple  _phptemplate_variables_taxonomy_snippets,  _phptemplate_variables_page_title_module, etc. S'il y a déjà une fonction _phptemplate_variables dans le thème, changez-lui aussi son nom, par exemple _phptemplate_variables_garland_theme. Assurez-vous qu'il n'y ait pas deux fonctions avec le même nom.
  2. Créez une nouvelle fonction _phptemplate_variables. Elle sera la fonction maîtresse qui combinera toutes les variables des autres fonctions. Voici à quoi elel devrait ressembler :

  3. <?php
    /**
    * Appeler notre fonction_phptemplate_variables_*
    personnalisée et fusionner le résultat dans un seul tableau.
    */
    function _phptemplate_variables($hook$vars) {
     
    $funcs = array(
     
    // Voici les noms de nos fonctions
    personnaliséesAjoutez-en d'autres si besoin.

    '
    _phptemplate_variables_taxonomy_snippet',

    '
    _phptemplate_variables_page_title_module',
     '
    _phptemplate_variables_garland_theme,
     );
     foreach (
    $funcs as $func) {
     
    $vars array_merge($vars$func($hook,
    $vars));
     }
     return 
    $vars;
    }
    ?>

  4. Copiez ce code dans votre fichier template.php et changez les nom des fonctions pour ceux que vous utilisez.

Ensuite, si vous voulez ajouter d'autres fonctions _phptemplate_variables vous pourrez le faire facilement en lui donnant un nouveau nom et en ajoutant son nom à la liste.

Commentaires

Poster un nouveau commentaire

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <css>, <php>, <html>, <ccss>, <ccss>, <drupal5>, <drupal6>, <html>, <javascript>, <php>. Beside the tag style "<foo>" it is also possible to use "[foo]".
  • You may use [view:viewname] tags to display listings of nodes.

Plus d'informations sur les options de formatage

CAPTCHA
Cette question permet d'éviter le spam :
17 + 2 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.