Bonjour,
Je me permet d’éditer le titre pour qu’il corresponde mieux et le message pour qu’il soit plus compréhensible.
J’ai eu deux problèmes :
-Créer un bloc avec taxonomy image
-Avoir le language switcher i18n qui fonctionne avec taxonomy menu
En réalité c’est parce que le «switcher» ne prend pas la traduction du terme mais ajoute simplement le suffixe de la langue au début de l’url.
J’ai fixer ça via une fonction dans le thème -> http://drupalfr.org/node/1838#comment-7119
Donc pour résumé :
-j’ai le module i18n qui me permet de traduire les node et le terme
-j’ai le module Taxonomy_image qui me permet d’avoir une image associè à une taxonomie
-j’ai taxonomy menu qui crée un menu depuis la taxonomie
-et le petit «patch» qui vas aider le «switcher de langue» à bien prendre la traduction de la taxonomie comme url.
Je posterai l’url du site pour que vous voyer ce que ça donne dès que c’est finis
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Alors j’ai trouvé une solution assez simple, c’est de récupérer les arguments dans l’url ce qui donne :
<?phpif (arg(0) == 'taxonomy_menu' && is_numeric(arg(1)) && is_numeric(arg(2))) {
$term_id = arg(2);
print taxonomy_image_display($term_id);
}
?>
Ca fonctionne nickel :)
EDIT : non ça fonctionne pas nickel…
Le problème vient du switch de langue avec i18n celui-ci gardant évidement l’url intact et change uniquement le prefix de langue. Alors ça me garde la même image et je suis obligé de cliquer sur le lien du menu (le menu taxonomie s’adapte, la taxonomie étant traduite) pour que j’ai la bonne image.
aaaaaaaaahrrgggggg et moi qui croyait être sortie de ce problème…
Personne a une solution magique ?
http://cloud33.com & http://listentothis.net
gagarine
221
Bon je vois une solution… faire une requête dans la table term_data en cherchant tid de la langue active correspondant au tid de l’url. Le champs language indiquant la langue de term et grâce au champs trid je peux savoir facilement «qui vas avec qui».
Bon ça fait une requête un peu «inutile» je trouve.
Bon bon bon pour l’instant… pause… lol
http://cloud33.com & http://listentothis.net
gagarine
221
Je vais tester ce patch : http://drupal.org/node/108070#comment-280324
http://cloud33.com & http://listentothis.net
gagarine
221
Bon le patch n’est pas encore totalement fonctionnel… J’ai donc créer en m’inspirant du patch une fonction dans mon thème. Je sais c’est pas forcément l’endroit mais au moins comme ça je ne touche pas au module i18n (mise à jour facilité).
Donc sa permet au «langage switcher» de passer sur la traduction du terme. Je pense que ça peut être très utiles pour les gens qui utilise taxonomy_menu + i18n. Les feedback sont comme toujours bienvenu :).
<?php/<strong>
* Personlisation des icônes du language switcher
* Gestion du language switcher avec le module taxonomy_menu
*
<em>/
function votreTheme_i18n_link($text, $target, $lang, $separator=' '){
$output = '<span class="i18n-link">';
$attributes = ($lang == i18n_get_lang()) ? array('class' => 'active') : NULL;
if(
preg_match("/(taxonomy_menu\/)(.</em>)$/",$target,$matches)) { //url de taxonomy_menu ?$tids = explode ("/", $matches[2]);
$vid = array_shift($tids);
if ($str_tids = votreTheme_translation_taxonomy_menu_tids($tids, $lang)) {
$target = $lang . "/taxonomy_menu/$vid/$str_tids";
}
}
$output .= l(theme('i18n_language_icon', $lang), $target, $attributes, NULL, NULL, FALSE, TRUE);
$output .= '</span>';
return $output;
}
/</
strong><em>Returns an url for the translated taxonomy_menu listing, if exists
</em>
* $tids: array of term ids at the tail end of a taxonomy_menu URL
*/
function votreTheme_translation_taxonomy_menu_tids($tids, $lang) { $translated_tids = array();
$separator = "/";
foreach ($tids as $tid)
{
if (
$translated_tid = translation_term_tid($tid, $lang)) {$translated_tids[] = $translated_tid;
}
}
if (!empty(
$translated_tids[0])){
return implode($separator, $translated_tids);
}
else
{
return implode($separator, $tids);
}
}
?>
http://cloud33.com & http://listentothis.net
gagarine
221