Bonjour tout le monde,
Je suis sur un projet d'un site web multi-langues, afin d'avoir un style personnalisé pour chaque lien dans mon menu de navigation, j'ai créé une fonction PHP qui génère automatiquement un ID CSS pour chaque item de mon menu, pour ensuite le personnaliser via CSS.
Cette fonction attribue par exemple au lien "Chèque barré" l'ID : Chquebarr (en gros,j'enlève les accents et les espaces, je n'autorise que l'alphabet en majuscule et minuscule, ainsi que les chiffres)
Mon problème est avec les autres langues, ce site, je suis entrain de le construire en français, anglais, hongrois et russe. Les 3 premières langues ayant des caractères latin, jusqu'ici, pas de problème, mais avec le russe, ma fonction ne passe pas, et quand je consulte le source de mon site, je vois un que l'id de mon lien russe est vide.
Je me demandais s'il y avait possibilité en PHP de transformer les caractères russes en latins, ou bien tout simplement de créer une fonction qui assigne au liens russe des ID's en caractères latins ?
La fonction que j'ai utilisé pour assigner les ID aux liens est la suivante :
Bon pour Info, c'est une fonction incluse dans le fichier template.php que Drupal utilise, car ce site, je suis entrain de le faire avec Drupal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <?php function phptemplate_menu_item($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) { $class = ($menu ? 'expanded' : ($has_children ? 'collapsed' : 'leaf')); if (!empty($extra_class)) { $class .= ' '. $extra_class; } if ($in_active_trail) { $class .= ' active-trail'; } $id = preg_replace("/[^a-zA-Z0-9]/", "", strip_tags($link)); return '<li id="'.$id2.'" class="'. $class .'">'. $link . $menu ."</li>\n"; } ?>
Merci pour votre aide
Partager