Subversion Repositories Applications.bazar

Compare Revisions

Ignore whitespace Rev 73 → Rev 74

/trunk/bibliotheque/bazar.fonct.php
19,7 → 19,7
// | License along with this library; if not, write to the Free Software |
// | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
// +------------------------------------------------------------------------------------------------------+
// CVS : $Id: bazar.fonct.php,v 1.31 2006-01-17 10:07:08 alexandre_tb Exp $
// CVS : $Id: bazar.fonct.php,v 1.32 2006-01-18 10:03:36 florian Exp $
/**
*
* Fonctions du module bazar
31,7 → 31,7
*@author Florian Schmitt <florian@ecole-et-nature.org>
//Autres auteurs :
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.31 $ $Date: 2006-01-17 10:07:08 $
*@version $Revision: 1.32 $ $Date: 2006-01-18 10:03:36 $
// +------------------------------------------------------------------------------------------------------+
*/
 
753,6 → 753,7
*/
function requete_bazar_fiche($valeur) {
$requete=NULL;
print_r($valeur);
//l'annonce est directement publiée pour les admins
if ((niveau_droit($GLOBALS['_BAZAR_']['id_typeannonce'],$GLOBALS['id_user'])=='administrateur') or
(niveau_droit($GLOBALS['_BAZAR_']['id_typeannonce'],$GLOBALS['id_user'])=='superadministrateur')) {
764,33 → 765,41
$tableau=baz_valeurs_template($GLOBALS['_BAZAR_']['template']);
for ($i=0; $i<count($tableau); $i++) {
if ($tableau[$i]['type']!='labelhtml') {
//cas des dates
if (($tableau[$i]['type']=='listedatedeb')or($tableau[$i]['type']=='listedatefin')) {
$val=$valeur[$tableau[$i]['nom_bdd']]['Y'].'-'.$valeur[$tableau[$i]['nom_bdd']]['m'].'-'.$valeur[$tableau[$i]['nom_bdd']]['d'];
}
//cas des checkbox
elseif (($tableau[$i]['type']=='checkbox')or($tableau[$i]['type']=='liste')) {
if ($tableau[$i]['type']!='labelhtml') {
//cas des checkbox et des listes
if (($tableau[$i]['type']=='checkbox')or($tableau[$i]['type']=='liste')) {
//on supprime les anciennes valeurs de la table bazar_fiche_valeur_liste
$requetesuppression='DELETE FROM bazar_fiche_valeur_liste WHERE bfvl_ce_fiche= AND bfvl_ce_liste=';
$requeteinsertion='INSERT INTO bazar_fiche_valeur VALUES ';
if (isset($valeur[$tableau[$i]['nom_bdd']])) {
$val=implode('**', array_keys($valeur[$tableau[$i]['nom_bdd']]));
} else {
$val=BAZ_NON_PRECISE;
$requetesuppression='DELETE FROM bazar_fiche_valeur_liste WHERE bfvl_ce_fiche='.$GLOBALS['_BAZAR_']['id_fiche'].' AND bfvl_ce_liste='.$tableau[$i]['nom_bdd'];
//on insere les nouvelles valeurs
$requeteinsertion='INSERT INTO bazar_fiche_valeur_liste (bfvl_ce_fiche, bfvl_ce_liste, bfvl_valeur) VALUES ';
//pour les checkbox, les différentes valeurs sont dans un tableau
if (is_array($valeur[$tableau[$i]['type'].$tableau[$i]['nom_bdd']])) {
while (list($cle, $val) = each($valeur[$tableau[$i]['type'].$tableau[$i]['nom_bdd']])) {
$requeteinsertion .= ' ('.$GLOBALS['_BAZAR_']['id_fiche'].', '.$tableau[$i]['nom_bdd'].', '.$val.') ';
}
}
//pour les listes, une insertion de la valeur suffit
else {
$requeteinsertion .= '('.$GLOBALS['_BAZAR_']['id_fiche'].', '.$tableau[$i]['nom_bdd'].', '.$valeur[$tableau[$i]['type'].$tableau[$i]['nom_bdd']].')';
}
$resultat = $GLOBALS['_BAZAR_']['db']->query($requetesuppression) ;
$resultat = $GLOBALS['_BAZAR_']['db']->query($requeteinsertion) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
continue ;
}
//cas des champs texte et textarea
else {
//cas des dates
if (($tableau[$i]['type']=='listedatedeb')or($tableau[$i]['type']=='listedatefin')) {
$val=$valeur[$tableau[$i]['nom_bdd']]['Y'].'-'.$valeur[$tableau[$i]['nom_bdd']]['m'].'-'.$valeur[$tableau[$i]['nom_bdd']]['d'];
}
//on mets les slashes pour les saisies dans les champs texte et textearea
$val=addslashes($valeur[$tableau[$i]['nom_bdd']]);
}
$requete.=$tableau[$i]['nom_bdd'].'="'.$val.'", ';
$requete.=$tableau[$i]['nom_bdd'].'="'.$val.'", ';
}
}
}
$requete.=' bf_date_maj_fiche=NOW()';
}
$requete.=' bf_date_maj_fiche=NOW()';
return $requete;
}
 
803,46 → 812,18
function baz_insertion($valeur) {
// =========== Insertion d'une nouvelle fiche ===================
//requete d'insertion dans bazar_fiche
$id_fiche = baz_nextid('bazar_fiche', 'bf_id_fiche', $GLOBALS['_BAZAR_']['db']) ;
$requete = 'INSERT INTO bazar_fiche SET bf_id_fiche='.$id_fiche.','.
$GLOBALS['_BAZAR_']['id_fiche'] = baz_nextid('bazar_fiche', 'bf_id_fiche', $GLOBALS['_BAZAR_']['db']) ;
$requete = 'INSERT INTO bazar_fiche SET bf_id_fiche='.$GLOBALS['_BAZAR_']['id_fiche'].','.
'bf_ce_utilisateur='.$GLOBALS['id_user'].', bf_ce_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'].','.
'bf_date_creation_fiche=NOW(),';
if ($GLOBALS['_BAZAR_']['appropriation']== 1) {
$requete .= 'bf_date_debut_validite_fiche=now(), ' ;
}
$requete .=requete_bazar_fiche(&$valeur) ;
$requete .=requete_bazar_fiche(&$valeur) ;
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
// traitement des cases à cocher, donc des tables jointes,
// l'info est dans le champs table_jointe, champs_id_fiche, champs_id_table_jointe
$tableau = ($GLOBALS['_BAZAR_']['template']);
for ($i=0; $i<count($tableau); $i++) {
if ($tableau[$i]['type']=='checkbox') {
$requete_source = 'select * from '.$tableau[$i]['table_source'] ;
$resultat_source = $GLOBALS['_BAZAR_']['db']->query($requete_source) ;
if (DB::isError($resultat_source)) {
die ($resultat_source->getMessage().$resultat_source->getDebugInfo()) ;
}
while ($ligne_source = $resultat_source->fetchRow(DB_FETCHMODE_ORDERED)) {
if (isset($valeur[$tableau[$i]['table_jointe']][$ligne_source[0]])
&& $valeur[$tableau[$i]['table_jointe']][$ligne_source[0]] != '' ) {
$requete = 'insert into '.$tableau[$i]['table_jointe'].' set '.
$tableau[$i]['champs_id_fiche'].'='.$id_fiche.
','.$tableau[$i]['champs_id_table_jointe'].'='.
$ligne_source[0];
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
echo $resultat->getMessage().$resultat->getDebugInfo() ;
}
}
}
}
}
return;
}
 
961,30 → 942,21
*/
function baz_suppression() {
//suppression dans bazar_fiche
$requete = "DELETE FROM bazar_fiche WHERE bf_id_fiche = ".$_GET['id_fiche'];
$requete = 'DELETE FROM bazar_fiche WHERE bf_id_fiche = '.$_GET['id_fiche'];
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
}
$GLOBALS['_BAZAR_']['typeannonce'] = $_GET['typeannonce'] ;
// S'il y a des tables jointes, on les supprime aussi
// traitement des cases à cocher, donc des tables jointes,
// l'info est dans le champs table_jointe, champs_id_fiche, champs_id_table_jointe
$tableau = ($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
// suppression des valeurs des listes et des cases à cocher
$requete = 'DELETE FROM bazar_fiche_valeur_liste WHERE bfvl_ce_fiche='.$_GET['id_fiche'];
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
for ($i=0; $i<count($tableau); $i++) {
if ($tableau[$i]['type']=='checkbox') {
$requete_suppr = 'delete from '.$tableau[$i]['table_jointe'].
' where '.$tableau[$i]['champs_id_fiche'].'='.$_GET['id_fiche'] ;
$resultat_suppr = $GLOBALS['_BAZAR_']['db']->query($requete_suppr) ;echo $requete_suppr;
if (DB::isError($resultat_suppr)) {
die ($resultat_suppr->getMessage().$resultat_suppr->getDebugInfo()) ;
}
}
}
//suppression des urls associes
$requete = "SELECT bu_id_url FROM bazar_url WHERE bu_ce_fiche = ".$_GET['id_fiche'];
$requete = 'SELECT bu_id_url FROM bazar_url WHERE bu_ce_fiche = '.$_GET['id_fiche'];
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
994,7 → 966,7
}
//suppression des fichiers associes
$requete = "SELECT bfj_id_fichier FROM bazar_fichier_joint WHERE bfj_ce_fiche = ".$_GET['id_fiche'];
$requete = 'SELECT bfj_id_fichier FROM bazar_fichier_joint WHERE bfj_ce_fiche = '.$_GET['id_fiche'];
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ;
1005,9 → 977,7
//suppression de l'image associée
baz_suppression_image($_GET['id_fiche']);
//======================CREATION DU FLUX RSS================================
if (isset($_GET['typeannonce'])) $typeannonce=$_GET['typeannonce'];
return ;
}
 
1204,11 → 1174,11
}
 
 
/** baz_valeurs_fiche() - Renvoie un tableau avec les valeurs par défaut du formulaire d'inscription
/** baz_valeurs_fiche() - Renvoie un tableau avec les valeurs par defaut du formulaire d'inscription
*
* @param integer Identifiant de la fiche
*
* @return array Valeurs enregistrées pour cette fiche
* @return array Valeurs enregistrees pour cette fiche
*/
function baz_valeurs_fiche($idfiche) {
$requete = 'SELECT * FROM bazar_fiche WHERE bf_id_fiche='.$idfiche;
1381,6 → 1351,9
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.31 2006/01/17 10:07:08 alexandre_tb
* en cours
*
* Revision 1.30 2006/01/16 09:42:57 alexandre_tb
* en cours
*