forum.coppermine-gallery.net

Support => Français (French) => Language Specific Support => cpg1.3.x or older => Topic started by: François Keller on January 26, 2005, 10:31:47 pm

Title: Formulaire de recherche sur plusieurs mots clé (Mod)
Post by: François Keller on January 26, 2005, 10:31:47 pm
Bonjour à tous,

je viens de terminer une modification du fichier search.php (déjà modifié par Pyap pour l'affichage des mots clé)  afin de pouvoir faire une recherche sur plusieurs mots clé.
Vous pouvez voir le formulaire en fonctionnement sur mon site http://membres.lycos.fr/photosfrantz
Etant débutant en php, soyez indulgents, tout n'est pas encore parfait en ce qui concerne la mise en page entre autre. ;)
si certains d'entre vous sont interresés, je vous mets le code
Code: [Select]
<?php
// ------------------------------------------------------------------------- //
// Coppermine Photo Gallery 1.3.1 //
// ------------------------------------------------------------------------- //
// Copyright (C) 2002,2004 Gregory DEMAR <gdemar@wanadoo.fr> //
// http://www.chezgreg.net/coppermine/ //
// ------------------------------------------------------------------------- //
// This program is free software; you can redistribute it and/or modify  //
// it under the terms of the GNU General Public License as published by  //
// the Free Software Foundation; either version 2 of the License, or//
// (at your option) any later version. //
// ------------------------------------------------------------------------- //

//***************************************************************************//
//* Modifié par Frantz Janvier 2005 . . . *// 
//* this Mod/Hack deSEARCH.PHP, permets une recherche sur plusieurs mots clé !  *// 
//* EXEMPLE : http://http://membres.lycos.fr/photosfrantz/ *//
//***************************************************************************//
//*  Si vous rencontrez un problème avec Coppermine,  *//
//* n'hÃ(c)sitez pas Ã  visiter le Forum COPPERMINE EN FRANCAIS ci-dessous  *//
//*  http://forum.coppermine-gallery.net/index.php?board=38.0 *//
//*  MERCI   *//
//***************************************************************************//

define('IN_COPPERMINE'true);
define('SEARCH_PHP'true);

require(
'include/init.inc.php');

pageheader($lang_search_php[0]);

starttable("500"'<center>Etape N°1: Choixissez le type d\'association des mot sclé</center>');
//echo "" ;
error_reporting(E_ALL E_NOTICE);
?>


<form method="post" >
<tr><td class=tableb><p align=center>
 <input type="radio" name="typechoix"
 <?php if($_POST["typechoix"]==" AND ")
         echo 
"CHECKED";?>

value=" AND "><b>ET</b>
<input type="radio" name="typechoix"
 <?php if($_POST["typechoix"]==" OR ")
         echo 
"CHECKED";?>

value=" OR "><b>OU</b>
<br>
 
 


<?php
endtable
();
//echo "<br>";
// Select all keywords

$result mysql_query("select keywords from {$CONFIG['TABLE_PICTURES']}");
if (!
mysql_num_rows($result)) cpg_die(ERROR$lang_errors['non_exist_ap']);

// Find unique keywords
$keywords_array = array();


while (list(
$keywords) = mysql_fetch_row($result)) {
$array explode(" ",$keywords);
foreach(
$array as $word)
{
if (!
in_array($word,$keywords_array)) $keywords_array[] = $word;
}
}
starttable("500"'<center>Etape N°2: Sélectionnez les mots clé pour la recherche et Validez</center>');

?>


<?php
sort
($keywords_array);
$count count($keywords_array);
//echo "<br>";
echo "<center>$count Mots-Clef dans la base de données</center>";
// Result to table
echo "<tr><td class=\"keylink\"><p align=center>" ;
//affichage du choix d'association des mots clé
?>


<?php
// Affichage des mots clé avec checkbox
for ($i 1$i $count$i++) {
?>


<input type="checkbox" name="choix[]"
<? for ($k=0;$k<count($_POST["choix"]);$k++)
            if($keywords_array[$i]==$_POST["choix"][$k]) {
echo "CHECKED";
               break;
            } ?>
         value="<? echo $keywords_array[$i];?>"
      ><?php
echo "$keywords_array[$i];
}
?>

<br>
<input type="Submit" value="Validez">
<?php
echo"<br>";
if(
$_POST["choix"]) { ?>

   Vous avez choisi:
 
 <?php  for ($i=0;$i<count($_POST["choix"]);$i++)
       
$recherche=$recherche.$_POST["choix"][$i].$_POST["typechoix"];
  
  
  }
echo
"<b>";
echo 
$recherche;
echo 
"</b>";
  
?>

  </form>
  <?php
//echo "</p></td></tr>" ;
//endtable();
//Envoi pour la recherche
starttable("500""<center>Etape N°3: Cliquez sur le bouton \"ENVOYER\" pour lancer la recherche</center>");
echo <<< EOT
  <form method="get"  action="thumbnails.php">
<td colspan="8" align="center" class="tablef">
<br>
<input type="submit" name="Rechercher">
  </td>
 <input type="hidden" name="album" value="search">
 <input type="hidden" name="type" value="full">
<input type="hidden" name="search" value="
$recherche">


 </form>
EOT;
endtable();
pagefooter();
ob_end_flush();

?>
Title: Re: Formulaire de recherche sur plusieurs mots clé (Mod)
Post by: Pascal YAP on January 26, 2005, 11:15:59 pm
Frantz,

  Je vois bien où tu veux en venir....
Mais je teste d'entrée un petit bug.
Lorsque l'on valide plusieur mots, ceux-ci sont coller les un aux autres. Ainsi lorsque l'on recheche floreinsecteiguanecolonne la moteur de recherche truve rien, forcément !

Un petit guide d'utilisation serait le bienvenue, par expl :
1/ Cocher les mots de votre requète.
2/ Valider votre choix auprès de notre moteur avant de lancer votre requète
3/ Lancer votre requète

 çaõ bye

Pascal
Title: Re: Formulaire de recherche sur plusieurs mots clé (Mod)
Post by: François Keller on January 27, 2005, 07:49:35 am
Pascal,
Quote
Un petit guide d'utilisation serait le bienvenue, par expl :
Evidemment tu as raison   ;)
On oublie facilement, lorsque l'on fait quelque chose que les utilisateurs n'ont pas été dans la logique du développement avec nous  :-\\
Je m'en vais modifier ça au plus vite.
Je vais aussi essayer de l'internationaliser (mais ça c'est un autre problème)

Merci pour la remarque judicieuse
Title: Re: Formulaire de recherche sur plusieurs mots clé (Mod)
Post by: François Keller on January 28, 2005, 01:51:19 pm
Bonjour,

Voilà, j'ai modifier un peu la mise en page du module de recherche en y détaillant les étapes à suivre.
Le code du 1er message est le nouveau. Si vous voulez l'utiliser, il remplace celui du fichier serch.php
Title: Re: Formulaire de recherche sur plusieurs mots clé (Mod)
Post by: Pascal YAP on January 28, 2005, 02:27:54 pm
Frantz ,

 Le micro tutorial aide à la compréhension de ta recherche.
Pourtant, le fait de devoir cliquer deux fois n'est-il pas gèant ?
As-tu le moyen de combiner "Valider" et "Soumettre la requète" en un seul bouton ?

No Bug  (M$IE6;firefox)

Pascal
Title: Re: Formulaire de recherche sur plusieurs mots clé (Mod)
Post by: François Keller on January 28, 2005, 05:44:11 pm
Pascal,

Quote
As-tu le moyen de combiner "Valider" et "Soumettre la requète" en un seul bouton ?

C'est un problème que j'essaye de résoudre depuis pas mal d'heures, mais pour l'instant je n'ai pas encore trouvé. En effet, il y a deux formulaires dans le code et il faut valider le premier pour récuperer les données cochées avant d'envoyer la requete pour la recherche.

Je continue sur cette voie, mais comme je suis archi débutant en Php, ça rique de prendre un moment.

Bien entendu si quelqu'un à une idée je suis preneur. :)

A terme, j'aimerais pouvoir proposer une page de recherche avec plusieures possibilités de recherche:
Il y à un sujet en anglais la dessus que je suis en train de décortiquer pour essayer de trouver une solutioN

Je vous tiens au courrant