kzCodemirror et chemins vers les scripts

Bonjour,

en modifiant l'administration avec un plugin, je n'arrive pas a charger codemirror sur les textareas .

J'ai ajouter leurs valeur de name dans app.js a la ligne 227, mais je ne vois pas comment mettre à jour les liens sur les pages chargées depuis le répertoire d'un plugin, à moins qu'il s'agisse d'un défaut de compatibilité entre plugin ?

Un indice ou un coup de pouce serait apprécier.

Cordialement,
GC


Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml

Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

Mots clés:

Réponses

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,

    Il faut te placer dans le dossier de kzCodemirror et exécuter le script update-codemirror.sh.
    En supposant que tu utilises Linux et en particulier Ubuntu.
    Il y a un certain nombre de pré-requis :

    • node
    • npm
    • require

    Au final main.js sera mis à jour.

  • Merci de ton retour.

    Okay, j'ai node.js et la commande npm dispo, require ? mais aussi sous win10 et laragon.

    Là ça me dépasse franchement. je vais laissé comme ça, jusqu'a ce que ça me parle un peu plus.

    Bon Week-end.
    GC


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Require.js est un auto-loader qui charge toutes les librairies Javascript nécessaires
    Doc pour les non anglophones
    Dans PluXml les <textarea> ont "content", "chapo", "backend" ou "frontend" comme valeur pour l'attribut "name".
    kzCodeMirror reconnait les <textarea> comme cela.
    Pour Windows, je compatis.

  • mars 2021 modifié

    Bonjour,

    je bugue toujours sur l'idée de recompiler main.js .:)

    sur deux plugin que je viens de faire, kzcodemirror ne touche pas aux textarea . L'un des plugins a une page de configuration , au lieu de rajouter dans app.js les name de ces textarea, je les ai renommés pour matché avec ceux existant dans le script, idem cela ne fonctionne pas sur cette page.

    Pour l'autre page , qui est la page article reprise et modifier uniquement au niveau de la récupération et affichage des catégories, la structure est la même et les liens vers les script dans le source fonctionnent (tous les liens sont bons, pas de fichiers non trouvés) malgré une url differente /plugins/categories/plg_article.php

    <link rel="stylesheet" type="text/css" href="../../core/admin/theme/plucss.css?v=5.8.6" media="screen" />
    <link rel="stylesheet" type="text/css" href="../../core/admin/theme/theme.css?v=5.8.6" media="screen" />
    <link rel="stylesheet" type="text/css" href="../../core/admin/theme/fonts/fontello.css?v=5.8.6" media="screen" />
    <link rel="icon" href="../../core/admin/theme/images/favicon.png" />
    <link rel="stylesheet" type="text/css" href="../../plugins/admin.css?d=19pq5" media="screen" />
    <script src="../../core/lib/functions.js?v=5.8.6"></script>
    <script src="../../core/lib/visual.js?v=5.8.6"></script>
    <script src="../../core/lib/mediasManager.js?v=5.8.6"></script>
    <script defer src="../../core/lib/multifiles.js?v=5.8.6"></script>
        <!-- le reste jusqu'au pied -->
    
        <script src="../../core/lib/drag-and-drop.js"></script>
       <script>
    setMsg();
    mediasManager.construct({
        windowName : "Gestion des médias",
        racine: "http://baseplg.gc/",
        urlManager: "core/admin/medias.php"
    });
    
    (function(query) {
    
        'use strict';
    
        function selectChangeEvt(event) {
            var option = this.options[this.selectedIndex];
            if(option.classList.contains('folder') && option.hasAttribute('data-level')) {
                var level = option.getAttribute('data-level') + 'X';
                var visibles = this.querySelectorAll('.visible[data-level^="' + level + '"]');
                visibles.forEach(function(item) {
                    item.classList.remove('visible');
                });
                var mySibling = option.nextElementSibling;
                while((mySibling != null) && (mySibling.getAttribute('data-level') == level)) {
                    mySibling.classList.add('visible');
                    mySibling = mySibling.nextElementSibling;
                }
                event.preventDefault();
            }
        }
    
        function checkFileOnly(event) {
            if(this.filesSelect != undefined) {
                // interdire la sélection des dossiers
                var option = this.filesSelect.options[this.filesSelect.selectedIndex];
                if(option.value.length == 0 || option.hasAttribute('data-folder')) {
                    alert("Veuillez choisir un fichier");
                    event.preventDefault();
                }
            }
        }
    
        var targets = document.querySelectorAll(query);
        if(typeof targets === 'array' && targets.length > 0) {
            targets.forEach(function(element) {
                if(element.options.length > 30) { <!-- Nombre minimum d'entrées de dossiers ou fichiers pour cacher l'arborescence des dossiers
                    element.addEventListener('change', selectChangeEvt);
                } else {
                    // Pas assez de fichier, on déplie tout (unfold)
                    element.classList.remove('fold');
                }
                if(element.classList.contains('data-files')) {
                    element.form.filesSelect = element;
                    element.form.addEventListener('submit', checkFileOnly)
                }
            });
        }
    })('select.scan-folders');
       </script>
    

    J'ai même pensé une seconde a me servir de l'url rewriting pour repositionner et renommer la page là ou se trouve normalement la page article.php , car aussitôt le plugin désactivé, cela fonctionne pour article.php mais toujours pas pour la page de configuration d'un autre plugin.

    Le plugin est ici si tu veut y jeter un oeil https://github.com/gcyrillus/plx-gc-categories . La seule modification apportée par le plugin est l'ajout de 2 attributs mother et daughterOf sur la balise <categorie> à la sauvegarde des catégories. Peut-être ais-je omis un truc essentiel.

    Si malgré tout, il faut refaire le fichier main.js (au risque de perturber le script ailleurs) je laisserais coulé.

    Le principe que j'essaie de suivre est de ne pas toucher a PluXml ni aux autre plugins comme je le faisais allégrement avec les v2,3et 4 de pluxml .

    Cdt,
    GC


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Quand une categorie n'a pas d'attribut "daugherOf" tu mets une chaine vide comme valeur par défaut .
    Dans plg_article.php $catMother se retrouve avec une chaine vide comme valeur mais tu compares cette valeur à '000' pour savoir si elle est orpheline. Quand ce test ne "matche" pas tu recherches une catégorie avec un id égal à une chaine nulle alors qu'il doit être une série de 3 chiffres. D'où un bug.

    Les header('Location: '...) n'ont aucun intérêt. Pire ils font une requête supplémentaire et inutile vers le serveur.

    Créer un dossier css pour les feuilles de style et un dossier lang pour les traductions pour être conforme aux standards de PluXml.

    J'ai mis les corrections sur Github branche bazooka07 :

    git clone -b bazooka07 https://github.com/kazimentou/plx-gc-categories.git
    

    Je n'ai pas tout tester. Il peut y avoir d'autres bugs qui trainent.

  • Bonsoir,

    oh grand merci de m'allumer la lumiere !

    $plgPlugin = $plxAdmin->plxPlugins->aPlugins['<?= __CLASS__ ?>'];
    include PLX_PLUGINS . '<?= __CLASS__ ?>/plg_categories.php';
    

    Comme c'est beau :) ... si c’était dans la doc, je la recopierait plein de fois ! Sinon , j'ai pas fini de m’inquiéter de la qualité de mon code et de l'ampleur de mon ignorance :)

    Pour ce qui est des bugs, dans ma todolist qui a du mal a rétrécir il y a(vait) principalement :
    - on activate <= devenu inutile suite a ton intervention et de belles corrections, sauf si a la désactivation du plugin les 2 attributs en plus se doivent d’être retiré pour être conforme aux standard de PluXml . Alors on activate/ondeactivate sont a remettre dans la liste en se posant la question que fait t'on de ses deux attributs ?
    - prévoir un systéme de sauvegarde pour éviter de tous reconfigurer après une désactivation passagère ou malencontreuse du plugin ?
    - édition de catégorie => ne pas réinitialiser les deux champs custom .... le prochain truc que je vais surement regarder
    - regrouper tout les style dans un seul fichier css
    - créer un fichier lang au moins français/anglais ( est ce que je garde les termes mère/fille/sœur pour décrire l'idée générale ? surement c'est mon fil.)

    • ...
      Je vais décrocher quelques jours, fin de mois et les repas de pâques vont bien m’occuper jusqu'à la semaine prochaine.

    Merci encore de ton aide, d'ailleurs, je devrais plutôt poster dans la section entraide.

    Bonne soirée/journée

    GC


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • @bazooka07 grâce a ton coup de pouce et conseils, j'ai modifié et avancé sur ma todo list. infos sur ce post croisé https://forum.pluxml.org/discussion/6932/plugin-categories-meres-filles-suite-dun-precedent-sujet#latest


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

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