Subversion Repositories Applications.bazar

Rev

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

Rev 65 Rev 67
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.php,v 1.27 2006-01-04 15:30:56 alexandre_tb Exp $
22
// CVS : $Id: bazar.fonct.php,v 1.28 2006-01-05 16:28:24 alexandre_tb Exp $
23
/**
23
/**
24
*
24
*
25
* Fonctions du module bazar
25
* Fonctions du module bazar
26
* 
26
* 
27
*
27
*
Line 29... Line 29...
29
//Auteur original :
29
//Auteur original :
30
*@author        Alexandre Granier <alexandre@tela-botanica.org>
30
*@author        Alexandre Granier <alexandre@tela-botanica.org>
31
*@author        Florian Schmitt <florian@ecole-et-nature.org>
31
*@author        Florian Schmitt <florian@ecole-et-nature.org>
32
//Autres auteurs :
32
//Autres auteurs :
33
*@copyright     Tela-Botanica 2000-2004
33
*@copyright     Tela-Botanica 2000-2004
34
*@version       $Revision: 1.27 $ $Date: 2006-01-04 15:30:56 $
34
*@version       $Revision: 1.28 $ $Date: 2006-01-05 16:28:24 $
35
// +------------------------------------------------------------------------------------------------------+
35
// +------------------------------------------------------------------------------------------------------+
36
*/
36
*/
Line 37... Line 37...
37
 
37
 
38
// +------------------------------------------------------------------------------------------------------+
38
// +------------------------------------------------------------------------------------------------------+
Line 155... Line 155...
155
* @return   string  HTML
155
* @return   string  HTML
156
*/
156
*/
157
function mes_fiches() {
157
function mes_fiches() {
158
	if ($GLOBALS['AUTH']->getAuth()) {
158
	if ($GLOBALS['AUTH']->getAuth()) {
159
		$res= '<h2>'.BAZ_VOS_ANNONCES.'</h2><br />'."\n";
159
		$res= '<h2>'.BAZ_VOS_ANNONCES.'</h2><br />'."\n";
160
		// requete pour voir si l'utilisateur a des fiches à son nom, classées par date de MAJ et nature d'annonce
160
		// requete pour voir si l'utilisateur a des fiches a son nom, classees par date de MAJ et nature d'annonce
161
		$requete = 'SELECT * FROM bazar_fiche, bazar_nature WHERE bf_ce_utilisateur='. $GLOBALS['id_user'].
161
		$requete = 'SELECT * FROM bazar_fiche, bazar_nature WHERE bf_ce_utilisateur='. $GLOBALS['id_user'].
162
		           ' AND bn_id_nature=bf_ce_nature AND bn_ce_id_menu='.$GLOBALS['_BAZAR_']['categorie_nature'].' ORDER BY bf_date_maj_fiche DESC,bf_ce_nature ASC';
162
		           ' AND bn_id_nature=bf_ce_nature AND bn_ce_id_menu='.$GLOBALS['_BAZAR_']['categorie_nature'].' ORDER BY bf_date_maj_fiche DESC,bf_ce_nature ASC';
163
		$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
163
		$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;echo $requete ;
164
		if (DB::isError($resultat)) {
164
		if (DB::isError($resultat)) {
165
			die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
165
			die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
166
		}
166
		}
167
		if ($resultat->numRows() != 0) {
167
		if ($resultat->numRows() != 0) {
168
			$tableAttr = array('id' => 'table_bazar') ;
168
			$tableAttr = array('id' => 'table_bazar') ;
Line 229... Line 229...
229
}
229
}
Line 230... Line 230...
230
 
230
 
231
 
231
 
232
/** baz_formulaire() - Renvoie le menu pour les saisies et modification des annonces
232
/** baz_formulaire() - Renvoie le menu pour les saisies et modification des annonces
-
 
233
*
233
*
234
* @param   string choix du formulaire a afficher (soit formulaire personnalise de 
234
* @param   string choix du formulaire a afficher (soit formulaire personnalise de l'annonce, soit choix du type d'annonce)
235
* 			l'annonce, soit choix du type d'annonce)
235
*
236
*
236
* @return   string  HTML
237
* @return   string  HTML
237
*/
238
*/
Line 246... Line 247...
246
			if ($mode == BAZ_ACTION_NOUVEAU) unset($_SESSION['formulaire_annonce_valide']) ;
247
			if ($mode == BAZ_ACTION_NOUVEAU) unset($_SESSION['formulaire_annonce_valide']) ;
247
		}
248
		}
Line 248... Line 249...
248
		
249
		
249
		//requete pour obtenir l'id du type d'annonce
250
		//requete pour obtenir l'id du type d'annonce
250
        if (isset($GLOBALS['_BAZAR_']['typeannonce'])) {
251
        if (isset($GLOBALS['_BAZAR_']['typeannonce'])) {
251
        	$requete = 'SELECT bn_id_nature, bn_condition FROM bazar_nature WHERE bn_label_nature="'.$GLOBALS['_BAZAR_']['typeannonce'].'"' ;
252
        	$requete = 'SELECT bn_id_nature, bn_condition FROM bazar_nature WHERE bn_id_nature="'.$GLOBALS['_BAZAR_']['typeannonce'].'"' ;
252
        	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
253
        	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
253
        	if (DB::isError($resultat)) {
254
        	if (DB::isError($resultat)) {
254
        		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
255
        		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
255
        	}
256
        	}
Line 311... Line 312...
311
			$res = '';
312
			$res = '';
Line 312... Line 313...
312
		
313
		
313
			//requete pour obtenir le nom et la description des types d'annonce
314
			//requete pour obtenir le nom et la description des types d'annonce
314
			$requete = "SELECT bn_id_nature, bn_label_nature, bn_description, bn_condition, bn_image_titre ".
315
			$requete = "SELECT bn_id_nature, bn_label_nature, bn_description, bn_condition, bn_image_titre ".
315
						"FROM bazar_nature WHERE bn_ce_id_menu=".$GLOBALS['_GEN_commun']['info_menu']->gm_id_menu.
316
						"FROM bazar_nature WHERE bn_ce_id_menu=".$GLOBALS['_GEN_commun']['info_menu']->gm_id_menu.
316
						" or  bn_ce_id_menu=0 ORDER BY bn_label_nature ASC";echo $requete;
317
						" or  bn_ce_id_menu=0 ORDER BY bn_label_nature ASC";
317
			$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
318
			$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
318
			if (DB::isError($resultat)) {
319
			if (DB::isError($resultat)) {
319
				die ($resultat->getMessage().$resultat->getDebugInfo()) ;
320
				die ($resultat->getMessage().$resultat->getDebugInfo()) ;
320
			}
321
			}
Line 401... Line 402...
401
					$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
402
					$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
402
					if (DB::isError($resultat)) {
403
					if (DB::isError($resultat)) {
403
						die ($resultat->getMessage().$resultat->getDebugInfo()) ;
404
						die ($resultat->getMessage().$resultat->getDebugInfo()) ;
404
					}
405
					}
405
				}
406
				}
406
				//CAS DU SUPER ADMIN: On efface tous les droits de la personne en général
407
				//CAS DU SUPER ADMIN: On efface tous les droits de la personne en general
407
				else {
408
				else {
408
					$requete = 'DELETE FROM bazar_droits WHERE bd_id_utilisateur='.$_GET['pers'];
409
					$requete = 'DELETE FROM bazar_droits WHERE bd_id_utilisateur='.$_GET['pers'];
409
					$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
410
					$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
410
					if (DB::isError($resultat)) {
411
					if (DB::isError($resultat)) {
411
						die ($resultat->getMessage().$resultat->getDebugInfo()) ;
412
						die ($resultat->getMessage().$resultat->getDebugInfo()) ;
Line 782... Line 783...
782
			if (($tableau[$i]['type']=='listedatedeb')or($tableau[$i]['type']=='listedatefin')) {
783
			if (($tableau[$i]['type']=='listedatedeb')or($tableau[$i]['type']=='listedatefin')) {
783
				$val=$valeur[$tableau[$i]['nom_bdd']]['Y'].'-'.$valeur[$tableau[$i]['nom_bdd']]['m'].'-'.$valeur[$tableau[$i]['nom_bdd']]['d'];
784
				$val=$valeur[$tableau[$i]['nom_bdd']]['Y'].'-'.$valeur[$tableau[$i]['nom_bdd']]['m'].'-'.$valeur[$tableau[$i]['nom_bdd']]['d'];
784
			}
785
			}
785
			//cas des checkbox
786
			//cas des checkbox
786
			elseif ($tableau[$i]['type']=='checkbox') {
787
			elseif ($tableau[$i]['type']=='checkbox') {
-
 
788
				
787
				if (isset($valeur[$tableau[$i]['nom_bdd']])) {
789
				if (isset($valeur[$tableau[$i]['nom_bdd']])) {
788
					$val=implode('**', 	array_keys($valeur[$tableau[$i]['nom_bdd']]));
790
					$val=implode('**', 	array_keys($valeur[$tableau[$i]['nom_bdd']]));
789
				} else {
791
				} else {
790
					$val=BAZ_NON_PRECISE;
792
					$val=BAZ_NON_PRECISE;
791
				}
793
				}
792
				
794
				continue ;
793
			}
795
			}
794
			//cas des champs texte et textarea
796
			//cas des champs texte et textarea
795
			else {
797
			else {
796
				$val=addslashes($valeur[$tableau[$i]['nom_bdd']]);
798
				$val=addslashes($valeur[$tableau[$i]['nom_bdd']]);
797
			}
799
			}
Line 805... Line 807...
805
}
807
}
Line 806... Line 808...
806
 
808
 
807
 
809
 
808
/** baz_insertion() - inserer une nouvelle fiche
810
/** baz_insertion() - inserer une nouvelle fiche
809
*
811
*
810
* @array   Le tableau des valeurs à insérer
812
* @array   Le tableau des valeurs a inserer
811
* @integer Valeur de l'identifiant de la fiche
813
* @integer Valeur de l'identifiant de la fiche
812
* @return   void
814
* @return   void
Line 813... Line 815...
813
*/
815
*/
814
function baz_insertion($valeur) {
816
function baz_insertion($valeur) {
815
	
817
	
-
 
818
		// Recuperation de bn_appropriation
-
 
819
		$requete_app = 'SELECT bn_appropriation FROM bazar_nature WHERE bn_id_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'] ;
-
 
820
		$resultat_app = $GLOBALS['_BAZAR_']['db']->query($requete_app) ;
816
		// Recuperation de bn_appropriation
821
		if (DB::isError($resultat_app)) {
Line 817... Line 822...
817
		$requete_app = 'SELECT bn_appropriation FROM bazar_nature WHERE bn_id_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'] ;
822
			echo $resultat_app->getMessage().$resultat_app->getDebugInfo().$requete_app;	
818
		$resultat_app = $GLOBALS['_BAZAR_']['db']->query($requete_app) ;
823
		}
819
		$ligne = $resultat_app ->fetchRow(DB_FETCHMODE_ASSOC) ;
824
		$ligne = $resultat_app ->fetchRow(DB_FETCHMODE_ASSOC) ;
-
 
825
		 
820
		 
826
        // ===========  Insertion d'une nouvelle fiche ===================	
821
        // ===========  Insertion d'une nouvelle fiche ===================	
827
        //requete d'insertion dans bazar_fiche
822
        //requete d'insertion dans bazar_fiche
828
        $id_fiche = baz_nextid('bazar_fiche', 'bf_id_fiche', $GLOBALS['_BAZAR_']['db']) ;
823
        $requete = 'INSERT INTO bazar_fiche SET bf_id_fiche='.baz_nextid('bazar_fiche', 'bf_id_fiche', $GLOBALS['_BAZAR_']['db']).','.
829
        $requete = 'INSERT INTO bazar_fiche SET bf_id_fiche='.$id_fiche.','.
824
		   'bf_ce_utilisateur='.$GLOBALS['id_user'].', bf_ce_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'].','.
830
		   'bf_ce_utilisateur='.$GLOBALS['id_user'].', bf_ce_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'].','.
825
		   'bf_date_creation_fiche=NOW(),';
831
		   'bf_date_creation_fiche=NOW(),';
826
		if ($ligne['bn_appropriation'] == 1) {
832
		if ($ligne['bn_appropriation'] == 1) {
827
			$requete .= 'bf_date_debut_validite_fiche=now(), ' ;
833
			$requete .= 'bf_date_debut_validite_fiche=now(), ' ;
828
		}
834
		}
829
		$requete .=requete_bazar_fiche(&$valeur, $GLOBALS['_BAZAR_']['id_typeannonce']) ;
835
		$requete .=requete_bazar_fiche(&$valeur, $GLOBALS['_BAZAR_']['id_typeannonce']) ;
-
 
836
		$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
-
 
837
		if (DB::isError($resultat)) {
-
 
838
			die ($resultat->getMessage().$resultat->getDebugInfo()) ;
-
 
839
		}
-
 
840
		
-
 
841
		// traitement des cases à cocher, donc des tables jointes,
-
 
842
		// l'info est dans le champs table_jointe, champs_id_fiche, champs_id_table_jointe
-
 
843
		$tableau = baz_valeurs_template($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
-
 
844
		
-
 
845
		for ($i=0; $i<count($tableau); $i++) {
-
 
846
			if ($tableau[$i]['type']=='checkbox') {
-
 
847
				$requete_source = 'select * from '.$tableau[$i]['table_source'] ;
-
 
848
				$resultat_source = $GLOBALS['_BAZAR_']['db']->query($requete_source) ;
-
 
849
				if (DB::isError($resultat_source)) {
-
 
850
					die ($resultat_source->getMessage().$resultat_source->getDebugInfo()) ;
-
 
851
				}
-
 
852
				while ($ligne_source = $resultat_source->fetchRow(DB_FETCHMODE_ORDERED)) {
-
 
853
					if (isset($valeur[$tableau[$i]['table_jointe']][$ligne_source[0]]) 
-
 
854
									&& $valeur[$tableau[$i]['table_jointe']][$ligne_source[0]] != '' ) {
-
 
855
						$requete = 'insert into '.$tableau[$i]['table_jointe'].' set '.
-
 
856
									$tableau[$i]['champs_id_fiche'].'='.$id_fiche.
-
 
857
									','.$tableau[$i]['champs_id_table_jointe'].'='.
-
 
858
									$ligne_source[0];
-
 
859
						$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
-
 
860
						if (DB::isError($resultat)) {
-
 
861
							echo $resultat->getMessage().$resultat->getDebugInfo() ;	
-
 
862
						}
830
		$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
863
					}
831
		if (DB::isError($resultat)) {
864
				}
Line 832... Line 865...
832
			die ($resultat->getMessage().$resultat->getDebugInfo()) ;
865
			}	
833
		}
866
		}
834
		return;
867
		return;
835
}
868
}
836
 
869
 
837
 
870
 
Line 854... Line 887...
854
        }
887
        }
855
	return;
888
	return;
856
}
889
}
Line 857... Line 890...
857
 
890
 
858
 
891
 
859
/** baz_insertion_fichier() - insérer un fichier à une fiche
892
/** baz_insertion_fichier() - inserer un fichier a une fiche
860
*
893
*
861
* @global   string Le label du fichier
894
* @global   string Le label du fichier
862
* @global   string La description du fichier
895
* @global   string La description du fichier
Line 943... Line 976...
943
}
976
}
Line 944... Line 977...
944
 
977
 
945
 
978
 
946
/** baz_suppression() - Supprime une fiche
979
/** baz_suppression() - Supprime une fiche
947
*
980
*
948
* @global   L'identifiant de la fiche à supprimer
981
* @global   L'identifiant de la fiche a supprimer
949
* @return   void
982
* @return   void
950
*/
983
*/
951
function baz_suppression() {
984
function baz_suppression() {
952
	//suppression dans bazar_fiche
985
	//suppression dans bazar_fiche
953
	$requete = "DELETE FROM bazar_fiche WHERE bf_id_fiche = ".$_GET['id_fiche'];
986
	$requete = "DELETE FROM bazar_fiche WHERE bf_id_fiche = ".$_GET['id_fiche'];
954
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
987
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
955
	if (DB::isError($resultat)) {
988
	if (DB::isError($resultat)) {
-
 
989
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
-
 
990
	}
-
 
991
	
-
 
992
	$GLOBALS['_BAZAR_']['typeannonce'] = $_GET['typeannonce'] ;
-
 
993
	// S'il y a des tables jointes, on les supprime aussi
-
 
994
	// traitement des cases à cocher, donc des tables jointes,
-
 
995
	// l'info est dans le champs table_jointe, champs_id_fiche, champs_id_table_jointe
-
 
996
	$tableau = baz_valeurs_template($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
-
 
997
	
-
 
998
	for ($i=0; $i<count($tableau); $i++) {
-
 
999
		if ($tableau[$i]['type']=='checkbox') {
-
 
1000
			$requete_suppr = 'delete from '.$tableau[$i]['table_jointe'].
-
 
1001
							' where '.$tableau[$i]['champs_id_fiche'].'='.$_GET['id_fiche'] ;
-
 
1002
			$resultat_suppr = $GLOBALS['_BAZAR_']['db']->query($requete_suppr) ;echo $requete_suppr;
-
 
1003
			if (DB::isError($resultat_suppr)) {
-
 
1004
				die ($resultat_suppr->getMessage().$resultat_suppr->getDebugInfo()) ;
-
 
1005
			}
956
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
1006
		}	
957
	}
1007
	}
958
	//suppression des urls associés
1008
	//suppression des urls associes
959
	$requete = "SELECT bu_id_url FROM bazar_url WHERE bu_ce_fiche = ".$_GET['id_fiche'];
1009
	$requete = "SELECT bu_id_url FROM bazar_url WHERE bu_ce_fiche = ".$_GET['id_fiche'];
960
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
1010
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
961
	if (DB::isError($resultat)) {
1011
	if (DB::isError($resultat)) {
962
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
1012
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
963
	}
1013
	}
964
	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
1014
	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
Line 965... Line 1015...
965
		baz_suppression_url($ligne['bu_id_url']);
1015
		baz_suppression_url($ligne['bu_id_url']);
966
	}
1016
	}
967
	
1017
	
968
	//suppression des fichiers associés
1018
	//suppression des fichiers associes
969
	$requete = "SELECT bfj_id_fichier FROM bazar_fichier_joint WHERE bfj_ce_fiche = ".$_GET['id_fiche'];
1019
	$requete = "SELECT bfj_id_fichier FROM bazar_fichier_joint WHERE bfj_ce_fiche = ".$_GET['id_fiche'];
970
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
1020
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
Line 1351... Line 1401...
1351
}
1401
}
Line 1352... Line 1402...
1352
 
1402
 
1353
/* +--Fin du code ----------------------------------------------------------------------------------------+
1403
/* +--Fin du code ----------------------------------------------------------------------------------------+
1354
*
1404
*
-
 
1405
* $Log: not supported by cvs2svn $
-
 
1406
* Revision 1.27  2006/01/04 15:30:56  alexandre_tb
-
 
1407
* mise en forme du code
1355
* $Log: not supported by cvs2svn $
1408
*
1356
* Revision 1.26  2006/01/03 10:19:31  florian
1409
* Revision 1.26  2006/01/03 10:19:31  florian
1357
* Mise à jour pour accepter des parametres dans papyrus: faire apparaitre ou non le menu, afficher qu'un type de fiches, définir l'action par défaut...
1410
* Mise à jour pour accepter des parametres dans papyrus: faire apparaitre ou non le menu, afficher qu'un type de fiches, définir l'action par défaut...
1358
*
1411
*
1359
* Revision 1.25  2005/12/20 14:49:35  ddelon
1412
* Revision 1.25  2005/12/20 14:49:35  ddelon