[Plugin] DnD_move

bazooka07bazooka07 PluXml Lead Developer, Moderator
novembre 2017 modifié dans Plugins
Bonjour,
Voici un nouveau plugin pour ceux qui sont encore sous PluXml 5.5 voire 5.4.

Il permet de modifier avec la souris l'ordre d'affichage ou de téléchargement des éléments suivants présentés en tableau dans le back-office de PluXml :
[list=*]
[*]plugins[/*]
[*]catégories[/*]
[*]pages statiques[/*]
[/list]

Pour cela, on utilise principalement un script Javascript en s'appuyant sur l'implémentation de drag-and-drop dans HTML5, le plugin étant assez simple par lui-même.

Télécharger la dernière version du plugin.

Il y a une vidéo de démonstration sur Youtube avec les 3 navigateurs suivants : Firefox, Chromium et Opéra, avec serveur sous Ubuntu 16.10 et Php 7.0.
J'ai également fait un essai avec PluXml 5.4 installé sur un orangePi-PC+ (Arrm V7) avec Armbian (Debian Jessie) et PHP 5.6.

Le plugin ne fonctionne pas ou mal avec la version actuelle de PluXml 5.6, les modifcations du code de ce dernier étant "trop intrusives" par rapport à la version précèdente.

Il semble d'ailleurs que le drag-and-drop de la version 5.6 ne marche pas avec Firefox.

Si vous souhaitez déplacer des objets avec la souris dans vos plugins,récupérez le script drag-and-drop.js et jetez un oeil sur le script PHP du plugin. C'est assez simple à utiliser.

Version 1.2.0 - 2017-11-25 : Optimisation codes PHP, js et règles CSS
Version 1.1.2 - 2017-09-23 : création des constantes de class SCRIPT_JS et PLX_PLUGINS_URL. Abandon de PLX_PLUGINS.
Version 1.1 - 2017-07-08: Compatibilité avec PluXml 5.6
Version 1.0 - 2017-06-19: 1ère version

Réponses

  • Bonsoir,
    si tu veux que ton script fonctionne avec Edge, il te faut rajouter l'instruction suivante :
    [== JavaScript ==]
    if (typeof NodeList.prototype.forEach === "undefined") {
            NodeList.prototype.forEach = Array.prototype.forEach;
    }
    
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Petite mise à jour :
    emploi des constantes de class : SCRIPT_JS et PLX_PLUGINS_URL.

    PLX_PLUGINS_URL remplace la constante PLX_PLUGINS et fournit l'adresse Url absolue pour le dossier des plugins.

    Si vous utilisez déjà le plugin sans souci, la mise à jour n'est pas nécessaire.

    @memento,
    Désolé mais je n'ai pas accueilli Window$ 10 chez moi et Edge ne semble pas fonctionner avec Windows 7 ni sur Android :D
    Et Edge n'est pas très populaire
  • Bonsoir Bazooka,
    Bazooka a écrit:
    Désolé mais je n'ai pas accueilli Window$ 10 chez moi et Edge ne semble pas fonctionner avec Windows 7 ni sur Android big_smile
    Et Edge n'est pas très populaire
    Ce n'est pas le sujet de ma remarque. Je pensai que tu aurais eu la curiosité de savoir pourquoi il fallait rajouter ces lignes de code. Ce n'est pas tant le fait que ton code ne fonctionne pas avec Edge mais plutôt le fait que ton code n'est pas correct du point de vue de la norme ECMAScript. Pour info, la méthode forEach n'existe que pour les objets de type Array et non pas pour les objets de type NodeList or, dans ton code, tu appliques cette fonction forEach à un objet de type Nodelist. Bien entendu, ça fonctionne sur les navigateurs sous Linux mais cela ne veut pas dire que c'est un gage de qualité car on sait très bien que les navigateurs implémentent les normes comme bon leur semble. Sur ce coup, c'est Edge le meilleur élève car plus proche de la norme.
    Cordialement.
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Il faudrait d'avoir savoir de quelle version d'ECMAScript on parle (ES6 ?).
    En général les normes ne font que valider des usages des meilleurs utilisateurs pour obliger les retardataires à se mettre au niveau ( nivellement des inégalités par le bas ) .

    Au final, mes références sont plutôt des sites comme MDN. Et NodeList dispose bien de la methode forEach :
    https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach
    Et Edge n'est pas le seul meilleur élève :D
    Ce n'est peut-être pas encore la norme, mais c'est largement appliqué.

    Evidemment, on retrouve le mauvais élève habituel :mad:

    Bonne soirée.
  • bazooka07bazooka07 PluXml Lead Developer, Moderator
    Mise à jour version 1.2.0
    Optimisation du code PHP et Javascript
    Suppression des règles CSS inline

    Testé sur :
    [list=*]
    [*]Firefox Quantum ( Marché déjà sur les versions précèdentes )[/*]
    [*]Chrome[/*]
    [*]Vivaldi[/*]
    [/list]


    Voir 1er post pour le lien de téléchargement
Connectez-vous ou Inscrivez-vous pour répondre.