// fonction pour array_walk : renvoie la premiere lettre majuscule translitteree du mot // (ex. : é => E, œ => O, etc.) function premiere_lettre_tab(&$item) { $item = translitteration_complexe($item); $item = strtoupper($item{0}); } // fonction pour array_walk : renvoie un lien, sauf si le contexte est la lettre en question function lien_1ere_lettre_tab(&$item, $key, $arg) { $item = $arg[0]==$item ?"$item" :''.$item.''; } // renvoie la premiere lettre majuscule translitteree du mot // (ex. : é => E, œ => O, etc.) function premiere_lettre($titre) { premiere_lettre_tab($titre); return $titre; } // renvoie les premieres lettres majuscules translitterees de tous les mots du titre // formes du titre du glossaire : "Mot" ou "Mot1/Mot2/Mot3" ou "[fr]Mots1[en]Mots2" function premieres_lettres($titre) { $arr = explode(_GLOSSAIRE_TITRE_BASE_SEP, extraire_multi($titre)); array_walk($arr, 'premiere_lettre_tab'); return join('', $arr); } // renvoie une barre de navigation alphabetique a partir d'une chaine (ex : "AABBBFGG") function alphabet_cliquable($texte, $lettre, $nomboucle='') { $arr = array_unique(preg_split('//', " $texte", -1, PREG_SPLIT_NO_EMPTY)); sort($arr); unset($arr[0]); // retrait de la pagination $self = parametre_url(self(),'debut_'.$nomboucle,''); array_walk($arr, 'lien_1ere_lettre_tab', array($lettre, $self)); return join('|',$arr); } // renvoie true si le mot peut etre affiche (sa premiere lettre correspond au contexte) function mot_affichable($titre, $lettre) { $arr = explode(_GLOSSAIRE_TITRE_BASE_SEP, extraire_multi($titre)); array_walk($arr, 'premiere_lettre_tab'); return in_array($lettre, $arr); }