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 |
* |