Je ne doute pas que ce problème de caractères accentués sera réglé au plus tôt, mais en attendant, pour ceux qui auront le courage d'effectuer cette petite manip, voici ce que j'ai fait pour le site
http://auteurs.codexlibris.com/CREATION D'UN NOUVEAU CHAMP DANS LA BASE DE DONNEES
table : x
xxx_lt_articles_text
champ à créer : nom : decod ; type : tinyint(4)
CREATION D'UN FICHIER "caracteres.php" à mettre dans le répertoire htdocs/modules/news/
//-----------------(remplacez les XXX par vos valeurs)-----
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?
$host = "[color=993300]xxx[/color]";
$user = "[color=993300]xxx[/color]";
$pass = "[color=993300]xxx[/color]";
$bdd = "[color=993300]xxx[/color]";
@mysql_connect($host,$user,$pass)
or die("Impossible de se connecter");
@mysql_select_db("$bdd")
or die("Impossible de se connecter");
$postId = $_GET['postId'];
$kod = Array('& Ccedil ;','& oelig ;','& iuml ;','& ucirc ;','& ccedil ;','& ugrave ;','& euml ;','& icirc ;','& acirc ;','& ecirc ;','& eacute ;','& egrave ;','& ocirc ;','& agrave ;');
//(sans espaces après les "&" et avant les ";" - J'ai mis des espaces ici car sinon ça afficherait la même chose que la ligne du dessous)
$lttcor = Array('Ç','œ','ï','û','ç','ù','ë','î','â','ê','é','è','ô','à');
//(vous pouvez rajouter d'autres caractères spéciaux si besoin)
$tabledef="x[color=993300]xxx[/color]_lt_articles_text" ;
$query = "SELECT * FROM $tabledef WHERE decod != '1' ORDER by id" ;
$resultdecod = mysql_query($query);
while ($valdecod = mysql_fetch_array($resultdecod)) {
$tpc_change1a = $valdecod["topic"] ;
$tpc_change2a = $valdecod["normalized_topic"] ;
$tpc_change1b = str_replace($kod, $lttcor, $valdecod["topic"]) ;
$tpc_change2b = str_replace($kod, $lttcor, $valdecod["normalized_topic"]) ;
$tpc_change1b = addslashes($tpc_change1b) ;
$tpc_change2b = addslashes($tpc_change2b) ;
$numtitre = $valdecod["id"] ;
$SQL="UPDATE $tabledef set topic = '$tpc_change1b', normalized_topic = '$tpc_change2b', decod = '1' WHERE id = '$numtitre' AND decod != '1'" ;
mysql_query($SQL) ;
}
?>
//-------------------------------------------------------
CREATION D'UN FICHIER "tag.php" à mettre dans le répertoire htdocs/modules/lifetype/
//-----------------(remplacez les XXX par vos valeurs)-----
<?
$host = "[color=993300]xxx[/color]";
$user = "[color=993300]xxx[/color]";
$pass = "[color=993300]xxx[/color]";
$bdd = "[color=993300]xxx[/color]";
@mysql_connect($host,$user,$pass)
or die("Impossible de se connecter");
@mysql_select_db("$bdd")
or die("Impossible de se connecter");
$postId = $_GET['postId'];
$tabledef="x[color=993300]xxx[/color]_lt_articles_text" ;
$query = "SELECT * FROM $tabledef WHERE article_id = '$postId'" ;
$resultag = mysql_query($query);
while ($valtag = mysql_fetch_array($resultag)) {
$SQL="UPDATE $tabledef set decod = '0' WHERE article_id = '$postId'" ;
mysql_query($SQL) ;
}
?>
Il faut ensuite appeler ces fichiers respectivement par :
- Le fichier "modules/news/index.php --> include_once "caracteres.php" ; (sous la ligne "include_once XOOPS_ROOT_PATH.'/class/tree.php';")
- Le fichier modules/lifetype/admin.php ---> include('tag.php') ;(juste en dessous de "<?php" ).
Le premier qui arrivera sur la page d'accueil corrigera automatiquement, sans que ça se voit, tous les titres du bloc récalcitrant. Ensuite, dés que quelqu'un mettra un nouvel article, ou en modifiera un, le premier qui arrivera sur la page d'accueil corrigera le titre de celui-là, et pas les autres.
Ainsi il n'y aura aucune requête inutile.
PS : J'ai rajouté par mégarde la ligne "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml ... ional.dtd">" en haut du fichier "modules/lifetype/admin.php". Je ne sais pas si ça a une incidence sur le bon fonctionnement du système, mais vu que ça ne nuit pas je l'ai laissé. Ça ne doit pas en avoir puisque la bdd se remplit de la même façon, mais je le signale quand même au cas où ...
J'espère que ça vous dépannera en attendant un éventuel add-on.
Cordialement,
Axior
http://www.axior.fr