DokuWiki

It's better when it's simple

Outils pour utilisateurs

Outils du site


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 de 80.118.67.90

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki