SpipService

Cette contribution surcharge des fichiers et/ou des fonctions de SPIP : il n’est donc pas garanti qu’elle fonctionne avec d’autres contributions surchargeant lesdits fichiers et/ou fonctions. Sa compatibilité avec les versions de SPIP est donc assez restreinte.

SpipService est un outil permettant d’actualiser un site Spip depuis n’importe quel environnement. Ce plugin permet à un service tiers de gérer le contenu du système via des services web (WebService).

« SpipService est une interface entre vous et le reste du monde... »

Une fois installé, imaginez toutes les possibilités qu’il vous offre... Les rédacteurs de votre site sont en constant mouvement, ils n’ont pas toujours un ordinateur branché sur la Toile à leur portée, mais ils ont leur Smartphone... Vous avez un blog, vous aimeriez qu’en l’actualisant, votre site Spip le soit aussi et sans dépendance. Les exemples sont multiples.

Évidemment il ne faut pas oublier que le meilleur environnement pour saisir du contenu reste l’interface privée de Spip. Ce plugin vous apportera des possibilités basiques mais il est développé sur un model évolutif.

Parlons maintenant des possibilités natives, oui « natives » car vous pourrez le faire évoluer très simplement mais on parlera de ça plus bas...

Voici donc la liste des services web acquis dès l’installation :

LECTURE :

  • search -> retourne le résultat d’une recherche de rubriques/articles/brèves (au moins 3 caractères)
  • getbystatut -> retournes les articles/brèves en fonction du statut demandé
  • getbyauteur -> retourne les articles de d’un auteur
  • getauteurloggedin -> retourne les informations sur l’utilisateur authentifié
  • getchildren -> retourne les rubriques/articles/brèves sous forme d’arbre (permet de parcourir le contenu du site)
  • getrubriquedata -> retournes les informations d’une rubrique
  • getarticledata -> retourne les informations d’un article
  • getbrevedata -> retourne les informations d’une brève
  • getdocumentdata -> retourne les informations d’un document
  • getarticledocuments -> retourne les documents d’un article
  • getbrevedocuments -> retourne les documents d’une brève
  • getrubriquedocuments -> retourne les documents d’une rubrique

ECRITURE :

  • setrubrique -> fixe les informations d’une rubrique
  • setarticle -> fixe les informations d’un article
  • setbreve -> fixe les informations d’une brève
  • setdocument -> fixe les informations d’un document
  • adddocumentrubrique -> ajoute un document à une rubrique
  • adddocumentarticle -> ajoute un document à un article
  • adddocumentbreve -> ajoute un document à une brève
  • institutearticle -> fixe le statut / date de publication d’un article
  • institutebreve -> fixe le statut / date de publication d’une brève
  • deletearticle -> supprime un article
  • deleterubrique -> supprime une rubrique
  • deletedocumentarticle -> supprime le document d’un article (simple dissociation sur Spip3)
  • deletedocumentbreve -> supprime le document d’une brève (simple dissociation sur Spip3)
  • deletedocumentrubrique -> supprime le document d’une rubrique (simple dissociation pour Spip3)
  • addlogobreve -> fixe le logo d’une brève
  • addlogorubrique -> fixe le logo d’une rubrique
  • addlogoarticle -> fixe le logo d’un article
  • deletelogobreve -> supprime le logo d’une brève
  • deletelogorubrique -> supprime le logo d’une rubrique
  • deletelogoarticle -> supprime le logo d’une brève

UTILITAIRES :

  • clearcache -> vide le cache du CMS
  • clearcacheimage -> vide le cache image du CMS
  • authentication -> vérifie que l’authentification est bonne et que le plugin est bien installé

Penchons-nous maintenant sur le fonctionnement du plugin...

Je vais faire une brève description, néanmoins vous trouverez toutes les informations dont vous avez besoin dans la documentation technique.

Pour appeler un service web, vous devez faire une requête HTTP vers votre site. Une fois cette requête reçue par le serveur, elle passe par l’authentification de Spip. Elle arrive ensuite jusqu’à SpipService. À ce moment, le plugin va chercher le service web demandé en fonction des paramètres de la requête et vous retournera ensuite une réponse.

Note : SpipService prend en charge la notion de permission (y compris celles du plugin Accès Restreint). Par exemple, si vous avez configuré votre CMS de manière à ce qu’il ne soit pas possible d’ajouter des brèves, le plugin ne le permettra pas et vous pourrez obtenir cette information dans les données d’une rubrique retournées par le service ’getrubriquedata’ par exemple.

Parlons des ouvertures de SpipService !

Vous avez développé le plugin Chat (en passant, bravo Matthieu Marcillaud pour La Fabrique, magnifique !). Vous gérez donc maintenant un nouvel objet (façon de parler) éditorial mais qui n’est pas pris en charge par SpipService.
Et bien vous n’aurez qu’à définir quelques fichiers dans le dossier inc/ de ce plugin et le tour est joué. Là encore vous trouverez la procédure complète dans la documentation technique.

Note : SpipService log dans une table SQL les actions effectuées (services d’écriture seulement), il est donc simple de savoir qui a fait quoi et quand. Cependant l’interface dans le back-office n’est pas encore implémentée, mais cela fait partie de la TODO Liste.

Ce plugin est un premier jet et demande évidemment des évolutions. Je vous invite donc à me faire remonter vos propositions, remarques, problèmes et améliorations.

J’espère qu’il vous ouvrira de nouvelles portes...

SpipService surcharge le fichier auth.php de Spip.

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

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