S'identifier - S'inscrire - Ecrire un article - Contact

Exécution de commandes : formulaires et API

Par Stephane • Actualités • Dimanche 15/07/2007 • 9 commentaires  • Lu 5903 fois • Version imprimable

Mots-clés : , ,


Suite aux expériences de labo avec ses widgets, je me suis dit qu'on devrait pouvoir simplifier ce genre d'expériences en permettant d'exécuter des commandes du genre [ [afficher les articles ] ] sans nécessairement les mettre dans un texte.

J'ai donc ajouté un script execute.pl qui permet d'exécuter une commande passée en paramètres.

chemin: /cgi-bin/execute.pl

paramètres :
site_id : l'identifiant du site
title : le titre
command : la commande

title et command peuvent contenir des variables commençant par $. Ces variables sont remplacées par les paramètres correspondants dans la requête.

Exemple avec une URL qui affiche les articles contenant le mot-clé "gourou", avec le mot-clé passé dans un paramètre à part :
http://utilisateurs.viabloga.com/cgi-bin/execute.pl
?site_id=utilisateurs
&command=Articles%20du%20th%E8me%20$motcle%20:%3Cp%3E[ [afficher%20les%20articles] ].[ [$motcle] ]
&title=$motcle
&motcle=gourou


Le gros intérêt, c'est de pouvoir créer des formulaires de recherche personnalisés :
Rechercher par rubrique dans le titre des articles :
Le code du formulaire ci-dessus est :

<form method="post" action="http://utilisateurs.viabloga.com/cgi-bin/execute.pl">
<input type="hidden" name="site_id" value="utilisateurs" />
<input type="hidden" name="title" value="Articles contenant $keyword" />
<input type="text" name="keyword" size="10" />
<input type="hidden" name="command" value="<p>Résultat de votre recherche $keyword :</p>
Rubrique Actualités :
[ [afficher les articles] ].[ [rubrique:actualités] ].[ [titre:$keyword] ]
Rubrique Tutoriels :
[ [afficher les articles] ].[ [rubrique:tutoriels] ].[ [titre:$keyword] ]
Rubrique Aide :
[ [afficher les articles] ].[ [rubrique:aide] ].[ [titre:$keyword] ]
Rubrique Suggestions :
[ [afficher les articles] ].[ [rubrique:suggestions] ].[ [titre:$keyword] ]
Rubrique Echanges :
[ [afficher les articles] ].[ [rubrique:échanges et discussions] ].[ [titre:$keyword] ]" />
<input type="submit" />
</form>

Notez les espaces entre les [ [ : ils sont enlevés par execute.pl avant d'éxécuter la commande.

Une autre utilisation est en tant qu'API, en ajoutant &skin_file=public/print.html dans l'URL.

D'autres articles sur des thèmes similaires :


Commentaires

Oh la belle bleue ! par Jean-Luc le Dimanche 15/07/2007 à 18:42

Jean-Luc Là, c'est le feu d'artifice du 14 juillet !! Il faut phosphorer maintenant, ce n'est pas évident avec cette ambiance estivale...
Avant que je ne m'embarque dans mes explorations, est-ce que ce n'est pas une solution pour intégrer mes formulations où je veux dans le modèle ? Cela me semble bien l'issue, non ?


Question encore de syntaxe par Jean-Luc le Lundi 16/07/2007 à 13:30

Jean-Luc Quelle est la syntaxe pour faire passer les paramètres de .image(rubrique;image;auteur;date) dans cette commande ?


Re: Question encore de syntaxe par Stephane le Lundi 16/07/2007 à 14:36

Stephane
Les paramètres title et command doivent être encodés pour passer dans l'URL. Dans ta commande, il faut transformer les ; en %3B : commande.


Re: Question encore de syntaxe par Jean-Luc le Lundi 16/07/2007 à 14:48

Jean-Luc Merci beaucoup. Je me doutais que c'était une histoire d'encodage mais je n'ai pas pensé au point-virgule parce que les parenthèses passaient. En tout cas, je me suis empressé de blogmarker le lien pour les URL Escape Codes !

Et  puis c'était une façon de te rappeler mon autre demande d'assistance...


Re: Question encore de syntaxe par Fix le Lundi 16/07/2007 à 15:32

Fix La "commande" dans l'URL :

http://influenceurs.net/cgi-bin/execute.pl?site_id=influenceurs&command=
Nombre%20de%20jours%20:%20$jours%3Cp%3E[%20[afficher%20les%20articles]%20].
[%20[jours:$jours]%20].images(rubrique%3Bimage%3Bmage%3Bauteur%3Bdate)&title=
Derni%E8res%20propositions&jours=10

Si on remplace les gribouillis "%3B" (deux points ":") et "%20" (espace " ") :

http://influenceurs.net/cgi-bin/execute.pl?site_id=influenceurs&command=Nombre de jours : $jours%3Cp%3E[ [afficher les articles] ].[ [jours:$jours] ].images(rubrique:image:mage:auteur:date)&title=Derni%E8res propositions&jours=10


Si on remplace les hiéroglyphes "%3C" (inférieur à "<"), "%3E" (supérieur à ">"), et "%E8" (e accent grave "è") :

http://influenceurs.net/cgi-bin/execute.pl?site_id=influenceurs&command=Nombre de jours : $jours<p>[ [afficher les articles] ].[ [jours:$jours] ].images(rubrique:image:mage:auteur:date)&title=Dernières propositions&jours=10

Ça devient quasi compréhensible.
Un truc que je ne pige pas c'est "rubrique:image:mage:auteur:date". Que vient faire "mage" là-dedans ?



Re: Question encore de syntaxe par Jean-Luc le Lundi 16/07/2007 à 15:58

Jean-Luc Cela te permet de définir ce qui doit s'afficher dans la vignette et dans quel ordre, ici :

  1. la rubrique dans laquelle l'article a été publié
  2. la première image rencontrée sur cet article (ordre en cours de révision ?)
  3. la signature de l'auteur de l'article
  4. la date de création de l'article
Il faut vraiment qu'on se colle à rassembler dans un unique texte toute la grammaire gourique car je suis comme Labosonic : des fois je désespère de retrouver une syntaxe que je sais exister mais je ne sais plus où, parfois c'est dans un commentaire...


Re: Question encore de syntaxe par Jean-Luc le Lundi 16/07/2007 à 16:33

Jean-Luc Je viens seulement de comprendre ce qui te posait question. C'était effectivement une erreur de syntaxe. Je me suis permis de corriger directement. Pour la lecture "en clair" de la commande, il suffit de survoler le lien et de lire l'url en bas de la fenêtre du navigateur (en tout cas avec FF).


je vaisposer une question de naïve par Delphine le Lundi 23/07/2007 à 20:55

mais c'est quoi une API ?
et à quoi ça sert ?
et comment ça marche ?

(je sais je fait quasi que râler, mais j'essaye de penser comme un utilisateur moyennement initié qui souhaiterait comprendre...)
merci :)


Re: je vaisposer une question de naïve par Gabriel Ney le Jeudi 26/07/2007 à 19:48

Gabriel Ney

T'en sais certainement plus que moi sur le sujet :-)

http://fr.wikipedia.org/wiki/Interface_de_programmation  ou http://www.dicodunet.com/definitions/developpement/api.htm

Mais bon avec cela nous sommes gras re :-)

Donc quelques tuyaux non percés (c'est à dire sans commentaire hors contexte) et peut-être que l'on pourrait aller de l'avant.

Personnellement, je comprends vite, mais vous devez m'expliquer (longtemps).

:-)

Denis



Session

Pour participer plus facilement, ouvrez une session :

Identifiant de
mon blog
Nom d'utilisateur
Mot de passe

Si vous avez déjà un blog sur ViaBloga ou si vous avez ouvert un compte sur l'un d'entre eux, vous pouvez vous identifier avec votre nom d'utilisateur et mot de passe en précisant d'abord l'identifiant de votre blog.

S'inscrire

Discussions actives (+ commentaire)


Archives par mois