<?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>chaudron — Forum de PluXml</title>
        <link>https://forum.pluxml.org/index.php?p=/</link>
        <pubDate>Fri, 03 Apr 2026 21:26:49 +0000</pubDate>
        <language>fr</language>
            <description>chaudron — Forum de PluXml</description>
    <atom:link href="https://forum.pluxml.org/index.php?p=/discussions/tagged/chaudron/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>[plugin] addEvents (exemple made in theCrock)</title>
        <link>https://forum.pluxml.org/index.php?p=/discussion/7725/plugin-addevents-exemple-made-in-thecrock</link>
        <pubDate>Mon, 23 Sep 2024 21:56:46 +0000</pubDate>
        <category>Plugins</category>
        <dc:creator>gcyrillus-nomade</dc:creator>
        <guid isPermaLink="false">7725@/index.php?p=/discussions</guid>
        <description><![CDATA[<p><strong>lastUpdate</strong> V 4.2.0  <a href="https://ressources.pluxopolis.net/banque-plugins/plugins/addEvents.4.2.0.zip" rel="nofollow">https://ressources.pluxopolis.net/banque-plugins/plugins/addEvents.4.2.0.zip</a><br />
Permet d'associer un article à une date événementielle.</p>

<ul>
<li>Compatible avec le plugin plxMultiLingue (cela inclus les 3 modules fournis)</li>
<li>Insère un champ date "Événement" dans l’édition et création d'un articles.</li>
<li><ul>
<li>Champs: date de fin et horaires début/fin .</li>
</ul></li>
<li>Insère une notification visuelle sur vos articles associés à un événement (icone))</li>
<li>genére une page statique virtuelle listant vos événements par dates.</li>
<li>Les membres connecté peuvent indiquer leur présence éventuelle à un événement</li>
<li>La listes des participants peut-être affichée à tous ou seulement à l'administrateur</li>
<li><p>Page d'administration:</p>

<ul>
<li>affiche un tableau par événement avec les inscriptions des membres.</li>
<li>Les inscriptions peuvent être modifiés par l'administrateur.</li>
</ul></li>
<li><p>configuration statique:</p>

<ul>
<li>titre et url (multilingue))</li>
<li>tri par date événement croissant ou croissant</li>
<li>affiche ou non les dates passées</li>
<li>insère une pagination. nombre d'articles par page configurable.</li>
</ul></li>
<li><p>un widget réutilisable via un hook affiche avec un paramètre au choix:</p>

<ul>
<li>les 5 dernières dates planifiées.</li>
<li>un calendrier navigable avec les dates événements en surbrillance cliquables.</li>
<li>peut avoir plusieurs événement sur une même journée.</li>
<li>un tooltip au survol d'une date événement du calendrier.</li>
<li>un encart si la date du jour correspond à un événement.</li>
</ul></li>
<li><p>un formulaire permet au membre connecté de signifier sa présence à un événement.</p></li>
</ul>

<hr />

<p>Salut à tous.</p>

<p>Suite à la demande d'aide dans le sujet : <a href="https://forum.pluxml.org/discussion/7724/besoin-de-votre-aide-pour-un-petit-plugin" rel="nofollow">https://forum.pluxml.org/discussion/7724/besoin-de-votre-aide-pour-un-petit-plugin</a> voici un exemple concocté depuis le "Chaudron à plugins" (plugin theCrock)  puis un éditeur de texte colorisant le code.<br />
Dernière version de l'archive :<a href="https://ressources.pluxopolis.net/banque-plugins/plugins/addEvents.4.0.2.zip" rel="nofollow">https://ressources.pluxopolis.net/banque-plugins/plugins/addEvents.4.0.2.zip</a><br />
compatible avec le plugin <a href="https://ressources.pluxopolis.net/banque-plugins/plugins/plxMyMultiLingue.0.8.3.zip" rel="nofollow">https://ressources.pluxopolis.net/banque-plugins/plugins/plxMyMultiLingue.0.8.3.zip</a></p>

<p>Voici donc un exemple de plugin construit à partir d'un squelette prés à recevoir le code des fonctions du plugin.<br />
Cela permet en principe à toute personne un peu familière du code de PluXml et avec un niveau de faux débutant de créer un plugin en allant directement aux fonctions essentielles.</p>

<p><em>Disclaimer, je me considère comme faux débutant avertit et pas développeur. Si je connais bien PluXml , je n'en ai qu'une expertise moyenne et je l'apprécie pour sa relative simplicité et sa résilience. L'introduction des Plugins à dés le début était bien pensé à mon humble avis et les quelques premiers plugins proposé par Stéphane ont bien démontré la possibilité d'une grande diversité dans la façon de les intégrés et des interactions possible avec PluXml . Avec une multitude de Hook (points d'accroche ou d'entrée) dans Le code de PuXml tout au long du processus du chargement, de la page demandée , le traitement des données et enfin l'affichage de la requête. il n'y a pas grand chose qui ne puisse être fait.</em></p>

<p>Pour créer ce squelette, vous pouvez le faire en ligne à <a href="https://pluxopolis.net/thecrock" rel="nofollow">https://pluxopolis.net/thecrock</a> ou télécharger le plugin et le faire ensuite depuis votre PluXml <a href="https://ressources.pluxopolis.net/banque-plugins/plugins/theCrock.zip" rel="nofollow">https://ressources.pluxopolis.net/banque-plugins/plugins/theCrock.zip</a></p>

<p>La demande était d'ajouter un champs aux articles pour les associer à une date d'événement.</p>

<p>A partir de là , il restait à savoir à quoi et comment servirait ce champs une fois affiché dans l'admin ?</p>

<p>le scenario choisi pour créer ce plugin est le suivant:</p>

<ol>
<li>je modifie un peu l'affichage des articles associés avec une icône colorée,  grisée pour les événements passés</li>
<li>je liste les événements par date chronologique des événements et pas des articles dans une pages statique avec la date clairement indiquée.</li>
<li><img src="https://forum.pluxml.org/uploads/editor/1j/3uv3uea675wp.png" alt="" title="" /></li>
<li>Coté admin, j'ai deux hook qui permettent d’insérer quelque chose dans la page d’édition des articles , en début de formulaire ou en fin, dans la sidebar. Je choisis en haut avec le hook <code>AdminArticleTop</code>.</li>
<li><p><img src="https://forum.pluxml.org/uploads/editor/ya/kr1d05thbw3r.png" alt="" title="" /></p></li>
<li><p>à l'enregistrement, la date doit être enregistrée et ne pas perturber les enregistrements.</p></li>
</ol>

<p><strong>Où enregistrer cette date sans toucher aux fichiers des articles ?</strong><br />
Je choisis en prime abord, le fichier de configuration du plugin , en désactivant le plugin , mes fichiers articles n'auront pas à être ni ne seront nettoyés si je les modifie. Si je veux réactiver le plugin par la suite, il n'y aura pas à se soucier de refaire les associations.</p>

<p>N'ayant pas l'expertise de bazooka07 dans le code de PluXml, je vais faire à coté et me servir d'une copie partielle du tableau des fichiers articles.(méthode que j'utilise souvent)</p>

<p>Pour enregistrer et retrouver la date, je prend le numéro de l'article sur 4 chiffres pour l'enregistrer. Pour le retrouver , je prend tous les paramètres du plugin avec un champ  de quatre chiffres uniquement..</p>

<p>pour afficher une icône ou une date dans un article, je vais me servir du Hook <code>plxMotorParseArticle</code> et m'accrocher en début de contenu de l'article entre l'image d'accroche et  <code>chapo</code> ou <code>content</code> selon. Les feuilles de styles feront le reste.</p>

<p>Pour afficher ma liste d’événements, je récupère tout mes paramètre de 4 chiffre, vérifie qu'ils ne sont pas vides et alimente un nouveau tableau avec le noms des fichiers correspondant aux numéros . Cette liste se trouve dans  $aFiles <code>$this-&gt;plxMotor-&gt;plxGlob_arts-&gt;aFiles</code><br />
une fois le tri effectué et ordonné , il ne reste en principe qu'a extraire les infos des articles et de les afficher au fur et à mesures. <code>$this-&gt;plxMotor-&gt;parseArticle('data/articles/'.$this-&gt;plxMotor-&gt;plxGlob_arts-&gt;aFiles[$idart]);</code></p>

<p>Pour la page statique, le plugin peut s'en charger, comme ça , n'importe qui sachant installer un plugin pourra en profiter sans avoir à se demander comment créer cette page.</p>

<p>Il restera à nettoyer le squelette des choses dont  l'on n'a peut-être finalement pas besoin et de mettre à jour les fichiers lang et wizard si l'on à prit cette option</p>

<p>L'archive présentée couvre grosso modo ce que je vient de décrire et j’espère démystifié un peu la création de plugin pour ceux qui n'osent pas encore ou pense manquer de temps. <em>Un éléphant se mange bouchée par bouchée</em>.</p>

<p>J'ai gardé  l'option widget dans le corps du plugin qui pourrait par exemple servir à afficher un calendrier ou une petite liste des événements dans la sidebar au lieu d'utiliser une page statique.  Le fonctionnement reste basique et il peut y avoir de nombreuses autre options à ajouter, comme par exemple, l'édition du template article pour la page statique,  mettre une date de début et de fin (ou plusieurs périodes , les paramètres des plugins peuvent stocker des tableaux au lieu de simples textes) , etc ....</p>

<p>présentation un peu longue  pour quelques explications à l'attention de <a href="https://forum.pluxml.org/index.php?p=/profile/kamea" rel="nofollow">@kamea</a> .</p>

<p>Cdt</p>

<p>edit : les ajouts en cours de route :</p>

<ul>
<li>un visuel dans l'admin des articles : <img src="https://forum.pluxml.org/uploads/editor/si/l6va61qevyef.png" alt="" title="" /></li>
<li><p>un widget (avec un systeme de modules) affiche par défaut le module list avec une liste des 5 dates en partant de la plus loin dans le temps. <br />
<img src="https://forum.pluxml.org/uploads/editor/mj/955wqb8m5twh.png" alt="" title="" /></p></li>
<li><p>second module affichable, un calendrier  :<br />
  <img src="https://forum.pluxml.org/uploads/editor/lc/pbrd8ub1quwi.png" alt="" title="" /></p></li>
<li><p>le module today affiche un encart avec le lien vers l'article, la date et son image d'accroche si il y a<br />
   <img src="https://forum.pluxml.org/uploads/editor/a2/fjq8a1xkz0hb.png" alt="" title="" /></p></li>
<li><p>une catégorie est dédiée est créer uniquement pour les articles associé à une date.</p></li>
</ul>

<p>Le widget est plutôt destiner à la sidebar.</p>

<p>N'oubliez pas que les feuilles de styles reste éditable pour les accordées à vos thèmes</p>
]]>
        </description>
    </item>
   </channel>
</rss>
