Choix de la Langue dans le Menu de Navigation [Résolu]

Messagepar moody_styley » Ven 29 Mai 2009, 17:24

Bonjour à tous,

Je suis nouveau sur ce forum et je cherche désespérément comment faire pour ajouter un menu de langues dans le Menu de Navigation.

Via l'interface Admin, j'ai pû créer un menu qui s'ajoute dans la liste des choix, mais après je sais pas quoi faire.

J'ai visité le forum ainsi que des recherches Google sur les templates, pour savoir si je pouvais ajouter cette fonctionnalité directement dans les templates mais rien n'a marché comme je voulais.

J'ai trouvé du code que l'on rajoute à header.php, mais le choix de langue s'affiche alors en dessous de la bannière du site, sous la liste du chemin ou l'on est dans le site.

Si vous allez sur http://www.rueverte.fr/ vous allez trouver en haut à droite ce que je cherche à faire pour le choix de langues, par contre, au lieu de renvoyer vers 2 sites différents, je veux simplement faire changer la langue de mon site comme sur le choix de langue par défaut fourni dans le template osCSS.

Merci d'avance pour votre aide.
Dernière édition par moody_styley le Mer 03 Juin 2009, 17:13, édité 1 fois.
moody_styley
Membre actif
 
Messages: 69
Inscription: Ven 29 Mai 2009, 17:12

Messagepar oscim » Ven 29 Mai 2009, 20:09

bonjour,

Avant toute chose, je trouve pas très sympa qu'il n'y est aucunes référence vers oscss, alors que un lien vers hebergeur sympa ???....

Surtout lorsque on utilise de l'open source, à des fins commerciales .). Et lorsque la solution fonctionne depuis quelques temps déjà.


Quant à la question il me semble me souvenir qu'il s'agit soit d'un cookies de langue, soit de la validation de formulaire (eventullement avec un lien).

sinon, j'aime bien la finition générale.
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar j4k » Ven 29 Mai 2009, 21:16

si tu cherche la boxe pour faire les liens vers les pages langues, regarde du coté de /includes/boxes/language.php
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar moody_styley » Mar 02 Juin 2009, 11:28

Bonjour,

Pour OSCIM, le site que je cite est une référence sur votre forum, il fait parti des meilleurs sites développés avec osCSS et référencé dans un de vos post, c'est pour ça que je me suis permis de le citer. Désolé pour le problème de lien...

J4K, merci pour la référence que tu me donnes, j'ai essayé de rajouter dans la liste des menus de navigation la référence au fichier /includes/boxes/languages.php sans problème, mais quand j'essaye sur mon site qui est encore en dev, il me sort l'erreur "You don't have permission to access /includes/boxes/languages.php on this server.".
Or, j'ai même changé les droit chmod 777 sur le site et j'obtiens toujours la même erreur, as-tu une suggestion sur ce problème ?

Merci encore pour votre aide les gars.
moody_styley
Membre actif
 
Messages: 69
Inscription: Ven 29 Mai 2009, 17:12

Messagepar j4k » Mar 02 Juin 2009, 18:51

où as tu ajouté ceci ?

il faut que tu l'ajoute dans templates/ton_template/template.php et que tu l'adapte pour obtenir ce que tu souhaite (en gros, le fichier que je t'ai cité est une liste déroulante que tu va modifier pour obtenir une liste li par exemple que tu pourra alors habiller en css et js pur obtenir le résultat que tu nous montre là)
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar moody_styley » Mar 02 Juin 2009, 23:18

Salut J4K,

J'ai rajouté le lien directement dans l'administration du site dans le menu de navigation, je savais pas qu'il fallait d'abord le copier dans templates/mon_template/template.php pour l'activer et le configurer comme je veux.

Je vais essayé de faire de mon mieux pour faire tout ceci et je risque de te demander un peu d'aide sur la configuration si je n'y arrive pas complètement et si ça te dérange pas de me donner un petit coup de main.

Merci pour ton aide précieuse.
Dernière édition par moody_styley le Mar 02 Juin 2009, 23:18, édité 1 fois.
moody_styley
Membre actif
 
Messages: 69
Inscription: Ven 29 Mai 2009, 17:12

Messagepar moody_styley » Mer 03 Juin 2009, 12:23

Salut J4K,

J'ai modifié le fichier Includes/functions/general.php pour faire la modif de la fonction oscss_navlinks comme suit avec la partie du fichier /includes/boxes/languages.php qui m'intéresse.

Code: Tout sélectionner
// Generate the "navigator"
function oscss_navlinks() {
  global $languages_id, $customer_id;


   $nav_links_query = tep_db_query("select n.nav_link_id, n.nav_css_id, n.nav_file, n.nav_link_type, n.customers_status, nd.nav_name from " . TABLE_NAVIGATION_LINKS . " n, ".TABLE_NAVIGATION_LINKS_DESCRIPTION . " nd where n.nav_link_id = nd.nav_link_id and nd.language_id = '".(int)$languages_id."' and n.nav_link_status = '1' order by n.nav_sort_order ASC");
       
   $links = '<ul>'."n";
     while ($nav_links = tep_db_fetch_array($nav_links_query)) {
   
      if($nav_links['nav_link_type'] == '0') {
      $url = tep_href_link($nav_links['nav_file']) ;   
     }elseif($nav_links['nav_link_type'] == '1') { 
     $url = $nav_links['nav_file'] ; 
     }   
   
    switch($nav_links['customers_status']) {
     case '0';     
      $links .= '<li id="'.$nav_links['nav_css_id'].'"><a href="'.$url.'">'.$nav_links['nav_name'].'</a></li>'."n";
     break;     
      case '1'; // customer is not logged
     if (!tep_session_is_registered('customer_id')) {
      $links .= '<li id="'.$nav_links['nav_css_id'].'"><a href="'.$url.'">'.$nav_links['nav_name'].'</a></li>'."n";
          }
      break;         
      case '2'; // customer must be logged
      if (tep_session_is_registered('customer_id')) {
     $links .= '<li id="'.$nav_links['nav_css_id'].'"><a href="'.$url.'">'.$nav_links['nav_name'].'</a></li>'."n";
          }
      break;
     }

     }

  //### BEGIN ### Special language selection
    if (!isset($lng) || (isset($lng) && !is_object($lng))) {
      include(DIR_WS_CLASSES . 'language.php');
     $lng = new language;
    }
   $languages_string = '';
   reset($lng->catalog_languages);
   while (list($key, $value) = each($lng->catalog_languages)) {
      $languages_string .= '<li><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('language', 'currency')) . 'language=' . $key, $request_type) . '">' . tep_image(DIR_WS_LANGUAGES .  $value['directory'] . '/images/' . $value['image'], $value['name']) . '</a></li>'."n ";
   }
 //### END ### Special language selection
       
 $links .= $languages_string.'</ul>'."n"; 
 
  return $links;
}

Le problème est que quand je rajoute ce bout de code, j'ai l'erreur :
Error!

Unable to determine the page link!

J'ai essayé de débugger un peu, mais mes connaissances en PHP sont un peu limitées et j'aurais besoin de tes lumières pour au moins me permettre de faire afficher les icônes des langues à sélectionner.

Je ne sais pas si c'est à cause de "include(DIR_WS_CLASSES . 'language.php');" qu'il n'arrive pas à trouver (j'ai essayé plusieurs modifs là dessus pour savoir s'il ne trouvait pas l'include).
Où si c'est la fonction ''reset($lng->catalog_languages);" qu'il n'arrive pas à interpréter.

Une fois ceci déboguer, je pourrais alors voir pour faire un affichage plus sympatique du choix de la langue.

Merci par avance de ton aide.
moody_styley
Membre actif
 
Messages: 69
Inscription: Ven 29 Mai 2009, 17:12

Messagepar j4k » Mer 03 Juin 2009, 13:46

la piste que je te suggérais était de ne pas modifier le menu oscss_navlinks mais d'utiliser /includes/boxes/languages.php dans ton template.php et de faire les modifs dans languages.php poiur obtenir une liste déroulante que tu pourra placer ou tu le souhaites.

Si vraiment tu souhaites ajouter le menus langues dans le menu oscss tu peux facilement ajouter tes liens par l'admin (sans modif de code !) en insérant les liens du type index.php?language=de ...

Ce menu additif est plutôt utilisé pour ajouter des liens de type panier/ mon compte/déconnexion ... il prend en compte l'état du visiteur (connecté ou non) je pense que la piste est mauvaise
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar moody_styley » Mer 03 Juin 2009, 15:25

J4K,

J'ai totalement repensé mon code comme tu l'avais suggéré au départ et j'ai modifié mon template pour faire apparaitre un choix de langues dans le menu de navigation.

J'utilise un script JS pour faire apparaitre le choix des langues, malheureusement, je n'arrive pas à initialiser correctement l'array JS avec un array PHP.

Voici le bout de mon code qui se trouve dans le <head> du template, peux-tu me dire ce qui ne va pas STP ?

Code: Tout sélectionner
<script type="text/javascript">
var linkset=new Array()

<?php
  $amenu = array();
  if (!isset($lng) || (isset($lng) && !is_object($lng))) {
    include(DIR_WS_CLASSES . 'language.php');
    $lng = new language;
  }
  reset($lng->catalog_languages);
  while (list($key, $value) = each($lng->catalog_languages)) {
    $amenu ='<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('language', 'currency')) . 'language=' . $key, $request_type) . '">';
  }
?>

linkset[0]='<?php echo $amenu[1] ;?>Fran&ccedil;ais</a>'
linkset[0]+='<?php echo $amenu[2] ;?>English</a>'
</script>

Merci encore de ton aide.
moody_styley
Membre actif
 
Messages: 69
Inscription: Ven 29 Mai 2009, 17:12

Messagepar moody_styley » Mer 03 Juin 2009, 16:27

J'ai trouvé mon erreur !

il faut mettre "$amenu[] = '<a href..." pour ajouter la valeur à l'array. Avec ça, c'est tout nickel et en plus je peux changer la langue à la volée sans revenir à l'accueil du site, mais en restant dans la même page.

Vive osCSS et vive moa ! :D
moody_styley
Membre actif
 
Messages: 69
Inscription: Ven 29 Mai 2009, 17:12


Retourner vers Design

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités

cron