Comment convertir un site sous SPIP en iso-8859-1 ?

WRInaute accro
Bonjour

Je suis en train de faire un site sous SPIP 2.1, j'ai configuré dès le début SPIP avec l'interface de configuration d'admin, en mode de charset iso-8859-1, mais la base de données spip n'a pas été touchée, théoriquement ( mais pas sûr ).

Ce site http://www.lespronostics.com , utilise aussi une autre base de données, celle de l'autre site http://www.lescourses.com ( sur le même serveur dédié de mon site partenaire ), cette base de données est en natif en mode latin1, c'est-à-dire iso-8859-1, ce pourquoi j'avais l'intention depuis le début, de programmer le site ( pour le directeur de mon site partenaire sous SPIP ), en mode iso-8859-1.

Je croyais, en toute innocence, que le fait d'avoir configuré dans l'interface d'administration du site sous SPIP, le type du site en iso-8859-1, ferait que je n'aurais plus de problèmes avec le charset.

Mais, j'ai eu besoin du plugin "Crayons", pour donner à mon dirlo la possibilité d'éditer des "news" ( ou articles ) sur sa page d'accueil directement, ( en fait les news sont créées sur l'interface privée accessible en tant que rédacteur, et modifiables sur la page d'accueil ). A ce plugin "Crayons", j'ai adjoint pour le faire fonctionner, les plugins "Autorité" et "CFG".

Mais vla-t-y pas, que quand j'essaye d'éditer une news ( = un article ), que ce soit sur l'espace privé ou en mode modification sur la page d'accueil, les voyelles accentuées font que le texte disparaît dès qu'il rencontre une voyelle accentuée.

Tout se passe comme si, le contenu édité était entré au clavier en mode iso-8859-1 ( normal ), enregistré dans la table spip_articles en mode utf-8, et à la lecture ( en mode utf-8 au niveau de la base de données ), le résultat s'arrête à la première lettre non valide.

D'où ma question : Je ne peux pas convertir la base de données secondaire de http://www.lescourses.com qu'utilise le site http://www.lespronostics.com pour ses données, en mode utf-8. Je suis obligé d'avoir un site sous SPIP en mode iso-8859-1.

Mais... Comment convertir tout mon site sous SPIP, en mode iso-8859-1,de manière à ce que ce site, ainsi que tous les plugins que j'ai, et que je mettrai ultérieurement ( éventuellement, peut-être un plugin de forum, mais pas sûr ), se comportent définitivement entièrement en mode iso-8859-1 ?

Celà devrait concerner la base de données SPIP, entre autres. Est-il possible de la convertir en mode iso-8859-1 entièrement, sachant que pour l'instant, il n'y a aucun article dedans ni contenu édité, mais est-il vrai, qu'il soit possible de convertir une bdd spip, en mode iso-8859-1, sans affecter le fonctionnement du site sous spip ?

Et puis, quid de la compatibilité des plugins ultérieurs, avec ce mode ? Et, faut-il faire autre chose, comme par exemple, à ce que j'ai lu quelque part sur le net une instruction MySQL "SET NAMES='latin1';" après l'instruction de connexion spip_connect_db(), dans le script de configuration de base de données : /spip/config/lespronostics.php , instruction de préférence adaptée à la syntaxe des focntions MySQL de spip, et si oui, laquelle ?

Merci beaucoup de vos réponse, qui me permettront peut-être, d'offirer à mon dirlo, la possibilité d'éditer ses news directement avec des voyelles accentuées, sans avoir besoin des codes html, comme c'est le cas actuellement.

Merci beucoup de vos réponses.

Bien à vous.

Amicalement.

Jean-François Ortolo
 
WRInaute accro
Moi à ta place j'exporterai la totalité de la base et je convertirai le fichier sql en iso (grâce à mon éditeur qui fait ça très bien).
Ensuite je m'assurerai que mes tables sont biens déclarées en iso machin, puis je réimporte.
 
WRInaute accro
bproductiv a dit:
Moi à ta place j'exporterai la totalité de la base et je convertirai le fichier sql en iso (grâce à mon éditeur qui fait ça très bien).
Ensuite je m'assurerai que mes tables sont biens déclarées en iso machin, puis je réimporte.


Bonjour Monsieur

Et... Est-ce que spip va fonctionner en iso ( configuré en iso ), et ceci, également avec tous les plugins futurs que je pourrai y importer ?

Simplement en vue pour l'instant : Un plugin de Forum, bien qu'il soit possible , d'associer un forum à chaque articles.

Cependant, en spip je suis complètement nul en mise en place de forum, mais j'aurai prochainement, à mettre en place une telle fonctionnalité de forum, de préférence extensible en catégories et sous-catégories.

Merci beaucou de votre réponse.

Bien à vous.

Amicalement.

Jean-François Ortolo
 
WRInaute accro
Alors là je ne peux pas dire grand chose, SPIP j'aime pas des masses, moins j'y touche mieux je me porte :)
Allez voir directement sur le site de la communauté SPIP, ils seront mieux placés pour vous répondre.
 
WRInaute accro
bproductiv a dit:
Alors là je ne peux pas dire grand chose, SPIP j'aime pas des masses, moins j'y touche mieux je me porte :)
Allez voir directement sur le site de la communauté SPIP, ils seront mieux placés pour vous répondre.


Bonjour Monsieur

Merci beaucoup de votre réponse.

Bien à vous.

Amicalement.

Jean-François Ortolo
 
WRInaute accro
Le souci c'est que la communauté SPIP, du moins via leurs forums, n'est pas très réactive.

A mon avis, en passant en ISO, tu risques surtout de te causer des problèmes futurs, car tu ne peux pas te garantir une bonne compatibilité avec les futurs plugins que tu vas installer, vu que certains ajoutent des tables.
 
WRInaute accro
UsagiYojimbo a dit:
Le souci c'est que la communauté SPIP, du moins via leurs forums, n'est pas très réactive.

A mon avis, en passant en ISO, tu risques surtout de te causer des problèmes futurs, car tu ne peux pas te garantir une bonne compatibilité avec les futurs plugins que tu vas installer, vu que certains ajoutent des tables.


Bonjour UsagiYojimbo

C'est bien ce que je pensais.

J'ai donc intérêt apparemment à reconfigurer en utf-8, à convertir à la volée toutes les données provenant de la bdd de http://www.lescourses.com ( qui sont en en iso ) en utf-8, et à translater en écriture vers cette bdd, en iso-8859-1.

Celà devrait être possible, vu que l'interface lecture/écriture entre la partie provenant de cette bdd, et celle située sur le site lui-même, est faible.

Théoriquement, les seuls éléments à enregistrer du site vers cette bdd, sont les logins et les adresses emails des abonnés ( à la rigueur celà pourrait poser un problème de traduction vers iso/retour vers utf-8 dans certains cas ;( ) , et les mots de passe, mais ceux-ci sont imposés par Allopass, et sont constitués seulement de lettres majuscules sans accent et de chiffres, donc pas de problème de ce côté-là. Il y a aussi d'autres données calculées, comme des données de type date ou datetime, mais sous l'angle de chaînes de caractères, c'est de l'ascii pur, à part peut-être le signe moins des dates. Celà ne poserait pas de problèmes de conversion avec la fonction iconv() :

$str_result = iconv("UTF-8", "ISO-8859-1//TRANSLIT//IGNORE", $str_source);

//TRANSLIT permet de convertir de manière approximative si aucun équivalent strict n'est trouvé, et //IGNORE de sauter les caractères ne pouvant pas du tout être convertis.

Pour les logins et les adresses emails, j'espère qu'il n'y aura pas de gros malins qui me mettent des caractères très tarabiscotés... De toute manière, ils n'y ont oas intérêt, vu que leur adresse email est censée être utilisable pour les joindre, même si en fait, elle ne sert qu'excessivement rarement, puisque c'est l'email donnée à Allopass au moment de l'abonnement, qui sert entre Allopass et l'abonné. Notre adresse email, ne nous sert qu'en cas de réclamation directe à notre site d'un abonné, et encore l'identification devrait être possible manuellement, entre le login et l'adresse email, car le traitement des réclamations ( par mon dirlo ), est toujours manuel. ( Il n'y a pas de procédure de rappel de mot de passe perdu ).

Simplement, si je fais cette modification, qui sera assez grosse, j'aurai intérêt à ne rien oublier, et à adopter une démarche très systématique pour tous les scripts html et php du site ( démarche scientifique si l'on peut dire... ;) ), à charge de vériifier après coup, si tout fonctionne bien...

L'alternative, étant d'obliger mon dirlo, à entrer ces news avec des voyelles accentuées sous forme de codes html, ( genre é pour é ) je vais lui demander d'abord si celà lui pose problème. ;)

Mais... Comme le site est configuré actuellement en iso-8859-1, est-ce que par exemple, pour les statistiques de visites, les données des tables de stats, sont actuellement en iso, ou en utf-8 ?

Ce n'était pas précisé sur l'interface de spip, qu'au cas où le choix était autre que utf-8, il faudrait convertir toute la base spip, et le type par défaut des tables, en latin1 ( pour le cas de l'iso-8859-1 ).

J'ai fait cette configuration en iso, dès après l'installation de spip sur le site http://www.lespronostics.com de mon dirlo.

D'autre part, pour les index des tables, je ne sais pas si c'est possible, sous MySQL, qu'il y ait des clés liées entre table MySQL, comme celà peut être le cas pour une bdd Oracle. Dans ce cas, migrer toutes les tables en latin1, de toute façon poserait de très gros problèmes, pratiquement insurmontables... ;(

Je sais bien comment on migre une table et ses index en mode latin1 : Il suffit de faire :

ALTER TABLE nom_table CONVERT TO CHARACTER SET latin1 COLLATE latin1_general_ci;

( On peut peut-être mettre latin1_swedish_ci au lieu de latin1_general_ci ).

Il y a le risque que la conversion se passe mal... ;(

ALTER TABLE nom_table DEFAULT CHARACTER SET=latin1; // Pour convertir le charset par défaut de la table.
ANALYZE TABLE nom_table; // Pour vérifier que les index sont correctement modifiés.

Mais... Si lors de la modification, il y a des index de tables différentes liés entre eux, bonsoir... ;(

Merci beaucoup de ta réponse.

Bien à vous.

Amicalement.

Jean-François Ortolo
 
Discussions similaires
Haut