Subversion Repositories Applications.bazar

Rev

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

Rev 72 Rev 74
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.31 2006-01-17 10:07:08 alexandre_tb Exp $
22
// CVS : $Id: bazar.fonct.php,v 1.32 2006-01-18 10:03:36 florian 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.31 $ $Date: 2006-01-17 10:07:08 $
34
*@version       $Revision: 1.32 $ $Date: 2006-01-18 10:03:36 $
35
// +------------------------------------------------------------------------------------------------------+
35
// +------------------------------------------------------------------------------------------------------+
36
*/
36
*/
Line 37... Line 37...
37
 
37
 
38
// +------------------------------------------------------------------------------------------------------+
38
// +------------------------------------------------------------------------------------------------------+
Line 751... Line 751...
751
* @global   mixed L'objet contenant les valeurs issues de la saisie du formulaire
751
* @global   mixed L'objet contenant les valeurs issues de la saisie du formulaire
752
* @return   void
752
* @return   void
753
*/
753
*/
754
function requete_bazar_fiche($valeur) {
754
function requete_bazar_fiche($valeur) {
755
	$requete=NULL;
755
	$requete=NULL;
-
 
756
	print_r($valeur);
756
	//l'annonce est directement publiée pour les admins
757
	//l'annonce est directement publiée pour les admins
757
	if ((niveau_droit($GLOBALS['_BAZAR_']['id_typeannonce'],$GLOBALS['id_user'])=='administrateur') or
758
	if ((niveau_droit($GLOBALS['_BAZAR_']['id_typeannonce'],$GLOBALS['id_user'])=='administrateur') or
758
	    (niveau_droit($GLOBALS['_BAZAR_']['id_typeannonce'],$GLOBALS['id_user'])=='superadministrateur')) {
759
	    (niveau_droit($GLOBALS['_BAZAR_']['id_typeannonce'],$GLOBALS['id_user'])=='superadministrateur')) {
759
		$requete.='bf_statut_fiche=1, ';
760
		$requete.='bf_statut_fiche=1, ';
760
	} 
761
	} 
Line 762... Line 763...
762
		$requete.='bf_statut_fiche="'.BAZ_ETAT_VALIDATION.'", ';
763
		$requete.='bf_statut_fiche="'.BAZ_ETAT_VALIDATION.'", ';
763
	}
764
	}
Line 764... Line 765...
764
	
765
	
765
	$tableau=baz_valeurs_template($GLOBALS['_BAZAR_']['template']);
766
	$tableau=baz_valeurs_template($GLOBALS['_BAZAR_']['template']);
766
	for ($i=0; $i<count($tableau); $i++) {
767
	for ($i=0; $i<count($tableau); $i++) {
767
		if ($tableau[$i]['type']!='labelhtml') {
-
 
768
			//cas des dates
-
 
769
			if (($tableau[$i]['type']=='listedatedeb')or($tableau[$i]['type']=='listedatefin')) {
-
 
770
				$val=$valeur[$tableau[$i]['nom_bdd']]['Y'].'-'.$valeur[$tableau[$i]['nom_bdd']]['m'].'-'.$valeur[$tableau[$i]['nom_bdd']]['d'];
-
 
771
			}
768
		if ($tableau[$i]['type']!='labelhtml') {						
772
			//cas des checkbox
769
			//cas des checkbox et des listes
773
			elseif (($tableau[$i]['type']=='checkbox')or($tableau[$i]['type']=='liste')) {
770
			if (($tableau[$i]['type']=='checkbox')or($tableau[$i]['type']=='liste')) {
774
				//on supprime les anciennes valeurs de la table bazar_fiche_valeur_liste
771
				//on supprime les anciennes valeurs de la table bazar_fiche_valeur_liste
-
 
772
				$requetesuppression='DELETE FROM bazar_fiche_valeur_liste WHERE bfvl_ce_fiche='.$GLOBALS['_BAZAR_']['id_fiche'].' AND bfvl_ce_liste='.$tableau[$i]['nom_bdd'];
775
				$requetesuppression='DELETE FROM bazar_fiche_valeur_liste WHERE bfvl_ce_fiche= AND bfvl_ce_liste=';
773
				//on insere les nouvelles valeurs
-
 
774
				$requeteinsertion='INSERT INTO bazar_fiche_valeur_liste (bfvl_ce_fiche, bfvl_ce_liste, bfvl_valeur) VALUES ';
776
				$requeteinsertion='INSERT INTO bazar_fiche_valeur VALUES ';
775
                //pour les checkbox, les différentes valeurs sont dans un tableau
777
				if (isset($valeur[$tableau[$i]['nom_bdd']])) {
776
                if (is_array($valeur[$tableau[$i]['type'].$tableau[$i]['nom_bdd']])) {
-
 
777
                	while (list($cle, $val) = each($valeur[$tableau[$i]['type'].$tableau[$i]['nom_bdd']])) {
-
 
778
                		$requeteinsertion .= ' ('.$GLOBALS['_BAZAR_']['id_fiche'].', '.$tableau[$i]['nom_bdd'].', '.$val.') ';
-
 
779
                	}
-
 
780
                }
778
					$val=implode('**', 	array_keys($valeur[$tableau[$i]['nom_bdd']]));
781
                //pour les listes, une insertion de la valeur suffit
-
 
782
                else {
-
 
783
                	$requeteinsertion .= '('.$GLOBALS['_BAZAR_']['id_fiche'].', '.$tableau[$i]['nom_bdd'].', '.$valeur[$tableau[$i]['type'].$tableau[$i]['nom_bdd']].')';
-
 
784
                }
-
 
785
				$resultat = $GLOBALS['_BAZAR_']['db']->query($requetesuppression) ;
779
				} else {
786
				$resultat = $GLOBALS['_BAZAR_']['db']->query($requeteinsertion) ;
-
 
787
				if (DB::isError($resultat)) {
780
					$val=BAZ_NON_PRECISE;
788
					die ($resultat->getMessage().$resultat->getDebugInfo()) ;
781
				}
-
 
782
				continue ;
789
				}
783
			}
-
 
784
			//cas des champs texte et textarea
790
			}
-
 
791
			else {
-
 
792
				//cas des dates
-
 
793
				if (($tableau[$i]['type']=='listedatedeb')or($tableau[$i]['type']=='listedatefin')) {
-
 
794
					$val=$valeur[$tableau[$i]['nom_bdd']]['Y'].'-'.$valeur[$tableau[$i]['nom_bdd']]['m'].'-'.$valeur[$tableau[$i]['nom_bdd']]['d'];
-
 
795
				}
785
			else {
796
				//on mets les slashes pour les saisies dans les champs texte et textearea
-
 
797
				$val=addslashes($valeur[$tableau[$i]['nom_bdd']]);
786
				$val=addslashes($valeur[$tableau[$i]['nom_bdd']]);
798
				$requete.=$tableau[$i]['nom_bdd'].'="'.$val.'", ';
787
			}
-
 
788
			$requete.=$tableau[$i]['nom_bdd'].'="'.$val.'", ';
799
			}			
789
		}
800
		}
790
	}
-
 
791
	
801
	}	
792
	$requete.=' bf_date_maj_fiche=NOW()';
-
 
793
	
802
	$requete.=' bf_date_maj_fiche=NOW()';	
794
	return $requete;
803
	return $requete;
Line 795... Line 804...
795
}
804
}
796
 
805
 
Line 801... Line 810...
801
* @return   void
810
* @return   void
802
*/
811
*/
803
function baz_insertion($valeur) {			
812
function baz_insertion($valeur) {			
804
        // ===========  Insertion d'une nouvelle fiche ===================	
813
        // ===========  Insertion d'une nouvelle fiche ===================	
805
        //requete d'insertion dans bazar_fiche
814
        //requete d'insertion dans bazar_fiche
806
        $id_fiche = baz_nextid('bazar_fiche', 'bf_id_fiche', $GLOBALS['_BAZAR_']['db']) ;
815
        $GLOBALS['_BAZAR_']['id_fiche'] = baz_nextid('bazar_fiche', 'bf_id_fiche', $GLOBALS['_BAZAR_']['db']) ;
807
        $requete = 'INSERT INTO bazar_fiche SET bf_id_fiche='.$id_fiche.','.
816
        $requete = 'INSERT INTO bazar_fiche SET bf_id_fiche='.$GLOBALS['_BAZAR_']['id_fiche'].','.
808
		   'bf_ce_utilisateur='.$GLOBALS['id_user'].', bf_ce_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'].','.
817
		   'bf_ce_utilisateur='.$GLOBALS['id_user'].', bf_ce_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'].','.
809
		   'bf_date_creation_fiche=NOW(),';
818
		   'bf_date_creation_fiche=NOW(),';
810
		if ($GLOBALS['_BAZAR_']['appropriation']== 1) {
819
		if ($GLOBALS['_BAZAR_']['appropriation']== 1) {
811
			$requete .= 'bf_date_debut_validite_fiche=now(), ' ;
820
			$requete .= 'bf_date_debut_validite_fiche=now(), ' ;
812
		}
821
		}
813
		$requete .=requete_bazar_fiche(&$valeur) ;
822
		$requete .=requete_bazar_fiche(&$valeur) ;		
814
		
-
 
815
		$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
823
		$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
816
		if (DB::isError($resultat)) {
824
		if (DB::isError($resultat)) {
817
			die ($resultat->getMessage().$resultat->getDebugInfo()) ;
825
			die ($resultat->getMessage().$resultat->getDebugInfo()) ;
818
		}
826
		}
819
		
-
 
820
		// traitement des cases à cocher, donc des tables jointes,
-
 
821
		// l'info est dans le champs table_jointe, champs_id_fiche, champs_id_table_jointe
-
 
822
		$tableau = ($GLOBALS['_BAZAR_']['template']);
-
 
823
		
-
 
824
		for ($i=0; $i<count($tableau); $i++) {
-
 
825
			if ($tableau[$i]['type']=='checkbox') {
-
 
826
				$requete_source = 'select * from '.$tableau[$i]['table_source'] ;
-
 
827
				$resultat_source = $GLOBALS['_BAZAR_']['db']->query($requete_source) ;
-
 
828
				if (DB::isError($resultat_source)) {
-
 
829
					die ($resultat_source->getMessage().$resultat_source->getDebugInfo()) ;
-
 
830
				}
-
 
831
				while ($ligne_source = $resultat_source->fetchRow(DB_FETCHMODE_ORDERED)) {
-
 
832
					if (isset($valeur[$tableau[$i]['table_jointe']][$ligne_source[0]]) 
-
 
833
									&& $valeur[$tableau[$i]['table_jointe']][$ligne_source[0]] != '' ) {
-
 
834
						$requete = 'insert into '.$tableau[$i]['table_jointe'].' set '.
-
 
835
									$tableau[$i]['champs_id_fiche'].'='.$id_fiche.
-
 
836
									','.$tableau[$i]['champs_id_table_jointe'].'='.
-
 
837
									$ligne_source[0];
-
 
838
						$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
-
 
839
						if (DB::isError($resultat)) {
-
 
840
							echo $resultat->getMessage().$resultat->getDebugInfo() ;	
-
 
841
						}
-
 
842
					}
-
 
843
				}
-
 
844
			}	
-
 
845
		}
-
 
846
		return;
827
		return;
847
}
828
}
Line 848... Line 829...
848
 
829
 
Line 959... Line 940...
959
* @global   L'identifiant de la fiche a supprimer
940
* @global   L'identifiant de la fiche a supprimer
960
* @return   void
941
* @return   void
961
*/
942
*/
962
function baz_suppression() {
943
function baz_suppression() {
963
	//suppression dans bazar_fiche
944
	//suppression dans bazar_fiche
964
	$requete = "DELETE FROM bazar_fiche WHERE bf_id_fiche = ".$_GET['id_fiche'];
945
	$requete = 'DELETE FROM bazar_fiche WHERE bf_id_fiche = '.$_GET['id_fiche'];
965
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
946
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
966
	if (DB::isError($resultat)) {
947
	if (DB::isError($resultat)) {
967
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
948
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
968
	}
949
	}
Line 969... Line -...
969
	
-
 
970
	$GLOBALS['_BAZAR_']['typeannonce'] = $_GET['typeannonce'] ;
-
 
971
	// S'il y a des tables jointes, on les supprime aussi
950
	
972
	// traitement des cases à cocher, donc des tables jointes,
-
 
973
	// l'info est dans le champs table_jointe, champs_id_fiche, champs_id_table_jointe
-
 
974
	$tableau = ($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
-
 
975
	
-
 
976
	for ($i=0; $i<count($tableau); $i++) {
-
 
977
		if ($tableau[$i]['type']=='checkbox') {
-
 
978
			$requete_suppr = 'delete from '.$tableau[$i]['table_jointe'].
951
	// suppression des valeurs des listes et des cases à cocher
979
							' where '.$tableau[$i]['champs_id_fiche'].'='.$_GET['id_fiche'] ;
952
	$requete = 'DELETE FROM bazar_fiche_valeur_liste WHERE bfvl_ce_fiche='.$_GET['id_fiche'];
980
			$resultat_suppr = $GLOBALS['_BAZAR_']['db']->query($requete_suppr) ;echo $requete_suppr;
953
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
981
			if (DB::isError($resultat_suppr)) {
954
	if (DB::isError($resultat)) {
982
				die ($resultat_suppr->getMessage().$resultat_suppr->getDebugInfo()) ;
-
 
983
			}
-
 
984
		}	
955
		die ($resultat->getMessage().$resultat->getDebugInfo()) ;
-
 
956
	}
985
	}
957
	
986
	//suppression des urls associes
958
	//suppression des urls associes
987
	$requete = "SELECT bu_id_url FROM bazar_url WHERE bu_ce_fiche = ".$_GET['id_fiche'];
959
	$requete = 'SELECT bu_id_url FROM bazar_url WHERE bu_ce_fiche = '.$_GET['id_fiche'];
988
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
960
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
989
	if (DB::isError($resultat)) {
961
	if (DB::isError($resultat)) {
990
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
962
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
991
	}
963
	}
992
	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
964
	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
993
		baz_suppression_url($ligne['bu_id_url']);
965
		baz_suppression_url($ligne['bu_id_url']);
Line 994... Line 966...
994
	}
966
	}
995
	
967
	
996
	//suppression des fichiers associes
968
	//suppression des fichiers associes
997
	$requete = "SELECT bfj_id_fichier FROM bazar_fichier_joint WHERE bfj_ce_fiche = ".$_GET['id_fiche'];
969
	$requete = 'SELECT bfj_id_fichier FROM bazar_fichier_joint WHERE bfj_ce_fiche = '.$_GET['id_fiche'];
998
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
970
	$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
999
	if (DB::isError($resultat)) {
971
	if (DB::isError($resultat)) {
1000
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
972
		die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
1001
	}
973
	}
1002
	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
974
	while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
Line 1003... Line 975...
1003
		baz_suppression_fichier($ligne['bfj_id_fichier']);
975
		baz_suppression_fichier($ligne['bfj_id_fichier']);
1004
	}
976
	}
1005
	
977
	
1006
	//suppression de l'image associée
-
 
1007
	baz_suppression_image($_GET['id_fiche']);
-
 
1008
	
978
	//suppression de l'image associée
1009
	//======================CREATION DU FLUX RSS================================
979
	baz_suppression_image($_GET['id_fiche']);
Line 1010... Line 980...
1010
	if (isset($_GET['typeannonce'])) $typeannonce=$_GET['typeannonce'];
980
		
Line 1202... Line 1172...
1202
	
1172
	
1203
	return $res;
1173
	return $res;
Line 1204... Line 1174...
1204
}
1174
}
1205
 
1175
 
1206
 
1176
 
1207
/** baz_valeurs_fiche() - Renvoie un tableau avec les valeurs par défaut du formulaire d'inscription
1177
/** baz_valeurs_fiche() - Renvoie un tableau avec les valeurs par defaut du formulaire d'inscription
1208
*
1178
*
1209
* @param    integer Identifiant de la fiche
1179
* @param    integer Identifiant de la fiche
1210
*
1180
*
1211
* @return   array   Valeurs enregistrées pour cette fiche
1181
* @return   array   Valeurs enregistrees pour cette fiche
1212
*/
1182
*/
1213
function baz_valeurs_fiche($idfiche) {
1183
function baz_valeurs_fiche($idfiche) {
Line 1379... Line 1349...
1379
}
1349
}
Line 1380... Line 1350...
1380
 
1350
 
1381
/* +--Fin du code ----------------------------------------------------------------------------------------+
1351
/* +--Fin du code ----------------------------------------------------------------------------------------+
1382
*
1352
*
-
 
1353
* $Log: not supported by cvs2svn $
-
 
1354
* Revision 1.31  2006/01/17 10:07:08  alexandre_tb
-
 
1355
* en cours
1383
* $Log: not supported by cvs2svn $
1356
*
1384
* Revision 1.30  2006/01/16 09:42:57  alexandre_tb
1357
* Revision 1.30  2006/01/16 09:42:57  alexandre_tb
1385
* en cours
1358
* en cours
1386
*
1359
*
1387
* Revision 1.29  2006/01/13 14:12:51  florian
1360
* Revision 1.29  2006/01/13 14:12:51  florian