<?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>Modifications — Forum de PluXml</title>
        <link>https://forum.pluxml.org/</link>
        <pubDate>Mon, 09 Mar 2026 09:00:45 +0000</pubDate>
        <language>fr</language>
            <description>Modifications — Forum de PluXml</description>
    <atom:link href="https://forum.pluxml.org/categories/modifications/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>Modify the sideamo theme</title>
        <link>https://forum.pluxml.org/discussion/7923/modify-the-sideamo-theme</link>
        <pubDate>Tue, 03 Feb 2026 18:03:51 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>ralphshinevar</dc:creator>
        <guid isPermaLink="false">7923@/discussions</guid>
        <description><![CDATA[<p>There is a lot of white space in the static page and aside.  How do I reduce the amount of space, especially on the left of static page and right of aside, so the site will look good on smaller screens as well as PC monitors?  Is it cell or border padding or something else?</p>
]]>
        </description>
    </item>
    <item>
        <title>Thème kzBasic – où changer le graphisme des boutons ?</title>
        <link>https://forum.pluxml.org/discussion/7900/theme-kzbasic-ou-changer-le-graphisme-des-boutons</link>
        <pubDate>Sat, 06 Dec 2025 15:37:06 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Docthib</dc:creator>
        <guid isPermaLink="false">7900@/discussions</guid>
        <description><![CDATA[<p>Bonjour à toutes et tous !<br />
Nouveau venu sur PluXml, j'ai un grand plaisir depuis mai avec ce moteur de blog simple, extrêmement rapide, et élégant  <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/smile.png" title=":)" alt=":)" height="18" /> Je me suis appuyé sur le très joli thème kzBasic de <a href="https://forum.pluxml.org/profile/bazooka07" rel="nofollow">@bazooka07</a> (merci à lui), en faisant quelques modifications (très) à la marge. Le souci : je ne suis pas programmeur, donc je modifie les fichiers du thème progressivement, avec des essais-erreurs. Mais c'est comme ça qu'on apprend...</p>

<p>Ma question du moment : où sont définis les paramètres graphiques des boutons ?</p>

<p>Je vous illustre cela avec un bout de code de sidebar.php, à l'endroit où a été installé plxMysearch</p>

<pre><code>&lt;label for="searchfield" class="screen-reader-text"&gt;Recherche sur ce blog&lt;/label&gt;
&lt;input type="search" placeholder="taper un mot-clé ici" class="searchfield field" name="searchfield" value=""  placeholder="Rechercher &amp;hellip;" /&gt;
&lt;input type="submit" class="submit" id="searchsubmit" value="OK"  /&gt;
</code></pre>

<p>Dans la dernière ligne, j'ai remplacé class="submit" par class="button" et ô joie, mon bête "OK" en texte a été remplacé par un joli bouton bordeaux avec OK.<br />
Ma question est : où puis-je changer les paramètres graphiques de ce joli bouton bordeaux ? Est-ce dans une feuille de css accessible dans l'édition du thème ? Dans un autre fichier ?<br />
Merci à vous pour votre aide !<br />
Cordialement,<br />
Docthib</p>
]]>
        </description>
    </item>
    <item>
        <title>Sitemap news (pour google)</title>
        <link>https://forum.pluxml.org/discussion/7884/sitemap-news-pour-google</link>
        <pubDate>Tue, 28 Oct 2025 12:51:38 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>CrazyCat</dc:creator>
        <guid isPermaLink="false">7884@/discussions</guid>
        <description><![CDATA[<p>Bonjour,</p>

<p>J'ai vu que l'on pouvait créer un sitemap particulier pour les actualités (pour google), j'ai donc créé un news.php basé sur sitemap.php qui génère ce fichier. Il se limite à afficher les infos des articles de moins de 2 jours (c'est ce que demande Google) dans le bon format.</p>

<p>La source est sur <a rel="nofollow" href="https://gitlab.com/-/snippets/4899977" title="gitlab">gitlab</a> et le voila <a rel="nofollow" href="https://zeolia.chat/news/news.php" title="en action">en action</a> (j'ai volontairement changé la durée de validité pour que vous puissiez avoir un résultat)</p>

<p>Enjoy <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/smile.png" title=":)" alt=":)" height="18" /></p>
]]>
        </description>
    </item>
    <item>
        <title>PluXml 5.8 chez free.fr ?</title>
        <link>https://forum.pluxml.org/discussion/7788/pluxml-5-8-chez-free-fr</link>
        <pubDate>Wed, 05 Feb 2025 21:41:02 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Andrea</dc:creator>
        <guid isPermaLink="false">7788@/discussions</guid>
        <description><![CDATA[<p>Bonjour, j'ai essayé d'installer la dernière version 5.8.18 chez free.fr</p>

<p>Mais apparemment en raison de Composer ce n'est plus possible ?</p>

<p><code>Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version "&gt;= 7.2.5". You are running 5.6.34. in /var/www/.../pluxml/core/vendor/composer/platform_check.php on line 25</code></p>

<p>Bien que d'après la documentation c'est (que) la version 5.6 de php qui serait nécessaire</p>

<p>Peut-être qu'une astuce existe pour contourner ce problème ;-) non ? <br />
à défaut quelqu'un connait-il la dernière version de PluXml qui "marcherait' chez free.fr ?</p>

<p>Merci d'avance</p>
]]>
        </description>
    </item>
    <item>
        <title>[RESOLU] Auth.php  ajout de ob_start();</title>
        <link>https://forum.pluxml.org/discussion/7802/resolu-auth-php-ajout-de-ob-start</link>
        <pubDate>Mon, 10 Mar 2025 18:18:32 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Bodieu</dc:creator>
        <guid isPermaLink="false">7802@/discussions</guid>
        <description><![CDATA[<p>Bonjour,</p>

<p>Voici une petite correction <br />
J'ai ajouté au début du fichier <strong>core/admin/auth.php</strong>, la ligne :<br />
<code>ob_start();</code></p>

<p>Cela me permet de résoudre l'erreur qui apparaît avec la fonction** S'inscrire** du plugin <strong>StaticMiniForum</strong> qui apparaît chez <strong>IONOS</strong>.  (Cette erreur n'apparaît ni en local ni chez alwaysdata)</p>

<pre><code>`**************Notice: ob_end_clean(): Failed to delete buffer. No buffer to delete in /................./core/admin/auth.php(329) : eval()'d code on line 4**************`
</code></pre>
]]>
        </description>
    </item>
    <item>
        <title>Page statique de téléchargement</title>
        <link>https://forum.pluxml.org/discussion/1504/page-statique-de-telechargement</link>
        <pubDate>Sun, 24 Jan 2010 09:33:44 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Zugmy</dc:creator>
        <guid isPermaLink="false">1504@/discussions</guid>
        <description><![CDATA[Bonjour, j'aimerais insérer dans mon site une page statique de téléchargement qui listerais tout les documents préalablement uploadés. Quelqu'un a-t-il déjà fait cela?<br />
Merci d'avance<br />
<a href="http://waigunga.clanfree.net" rel="nofollow">http://waigunga.clanfree.net</a>/]]>
        </description>
    </item>
    <item>
        <title>Demande d'évolution de l'authentification</title>
        <link>https://forum.pluxml.org/discussion/7737/demande-devolution-de-lauthentification</link>
        <pubDate>Thu, 17 Oct 2024 13:56:55 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Bodieu</dc:creator>
        <guid isPermaLink="false">7737@/discussions</guid>
        <description><![CDATA[<p>Bonjour,<br />
J'utilise Pluxml pour mon association avec l'authentication par** auth.php pour la partie privée.**<br />
Les nouveaux adhérents <strong>me donnent leur E-mail</strong> que j'utilise en lieu et place de leur <strong>identifiant de connexion</strong>. Je n'utilise pas d'identifiant, car c'est ingérable compte-tenu de l'âge des utilisateurs..<br />
<strong>Serait-il possible de faire évoluer auth.php, pour que l'authentification puisse se faire de façon native, soit par le pseudo, soit par l'E-mail ?</strong><br />
En attendant, j'ai modifié le libellé, bien que ce bricolage n'est pas conseillé.<br />
Cela me permettra d'adapter la gestion des utilisateurs pour être compatible avec la règle de la future version 5.9. Il sera interdit l'utiliser l'E-mail comme identifiant de connexion.<br />
Merci</p>
]]>
        </description>
    </item>
    <item>
        <title>Send email of new article</title>
        <link>https://forum.pluxml.org/discussion/7714/send-email-of-new-article</link>
        <pubDate>Sat, 07 Sep 2024 16:57:37 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>afoster</dc:creator>
        <guid isPermaLink="false">7714@/discussions</guid>
        <description><![CDATA[<p>I have set up a subscriber module in my blog and want to send out an email to the subscribers of a new article and new comment.  How would I do this and is it possible?</p>
]]>
        </description>
    </item>
    <item>
        <title>Un peu d'UI pour l'interface d'administration</title>
        <link>https://forum.pluxml.org/discussion/7677/un-peu-dui-pour-linterface-dadministration</link>
        <pubDate>Tue, 16 Jul 2024 07:08:29 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>stephane-leroy</dc:creator>
        <guid isPermaLink="false">7677@/discussions</guid>
        <description><![CDATA[<p>Salut la communauté !</p>

<p>Ancien utilisateur de PluXml, j'aimerais à compter de la rentrée 2024 m'impliquer un peu plus sérieusement dans le logiciel : il a selon moi un rôle intéressant à jouer sur le thème de l'écoconception de sites .. !</p>

<p>Du coup je vous partage mon idée :</p>

<p>Pourquoi pas re-carrosser un peu l'UI de l'interface d'administration ?</p>

<p>Cette UI mériterait je trouve</p>

<ul>
<li>d'être un peu rafraîchie et mise au goût du jour ( déjà juste des paddings un peu plus généreux, caractères un peu plus grands , des aplats de couleur un peu plus "material design " .. )</li>
<li>d'être <em>vraiment responsive</em>, avec l'objectif de la rendre utilisable depuis un mobile ( ce qui constituerait un avantage intéressant vis à vis de la quasi totalité des CMS dispos sur le marché ).</li>
</ul>

<p>Qu'en pensez-vous ?</p>

<p>A qui puis-je m'adresser pour proposer ma contrib' ?</p>

<p>Bonne journée,<br />
au plaisir de vous lire</p>
]]>
        </description>
    </item>
    <item>
        <title>Les 'tags' dans l'admin [RESOLU]</title>
        <link>https://forum.pluxml.org/discussion/7661/les-tags-dans-ladmin-resolu</link>
        <pubDate>Wed, 19 Jun 2024 14:30:30 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>bg62</dc:creator>
        <guid isPermaLink="false">7661@/discussions</guid>
        <description><![CDATA[<p>bonjour,<br />
les 'tags' ou 'mots-clés' du coté 'administration', lorsqu'il commence à y en avoir beaucoup sont assez gènants ...<br />
certes il y a l'option '+' ou '-' , mais à chaque fois ....<br />
peut-être une petite modif ( côté pratique à envisager )  ?</p>

<p>******* en attendant comment ( et où ) peut-on 'jouer' sur cette option d'affichage ?? ( mettre sur '-' d'office par exemple )<br />
merci</p>
]]>
        </description>
    </item>
    <item>
        <title>Besoin d'aide pour convertir le menu vertical en menu horizontal Header sans provoquer d'erreur 500&quot;</title>
        <link>https://forum.pluxml.org/discussion/7650/besoin-daide-pour-convertir-le-menu-vertical-en-menu-horizontal-header-sans-provoquer-derreur-500</link>
        <pubDate>Tue, 21 May 2024 10:59:19 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Nad</dc:creator>
        <guid isPermaLink="false">7650@/discussions</guid>
        <description><![CDATA[<p>Bonjour à tous,</p>

<p>Je rencontre des difficultés pour effectuer une refonte de mon site PluXml. Actuellement, le menu de navigation est affiché verticalement à gauche de la page, mais je souhaite le rendre horizontal en haut de la page pour un look plus moderne. mais le site me renvoie une erreur 500 a chaque fois</p>

<p>Voici le fichier PHP original du header avec le menu vertical :</p>

<pre><code>&lt;?php if(!defined('PLX_ROOT')) exit; ?&gt;
&lt;!DOCTYPE html&gt;
&lt;html lang="&lt;?php $plxShow-&gt;defaultLang() ?&gt;"&gt;
&lt;head&gt;
    &lt;title&gt;&lt;?php $plxShow-&gt;pageTitle(); ?&gt;&lt;/title&gt;
    &lt;meta http-equiv="Content-Type" content="text/html; charset=&lt;?php $plxShow-&gt;charset(); ?&gt;" /&gt;
    &lt;?php $plxShow-&gt;meta('description') ?&gt;
    &lt;?php $plxShow-&gt;meta('keywords') ?&gt;
    &lt;link rel="icon" type="image/png" href="&lt;?php $plxShow-&gt;template(); ?&gt;/img/favicon.png" /&gt;
    &lt;link rel="stylesheet" type="text/css" href="&lt;?php $plxShow-&gt;template(); ?&gt;/ext/lesailesdelavie.css" media="screen" /&gt;
    &lt;script src="&lt;?php $plxShow-&gt;template(); ?&gt;/ext/fonctions.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/head&gt;

&lt;?php 
  $page = $plxShow-&gt;mode();
  switch ($page) {
    case "article":
      $page .= $plxShow-&gt;artId();
      break;
    case "static":
      $page .= $plxShow-&gt;staticId();
      break;
  }

  $attribut_onload_dans_body = " onload=\"liens_nouvellefenetre('nouvfen'); if (typeof(window.initGoogleMaps)=='function') { initGoogleMaps(); } return false;\"";
?&gt;

&lt;body id="top" class="&lt;?php echo $page; ?&gt;"&lt;?php echo $attribut_onload_dans_body; ?&gt;&gt;
    &lt;div id="conteneur"&gt;
        &lt;div id="wrapper"&gt;
            &lt;div class="wrapper_interne"&gt;
                &lt;div class="wrapper_interne1"&gt;
                    &lt;div class="colonne_gauche"&gt;
                        &lt;a href="index.php" title="Les Ailes de la Vie"&gt;
                            &lt;img src="&lt;?php $plxShow-&gt;template(); ?&gt;/img/logo.png" alt="Association Les Ailes de la Vie" /&gt;
                        &lt;/a&gt;
                        &lt;ul class="menu"&gt;
                            &lt;?php
                              $numcategorie = '001';
                              include 'menu-articles.php';
                            ?&gt;
                        &lt;/ul&gt;
                        &lt;div class="actus"&gt;
                            &lt;?php $plxShow-&gt;staticInclude(1); ?&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;
                    &lt;div class="colonne_droite"&gt;
                        &lt;div class="titre"&gt;
                            &lt;h1 id="titre_site"&gt;
                                &lt;img src="&lt;?php $plxShow-&gt;template(); ?&gt;/img/titre-lesailesdelavie.png" alt="Les Ailes de la Vie" /&gt;
                            &lt;/h1&gt;
                            &lt;div class="tel"&gt;
                                &lt;span class="size20"&gt;Tél. 06 46 65 03 53&lt;/span&gt;
                                &lt;span&gt;Mairie - 30 rue de la Paix - 17230 Andilly&lt;/span&gt;
                            &lt;/div&gt;
                            &lt;div class="email"&gt;
                                &lt;span&gt;Courriel :&lt;/span&gt;
                                &lt;script type="text/javascript"&gt;lien_courriel("contact", "lesailesdelavie", "org");&lt;/script&gt;
                            &lt;/div&gt;
                            &lt;div class="spacer"&gt;&lt;/div&gt;
                        &lt;/div&gt;
                        &lt;div class="contenu"&gt;
                            &lt;!-- Reste du contenu de la page --&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
]]>
        </description>
    </item>
    <item>
        <title>HELP !! Comment restaurer un thème précédent dans PluXml ?</title>
        <link>https://forum.pluxml.org/discussion/7645/help-comment-restaurer-un-theme-precedent-dans-pluxml</link>
        <pubDate>Tue, 14 May 2024 12:22:26 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Nad</dc:creator>
        <guid isPermaLink="false">7645@/discussions</guid>
        <description><![CDATA[<p>Bonjour à tous,</p>

<p>J'ai récemment changé le thème de mon site PluXml depuis l'interface d'administration, mais je souhaite maintenant restaurer l'ancien thème que j'avais. Cependant, je ne trouve pas l'ancien thème dans la liste des thèmes disponibles. Existe-t-il un moyen de restaurer un thème précédent dans PluXml après l'avoir changé ? Si oui, pourriez-vous me guider à travers le processus ?</p>

<p>Merci d'avance pour votre aide !</p>
]]>
        </description>
    </item>
    <item>
        <title>[Résolu] Nouvelle option de redimensionnement d'image</title>
        <link>https://forum.pluxml.org/discussion/7526/resolu-nouvelle-option-de-redimensionnement-dimage</link>
        <pubDate>Wed, 20 Sep 2023 09:13:24 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Txori</dc:creator>
        <guid isPermaLink="false">7526@/discussions</guid>
        <description><![CDATA[<p>Bonjour,<br />
Je viens de m'apercevoir qu'un de mes clients envoie des images de 3456x4608 pixels, sous la barre des 16Mo, via le gestionnaire de média. Je m'en suis rendu compte parce que l'affichage d'admin/medias.php faisait tout bonnement planter php :</p>

<pre><code>Dans class.plx.utils.php , line 698 memory problem :
238326#0: *20552 FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 63700992 bytes) in /core/lib/class.plx.utils.php on line 698" while reading response header from upstream
</code></pre>

<p>J'ai pour l'instant esquivé le problème en augmentant la mémoire php de 128Mo à 256Mo, mais bon... C'est idiot d'afficher des images de 8Mo contenant un fond blanc et du texte... Et les images uploadées n'ont pas besoin d'être plus larges que le site, soit 1000 pixels.</p>

<p>Donc, je comptais forcer le redimensionnement des images.<br />
Le problème est que les choix proposés ne conviennent pas :</p>

<ul>
<li>Taille originale : bien ou bien trop gros, selon la magie du client</li>
<li>320x200, 500x380, 640x480 : trop petit, et puis c'est bizarre d'aller recadrer une image en plus de la redimensionner...</li>
<li>1000x0 (Modifier) : fonctionne pour les images plus grandes, mais augmente la taille des petites images</li>
<li>[ ] x [ ] : trop compliqué pour le client...</li>
</ul>

<p>J'aimerais donc que l'image soit redimensionnée de cette manière sans proposer de choix au client :<br />
new_width = width &lt; 1000 ? width : 1000;<br />
new_height = width != new_width ? new_width * height / width : height;</p>

<p>Est-ce que je modifie directement la class.plx.medias.php public function uploadFiles($usrfiles, $post), ou est-ce qu'il y a une manière plus élégante de le faire ?</p>

<p>Merci <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/smile.png" title=":)" alt=":)" height="18" /></p>
]]>
        </description>
    </item>
    <item>
        <title>Url relatives dans le fichier top.php et foot.php dans version 5.9</title>
        <link>https://forum.pluxml.org/discussion/7612/url-relatives-dans-le-fichier-top-php-et-foot-php-dans-version-5-9</link>
        <pubDate>Wed, 21 Feb 2024 18:32:14 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>memento</dc:creator>
        <guid isPermaLink="false">7612@/discussions</guid>
        <description><![CDATA[<p>Bonsoir,<br />
j'ai vu que les url étaient à nouveau mise en chemin relatif dans les fichiers <strong>top.php</strong>  et <strong>foot.php</strong> dans la version 5.9.x. D'après mon expérience, c'est dommage car c'est une source de problème. <br />
Si c'est juste pour gagner quelques octets, pourquoi ne pas rajouter dans le fichier <strong>top.php</strong> après la balise  à la <strong>ligne 14</strong> code suivant</p>

<p><code>&lt;base href="&lt;?= PLX_CORE ?&gt;admin/" /&gt;</code></p>

<p>Cela permettra de recomposer toutes les url relatives et éviter les soucis futurs.</p>

<p>D'ailleurs, tant que je suis sur ce sujet, dans le fichier <strong>prepend.php</strong> à la <strong>ligne 8</strong>, on a ce code <br />
<code>include '../lib/config.php';</code></p>

<p>De mon point de vue, ce serait mieux d'écrire ceci <br />
<code>include PLX_CORE.'lib/config.php';</code><br />
Cordialement.</p>
]]>
        </description>
    </item>
    <item>
        <title>Système de commentaire rendre obligatoire l'e-mail</title>
        <link>https://forum.pluxml.org/discussion/7604/systeme-de-commentaire-rendre-obligatoire-le-mail</link>
        <pubDate>Sun, 11 Feb 2024 10:43:05 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>petitpouyo</dc:creator>
        <guid isPermaLink="false">7604@/discussions</guid>
        <description><![CDATA[<p>Salutations !<br />
Voila tout est dit dans le titre du sujet, j'aimerais savoir si il serait possible de rendre obligatoire l'inscription de l'adresse e-mail afin de poster un commentaire.</p>

<p>Bon week-end ;-)</p>
]]>
        </description>
    </item>
    <item>
        <title>[résolu] Ajouter la possibilité de modifier le message d'erreur</title>
        <link>https://forum.pluxml.org/discussion/7601/resolu-ajouter-la-possibilite-de-modifier-le-message-derreur</link>
        <pubDate>Mon, 05 Feb 2024 17:26:21 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Tomek</dc:creator>
        <guid isPermaLink="false">7601@/discussions</guid>
        <description><![CDATA[<p>Actuellement, le message d'erreur dans le contenu de la page 404 est : "Page non trouvée" et le titre de la page est "La page que vous avez demandée n'existe pas".</p>

<p>Autant on peut modifier le titre de la page car présent dans le fichier de langue du thème, autant la phrase de contenu n'est pas modifiable car sa traduction est située dans un fichier du core (core/lang/fr/core.php). Serait-il possible de modifier son emplacement afin de pouvoir la modifier si besoin ?</p>
]]>
        </description>
    </item>
    <item>
        <title>[RESOLU]Attention sujet pouvant heurter votre sensibilité</title>
        <link>https://forum.pluxml.org/discussion/7565/resolu-attention-sujet-pouvant-heurter-votre-sensibilite</link>
        <pubDate>Tue, 28 Nov 2023 08:32:14 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>petitpouyo</dc:creator>
        <guid isPermaLink="false">7565@/discussions</guid>
        <description><![CDATA[<p>Hello hello à tous et toutes,<br />
voila en tant que bidouilleur professionnel  <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/wink.png" title=";)" alt=";)" height="18" /> je me suis posé une question sur la modification du nom d'utilisateur servant à se connecter à l'administration.</p>

<p>Seulement cela est-il possible ? J'ai regarder l'architecture de PluXml je suis bien tombé sur mon mot de passe qui est crypté donc logiquement décryptible ?</p>

<p>Attention je rassure les novices, lorsque je dis que j'ai regarder l'architecture ce n'est pas accessible en ligne mais en transférant le blog complet sur PC et le désosser.</p>

<p>Faisons un cas de figure:</p>

<p>Admettons demain je me fais "hacker" différents comptes sur divers sites et que je souhaites dans la hâte modifier mes identifiants PluXml cela est-il possible ou pas ?</p>
]]>
        </description>
    </item>
    <item>
        <title>[Résolu] Changer le mot «Blog» pour le mot «Journal»</title>
        <link>https://forum.pluxml.org/discussion/4770/resolu-changer-le-mot-blog-pour-le-mot-journal</link>
        <pubDate>Sat, 27 Sep 2014 16:24:06 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>bimi</dc:creator>
        <guid isPermaLink="false">4770@/discussions</guid>
        <description><![CDATA[Changer le mot «[em]<b>Blog</b>[/em]» pour le mot «[em]<b>Journal</b>[/em]»<br />
<br />
Pluxml version 5.3.1<br />
Thème Zen<br />
<br />
Si on choisit comme page d'accueil une page statique, Pluxml crée un nouvel onglet qu'il nomme «[em]Blog[/em]». Il ne semble pas que nous puissions changer le nom de ce nouvel onglet à partir des pages de l'administrateur; est-ce que je me trompe?<br />
<br />
<img src="http://pix.toile-libre.org/upload/original/1411827034.png" alt="1411827034.png" /><br />
<br />
Alors est-ce possible de changer uniquement le mot «[em]Blog[/em]» pour le mot «[em]Journal[/em]», sans modifier quoi que ce soit d'autres au comportement de Pluxm?<br />
<br />
<img src="http://pix.toile-libre.org/upload/original/1411827156.png" alt="1411827156.png" /><br />
<br />
Merci]]>
        </description>
    </item>
    <item>
        <title>insérer un cadre &quot;infos&quot; toujours au-dessus des articles</title>
        <link>https://forum.pluxml.org/discussion/7536/inserer-un-cadre-infos-toujours-au-dessus-des-articles</link>
        <pubDate>Sun, 08 Oct 2023 05:49:31 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>korager</dc:creator>
        <guid isPermaLink="false">7536@/discussions</guid>
        <description><![CDATA[<p>je ne sais pas si c'est correctement codé, j'ai trouvé cette possibilité pour mettre un cadre d'informations toujours présent au-dessus des articles car dans le header ( page statique modifiable ), j'explique ma méthode pour le thème par défaut  :</p>

<ul>
<li><strong>créer une nouvelle page statique</strong> dans laquelle on met sa(ses) info(s) ou n'importe quel texte. Appelons pour l'exemple cette page statique - titre : recent et url : recent. On la rend "non" active et" masquer" dans Menu. Son N° (exemple) dans la liste des pages statique est 003.</li>
<li>puis modification du fichier [ header.php ] du theme/defaut : insérer en fin de cette page, après le code /header, cette ligne : <br />
<strong>&lt;?php include('data/statiques/003.recent.php'); ?&gt;</strong><br />
où 003 (N° de la page statique) et .recent (url de la page statique)<br />
&gt;&gt;&gt; ce qui donnera le cadre ( exemple en rouge sur ce site ) : <a href="https://www.royanlitteraire.fr" rel="nofollow">https://www.royanlitteraire.fr</a></li>
</ul>

<p><strong>pour ce cadre rouge aux angles arrondis</strong>, j'ai inséré ces lignes  <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/confounded.png" title=":s" alt=":s" height="18" />  QUI NE VEULENT PAS SE METTRE DANS CET ARTICLE ! PAS POSSIBLE NON PLUS D’INSÉRER UNE image .jpg...</p>

<p>je suis autodidacte en programmation et un pro pourrait certainement rendre cette méthode plus simple...<br />
cordialement, K.</p>
]]>
        </description>
    </item>
    <item>
        <title>Rendre le thème par défaut avec bandeau aléatoire</title>
        <link>https://forum.pluxml.org/discussion/7534/rendre-le-theme-par-defaut-avec-bandeau-aleatoire</link>
        <pubDate>Wed, 04 Oct 2023 23:24:27 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>magneticpole</dc:creator>
        <guid isPermaLink="false">7534@/discussions</guid>
        <description><![CDATA[<p>Bonjour, pourrait t on modifier le bandeau du thème par défaut de façon qu'il s'affiche aléatoirement selon les jours ou d'autres paramètres en puisant dans un dossier de bandeaux prédisposés ? Une petite modification de script ?Merci.</p>
]]>
        </description>
    </item>
    <item>
        <title>Recherche d'un thème</title>
        <link>https://forum.pluxml.org/discussion/7504/recherche-dun-theme</link>
        <pubDate>Tue, 15 Aug 2023 08:29:56 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Peter</dc:creator>
        <guid isPermaLink="false">7504@/discussions</guid>
        <description><![CDATA[<p>Bonjour, je recherche un thème qui utilise tout l'écran, donc pas une bande au milieu.<br />
En fouillant les thèmes, je n'en vois pas. Peu-être un que j'ai loupé ?</p>
]]>
        </description>
    </item>
    <item>
        <title>Ajout de Balises dans le Head de votre Pluxml</title>
        <link>https://forum.pluxml.org/discussion/7410/ajout-de-balises-dans-le-head-de-votre-pluxml</link>
        <pubDate>Sat, 08 Apr 2023 21:30:02 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Websteph</dc:creator>
        <guid isPermaLink="false">7410@/discussions</guid>
        <description><![CDATA[<p>Pour faire suite au sujet abordé <a rel="nofollow" href="https://forum.pluxml.org/discussion/7405/plxshow-artthumbnail-fait-planter-laffichage-de-la-page#latest" title="ici">ici</a>, j'ai un petit fichier que je rajoute dans mon thème pour ajouter quelques balises au Head de Pluxml.<br />
Je place l'appel du fichier dans le Head à partir du Header.php de mon thème</p>

<pre><code>&lt;?php require(dirname(__FILE__)."/plxFatHeader.php"); ?&gt;
</code></pre>

<p>et voilà ce qu'il y a dedans =&gt;</p>

<pre><code>&lt;?php
if($plxShow-&gt;mode()=='static' AND $plxShow-&gt;staticId()==1) {
    echo '&lt;meta name="robots" content="index,follow"&gt;'."\n";
    echo '&lt;script type="application/ld+json"&gt;{"@context": "https://schema.org"}&lt;/script&gt;'."\n";
    echo '&lt;link rel="canonical" href="';$plxShow-&gt;plxMotor-&gt;urlRewrite($plxShow-&gt;racine());echo '"&gt;'."\n";
    echo '&lt;meta property="og:title" content="';$plxShow-&gt;pageTitle();echo '"&gt;'."\n";    
    echo '&lt;meta property="og:description" content="'.$plxShow-&gt;plxMotor-&gt;aStats[ $plxShow-&gt;plxMotor-&gt;cible ]['meta_description'].'"&gt;'."\n";
    echo '&lt;meta property="og:type" content="website"&gt;'."\n";
    echo '&lt;meta property="og:image" content="';$plxShow-&gt;plxMotor-&gt;urlRewrite($plxShow-&gt;racine());echo 'data/medias/photo.webp"&gt;'."\n";
    echo '&lt;meta property="og:url" content="';$plxShow-&gt;plxMotor-&gt;urlRewrite($plxShow-&gt;racine());echo '"&gt;'."\n";
    echo '&lt;meta property="og:locale" content="fr_FR"&gt;'."\n";
    echo '&lt;meta property="og:locale:alternate" content="en_GB"&gt;'."\n";
    echo '&lt;meta property="og:image:alt" content="Description de l'image"&gt;'."\n";
}elseif($plxShow-&gt;mode()=='static' AND $plxShow-&gt;staticId()!=1) {
    echo '&lt;meta name="robots" content="index,follow"&gt;'."\n";
    echo '&lt;link rel="canonical" href="';$plxShow-&gt;plxMotor-&gt;urlRewrite($plxShow-&gt;staticUrl());echo '"&gt;'."\n";
}elseif($plxShow-&gt;mode()=='article' AND $plxShow-&gt;artId()!=1) {
    echo '&lt;meta name="robots" content="index,follow"&gt;'."\n";
    echo '&lt;link rel="canonical" href="';$plxShow-&gt;plxMotor-&gt;urlRewrite($plxShow-&gt;artUrl());echo '"&gt;'."\n";
}elseif($plxShow-&gt;mode()=='categorie') {
    echo '&lt;meta name="robots" content="index,follow"&gt;'."\n";
    echo '&lt;link rel="canonical" href="'.$plxShow-&gt;plxMotor-&gt;urlRewrite($plxShow-&gt;catUrl($plxShow-&gt;catId())).'"&gt;'."\n";
}elseif($plxShow-&gt;mode()=='tags') {
    echo '&lt;meta name="robots" content="noindex,nofollow"&gt;'."\n";
}elseif($plxShow-&gt;mode()=='archives') {
    echo '&lt;meta name="robots" content="noindex,nofollow"&gt;'."\n";
}
?&gt;
</code></pre>

<p>Quelques précisions :<br />
type="application/ld+json vous pouvez le créer <a rel="nofollow" href="https://technicalseo.com/tools/schema-markup-generator/" title="ici">ici</a> où ailleurs. <br />
La meta name="robots" content="index,follow" Pour celle là, c'est chacun son point de vue, à vous de voir !<br />
La meta property="og:image" ...  il faut bien préciser le dossier où se situe votre image. <br />
"og:locale" et "og:locale:alternate" c'est pour les sites qui utilise le plugin plxMyMultiLingue</p>

<p>Pour le reste, selon votre utilisation, vous pouvez soit le garder, soit le modifier ou bien le supprimer !</p>

<p>Ah oui je précise aussi que je utilise le plugin plxSocialMeta qui vient en complément de ce petit fichier pour la partie Articles Blog.</p>
]]>
        </description>
    </item>
    <item>
        <title>Optimisation et sécurisation de Pluxml</title>
        <link>https://forum.pluxml.org/discussion/7312/optimisation-et-securisation-de-pluxml</link>
        <pubDate>Mon, 28 Nov 2022 21:10:56 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Websteph</dc:creator>
        <guid isPermaLink="false">7312@/discussions</guid>
        <description><![CDATA[<p>Bonjour,</p>

<p>Pour faire simple, j'ai fait quelques recherches sur le forum afin d'optimiser Pluxml.<br />
Et je suis tombé sur ce sujet.<br />
<a rel="nofollow" href="https://forum.pluxml.org/discussion/3892/optimisation-page-en-cache-et-css-js-minifie-concatene-compresse" title="https://forum.pluxml.org/discussion/3892/optimisation-page-en-cache-et-css-js-minifie-concatene-compresse">https://forum.pluxml.org/discussion/3892/optimisation-page-en-cache-et-css-js-minifie-concatene-compresse</a></p>

<p>Du coup, j'ai crée un fichier class.plx.headers.php que j'ai placé dans le dossier "core/lib"<br />
Pour l'appeler j'ai rajouté une ligne dans l'index à la racine de Pluxml</p>

<p>On inclut les librairies nécessaires<br />
<code>include(PLX_CORE.'lib/class.plx.headers.php');</code></p>

<p>Après je me suis interessé à la sécurité afin d'obtenir la meilleur note possible sur<br />
<a rel="nofollow" href="https://securityheaders.com/" title="https://securityheaders.com/">https://securityheaders.com/</a></p>

<p>Donc j'y ai rajouté quelques lignes à ajuster celui vos besoins.</p>

<pre><code>&lt;?php
/**
 * Classe plxHeaders responsable de la securité du site
 *
 * @package PLX
 * @author  Websteph
 **/
header_remove("x-powered-by");
header_remove("Pragma");
header("Content-Type: text/html; charset=utf-8");
header("Accept-Encoding: gzip");
header("Strict-Transport-Security: max-age=31536000; includeSubDomains; preload");
header("X-Frame-Options: SAMEORIGIN");
header("X-Content-Type-Options: nosniff");
header("X-XSS-Protection: 1; mode=block");
header("Referrer-Policy: strict-origin-when-cross-origin");
header("Content-Security-Policy: default-src 'none'; manifest-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self' data:; connect-src 'self'; media-src 'none'; object-src 'none'; frame-src 'self'; frame-ancestors 'none'; form-action 'self'; base-uri 'self';");
header("Permissions-Policy: accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()");
$lastModified=filemtime(__FILE__);
$etagFile = md5_file(__FILE__);
$etag = dechex(fileinode(__FILE__));
$etag.= "-".dechex(filesize(__FILE__));
$etag.= "-".dechex(((filemtime(__FILE__).str_repeat("0",6)+0) &amp; (8589934591)));
$ifModifiedSince=(isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false);
$etagHeader=(isset($_SERVER['HTTP_IF_NONE_MATCH']) ? trim($_SERVER['HTTP_IF_NONE_MATCH']) : false);
$expire_offset = 60 * 60;
header("Expires: ".gmdate("D, d M Y H:i:s", time() + $expire_offset)." GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $lastModified)." GMT");
header("Etag: W/\"$etag\"");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Vary: Negotiate, Accept-Encoding");
if (@strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"])==$lastModified || $etagHeader == $etagFile)
{
       header("HTTP/1.1 304 Not Modified");
       exit;
}
?&gt;
</code></pre>

<p>Alors maintenant je sais pas si j'ai utilisé la meilleur méthode pour parvenir à mes fins, mais ça fonctionne très bien. <br />
Mais pour moi, c'était surtout important d'optimiser et sécuriser mon Pluxml.</p>

<p>Stéphane</p>
]]>
        </description>
    </item>
    <item>
        <title>[V4-Statiques] albums photos avec légendes textes</title>
        <link>https://forum.pluxml.org/discussion/1153/v4-statiques-albums-photos-avec-legendes-textes</link>
        <pubDate>Mon, 06 Apr 2009 23:00:36 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>gcyrillus-nomade</dc:creator>
        <guid isPermaLink="false">1153@/discussions</guid>
        <description><![CDATA[Bonjour,<br />
<br />
je suis en train de développé un petit album photo (en reprenant en partie un truc que j'avais fait pour la V3) .<br />
<br />
Toujours en manque de temps , je dépose ici une premiere version , administrable après que vous soyez logué dans l'administration .<br />
Caractéristiques :<br />
Création ou suppressions d'un ou plusieurs albums.<br />
upload et suppresions d'images<br />
descriptif/legende de l'image , html possible.<br />
test existence du repertoire Album , si non le crée avec un premier album vide .<br />
<br />
En regardant d'un peu plus prés le code , vous verrez qu'il vous est possible assez facilement de modifier le template d'affichage de l'image , ou des liens vers les Albums (template gerer par un switch ...)
<pre><code>&lt;?php
/**
 * page statique de gestion d'albums photos
 *
 * @package PLX =&gt; page statique : fonctions : création , suppession d'album d'images
 * @author	Gcyrillus , gestion d'uploads et des noms de repertoires/fichiers sur  la base de Pluxml de florent monthel
 **/

// Creation des repertoires de travail si absent 
 			$old= umask();
			umask(0); 			
			if (@mkdir('data/images/Album/',0755)) {
					mkdir('data/images/Album/Album-1',0755);
					}
			umask($old);
// fin test existence repertoire Album 
	include_once(PLX_CORE.'lib/class.plx.admin.php');
	
// reconstruction de l'url d'entrée (pour retour liste cat et formulaire
$geturl = explode(&quot;?&quot;, $_SERVER['REQUEST_URI']);
$redourl='';
for($i=1;$i &lt; count($geturl);$i++) {
$redourl .=$geturl[$i];
        }
$topurl = explode(&quot;&amp;&quot;, $redourl);	
$finalurl = $topurl[0];	

// reconstruction url pour album
$albLink=explode(&quot;&amp;&quot;, $_SERVER['REQUEST_URI']);
$albums=$alblink[0];

// admin inactif par defaut 

										


if (!empty($_POST)) {
	plxUtils::unSlash($_POST);
}
if (!empty($_GET)) {
	plxUtils::unSlash($_GET);
}	

// test si logger en administrateur 
# On démarre la session
session_start();

# Creation de l'objet principal et premier traitement
$plxAdmin = &amp; new plxAdmin(PLX_CONF);
$pwd = $plxAdmin-&gt;getPasswd(PLX_ROOT.$plxAdmin-&gt;aConf['passwords']);

# Test sur l'identification
if (@!$auth_page AND (empty($_SESSION['admin']) OR empty($pwd[ $_SESSION['author'] ]) OR $pwd[ $_SESSION['author'] ] !== $_SESSION['pass'])) {$mode_admin='InActif';}
else {
$mode_admin='Actif';
// form du choix d'edition 
echo '&lt;div id=&quot;admin&quot;&gt;
	&lt;h1&gt;MODE ADMINISTRATEUR&lt;/h1&gt;
	&lt;p&gt;&lt;i&gt;(supression d\'album vide uniquement possible.)&lt;/i&gt;&lt;/p&gt;

';
////////////////////////////////////


# Variables pour le redimensionnement
$width = 200;
$height = 100;
$quality = 80;
if (isset($_GET['galerie'])) {
$album= preg_replace('/[\.\%\&amp;\&quot;\s\'\:\/\[\],_|#*$£=`\+]+/',' ',$_GET['galerie']);
}
# Récupération des images du dossier
$dirImg = 'data/images/Album/'.$album.'/';

$plxImg = &amp; new plxGlob($dirImg);

$aImg = $plxImg-&gt;query('/(.+).(gif|jpg|jpeg|png|swf|swc|psd|tiff|bmp|iff|jp2|jpx|jb2|jpc|xbm|wbmp)$/i');
# Suppression d'une image
if(isset($_GET['del']) AND !empty($_GET['hash']) AND $_GET['hash'] == $_SESSION['hash'] AND isset($aImg[ $_GET['del'] ]) AND file_exists($dirImg.$aImg[ $_GET['del'] ])) {
	# On supprime l'image et sa miniature
	if(!@unlink($dirImg.$aImg[ $_GET['del'] ])) # Erreur de suppression
		$msg = 'Impossible de supprimer l\'image (problème d\'écriture dans le dossier '.$dirImg.')';
	else # Ok
		$msg = 'Image supprimée à '.date('H:m:s');
	@unlink($dirImg.$aImg[ $_GET['del'] ].'.tb');
		@unlink($dirImg.$aImg[ $_GET['del'] ].'.txt');
		if(!isset($_GET['oki'])) {
	header('Location:'.$_SERVER['REQUEST_URI'].'&amp;msg='.urlencode($msg).'&amp;oki=duck');
	exit;
}
}

#MISE AJOUR D'UNE DESCRIPTION


if(isset($_GET['txt']))
			{
			$id=$_GET['txt'];
			$fichier_legend=$dirImg.$id.'.txt';
			$poster=explode('.',$id);
			$postlegend ='desc'.$poster[0];
			$f_legende=stripslashes($_POST[$postlegend]);
				$flegende=fopen(&quot;$fichier_legend&quot;,&quot;w+&quot;);
				fputs($flegende,$f_legende); 
				fclose($flegende);
				$msg .= '&lt;br /&gt;Descriptif mis a jour';
		if(!isset($_GET['oki'])) {
	header('Location:'.$_SERVER['REQUEST_URI'].'&amp;msg='.urlencode($msg).'&amp;oki=duck');
	exit;
				}
				}

				
# Envoi d'une image
if(!empty($_FILES) AND !empty($_FILES['img']['name'])) {
	# On teste l'existence de l'image et on formate le nom du fichier
	$i = 0;
	$upFile = $dirImg.plxUtils::title2filename(plxUtils::unSlash(basename($_FILES['img']['name'])));
	while(file_exists($upFile)) {
		$upFile = $dirImg.$i.plxUtils::title2filename(plxUtils::unSlash(basename($_FILES['img']['name'])));
		$i++;
	}
	if(getimagesize($_FILES['img']['tmp_name'])) { # C'est une image
		if(!@move_uploaded_file($_FILES['img']['tmp_name'],$upFile)) { # Erreur de copie
			$msg = 'Impossible d\'envoyer l\'image (problème d\'écriture dans le dossier '.$dirImg.')';
		} else { # Ok
			@plxUtils::makeThumb($upFile, $upFile.'.tb',$width,$height,$quality);
			$msg = 'Image envoyée à '.date('H:m:s');
						if(!empty($_POST['descriptif'])){
							$fichier_legend =$upFile.&quot;.txt&quot;;
							$f_legende=fopen(&quot;$fichier_legend&quot;,&quot;w+&quot;);
							fputs($f_legende,stripslashes($_POST['descriptif'])); 
							fclose($f_legende);
							$msg .= ' et descriptif enregistré';
						}
		}
	} else { # Ce n'est pas une image
		$msg = 'Le fichier n\'est pas une image';
	}
		header('Location:'.$_SERVER['REQUEST_URI'].'&amp;msg='.urlencode($msg));
	exit;

}

/////////////////////////////////
?&gt;
&lt;?php
if (!$album =='') { ?&gt;
&lt;h2&gt;Uploader et gérer les images pour : &lt;?php echo $album ; ?&gt;&lt;/h2&gt;
	&lt;p&gt;&lt;?php (!empty($_GET['msg']))?plxUtils::showMsg(plxUtils::unSlash(urldecode(trim($_GET['msg'])))):''; ?&gt;&lt;/p&gt;
	&lt;?php if(!empty($_GET['img']) AND file_exists($dirImg.plxUtils::unSlash(rawurldecode($_GET['img'])))) { # Image particulière ?&gt;

		&lt;img src=&quot;&lt;?php echo $dirImg.plxUtils::unSlash(rawurldecode($_GET['img'])); ?&gt;&quot; alt=&quot;&quot; /&gt;
	&lt;?php } else { # Galerie ?&gt;
		&lt;form enctype=&quot;multipart/form-data&quot; action=&quot;&quot; method=&quot;post&quot;&gt;
			&lt;fieldset class=&quot;withlabel&quot;&gt;
				&lt;legend&gt;Upload d'images&lt;/legend&gt;
				&lt;p&gt;&lt;input name=&quot;img&quot; type=&quot;file&quot; /&gt;&lt;/p&gt;
				&lt;p&gt;&lt;label for=&quot;descriptif&quot;&gt;Légende de l'image&lt;/label&gt;
				&lt;textarea name=&quot;descriptif&quot; id=&quot;descriptif&quot; /&gt;Descrition de l'image ...&lt;/textarea&gt;&lt;/p&gt;
				&lt;input type=&quot;submit&quot; value=&quot;envoyer&quot; /&gt;&lt;/p&gt;
			&lt;/fieldset&gt;
		&lt;/form&gt;
		&lt;h2&gt;Album editable : &lt;big&gt;&lt;?php echo $album; ?&gt;&lt;/big&gt;&lt;/h2&gt;
		&lt;?php
			if (!$aImg) { # Aucune image
				echo 'Aucune image';
			} else { # On affiche les images
				$nb = count($aImg);
				for($i=0; $i &lt; $nb; $i++) {
					echo '&lt;div class=&quot;album&quot;&gt;&lt;div class=&quot;tampon&quot;&gt;&lt;p class=&quot;thumb&quot;&gt;';
					$name = str_replace($dirImg, '',$aImg[$i]);
					if(file_exists($dirImg.$aImg[$i].'.tb')) # On a une miniature
						echo '&lt;img src=&quot;'.$dirImg.$aImg[$i].'.tb'.'&quot; alt=&quot;'.$name.'&quot;/&gt;&lt;br /&gt;';
					else # Pas de miniatures
						echo '&lt;span&gt;'.$name.'&lt;/span&gt;&lt;br /&gt;';
					# On affiche les différents liens
					echo '&lt;/p&gt;';
					echo '&lt;p class=&quot;thumb_link&quot;&gt;';
					echo '&lt;a href=&quot;'.$_SERVER['REQUEST_URI'].'&amp;img='.rawurlencode($name).'&quot;&gt;&lt;img src=&quot;core/admin/img/eye.png&quot; alt=&quot;Voir&quot; title=&quot;Voir l\'image&quot; /&gt;&lt;/a&gt; ';
					
					
					echo '&lt;a href=&quot;'.$_SERVER['REQUEST_URI'].'&amp;del='.$i.'&amp;hash='.$_SESSION['hash'].'&quot; title=&quot;Supprimer l\'image&quot; onclick=&quot;Check=confirm(\'Supprimer cette image ?\');if(Check==false) return false;&quot;&gt;&lt;img src=&quot;core/admin/img/delete.png&quot; alt=&quot;Supprimer&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
					&lt;form method=&quot;post&quot; action=&quot;'.$_SERVER['REQUEST_URI'].'&amp;txt='.$name.'&quot;&gt;&lt;p&gt;descriptif&lt;/p&gt;';
					$lequel=explode('.',$name);
					$leg=$lequel[0];
					echo '&lt;p&gt;&lt;textarea id=&quot;desc'.$leg.'&quot; name=&quot;desc'.$leg.'&quot;&gt;';
					@include($dirImg.$aImg[$i].'.txt');
					echo '&lt;/textarea&gt;&lt;/p&gt;
					&lt;p&gt;&lt;input type=&quot;submit&quot; value=&quot;MAJ&quot;/&gt;&lt;/p&gt;
					&lt;/form&gt;
					'
					;
					echo '&lt;/div&gt;&lt;/div&gt;'.&quot;\n&quot;;
				}
			}
		?&gt;
	&lt;?php } # Fin else galerie 
	
} # FIN si !$album 
else {

///////////////////////////////////////////
# Suppression d'un repertoire
$dirImg='data/images/Album/';
if(isset($_GET['delrep']) AND !empty($_GET['hash']) AND $_GET['hash'] == $_SESSION['hash'] ) {
	# On supprime le repertoire
	if(!@rmdir($dirImg.trim($_GET['delrep']) )) # Erreur de suppression
		$msg = 'Impossible de supprimer cet Album (problème d\'écriture dans le dossier '.$dirImg.$_GET['delrep'].' , ou cet album n\'est pas vide)';
	else # Ok
		$msg = 'Album supprimée à '.date('H:m:s');
		if(!isset($_GET['oki'])) {
	header('Location:'.$_SERVER['REQUEST_URI'].'&amp;msg='.urlencode($msg).'&amp;oki=duck');
	exit;
}
}
///////////////////////////////////////////
echo '&lt;h2&gt; Crée un  Album &lt;/h2&gt;
	&lt;p&gt;';
	(!empty($_GET['msg']))?plxUtils::showMsg(plxUtils::unSlash(urldecode(trim($_GET['msg'])))):''; echo '&lt;/p&gt;';
echo '&lt;form method=&quot;post&quot; action=&quot;&quot; &gt;
&lt;p&gt;&lt;label for=&quot;new_album&quot;&gt;Nom de l\'album a créer&lt;/label&gt;
&lt;input type=&quot;text&quot; id=&quot;new_album&quot; name=&quot;new_album&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;input type=&quot;submit&quot; value=&quot;créer&quot; /&gt;&lt;/p&gt;
&lt;/form&gt;
';
if (isset($_POST['new_album'])) {
			$dirDest=trim(plxUtils::title2filename(plxUtils::unSlash($_POST['new_album'])));
 			$old= umask();
			umask(0); 			
			mkdir('data/images/Album/'.$dirDest,0755);
			umask($old);
			$msg = 'Album  : '.$dirDest.' créer .';
		header('Location:'.$_SERVER['REQUEST_URI'].'&amp;msg='.urlencode($msg));
	exit;
			}
}
/////////////////////////////////
echo '&lt;/div&gt;
';
}

// fin test log admin

						// class  dir recursive .
class dirRecursif{
var $dir;
var $browsed;


function 	dirRecursif($dir) {

										$this-&gt;listee($dir);
									}
									
function 	listee($dir ) 	{
										if (is_dir($dir))
										{
										
										$hdir = opendir($dir);
										
										$album=0;
										  while ( $item = readdir($hdir) ) 
										  {
										  
										  	if($item==&quot;.&quot; | $item==&quot;..&quot;) continue;
											
											if ( !is_dir( $dir.'/'.$item ) ) 
													{
													#tri sur extension 
													$ext = array_reverse(explode(&quot;.&quot;, $item));
													$extfile= $ext[0];
														if (($extfile =='jpg' || $extfile =='JPG' || $extfile=='gif' || $extfile=='GIF' || $extfile=='png' || $extfile=='PNG'  ))
														{	
														$album++;
														$this-&gt;album_num=$album;
														
															// Répertoire =&gt; récursion
														  $this-&gt;browsed['file'][][$dir] = $item ;
														  $this-&gt;browsed['file'][][$dir]['num']=$album;
															// echo   '&lt;p&gt;'.$dir.'/'.$item.'&lt;/p&gt;';
														   $this-&gt;listee( $dir.'/'.$item );
														  
														}
													}
											else 	{
											$this-&gt;browsed['dir'][][$dir] = $dir.$item ;
											//echo   '&lt;p&gt;'.$dir.'/'.$item.'&lt;/p&gt;';
											$this-&gt;listee( $dir.$item );
													} 
											}
												closedir( $hdir );
										}
										return $this-&gt;browsed;
										}
										
function 	triliste($dir,$tri='file') {

					$this-&gt;browsed=$this-&gt;browsed[$tri];
					return $this-&gt;browsed;
			} //fin triliste()	
									
function  	liste_Tpl($dir,$tri='file',$tpl='link',$item) {
	#variable raccourcies pour relecture aisée
	$target=$this-&gt;browsed[$item][key($this-&gt;browsed[$item])];
//echo '&lt;pre&gt;';
//var_dump($this-&gt;browsed[$item+1][key($this-&gt;browsed[$item])]['num']);
//echo '&lt;/pre&gt;';
		if ($tri=='file') {
					$way=key($this-&gt;browsed[$item]).'/'; 
					$alb_num=$this-&gt;browsed[$item+1][key($this-&gt;browsed[$item])]['num'];
					$em='&lt;em style=&quot;display:block;font-size:.5em;&quot;&gt;'.$way.'&lt;/em&gt;';
				#filtre sur extension de fichier
					$filext = array_reverse(explode(&quot;.&quot;, $target));
					$extfile= $filext[0];
						if ($extfile =='jpg' || $extfile =='gif' ||  $extfile =='png')
							{
							$tpl=$tpl;	
							}
						else 
							{
							$tpl='skip';
							}
					
				}
		else 	{
					$way='';
					$em='';
				}

	#switch , choix du template d'affichage des résultats
	switch($tpl)
	            {
					case 'skip':
					break;
					
					case 'album':
					$legende=$way.$target.'.txt';
					echo '
					&lt;div class=&quot;album&quot;&gt;&lt;div class=&quot;tampon&quot;&gt;
						&lt;h2&gt;
							&lt;a href=&quot;'.$way.$target.'&quot; title=&quot;acceder à :'.$way.$target.'&quot;  &gt;
							&lt;img src=&quot;'.$way.$target.'.tb&quot; alt=&quot;illustration N° '.$alb_num.'&quot; longdesc=&quot;'.$_SERVER['REQUEST_URI'].'#ill'.$alb_num.'&quot; style=&quot;background:url('.$way.$target.');&quot;  rel=&quot;'.$way.$target.'&quot; /&gt;&lt;/a&gt;&lt;/h2&gt;
						&lt;div id=&quot;ill'.$alb_num.'&quot; &gt;';
						
						if(@!include($legende)) {echo 'images sans legende';}
						echo '&lt;/div&gt;
					&lt;/div&gt;&lt;/div&gt;';
					break;
	                case 'link' :
	                echo '&lt;p&gt;&lt;a href=&quot;'.$way.$target.'&quot; title=&quot;acceder à :'.$way.$target.'&quot;  &gt;'.$target.'&lt;/a&gt;&lt;/p&gt;';
	                break;
	                case 'linkdir' :
					$albLink=explode(&quot;&amp;&quot;, $_SERVER['REQUEST_URI']);
					$al=$albLink[0];
					
					$gal = array_reverse(explode(&quot;/&quot;, $target));
	                echo '&lt;p class=&quot;link_album&quot;&gt;&lt;span class=&quot;tampon&quot;&gt;&lt;a href=&quot;'.$al.'&amp;galerie='.$gal[0].'&quot; title=&quot;acceder à l\'Album  :'.$gal[0].'&quot;  &gt;'.$gal[0].'&lt;/a&gt;';
					if ($this-&gt;mode_admin =='Actif') {echo' &lt;a class=&quot;deleterep&quot; href=&quot;'.$al.'&amp;delrep='.$gal[0].'&amp;hash='.$_SESSION['hash'].'&quot; title=&quot;Supprimer l\'Album : '.$gal[0].'&quot; onclick=&quot;Check=confirm(\'Supprimer cet Album ?\');if(Check==false) return false;&quot;&gt;&lt;img src=&quot;core/admin/img/delete.png&quot; alt=&quot;Supprimer&quot; /&gt;&lt;/a&gt;';}
					echo '&lt;/span&gt;&lt;/p&gt;';
	                break;

	                default :
	                echo '&lt;p&gt;'.$way.$target.'&lt;/p&gt;';
	                break;
	            }// fin switch

}	// fin liste_Tpl()

function 	showliste($dir,$tri='file',$tpl='link',$mode_admin) 	{
	$this-&gt;mode_admin=$mode_admin;
	$this-&gt;triliste($dir,$tri);

	$ct=count($this-&gt;browsed);
	if ( ($ct&gt;0) || (is_array($this-&gt;browsed))) {
		for ($i=0;$i&lt;$ct;$i++)
			{
					$this-&gt;liste_Tpl($dir,$tri,$tpl,$i);
			}
		}
	else {
		echo '&lt;p&gt;Désolé, Aucun fichiers ou répertoire trouvé .&lt;/p&gt;';
		}
		
}	// fin showliste();								
										
#########										
}// fin class 


if (isset($_GET['galerie'])) {

$album= preg_replace('/[\.\%\&amp;\&quot;\s\'\:\/\[\],_|#*$£=`\+]+/',' ',$_GET['galerie']);
$browse= new dirRecursif('data/images/Album/'.$album);
if ($mode_admin !='Actif') {
echo '&lt;h3&gt;Album :'.$album.' &lt;/h3&gt;
&lt;p&gt;'.$browse-&gt;album_num .' Image(s) dans cet Album .&lt;/p&gt;
&lt;div class=&quot;post&quot;&gt;';


$browse-&gt;showliste('data/images/Album/'.$album,'file','album',$mode_admin);
echo '&lt;/div&gt;';
}
}
?&gt;
&lt;h3&gt;Les Albums photos disponibles .&lt;/h3&gt;
&lt;div class=&quot;post&quot;&gt;&lt;?php
$browse2= new dirRecursif('data/images/Album/');
$browse2-&gt;showliste('data/images/Album/','dir','linkdir',$mode_admin);

?&gt;
&lt;/div&gt;
</code></pre>
Cette page statique est devellobicolé  sous une des première version de pluxml V4 que j'utilise en multiblog (<a href="http://gcyrillux.gcyrillus.com/?static3/album-photos" rel="nofollow">http://gcyrillux.gcyrillus.com/?static3/album-photos</a>) .<br />
<br />
Peut-être que certaines fonctions de la dernière version de pluxml ont changé de nom (capital en minuscule ou vice versa dans la class plxutils )<br />
<br />
<br />
Si vous voulez tester ou participer a l'amélioration de cette page statique , ne vous gênez pas <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/smile.png" title=":)" alt=":)" height="18" /><br />
<br />
Bon Web <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/smile.png" title=":)" alt=":)" height="18" /><br />
<br />
GC]]>
        </description>
    </item>
    <item>
        <title>Suggestion concernant la catégorie &quot;Accueil&quot;</title>
        <link>https://forum.pluxml.org/discussion/7391/suggestion-concernant-la-categorie-accueil</link>
        <pubDate>Fri, 17 Mar 2023 10:21:13 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>AirW</dc:creator>
        <guid isPermaLink="false">7391@/discussions</guid>
        <description><![CDATA[<p>Bonjour à tous !<br />
Serait-il possible de gérer l'attribution de la catégorie "Accueil" directement à partir de la liste des articles sans avoir à éditer les articles un par un ? Ça serait un plus pour une actualisation du site "sans prise de tête".</p>

<p>Bonne journée !</p>
]]>
        </description>
    </item>
    <item>
        <title>Mise à jour thème</title>
        <link>https://forum.pluxml.org/discussion/7355/mise-a-jour-theme</link>
        <pubDate>Fri, 03 Feb 2023 10:11:07 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Jean88</dc:creator>
        <guid isPermaLink="false">7355@/discussions</guid>
        <description><![CDATA[<p>Bonjour, J'aimerais utiliser le thème enhanced du thème par défault.<br />
Je me demandais, s'il me fallait -pour retrouver les personnalisations faites sur le thème par défaut- rechercher dans fichiers, les codes correspondant à ces modifications pour les copié dans le nouveau ?</p>

<p>Car si je copie 'bêtement' le fichier "header" par exemple, au mieux, je perdrais les améliorations du nouveau thème sur cette partie là et au pire j'aurais de la casse à cause des liens avec les autres fichiers non ?</p>

<p>Le problème c'est que je ne me rappel plus très bien quels lignes j'ai modifiées ou non ...</p>
]]>
        </description>
    </item>
    <item>
        <title>Ajouter .html à la fin des urls : version 5.8.4 vs 5.8.7</title>
        <link>https://forum.pluxml.org/discussion/7216/ajouter-html-a-la-fin-des-urls-version-5-8-4-vs-5-8-7</link>
        <pubDate>Sat, 25 Jun 2022 17:32:42 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>InstantT</dc:creator>
        <guid isPermaLink="false">7216@/discussions</guid>
        <description><![CDATA[<p>Bonjour à toute la communauté</p>

<p>J'étais actuellement sur une version 5.8.4 de Pluxml.<br />
J'avais modifié le code pour rajouter .html à la fin des URLS, notamment le fichier .htaccess qui était comme suit :</p>

<p><code>RewriteRule ^(a\d*|c\d*|tag|archives|static\d*|page\d*|telechargement|download)\b(.*).html$ index.php?$1$2 [L]</code></p>

<p>Or, dans la nouvelle version, la ligne est désormais : <br />
<code>RewriteRule ^(?!feed)(.*)$ index.php?$1 [L]</code></p>

<p>J'ai tenté de modifier (en ajoutant .html) : <code>RewriteRule ^(?!feed)(.*).html$ index.php?$1 [L]</code>, sans succès <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/anguished.png" title=":anguished:" alt=":anguished:" height="18" /></p>

<p>Avez vous une idée de comment je pourrai modifier cela pour que mon site fonctionne ?</p>

<p>Merci d'avance pour votre aide</p>

<p>InstantT</p>
]]>
        </description>
    </item>
    <item>
        <title>Thème MSDOS à jour</title>
        <link>https://forum.pluxml.org/discussion/6892/theme-msdos-a-jour</link>
        <pubDate>Wed, 18 Nov 2020 16:39:42 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>petitpouyo</dc:creator>
        <guid isPermaLink="false">6892@/discussions</guid>
        <description><![CDATA[<p>Salut tout le monde, je suis actuellement entrain de mettre sur pied le thème MSDOS qui était compatible jusqu'à la version 5.5 de PluXml, actuellement il fonctionne mais certains plugins ne sont pas compatibles.</p>

<p>Dans tous les cas je ferais suivre à la suite de ce message les dernières news.</p>

<p>Pour voir le site sur la dernière version de PluXml : ms-dos.fr (je suis pas aller chercher le nom bien loin <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/lol.png" title=":lol:" alt=":lol:" height="18" />)</p>
]]>
        </description>
    </item>
    <item>
        <title>[Résolu] Limiter sur la Home le nombre de caractères de l'article affiché</title>
        <link>https://forum.pluxml.org/discussion/7168/resolu-limiter-sur-la-home-le-nombre-de-caracteres-de-larticle-affiche</link>
        <pubDate>Mon, 25 Apr 2022 13:05:03 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Pierrot14</dc:creator>
        <guid isPermaLink="false">7168@/discussions</guid>
        <description><![CDATA[<p>Bonjour à tous !</p>

<p>Nouveau pluxeur enthousiaste (franchement pourquoi se prendre la tete avec WP...) j'arrive a quasiment tout faire comme un grand (et mon niveau n'est pas ouf...).</p>

<p>J'ai une question sans réponse malgré mes recherches google et sur ce forum, malgré mes tests de fonctions php bien connu.</p>

<p>En gros je ne souhaite pas utiliser les chapôs (perte de temps dans mon cas) ceci étant dit, si je ne les utilise pas l'article en entier s'affiche sur la home   (et du coup duplicate content avec la page de l'article). Du coup j'ai tenté substr en php pour limiter à XXX caractères l'affichage de l'article, j'ai tenté pas mal de choses mais rien ne fonctionne.</p>

<p>Auriez-vous une piste ?</p>

<p>Merci beaucoup d'avance,</p>

<p>Pierre</p>

<p>PS: en bonus si quelqu'un à la solution avant que je mette les mains dans le code pour 'virer' le textarea 'chapo' sur l'ajout d'un nouvel article, je suis preneur <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/smile.png" title=":)" alt=":)" height="18" /></p>
]]>
        </description>
    </item>
    <item>
        <title>Bidouillage/Modération: commentaires hors-ligne si envoyé depuis certaines IPs</title>
        <link>https://forum.pluxml.org/discussion/7050/bidouillage-moderation-commentaires-hors-ligne-si-envoye-depuis-certaines-ips</link>
        <pubDate>Sun, 12 Sep 2021 20:21:01 +0000</pubDate>
        <category>Modifications</category>
        <dc:creator>Deevad</dc:creator>
        <guid isPermaLink="false">7050@/discussions</guid>
        <description><![CDATA[<p>Bonsoir,</p>

<p>Ca faisait une semaine que je recevais des menaces de mort en commentaire, et bon, PluXML qui montre l'IP de l'auteurice: ça me faisait une belle jambe car quoi faire quand c'est comme ça?</p>

<p>Avec un blog tout publique dont pas mal d'abonnée RSS au fil de commentaires...  Bref, au bout d'une semaine ça faisait bien tâche d'avoir des DIE/DIE/DIE à répétition (je ne suis pas en danger, ça vient à priori d'un⋅e gosse d'Inde au vue de la façon avec l'IP est même pas masqué/dérrière Tor/VPN).</p>

<p>Alors avec mes capacités limités en code (dessinateur de BD); j'ai du bidouiller un truc qui m'a pris la journée. Je suis venue le copier ici, car mon premier réflexe ce matin était de venir voir si quelqu'un⋅e avait déjà eu le cas.</p>

<p>La modification est dans  <code>core/lib/class.plx.motor.php</code> , et détruit un peu ceux qui ont l'option "mettre tous les commentaires en modération avant publication"; j'ai réutilisé. Tout se passe dans la fonction <code>public function newCommentaire($artId,$content) {</code> autour de la ligne 920; après tous les <code>$comment['site'] = ....</code>, <code>$comment['ip'] = ...</code> J'ai mis se petit paragraphe:</p>

<pre><code>$ip_to_moderate = array(
                    '116.*.*.*',
                    '125.*.*.*',
                    '157.*.*.*',
                    '117.*.*.*',
                    '223.*.*.*'
                );
                $blocked = false;
                $client_ip = $comment['ip'];
                foreach($ip_to_moderate as $ip) {
                    $digits = explode(".", $ip);
                    $client_ip_digits = explode(".", $client_ip);
                    if($digits[1] == '*' &amp;&amp; $digits[0] == $client_ip_digits[0]) {
                      $blocked = true;
                      break;
                    } else if($digits[2] == '*' &amp;&amp; $digits[0] == $client_ip_digits[0] &amp;&amp; $digits[1] == $client_ip_digits[1]) {
                      $blocked = true;
                      break;
                    } else if($digits[3] == '*' &amp;&amp; $digits[0] == $client_ip_digits[0] &amp;&amp; $digits[1] == $client_ip_digits[1] &amp;&amp; $digits[2] == $client_ip_digits[2]) {
                      $blocked = true;
                      break;
                    }
                }
</code></pre>

<p>C'est repris en partie de ce site web pour la méthode: <a href="https://www.phpjabbers.com/how-to-block-an-ip-address-from-visiting-a-website-php75.html" rel="nofollow">https://www.phpjabbers.com/how-to-block-an-ip-address-from-visiting-a-website-php75.html</a> ; et cette partie là va définir les plages d'adresses IP et aussi changer un marqueur <code>$blocked = true;</code> si l'auteurice du commentaire à une IP dans ces plages.</p>

<p>Ensuite, pour marquer le commentaire comme offline , c'est en faisant ça:</p>

<pre><code>if($blocked == true) # On modère le commentaire =&gt; underscore
                    $comment['filename'] = '_'.$artId.'.'.$time.'-'.$idx.'.xml';
                else # On publie le commentaire directement
                    $comment['filename'] = $artId.'.'.$time.'-'.$idx.'.xml';
                # On peut créer le commentaire
                if($this-&gt;addCommentaire($comment)) { # Commentaire OK
                    # if($this-&gt;aConf['mod_com']) # En cours de modération
                    if($blocked == true) # En cours de modération
                        return 'mod';
                    else # Commentaire publie directement, on retourne son identifiant
                        return 'c'.$artId.'-'.$idx;
                } else { # Erreur lors de la création du commentaire
                    return L_NEWCOMMENT_ERR;
                }
</code></pre>

<p>Voilà; j'éspère que ça sera utile à certain⋅e⋅s, pour en finir avec cette plaie des menaces et humains ne respectant pas les codes de conduites élémentaires dans les espaces de discussions auto-hébergés.</p>
]]>
        </description>
    </item>
   </channel>
</rss>
