[SPIP Zone] Plugin jquery_plugins (ex jquery_ui)

Bonjour,

Suite aux discussions sur le jet de plugin destiné à intégrer les librairies jquery.UI, j'ai modifié et renommé le plugin afin de pouvoir gérer autant de librairies jquery que souhaitées. Merci Fil et Cédric pour les idées.

Le nouveau plugin s'appelle jquery_plugins, dans le répertoire _test_

Il installe lors de son activation les librairies référencées dans plugin.xml (<necessite=lib:...), soit pour l'instant UI et Yav.

Il surcharge jquery.js.html et ajoute dedans un pipeline (Oui, je suis le premier à utiliser #PIPELINE !!!!!) nommé insert_jquery_plugins qui permet à jquery_plugins et à d'autres plugins éventuellement d'intégrer automatiquement des plugins jquery présents dans les librairies téléchargées.

Ajout d'un plugin jquery sur toutes les pages :
----------------------------------------------

Depuis jquery_plugins :
- aller sur la page CFG et cocher les plugins souhaités.

Depuis un autre plugin :
- Référencer dans plugin.xml le pipeline :
  <pipeline>
    <nom>insert_jquery_plugins</nom>
    <inclure>PREFIX_pipeline.php</inclure>
  </pipeline>
- dans le fichier PREFIX_pipeline.php (ajoute ui.mouse et ui.tabs) :
function PREFIX_insert_jquery_plugins($texte) {
  $texte .= jqueryp_add_plugins(array('ui.mouse','ui.tabs'));
  return $texte;
}

Ajout d'un plugin jquery sur un squelette particulier :
----------------------------------------------------

Utiliser la balise #JQUERY_PLUGIN{ui.tabs, ui.mouse}
Cette balise renvoie <script src="adresse_fichier_js"></script>

Eventuellement, référencer un lien css ou un thème présent dans une librairie (ui a 3 thèmes : dark, light et flora) avec :
#JQUERY_PLUGIN{flora} ou #JQUERY_PLUGIN{flora, tabs, x} (ajoute en plus flora.tabs.css, flora.x.css)
#JQUERY_PLUGIN{mon_theme.css} : ajoute un lien vers un squelette mon_theme.css.html

Attention : cette balise renvoie un <link rel="stylesheet" src="adresse_css" />, une balise qui ne devrait être présente que dans le <head>

On pourait aussi intégrer directement le css par un <style> avec le code css dedans. Là, ça irait aussi dans le body... je crois. A voir donc.

Ajout d'une librairie au plugin
--------------------------------
Il faut renseigner
- Plugin.xml avec <necessite id="lib:nom_du_dossier_cree_par_le_zip" src="adresse_du_zip" />
- jqueryp_options.php avec le nom de la librairie et le nom des fichiers js.

Le futur ?
----------

Donc, si vous avez des idées pour le plugin, des noms de librairies à ajouter dedans, dites le... ou faites le !

Avis aux contributeurs, n'hésitez pas !

MM.

Re !

Deux nouvelles extensions au programme : datePicker et easing.

Celles-ci ne s'installent pas grace à <necessite>, car elles sont livrées en dehors d'un zip. Il y a donc une petite installation, toujours automatique, lorsque l'on active le plugin, qui télécharge ces librairies là (généralement un seul fichier en fait par librairie)

Et sinon, j'oubliais, grâce à NicolasR, il y a une page sur Contrib :
http://www.spip-contrib.net/Plugin-jquery-plugins

Bien à vous,
MM.

Je tente d'utiliser ce plugin sans succès (pour l'instant).
Je suis en 1.9.2c est-il compatible ?

Impossible de configurer le plugin.

Dans cfg, je n'ai pas de bouton jquery plugin pour le configurer.

Quand j'accède à exec?cfg&cfg=jqueryp j'ai un message d'accès refusé je suis pourtant en admin complet du site.

Dans lib j'ai : jquery.datepicker, jquery.easing et jquery.syncheiht et c'est tout. Pas de jquery ui (je souhaite utiliser acordeon)

C'est peut être simplement à cause de la 1.9.2c ?

Merci de vos aides.

Laurent Casagrande
CRDP de Bourgogne - Dijon

Laurent Casagrande a écrit :

Je tente d'utiliser ce plugin sans succès (pour l'instant).
Je suis en 1.9.2c est-il compatible ?

Aucune idée, je n'ai pas testé :wink:
Pour l'instant : pas d'écriture en base, donc je suppose.

Impossible de configurer le plugin.

Dans cfg, je n'ai pas de bouton jquery plugin pour le configurer.

Quand j'accède à exec?cfg&cfg=jqueryp j'ai un message d'accès refusé je suis pourtant en admin complet du site.

Ah oui, là, c'est un autre problème...

C'est que j'ai configuré pour que seul les webmasters du site puissent le modifier... (c'est à dire l'auteur 1 par défaut, ou alors un auteur déclaré dans mes_options.php par :

Il faut mettre dans son config/mes_options.php
<?php

// webmestres
define('_ID_WEBMESTRES', '2'); // met l'auteur 2 en webmaster
#define('_ID_WEBMESTRES', '2:5:7'); // met les auteurs 2,5 et 7 en webmasters

?>

Je propose de laisser comme cela (uniquement webmestres). Mais si l'opinion générale est d'autoriser tous les admin généraux à modifier les plugins installés, pourquoi pas ? Qu'en pensez-vous ?

Dans lib j'ai : jquery.datepicker, jquery.easing et jquery.syncheiht et c'est tout. Pas de jquery ui (je souhaite utiliser acordeon)

Hum, pas de UI ni de Yav donc...
Le téléchargement automatique de lib zip est spécifique à la 1.9.3... Ca a été ajouté ici : http://trac.rezo.net/trac/spip/changeset/9781

Elle va bientôt sortir hihi... faut pas s'en faire :wink:
Plus sérieusement, est-ce que je propose une alternative pour 1.9.2 ?
Genre en utilisant 'chargeur' ? J'ai la flemme, mais je comprends le besoin (qui ne va pas durer, si si !)

C'est peut être simplement à cause de la 1.9.2c ?

Oui pour le fait que ui et yav n'ont pas été downloadées...

Merci pour ce retour. Je vais voir ce qu'il est possible de faire.

MM.

Laurent Casagrande a écrit :

Je tente d'utiliser ce plugin sans succès (pour l'instant).
Je suis en 1.9.2c est-il compatible ?

Pouvez-vous essayer la version 0.3 ?
J'ai ajouté un module pour la compatibilité avec 1.9.2 (mais je n'ai pas testé dessus)

N'oubliez pas _ID_WEBMESTRES à remplir dans mes_options...

Par ailleurs il y avait un bug : les librairies s'installaient à chaque hit (celles qui n'étaient pas livrées en zip)

MM.