jQuery UI

This is an « educational contribution » which shows, with concrete example, how to develop a new functionality for 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;
    }

updated on 27 June 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.

    Reply to this 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

    Reply to this 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)

    Reply to this 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

    Reply to this 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 !

    Reply to this 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

    Reply to this 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 ?

    Reply to this 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.

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom