DokuWiki

It's better when it's simple

Outils pour utilisateurs

Outils du site


Panneau latéral

Traductions de cette page?:

Découvrir DokuWiki

Options avancées

Pour les entreprises

Notre Communautée


Suivez-nous sur Facebook, Twitter et les autres résaux sociaux.

Notre politique de confidentialité

fr:tips:index_et_accents

Index et lettres accentuées

La fonction html_index(), qui génère l'index d'un site, le construit avec les noms des sous-dossiers du dossier data/pages. Or ces noms ne comportent ni espace, ni lettres accentuées, ce qui peut être gênant pour des sites en langue française (par contre pour les noms des pages, DokuWiki peut utiliser le premier titre de niveau H1).

Le petit patch suivant permet d'obtenir un index où les dossiers sont désignés par un intitulé pouvant contenir espaces et lettres accentuées. Ce patch est basé sur la version 2006-03-09 de DokuWiki.

Modifications des scripts PHP

Il faut modifier les scripts search.php et html.php qui se trouvent dans le dossier inc.

Modification de la fonction search_index de search.php

Modifier ainsi, dans la fonction search_index, la construction du tableau $data (autour de la ligne 100) :

           $data[]=array( 'id'    => $id,
                          //=====================================
                          // gestion des intitulés
                          'intitule' => intitule($file,$id),
                          //=====================================
                          'type'  => $type,
                          'level' => $lvl,
                          'open'  => $return );

Ajouter ensuite (par exemple juste avant la fonction search_index) la fonction suivante :

           //=====================================
           // gestion des intitulés
           function intitule($f,$i)
                 {
                  global $conf;
                  include($conf['datadir'].'/t_intitule.inc');
                  $intitule= $t_intitule[$f];
                  if ($intitule=="") $intitule=$i;
                  return $intitule;
                  }
           //=========================

Modification de la fonction html_list_index de html.php

Modifier ainsi, dans la fonction html_list_index, la ligne qui génère les intitulés de l'index :

           //=====================================
           // gestion des intitulés
             //$base = ':'.$item['id'];
             $base = ':'.$item['intitule'];
           //=====================================

Tableau des intitulés

Il reste à créer, et à maintenir, un tableau associatif des intitulés de dossiers. Pour cela créer à la racine du dossier /data/pages un fichier nommé t_intitule.inc dans lequel est défini un tableau t_intitule :

           <?php
           $t_intitule=array(
            '/playground' => 'Bac &agrave; sable',
            '/wiki' => 'La documentation',
            '/dossier1/dossier12/dossier123' => 'Le dossier'
            );
           ?>

Le tableau associe au chemin d'accès à un dossier l'intitulé que l'on veut voir apparaître dans l'index. Il n'est pas obligatoire d'affecter ainsi un intitulé à chaque dossier, si il n'y a pas d'association c'est le nom du dossier qui apparaîtra dans l'index.

Credits

ML 2006-06-29

fr/tips/index_et_accents.txt · Dernière modification: 2008-09-03 18:02 par 80.118.67.90