2011-06-25 2 views
0

J'ai essayé de changer un peu l'affichage du module de changement de langue may. L'idée est que d'avoir mon option de langue dans une boîte de sélection jquery et sur le changement pour récupérer le site dans la langue sélectionnée. Mon problème est de ne pas sortir correctement la langue par défaut et sur la sélection le lien n'est pas construit dessus.Modification du commutateur de langue Joomla

<?php 
/** 
* @version  $Id: default.php 19022 2010-10-02 14:51:33Z infograf768 $ 
* @package  Joomla.Site 
* @subpackage mod_languages 
* @copyright Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved. 
* @license  GNU General Public License version 2 or later; see LICENSE.txt 
*/ 

// no direct access 
defined('_JEXEC') or die('Restricted access'); 
JHtml::_('stylesheet', 'mod_languages/template.css', array(), true); 
$document = &JFactory::getDocument(); 
$document->addScript('jomres/javascript/jquery.ui.selectmenu.js'); 
$document->addScript('jomres/javascript/selectmenu.js'); 
?> 

<select name="speedB" id="speedB" onchange="Javascript: window.location.href='<?php echo $language->title;?>'">> 

    <?php foreach($list as $language):?> 



    <option value=" <?php echo $language->active ? 'lang-active' : '';?>"> 



     <?php echo $language->title;?> 





<?php endforeach;?></option> 


      </select> 

Répondre

0

Le problème réside dans la manière dont les balises d'option sont affichées. L'attribut value doit contenir une valeur qui sera renvoyée au navigateur, et un attribut sélectionné détermine quelle valeur sera renvoyée. Seul l'attribut sélectionné aura sa valeur renvoyée.

Donc, vous auriez besoin quelque chose comme

<?php foreach($list as $language):?> 
    <option value="<?php echo $language->title;?>" <?php echo $language->active ? 'selected' : '';?> 
     <?php echo $language->title;?> 
    </option> 
<?php endforeach;?> 

Notez que je n'ai pas Joomla disponible Je ne peux pas vérifier quel champ de $language serait préférable d'utiliser dans l'attribut de valeur d'option. Il y a probablement quelque chose qui donne un nom court comme en-GB ou fr-FR

+0

J'ai essayé votre suggestion mais dans ce cas les langues ne sont pas listées – deroccha

Questions connexes