RECAPITULATIF DES MODIFICATIONS POUR CHARSET UTF-8Pour s'y retrouver un peu, j'ai rassemblé ici toutes les modifications (à contrôler cependant par rapport à tout ce que j'ai posté)
Les modifications mineures du dossier languages (admin_fr-UTF-8.lang.php, client_fr-UTF-8.lang.php, client_fr.lang.php, common_fr-UTF-8.lang.php et install_fr-UTF-8.lang.php, ne sont pas détaillées ici)
(Certaines modifications ont déjà été apportés par Matthieu et sont déjà contenus dans le zip de téléchargement (cela dépend donc de la date de téléchargement du fichier))
******************************
Dans
admin/install.phpRemplacer la ligne 81 (déjà corrigé)
echo ' <li><a href="install.php?step=2&charset=utf-8">UTF-8</a></li>'.CR;
Par:
echo ' <li><a href="install.php?step=2&charset=UTF-8">UTF-8</a></li>'.CR;
******************************
Dans
admin/legal.phpRemplacer à partir de la ligne 19
// license text
echo '<h3>'.$ntux2['legal_license'].'</h3>'.CR;
echo '<p>'.$ntux2['legal_licence_cecill'].'</p>'.CR;
echo '<pre id="license">'.CR;
$licensefile = (DEF_LANG == 'fr') ? 'newslettux2_license_fr.txt' : 'newslettux2_license_en.txt';
include(NTUX2_ROOT.$licensefile);
Par:
// license text
echo '<h3>'.$ntux2['legal_license'].'</h3>'.CR;
echo '<p>'.$ntux2['legal_licence_cecill'].'</p>'.CR;
echo '<pre id="license">'.CR;
$licensefile = (DEF_LANG == 'fr') ? 'newslettux2_license_fr.txt' : 'newslettux2_license_en.txt';
if (CHARSET == 'UTF-8'){
echo utf8_encode(nl2br(file_get_contents(NTUX2_ROOT.$licensefile)));
}
else
{
include(NTUX2_ROOT.$licensefile);
}
******************************
Dans
admin/write.phpRemplacer à partir de la ligne 709:
//insert manage subscriptions link
$array_newsletter['text']['body'] .= CR.CR.$ntux2['write_manage_subs_link'].' : '.SITE_URL_REG_FORM;
$array_newsletter['html']['body'] .= '<br><br>'.CR.'<span class="ntux2_links"><a href="'.SITE_URL_REG_FORM.'">'.$ntux2['write_manage_subs_link'].'</a></span>'.CR;
Par:
//insert manage subscriptions link
if (CHARSET == 'UTF-8'){
$array_newsletter['text']['body'] .= CR.CR.utf8_encode(html_entity_decode($ntux2['write_manage_subs_link'])).' : '.SITE_URL_REG_FORM;
}
else
{
$array_newsletter['text']['body'] .= CR.CR.$ntux2['write_manage_subs_link'].' : '.SITE_URL_REG_FORM;
}
$array_newsletter['html']['body'] .= '<br><br>'.CR.'<span class="ntux2_links"><a href="'.SITE_URL_REG_FORM.'">'.$ntux2['write_manage_subs_link'].'</a></span>'.CR;
******************************
Dans
lib/class.phpmailer.phpRemplacer ligne 37 (déjà corrigé)
var $CharSet = "iso-8859-15";
Par:
var $CharSet = CHARSET;
******************************
Dans
lib/functions.phpRemplacer à partir de la ligne 1078
function SendTextMail($recipient, $subject, $message, $sitename, $sender)
{
$headers = 'From: '.Disp($sitename).' <'.$sender.'>' . "\r\n";
$subject = str_replace("’","'",$subject);
$subject = str_replace(""",'"',$subject);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
return mail($recipient,$subject,$message,$headers);
};
Par:
function SendTextMail($recipient, $subject, $message, $sitename, $sender)
{
$headers = 'From: '.Disp($sitename).' <'.$sender.'>' . "\r\n";
$subject = str_replace("’","'",$subject);
$subject = str_replace(""",'"',$subject);
$message = str_replace("’","'",$message);
$message = str_replace(""",'"',$message);
if (CHARSET == 'UTF-8')
{
$subject = html_entity_decode($subject);
$message = html_entity_decode($message);
}
return mail($recipient,$subject,$message,$headers);
};
******************************
Dans
newslettux_rss.php Remplacer lignes 89 à 91:
// include language files
require(NTUX2_ROOT.'languages/client_'.DEF_LANG.'.lang.php');
require(NTUX2_ROOT.'languages/common_'.DEF_LANG.'.lang.php');
Par:
// include language files
if (CHARSET == 'ISO-8859-15') // default value
{
$client_lang_file = 'client_'.DEF_LANG.'.lang.php';
$aux_lang_file = 'common_' .DEF_LANG.'.lang.php';
}
else // not iso-8859-15
{
$client_lang_file = 'client_'.DEF_LANG.'-'.CHARSET.'.lang.php';
$aux_lang_file = 'common_' .DEF_LANG.'-'.CHARSET.'.lang.php';
}
require(NTUX2_ROOT.'languages/'.$client_lang_file);
require(NTUX2_ROOT.'languages/'.$aux_lang_file);
echo '<meta http-equiv="Content-Type" content="text/html; charset= '.CHARSET.'">';
******************************
Dans
form-newslettux.php Aux environs de la ligne 92, remplacer:
// include lang file
$req_configlang = "SELECT conf_value AS lang FROM ".DB_PREFIX."config WHERE conf_name='lang'";
$configlang = Executequery($req_configlang, __FILE__, __LINE__);
$config = mysql_fetch_array($configlang);
$lang = $config['lang'];
$array_langs = GetLang(NTUX2_ROOT.'languages/');
if (!in_array($lang, $array_langs)) { $lang = 'fr'; }
require(NTUX2_ROOT.'languages/client_'.$lang.'.lang.php');
require(NTUX2_ROOT.'languages/common_'.DEF_LANG.'.lang.php');
Par:
// include lang file
$req_configlang = "SELECT conf_value AS lang FROM ".DB_PREFIX."config WHERE conf_name='lang'";
$configlang = Executequery($req_configlang, __FILE__, __LINE__);
$config = mysql_fetch_array($configlang);
$lang = $config['lang'];
$array_langs = GetLang(NTUX2_ROOT.'languages/');
if (!in_array($lang, $array_langs)) { $lang = 'fr'; }
if (CHARSET == 'ISO-8859-15') // default value
{
$client_lang_file = 'client_'.DEF_LANG.'.lang.php';
$aux_lang_file = 'common_' .DEF_LANG.'.lang.php';
}
else // not iso-8859-15
{
$client_lang_file = 'client_'.DEF_LANG.'-'.CHARSET.'.lang.php';
$aux_lang_file = 'common_' .DEF_LANG.'-'.CHARSET.'.lang.php';
}
require(NTUX2_ROOT.'languages/'.$client_lang_file);
require(NTUX2_ROOT.'languages/'.$aux_lang_file);
echo '<meta http-equiv="Content-Type" content="text/html; charset= '.CHARSET.'">';
Lors de l'installation de NewsletTux 2.0.7, la base de donnée est installée au format latin1_general_ci (ISO 8859-1), je l'ai remplacé par utf8_general_ci (UTF-8). Les derniers tests que j'ai réalisés ont été fait avec la base de donnée en ISO puis en UTF, les lettres réceptionnées ont été dans le bon format quelquesoit le format d'enregistrement de la base.
Pour rappel, seul la partie UTF-8 a été modifiée ici.