mise à jour et charset

bonjour,
bon je me décide à passer à la dernière version ... mais quelle galère !!!
le plus gros est fait, mais voulant maintenant être en UTF8 (avant c'était "ISO-8859-1)
j'ai modifié le fichier config.php, réussi à faire la mise à jour vers la dernière version ....
seule chose : les articles déjà publiés sont tous en "ISO-8859-1" et je ne vous dit pas leur tronche dans "plxToolbar" si je veux apporter une modif .... une véritable histoire de fou ^^
j'ai essayé sous notepad++ "remplacer" ... <?xml version='1.0' encoding='ISO-8859-1'?> par <?xml version='1.0' encoding='UTF-8'?> , puis caractère par caractère .... tout plante !!!
de plus il y a aussi les commentaires et avec plus de 600 posts et le commentaires .... si vous avez une solution, là je suis preneur ;)
une page statique à refaire, ok mais plus de 2000 articles et commentaires (+ce que j'ai du oublier) là ... je calle !!!
@+
«1

Réponses

  • un exemple du "chapô" :
    "<p>
    Google a fait paraître un article, donnant quelques indications, sur les qualités demandées pour qu'un site soit correctement pris, référencé et positionné par le moteur de recherche.</p> "

    il faudrait que j'arrive avec un 'patch' à changer le charset pour chaque post, les caractères spéciaux etc etc ... mais comment faire ?
  • Je vois que le rechercher/remplacer sauf que tu risque d'avoir un problème si tu publie du code. Par exemple quand tu ajoute <?php dans un article il est enregistré sous la forme "<?php" dans ce cas c'est volontaire et normal. Mais si tu passe un coups de rechercher < remplacer par < tu risque d'avoir des résultats bizarre. A moins de faire une recherche par mot exacte.

    J'ai un string de l'array

  • il ne s'agit que de réussir à "traduire" les articles et les commentaires ...
    - je change le charset
    - je change tous les caractères accentués
    avec notepad++
    et quand je les remets en place : plus rien ou quasiment ne s'affiche !!!
    comprends pas ... ou alors le fichier lui-même est encore mal encodé ??? mais comment faire ?
    ...
  • StéphaneStéphane Member, Former PluXml Project Manager
    Bonjour,

    Essaye ça:

    - ouvre un fichier xml d'un article avec notepad++
    - crée un nouveau document, va dans le menu "Encodage" et sélectionne "Encoder en UTF-8 (sans BOM)
    - fait un copier coller du code xml dans le nouveau document
    - sauvegarde le nouveau document à la place de l'ancien

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • bg62bg62 Member
    septembre 2011 modifié
    Stéphane a écrit:
    Bonjour,

    Essaye ça:

    - ouvre un fichier xml d'un article avec notepad++
    - crée un nouveau document, va dans le menu "Encodage" et sélectionne "Encoder en UTF-8 (sans BOM)
    - fait un copier coller du code xml dans le nouveau document
    - sauvegarde le nouveau document à la place de l'ancien
    voici ce que j'ai fait :
    - fichier ouvert
    - nouveau doc .....
    - copier/coller
    sauvegarder sous le même nom de fichier et ça me donne ceci :
    "<?xml version='1.0' encoding='ISO-8859-1'?>
    <document>
    <title><![CDATA[google panda : réclamation en ligne]]></title>
    <allow_com>1</allow_com>
    <template><![CDATA[article.php]]></template>
    <chapo><![CDATA[<p>
    La mise à jour <strong>Panda de Google</strong> a été lancée vers le 15 août en France et de nombreux sites ont été touchés. Pour ceux qui auraient été victimes de ce terrible animal, les équipes françaises du moteur de recherche proposent un formulaire qui permet de faire part de la situation.  Mais aucune idée si les commentaires seront pris en compte, cela peut valoir quand même la peine d’essayer, que ce soit pour son propre site, pour un site client ou pour un site qu’on adore et qu’on ne voit plus dans les résultats.</p>]]></chapo>
    <content><![CDATA[<p>
    Il est vrai que ce formulaire semble assez étrange : pas de courriel à laisser, pas besoin d'être connecté sur son compte ... et dans un post sur le forum de google, l'on nous dit ceci :</p>
    <p>
    "Nous venons de déployer une mise à jour de notre algorithme de recherche afin de mettre en avant les résultats de haute qualité pour nos utilisateurs français. <br />
    <br />
    Si vous trouvez des exemples de résultats de recherche qui selon vous n’ont pas été améliorés par cette mise à jour, veuillez nous les faire parvenir via ce formulaire : <br />
    <a href="https://docs.google.com/spreadsheet/viewform?formkey=dGYwZGlIeUtmZ0phS0g3b0cxRlhXcFE6MQ&ifq"; target="_blank">https://docs.google.com/a/google.com/spreadsheet/viewform?formkey=dGYwZGlIeUtmZ0phS0g3b0cxRlhXcFE6MQ. </a><br />
    <br />
    Même si nous ne serons pas en mesure d’adresser une réponse individuelle à chaque commentaire, nous allons partager avec notre équipe d’ingénieurs les exemples que vous nous aurez envoyés. Ces informations seront prises en compte lors des prochaines itérations de notre algorithme."</p>
    <p>"

    comme tu peux le voir, sauf dans le titre rien n'est modifié, le charset non plus ....
    ps : je suis sous wamp en local pour essayer de faire tout ça :)
    ???
  • StéphaneStéphane Member, Former PluXml Project Manager
    faut quand même modifier le charset en remplaçant la 1ere ligne du fichier par
    <?xml version="1.0" encoding="UTF-8"?>
    

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • voilà ce que ça donne :
    <?xml version='1.0' encoding='UTF-8'?>
    <document>
    	<title><![CDATA[un site de qualité,selon Google]]></title>
    	<allow_com>1</allow_com>
    	<template><![CDATA[article.php]]></template>
    	<chapo><![CDATA[<p>
    	Google a fait paraître un article, donnant quelques indications, sur les qualités demandées pour qu'un site soit correctement pris, référencé et positionné par le moteur de recherche.</p>]]></chapo>
    	<content><![CDATA[<p>
    	<a href="https://sites.google.com/site/webmasterhelpforum/informations-supplementaires-concernant-la-creation-de-sites-de-qualite" target="_blank">Google Webmaster Central</a> nous donne des <strong>Informations supplémentaires concernant la création de sites de qualité</strong> .</p>
    <p>
    	Vous pouvez retouver l'intégralité du texte en ligne sur ce lien, mais voici ici les principaux points généraux :</p>
    <p>
    
    !?!
    rien à faire ....
  • StéphaneStéphane Member, Former PluXml Project Manager
    c'est quoi le problème ?

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • Stéphane a écrit:
    c'est quoi le problème ?
    les caractères accentués ne sont pas en utf8 et quand je suis dans l'éditeur c'est la panique ....
    pas moyen, charset changé en haut de page, de mettre du texte "normal"
    j'ai ceci :
    <chapo><![CDATA[<p>
    Google a fait paraître un article, donnant quelques indications, sur les qualités demandées pour qu'un site soit correctement pris, référencé et positionné par le moteur de recherche.</p>]]></chapo>
    <content><![CDATA[<p>

    et je voudrais cela :
    <chapo><![CDATA[<p>
    Google a fait paraître un article, donnant quelques indications, sur les qualités demandées pour qu'un site soit correctement pris, référencé et positionné par le moteur de recherche.</p>]]></chapo>
    <content><![CDATA[<p>
    dans le titre, chapô, article etc etc ... de tous les posts et commentaires pour que tout soit dans le blog finalement codé en utf8 ....
    aurais-tu une solution ?
  • toujours rien trouvé comme "bonne solution" ...
    - pas de solution pour tout transformer, traduire, à partir d'un 'patch' par exemple ???
    ou alors, autre chose :
    installer la nouvelle version en "ISO", mais comment ?
    et avec un éditeur compatible, lequel ?
    sos sos sos
    ;)
  • Bonjour bg62,

    une solution pour repasser les caractères accentués des articles en utf-8 :
    Installer ckeditor (qui existe sous la forme d'un plugin pour la v5.1.2, bas de page téléchargement) et le configurer pour que les caractères accentués ne soient plus codés (ils sont remplacés par des entités html par défaut).

    Pour cela, éditer plugins/ckeditor/ckeditor/config.js
    et remplacer la fonction par celle-ci où les lignes nécessaires ont été ajoutées :
    CKEDITOR.editorConfig = function( config )
    {
    	config.entities = false;
    	config.entities_greek = false;
    	config.entities_latin = false;
    	// Define changes to default configuration here. For example:
    	// config.language = 'fr';
    	// config.uiColor = '#AADC6E';
    };
    
    Ensuite, il suffira normalement d'ouvrir un article puis de l'enregistrer pour que les caractères accentués soient en utf-8.

    Enfin, j'ai eu quelques soucis avec Notepad++ au sujet de l'utf-8. Notamment sur du code comportant une regex, le fichier était vu comme de l'utf-8 par notepad mais ne fonctionnait pas pour autant. Une fois converti avec un autre éditeur, PSPad, plus de soucis car la regex apparaissait enfin correctement. Une piste a étudier si le but est de "convertir" les articles en passant par l'édition des fichier xml.

    Cordialement,
    Ludo
  • merci ludo_17 ... une piste à explorer ;)
    mais si c'est celui-ci :
    http://wiki.pluxml.org/index.php?page=CKEditor
    il est noté 'périmé' dans le wiki:
    http://wiki.pluxml.org/index.php?page=Accueil#Editeurs_de_texte ... !?
    et l'archive décompressée donne addons/...... et non plugins/.....
    donc ou il y a problème, ou je me suis trompé de lien pour le télécharger ...
    @+
  • j'ai téléchargé, décompressé l'archive qui contient :
    editor.ckeditor/editor
    editor.ckeditor/ckfinder
    dans les plugins .....
    j'ai fait la modif indiquée ... mais je ne le trouve pas dans les plugins pour l'activer !!!
    je l'ai ensuite mis dans "addons" avec ces 2 lignes dans header.php:
    <script type="text/javascript" src="<?php echo PLX_ROOT ?>addons/editor.ckeditor/editor/ckeditor.js"></script>
    <script type="text/javascript" src="<?php echo PLX_ROOT ?>addons/editor.ckeditor/ckfinder/ckfinder.js"></script>
    et je ne le vois toujours pas ....
    ???
  • bon j'ai trouvé :
    http://pluxml.org/?static7/download
    vais donc essayer et je vous tiens au courant....
  • @ Ludo_17 : J'ai testé ta config de CKeditor, car c'est un truc qui ne me plaisait pas, car le doc type des thèmes sont en UTF-8.

    L'UTF-8 n'est pas pris en compte par CKeditor . l'encodage reste toujours en ISO.

    Au fait, super ton site, il y a plein d'outils pour PluXml. ;)
  • bg62bg62 Member
    septembre 2011 modifié
    à force de me parler à moi-même ...
    enfin OK ça fonctionne et en enregistrant les posts il n'y a plus ces 'caractères' et ils sont enregistrés en utf8, ouf ... un début de solution ...
    - vais donc devoir procéder ainsi sur plus de 600 articles
    - sur encore plus de commentaires
    bon mais puisque je ne trouve que ça ...
    question : ensuite, une fois tout cela fait, dois-je remettre "plugins/ckeditor/ckeditor/config.js" en l'état d'origine ou je le laisse ainsi ???

    premier inconvénient : il me dit que le dossier 'images' est vide .... bon pour l'instant ce n'est pas la priorité quand même
  • Si tu changes ton config.js, tu enlèves le paramétrage de CKEditor. Donc, non ! ;)
  • "

    L'UTF-8 n'est pas pris en compte par CKeditor . l'encodage reste toujours en ISO."
    ben avec ce que je viens de tester ... non !
    mais page par page, comment par comment, j'en ai pour des semaines à faire la mutation ...
    merci pour les 'compliments" ;)
    en plus en ce moment j'ai plein de "trucs" à mettre mais je me 'freine' volontairement à cause de cette 'mutation' ...
    @+
  • Bloody a écrit:
    Si tu changes ton config.js, tu enlèves le paramétrage de CKEditor. Donc, non ! ;)
    non ... quoi ??
  • Ludo_17Ludo_17 Member
    septembre 2011 modifié
    Bonjour,
    Bloody a écrit:
    @ Ludo_17 : J'ai testé ta config de CKeditor, car c'est un truc qui ne me plaisait pas, car le doc type des thèmes sont en UTF-8.

    L'UTF-8 n'est pas pris en compte par CKeditor . l'encodage reste toujours en ISO.

    Au fait, super ton site, il y a plein d'outils pour PluXml. ;)
    Merci ;o)
    Pour que les caractères accentués demeurent en UTF-8, il suffit de "dire" à ckeditor ne ne pas les coder en entités html. C'est le but de la modif de config.js (à noter que cela figure dans la doc présente sur le site de ckeditor, notamment ici).

    Par contre, il faut évidemment que le site ne soit pas en ISO-8859 mais bien en UTF-8;

    @bg62 : effectivement, 600 articles... Bon courage ;o)

    Cordialement,
    Ludo

    edit : mon site (v5.1.2) est en utf-8, j'utilise ckeditor en attendant l'évolution de ezhtml et je l'ai configuré comme indiqué précédemment.
  • "@bg62 : effectivement, 600 articles... Bon courage ;o)"
    ;)
    effectivement, pas sorti de l'auberge car il y a les commentaires aussi en + !!!
    vais voir cette semaine si je trouve le temps de faire tout ça en local .... quelle galère !!!
    @+
  • bon là ça y est ... je craque !!!
    5 jours dessus, 9 dossiers de tentatives ... rien !!!
    notepad++ pose quand même des problèmes
    ckeditor m'en pose d'autres ... ^^
    662 articles, encore plus de commentaires et tous les tags à entrer (bon là faudra bien le faire à la main ensuite ... mais bon ...)
    rien à faire je n'arrive pas à trouver de solution 'globale', un patch par exemple pour convertir les articles, commentaires et autres fichiers liés en utf8 (correct)
    voici là où j'en suis :

    pluxml2.jpg
    ici en haut des "lignes ... articles" blancs ....
    et dans l'admin si je veux supprimer : impossible !!! :
    pluxml1.jpg
    et le top du top sur certaines pages, ça donne cela :
    pluxml.jpg

    help !!!
  • Ludo_17Ludo_17 Member
    septembre 2011 modifié
    bonjour bg62

    une question :
    tu ouvres (comme un visiteur) un de tes articles pas encore "converti", puis clic droit "code source de la page" pour FF (afficher la source je crois sous IE),
    la ligne suivante est-elle présente dans le haut de page :
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    Les caractères accentués de cet article sont-ils de la forme : & suivi de eacute puis ; (par exemple), donc entités html ?

    Ensuite, dans le cas où tu as installé ckeditor puis modifié sa config comme vu précédemment,
    l'édition de cet article puis son enregistrement (sans rien faire d'autre) permet-il de constater la transformation des caractères &....; en é par exemple (en affichant le code source de l'article visité) ?

    Si oui, c'est à mon avis la seule solution pour ton problème. En effet, dans ce cas, c'est pluxml qui enregistrera les fichiers xml en utf-8 après conversion des caractères et il n'y a en principe aucun soucis (du moins j'avais eu un peu le même soucis résolu de cette façon).

    Car pour faire un "patch" traitant tous tes articles, il faudrait créer un script passant les articles par html_entity_decode() puis enregistrant le fichier en utf-8. Mais cette fonction traite aussi les caractères comme < ou > ce qui pourrait poser problème si tu affiches du code source dans certains de tes articles.

    cordialement,
    Ludo
  • ;)
    "<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    non si je prends les articles et le reste, ils sont tous en ISO ...

    "Ensuite, dans le cas où tu as installé ckeditor puis modifié sa config comme vu précédemment, ....."
    pas sur tous (en les ayant mis en utf8) et si l'on revient ensuite à l'éditeur 'normal' c'est la folie !!!
    (j'ai voulu me servir de ckeditor comme indiqué pour trouver une solution de conversion, il convertit, oui ... mais d'autres problèmes arrivent ensuite ^^ )


    "c'est pluxml qui enregistrera les fichiers xml en utf-8 après conversion des caractères et il n'y a en principe aucun soucis ....... "
    même si ça fonctionnait nickel , bon ben 660 posts + les commentaires .... mais ce n'est pas 'nickel' finalement tu peux le voir dans les capture d'écran ....

    rien à faire pour pour trouver une "vraie" solution ...
    @+
  • Si je comprends bien, ton site est actuellement nouvellement configuré en utf-8,
    tu édites un ancien article puis tu l'enregistres => il reste en ISO

    Donc le fichier xml correspondant ne comporte pas la ligne
    <?xml version='1.0' encoding='UTF-8'?>
    
    mais l'ancienne avec ISO-8859-1

    Il faudrait donc, pour chaque fichier xml de la base :
    faire un remplacement de cette première ligne,
    convertir les caractères codés html en caractères "normaux",
    enregistrer le fichier modifié en utf-8

    Bon... si ton site compte demeurer en français (voire européen) et n'est donc pas destiné particulièrement à un public international, laisses le en ISO-8859 . Les navigateurs s'en sortent très bien (moins sûr si quelqu'un visite ton site depuis la chine quoi que...)

    désolé, pas d'autre solution à te proposer.
    Cordialement,
    Ludo
  • et en faisant une petite appli à part pour remplacer la fonction rechercher/remplacer de notepad++ ça ne pourrait pas le faire ?
    une fonction, j'ouvre, je lis, je remplace, j'écrase ...

    Cordialement,
    _____
    D.San
  • StéphaneStéphane Member, Former PluXml Project Manager
    A partir d'un Pluxml configuré en UTF-8

    modifie le fichier core/lib/class.plx.admin.php, fonction editArticle

    remplace les lignes
    $xml .= "\t".'<chapo><![CDATA['.plxUtils::cdataCheck(trim($content['chapo'])).']]></chapo>'."\n";
    $xml .= "\t".'<content><![CDATA['.plxUtils::cdataCheck(trim($content['content'])).']]></content>'."\n";
    
    par
    $xml .= "\t".'<chapo><![CDATA['.plxUtils::cdataCheck(trim(plxUtils::strRevCheck($content['chapo']))).']]></chapo>'."\n";
    $xml .= "\t".'<content><![CDATA['.plxUtils::cdataCheck(trim(plxUtils::strRevCheck($content['content']))).']]></content>'."\n";
    
    la fonction qui va remettre les accents est plxUtils::strRevCheck
    donc si tu as d'autres champs à convertir applique la même méthode

    Une fois la modif du fichier faite, ouvre tes articles dans l'admin de PluXml et enregistre les à nouveau.
    Rien de plus.

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • danielsandanielsan Member
    septembre 2011 modifié
    Stéphane a écrit:
    Une fois la modif du fichier faite, ouvre tes articles dans l'admin de PluXml et enregistre les à nouveau.
    Rien de plus.
    là j'imagine l'euphorie et les yeux de bg62 ...
    cette bibli plxutils, je l'adore ! mais j'y pense jamais !
  • Stéphane a écrit:
    A partir d'un Pluxml configuré en UTF-8
    la fonction qui va remettre les accents est plxUtils::strRevCheck
    donc si tu as d'autres champs à convertir applique la même méthode
    Une fois la modif du fichier faite, ouvre tes articles dans l'admin de PluXml et enregistre les à nouveau.
    Rien de plus.
    ben voyons .... ;)
    j'en chiale !!! c'était aussi simple que ça ....
    je tout recommencé de A à Z, sauvegarde, écraser les fichiers avec la nouvelle version, vérifié config.php, modifié class.plx.admin.php, quelques petits bidouillages dans les 'paramètres' et mise à jour lancée ... plein de messages d'erreurs ....aïe ... et tout est codé correctement YES ! même les commentaires sont quasiment tous bons ....
    reste quelques commentaires récalcitrants, les nouveautés (au niveau du code) à mettre à jour pour le plan de site, le tag cloud (bon là faudra que je le fasse de temps en temps au fur et à mesure) ... mais c'est déjà une belle avancée qui va me permettre de profiter des dernières possibilités de PluXml ;)
    encore grand merci à toi Stéphane ....
    en ligne dans qq jours ...
    et du coup j'ai même pu adapter très facilement le thème actuel, et donc, là aussi dans quelques temps vous aurez en ligne une autre "variante" du thème 'nostalgie' du coup ...
    je vous tiens au courant
    @danielsan : euphorie : oui ! yeux : bilouteux ... à force ;)
    @+
  • bonne nouvelle ! ;o)
    je suppose que l'entête de tes fichiers xml était bien en encoding='UTF-8' du coup.

    pluxml est plein de ressources :))
    (heureusement que Stéphane les connait bien),

    cordialement,
    Ludo
Connectez-vous ou Inscrivez-vous pour répondre.