Bonjour a tous,
je reviens ici avec un theme recurrent. Mon script d'installation de mon composant (lance par <scriptfile>) marche sous j1.7 mais pas sous j2.5.
en fait, mon script doit detecter si le site admin (back end) a pour langage l'anglais (tag = 'en-GB'). Si non, alors on doit charger tous les fichiers de langue anglaise pour l'installation du composant.
le script suivant - dans la fonction preflight() - fonction sous j1.7 mais plus sous j2.5...pourquoi ???
j'ai essayer de le modifier afin qu'il m'indique le probleme. En gros le $lang->load() ne fonctionne pas et me retourne un false/null au lieu de 1 (true)
mon test est effectue sous j2.5 francais.
j'ai effectue un test sur l'existance du fichier a charger, ainsi que sur la veracite du folder...tout est ok...
voici mon code actuel de ma fonction preflight() de mon script d'installation de mon composant:
je reviens ici avec un theme recurrent. Mon script d'installation de mon composant (lance par <scriptfile>) marche sous j1.7 mais pas sous j2.5.
en fait, mon script doit detecter si le site admin (back end) a pour langage l'anglais (tag = 'en-GB'). Si non, alors on doit charger tous les fichiers de langue anglaise pour l'installation du composant.
le script suivant - dans la fonction preflight() - fonction sous j1.7 mais plus sous j2.5...pourquoi ???
Code:
$lang =& JFactory::getLanguage(); if($lang->getTag() != 'en-GB'){ $extension = 'com_rgtcis'; $base_dir = JPATH_ADMINISTRATOR; $language_tag = 'en-GB'; $reload = true; $lang->load($extension, $base_dir, $language_tag, $reload); }
mon test est effectue sous j2.5 francais.
j'ai effectue un test sur l'existance du fichier a charger, ainsi que sur la veracite du folder...tout est ok...
voici mon code actuel de ma fonction preflight() de mon script d'installation de mon composant:
Code:
$lang =& JFactory::getLanguage(); $ltag = $lang->getTag(); // retourne 'fr-FR' echo "<p>Language Tag: ".$ltag."</p>"; if($ltag != 'en-GB') { // Load all en-GB translation of component $myparent = $parent->getParent(); $this->root_path = $myparent->getPath('source'); $base_dir = $this->root_path.DS.'admin'.DS.'language'.DS; // le repertoire existe bien echo "<p>folder exists: ".JFolder::exists($base_dir.'en-GB')."</p>"; $f = $base_dir.'en-GB'.DS.'en-GB'.'.com_rgtcis.ini'; // le fichier INI existe bien echo "<p>file exists (".$f."): ".JFile::exists($f)."</p>"; $ltag = 'en-GB'; $reload = true; } $res = $lang->load($f); // retourne $res vide, donc false :( echo "<p>Result: ".$res."</p>"; // cette string s'affiche en francais et pas en anglais :( echo "<p>Test: ".JText::_('COM_RGTCIS_EXTENSION_STATUS_SUCCESS')."</p>";
Commentaire