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.79 2008-10-29 10:41:48 alexandre_tb Exp $ |
// CVS : $Id: bazar.fonct.php,v 1.78 2008-09-17 14:08:45 alexandre_tb 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.79 $ $Date: 2008-10-29 10:41:48 $ |
*@version $Revision: 1.78 $ $Date: 2008-09-17 14:08:45 $ |
// +------------------------------------------------------------------------------------------------------+ |
*/ |
|
254,7 → 254,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, 'Dupliquer') ; |
$entete = array (BAZ_TITREANNONCE , BAZ_TYPEANNONCE, BAZ_ETATPUBLICATION, BAZ_MODIFIER, BAZ_SUPPRIMER) ; |
$table->addRow($entete) ; |
$table->setRowType (0, "th") ; |
|
282,14 → 282,6 |
$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 |
296,8 → 288,7 |
$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 |
'<a href="'.$lien_dupliquer.'">Dupliquer</a>'."\n")) ; |
'confirm(\''.BAZ_CONFIRMATION_SUPPRESSION.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 5 : supprimer |
} |
$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire")); |
$table->updateColAttributes(1, array("align" => "left")); |
579,7 → 570,6 |
$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'].'%" '; |
} |
658,17 → 648,9 |
$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); |
} |
$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); |
} |
$res = baz_afficher_formulaire_annonce('insertion',$formtemplate); |
} |
} else { |
// Pas de droit pour deposer un annonce |
692,11 → 674,9 |
//------------------------------------------------------------------------------------------------ |
if ($mode == BAZ_ACTION_NOUVEAU_V) { |
if ($formtemplate->validate() && !isset($_SESSION['formulaire_annonce_valide'])) { |
//$formtemplate->process('baz_insertion', false) ; |
$id_fiche = baz_insertion ($formtemplate->getSubmitValues()); |
$formtemplate->process('baz_insertion', false) ; |
// Redirection vers mes_fiches pour eviter la revalidation du formulaire |
$GLOBALS['_BAZAR_']['url']->addQueryString (BAZ_VARIABLE_ACTION, BAZ_ACTION_POST_VALIDATION); |
$GLOBALS['_BAZAR_']['url']->addQueryString (BAZ_VARIABLE_ID_FICHE, $id_fiche); |
$GLOBALS['_BAZAR_']['url']->addQueryString (BAZ_VARIABLE_VOIR, BAZ_VOIR_MES_FICHES); |
header ('Location: '.str_replace ('&', '&', $GLOBALS['_BAZAR_']['url']->getURL())) ; |
exit(); |
} |
732,9 → 712,9 |
* @return string code HTML avec formulaire |
*/ |
function baz_afficher_formulaire_annonce($mode='insertion',$formtemplate) { |
if ($mode=='modification' || $mode == 'duplication') { |
if ($mode=='modification') { |
//initialisation de la variable globale id_fiche |
$GLOBALS['_BAZAR_']['id_fiche'] = $_REQUEST[BAZ_VARIABLE_ID_FICHE]; |
$GLOBALS['_BAZAR_']['id_fiche'] = $_REQUEST['id_fiche']; |
|
//suppression eventuelle d'une url, d'un fichier ou d'une image |
if (isset($_GET['id_url'])) { |
763,25 → 743,11 |
else { |
//Parcours du fichier de templates, pour mettre les valeurs des champs |
$tableau=baz_valeurs_template($GLOBALS['_BAZAR_']['template']); |
if ($mode=='modification' || $mode == 'duplication') { |
if ($mode=='modification') { |
//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']; |
} |
821,8 → 787,6 |
} |
$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]); |
894,8 → 858,7 |
} |
//cas des fichiers |
elseif ($tableau[$i]['type']=='fichier') { |
if ((isset($valeur['texte_fichier'.$tableau[$i]['nom_bdd']]) && $valeur['texte_fichier'.$tableau[$i]['nom_bdd']]!='') |
|| isset($_POST['fiche_dupliquee'])){ |
if (isset($valeur['texte_fichier'.$tableau[$i]['nom_bdd']]) && $valeur['texte_fichier'.$tableau[$i]['nom_bdd']]!='') { |
baz_insertion_fichier($valeur['texte_fichier'.$tableau[$i]['nom_bdd']], $GLOBALS['_BAZAR_']['id_fiche'], 'fichier'.$tableau[$i]['nom_bdd']); |
} |
} |
904,10 → 867,10 |
// il faut que le lien soit saisie, different de http:// ET que le texte du lien soit saisie aussi |
// et ce afin d eviter d avoir des liens vides |
elseif ($tableau[$i]['type']=='url') { |
if ((isset($valeur['url_lien'.$tableau[$i]['nom_bdd']]) && |
if (isset($valeur['url_lien'.$tableau[$i]['nom_bdd']]) && |
$valeur['url_lien'.$tableau[$i]['nom_bdd']]!='http://' |
&& isset($valeur['url_texte'.$tableau[$i]['nom_bdd']]) && |
strlen ($valeur['url_texte'.$tableau[$i]['nom_bdd']])) || isset($_POST['fiche_dupliquee'])) { |
strlen ($valeur['url_texte'.$tableau[$i]['nom_bdd']])) { |
baz_insertion_url($valeur['url_lien'.$tableau[$i]['nom_bdd']], $valeur['url_texte'.$tableau[$i]['nom_bdd']], $GLOBALS['_BAZAR_']['id_fiche']); |
} |
} |
987,11 → 950,18 |
// Envoie d un mail aux administrateurs |
$utilisateur = new Administrateur_bazar($GLOBALS['AUTH']); |
if (!$utilisateur->isAdmin($GLOBALS['_BAZAR_']['id_typeannonce']) || !$utilisateur->isSuperAdmin()) { |
bazar::notifier(); |
$mails = bazar::getMailSuperAdmin($GLOBALS['_BAZAR_']['id_typeannonce']); |
include_once BAZ_CHEMIN_APPLI.'bibliotheque/bazarTemplate.class.php'; |
$template = new bazarTemplate($GLOBALS['_BAZAR_']['db']); |
$sujet = html_entity_decode($template->getTemplate(BAZ_TEMPLATE_MAIL_NOUVELLE_FICHE_SUJET, $GLOBALS['_BAZAR_']['langue'], $GLOBALS['_BAZAR_']['id_typeannonce'])); |
$corps = html_entity_decode($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); |
} |
} |
} |
|
// On redirige |
return $GLOBALS['_BAZAR_']['id_fiche']; |
return; |
} |
|
|
1003,17 → 973,6 |
* @return void |
*/ |
function baz_insertion_url($url_lien, $url_texte, $idfiche) { |
|
if (isset ($_POST['fiche_dupliquee'])) { |
$id_url = baz_nextId('bazar_url', 'bu_id_url', $GLOBALS['_BAZAR_']['db']) ; |
$requete = 'insert into bazar_url select '.$id_url.','.$idfiche.',bu_url, bu_descriptif_url '. |
' from bazar_url where bu_ce_fiche="'.$_POST['fiche_dupliquee'].'"'; |
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ; |
if (DB::isError($resultat)) { |
die ($resultat->getMessage().$resultat->getDebugInfo()) ; |
} |
return; |
} |
//requete d'insertion dans bazar_url |
if (!isset($_SESSION['_BAZAR_']['lien'])) { |
$id_url = baz_nextId('bazar_url', 'bu_id_url', $GLOBALS['_BAZAR_']['db']) ; |
1039,20 → 998,6 |
*/ |
function baz_insertion_fichier($fichier_description, $idfiche, $nom_fichier='fichier_joint') { |
//verification de la presence de ce fichier |
|
// En cas de duplication on ajoute simplement une ligne dans la base de donnee |
// pour chaque fichier associe a la fiche d origine |
|
if (isset ($_POST['fiche_dupliquee'])) { |
$id_fichier_joint = baz_nextId('bazar_fichier_joint', 'bfj_id_fichier', $GLOBALS['_BAZAR_']['db']) ; |
$requete = 'insert into bazar_fichier_joint select '.$id_fichier_joint.','.$idfiche.',bfj_description,bfj_fichier '. |
' from bazar_fichier_joint where bfj_ce_fiche="'.$_POST['fiche_dupliquee'].'"'; |
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ; |
if (DB::isError($resultat)) { |
die ($resultat->getMessage().$resultat->getDebugInfo()) ; |
} |
return; |
} |
$requete = 'SELECT bfj_id_fichier FROM bazar_fichier_joint WHERE bfj_fichier="'.$_FILES[$nom_fichier]['name'].'"'; |
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ; |
if (DB::isError($resultat)) { |
1083,8 → 1028,6 |
* @return string requete SQL |
*/ |
function baz_insertion_image($idfiche) { |
|
|
//verification de la presence de ce fichier |
$requete = 'SELECT bf_id_fiche FROM bazar_fiche WHERE bf_url_image="'.$_FILES['image']['name'].'" AND bf_id_fiche!='.$idfiche; |
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ; |
1112,50 → 1055,12 |
$requete.= ' WHERE bf_id_fiche='.$GLOBALS['_BAZAR_']['id_fiche']; |
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ; |
if (DB::isError($resultat)) { |
return ($resultat->getMessage().$resultat->getDebugInfo()) ; |
die ($resultat->getMessage().$resultat->getDebugInfo()) ; |
} |
// Envoie d un mail aux administrateurs |
$utilisateur = new Administrateur_bazar($GLOBALS['AUTH']); |
if (!$utilisateur->isAdmin($GLOBALS['_BAZAR_']['id_typeannonce']) || !$utilisateur->isSuperAdmin()) { |
bazar::notifier(BAZAR_NOTIFICATION_MODIFICATION_FICHE); |
} |
return; |
} |
|
/** baz_post_validation () |
* |
* Cette fonction renvoie une page qui invite l utilisateur a : |
* - saisir une nouvelle fiche a partir de celle qu il vient de saisir (pour changer de date) |
* - retour a la liste de ces fiches |
* - saisir une nouvelle fiche |
* |
*/ |
|
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, $_GET[BAZ_VARIABLE_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 |
1213,7 → 1118,7 |
return ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo().'<br />'."\n") ; |
} |
// Redirection vers Mes fiches |
$GLOBALS['_BAZAR_']['url']->addQueryString(BAZ_VARIABLE_VOIR, BAZ_VOIR_MES_FICHES); |
$GLOBALS['_BAZAR_']['url']->addQueryString(BAZ_VARIABLE_ACTION, BAZ_VOIR_MES_FICHES); |
$GLOBALS['_BAZAR_']['url']->removeQueryString('id_fiche'); |
header ('Location:'.$GLOBALS['_BAZAR_']['url']->getURL()); |
exit; |
1518,9 → 1423,6 |
/* +--Fin du code ----------------------------------------------------------------------------------------+ |
* |
* $Log: not supported by cvs2svn $ |
* Revision 1.78 2008-09-17 14:08:45 alexandre_tb |
* merge depuis aha |
* |
* Revision 1.77 2008-03-17 11:02:59 jp_milcent |
* Ajout de l'authentification nécessaire pour déposer des commentaires. |
* Corrections sur la gestion des paramêtres dans les urls (compatibilité applette Identification et Moteur de Recherche). |