Subversion Repositories Applications.bazar

Rev

Rev 125 | Rev 127 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 125 Rev 126
Line 17... Line 17...
17
// |                                                                                                      |
17
// |                                                                                                      |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
18
// | You should have received a copy of the GNU Lesser General Public                                     |
19
// | License along with this library; if not, write to the Free Software                                  |
19
// | License along with this library; if not, write to the Free Software                                  |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
20
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                            |
21
// +------------------------------------------------------------------------------------------------------+
21
// +------------------------------------------------------------------------------------------------------+
22
// CVS : $Id: bazar.fonct.rss.php,v 1.48 2006-05-17 09:50:13 alexandre_tb Exp $
22
// CVS : $Id: bazar.fonct.rss.php,v 1.49 2006-05-19 13:54:11 florian Exp $
23
/**
23
/**
24
* 
24
* 
25
*@package bazar
25
*@package bazar
26
//Auteur original :
26
//Auteur original :
27
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
27
*@author        Alexandre GRANIER <alexandre@tela-botanica.org>
28
*@author        Florian Schmitt <florian@ecole-et-nature.org>
28
*@author        Florian Schmitt <florian@ecole-et-nature.org>
29
//Autres auteurs :
29
//Autres auteurs :
30
*@copyright     Tela-Botanica 2000-2006
30
*@copyright     Tela-Botanica 2000-2006
31
*@version       $Revision: 1.48 $
31
*@version       $Revision: 1.49 $
32
// +------------------------------------------------------------------------------------------------------+
32
// +------------------------------------------------------------------------------------------------------+
33
*/
33
*/
Line 34... Line 34...
34
 
34
 
35
// +------------------------------------------------------------------------------------------------------+
35
// +------------------------------------------------------------------------------------------------------+
Line 46... Line 46...
46
*
46
*
47
* @return   mixed  tableau contenant les champs du fichier template
47
* @return   mixed  tableau contenant les champs du fichier template
48
*/
48
*/
49
function baz_valeurs_template($valeur_template) {
49
function baz_valeurs_template($valeur_template) {
50
	//Parcours du fichier de templates, pour mettre les champs spécifiques
50
	//Parcours du fichier de templates, pour mettre les champs spécifiques
-
 
51
	$tableau= array();
51
	$nblignes=0;
52
	$nblignes=0;
52
	$chaine = explode ("\n", $valeur_template);
53
	$chaine = explode ("\n", $valeur_template);
53
	array_pop($chaine);
54
	array_pop($chaine);
54
	foreach ($chaine as $ligne)  {
55
	foreach ($chaine as $ligne)  {
55
		$souschaine = explode ("***", $ligne) ;
56
		$souschaine = explode ("***", $ligne) ;
Line 521... Line 522...
521
* @param   string Le type de l'annonce (laisser vide pour tout type d'annonce)
522
* @param   string Le type de l'annonce (laisser vide pour tout type d'annonce)
522
* @param   integer Le nombre d'annonces a regrouper dans le fichier XML (laisser vide pour toutes)
523
* @param   integer Le nombre d'annonces a regrouper dans le fichier XML (laisser vide pour toutes)
523
* @param   integer L'identifiant de l'emetteur (laisser vide pour tous)
524
* @param   integer L'identifiant de l'emetteur (laisser vide pour tous)
524
* @param   integer L'etat de validation de l'annonce (laisser 1 pour les annonces validees, 0 pour les non-validees)
525
* @param   integer L'etat de validation de l'annonce (laisser 1 pour les annonces validees, 0 pour les non-validees)
525
* @param   string La requete SQL personnalisee
526
* @param   string La requete SQL personnalisee
-
 
527
* @param   integer La categorie des fiches bazar
526
*
528
*
527
* @return  string Le code du flux RSS
529
* @return  string Le code du flux RSS
528
*/
530
*/
529
function gen_RSS($typeannonce='', $nbitem='', $emetteur='', $valide=1, $requeteSQL='', $requeteSQLFrom = '', $requeteWhereListe = '') {
531
function gen_RSS($typeannonce='', $nbitem='', $emetteur='', $valide=1, $requeteSQL='', $requeteSQLFrom = '', $requeteWhereListe = '', $categorie_nature='') {
530
	// generation de la requete MySQL personnalisee
532
	// generation de la requete MySQL personnalisee
531
	$req_where=0;
533
	$req_where=0;
532
	$requete = 'SELECT DISTINCT bf_id_fiche, bf_titre, bf_date_debut_validite_fiche, bf_description '.
534
	$requete = 'SELECT DISTINCT bf_id_fiche, bf_titre, bf_date_debut_validite_fiche, bf_description '.
533
				'FROM bazar_fiche, bazar_nature '.$requeteSQLFrom.' WHERE '.$requeteWhereListe;
535
				'FROM bazar_fiche, bazar_nature '.$requeteSQLFrom.' WHERE '.$requeteWhereListe;
534
	if ($valide!=2) {
536
	if ($valide!=2) {
Line 583... Line 585...
583
	if ($requeteSQL!='') {
585
	if ($requeteSQL!='') {
584
		if ($req_where==1) {$requete .= ' AND ';}
586
		if ($req_where==1) {$requete .= ' AND ';}
585
		$requete .= '('.$requeteSQL.')';
587
		$requete .= '('.$requeteSQL.')';
586
		$req_where=1;
588
		$req_where=1;
587
	}
589
	}
-
 
590
	if ($categorie_nature!='') {
-
 
591
		if ($req_where==1) {$requete .= ' AND ';}
-
 
592
		$requete .= 'bn_ce_id_menu='.$categorie_nature.' ';
-
 
593
		$req_where=1;
-
 
594
	}
-
 
595
	
588
	$requete .= ' ORDER BY  bf_date_debut_validite_fiche DESC, bf_date_fin_validite_fiche DESC, bf_date_maj_fiche DESC';
596
	$requete .= ' ORDER BY  bf_date_debut_validite_fiche DESC, bf_date_fin_validite_fiche DESC, bf_date_maj_fiche DESC';
589
	if ($nbitem!='') {$requete .= ' LIMIT 0,'.$nbitem;}
597
	if ($nbitem!='') {$requete .= ' LIMIT 0,'.$nbitem;}
590
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
598
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
591
	if (DB::isError($resultat)) {
599
	if (DB::isError($resultat)) {
592
		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
600
		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
Line 642... Line 650...
642
function baz_liste($typeannonce='toutes') {
650
function baz_liste($typeannonce='toutes') {
643
	//creation du lien pour le formulaire de recherche
651
	//creation du lien pour le formulaire de recherche
644
	$GLOBALS['_BAZAR_']['url']->addQueryString('action', BAZ_VOIR_TOUTES_ANNONCES);
652
	$GLOBALS['_BAZAR_']['url']->addQueryString('action', BAZ_VOIR_TOUTES_ANNONCES);
645
	$lien_formulaire = preg_replace ('/&amp;/', '&', $GLOBALS['_BAZAR_']['url']->getURL()) ;
653
	$lien_formulaire = preg_replace ('/&amp;/', '&', $GLOBALS['_BAZAR_']['url']->getURL()) ;
646
	$formtemplate = new HTML_QuickForm('formulaire', 'post', $lien_formulaire) ;
654
	$formtemplate = new HTML_QuickForm('formulaire', 'post', $lien_formulaire) ;
647
	$squelette = &$formtemplate->defaultRenderer();
655
	$squelette =& $formtemplate->defaultRenderer();
648
	$squelette->setFormTemplate("\n".'<form{attributes}>'."\n".'<ul style="padding:0;margin:0;">'."\n".
656
   	$squelette->setFormTemplate("\n".'<form {attributes}>'."\n".'<table style="border:0;width:100%;">'."\n".'{content}'."\n".'</table>'."\n".'</form>'."\n");
-
 
657
    $squelette->setElementTemplate( '<tr>'."\n".'<td style="font-size:12px;width:120px;text-align:right;">'."\n".'{label}'.
-
 
658
    		                        '<!-- BEGIN required --><span class="symbole_obligatoire">&nbsp;*</span><!-- END required -->'."\n".
-
 
659
    								' :</td>'."\n".'<td style="text-align:left;padding:5px;"> '."\n".'{element}'."\n".
-
 
660
                                    '<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
649
								'{content}'."\n".'</ul>'."\n".'</form>'."\n");
661
                                    '</td>'."\n".'</tr>'."\n");
-
 
662
 	$squelette->setElementTemplate( '<tr>'."\n".'<td colspan="2" class="liste_a_cocher"><strong>{label}&nbsp;{element}</strong>'."\n".
-
 
663
                                    '<!-- BEGIN required --><span class="symbole_obligatoire">&nbsp;*</span><!-- END required -->'."\n".'</td>'."\n".'</tr>'."\n", 'accept_condition');
650
	$squelette->setElementTemplate( '<li class="enligne">'."\n".'{element}'."\n".'</li>'."\n");
664
  	$squelette->setElementTemplate( '<tr><td colspan="2" class="bouton">{label}{element}</td></tr>'."\n", 'valider');
-
 
665
  	  	
-
 
666
 	$squelette->setRequiredNoteTemplate("\n".'<tr>'."\n".'<td colspan="2" class="symbole_obligatoire">* {requiredNote}</td></tr>'."\n");
-
 
667
	//Traduction de champs requis
-
 
668
	$formtemplate->setRequiredNote(BAZ_CHAMPS_REQUIS) ;
-
 
669
	$formtemplate->setJsWarnings(BAZ_ERREUR_SAISIE,BAZ_VEUILLEZ_CORRIGER);	
-
 
670
	
Line 651... Line 671...
651
		
671
		
652
	//cas du formulaire de recherche proposant de chercher parmis tous les types d'annonces 
672
	//cas du formulaire de recherche proposant de chercher parmis tous les types d'annonces 
653
	//requete pour obtenir l'id et le label des types d'annonces
673
	//requete pour obtenir l'id et le label des types d'annonces
654
	$requete = 'SELECT bn_id_nature, bn_label_nature '.
674
	$requete = 'SELECT bn_id_nature, bn_label_nature '.
655
	           'FROM bazar_nature WHERE bn_ce_id_menu='.$GLOBALS['_BAZAR_']['filtre'].' '.
675
	           'FROM bazar_nature WHERE bn_ce_id_menu='.$GLOBALS['_BAZAR_']['categorie_nature'].' '.
656
			   'ORDER BY bn_label_nature ASC';
676
			   'ORDER BY bn_label_nature ASC';
657
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
677
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
658
	if (DB::isError($resultat)) {
678
	if (DB::isError($resultat)) {
659
		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
679
		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
-
 
680
	}
-
 
681
	//on récupère le nb de types de fiches, pour plus tard
660
	}
682
	$nb_type_de_fiches=$resultat->numRows();
661
	$type_annonce_select['toutes']=BAZ_TOUS_TYPES_FICHES;
683
	$type_annonce_select['toutes']=BAZ_TOUS_TYPES_FICHES;
662
	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
684
	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
663
		$type_annonce_select[$ligne['bn_id_nature']] = $ligne['bn_label_nature'];
685
		$type_annonce_select[$ligne['bn_id_nature']] = $ligne['bn_label_nature'];
664
		$tableau_typeannonces[] = $ligne['bn_id_nature'] ;
686
		$tableau_typeannonces[] = $ligne['bn_id_nature'] ;
665
	}
687
	}
666
	if ($GLOBALS['_BAZAR_']['typeannonce']=='toutes') {
688
	if ($nb_type_de_fiches>1 && $GLOBALS['_BAZAR_']['typeannonce']=='toutes') {
667
		$res= '<h2>'.BAZ_TOUTES_LES_ANNONCES.'</h2><br />'."\n";
689
		$res= '<h2>'.BAZ_TOUTES_LES_ANNONCES.'</h2><br />'."\n";
668
		$option=array('style'=>'border:1px solid #000;width: 140px;font:12px Myriad, Arial, sans-serif;',
690
		$option=array('style'=>'border:1px solid #000;width: 200px;font:12px Myriad, Arial, sans-serif;',
669
						'onchange' => 'javascript:this.form.submit();');
691
						'onchange' => 'javascript:this.form.submit();');
-
 
692
		$formtemplate->addElement ('select', 'nature', BAZ_TYPEANNONCE, $type_annonce_select, $option) ;
-
 
693
		if (isset($_REQUEST['nature'])) {
-
 
694
			$defauts=array('nature'=>$_REQUEST['nature']);
-
 
695
			$formtemplate->setDefaults($defauts);
670
		$formtemplate->addElement ('select', 'nature', BAZ_TYPEANNONCE, $type_annonce_select, $option) ;
696
		}		
671
	}
697
	}
672
	//cas du type d'annonces prédéfini 
698
	//cas du type d'annonces prédéfini 
673
	else {
699
	else {
674
		$res = '<h2>'.BAZ_TOUTES_LES_ANNONCES_DE_TYPE.' '.$GLOBALS['_BAZAR_']['typeannonce'].'</h2>'."\n";
700
		$res = '<h2>'.BAZ_TOUTES_LES_ANNONCES_DE_TYPE.' '.$GLOBALS['_BAZAR_']['typeannonce'].'</h2>'."\n";
Line 675... Line -...
675
	}
-
 
676
 
701
	}
677
	
702
 
678
	//requete pour obtenir l'id, le nom et prenom de toutes les personnes ayant depose une fiche
-
 
679
	// dans le but de construire l'élément de formulaire select avec les noms des émetteurs de fiche
703
	//requete pour obtenir l'id, le nom et prenom de toutes les personnes ayant depose une fiche
680
	
704
	// dans le but de construire l'élément de formulaire select avec les noms des émetteurs de fiche	
681
	if (BAZ_RECHERCHE_PAR_EMETTEUR) {
705
	if (BAZ_RECHERCHE_PAR_EMETTEUR) {
Line 682... Line 706...
682
		$requete = 'SELECT '.BAZ_CHAMPS_ID.', '.BAZ_CHAMPS_NOM.', '.BAZ_CHAMPS_PRENOM.' '.
706
		$requete = 'SELECT '.BAZ_CHAMPS_ID.', '.BAZ_CHAMPS_NOM.', '.BAZ_CHAMPS_PRENOM.' '.
Line 683... Line 707...
683
		           'FROM bazar_fiche,'.BAZ_ANNUAIRE.' where' ;
707
		           'FROM bazar_fiche,'.BAZ_ANNUAIRE.' where' ;
684
	
708
	
685
		$requete .= ' bf_date_debut_validite_fiche<=NOW() AND bf_date_fin_validite_fiche>=NOW() and';	
709
		$requete .= ' bf_date_debut_validite_fiche<=NOW() AND bf_date_fin_validite_fiche>=NOW() and';	
686
	
710
	
687
		$requete .= ' bf_ce_utilisateur='.BAZ_CHAMPS_ID.' ';
711
		$requete .= ' bf_ce_utilisateur='.BAZ_CHAMPS_ID.' ';
688
	    if (!isset($_REQUEST['nature'])) {
712
	    if (!isset($_REQUEST['nature'])) {
689
	    	if (isset($GLOBALS['_BAZAR_']['id_typeannonce'])) {
713
	    		if (isset($GLOBALS['_BAZAR_']['id_typeannonce'])) {
690
	    		$requete .= 'AND bf_ce_nature="'.$GLOBALS['_BAZAR_']['id_typeannonce'].'" ';
714
	    			$requete .= 'AND bf_ce_nature="'.$GLOBALS['_BAZAR_']['id_typeannonce'].'" ';
691
	    	} 
715
	    		} 
692
	    }
716
		}
693
	    else {
717
		else {
Line 694... Line 718...
694
	    	if ($_REQUEST['nature']!='toutes') {
718
	    		if ($_REQUEST['nature']!='toutes') {
695
	    		$requete .= 'AND bf_ce_nature='.$_REQUEST['nature'].' ';
719
	    			$requete .= 'AND bf_ce_nature='.$_REQUEST['nature'].' ';
696
	    	}
720
	    		}
Line 703... Line 727...
703
		}
727
		}
704
		$personnes_select['tous']=BAZ_TOUS_LES_EMETTEURS;
728
		$personnes_select['tous']=BAZ_TOUS_LES_EMETTEURS;
705
		while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
729
		while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
706
			$personnes_select[$ligne[BAZ_CHAMPS_ID]] = $ligne[BAZ_CHAMPS_NOM]." ".$ligne[BAZ_CHAMPS_PRENOM] ;
730
			$personnes_select[$ligne[BAZ_CHAMPS_ID]] = $ligne[BAZ_CHAMPS_NOM]." ".$ligne[BAZ_CHAMPS_PRENOM] ;
707
		}
731
		}
708
		$option=array('style'=>'border:1px solid #000;width: 140px;font:12px Myriad, Arial, sans-serif;');
732
		$option=array('style'=>'border:1px solid #000;width: 200px;font:12px Myriad, Arial, sans-serif;');
709
		$formtemplate->addElement ('select', 'personnes', BAZ_EMETTEUR, $personnes_select, $option) ;
733
		$formtemplate->addElement ('select', 'personnes', BAZ_EMETTEUR, $personnes_select, $option) ;
710
	} else {
734
	} else {
711
		$formtemplate->addElement ('hidden', 'personnes', 'tous') ;
735
		$formtemplate->addElement ('hidden', 'personnes', 'tous') ;
712
	}
736
	}
Line 713... Line 737...
713
	
737
	
714
		//pour les super-administrateurs, on peut voir les annonces non validées
738
		//pour les super-administrateurs, on peut voir les annonces non validées
715
	//on verifie si l'utilisateur est administrateur
739
	//on verifie si l'utilisateur est administrateur
Line 716... Line 740...
716
	$utilisateur = new Administrateur_bazar($GLOBALS['AUTH']) ;
740
	$utilisateur = new Administrateur_bazar($GLOBALS['AUTH']) ;
717
 
741
 
718
	if ($utilisateur->isSuperAdmin()) {
742
	if ($utilisateur->isSuperAdmin()) {
719
		$option=array('style'=>'border:1px solid #000;width: 60px;font:12px Myriad, Arial, sans-serif;');
743
		$option=array('style'=>'border:1px solid #000;width: 200px;font:12px Myriad, Arial, sans-serif;');
720
		$valide_select[0] = BAZ_FICHES_PAS_VALIDEES;
744
		$valide_select[0] = BAZ_FICHES_PAS_VALIDEES;
721
		$valide_select[1] = BAZ_FICHES_VALIDEES;
745
		$valide_select[1] = BAZ_FICHES_VALIDEES;
722
		$valide_select[2] = BAZ_LES_DEUX;
746
		$valide_select[2] = BAZ_LES_DEUX;
723
		$formtemplate->addElement ('select', 'valides', BAZ_VALIDE, $valide_select, $option) ; 
747
		$formtemplate->addElement ('select', 'valides', BAZ_VALIDE, $valide_select, $option) ; 
724
		$defauts=array('valides'=>1);
748
		$defauts=array('valides'=>1);
Line 725... Line 749...
725
		$formtemplate->setDefaults($defauts);
749
		$formtemplate->setDefaults($defauts);
726
	}
750
	}
727
	
751
	
728
	//champs texte pour entrer les mots cles
752
	//champs texte pour entrer les mots cles
729
	$option=array('maxlength'=>60,'style'=>'border:1px solid #000;width:100px;font:12px Myriad, Arial, sans-serif;');
753
	$option=array('maxlength'=>60,'style'=>'border:1px solid #000;width:200px;font:12px Myriad, Arial, sans-serif;');
Line 730... Line 754...
730
	$formtemplate->addElement('text', 'recherche_mots_cles', BAZ_MOT_CLE, $option) ;
754
	$formtemplate->addElement('text', 'recherche_mots_cles', BAZ_MOT_CLE, $option) ;
731
	$defauts=array('recherche_mots_cles'=>BAZ_MOT_CLE);
755
	$defauts=array('recherche_mots_cles'=>BAZ_MOT_CLE);
Line 732... Line 756...
732
	$formtemplate->setDefaults($defauts);
756
	$formtemplate->setDefaults($defauts);
733
	
757
	
-
 
758
	//option cachee pour savoir si le formulaire a ete appele deja 
734
	//option cachee pour savoir si le formulaire a ete appele deja 
759
	$formtemplate->addElement('hidden', 'recherche_effectuee', 1) ;
735
	$formtemplate->addElement('hidden', 'recherche_effectuee', 1) ;
760
	
736
	
761
	// Ajout des options si un type de fiche a ete choisie
737
	// Ajout des options si un type de fiche a ete choisie
762
	if ( (isset($_REQUEST['nature']) && $_REQUEST['nature'] != 'toutes') || (isset($GLOBALS['_BAZAR_']['categorie_nature']) && $nb_type_de_fiches==1) ) {
738
	if ((isset($_REQUEST['nature']) && $_REQUEST['nature'] != 'toutes') || isset($GLOBALS['_BAZAR_']['categorie_nature'])) {
763
		if ( BAZ_MOTEUR_RECHERCHE_AVANCEE || ( isset($_REQUEST['recherche_avancee'])&&$_REQUEST['recherche_avancee']==1) ) { 
739
		if ($GLOBALS['_BAZAR_']['categorie_nature'] != '') {
764
			if ($GLOBALS['_BAZAR_']['categorie_nature'] != '') {
740
			$champs_requete = 'bn_id_nature' ;
-
 
741
			if (!isset($_REQUEST['nature']) || $_REQUEST['nature'] == '') {
-
 
742
				$_REQUEST['nature'] = $GLOBALS['_BAZAR_']['categorie_nature'];
-
 
743
				$champs_requete = 'bn_ce_id_menu' ;
765
				$champs_requete = '' ;
744
			}
766
				if (!isset($_REQUEST['nature']) || $_REQUEST['nature'] == '') {
745
		} else {
767
					$_REQUEST['nature'] = $tableau_typeannonces[0];
746
			$champs_requete = 'bn_id_nature' ;	
768
				}
747
		}
769
			}
748
		// Récupération du template
770
			// Récupération du template
749
		$requete = 'select bn_template from bazar_nature where '.$champs_requete.'="'.$_REQUEST['nature'].'"';
771
			$requete = 'SELECT bn_template FROM bazar_nature WHERE bn_id_nature="'.$_REQUEST['nature'].'"';
750
		$resultat = $GLOBALS['_BAZAR_']['db']->getOne($requete) ;
772
			$resultat = $GLOBALS['_BAZAR_']['db']->getOne($requete) ;
-
 
773
			if (DB::isError($resultat)) {
-
 
774
				die ($resultat->getMessage().$resultat->getDebugInfo()) ;
-
 
775
			}
-
 
776
			
-
 
777
			if ($_REQUEST['recherche_avancee']==1) {
-
 
778
				foreach(array_merge($_POST, $_GET) as $cle => $valeur) $GLOBALS['_BAZAR_']['url']->addQueryString($cle, $valeur); 
751
		if (DB::isError($resultat)) {
779
				$GLOBALS['_BAZAR_']['url']->addQueryString('recherche_avancee', '0');
-
 
780
				$lien_recherche_de_base = '<a href="'.$GLOBALS['_BAZAR_']['url']->getURL().'">'.BAZ_RECHERCHE_DE_BASE.'</a><br />';
752
			die ($resultat->getMessage().$resultat->getDebugInfo()) ;
781
				//lien recherche de base
753
		}
782
				labelhtml($formtemplate,'',$lien_recherche_de_base,'','','','','');		
754
		
783
			}
755
		$tableau = baz_valeurs_template($resultat) ;
784
			
756
 
785
			$tableau = baz_valeurs_template($resultat) ;
757
		for ($i=0; $i<count($tableau); $i++) {
-
 
758
			if (($tableau[$i]['type'] == 'liste' || $tableau[$i]['type'] == 'checkbox') && $tableau[$i]['recherche'] == 1) {
-
 
759
				if ($tableau[$i]['type'] == 'checkbox') {
786
			for ($i=0; $i<count($tableau); $i++) {
-
 
787
				if (($tableau[$i]['type'] == 'liste' || $tableau[$i]['type'] == 'checkbox') && $tableau[$i]['recherche'] == 1) {
760
					$formtemplate->addElement ('html', '<br />'.$tableau[$i]['label'].'<br />') ;	
788
					$tableau[$i]['type']($formtemplate, $tableau[$i]['nom_bdd'], $tableau[$i]['label'], $tableau[$i]['limite1'],
-
 
789
			                         $tableau[$i]['limite2'], $tableau[$i]['defaut'], $tableau[$i]['table_source'], $tableau[$i]['obligatoire'], 1) ;
-
 
790
				}
-
 
791
			}
-
 
792
			
-
 
793
		}
-
 
794
		else {
-
 
795
			foreach(array_merge($_POST, $_GET) as $cle => $valeur) $GLOBALS['_BAZAR_']['url']->addQueryString($cle, $valeur); 
-
 
796
			$GLOBALS['_BAZAR_']['url']->addQueryString('recherche_avancee', '1');
-
 
797
			$lien_recherche_avancee = '<a href="'.$GLOBALS['_BAZAR_']['url']->getURL().'">'.BAZ_RECHERCHE_AVANCEE.'</a><br />';			
-
 
798
		}		 	
761
				}
799
	}
-
 
800
	
762
				$tableau[$i]['type']($formtemplate, $tableau[$i]['nom_bdd'], $tableau[$i]['label'], $tableau[$i]['limite1'],
801
	//lien recherche avancee
763
		                         $tableau[$i]['limite2'], $tableau[$i]['defaut'], $tableau[$i]['table_source'], $tableau[$i]['obligatoire']) ;
802
	if (isset($lien_recherche_avancee)) {
764
			}
803
		labelhtml($formtemplate,'',$lien_recherche_avancee,'','','','','');
765
		 }	
804
	}
Line 766... Line 805...
766
	}
805
	
767
	//Bouton de validation du formulaire
806
	//Bouton de validation du formulaire
Line 768... Line 807...
768
	$option=array('style'=>'border:1px solid #000;width:80px;font:12px Myriad, Arial, sans-serif;');
807
	$option=array('style'=>'border:1px solid #000;width:80px;font:12px Myriad, Arial, sans-serif;');
769
	$bouton[] = &HTML_QuickForm::createElement('submit', 'rechercher', BAZ_RECHERCHER, $option);
808
	$bouton[] = &HTML_QuickForm::createElement('submit', 'rechercher', BAZ_RECHERCHER, $option);
-
 
809
	$formtemplate->addGroup($bouton, null, null, '');	
770
	$formtemplate->addGroup($bouton, null, null, '');
810
	
771
	
811
	//affichage du formulaire
772
	//affichage du formulaire
812
	$res.=$formtemplate->toHTML()."\n";
Line -... Line 813...
-
 
813
	
773
	$res.=$formtemplate->toHTML()."\n";
814
 
774
	
815
	// Ajout de la table bazar_fiche_liste_valeur dans le from de la requete
775
 
-
 
776
	// Ajout de la table bazar_fiche_liste_valeur dans le from de la requete
-
 
777
	$case_coche = false ;
-
 
778
	$requeteFrom = '' ;
-
 
779
	$requeteWhere = '' ;
-
 
780
	$requeteWhereListe = '' ;
816
	$case_coche = false ;
781
	
817
	$nb_jointures=0;
782
 	for ($i = 0; $i < count ($tableau); $i++) {
-
 
783
		if ($tableau[$i]['type'] == 'checkbox' || $tableau[$i]['type'] == 'liste') {
-
 
784
			$nom_liste = $tableau[$i]['type'].$tableau[$i]['nom_bdd'] ;
-
 
785
			
-
 
786
			if (is_array($_REQUEST[$nom_liste])) {
-
 
787
				foreach ($_REQUEST[$nom_liste] as $cle =>$valeur) {
818
	$requeteFrom = '' ;
788
					if ($valeur == 1) {
-
 
789
						$case_coche = true ;
-
 
790
						$requeteWhereListe .= ' AND bfvl_ce_liste='.$tableau[$i]['nom_bdd'] ; // Numéro de la liste
819
	$requeteWhere = '' ;
-
 
820
	$requeteWhereListe = '' ;
-
 
821
	
-
 
822
 	if ( isset($tableau) ) {
-
 
823
	 	for ($i = 0; $i < count ($tableau); $i++) {
-
 
824
			if ($tableau[$i]['type'] == 'checkbox' || $tableau[$i]['type'] == 'liste') {
-
 
825
				$nb_jointures++;
-
 
826
				$nom_liste = $tableau[$i]['type'].$tableau[$i]['nom_bdd'] ;			
-
 
827
				if (isset($_REQUEST[$nom_liste]) && is_array($_REQUEST[$nom_liste])) {
-
 
828
					$case_coche = true;
-
 
829
					$requeteWhereListe .= ' bfvl'.$nb_jointures.'.bfvl_ce_liste='.$tableau[$i]['nom_bdd'].' AND ' ; // Numéro de la liste
-
 
830
					$requeteWhereListe .= ' bfvl'.$nb_jointures.'.bfvl_valeur IN (' ;
-
 
831
					$chaine = '';
-
 
832
					//var_dump($_REQUEST[$nom_liste]);
-
 
833
					foreach ($_REQUEST[$nom_liste] as $cle =>$valeur) {
-
 
834
						if ($valeur == 1) {						
-
 
835
							$chaine .= '"'.$cle.'",' ;
-
 
836
						}
791
						
837
					}	
792
					}
838
					$requeteWhereListe .= substr ($chaine, 0, strlen ($chaine)-1) ;
793
				}	
839
					$requeteWhereListe .= ') AND ';									
794
			} else {
840
				} else {
795
				
841
					if (isset ($_REQUEST[$nom_liste]) && $_REQUEST[$nom_liste]!=0) {
-
 
842
						$requeteWhereListe .= ' bfvl'.$nb_jointures.'.bfvl_ce_liste='.$tableau[$i]['nom_bdd'].' AND ' ; // Numéro de la liste
796
				if (isset ($_REQUEST[$nom_liste])) {
843
						$requeteWhereListe .= ' bfvl'.$nb_jointures.'.bfvl_valeur='.$_REQUEST[$nom_liste].' AND ';
797
					$requeteWhereListe .= ' AND bfvl_ce_liste='.$tableau[$i]['nom_bdd'].' AND ' ; // Numéro de la liste
844
						$case_coche = true;
-
 
845
					}
798
					$requeteWhereListe .= ' bfvl_valeur='.$_REQUEST[$nom_liste].' AND ';
846
				}
799
					$case_coche = true;
847
			}
800
				}
848
		}
801
			}
849
 	}
802
		}
850
	if ($case_coche) {
Line 803... Line 851...
803
	}
851
		for ($i = 0; $i < $nb_jointures ; $i++) {			
804
	if ($case_coche) {
852
			$requeteFrom .= ', bazar_fiche_valeur_liste  as bfvl'.($i+1) ;
Line 833... Line 881...
833
		}
881
		}
834
		if ($typeannonce!='toutes') $typedefiches=$typeannonce;
882
		if ($typeannonce!='toutes') $typedefiches=$typeannonce;
835
		if (isset($_REQUEST['valides'])) {$valides=$_REQUEST['valides'];}
883
		if (isset($_REQUEST['valides'])) {$valides=$_REQUEST['valides'];}
836
		else {$valides=1;}
884
		else {$valides=1;}
837
		//generation de la liste de flux a afficher
885
		//generation de la liste de flux a afficher
838
		$res .= baz_liste_pagine_HTML($typedefiche, '', $_REQUEST['personne'], $valides, $requeteSQL, $requeteFrom, $requeteWhere);
886
		if (!isset($_REQUEST['personne'])) $_REQUEST['personne']='tous';
839
		/*
-
 
840
		$res .= RSSversHTML(gen_RSS($typedefiches, '', $_REQUEST['personnes'], $valides, $requeteSQL, $requeteFrom, $requeteWhere),
887
		$res .= baz_liste_pagine_HTML($typedefiches, '', $_REQUEST['personne'], $valides, $requeteSQL, $requeteFrom, $requeteWhere);		
841
							 0, BAZ_TYPE_AFFICHAGE_LISTE, 1) ;
-
 
842
		*/
-
 
843
	}
888
	}
844
	else {
889
	else {
845
		//on affiche toutes les annonces
890
		//on affiche toutes les annonces
846
		$res .= '<br /><p class="zone_info">'."\n".BAZ_ENTRER_VOS_CRITERES_DE_RECHERCHE.'</p>'."\n";
891
		$res .= '<br /><p class="zone_info">'."\n".BAZ_ENTRER_VOS_CRITERES_DE_RECHERCHE.'</p>'."\n";
847
		$GLOBALS['_BAZAR_']['url']->removeQueryString('action');
892
		$GLOBALS['_BAZAR_']['url']->removeQueryString('action');
848
		$GLOBALS['_BAZAR_']['url']->addQueryString('action', BAZ_VOIR_FLUX_RSS);
893
		$GLOBALS['_BAZAR_']['url']->addQueryString('action', BAZ_VOIR_FLUX_RSS);
849
		$GLOBALS['_BAZAR_']['url']->addQueryString('annonce', 'toutes');
894
		$GLOBALS['_BAZAR_']['url']->addQueryString('annonce', $typeannonce);
-
 
895
		$GLOBALS['_BAZAR_']['url']->addQueryString('categorie_nature', $GLOBALS['_BAZAR_']['categorie_nature']);
850
		$res .= '{{Syndication titre="Les derni&egrave;res fiches enregistrées" url="'.$GLOBALS['_BAZAR_']['url']->getURL().'" nb=10 nouvellefenetre=0 formatdate="'.BAZ_TYPE_AFFICHAGE_LISTE.'"}}';
896
		$res .= '{{Syndication titre="Les derni&egrave;res fiches enregistrées" url="'.$GLOBALS['_BAZAR_']['url']->getURL().
-
 
897
                '" nb=10 nouvellefenetre=0 formatdate="'.BAZ_TYPE_AFFICHAGE_LISTE.'"}}';
851
	}
898
	}
852
	return $res;
899
	return $res;
853
}
900
}
Line 854... Line 901...
854
 
901
 
Line 863... Line 910...
863
	if ($valide!=2) {
910
	if ($valide!=2) {
864
		$requete .= 'bf_statut_fiche='.$valide;
911
		$requete .= 'bf_statut_fiche='.$valide;
865
		$req_where=1;
912
		$req_where=1;
866
	}
913
	}
Line 867... Line -...
867
	
-
 
868
	if (!is_array ($typeannonce) && $typeannonce!='' and $typeannonce!='toutes') {
-
 
869
		if ($req_where==1) {$requete .= ' AND ';}
-
 
870
		$requete .= 'bf_ce_nature='.$typeannonce;
-
 
871
		$req_where=1;
-
 
872
		//le nom du flux devient le type d'annonce
-
 
873
		$nomflux = $typeannonce;
-
 
874
	}
-
 
875
	// Cas où il y plusieurs type d annonce demande
-
 
876
	if (is_array ($typeannonce)) {
-
 
877
		if ($req_where==1) {$requete .= ' AND ';}
-
 
878
		$requete .= 'bf_ce_nature IN (' ;
-
 
879
		$chaine = '';
-
 
880
		foreach ($typeannonce as $valeur) $chaine .= '"'.$valeur.'",' ;
-
 
881
		$requete .= substr ($chaine, 0, strlen ($chaine)-1) ; 
-
 
882
		$requete .= ') ';
-
 
883
	}
914
	
884
	$utilisateur = new Administrateur_bazar ($GLOBALS['AUTH']) ;
915
	$utilisateur = new Administrateur_bazar ($GLOBALS['AUTH']) ;
Line 885... Line 916...
885
	if ($valide!=0) {
916
	if ($valide!=0) {
886
		
917
		
Line 892... Line 923...
892
			}
923
			}
893
			$requete .= '(bf_date_debut_validite_fiche<=NOW() or bf_date_debut_validite_fiche="0000-00-00")'.
924
			$requete .= '(bf_date_debut_validite_fiche<=NOW() or bf_date_debut_validite_fiche="0000-00-00")'.
894
						' AND (bf_date_fin_validite_fiche>=NOW() or bf_date_fin_validite_fiche="0000-00-00") AND bn_id_nature=bf_ce_nature';
925
						' AND (bf_date_fin_validite_fiche>=NOW() or bf_date_fin_validite_fiche="0000-00-00") AND bn_id_nature=bf_ce_nature';
895
		}
926
		}
896
	}
927
	}
897
	else $nomflux .= BAZ_A_MODERER;
-
 
898
	if ($emetteur!='' && $emetteur!='tous') {
928
	if ($emetteur!='' && $emetteur!='tous') {
899
		if ($req_where==1) {$requete .= ' AND ';}
929
		if ($req_where==1) {$requete .= ' AND ';}
900
		$requete .= 'bf_ce_utilisateur='.$emetteur;
930
		$requete .= 'bf_ce_utilisateur='.$emetteur;
901
		$req_where=1;
931
		$req_where=1;
902
		//requete pour afficher le nom de la structure
932
		//requete pour afficher le nom de la structure
Line 914... Line 944...
914
		$requete .= '('.$requeteSQL.')';
944
		$requete .= '('.$requeteSQL.')';
915
		$req_where=1;
945
		$req_where=1;
916
	}
946
	}
917
	$requete .= ' ORDER BY  bf_date_debut_validite_fiche DESC, bf_date_fin_validite_fiche DESC, bf_date_maj_fiche DESC';
947
	$requete .= ' ORDER BY  bf_date_debut_validite_fiche DESC, bf_date_fin_validite_fiche DESC, bf_date_maj_fiche DESC';
918
	if ($nbitem!='') {$requete .= ' LIMIT 0,'.$nbitem;}
948
	if ($nbitem!='') {$requete .= ' LIMIT 0,'.$nbitem;}
-
 
949
	
919
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
950
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
920
	if (DB::isError($resultat)) {
951
	if (DB::isError($resultat)) {
921
		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
952
		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
922
	}
953
	}
923
	$res = '<br /><h4>'.BAZ_IL_Y_A.($resultat->numRows()).' '.BAZ_FICHES_CORRESPONDANTES.'</h4><br />'."\n";
954
	$res = '<br /><h4>'.BAZ_IL_Y_A.($resultat->numRows()).' '.BAZ_FICHES_CORRESPONDANTES.'</h4><br />'."\n";
Line 925... Line 956...
925
	$GLOBALS['_BAZAR_']['url']->addQueryString('action', BAZ_VOIR_FICHE);
956
	$GLOBALS['_BAZAR_']['url']->addQueryString('action', BAZ_VOIR_FICHE);
Line 926... Line 957...
926
	
957
	
927
	$donnees = array();
958
	$donnees = array();
928
	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
959
	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
929
		$GLOBALS['_BAZAR_']['url']->addQueryString('id_fiche', $ligne->bf_id_fiche) ;
960
		$GLOBALS['_BAZAR_']['url']->addQueryString('id_fiche', $ligne->bf_id_fiche) ;
930
		array_push ($donnees, array ($ligne->bf_id_fiche,$ligne->bf_titre));
-
 
931
		//$res .= '<li><a href="'.$GLOBALS['_BAZAR_']['url']->getURL().'">'.$ligne->bf_titre.'</a></li>'."\n" ;
961
		array_push ($donnees, array ($ligne->bf_id_fiche,$ligne->bf_titre));		
932
	}
962
	}
933
	// Mise en place du Pager
963
	// Mise en place du Pager
934
	include_once 'Pager/Pager.php';
964
	include_once PAP_CHEMIN_API_PEAR.'Pager/Pager.php';
935
	$params = array(
965
	$params = array(
936
    'mode'       => BAZ_MODE_DIVISION,
966
    'mode'       => BAZ_MODE_DIVISION,
937
    'perPage'    => BAZ_NOMBRE_RES_PAR_PAGE,
967
    'perPage'    => BAZ_NOMBRE_RES_PAR_PAGE,
938
    'delta'      => BAZ_DELTA,
968
    'delta'      => BAZ_DELTA,
939
    'httpMethod' => 'GET',
969
    'httpMethod' => 'GET',
940
    'extraVars' => $_REQUEST,
970
    'extraVars' => array_merge($_POST, $_GET),
941
    'altNext' => BAZ_SUIVANT,
971
    'altNext' => BAZ_SUIVANT,
942
    'altPrev' => BAZ_PRECEDENT,
972
    'altPrev' => BAZ_PRECEDENT,
943
    'nextImg' => BAZ_SUIVANT,
973
    'nextImg' => BAZ_SUIVANT,
944
    'prevImg' => BAZ_PRECEDENT,
974
    'prevImg' => BAZ_PRECEDENT,
Line 958... Line 988...
958
	return $res ;
988
	return $res ;
959
}
989
}
Line 960... Line 990...
960
 
990
 
961
/* +--Fin du code ----------------------------------------------------------------------------------------+
991
/* +--Fin du code ----------------------------------------------------------------------------------------+
962
*
992
*
-
 
993
* $Log: not supported by cvs2svn $
-
 
994
* Revision 1.48  2006/05/17 09:50:13  alexandre_tb
-
 
995
* Ajout du moteur de recherche évolué et du découpage par page
963
* $Log: not supported by cvs2svn $
996
*
964
* +-- Fin du code ----------------------------------------------------------------------------------------+
997
* +-- Fin du code ----------------------------------------------------------------------------------------+
965
*/
998
*/
966
?>
999
?>