jQuery UI

Ceci est une « contribution pédagogique », qui montre par l’exemple comment développer une nouvelle fonctionnalité pour SPIP.

Cette contribution est la continuité de jQuery UI pour SPIP mais pour SPIP 3.

Depuis SPIP3, jQuery UI est embarqué par défaut. Le plus grand changement est qu’il n’y a plus d’interface graphique dans l’espace privé pour activer des modules.

Comment faire :

Pour notre exemple, nous voulons activer datepicker ainsi que la traduction française (c’est aussi présent par défaut !!)

Méthode 1 : dans le fichier mes_options.php

Ce fichier se trouve dans le répertoire config. S’il n’y est pas, il faut le créer.
il suffit de rajouter ces lignes :

<?php
$GLOBALS['spip_pipeline']['jqueryui_plugins'] .= "|insert_jqueryui";
function insert_jqueryui($jqueryui_plugins) {
   $jqueryui_plugins[] = "jquery.ui.datepicker";
   $jqueryui_plugins[] = "i18n/jquery.ui.datepicker-fr";
   return $jqueryui_plugins ;
}
?>

Méthode 2 : Pour un plugin

  1. Dans le fichier paquet.xml, rajouter la déclaration au pipeline jqueryui-plugins
    1. <pipeline nom="jqueryui_plugins" inclure="prefix_pipelines.php" />
  1. Dans notre fichier prefix_pipelines.php, déclarons nos 2 modules
    function prefix_jqueryui_plugins($scripts){
       $scripts[] = "jquery.ui.datepicker";
       $scripts[] = "i18n/jquery.ui.datepicker-fr";
       return $scripts;
    }

Dernière modification de cette page le 27 juin 2012

Discussion

8 discussions

  • 2
    Webmaster Ayn

    Bonjour,

    Malgré mes recherches sur nénette, je ne trouve pas solution à mon souci.

    Depuis la mise à jour vers Spip 3.1.3, j’ai des soucis que je crois liés à des dysfonctionnement de JQueryUI :
    -  les diaporamas ne fonctionnement plus, ni en privé, ni en public (exemple)
    -  dans les formulaires, certains « gadgets » fonctionnement en privé, mais pas en public (calendrier pour choisir un date, blocs dépliables conditionnés par des réponses à certaines questions), d’autres ni en privé ni en public (blocs déplaçables en cliquer-glisser) (exemple)

    Il y a peut-être d’autres dysfonctionnements que je n’ai pas encore repérés.

    Ai-je raison d’attribuer ça à JQueryUI ?
    Et si oui, ben comment que je fais pour que tout refonctionne ?

    Merci pour vos lumières :)

    • Bonjour,

      Tout les plugins sont à jour ?
      Le cache et local on été vider suite à la mise à jour de spip ?

    • Webmaster Ayn

      Bonjour,

      Oui oui.
      J’ai refait une « vidange » par acquit de conscience, mais ça n’a pas réglé les problèmes.

    Répondre à ce message

  • 1

    Bonjour,

    En SPIP 3.1.1, c’est ceci qu’il faut mettre :

    1. $jqueryui_plugins[] = "jquery.ui.i18n/datepicker-fr";
    • Pierroy

      Bonjour,

      J’essaie d’utiliser les effets bounce et scale :

      $GLOBALS['spip_pipeline']['jqueryui_plugins'] .= "|insert_jqueryui";
      function insert_jqueryui($jqueryui_plugins) {
          $jqueryui_plugins[] = "jquery.ui.core" ;
          $jqueryui_plugins[] = "jquery.effects.core" ;
          $jqueryui_plugins[] = "jquery.effects.scale" ;
          $jqueryui_plugins[] = "jquery.effects.bounce" ;
          return $jqueryui_plugins ;
      }

      J’ai le sentiment que je n’ai pas la bonne syntaxe ... je vois que vous avez trouvé pour i18n ... une idée ?

      Pierre

    Répondre à ce message

  • 1

    Bonjour !
    Le forum a un petit bug donc j’essaye ici =D
    Je me demandais :
    1. C’est jQuery 1.7.3 qui est intégré à SPIP 3.0.11. Comment mettre ça à jour « porprement » et durablement ?
    2. Les fichiers jQuery UI « jquery.*.js » sont stokés dans un sous-répertoire de « prive/ », et néamoins appelé dans le public par le plugin jQuery UI. Est-ce normal ?
    3. L’installation de CFG ne permet apparament pas d’avoir une interface de gestion des jQuery UI sur SPIP 3.0. L’ajout ou la désactivation ne se fait donc que par pipeline, donc par un tiers plugin ou sur mes_options.php ?

    Merci d’avance pour ces quelques précisions ;-)
    A très vite

    • Charles S

      Salut Romain,

      1/ Dans ton dossier squelettes, créer un dossier javascript et met dedans un jquery.js contenant la version de jQuery que tu souhaites.
      2/ Oui
      3/ Oui depuis spin 3 jquery ui est de base dans spip. (plugins-dist)

    Répondre à ce message

  • Bonjour,
    Moi je cherche à changé la couleur de mes boite de dialog mais j’y arrive pas...Comment faire pour appeler le bon css ? Merci

    Répondre à ce message

  • Il faut d’abord activer « dialog » dans le fichier mes_options.php

    $GLOBALS['spip_pipeline']['jqueryui_plugins'] .= "|insert_jqueryui";
    function insert_jqueryui($jqueryui_plugins) {
       $jqueryui_plugins[] = "jquery.ui.dialog";
       return $jqueryui_plugins ;
    }

    En effet spip 3 ne charge pas par défaut tout le contenu de Jquery Ui sur chaque page !

    Répondre à ce message

  • Bonjour,

    Sous chrome et opéra (versions récentes), dans le plugin Formidable, le datepicker du champ date ne marche pas. Or j’ai l’impression que Formidable utilise le JqueryUI des plugins-dist pour ce faire

    Apparemment c’est lié à ces nouveaux champs html5 et l’interprétation qu’en font ces navigateurs : <input type="date" ...>
    Avec le débogueur du navigateur quand je change en type="text" : ça marche très bien.

    une piste pour solutionner cela
    http://tjvantoll.com/2012/06/30/creating-a-native-html5-datepicker-with-a-fallback-to-jquery-ui/

    par contre ne ne trouve pas ou introduire ce genre de correctif dans le code

    merci d’avance

    Répondre à ce message

  • Bonjour,

    pourriez vous poursuivre l’exemple et présenter une fonction simple qui pourrait être utilisée dans un squelette, par exemple :

    <script>
    $(function() {
    $( "#dialog" ).dialog('open');
    });
    </script>
    
    <div id="dialog" title="Basic dialog">
    <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
    <</div>

    il manque quelque chose au code ci dessus, mais quoi ?

    Répondre à ce message

  • 1

    bonjour,
    après un long moment à tout retourner pour comprendre pourquoi ça ne fonctionnait pas, je viens de m’apercevoir que c’est function et non fonction, comme cela est précisé dans l’exemple.

    merci pour ce plugin.

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom