SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 325 visiteurs en ce moment

Accueil > Outils pour plugins > SPIP Ajax > SPIP Ajax, ou se faciliter la vie dans l’admin

SPIP Ajax, ou se faciliter la vie dans l’admin

3 août 2009 – par Fabrizio

16 votes

Ce plugin propose un certain nombre de méthodes très simples, en ajax, à utiliser pour pouvoir récupérer des fonds , appeler des fonctions... dans l’admin de SPIP.

Grâce à une méthodologie javascript assez simple et un traitement en php original vous pourrez très facilement améliorer l’utilisation de méthodes ajax dans l’admin de SPIP.

L’article de présentation se veut très court car en même temps que vous pouvez télécharger ce plugin, vous pouvez également installer le plugin spip_ajax_demo qui contient plusieurs exemple ainsi qu’un descriptif des fonctionnalités du plugin spip_ajax.

SÉCURITE : pour faire face à des problèmes de sécurité importants le plugin spip_ajax doit être configuré. Tout d’abord les fichiers du répertoire inc du noyau de spip ne sont pas accessibles. Les autres fichiers inc/mon_fichier.php
ne sont accessibles que si les droits ont été ouverts sur ce répertoire. Pour cela il faut aller dans le fichier sa_pipeline.php (à la racine du plugin) et faire renvoyer par la fonction get_droit_spip_ajax le tableau contenant les autorisations.

Voici un exemple ci dessous :

function get_droit_spip_ajax(){
        return array("test"=>array("statut"=>"admin_restreint"),
                        "suite"=>array("statut"=>"aucun","allowed"=>"2,5"),
                       "essai"=>array("statut"=>"admin","allowed"=>"14,8")
                                );
}

Cela se comprend de la manière suivante : les fonctions de la page inc/test.php sont accessibles aux admin_restreint (et ceux qui ont plus de droits donc les admin également).
Le renseignement du statut est obligatoire , et il peut avoir comme valeur : tous, admin, admin_restreint , aucun.
La ligne suivante définit les droits sur le fichier inc/suite.php. Ici personne n’a de droits sauf pour les utilisateurs ayant les id_auteur 2 et 5 (on peux mettre autant de id que l’on souhaite en les séparant par une virgule). On peux également mixer les droits comme pour les droits du fichier ’essai’.

En installant ces 2 plugins vous devriez rapidement pouvoir maitriser spip_ajax. Le plugin de démo (ce plugin n’est pas à jour sur les questions de sécurité mais vous pouvez consulter la doc) rajoute également dans la partie édition de rubrique de l’admin de spip une petite fonctionnalité. Pour accéder à la démo voici le lien dans l’admin :
_ ?exec=spip_ajax_demo. (vous avez également un raccourci dans le menu ’Édition’).

Pour essayer de vous mettre en appétit je présenterai 2 petits exemples qui nécessitent le plugin spip_ajax. Ces exemples reprennent 2 cas présents sur le plugin de démo « spip_ajax_demo ».

- Exemple 1 : utiliser la méthode recuperer_fond de spip via l’ajax

Vous souhaitez par exemple dans la page d’accueil d’une rubrique connaître les différents auteurs ayant participé à cette rubrique. Pour que cela ne soit pas chargé d’office, un bouton va permettre d’afficher (via ajax ) la liste de ces auteurs.
-  Créez votre plugin en déclarant le pipeline ’affiche_droite’ et le pipeline ’header_prive’ dans votre fichier plugin.xml.
-  dans la fonction du plugin qui intercepte ’header_prive’ incluez le js qui va servir pour votre plugin, pour cet exemple le fichier js va se nommer monjs.js
-  dans la fonction du plugin qui intercepte ’affiche_droite’ renvoyez la présentation qui vous convient avec sur un élément html qui possède un évènement onclick. Par exemple onclick=’liste_auteur_rubrique()’. Et un élément DOM dont l’id (pour cet exemple mais vous êtes libre de votre choix) est ’liste_auteur_rubrique’
-  maintenant venons en au code javascript que vous placez dans monjs.js :

function liste_auteur_rubrique(){
        spip_ajax.req = {
                id_rubrique : spip_ajax.get("id_rubrique"),
                recup_fond :"liste_auteur_rubrique" ,
                args_fond : "id_rubrique",
                refresh : "#liste_auteur_rubrique",       
        }
        spip_ajax.ajax();
}

-  spip_ajax_reqest la ’requête’ qui va être envoyée côté serveur. C’est un objet javascript dont les propriétés sont dans notre cas id_rubrique, recup_fond,args_fond et refresh. id_rubrique va récupérer la valeur id_rubrique présente dans l’url. recup_fond indique que vous souhaitez récupérer le fond ’liste_auteur_rubrique’. Il s’agit ici d’un fond très simple avec 2 boucles imbriquées (présent dans le plugin de démo). args_fond indique l’(les) argument(s) que vous souhaitez passer à votre squelette, ici on souhaite passer l’id_rubrique , enfin refresh indique l’élément DOM qui va être mis à jour une fois le click effectué. Ici il s’agit de l’id ’liste_auteur_rubrique’.

-  spip_ajax.ajax() : est la fonction qui va envoyer cette requête ajax et qui effectuera le(les) traitement(s) . Ici on ’refresh’ un élément html , mais d’autres possibilités s’offrent à vous.

- Exemple 2 : appeler une fonction présente dans les répertoires ’inc’

exemple de code pour appeler une fonction située dans un plugin et dans le répertoire inc/suite.php . Dans ce répertoire copier/coller la fonction couper de spip.

/* On appelle la méthode couper de spip dans le fichier inc/suite.php */
function couper_demo(){
        spip_ajax.req = {
                val : $("#texte_couper").val(),
                taille : 60,
                fin : ' coucou <br>',
                inc :"suite" ,
                fct : "couper",
                args_fct : "val,taille,fin",
                append : "#resultat_couper"       
        }
        spip_ajax.ajax();
}

-  ici on récupère le texte dans la propriéte val, la propriété taille indique que l’on souhaite avoir les 60 premiers caractères et la propriété fin indique que l’on souhaite finir le texte par coucou et un retour à la ligne,. Ces arguments sont listés dans : args_fct
-  la propriété inc indique que nous avons besoin d’inclure le fichier inc/suite
-  la propriété fct indique que nous allons utiliser la fonction ’couper’ avec les arguments déclarés précédemment.
-  la propriété append indique qu’une fois le texte coupé récupéré on souhaite le rajouter à la fin de l’élément DOM dont l’id est ’resultat_couper’.

Conclusion

J’espère que ces 2 premiers exemples vous auront intéressé. Grâce au plugin spip_ajax_demo vous retrouverez ces 2 exemples ainsi que quelques autres. Vous avez également une documentation complète sur les fonctions de spip_ajax.
En espérant que cela vous aidera pour vos futurs développements.

En remerciant l’ensemble de la communauté spip pour l’ensemble de ses contributions.

P.-S.

Si vous avez des commentaires ou des avis cela sera avec grand plaisir. Et n’hésitez pas à me faire part de vos avis si vous utilisez ce plugin. Merci !!!

Dernière modification de cette page le 3 août 2009

Retour en haut de la page

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Mailsubscribers

    16 janvier 2013 – 274 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes (...)

  • noiZetier v2

    9 novembre 2012 – 36 commentaires

    Le noiZetier offre une interface d’administration permettant d’insérer au choix des éléments modulaires de squelettes (noisettes) et de les ajouter ainsi à ses squelettes. Compatibilité La version 2 du noizetier fonctionne sous SPIP 3. Elle est (...)

  • cirr : plugin « rédacteur restreint »

    29 octobre 2010 – 60 commentaires

    Ce plugin « cirr : rédacteur restreint » permet d’affecter des rubriques aux rédacteurs et modifie les droits afin qu’un rédacteur restreint (ou un administrateur restreint) voit dans l’espace privé uniquement les rubriques qui lui sont affectées (et leur (...)

  • Un retour d’expérience d’utilisation de Formidable

    26 octobre – commentaires

    Il s’agissait de créer un formulaire d’inscription à un évènement modérer les inscriptions dans le privé publier les inscriptions dans le public Nous avons discuté de cette présentation lors de l’apéro SPIP du 15 février 2016 à la Cantine (...)

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

Ça spipe par là