[Plugin] TinyMCE : Editeur pour articles et pages statiques

12346»

Réponses

  • AirWAirW Member

    Bonjour bonjour !

    D'abord on ne dira jamais assez merci aux contributeurs de ce projet, alors MERCI !

    J'utilise PluXml pour une école et je trouve qu'une icône supplémentaire dans le menu permettant de placer un lien de téléchargement serait bien pratique. Ça pourrait aussi être une option dans la boite existante d'insertion d'un lien.

    J'ai installé kzDownload en espérant que ça m'aiderait... mais non ! (Sauf que les stats, c'est super !)

    Pour l'instant, je stocke mon pdf (par exemple) dans un dossier medias, puis je fais comme si j'insérais une image ce qui me permets de réécupérer facilement et sans erreur le lien vers ce document puis je fais la démarche du type «ajouter un lien» et j'insère l'adresse récupérée. C'est une gymnastique qui ne me prend pas trop de temps mais je ne peux pas demander ça à des collègues moins téméraires.

    Y aurait-il déjà une autre manière de faire qui m'aurait échappée ? Ou bien une modif est-elle possible ?

    Cordialement

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    mars 2020 modifié

    @AirW ,

    Dans le gestionnaire de médias, tu peux créer un ou plusieurs dossiers spécifiques pour stocker tes fichiers pdf.

    A droite des noms de fichiers, il y a une petite icône grisée en forme de retour-chariot qui permet de copier l'adresse du document dans le presse-papier. Il suffit ensuite de retourner dans TinyMCE, de créer un lien et de coller le contenu du presse-papier comme url ( touche Ctrl-V )

    L'icône est en réalité un caractère codé en UTF-8. Le choix n'est pas très pertinent. IL existe une entité HTML plus pertinente : "📋". Elle ressemble à cela : 📋

    dans le fichier core/admin/medias.php vers la ligne n° 218, il faut remplacer l'entité HTML "↵" par "📋". Même chose vers la ligne n°224.

    L'entité pour renommer le fichier pourrait être celle-ci "✎"

    Voir plus d'infos en cliquant ici

    Et ici

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Tu peux éventuellement regrouper tous tes fichiers dans un dossier et créer une page statique avec le contenu suivant.

    Il faut ajuster la variable

    <div class="scrollable-table">
       <table class="download full-width">
          <thead>
              <th>&nbsp;</th>
              <th>Name</th>
              <th>Date</th>
              <th>Size</th>
              <th>Description</th>
          </thead>
          <tbody>
    <?php
    
    $dir = 'download/';
    
    function byteConvert($bytes) {
       if ($bytes == 0) { return "0.00&nbsp;"; }
    
       $s = array('&nbsp;', 'K', 'M', 'G', 'T', 'P');
       $e = floor(log($bytes, 1024));
    
       return round($bytes/pow(1024, $e), 2).$s[$e];
    }
    
    # Récupération et affichage de la liste des fichiers sous forme de liste
    global $plxMotor;
    $root = PLX_ROOT.$plxMotor->aConf['medias'].$dir;
    $filename = $root.'.htaccess';
    $descriptions = array();
    if(file_exists($filename)) {
       if(preg_match_all('@^AddDescription\s+"([^"]+)"\s+(.+)$@m', file_get_contents($filename), $matches, PREG_SET_ORDER)) {
           foreach($matches as $capture) {
               $descriptions[$capture[2]] = $capture[1];           
           }
       }
    }
    $glob = plxGlob::getInstance($root);
    if ($files = $glob->query('/[\w-]+\.\w+$/')) {
       sort($files);
       foreach($files as $filename) {
          $href = $plxMotor->urlRewrite('?download/'.plxEncrypt::encryptId($dir.$filename));
          $ext = pathinfo($filename, PATHINFO_EXTENSION);
           $time = date('Y-m-d H:i', filemtime($root.$filename));
           $icon = '&nbsp;';
           $size = byteConvert(filesize($root.$filename));
           $description = (array_key_exists($filename, $descriptions)) ? $descriptions[$filename] : '';
          echo <<< TR
             <tr>
                 <td class="$ext">$icon</td><td><a href="$href">$filename</a></td><td>$time</td><td>$size</td><td>$description</td>
           </tr>\n
    TR;
       }
    }
    else {
    ?>
       <tr colspan="5"><td>Aucun document</td></tr>
    <?php
    }
    ?>
          </tbody>
       </table>
    </div>
    
  • AirWAirW Member

    @bazooka07

    Merci pour cette réponse plus que développée !

    Le pense que je vais m'en tenir à la 1ère solution que tu proposes. C'est encore un peu de gymnastique pour mes collègues un peu réticents mais on doit pouvoir s'en débrouiller.

    La modif de l'emoji me parait indispensable ne serait-ce que pour des raisons de lisibilité.

    Pour ce qui est de ton 2e message, j'ai testé dans une page statique mais je ne comprends pas bien ce que je devrais avoir. Je r'ai pas dû configurer correctement le chemin. : Je n'ai pas trop le temps d'aller plus loin pour l'instant.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    mars 2020 modifié

    Pour éviter à tes collègues de faire trop de gymnastique, il faudrait que tu modifies le fichier "plugins/tinyMCE/tinyMCE.js" en début de fichier comme suit :

    var myFile_picker_callback = function (callback, value, meta) {
    
       var params = {};
    
       switch(meta.filetype) {
          case 'file':
             params = {
                // title: "Insérer un lien pour un article publié",
                // url: 'index.php?sel=published',
                title: "Insérer un lien pour un document",
                url: 'medias.php',
                width: 850,
                height: 800
             };
             break;
    

    L'astuce consiste à remplacer "index.php?sel=published" par "medias.php". Même chose pour title.

    Par habitude, je préfère dupliquer les lignes d'origine en commenttant avec 2 barres obliques "//" en début de ligne et en modifiant la copie.

    Ainsi en cliquant sur l'icône de lien tu pourras ouvrir le gestionnaire de medias.

  • Bonjour,

    En juin de l'année dernière, j'avais trouvé très intéressant ce plugin pour la partie commentaires notamment mais n'avais jamais eu réponse à mon message. Est-ce pour des raisons de sécurité propres à pluxml que le code html n'est pas interprété sur les commentaires ?

    Bien à vous.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    @fred.lavoine

    Oui, c'est pour des questions de sécurité

    Ce n'est pas les balises HTML qui posent problème

    Une personne mal-intentionné pourrait déposer un script en Javascript pour espionner les frappes du clavier, les champs d'un formulaire et les envoyer sur un serveur inconnu.

    Pire ce serait d'ajouter un script en PHP qui s'exécuterait sur le serveur directement.

  • Dommage je trouve tellement sympathique et convivial ces petits boutons comme sur ce forum pour intégrer des images, une adresse, une mise en forme simple, etc.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    mars 2020 modifié

    Bonjour,

    J'ai envoyé un push-request (PR) sur Github pour avoir des icônes plus significatives dans le gestionnaire de médias

    Voir le PR

    De plus quand on renomme une image, la touche "entrée" valide le formulaire.

    Enjoy it !

  • cpalocpalo Member

    Bonsoir,

    ci-dessous une partie du code source de la page lorsque lorsqu'on est en édition article avec les messages d'erreur :

    <script type="text/javascript" src="http://mypluxml.local/plugins/tinyMCE/tinyMCE.js"></script>
        <script type="text/javascript" src="http://mypluxml.local/plugins/tinyMCE/tinymce/js/tinymce/tinymce.full.min.js"></script>
        <script type="text/javascript">
        tinymce.init({
            selector            : '#id_chapo, #id_content',
            plugins                : 'advlist anchor autolink autoresize autosave charmap code codesample contextmenu directionality emoticons fullscreen help hr image imagetools link lists media nonbreaking paste preview save searchreplace table template textcolor textpattern visualblocks visualchars wordcount',
            toolbar                :
                'save undo redo | bold italic styleselect ' +
                'alignleft aligncenter alignright alignjustify | ' +
                'bullist numlist outdent indent | ' +
                'link image media anchor emoticons | ' +
                'forecolor backcolor | ' +
                ' charmap visualchars fullscreen code codesample',
            // menubar            : 'insert tools restoredraft', // 2017-08-01
            images_reuse_filename    : true,
            file_browser_callback_types    : 'file image codesample',
            imagetools_toolbar    : 'rotateleft rotateright | flipv fliph | editimage imageoptions',
            image_advtab        : true,
            image_description    : true,
            image_title            : true,
            image_caption        : true,
            image_class_list    : [
                { title    : 'Aucune',            value    : ''           },
                { title    : 'Galerie n°1',    value    : 'lightbox-1' },
                { title    : 'Galerie n°2',    value    : 'lightbox-2' },
                { title    : 'Galerie n°3',    value    : 'lightbox-3' }
            ],
            media_alt_source        : false,
            paste_data_images        : true,
            save_onsavecallback        : saveDocument,
            file_picker_callback    : myFile_picker_callback,
            document_base_url        : 'http://mypluxml.local/',
            images_upload_url        : 'http://mypluxml.local/plugins/tinyMCE/postAcceptor.php',
            images_upload_base_path    : 'data/medias/',
            link_list                : [
                {
                    title    : 'Catégories',
                    menu    : [
                        { title: 'Rubrique 1', value: 'index.php?categorie1/rubrique-1' }
                    ]
                },
                {
                    title    : 'Mots clés',
                    menu    : [
                        { title: 'PluXml (1)', value: 'index.php?tag/pluxml' }
                    ]
                },
                {
                    title    : 'Pages statiques',
                    menu    : [
                        { title: 'Statique 1', value: 'index.php?static001/statique-1' }
                    ]
                }
    
            ],
    <br />
    <b>Warning</b>:  file(E:\htdocs\myPluXml\plugins\tinyMCEthemes/defaut/header.php): failed to open stream: No such file or directory in <b>E:\htdocs\myPluXml\plugins\tinyMCE\tinyMCE.php</b> on line <b>473</b><br />
    <br />
    <b>Warning</b>:  preg_grep() expects parameter 2 to be array, boolean given in <b>E:\htdocs\myPluXml\plugins\tinyMCE\tinyMCE.php</b> on line <b>473</b><br />
    <br />
    <b>Warning</b>:  array_values() expects parameter 1 to be array, null given in <b>E:\htdocs\myPluXml\plugins\tinyMCE\tinyMCE.php</b> on line <b>473</b><br />
    <br />
    <b>Warning</b>:  array_map(): Argument #2 should be an array in <b>E:\htdocs\myPluXml\plugins\tinyMCE\tinyMCE.php</b> on line <b>477</b><br />
    <br />
    <b>Warning</b>:  implode(): Invalid arguments passed in <b>E:\htdocs\myPluXml\plugins\tinyMCE\tinyMCE.php</b> on line <b>483</b><br />
            content_css                : [
                ''
            ],
            body_class                : 'container',
            language                : 'fr_FR',
            language_url            : 'http://mypluxml.local/plugins/tinyMCE/tinymce/js/tinymce/langs/fr_FR.js',
            style_formats            : [
    {title: 'Image Left', selector: 'img', styles: {'float': 'left', 'margin': '0 10px 0 10px'}},
    {title: 'Image Right', selector: 'img', styles: {'float': 'right', 'margin': '0 10px 0 10px'}},
    {title: 'centrer', selector: 'p', classes: 'center'},
    {title: 'Centrer blocs', selector: 'p, div', classes: 'center-blocks'},
    {title: 'N° lignes', selector: 'pre', classes:'line-numbers'}
            ],
            entities                :
                '160,nbsp,38,amp,34,quot,162,cent,169,copy,174,reg,' +
                '8482,trade,8240,permil,60,lt,62,gt,8804,le,8805,ge,' +
                '176,deg,8722,minus',
            paste_as_text            : true,
            nonbreaking_force_tab    : true
        });
        </script>
    
    
    
  • cpalocpalo Member

    Bonsoir

    Je viens de faire une installation complete de la 5.8.3 du 21 avril..
    Maintenant TinyMce ne se lance plus du tout lorsqu'on est dans la partie admin.
    Il ne s'affiche que lorsqu'on dans la partie visiteur lors de la saisie d'un commentaire.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    avril 2020 modifié
  • cpalocpalo Member

    Bonsoir
    Je viens de télécharger cette nouvelle version de PluXml et d'installer cette nouvelle version du plugin. C'est le seul plugin qui est installé. Mais Tinymce ne se lance toujours pas lorsqu'on veut éditer article ou autre.
    Est-ce que cela ne pourrait pas venir du premier warning ou TinyMce est collé à theme.


    Warning: file(E:\htdocs\myPluXml\plugins\tinyMCEthemes/defaut/header.php): failed to open stream: No such file or directory in E:\htdocs\myPluXml\plugins\tinyMCE\tinyMCE.php on line 473

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    il manque un slash '/' entre tinyMCE et themes.
    Mais le numéro de ligne ne correspond pas avec la dernière version de tinyMCE (2.3.0)
    Quelle version utilises tu ?

  • cpalocpalo Member

    Autant pour moi
    J'utilise bien la nouvelle version ( 2.3.0) mais j'ai recopié le message d'erreur de la précédente.
    C'est maintenant la ligne 483 qui est concernée par le warning.

  • cpalocpalo Member
    mai 2020 modifié

    Bonjour,
    Afin de cerner l'erreur, j'ai commenté les lignes 461 et 462 et remplacer à la main le fichier cible.
    Et cela fonctionne.
    ...
    //$themeRoot = preg_replace('@[^/]+/[^/]+$@', '', DIR).$this->plx_theme_folder;
    //$header_filename = $themeRoot.'/header.php';
    $header_filename = 'http://127.0.0.1/dvpts-PluXml/PluXml-master/themes/defaut/header.php'
    ...

  • cpalocpalo Member
    juillet 2020 modifié

    Je confirme..
    Si dans la configuration du plugin.. onglet css on coche l'option utiliser les feuilles de styles du thème cela ne fonctionne pas en local.problème du chemin qui n'est pas bien adressé.
    Par contre, l'édition des commentaires côté site ne fonctionne plus que cet onglet soit coché ou non. Cela fonctionnait encore avec la version 2.2.1 du 23 novembre 2019

  • cpalocpalo Member

    Bonjour,
    Lors de la saisie des articles ou des pages, la barre d'outils de l'éditeur ne reste pas "sticky" ce qui est génant pour saisir le contenu .
    A quel endroit du Css pour apporter cette modif?
    Cordialement

  • Bonjour,
    Je suis reparti à zéro avec la 5.8.7 master du 24/12/2021
    Trois plugins installés:
    kzCodeMirror 2.3.0 du 25/04/2020
    activé seulement pour les pages statiques
    TinyMce 2.3.0 du 21/04/2020
    pas activé pour les pages statiques
    utiliser le plugin extérieur CodeMirror activé
    kzSkinSelect 1.2.0 modifié le 21/02/2022 (si je le desactive, cela ne change rien)
    Lors de la rédaction d'une page statique, c'est bien CodeMirror qui s'ouvre
    Lors de l'édition d'un article c'est bien TinyMce qui s'affiche. Par contre si j'utilise le bouton code source, je passe bien en code source mais sans la coloration de CodeMirror

Connectez-vous ou Inscrivez-vous pour répondre.