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.
Il faut modifier les scripts search.php et html.php qui se trouvent dans le dossier inc.
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; } //=========================
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']; //=====================================
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 à 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.
— ML 2006-06-29