241,7 → 241,7 |
if ($GLOBALS['AUTH']->getAuth()) { |
// requete pour voir si l'utilisateur a des fiches a son nom, classees par date de MAJ et nature d'annonce |
$requete = 'SELECT * FROM bazar_fiche, bazar_nature WHERE bf_ce_utilisateur='. $GLOBALS['id_user']. |
' AND bn_id_nature=bf_ce_nature AND bn_ce_id_menu IN ('.$GLOBALS['_BAZAR_']['categorie_nature'].') '; |
' AND bn_ce_id_menu IN ('.$GLOBALS['_BAZAR_']['categorie_nature'].') '; |
if (isset($GLOBALS['_BAZAR_']['langue'])) $requete .= ' and bn_ce_i18n like "'.$GLOBALS['_BAZAR_']['langue'].'%" '; |
$requete .= ' ORDER BY bf_date_maj_fiche DESC,bf_ce_nature ASC'; |
|
252,7 → 252,7 |
if ($resultat->numRows() != 0) { |
$tableAttr = array('id' => 'table_bazar') ; |
$table = new HTML_Table($tableAttr) ; |
$entete = array (BAZ_TITREANNONCE , BAZ_TYPEANNONCE, BAZ_ETATPUBLICATION, BAZ_MODIFIER, BAZ_SUPPRIMER) ; |
$entete = array (BAZ_TITREANNONCE , BAZ_TYPEANNONCE, BAZ_ETATPUBLICATION, BAZ_MODIFIER, BAZ_SUPPRIMER, 'Dupliquer') ; |
$table->addRow($entete) ; |
$table->setRowType (0, "th") ; |
|
280,6 → 280,14 |
$lien_supprimer->addQueryString('typeannonce', $ligne['bn_id_nature']); |
$lien_supprimer_url=$lien_supprimer->getURL(); |
|
$lien_dupliquer = $GLOBALS['_BAZAR_']['url']; |
$lien_dupliquer->addQueryString(BAZ_VARIABLE_ACTION, BAZ_ACTION_NOUVEAU); |
$lien_dupliquer->addQueryString(BAZ_VARIABLE_ID_FICHE, $ligne['bf_id_fiche']); |
$lien_dupliquer->addQueryString(BAZ_VARIABLE_DUPLICATION, 1); |
$lien_dupliquer=$lien_dupliquer->getURL(); |
$GLOBALS['_BAZAR_']['url']->removeQueryString(BAZ_VARIABLE_DUPLICATION); |
|
|
$table->addRow (array( |
'<a href="'.$lien_voir_url.'">'.$ligne['bf_titre'].'</a>'."\n", // col 1 : le nom |
$ligne['bn_label_nature']."\n", // col 2: type annonce |
286,7 → 294,8 |
$publiee."\n", // col 3 : publiee ou non |
'<a href="'.$lien_modifier_url.'">'.BAZ_MODIFIER.'</a>'."\n", // col 4 : modifier |
'<a href="'.$lien_supprimer_url.'" onclick="javascript:return '. |
'confirm(\''.BAZ_CONFIRMATION_SUPPRESSION.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 5 : supprimer |
'confirm(\''.BAZ_CONFIRMATION_SUPPRESSION.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n", // col 5 : supprimer |
'<a href="'.$lien_dupliquer.'">Dupliquer</a>'."\n")) ; |
} |
$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire")); |
$table->updateColAttributes(1, array("align" => "left")); |
314,6 → 323,7 |
return $res; |
} |
|
|
/** baz_gestion_droits() interface de gestion des droits |
* |
* return string le code HTML |
510,7 → 520,6 |
*/ |
function baz_formulaire($mode) { |
$res = ''; |
|
if ($GLOBALS['AUTH']->getAuth()) { |
$lien_formulaire=$GLOBALS['_BAZAR_']['url']; |
|
569,6 → 578,7 |
$res = ''; |
//requete pour obtenir le nom et la description des types d'annonce |
$requete = 'SELECT * FROM bazar_nature WHERE bn_ce_id_menu IN ('.$GLOBALS['_BAZAR_']['categorie_nature'].') '; |
|
if (isset($GLOBALS['_BAZAR_']['langue'])) { |
$requete .= ' and bn_ce_i18n like "'.$GLOBALS['_BAZAR_']['langue'].'%" '; |
} |
615,6 → 625,14 |
} |
$squelette->setElementTemplate( '<div class="listechoix">'."\n".'{element}'."\n".'</div>'."\n"); |
|
//Mettre les annonces en choix par defaut |
$formtemplate->setdefaults(array('typeannonce'=>'1')); |
|
// Bouton d annulation |
$lien_formulaire->removeQueryString('action'); |
$buttons[] = &HTML_QuickForm::createElement('link', 'annuler', BAZ_ANNULER, |
preg_replace ("/&/", "&", $lien_formulaire->getURL()), BAZ_ANNULER); // Le preg_replace contourne un pb de QuickForm et Net_URL |
// qui remplacent deux fois les & par des & |
//Bouton de validation du formulaire // ce qui fait échouer le lien |
$buttons[] = &HTML_QuickForm::createElement('submit', 'valider', BAZ_VALIDER); |
$formtemplate->addGroup($buttons, null, null, ' '); |
639,10 → 657,18 |
$modele = new bazarTemplate($GLOBALS['_BAZAR_']['db']); |
$html = $modele->getTemplate(BAZ_TEMPLATE_FORMULAIRE, $GLOBALS['_BAZAR_']['langue'],$GLOBALS['_BAZAR_']['categorie_nature']); |
if (!PEAR::isError($html)) { |
if (isset($_GET[BAZ_VARIABLE_DUPLICATION])) { |
$res = str_replace ('{FORMULAIRE}', baz_afficher_formulaire_annonce('duplication',$formtemplate), $html); |
} else { |
$res = str_replace ('{FORMULAIRE}', baz_afficher_formulaire_annonce('insertion',$formtemplate), $html); |
} |
} else { |
if (isset($_GET[BAZ_VARIABLE_DUPLICATION])) { |
$res = baz_afficher_formulaire_annonce('duplication',$formtemplate); |
} else { |
$res = baz_afficher_formulaire_annonce('insertion',$formtemplate); |
} |
} |
} else { |
// Pas de droit pour deposer un annonce |
return '<div>Pas de droits suffisants</div>'; |
657,17 → 683,19 |
} |
|
// Nettoyage de l'url avant les return : apparement inutile sinon pose pb (url applette deconnexion et moteur de recherche) [jpm le 17 mars 2008] |
//$GLOBALS['_BAZAR_']['url']->removeQueryString(BAZ_VARIABLE_ACTION); |
//$GLOBALS['_BAZAR_']['url']->removeQueryString('id_fiche'); |
$GLOBALS['_BAZAR_']['url']->removeQueryString(BAZ_VARIABLE_ACTION); |
$GLOBALS['_BAZAR_']['url']->removeQueryString('id_fiche'); |
|
//------------------------------------------------------------------------------------------------ |
//CAS DE L'INSCRIPTION D'UNE ANNONCE |
//------------------------------------------------------------------------------------------------ |
if ($mode == BAZ_ACTION_NOUVEAU_V) { |
if ($formtemplate->validate()) { |
$formtemplate->process('baz_insertion', false) ; |
if ($formtemplate->validate() && !isset($_SESSION['formulaire_annonce_valide'])) { |
//$formtemplate->process('baz_insertion', false) ; |
$id_fiche = baz_insertion ($formtemplate->getSubmitValues()); |
// Redirection vers mes_fiches pour eviter la revalidation du formulaire |
$GLOBALS['_BAZAR_']['url']->addQueryString (BAZ_VARIABLE_VOIR, BAZ_VOIR_MES_FICHES); |
$GLOBALS['_BAZAR_']['url']->addQueryString (BAZ_VARIABLE_ACTION, BAZ_ACTION_POST_VALIDATION); |
$GLOBALS['_BAZAR_']['url']->addQueryString (BAZ_VARIABLE_ID_FICHE, $id_fiche); |
header ('Location: '.str_replace ('&', '&', $GLOBALS['_BAZAR_']['url']->getURL())) ; |
exit(); |
} |
703,9 → 731,9 |
* @return string code HTML avec formulaire |
*/ |
function baz_afficher_formulaire_annonce($mode='insertion',$formtemplate) { |
if ($mode=='modification') { |
if ($mode=='modification' || $mode == 'duplication') { |
//initialisation de la variable globale id_fiche |
$GLOBALS['_BAZAR_']['id_fiche'] = $_REQUEST['id_fiche']; |
$GLOBALS['_BAZAR_']['id_fiche'] = $_REQUEST[BAZ_VARIABLE_ID_FICHE]; |
|
//suppression eventuelle d'une url, d'un fichier ou d'une image |
if (isset($_GET['id_url'])) { |
734,11 → 762,25 |
else { |
//Parcours du fichier de templates, pour mettre les valeurs des champs |
$tableau=baz_valeurs_template($GLOBALS['_BAZAR_']['template']); |
if ($mode=='modification') { |
if ($mode=='modification' || $mode == 'duplication') { |
//Ajout des valeurs par defaut |
$valeurs_par_defaut = baz_valeurs_fiche($GLOBALS['_BAZAR_']['id_fiche']) ; |
|
for ($i=0; $i<count($tableau); $i++) { |
|
if (isset($ligne[$tableau[$i]['nom_bdd']])) { |
$type = $tableau[$i]['type']; |
$valeur = $ligne[$tableau[$i]['nom_bdd']]; |
} else { |
$type = $tableau[$i]['type']; |
$valeur = ''; |
} |
/* |
$element = Bazar_element::factory($type, $tableau[$i]); |
if (!PEAR::isError($element)) { |
if (method_exists($element, 'toForm'))$res .= $element->toForm($valeur); |
} |
*/ |
if ( $tableau[$i]['type']=='liste' || $tableau[$i]['type']=='checkbox') { |
$def=$tableau[$i]['type'].$tableau[$i]['nom_bdd']; |
} |
757,11 → 799,10 |
isset ($valeurs_par_defaut[$def]) ? $valeurs_par_defaut[$def] : '', |
$tableau[$i]['table_source'], $tableau[$i]['obligatoire']) ; |
if ($tableau[$i]['type']=='carte_google') { |
//include_once GEN_CHEMIN_API.'formulaire/formulaire.fonct.google.php'; |
include_once 'bazar.fonct.google.php' ; |
include_once GEN_CHEMIN_API.'formulaire/formulaire.fonct.google.php'; |
GEN_stockerCodeScript($script); |
// On ajoute l attribut load a la balise body |
//GEN_AttributsBody('onload', 'load()'); |
GEN_AttributsBody('onload', 'load()'); |
} |
} |
} |
770,16 → 811,17 |
$tableau[$i]['type']($formtemplate, $tableau[$i]['nom_bdd'], $tableau[$i]['label'], $tableau[$i]['limite1'], |
$tableau[$i]['limite2'], $tableau[$i]['defaut'], $tableau[$i]['table_source'], $tableau[$i]['obligatoire']) ; |
if ($tableau[$i]['type'] == 'carte_google') { |
//include_once GEN_CHEMIN_API.'formulaire/formulaire.fonct.google.php'; |
include_once 'bazar.fonct.google.php' ; |
include_once GEN_CHEMIN_API.'formulaire/formulaire.fonct.google.php'; |
GEN_stockerCodeScript($script); |
// On ajoute l attribut load a la balise body |
//GEN_AttributsBody('onload', 'load()'); |
GEN_AttributsBody('onload', 'load()'); |
} |
} |
} |
$formtemplate->addElement('hidden', 'typeannonce', $GLOBALS['_BAZAR_']['id_typeannonce']); |
|
// Un champs cache pour la duplication |
if ($mode == 'duplication') $formtemplate->addElement('hidden', 'fiche_dupliquee', $GLOBALS['_BAZAR_']['id_fiche']); |
// Bouton d annulation |
$attr = $formtemplate->getAttributes(); |
$lien_formulaire = new Net_URL($attr[BAZ_VARIABLE_ACTION]); |
841,6 → 883,7 |
} |
//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($requeteinsertion) ; |
926,35 → 969,37 |
* @return void |
*/ |
function baz_insertion($valeur) { |
|
// =========== Insertion d'une nouvelle fiche =================== |
// dans le cas où on traite le type d'évenements, on le récupère dans la globale id_typeannonce |
// TODO: Vérifier si ça marche !!!! |
if (isset($valeur['liste31']) && $valeur['liste31'] != '') { |
$GLOBALS['_BAZAR_']['id_typeannonce'] = $valeur['liste31'] ; |
} |
|
//requete d'insertion dans bazar_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(),'; |
'bf_date_creation_fiche=NOW() , '.requete_bazar_fiche($valeur); |
if (!isset($_REQUEST['bf_date_debut_validite_fiche'])) { |
$requete .= 'bf_date_debut_validite_fiche=now(), bf_date_fin_validite_fiche="0000-00-00", ' ; |
$requete .= ', bf_date_debut_validite_fiche=now(), bf_date_fin_validite_fiche="0000-00-00" ' ; |
} |
$requete .=requete_bazar_fiche(&$valeur) ; |
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ; |
if (DB::isError($resultat)) { |
return ($resultat->getMessage().$resultat->getDebugInfo()) ; |
die($resultat->getMessage().$resultat->getDebugInfo()) ; |
} |
|
mail('aurelien@tela-botanica.org','debug',$requete) ; |
|
// Envoie d un mail aux administrateurs |
$utilisateur = new Administrateur_bazar($GLOBALS['AUTH']); |
|
$mails = bazar::getMailAdmin($GLOBALS['_BAZAR_']['id_typeannonce']); |
include_once BAZ_CHEMIN_APPLI.'bibliotheque/bazarTemplate.class.php'; |
$template = new bazarTemplate($GLOBALS['_BAZAR_']['db']); |
$sujet = $template->getTemplate(BAZ_TEMPLATE_MAIL_NOUVELLE_FICHE_SUJET, $GLOBALS['_BAZAR_']['langue'], $GLOBALS['_BAZAR_']['id_typeannonce']); |
$corps = $template->getTemplate(BAZ_TEMPLATE_MAIL_NOUVELLE_FICHE_CORPS, $GLOBALS['_BAZAR_']['langue'], $GLOBALS['_BAZAR_']['id_typeannonce']); |
if (is_array ($mails)) { |
foreach ($mails as $mail) { |
mail ($mail, $sujet, $corps); |
if (!$utilisateur->isAdmin($GLOBALS['_BAZAR_']['id_typeannonce']) || !$utilisateur->isSuperAdmin()) { |
bazar::notifier(); |
} |
} |
|
return ; |
// On redirige |
return $GLOBALS['_BAZAR_']['id_fiche']; |
} |
|
|
1043,9 → 1088,18 |
* @return void |
*/ |
function baz_mise_a_jour($valeur) { |
|
if (isset($valeur['liste31']) && $valeur['liste31'] != '') { |
$GLOBALS['_BAZAR_']['id_typeannonce'] = $valeur['liste31'] ; |
} |
|
//MAJ de bazar_fiche |
$requete = 'UPDATE bazar_fiche SET '.requete_bazar_fiche(&$valeur,$GLOBALS['_BAZAR_']['id_typeannonce']); |
$requete = 'UPDATE bazar_fiche SET '.requete_bazar_fiche(&$valeur); |
if (isset($valeur['liste31']) && $valeur['liste31'] != '') { |
$requete .= ' ,bf_ce_nature = '.$GLOBALS['_BAZAR_']['id_typeannonce'] ; |
} |
$requete.= ' WHERE bf_id_fiche='.$GLOBALS['_BAZAR_']['id_fiche']; |
|
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ; |
if (DB::isError($resultat)) { |
die ($resultat->getMessage().$resultat->getDebugInfo()) ; |
1053,7 → 1107,32 |
return; |
} |
|
function baz_post_validation() { |
|
$lien_duplication = clone $GLOBALS['_BAZAR_']['url']; |
$lien_nouvelle_fiche = clone $GLOBALS['_BAZAR_']['url']; |
$lien_mes_fiches = clone $GLOBALS['_BAZAR_']['url']; |
$lien_duplication->addQueryString(BAZ_VARIABLE_ID_FICHE, $GLOBALS['_BAZAR_']['id_fiche']); |
$lien_duplication->addQueryString(BAZ_VARIABLE_DUPLICATION, 1); |
$lien_duplication->addQueryString(BAZ_VARIABLE_ACTION, BAZ_ACTION_NOUVEAU); |
$lien_duplication = $lien_duplication->getURL(); |
|
$lien_nouvelle_fiche->addQueryString(BAZ_VARIABLE_ACTION, BAZ_DEPOSER_ANNONCE); |
$lien_nouvelle_fiche->addQueryString(BAZ_VARIABLE_CATEGORIE_NATURE, $GLOBALS['_BAZAR_']['categorie_nature']); |
$lien_nouvelle_fiche = $lien_nouvelle_fiche->getURL(); |
|
$lien_mes_fiches->addQueryString(BAZ_VARIABLE_VOIR, BAZ_VOIR_MES_FICHES); |
$lien_mes_fiches = $lien_mes_fiches->getURL(); |
|
ob_start(); |
if (file_exists(BAZ_CHEMIN_SQUELETTE.'baz_post_validation.tpl.html')) { |
include_once BAZ_CHEMIN_SQUELETTE.'baz_post_validation.tpl.html'; |
} |
$res = ob_get_contents(); |
ob_end_clean(); |
return $res ; |
} |
|
/** baz_suppression() - Supprime une fiche |
* |
* @global L'identifiant de la fiche a supprimer |