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

Suggestion en rapport avec "Exécution de commandes : formulaires et API"

Par rap • Suggestions • Vendredi 15/08/2008 • 4 commentaires  • Lu 4671 fois • Version imprimable

Note : 2.9/5 (35 notes)

Mots-clés : , , ,


J'ai une suggestion en rapport avec l'article Exécution de commandes : formulaires et API qui permettrait d'avoir un bon module de recherche. Je n'aime pas le module de recherche actuel car il affiche les articles en entier et je préférerais qu'il n'affiche que les titres. De plus je trouve l'idée d'afficher les résultats de recherche selon leur rubrique très bonne.

Le seul problème quand on utilise ce script pour les recherches,
<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>
c'est que l'on ne peut taper qu'un mot ou une expression telle qu'elle apparait dans le titre de l'article. On ne peut pas taper des mots clés comme dans une recherche Google, et par exemple si je voulais trouvé mon article en tapant "Suggestion exécution de commande", je ne le trouverais pas dans les résultats.

Ce qu'il faudrait donc c'est que la page execute.pl prenne chaque mot séparé par un espace et recherche les articles qui contiennent tous ces mot n'importe où dans leur titre. Elle transformerait alors le code par quelque chose comme ça :
[ [afficher les articles] ].[ [rubrique:actualités] ].[ [titre:$keyword1] ].[ [titre:$keyword2] ].[ [titre:$keyword3] ].[ [titre:$keyword4] ]

Pour ma requette ça donnerait 

$keyword1 = suggestion
$keyword2 = exécution
$keyword3 = de
$keyword4 = commande

Et on pourrait alors retrouver mon article ' Suggestion en rapport avec "Exécution de commandes : formulaires et API" '

Une dernière suggestion en rapport aux résultats : si aucun article n'est trouvé dans une rubrique, il faudrait alors afficher "Aucun article" -> Voir suggestion ici !

Cette suggestion a été adoptée par 35 utilisateurs :

  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • rap :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  
  • Visiteur :  

D'autres articles sur des thèmes similaires :

Les utilisateurs qui ont voté pour cette suggestion ont voté également pour :


Commentaires

Y a-t-il des javascripteurs dans la salle ? par Stephane le Vendredi 15/08/2008 à 17:01

Stephane Le plus simple ça serait de faire le découpage en javascript lors du onsubmit.


Re: Y a-t-il des javascripteurs dans la salle ? par rap le Vendredi 15/08/2008 à 17:02

rap Moi je sais pas faire ça !


Re: Y a-t-il des javascripteurs dans la salle ? par rap le Vendredi 22/08/2008 à 16:32

rap

J'ai des pistes, ca y est.

Tout d'abord il faut que tu place ce script sur la page execute.pl (en enlevant les espace entre les crochet bien sûr)) : 

<script type="text/javascript">
      function miseEnForme(chaine)
      {
        var lesMots = chaine.value.split(' ');
        var nouvelleChaine = '[ [afficher les articles] ].[ [titre:' + lesMots.join('] ].[ [titre:') + '] ]';
        document.getElementById('affiche').innerHTML = nouvelleChaine;
        return false;
      }
</script>

Ensuite il faut modifier la première ligne du formulaire par :

<form action="http://utilisateurs.viabloga.com/cgi-bin/execute.pl" method="post" onsubmit="return miseEnForme(this.keyword)">

Et enfin pour la commande d'affiche, il faut utiliser le code <div id="affiche"></div>


Re: Y a-t-il des javascripteurs dans la salle ? par rap le Samedi 13/09/2008 à 16:58

rap Le problème avec Javascript c'est que la page Perl ne peut pas récupérer la commande créée.

Ce mini script utilise la fonction Split qui existe aussi en Perl, tu pourrais surement réussir à prendre les mots séparés d'un espace avec et les placer entre les crochet.

Voir : http://www.jalix.org/ressources/programmation/perl/_initiation/init/split.html



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