<?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>epub — Forum de PluXml</title>
        <link>https://forum.pluxml.org/index.php?p=/</link>
        <pubDate>Tue, 19 May 2026 03:09:41 +0000</pubDate>
        <language>fr</language>
            <description>epub — Forum de PluXml</description>
    <atom:link href="https://forum.pluxml.org/index.php?p=/discussions/tagged/epub/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>[plugin] PLX_EBook : Édition et partage d’e-pub a partir de PluXml</title>
        <link>https://forum.pluxml.org/index.php?p=/discussion/7126/plugin-plx-ebook-edition-et-partage-d-e-pub-a-partir-de-pluxml</link>
        <pubDate>Wed, 02 Feb 2022 17:42:02 +0000</pubDate>
        <category>Plugins</category>
        <dc:creator>gcyrillus-nomade</dc:creator>
        <guid isPermaLink="false">7126@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Voici un plugin en version Bêta qui permet de sauvegarder tout ou partie de votre site PluXml en 1 ou plusieurs E-pubs.</p>

<hr />

<p><strong>Edit</strong> bêta passée en <strong>version 1.0.3</strong>    <a href="https://github.com/gcyrillus/PLX_EBook/archive/refs/heads/dev-1.0.3.zip" rel="nofollow">https://github.com/gcyrillus/PLX_EBook/archive/refs/heads/dev-1.0.3.zip</a> 03/2022 Maj 17/04/22</p>

<p>Exemple de Epubs générés par le plugin (par catégories, mode Bande dessinée ou en provenance d'une autre source): <a href="http://gcyrillus.alwaysdata.net/epub-gratuit" rel="nofollow">http://gcyrillus.alwaysdata.net/epub-gratuit</a></p>

<hr />

<ul>
<li>Une page coté visiteur est affichable comme une page statique et listes les e-pubs que vous avez généré avec le plugin et / ou ceux que vous avez téléversé dans le dossier dédier.</li>
<li>Coté administration, plusieurs onglets de configuration permettent de renseigner quelques champs utiles au fichier OPF , ainsi que de sélectionner les articles par catégories de différentes manières: du plus récent, du plus ancien, par périodes(mensuelle,trimestrielle,semestrielle,annuelle), par auteur.</li>
<li>Des pages annexes peuvent être éditer et ajouter,</li>
<li>les pages statiques peuvent être inclues  individuellement , ainsi qu'une page "témoignages" reprenant  les commentaires d'un seul article au choix ... si il y a des articles commentées.</li>
<li>Quelques thèmes avec une image de couverture, police et un fichier de styles sont aussi sélectionnables (un onglet preview permet de voir les thèmes disponibles et éditables. L'onglet ajout de thème vous permet de télécharger de nouvelles couvertures et polices pour vos nouveaux thèmes ou l'édition d'un thème existant.</li>
<li>un mode bande dessinée,  simplifié et accessible depuis l'onglet "type de publication", permet de générer un e-pub à partir d'images uniquement téléversées au préalable dans un répertoire de votre choix.</li>
</ul>

<p>Vous trouverez une description un peu plus complète et le plugin en téléchargement sur la page  <a href="https://github.com/gcyrillus/PLX_EBook" rel="nofollow">https://github.com/gcyrillus/PLX_EBook</a> Le lien vers l'archive:<a href="https://github.com/gcyrillus/PLX_EBook/archive/refs/heads/dev-1.0.3.zip" rel="nofollow">https://github.com/gcyrillus/PLX_EBook/archive/refs/heads/dev-1.0.3.zip</a></p>

<p>Le plugin est très proche de l'idée que j'en avait ainsi que les e-pubs générer, la partie configuration et génération n'est pas tout à fait conformes à ce que je souhaitais initialement et quelques fonctions sont  (peut-être) encore manquantes ou de trop.<br />
Je vais maintenant espérer trouver des utilisateurs et avoir des retours pour rendre ce plugin presque parfait (ergonomie, options, ...)</p>

<p>cdt</p>

<hr />

<p>les dernières modif sur cette branche sont :<br />
[+] 04/05/2022<br />
    fix wrong mimetype for woff &amp; woff2 (EBook.php)</p>

<p>[+] 28/04/2022<br />
    cache temporairement les warnings pour les fonction ZIP (PHP 8) dans epub.ebook.php<br />
    arrondis du calcul des dimensions et positions pour la creations des couvertures (PHP8) dans EBook.php<br />
    fix , typo sur variable $thi =&gt; $thI dans config.php</p>

<p>[-] 20/04/22<br />
  Correction affichage en front (test mauvais tableau) (epub.ebook.php)</p>

<p>[~]17/04/22 (config.php)<br />
   Maj édition theme<br />
   Maj  scripts JavaScript (extraction et affichage couleur et fonts du fichier de configuration du thème édité) <br />
   renommage des thèmes par nom de dossier</p>

<p>[+] 25/03/2022<br />
    Ajout et edition de thème(config.php)<br />
    Upload image et polices pour les thèmes(config.php)<br />
    upfonts.php Ajout polices en glisser/déposer dans l'edition pour en faire usage avant d'enregistrer le thème en edition ou en création.<br />
    ajout scripts javascript.</p>

<p>[+] 10/03/2022<br />
    ajout bouton 'delete' sur la page ebook si connecté comme administrateur. (epub.ebook.php)<br />
    ajout CSS pour ce bouton.(site.css)<br />
    Réarrangement des titres, sous-titres et nom de catégories sur la couverture en fonction de l'option choisie pour le titre principale(nom de site ou catégorie)(EBook.php)<br />
    Données onglets crédits Options ajout à la page remerciements.</p>

<pre><code>maj fichiers langues
</code></pre>

<p>[+] 08/03/2022<br />
    intègre a l’e-pub une image située en dehors du répertoire data/medias via cURL</p>

<p>[+] 07/03/2022<br />
    ajout choix du titre de la couverture pour les catégories sélectionnées = nom de catégorie(defaut) ou nom du site</p>

<p>[+] 06/03/2022<br />
    Ajout javascript: désactive le bouton de création si des changement sont effectués dans l'onglet configuration et crèation.<br />
    Maj fichier fr.php/en.php<br />
    warning message if publish mode not yet configured (config.php)<br />
    rename: function listdir_by_date -&gt; listdir_by_natsort (epub.ebook.php)<br />
    initialisation de $file_array=array(); par defaut si répertoire epubs vide(epub.ebook.php)</p>

<p>[+] 05/03/2022<br />
    bug tri sur multi-utilisateur validé si isset() (config.php)</p>

<p>[+] 04/03/2022<br />
    cover updates on demand only(config.php)</p>

<p>[+] 03/03/2022<br />
    javascript, historique dossier epub, couleurs(config.php)</p>

<p>[+] 11/2/22<br />
    reformat le chemin du repertoire de stockage des epubs(config.php)<br />
    ajout lien direct dans le menu admin(EBook.php)<br />
    valeur $format de la fonction catList() pris en compte(EBook.php)<br />
    n'affiche que les auteurs qui ont au moins une publication(config.php)<br />
    comptage article par categorie selon l'auteur selectionné (categorie vides non affichées)<br />
    ajout du champ description commun aux pages statiques(config.php)<br />
    modif mineures du CSS coté admin</p>
]]>
        </description>
    </item>
    <item>
        <title>inclusion statique dans fichier xml/html avec ob_start();  et Apache sans décrocher...</title>
        <link>https://forum.pluxml.org/index.php?p=/discussion/7106/inclusion-statique-dans-fichier-xml-html-avec-ob-start-et-apache-sans-decrocher</link>
        <pubDate>Fri, 10 Dec 2021 21:44:51 +0000</pubDate>
        <category>Entraide</category>
        <dc:creator>gcyrillus-nomade</dc:creator>
        <guid isPermaLink="false">7106@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Je suis en train tester la conversion du contenu d'un site PluXml en un fichier Epub.</p>

<p>Je rencontre bien sur  plusieurs difficultés n'étant pas programmeur. L'une d'entre elle est de récupérer ce qui parvient à l'affichage d'une page statique .</p>

<p>Inspirer de la fonction <code>staticContent()</code>de plxshow, je n'arrive pas à concrétiser (serveur apache).</p>

<p>Voici un morceau qui peut être intégré dans une page statique à des fins de test pour mettre en evidence le défaut:</p>

<p>la boucle ne redémarre pas après avoir trouvé un premier fichier contenant du php, celui-ci est bien interprété et le retour HTML bien  enregistrer aussi.</p>

<p>A prioiri apache bug, le script de la  boucle (foreach) semble vouloir  redémarrer depuis le fichier  de la page statique parsée et pas depuis son propre fichier (en passant, bug qui ressemble à une drôle de faille si exploitable de l'extérieur) . Je ne vois pas trop comment faire en sorte pour que le serveur ne s’emmêle pas les pinceaux entre la page du script et la page que l'ont met dans un buffer pour en récupérer le contenu au lieu de pointer dessus et l'afficher.</p>

<p><em>Note , les <strong>&#92;</strong> sont doublés/échappés dans le code à copier/coller dans une page statique , pensez à les echapper à nouveaux avant chaque réenregistrement de votre page statique <img src="https://forum.pluxml.org/plugins/emojiextender/emoji/twitter/wink.png" title=";)" alt=";)" height="18" /> .</em></p>

<pre><code><br />&lt;?php
global $plxMotor;

$xhtml ='&lt;!DOCTYPE html&gt;&lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xml:lang="'.$plxMotor-&gt;aConf['default_lang'].'" lang="'.$plxMotor-&gt;aConf['default_lang'].'"&gt;&lt;head&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;&lt;link rel="stylesheet" type="text/css" href="CSS/epub.css" /&gt;&lt;script src="JS/script.js"&gt;&lt;/script&gt;&lt;/head&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'; 

$annexe="0";
     foreach ($this-&gt;plxMotor-&gt;aStats as $k =&gt; $v) {
           if ($v['active'] == 1 and $v['menu'] == 'oui' /* &amp;&amp;   $k !== '004'  */ ) {// en testant , n'oublier pas de filtrer et exclure  le numéro de cette page statique pour ne pas partir en orbite !!!!!!

         $annexe++;

                // inscription opf ici , retiré pour la question            


                $pageAnnexe = new DOMDocument('1.0', 'utf-8'); // parceque prévue d'être stocké dans un fichier epub
                $pageAnnexe-&gt;preserveWhiteSpace = false; 
                $pageAnnexe-&gt;formatOutput = true; 
                $pageAnnexe-&gt;loadHTML(mb_convert_encoding($xhtml, 'HTML-ENTITIES', 'UTF-8'));

                $title = $pageAnnexe-&gt;createElement('title', $v['name'] );
                // ajout du titre 
                $xpath = new DOMXPath($pageAnnexe);    
                $results = $xpath-&gt;query('/html/head');   
                $head = $results-&gt;item(0);
                $head-&gt;appendChild($title);
                //ajout contenu    
                $results = $xpath-&gt;query('/html/body');
                $body=$results-&gt;item(0); 
                $section= $pageAnnexe-&gt;createElement('section');

                $h1=$pageAnnexe-&gt;createElement('h1',$v['name'] );
                $section-&gt;appendChild($h1);
                $pagestat=  PLX_ROOT .$plxMotor-&gt;aConf['racine_statiques'].$k.'.'.$v['url'].'.php';

                // ce que j'utilise pour le moment et par depis
                /*$output =  file_get_contents($pagestat);
                $output = preg_replace('#\\&lt;\\?php(.*?)\\?\\&gt;#is', '', $output);*/

               // ce que j'aimerais faire sans comprendre ou se trouve les subtilités pour que cela fonctionne

               ob_start();
                require $pagestat;
               // je sais pas trop lequel est le plus opportun là, suggestion appréciée
               // $output = ob_get_clean();   
               // $output = ob_get_contents();  
                $output = ob_get_flush();


                // premiere statique avec php interpréte : okay
                $divite=$pageAnnexe-&gt;createCDATASection('&lt;div&gt;'.$output.'&lt;/div&gt;' );

                $section-&gt;appendChild($divite);

                $body-&gt;appendChild($section);
                $pageA= $pageAnnexe-&gt;saveXML();

           //insertion dans un fichier pour l'exemple 


               $myStatique = fopen("stat-".$annexe.".xhtml", "w") or die("Impossible d'ouvrir le fichier");
               fwrite($myStatique, $pageA);
               fclose($myStatique);

    // La boucle s’arrête ici dés qu’une page statique contient du PHP, son contenu HTML est sauvegardé avant que l'on soit  rediriger vers la dite page 
     }
}   

?&gt;

</code></pre>

<p><em>Pour les curieux qui voudraient bien voir où j'en suis pour le moment , le dernier epub générer à tester se trouve là et rempli grâce au plugin "les fables de la fontaine" : <a href="http://gcyrillus.alwaysdata.net/Lesfablesdel.epub" rel="nofollow">http://gcyrillus.alwaysdata.net/Lesfablesdel.epub</a>  l'avancement est aléatoire en fonction des test et modifications répétées selon le temps libre que j'y accorde.  Pour le moment, il est apparement ouvrable avec SiGil, Calibre et  quelques lecteur d'epub gratuit android, aucune idées en ce qui concerne les tablettes ni  les machin qui se prennent pour la Pomme.</em></p>
]]>
        </description>
    </item>
    <item>
        <title>[plugin] kzFauxtext</title>
        <link>https://forum.pluxml.org/index.php?p=/discussion/6743/plugin-kzfauxtext</link>
        <pubDate>Thu, 14 May 2020 15:43:12 +0000</pubDate>
        <category>Plugins</category>
        <dc:creator>bazooka07</dc:creator>
        <guid isPermaLink="false">6743@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Si vous êtes lassé d'écrire quelques articles en "Lorem Ipsum" pour tester un nouveau site, ce plugin vous permettra de gérer des milliers d'articles contenant du texte lisible par un humain à partir d'un livre électronique de votre choix.<br />
Les articles peuvent être créer avec des auteurs, des catégories, des mots-clés et des vignettes différentes.<br />
<a rel="nofollow" href="https://kazimentou.fr/repo/index.php?plugin=kzFauxTexte&amp;download">Télécharger la dernière version de ce fabuleux plugin</a></p>

<ul>
<li>2024-05-24 version 1.0.1 - Compabilité avec PHP-8.3.7</li>
<li>2020-11-17 version 1.0.0 - Gestion des utilisateurs corrigé</li>
<li>2020-05-14: version 0.9.0 - première publication</li>
</ul>
]]>
        </description>
    </item>
   </channel>
</rss>
