<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>mise a jour — Forum de PluXml</title>
        <link>https://forum.pluxml.org/index.php?p=/</link>
        <pubDate>Mon, 18 May 2026 19:09:04 +0000</pubDate>
        <language>fr</language>
            <description>mise a jour — Forum de PluXml</description>
    <atom:link href="https://forum.pluxml.org/index.php?p=/discussions/tagged/mise-a-jour/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>Mise à jour pluXml 5.8.9 -&gt; 5.8.15 et php -&gt; 8.2.20</title>
        <link>https://forum.pluxml.org/index.php?p=/discussion/7705/mise-a-jour-pluxml-5-8-9-5-8-15-et-php-8-2-20</link>
        <pubDate>Sat, 17 Aug 2024 13:57:01 +0000</pubDate>
        <category>Entraide</category>
        <dc:creator>Franck-AWO</dc:creator>
        <guid isPermaLink="false">7705@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Bonjour,</p>

<p>Voilà qui est fait.</p>

<p>J'ai du :</p>

<ul>
<li>mettre à jour le plugin <a rel="nofollow" href="https://forum.pluxml.org/discussion/6604/plugin-kzchamplus-des-champs-en-plus-dans-articles-pages-categories-users-gestion-mots-cles" title="kzChamPlus">kzChamPlus</a>,</li>
<li>mettre à jour le plugin <a rel="nofollow" href="https://forum.pluxml.org/discussion/comment/64976/#Comment_64976" title="plxMyBetterUrls">plxMyBetterUrls</a>,</li>
<li>et remplacer le plugin Cmixml par <a rel="nofollow" href="https://forum.pluxml.org/discussion/comment/64958/#Comment_64958" title="plxEditor">plxEditor</a>, finalement <a rel="nofollow" href="https://forum.pluxml.org/discussion/comment/65230/#Comment_65230" title="CKEditor">CKEditor</a></li>
<li><a rel="nofollow" href="https://forum.pluxml.org/discussion/comment/65171/#Comment_65171" title="mettre à jour la structure des articles">mettre à jour la structure des articles</a> pour corriger "<em>Fatal error : type : 2 message : Trying to access array offset on value of type null file : /core/lib/class.plx.motor.php line : 738</em>"</li>
<li>bidouiller <a rel="nofollow" href="https://forum.pluxml.org/discussion/1262/liste-des-articles-par-categorie-dans-une-page-statique" title="le script qui liste tous les articles">le script qui liste tous les articles</a> (qui mériterait sans doute une belle mise à jour réécriture #jdcjdr <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/wink.png" title=";)" alt=";)" height="18" /> ) afin de reprendre les "each" en "<a rel="nofollow" href="https://stackoverflow.com/questions/66388326/phpunit-php-fatal-error-uncaught-error-call-to-undefined-function-each" title="foreach">foreach</a>" et les "create_function" en "<a rel="nofollow" href="https://wordpress.stackexchange.com/questions/411528/call-to-undefined-function-create-function" title="function">function</a>" pour correspondre avec php8.</li>
</ul>

<p>Ce qui donne au final :</p>

<ul>
<li>PluXml version 5.8.15 (encodage UTF-8)</li>
<li>Version de PHP : 8.2.20</li>
<li>Apache</li>
<li>Plugins :

<ul>
<li>CookieMessage 1.1 (19/08/2015 !!)</li>
<li>MyBetterUrls 1.5.6 (08/04/2024)</li>
<li>scrollToTop 2.1 (05/07/2014 !!)</li>
<li>MySearch 1.7 (07/09/2017 !!)</li>
<li>CKEditor 4.7.3 (28/11/2017 !!)</li>
<li>kzChamPlus 2.6.8 (20/05/2024)</li>
<li>SimpleStat 1.1.0 (21/07/2024)</li>
</ul></li>
</ul>

<p>!! et oui, avec des plugins de 10ans d'âge !! 🤔</p>

<p>Merci à tous pour toutes ces discussions bien aidantes sur le forum.<br />
a+</p>
]]>
        </description>
    </item>
    <item>
        <title>[script] update structure XML des fichiers articles.</title>
        <link>https://forum.pluxml.org/index.php?p=/discussion/7616/script-update-structure-xml-des-fichiers-articles</link>
        <pubDate>Mon, 26 Feb 2024 18:55:49 +0000</pubDate>
        <category>Entraide</category>
        <dc:creator>gcyrillus-nomade</dc:creator>
        <guid isPermaLink="false">7616@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Bonjour,</p>

<p>J'ai remarqué à plusieurs reprise que certains champs des fichiers XML des articles ne se mettait pas à jours en migrant d'une (trés) vielle version vers une version plus récentes.</p>

<p>Jusque là je m'en sortait généralement dans notepad++ en faisant une  rechercher-&gt; remplacer par <br />
en mettant dans la portion recherche : <code>^.*(&lt;/document&gt;).*$</code> et dans remplacer par</p>

<pre><code>    &lt;title_htmltag&gt;&lt;![CDATA[]]&gt;&lt;/title_htmltag&gt;
    &lt;thumbnail&gt;&lt;![CDATA[]]&gt;&lt;/thumbnail&gt;
    &lt;thumbnail_alt&gt;&lt;![CDATA[]]&gt;&lt;/thumbnail_alt&gt;
    &lt;thumbnail_title&gt;&lt;![CDATA[]]&gt;&lt;/thumbnail_title&gt;
    &lt;date_creation&gt;&lt;![CDATA[]]&gt;&lt;/date_creation&gt;
    &lt;date_update&gt;&lt;![CDATA[]]&gt;&lt;/date_update&gt;
&lt;/document&gt;
</code></pre>

<p>soit sans date, soit avec une date bidon et cela fait la manip sur touts les fichier dans le dossier avec une balise fermante <code>&lt;/document&gt;</code> sans autres distinctions.</p>

<p>Cette fois-ci , j'ai trouver des articles datant de 2013 à 2023 dans un pluxml arrivé en version 5.5  <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/wink.png" title=";)" alt=";)" height="18" />  La manip notepad++ n'est pas terrible, les articles récents auront des doublons vides et comme il sont déjà en ligne et qu'une MAJ vers la 5.8.9 est envisagée, l'idée de faire une maj manuelle sur quelques centaines de dossiers est impensable.</p>

<p>Dans les fichier pour les mise à jour : update/update.x.x.x.php , le test <code>if(!preg_match('/\]\]&lt;\/title_htmltag&gt;/', $data))</code> est bugué, il ajoute systématiquement la balise , qu'elle soit là ou pas <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/frown.png" title=":(" alt=":(" height="18" /> .</p>

<p><del>Je vous propose alors ce script qui va ajouter ces balises seulement si elles sont manquantes: </del><br />
<ins>Voir le script et lamethode corrigée par bazooka : <a href="https://forum.pluxml.org/discussion/comment/64833/#Comment_64833" rel="nofollow">https://forum.pluxml.org/discussion/comment/64833/#Comment_64833</a> </ins></p>

<p></p><details><summary>Code édité corrigé selon les conseils du prochain post.</summary>

<pre><code>&lt;?php
    include 'prepend.php';
    include 'top.php';
?&gt;

&lt;header class="action-bar"&gt;&lt;h1&gt;Mise à jours de structure XML des articles.&lt;/h1&gt;&lt;/header&gt;
&lt;p&gt;Il y a &lt;?= count(glob(PLX_ROOT . $plxAdmin-&gt;aConf['racine_articles'] .'*.xml')) ?&gt; fichiers XML dans le dossier.&lt;/p&gt;
&lt;p&gt;Ce script ajoute aux fichiers les balises suivantes si manquantes:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&amp;lt;title_htmltag&amp;gt;&lt;/li&gt;
    &lt;li&gt;&amp;lt;thumbnail&amp;gt;&lt;/li&gt;
    &lt;li&gt;&amp;lt;thumbnail_alt&amp;gt;&lt;/li&gt;
    &lt;li&gt;&amp;lt;thumbnail_title&amp;gt;&lt;/li&gt;
    &lt;li&gt;&amp;lt;date_creation&amp;gt;(reprend la date dans le nom de fichier.)&lt;/li&gt;
    &lt;li&gt;&amp;lt;date_update&amp;gt; (reprend la date dans le nom de fichier.)&lt;/li&gt;
&lt;/ol&gt;
&lt;?php
    $rewrite=false;
    $i=0;
    foreach(glob(PLX_ROOT . $plxAdmin-&gt;aConf['racine_articles'] .'*.xml', GLOB_NOSORT) as $file)   
    { 
        if(preg_match('#^(_?\d{4})\.((?:\d{3},|draft,)*(?:home|\d{3})(?:,\d{3})*)\.(\d{3})\.(\d{12})\.(.*)\.xml$#', basename($file), $capture)) {
            $date = $capture[4];
        }
        if(is_readable($file)) {
            $data = file_get_contents($file);
            if( strpos( $data, 'title_htmltag' ) == false) {
                $data = preg_replace("/&lt;\/document&gt;$/", "\t&lt;title_htmltag&gt;&lt;![CDATA[]]&gt;&lt;/title_htmltag&gt;\n&lt;/document&gt;", $data);
                $rewrite=true;
            }
            if(strpos( $data, 'thumbnail' ) == false) {
                $data = preg_replace("/&lt;\/document&gt;$/", "\t&lt;thumbnail&gt;&lt;![CDATA[]]&gt;&lt;/thumbnail&gt;\n&lt;/document&gt;", $data);
                $rewrite=true;
            }
            if(strpos( $data, 'thumbnail_alt' ) == false) {
                $data = preg_replace("/&lt;\/document&gt;$/", "\t&lt;thumbnail_alt&gt;&lt;![CDATA[]]&gt;&lt;/thumbnail_alt&gt;\n&lt;/document&gt;", $data);
            $rewrite=true;
            }
            if(strpos( $data, 'thumbnail_title' ) == false) {
                $data = preg_replace("/&lt;\/document&gt;$/", "\t&lt;thumbnail_title&gt;&lt;![CDATA[]]&gt;&lt;/thumbnail_title&gt;\n&lt;/document&gt;", $data);
                $rewrite=true;
            }
            if(strpos( $data, 'date_creation' ) == false) {
                $data = preg_replace("/&lt;\/document&gt;$/", "\t&lt;date_creation&gt;&lt;![CDATA[$date]]&gt;&lt;/date_creation&gt;\n&lt;/document&gt;", $data);
                $rewrite=true;
            }
            if(strpos( $data, 'date_update' ) == false) {
                $data = preg_replace("/&lt;\/document&gt;$/", "\t&lt;date_update&gt;&lt;![CDATA[$date]]&gt;&lt;/date_update&gt;\n&lt;/document&gt;", $data);
                $rewrite=true;
            }

            if($rewrite==true){
                ++$i;
                $file_handle = fopen($file, 'w'); 
                fwrite($file_handle, $data);
                fclose($file_handle);

            }
        }
    }  
    echo 'Mise à jour des structures XML de &lt;b style="color:tomato"&gt;'.$i.'&lt;/b&gt; fichier(s) effectuée(s).';

    include  'foot.php';
?&gt;
</code></pre>

<p>&Agrave; mettre dans un fichier **updateArticle.php** dans le repertoire **core/admin** , puis se connecter à l'admin et appeler le fichier `://votresite.com/core/admin/updateArticle.php` </p>

<p>Une fois vos articles reconstruit en mode 2024. Le script ne modifiera les fichiers qu'une seule fois et seulement au besoin</p>

<p>J’espère qu'il vous sera utile.</p>

<p></p></details>

<p><b>Par précaution, faites toujours un backup de vos fichiers avant de le lancer une routine qui va les modifier</b></p>
]]>
        </description>
    </item>
   </channel>
</rss>
