[Plugin] kzChamPlus: Des champs en plus dans: articles, pages, catégories, users - Gestion mots-clés

bazooka07bazooka07 PluXml Lead Developer, Moderator
février 2023 modifié dans Plugins

Bonjour,

Le plugin kzChamPlus est le successeur de chamPlus. Ses nouveautés sont

  1. Optimisation du code. Factorisation poussée pour l'injection de code
  2. ajout de champs pour l'édition des articles, pages statiques, catégories et utilisateurs
  3. 4 types de champs : texte, bloc-texte, média, oui/non
  4. utilisation du gestionnaire de médias. Zoom en cliquant sur l'aperçu du média
  5. placement individuel de chaque champ : en haut, en bas ou sur le côté de la page
  6. gestion des grilles PluCSS pour optimiser la largeur des champs
  7. filtrage puissant des articles pour ajouter ou supprimer des mots-clés et remplir les nouveaux champs dans un tableau
  8. possibilté d'importer la configuration du plugin ChamPlus. Supprimer ce dernier ensuite.
  9. Possibilité d'importer la configuration du plugin ChampArt et de dupliquer ses champs dans les articles pour utilisation avec le plugin kzChamPlus. (Sauvegarde recommandée au préalable)

Télécharger la dernière version de ce merveilleux plugin

  • 2022-02-02 - version 2.6.5 - FIx pour PluXml 5.10.0
  • 2021-05-12 - version 2.6.3 - Prise en compte de la catégorie home dans admin.php
  • 2021-05-10 - version 2.6.0 - Diverses corrections - Nouveau type de champs Oui/Non - Maj linguistiques
  • 2020-11-01 - version 2.5.0 - Hooks pour categories, profil, plxShowStaticListEnd
  • 2020-06-03 - version 2.4.0 - Optimisation hook kzChamPlus
  • 2020-05-25 - version 2.3.1 - Fixes
  • 2020-03-05 - version 2.2.4 - Fix pour pages statiques - Amélioration du fichier fr-help.php
  • 2020-02-22 - version 2.2.3 - fix bug introduit par PluXml-5.8 - Correction index pour un champ supplémentaire
  • 2020-01-15 - version 2.2.2 - ajout langues anglais et occitan
  • 2019-11-21 - version 2.2.0 voir billet du jour
  • 2019-11-18 - Publication de la version 2.1.0
«134

Réponses

  • Bonjour,

    Merci pour ton travail.

    Je vais donc le tester.. Il a l'air prometteur..

    Cordialement

  • Salut,

    Testé ce matin :)

    Premier constat : l'importation se passe très bien, aucune perte !

    Deuxième constat : à quoi sert le champ supplémentaire "Invite" ?

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Invite est la valeur de l'attribut placeholder dans la balise <input>

    Pour la grille CSS voir la doc de PluCSS et des exemples dans core/admin/*.php. Des valeurs possibles peuvent être pour 3 champs qui se suivent, par exemple :

    • sml-12 med-12 lrg-6
    • sml-12 med-6 lrg-3
    • sml-12 med-6 lrg-3

    les sommes de sml, med et lrg doivent être des multiples de 12 pour occuper toute la largeur de la page.

  • GzygGzyg Member
    novembre 2019 modifié

    OK merci. :)

    et je n'utilise pas PluCSS... ;)


    Sinon, pendant que j'y pense : as-tu prévu un moyen de garder déplié par défaut les champs ajoutés plutôt que d'utiliser le bouton Afficher/Masquer ?

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    😒 Moi aussi je me passerais bien de PluCSS. 😒

    C'est une antiquité qui utilise encore les "float: left" et qui n'a pas encore découvert les "display: flex" et "display: grid" autrement plus puissants.

    Mais PluXml se traine cela comme un boulet dans son back-office. Conséquence: la mise en page est très...très rigide.

    Pour le pliage des bloc-textes, je me suis inspité du chapô des articles. Cela se déplie automatiquement si le contenu n'est pas vide.

  • Je n'utilise pas non plus PluCss.

    Et là j'ai fini de mettre à jour mon mini framework perso avec entre autre Css Grid-Layout; Je finis l'intégration dans pluxml version 5.8 pour un theme par défaut utilisant css grid-layout. Cela ne devrait plus tarder pour que je le partage...

    Alors je vais peut être accélerer.

  • HarukaHaruka PluXml Project Manager

    On s'éloigne du sujet de cette conversation, mais un passage à grid-layout fait partir des choses que j'ai en tête pour PluCSS v2 et PluXml v6.

  • Bonjour,

    Tu as raison.. sourires.; revenons à nos moutons.

    Je viens de l'installer.. pas de soucis... je vais donc tester un peu plus.

    Petites précisions...

    • Emplacement c'est bien pour l'emplacement du champ de saisie dans le panneau d'administration?
    • J'ai créé un bloc-texte avec pied-article. Il s'affiche bien en-dessous de l'article lors de la saisie avec le lien afficher. Mais en cliquant sur le lien cela n'ouvre pas le placeholder pour la saisie du contenu du champ
    • la colonne groupe, je suppose que c'est pour regrouper plusieurs champs. Mais dans l'administration ou sur la page web?

    Sinon agréable l'apparence de l'interface.

    Cordialement

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Petite mise à jour:

    • Lorsque le plugin n'est pas encore activé, on peut ajouter des champs à la volée dans le panneau de config
    • controle de la saisie pour la colonne "grille CSS" pour être conforme à PluCSS
    • ajustement de min-width dans <th> pour le tableau du panneau de config
    • prise en compte de l'attribut placeholder pour la balise <textarea>. Voir kzChamPlus::printArea()

    Version 2.2.0

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    novembre 2019 modifié

    Ok pour emplacement

    pour le placeholder dans <textarea>, plxUtils::textArea() ne le prend pas en compte et est bogué. J'ai donc ajouté une fonction au plugin pour corriger ce problème :

    public function printArea($name, $value='', $cols=false, $rows=false, $readonly=false,
         $class=false, $extras = false
    ) {
        $attrs = array(
            'id="id_' . $name . '"',
            'name="' . $name . '"'
        );
        if(!empty($cols) and is_integer($cols)) { $attrs[] = 'cols="' . $cols . '"'; }
        if(!empty($rows) and is_integer($rows)) { $attrs[] = 'rows="' . $rows . '"'; }
        $classList = array();    if($readonly === true) { $classList[] = 'readonly'; }
        if(!empty($class) and is_string($class) and strlen(trim($class)) > 0) {
            $classList[] = trim($class);
        }
        if(!empty($classList)) { $attrs[] = 'class="' . implode(' ', $classList) . '"'; }
        if(is_string($extras)) { $attrs[] = $extras; }
        echo '';
    }
    

    Pour le groupe, cela m'avait été demandé pour chamPlus mais je ne me rappelle plus la raison.

    L'intérêt n'est pas trop évident et c'est compliqué à gérer. Je verrai plus tard.

  • Hello :)

    Problème sur un PluXml tout neuf : je ne peux enregistrer que deux champs supplémentaires !

    Le dernier champ enregistré prend sytématiquement la place de l'avant-dernier quelque soit le choix de l'emplacement (pied, tête, article, page).

    ¿ Que pasa ?

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
  • Ha, non... j'étais resté sur la 2.1... je refais l'install et je reviens te dire. :)

  • Bon, ben ça ne change rien : seulement deux nouveaux champs possibles. :(

    (testé sur trois PluXml plus ou moins avancés dans leur configuration - tous en 5.7 :

    • un vierge
    • un sans plugin
    • un complet

    même résultat.

    Peut-être la config de mon apache ? À quel niveau ?

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Non, je ne pense pas que Apache soit en cause. Cela vient plus de PHP ou de Javascript.

    Je travaille avec Ubuntu 18.04 LTS à jour et avec ceci

    • PluXml version 5.7 (encodage UTF-8)
    • Version de PHP : 7.2.24-0ubuntu0.18.04.1
    • Apache/2.4.29 (Ubuntu)
    • Firefox Browser 70.0.1 64bits

    Donne moi ta config.

    Tu peux regarder les logs d'erreur de Apache et dans la console javascript de ton navigateur.

    Je vais faire des essais sous Debian et Chrome.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Pas de souci avec Chrome

    Version 78.0.3904.108 (Build officiel) Built on Ubuntu , running on Ubuntu 18.04 (64 bits)

    Petites remarques :

    • Je règle la config quand le plugin est désactivé
    • on peut trier les champs une fois qu'ils sont créés avc la souris comme pour les catégories
    • Je ne renseigne pas les libellés. Le plugin le fait tout seul s'ils sont vides. On peut le corriger ensuite.
  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Pas de souci avec Debian :

    • PluXml version 5.7 (encodage UTF-8)
    • Version de PHP : 7.3.11-1~deb10u1
    • Apache/2.4.38 (Debian)
    • Firefox Quantum
    • 68.2.0esr (64bits)
  • Donc c'est un bug de mon cerveau... et là, ça va être plus compliqué à corriger ! :D

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Si je n'arrive pas à reproduire le bug, cela sera difficile de l'éliminer.

    Tu as bien cliqué sur le bouton "ajouter un champ" en haut de l'écran ?

  • Oui, j'ai appliqué la même procédure qu'avec le dernier plugin chamPlus qui fonctionnait bien (au moins me permettait-il plusieurs champs).

    Je vais investiguer de mon côté mais je ne sais pas trop par où commencer...

    Est-ce que le plugin "enregistre" ou peut "enregistrer" chaque étape de sa procédure pour voir à quel moment il décide de remplacer un champ existant par le tout dernier créé ?

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Le plugin ne remplace pas un champ existant sauf si tu le renommes dans le panneau de config.

    Tu peux jeter un œil dans le fichier data/configuration/plugins/kzChamPlus.xml

    • T'es sous Windows ?
    • Quelle version de PHP as-tu ?
    • As-tu activé le plugin ?
  • C'est pourtant ce qui se passe visuellement dans la partie admin -> configuration du plugin : j'enregistre deux champs, tout va bien, le troisième est bien créé et remplace le deuxième. Systématiquement.

    Je suis sous Linux (openSUSE) avec PHP 7.2.5.

    Plugin activé, oui.

  • Quelques captures d'écran :

    premier screen : plugin activé

    deuxième screen : deux champ créés

    troisième screen : création du troisième

    quatrième screen : résultat après enregistrement

    cinquième screen : contenu du fichier data/configuration/plugins/kzChamPlus.xml




  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    novembre 2019 modifié

    Aïe! J'ai testé brièvement Opensuse il y a longtemps. Et je ne connais pas trop son gestionnaire de paquets

    Peux-tu refaire ton essai en modifiant le fichier plugins/kzChamPlus/config.php comme ci-dessous, avec la ligne error_log et suivantes, pour enregistrer dans le fichier data/articles/kzChamPlus.log ce qu'envoie le formulaire

    if(filter_has_var(INPUT_POST, 'name')) {
       error_log(
           date('Y-m-d H:i') . PHP_EOL . '$_POST = ' . print_r($_POST, true),
           3,
           PLX_ROOT . $plxAdmin->aConf['racine_articles'] . $plugin . '.log'
       );
       $reqs = array();
    

    Et donne moi le contenu du fichier kzChamPlus.log à la fin

    Tu utilises quoi comme navigateur ?

  • J'utilise essentiellement Firefox (68.2.0esr) mais c'est pareil avec Chromium, Opera et Vivaldi.


    Le résultat du fichier log :


    2019-11-24 23:17
    $_POST = Array
    (
       [token] => 224c1d29ebfc12c6ae1a4d6550e5861e787f41be
       [name] => Array
           (
               [2] => articledisclaimer
               [1] => articlesubtitle
           )
    
       [label] => Array
           (
               [2] => Avant-propos pour cet article
               [1] => Sous-titre pour cet article
           )
    
       [entry] => Array
           (
               [2] => 1
               [1] => 3
           )
    
       [order] => Array
           (
               [2] => 
               [1] => 2
           )
    
       [place] => Array
           (
               [2] => 3
               [1] => 2
           )
    
       [invite] => Array
           (
               [2] => 
               [1] => 
           )
    
       [grid] => Array
           (
               [2] => 
               [1] => 
           )
    
       [group] => Array
           (
               [2] => 
               [1] => 
           )
    
    )
    


  • Bon, c'est bien chez moi que ça ne va pas, d'autres plugins sont également capricieux. :)

    Désolé pour le dérangement.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,

    J'ai installé sur une partition du disque dur de mon PC Opensuse Leap 1.5 en début de semaine. Puis PluXml avec le plugin kzChamPlus. Aucun souci d'utilsation par localhost ou par l'interface en réseau local.

    Par contre, j'ai essayé une installation sur un Raspberry Pi en mode headless dans un terminal. Si les fichiers PHP étaient bien interprétés et envoyés correctement, les fichiers CSS et Javascript étaient envoyés vides avec un code 200. Je n'a pas trouvé pourquoi. Mais j'ai laissé tombé car je ne connais pas très bien Opensuse et que le Raspberry était lent comparé à un Rock64.

    Vérifie la taille des fichiers CSS et Javascript avec l'inspecteur de code de ton navigateur dans l'onglet réseau.

  • Accessoirement, ça ne fonctionne pas non plus avec la 5.8-dev mais différemment :

    • il est maintenant possible de créer tous les champs qu'on veut ;
    • les champs de type "bloc" refuse de s'ouvrir une fois créé (lien Afficher) ; le même lien pour le chapô fonctionne très bien.

    Voilà, voilà... :)

  • RubénRubén Member
    janvier 2020 modifié

    Hello, voici la traduction en occitan du plugin :

    Oups, nouvelle version sans les fautes de frappe

    Penser à rétablie le .php et non .txt !

  • bazooka07bazooka07 PluXml Lead Developer, Moderator
Connectez-vous ou Inscrivez-vous pour répondre.