################ Bourse des Bois de Chablis
# deposer.php3 #
################ Formulaire de dépôt ou modification d'annonce
# Initialisation
require("bbc.inc.php3");
require(DIV_LIB);
require(MYSQL_LIB);
GetArgs();
##### HttpPostNames ##### Variables postées
function HttpPostNames () {
$http_post_names = array(
"nAnnonce",
"nOffDem",
"Annonceur",
"Adresse",
"CP_ann",
"Commune_ann",
"Tel",
"Fax",
"Contact",
"Portable",
"Email",
"Statut",
"DateDepot",
"Misajour",
"Clef",
"DateLim",
"nLot",
"Essence",
"QualiDom",
"ModeVente",
"Qte_M3",
"Obs",
"NbLots",
"JoinStatut",
"JoinEssence",
"JoinQualiDom",
"JoinModeVente",
"JoinPostNames",
"Action",
"Submit"
);
global $nOffDem;
if ($nOffDem == 1) {ArrayPush($http_post_names,array("CellTemp","PU_FM3","CP_lot","Commune_lot","JoinCellTemp"));}
return $http_post_names;
}
##### GetRecord ##### Récupère le contenu de l'annonce
function GetRecord ($nAnnonce) {
global $db_connect;
# Compose la requête
$sql = "SELECT t1.*,t2.nLot,t2.nEssence,t2.nQualiDom,t2.nModeVente,t2.Qte_M3,t2.PU_FM3,t2.CP_lot,t2.Commune_lot,t2.Obs";
$sql .= " FROM ".ANN_TABLE." t1, ".LOT_TABLE." t2";
$sql .= " WHERE t2.nAnnonce = t1.nAnnonce AND t1.nAnnonce = $nAnnonce";
$sql .= " AND t2.Actif > 0";
# Jeu de données -> hachage
$dataset = MysqlFetchDataset($sql);
# Transformation -> format variables formulaire
while(list($name,$values) = each($dataset)) {
list($table,$field) = explode(".",$name);
if ($table == "t1") {
$formdata[$field] = $values[0];
} else {
$formdata[$field] = $values;
}
}
/*
echo "*********","
\n";
while(list($name,$values) = each($formdata)) {
echo "$name = ",$values,"
\n";
if (is_array($values)) {
echo "$name = ",implode("|",$values),"
\n";
} else {
echo "$name = ",$values,"
\n";
}
}
echo "*********","
\n";
*/
return $formdata;
}
##### Main ##### Programme principal
# Libellés des boutons
$form_buttons = array("Ajouter un lot","Supprimer le lot ","Prévisualiser","Réinitialiser");
# Aiguillage
if (!$Submit) {
# Formulaire vierge
$title = "Déposer une annonce";
PageHeader($title);
# Contenu des listes d'options
$listes = array("Statut","CellTemp","Essence","QualiDom","ModeVente");
GetOptions($nOffDem,$listes);
# Initialisation du nombre de lots
$NbLots = 1;
# Variables à poster
$http_post_names = HttpPostNames();
} else {
# Variables transmises
$http_post_names = explode("|",$JoinPostNames);
Hash2Vars(CleanPostedVars(Vars2Hash($http_post_names)));
# Prévisualiser
if ($Submit == $form_buttons[2]) {
# Redirige -> script de vérification des entrées -> enregistrement
include("verif.inc.php3");
exit();
# Ajouter un lot
} elseif ($Submit == $form_buttons[0]) {
# Réaffichage en boucle avec un lot vierge en plus
$title = "Déposer une annonce";
PageHeader($title);
# Contenu des listes d'options
$listes = array("Statut","CellTemp","Essence","QualiDom","ModeVente");
GetOptions($nOffDem,$listes);
# Nombre de lots incrémenté
$NbLots++;
# Supprimer un lot
} elseif (ereg($form_buttons[1],$Submit)) {
# Indice du lot
ereg("([0-9]{1,})",$Submit,$regs);
$ind_lot = $regs[1] - 1;
# Suppression du lot s'il est déjà dans la base de données
if ($nAnnonce) {
$sql = "UPDATE ".LOT_TABLE." SET Actif = 0 WHERE nLot = $nLot[$ind_lot]";
ConnectToDb();
mysql_query($sql) or die(mysql_error());
DisconnectFromDb();
}
# Décalage des indices
for ($i = 0; $i < $NbLots; $i++) {
if ($i > $ind_lot) {
$nLot[$i-1] = $nLot[$i];
$Essence[$i-1] = $Essence[$i];
$QualiDom[$i-1] = $QualiDom[$i];
$ModeVente[$i-1] = $ModeVente[$i];
$Qte_M3[$i-1] = $Qte_M3[$i];
$Obs[$i-1] = $Obs[$i];
if ($nOffDem == 1) {
$PU_FM3[$i-1] = $PU_FM3[$i];
$CP_lot[$i-1] = $CP_lot[$i];
$Commune_lot[$i-1] = $Commune_lot[$i];
}
}
}
# Suppression du dernier indice
unset($nLot[$NbLots-1]);
unset($Essence[$NbLots-1]);
unset($QualiDom[$NbLots-1]);
unset($ModeVente[$NbLots-1]);
unset($Qte_M3[$NbLots-1]);
unset($Obs[$NbLots-1]);
if ($nOffDem == 1) {
unset($PU_FM3[$NbLots-1]);
unset($CP_lot[$NbLots-1]);
unset($Commune_lot[$NbLots-1]);
}
# Réaffichage en boucle avec le lot supprimé en moins
$title = "Déposer une annonce";
PageHeader($title);
# Contenu des listes d'options
$listes = array("Statut","CellTemp","Essence","QualiDom","ModeVente");
GetOptions($nOffDem,$listes);
# Nombre de lots décrémenté
$NbLots--;
# Modifier une annonce
} elseif ($Action == "Modif") {
# Modification d'annonce
$title = "Modifier une annonce";
$menu_script = "modifier.php3";
PageHeader($title);
# Enregistrement à modifier
list($nAnnonce,$Annonceur) = split("-",$Annonce,2);
Hash2Vars(GetRecord($nAnnonce));
#ShowData("form");
# Vérifie la clef
CheckKey($ClefPost);
# Contenu des listes d'options
$listes = array("Statut","CellTemp","Essence","QualiDom","ModeVente");
GetOptions($nOffDem,$listes);
# Pré-sélections dans les listes
MakeSelected();
# Nombre de lots
$NbLots = count($nLot);
# Variables à poster
$http_post_names = HttpPostNames();
}
}
?>
\n"; echo "