developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Ticket #442: 442-infinite-loop-when-error-not-exists-in-current-charset.diff

File 442-infinite-loop-when-error-not-exists-in-current-charset.diff, 3.6 KB (added by Julien, 13 years ago)
  • lib/jelix/core/jSelector.class.php

     
    1313* @contributor Loic Mathaud
    1414* @contributor Rahal
    1515* @contributor Thibault PIRONT < nuKs >
     16* @contributor Julien Issler
    1617* @copyright   2005-2007 Laurent Jouanneau, 2007 Loic Mathaud, 2007 Rahal
    1718* @copyright   2007 Thibault PIRONT
     19* @copyright   2008 Julien Issler
    1820* @link        http://www.jelix.org
    1921* @licence    GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
    2022*/
     
    505507        $this->_path = $gJConfig->_modulesPathList[$this->module].$this->_dirname.$this->resource.$this->_suffix;
    506508
    507509        if (!is_readable ($this->_path)){
    508             // to avoid infinite loop in a specific lang, we should check if we don't
     510            // to avoid infinite loop in a specific lang or charset, we should check if we don't
    509511            // try to retrieve the same message as the one we use for the exception below,
    510512            // and if it is this message, it means that the error message doesn't exist
    511             // in the specific lang, so we retrieve it in en_EN language
    512             if($this->toString() == 'jelix~errors.selector.invalid.target')
     513            // in the specific lang or charset, so we retrieve it in en_EN language and UTF-8 charset
     514            if($this->toString() == 'jelix~errors.selector.invalid.target'){
    513515                $l = 'en_EN';
    514             else
    515                 $l=null;
    516             throw new jExceptionSelector('jelix~errors.selector.invalid.target', array($this->toString(), "locale"),1,$l);
     516                $c = 'UTF-8';
     517            }
     518            else{
     519                $l = null;
     520                $c = null;
     521            }
     522            throw new jExceptionSelector('jelix~errors.selector.invalid.target', array($this->toString(), "locale"), 1, $l, $c);
    517523        }
    518524        $this->_where = 'modules/';
    519525    }
     
    877883    }
    878884}
    879885
    880 ?>
    881  Pas de fin de ligne à la fin du fichier
     886?>
  • lib/jelix/core/jException.lib.php

     
    33* @package     jelix
    44* @subpackage  core
    55* @author      Laurent Jouanneau
    6 * @contributor Sylvain de Vathaire
     6* @contributor Sylvain de Vathaire, Julien Issler
    77* @copyright   2005-2008 laurent Jouanneau, 2007 Sylvain de Vathaire
     8* @copyright   2008 Julien Issler
    89* @link        http://www.jelix.org
    910* @licence     GNU Lesser General Public Licence see LICENCE file or http://www.gnu.org/licenses/lgpl.html
    1011*/
     
    4849     * @param array $localeParams parameters for the message (for sprintf)
    4950     * @param integer $code error code (can be provided by the localized message)
    5051     * @param string $lang
     52     * @param string $charset
    5153     */
    52     public function __construct($localekey, $localeParams=array(), $code = 1, $lang=null) {
     54    public function __construct($localekey, $localeParams = array(), $code = 1, $lang = null, $charset = null) {
    5355
    5456        $this->localeKey = $localekey;
    5557        $this->localeParams = $localeParams;
    5658
    5759        try{
    58             $message = jLocale::get($localekey, $localeParams, $lang);
     60            $message = jLocale::get($localekey, $localeParams, $lang, $charset);
    5961        }catch(Exception $e){
    6062            $message = $e->getMessage();
    6163        }
     
    9294
    9395}
    9496
    95 ?>
    96  Pas de fin de ligne à la fin du fichier
     97?>