Subversion Repositories Applications.bazar

Compare Revisions

Ignore whitespace Rev 53 → Rev 54

/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.18 2005-11-18 16:03:23 florian Exp $
// CVS : $Id: bazar.fonct.php,v 1.19 2005-11-24 16:17:13 florian Exp $
/**
*
* Fonctions du module bazar
30,7 → 30,7
*@author Florian Schmitt <florian@ecole-et-nature.org>
//Autres auteurs :
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.18 $ $Date: 2005-11-18 16:03:23 $
*@version $Revision: 1.19 $ $Date: 2005-11-24 16:17:13 $
// +------------------------------------------------------------------------------------------------------+
*/
 
228,232 → 228,9
}
 
 
/** baz_afficher_formulaire_annonce() - Génère le formulaire de saisie d'une annonce
*
* @param string type de formulaire: insertion ou modification
* @param mixed objet quickform du formulaire
*
* @return string code HTML avec formulaire
*/
function baz_afficher_formulaire_annonce($mode='insertion',$formtemplate) {
//verification de la modification des fichiers, des url ou des images
if (isset($_GET['url'])) {
if ($_GET['url']==1) baz_insertion_url($_POST['url_lien'],$_POST['url_texte'],$GLOBALS['_BAZAR_']['id_fiche']);
if ($_GET['url']==2) baz_suppression_url($_GET['id_url']);
}
if (isset($_GET['fichier'])) {
if ($_GET['fichier']==1) baz_insertion_fichier($_POST['fichier_description'], $GLOBALS['_BAZAR_']["id_fiche"]);
if ($_GET['fichier']==2) baz_suppression_fichier($_GET['id_fichier']);
}
if (isset($_GET['image'])) {
if ($_GET['image']==1) baz_insertion_image($GLOBALS['_BAZAR_']['id_fiche']);
if ($_GET['image']==2) baz_suppression_image($GLOBALS['_BAZAR_']['id_fiche']);
}
//titre de la rubrique
$res= '<h2>'.BAZ_TITRE_SAISIE_ANNONCE.$GLOBALS['_BAZAR_']['typeannonce'].'</h2>';
//Ajout des boutons
$bouton[] = &HTML_QuickForm::createElement('submit', 'valider', BAZ_VALIDER, '&nbsp;');
//ajout d'une page sur les conditions pour l'annonce si elles existent
$requete = 'SELECT bn_condition FROM bazar_nature WHERE bn_label_nature="'.$GLOBALS['_BAZAR_']['typeannonce'].'"';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete);
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
if (($ligne['bn_condition']!='')AND(!isset($_POST['accept_condition']))AND(!isset($_GET['url'])OR(!isset($_GET['fichier']))OR(!isset($_GET['image'])))) {
$lien_formulaire=$GLOBALS['_BAZAR_']['url'];
$lien_formulaire->addQueryString('action', $_REQUEST['action']);
$formtemplate = new HTML_QuickForm('formulaire', 'post', preg_replace ('/&amp;/', '&', $lien_formulaire->getURL()) );
require_once PAP_CHEMIN_RACINE.'api/pear/HTML/QuickForm/html.php';
$conditions= new HTML_QuickForm_html('<tr><td colspan="2"><p style="padding:4px; margin:5px; width: 100%; background: #C1CBA7;">'.$ligne['bn_condition'].'</p></td></tr>');
$formtemplate->addElement('hidden','typeannonce', $_REQUEST['typeannonce']);
if (isset($_REQUEST['id_fiche'])) $formtemplate->addElement('hidden','id_fiche', $_REQUEST['id_fiche']);
$formtemplate->addElement($conditions);
$formtemplate->addElement('checkbox', 'accept_condition',BAZ_ACCEPTE_CONDITIONS) ;
$formtemplate->addRule('accept_condition', BAZ_ACCEPTE_CONDITIONS_REQUIS, 'required', '', 'client') ;
$formtemplate->addGroup($bouton, null, null, '&nbsp;');
}
//affichage du formulaire si conditions acceptées
else {
//Parcours du fichier de templates, pour mettre les champs specifiques
$tableau=baz_valeurs_template($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
for ($i=0; $i<count($tableau); $i++) {
$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']) ;
}
$formtemplate->addGroup($bouton, null, null, '&nbsp;');
if ($mode=='modification') {
//initialisation de la variable globale id_fiche
$GLOBALS['_BAZAR_']['id_fiche'] = $_REQUEST['id_fiche'];
//Ajout des valeurs par defaut
$formtemplate->setDefaults(baz_valeurs_fiche($GLOBALS['_BAZAR_']['id_fiche'])) ;
//preparation des formulaires supplementaires
//AJOUTER UNE IMAGE
$lien_formulaire=$GLOBALS['_BAZAR_']['url'];
$lien_formulaire->addQueryString('action', BAZ_ACTION_MODIFIER);
$lien_formulaire->addQueryString('id_fiche', $GLOBALS['_BAZAR_']['id_fiche']);
$lien_formulaire->addQueryString('typeannonce', $GLOBALS['_BAZAR_']['typeannonce']);
$lien_formulaire->addQueryString('image', '1');
$requete = 'SELECT bf_url_image FROM bazar_fiche WHERE bf_id_fiche='.$GLOBALS['_BAZAR_']['id_fiche'];
$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
}
if ($resultat->numRows()>0) {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$image=$ligne->bf_url_image;
}
if ($image!=NULL) {
$html='<tr><td colspan="2" width="600px"><hr /><img src="client/bazar/images/'.$image.'" border=0 alt="'.BAZ_TEXTE_IMG_ALTERNATIF.'" />'."\n";
$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
$lien_supprimer->addQueryString('action', $_GET['action']);
$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
$lien_supprimer->addQueryString('image', '2');
$html.= '<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION.'\');" >'.BAZ_SUPPRIMER.'</a></td></tr>'."\n";
$formimage = new HTML_QuickForm('formulaire', 'post', preg_replace ('/&amp;/', '&', $lien_formulaire->getURL()) ) ;
$formimage->addElement('html', $html) ;
}
else {
$formimage = new HTML_QuickForm('formulaire', 'post', preg_replace ('/&amp;/', '&', $lien_formulaire->getURL()) ) ;
$formimage->addElement('html', '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_AJOUTER_IMAGE.'</h3></td></tr>') ;
$formimage->addElement('file', 'image', BAZ_IMAGE) ;
$formimage->addRule('image', BAZ_IMAGE_VALIDE_REQUIS, '', '', 'client') ; //a completer pour checker l'image
$formimage->setMaxFileSize(BAZ_TAILLE_MAX_FICHIER);
$formimage->addGroup($bouton, null, null, '');
}
}
else {
$formimage = new HTML_QuickForm('formulaire', 'post', preg_replace ('/&amp;/', '&', $lien_formulaire->getURL()) ) ;
$formimage->addElement('html', '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_AJOUTER_IMAGE.'</h3></td></tr>') ;
$formimage->addElement('file', 'image', BAZ_IMAGE) ;
$formimage->addRule('image', BAZ_IMAGE_VALIDE_REQUIS, '', '', 'client') ; //a completer pour checker l'image
$formimage->setMaxFileSize(BAZ_TAILLE_MAX_FICHIER);
$formimage->addGroup($bouton, null, null, '');
}
//AJOUTER DES URL
//recherche des URLs déjà entrées dans la base
$requete = 'SELECT bu_id_url, bu_url, bu_descriptif_url FROM bazar_url WHERE bu_ce_fiche='.$GLOBALS['_BAZAR_']["id_fiche"];
$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
}
if ($resultat->numRows()>0) {
$html= '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_LISTE_URL.'</h3>'."\n";
$tableAttr = array("id" => "table_bazar") ;
$table = new HTML_Table($tableAttr) ;
$entete = array (BAZ_LIEN , BAZ_SUPPRIMER) ;
$table->addRow($entete) ;
$table->setRowType(0, "th") ;
$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
$lien_supprimer->addQueryString('action', $_GET['action']);
$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
$lien_supprimer->addQueryString('url', '2');
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$lien_supprimer->addQueryString('id_url', $ligne->bu_id_url);
$table->addRow (array(
'<a href="'.$ligne->bu_url.'" target="_blank"> '.$ligne->bu_descriptif_url.'</a>', // col 1 : le lien
'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 2 : supprimer
$lien_supprimer->removeQueryString('id_url');
}
$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
$table->updateColAttributes(1, array("align" => "center"));
$html.= $table->toHTML().'</td></tr>' ;
}
else {
$html= '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_PAS_URL.'</h3></td></tr>'."\n";
}
$html.='<tr><td colspan="2" width="600px"><h4>'.BAZ_AJOUTER_URL.'</h4>'."\n";
$lien_formulaire=$GLOBALS['_BAZAR_']['url'];
$lien_formulaire->addQueryString('action', $_GET['action']);
$lien_formulaire->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
$lien_formulaire->addQueryString('typeannonce', $GLOBALS['_BAZAR_']['typeannonce']);
$lien_formulaire->addQueryString('url', '1');
$formurl = new HTML_QuickForm('formulaire', 'post', preg_replace ('/&amp;/', '&', $lien_formulaire->getURL())) ;
$formurl->addElement('html', $html) ;
$formurl->addElement('text', 'url_lien', BAZ_URL_LIEN) ;
$formurl->addElement('text', 'url_texte', BAZ_URL_TEXTE) ;
$formurl->addRule('url_lien', BAZ_URL_LIEN_REQUIS, 'required', '', 'client') ;
$formurl->addRule('url_texte', BAZ_URL_TEXTE_REQUIS, 'required', '', 'client') ;
//AJOUTER DES FICHIERS JOINTS
$requete = 'SELECT * FROM bazar_fichier_joint WHERE bfj_ce_fiche='.$GLOBALS['_BAZAR_']["id_fiche"];
$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
}
if ($resultat->numRows()>0) {
$html= '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_LISTE_FICHIERS_JOINTS.'</h3>'."\n";
$tableAttr = array("id" => "table_bazar") ;
$table = new HTML_Table($tableAttr) ;
$entete = array (BAZ_FICHIER , BAZ_SUPPRIMER) ;
$table->addRow($entete) ;
$table->setRowType(0, "th") ;
$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
$lien_supprimer->addQueryString('action', $_GET['action']);
$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
$lien_supprimer->addQueryString('fichier', '2');
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$lien_supprimer->addQueryString('id_fichier', $ligne->bfj_id_fichier);
$table->addRow (array(
'<a href="/client/bazar/upload/'.$ligne->bfj_fichier.'"> '.$ligne->bfj_description.'</a>', // col 1 : le fichier et sa description
'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 2 : supprimer
$lien_supprimer->removeQueryString('id_fichier');
}
$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
$table->updateColAttributes(1, array("align" => "center"));
$html.= $table->toHTML().'</td></tr>' ;
}
else {
$html= '<tr><td colspan="2"><hr /><h3>'.BAZ_PAS_DE_FICHIERS_JOINTS.'</h3></td></tr>'."\n";
}
$html.='<tr><td colspan="2" width="600px"><h4>'.BAZ_AJOUTER_FICHIER_JOINT.'</h4>'.'</td></tr>'."\n";
$lien_formulaire=$GLOBALS['_BAZAR_']['url'];
$lien_formulaire->addQueryString('action', $_GET['action']);
$lien_formulaire->addQueryString('id_fiche', $GLOBALS['_BAZAR_']['id_fiche']);
$lien_formulaire->addQueryString('typeannonce', $GLOBALS['_BAZAR_']['typeannonce']);
$lien_formulaire->addQueryString('fichier', '1');
$formfichiers = new HTML_QuickForm('formulaire', 'post', preg_replace ('/&amp;/', '&', $lien_formulaire->getURL())) ;
$formfichiers->addElement('html', $html) ;
$formfichiers->addElement('file', 'fichier_joint', BAZ_FICHIER_JOINT) ;
$formfichiers->addElement('text', 'fichier_description', BAZ_FICHIER_DESCRIPTION) ;
$formfichiers->addRule('fichier_joint', BAZ_FICHIER_JOINT_REQUIS, 'required', '', 'client') ;
$formfichiers->addRule('fichier_description', BAZ_FICHIER_LABEL_REQUIS, 'required', '', 'client') ;
$formfichiers->setMaxFileSize(BAZ_TAILLE_MAX_FICHIER);
//Ajout de 'http://' comme valeur par default d'une url
$formurl->setDefaults(array('url_lien'=>'http://'));
//Bouton de validation du formulaire
$formurl->addGroup($bouton, null, null, '');
$formfichiers->addGroup($bouton, null, null, '');
}
}
//Affichage a l'ecran
$res .= $formtemplate->toHTML()."\n";
if (isset($formimage)) $res .= $formimage->toHTML()."\n".$formurl->toHTML()."\n".$formfichiers->toHTML()."\n";
return $res;
}
 
 
/** baz_formulaire() - Renvoie le menu pour les saisies et modification des annonces
*
* @param string choix du formulaire à afficher (soit formulaire personnalisé de l'annonce, soit choix du type d'annonce)
* @param string choix du formulaire a afficher (soit formulaire personnalise de l'annonce, soit choix du type d'annonce)
*
* @return string HTML
*/
484,9 → 261,19
//Definir le lien du formulaire en fonction du mode de formulaire choisi
if ($mode == 'inscription') $lien_formulaire->addQueryString('action', BAZ_ACTION_NOUVEAU_V);
if ($mode == BAZ_DEPOSER_ANNONCE) $lien_formulaire->addQueryString('action', BAZ_DEPOSER_ANNONCE);
if ($mode == BAZ_ACTION_NOUVEAU) $lien_formulaire->addQueryString('action', BAZ_ACTION_NOUVEAU_V);
if ($mode == BAZ_ACTION_NOUVEAU) {
if (!isset($_POST['accept_condition'])) {
$lien_formulaire->addQueryString('action', BAZ_ACTION_NOUVEAU);
} else {
$lien_formulaire->addQueryString('action', BAZ_ACTION_NOUVEAU_V);
}
}
if ($mode == BAZ_ACTION_MODIFIER) {
$lien_formulaire->addQueryString('action', BAZ_ACTION_MODIFIER_V);
if (!isset($_POST['accept_condition'])) {
$lien_formulaire->addQueryString('action', BAZ_ACTION_MODIFIER);
} else {
$lien_formulaire->addQueryString('action', BAZ_ACTION_MODIFIER_V);
}
$lien_formulaire->addQueryString('id_fiche', $GLOBALS['_BAZAR_']['id_fiche']);
}
if ($mode == BAZ_ACTION_MODIFIER_V) {
497,10 → 284,23
else $lien_formulaire->addQueryString('typeannonce', $GLOBALS['_BAZAR_']['typeannonce']);
if ($mode == BAZ_GERER_DROITS) $lien_formulaire->addQueryString('action', BAZ_GERER_DROITS);
//contruction du squelette du formulaire
$formtemplate = new HTML_QuickForm('formulaire', 'post', preg_replace ('/&amp;/', '&', $lien_formulaire->getURL()) );
$squelette =& $formtemplate->defaultRenderer();
$squelette->setFormTemplate("\n".'<form {attributes}>'."\n".'<ul class="formulaire">'."\n".'{content}'."\n".'</ul>'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<li>'."\n".'<span class="label200">'."\n".'{label} :</span>'."\n".'<span class="champs"> '."\n".'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</span>'."\n".'</li>'."\n");
$squelette->setElementTemplate( '<li><span class="liste_a_cocher"><strong>{label}&nbsp;{element}</strong></span>'.
'<!-- BEGIN required --><span class="symbole_obligatoire">&nbsp;*</span><!-- END required -->'."\n".'</li>'."\n", 'accept_condition');
$squelette->setElementTemplate( '<li>{element}</li>'."\n", 'typeannonce');
$squelette->setElementTemplate( '<li>{element}</li>'."\n", 'id_fiche');
$squelette->setElementTemplate( '<li><span class="bouton" style="margin: 0 auto;">{label}{element}</span></li>'."\n", 'valider');
$squelette->setRequiredNoteTemplate("\n".'<li><span class="symbole_obligatoire">*</span> {requiredNote}</li>'."\n");
//Traduction de champs requis
$formtemplate->setRequiredNote(BAZ_CHAMPS_REQUIS) ;
$formtemplate->setJsWarnings(BAZ_ERREUR_SAISIE,BAZ_VEUILLEZ_CORRIGER);
$formtemplate->setJsWarnings(BAZ_ERREUR_SAISIE,BAZ_VEUILLEZ_CORRIGER);
//------------------------------------------------------------------------------------------------
//AFFICHAGE DU FORMULAIRE GENERAL DE CHOIX DU TYPE D'ANNONCE
525,18 → 325,15
}
$squelette =& $formtemplate->defaultRenderer();
$squelette->setFormTemplate("\n".'<div id="choix"><form {attributes}>'."\n".'{content}'."\n".'</form></div>'."\n");
$squelette->setElementTemplate( '<div class="listechoix">'."\n".'{element}'."\n".'</div>'."\n");
//Mettre les annonces en choix par défaut
//Mettre les annonces en choix par defaut
$formtemplate->setdefaults(array('typeannonce'=>'Annonces'));
//Bouton de validation du formulaire
$bouton[] = &HTML_QuickForm::createElement('submit', 'valider', BAZ_VALIDER);
$formtemplate->addGroup($bouton, null, null, '&nbsp;');
$formtemplate->addElement('submit', 'valider', BAZ_VALIDER);
//Affichage à l'écran
//Affichage a l'ecran
$res.= $formtemplate->toHTML() ;
}
587,7 → 384,7
else $personne=0;
//Cas ou les droits ont été changés
//Cas ou les droits ont etes changes
if (isset($_GET['pers'])) {
$personne=$_GET['pers'];
//CAS DES DROITS POUR UN TYPE D'ANNONCE: On efface tous les droits de la personne pour ce type d'annonce
738,6 → 535,224
}
 
 
/** baz_afficher_formulaire_annonce() - Genere le formulaire de saisie d'une annonce
*
* @param string type de formulaire: insertion ou modification
* @param mixed objet quickform du formulaire
*
* @return string code HTML avec formulaire
*/
function baz_afficher_formulaire_annonce($mode='insertion',$formtemplate) {
//verification de la modification des fichiers, des url ou des images
if (isset($_GET['url'])) {
if ($_GET['url']==1) baz_insertion_url($_POST['url_lien'],$_POST['url_texte'],$GLOBALS['_BAZAR_']['id_fiche']);
if ($_GET['url']==2) baz_suppression_url($_GET['id_url']);
}
if (isset($_GET['fichier'])) {
if ($_GET['fichier']==1) baz_insertion_fichier($_POST['fichier_description'], $GLOBALS['_BAZAR_']["id_fiche"]);
if ($_GET['fichier']==2) baz_suppression_fichier($_GET['id_fichier']);
}
if (isset($_GET['image'])) {
if ($_GET['image']==1) baz_insertion_image($GLOBALS['_BAZAR_']['id_fiche']);
if ($_GET['image']==2) baz_suppression_image($GLOBALS['_BAZAR_']['id_fiche']);
}
//titre de la rubrique
$res= '<h2>'.BAZ_TITRE_SAISIE_ANNONCE.$GLOBALS['_BAZAR_']['typeannonce'].'</h2>';
//ajout d'une page sur les conditions pour l'annonce si elles existent
$requete = 'SELECT bn_condition FROM bazar_nature WHERE bn_label_nature="'.$GLOBALS['_BAZAR_']['typeannonce'].'"';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete);
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
if (($ligne['bn_condition']!='')AND(!isset($_POST['accept_condition']))AND(!isset($_GET['url'])OR(!isset($_GET['fichier']))OR(!isset($_GET['image'])))) {
require_once PAP_CHEMIN_RACINE.'api/pear/HTML/QuickForm/html.php';
$conditions= new HTML_QuickForm_html('<li><p style="padding:5px; margin:5px; width: 90%; background: #C1CBA7;">'.$ligne['bn_condition'].'</li>'."\n");
$formtemplate->addElement($conditions);
$formtemplate->addElement('hidden','typeannonce', $_REQUEST['typeannonce']);
if (isset($_REQUEST['id_fiche'])) $formtemplate->addElement('hidden','id_fiche', $_REQUEST['id_fiche']);
$formtemplate->addElement('checkbox', 'accept_condition',BAZ_ACCEPTE_CONDITIONS) ;
$formtemplate->addRule('accept_condition', BAZ_ACCEPTE_CONDITIONS_REQUIS, 'required', '', 'client') ;
$formtemplate->addElement('submit', 'valider', BAZ_VALIDER);
}
//affichage du formulaire si conditions acceptées
else {
//Parcours du fichier de templates, pour mettre les champs specifiques
$tableau=baz_valeurs_template($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
for ($i=0; $i<count($tableau); $i++) {
$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']) ;
}
$formtemplate->addElement('submit', 'valider', BAZ_VALIDER);
if ($mode=='modification') {
//initialisation de la variable globale id_fiche
$GLOBALS['_BAZAR_']['id_fiche'] = $_REQUEST['id_fiche'];
//Ajout des valeurs par defaut
$formtemplate->setDefaults(baz_valeurs_fiche($GLOBALS['_BAZAR_']['id_fiche'])) ;
//preparation des formulaires supplementaires
//AJOUTER UNE IMAGE
$lien_formulaire=$GLOBALS['_BAZAR_']['url'];
$lien_formulaire->addQueryString('action', BAZ_ACTION_MODIFIER);
$lien_formulaire->addQueryString('id_fiche', $GLOBALS['_BAZAR_']['id_fiche']);
$lien_formulaire->addQueryString('typeannonce', $GLOBALS['_BAZAR_']['typeannonce']);
$lien_formulaire->addQueryString('image', '1');
$requete = 'SELECT bf_url_image FROM bazar_fiche WHERE bf_id_fiche='.$GLOBALS['_BAZAR_']['id_fiche'];
$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
}
if ($resultat->numRows()>0) {
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$image=$ligne->bf_url_image;
}
if ($image!=NULL) {
$html='<tr><td colspan="2" width="600px"><hr /><img src="client/bazar/images/'.$image.'" border=0 alt="'.BAZ_TEXTE_IMG_ALTERNATIF.'" />'."\n";
$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
$lien_supprimer->addQueryString('action', $_GET['action']);
$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
$lien_supprimer->addQueryString('image', '2');
$html.= '<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION.'\');" >'.BAZ_SUPPRIMER.'</a></td></tr>'."\n";
$formimage = new HTML_QuickForm('formulaire', 'post', preg_replace ('/&amp;/', '&', $lien_formulaire->getURL()) ) ;
$formimage->addElement('html', $html) ;
}
else {
$formimage = new HTML_QuickForm('formulaire', 'post', preg_replace ('/&amp;/', '&', $lien_formulaire->getURL()) ) ;
$formimage->addElement('html', '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_AJOUTER_IMAGE.'</h3></td></tr>') ;
$formimage->addElement('file', 'image', BAZ_IMAGE) ;
$formimage->addRule('image', BAZ_IMAGE_VALIDE_REQUIS, '', '', 'client') ; //a completer pour checker l'image
$formimage->setMaxFileSize(BAZ_TAILLE_MAX_FICHIER);
$formimage->addElement('submit', 'valider', BAZ_VALIDER);
}
}
else {
$formimage = new HTML_QuickForm('formulaire', 'post', preg_replace ('/&amp;/', '&', $lien_formulaire->getURL()) ) ;
$formimage->addElement('html', '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_AJOUTER_IMAGE.'</h3></td></tr>') ;
$formimage->addElement('file', 'image', BAZ_IMAGE) ;
$formimage->addRule('image', BAZ_IMAGE_VALIDE_REQUIS, '', '', 'client') ; //a completer pour checker l'image
$formimage->setMaxFileSize(BAZ_TAILLE_MAX_FICHIER);
$formimage->addElement('submit', 'valider', BAZ_VALIDER);
}
//AJOUTER DES URL
//recherche des URLs déjà entrées dans la base
$requete = 'SELECT bu_id_url, bu_url, bu_descriptif_url FROM bazar_url WHERE bu_ce_fiche='.$GLOBALS['_BAZAR_']["id_fiche"];
$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
}
if ($resultat->numRows()>0) {
$html= '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_LISTE_URL.'</h3>'."\n";
$tableAttr = array("id" => "table_bazar") ;
$table = new HTML_Table($tableAttr) ;
$entete = array (BAZ_LIEN , BAZ_SUPPRIMER) ;
$table->addRow($entete) ;
$table->setRowType(0, "th") ;
$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
$lien_supprimer->addQueryString('action', $_GET['action']);
$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
$lien_supprimer->addQueryString('url', '2');
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$lien_supprimer->addQueryString('id_url', $ligne->bu_id_url);
$table->addRow (array(
'<a href="'.$ligne->bu_url.'" target="_blank"> '.$ligne->bu_descriptif_url.'</a>', // col 1 : le lien
'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 2 : supprimer
$lien_supprimer->removeQueryString('id_url');
}
$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
$table->updateColAttributes(1, array("align" => "center"));
$html.= $table->toHTML().'</td></tr>' ;
}
else {
$html= '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_PAS_URL.'</h3></td></tr>'."\n";
}
$html.='<tr><td colspan="2" width="600px"><h4>'.BAZ_AJOUTER_URL.'</h4>'."\n";
$lien_formulaire=$GLOBALS['_BAZAR_']['url'];
$lien_formulaire->addQueryString('action', $_GET['action']);
$lien_formulaire->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
$lien_formulaire->addQueryString('typeannonce', $GLOBALS['_BAZAR_']['typeannonce']);
$lien_formulaire->addQueryString('url', '1');
$formurl = new HTML_QuickForm('formulaire', 'post', preg_replace ('/&amp;/', '&', $lien_formulaire->getURL())) ;
$formurl->addElement('html', $html) ;
$formurl->addElement('text', 'url_lien', BAZ_URL_LIEN) ;
$formurl->addElement('text', 'url_texte', BAZ_URL_TEXTE) ;
$formurl->addRule('url_lien', BAZ_URL_LIEN_REQUIS, 'required', '', 'client') ;
$formurl->addRule('url_texte', BAZ_URL_TEXTE_REQUIS, 'required', '', 'client') ;
//AJOUTER DES FICHIERS JOINTS
$requete = 'SELECT * FROM bazar_fichier_joint WHERE bfj_ce_fiche='.$GLOBALS['_BAZAR_']["id_fiche"];
$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
}
if ($resultat->numRows()>0) {
$html= '<tr><td colspan="2" width="600px"><hr /><h3>'.BAZ_LISTE_FICHIERS_JOINTS.'</h3>'."\n";
$tableAttr = array("id" => "table_bazar") ;
$table = new HTML_Table($tableAttr) ;
$entete = array (BAZ_FICHIER , BAZ_SUPPRIMER) ;
$table->addRow($entete) ;
$table->setRowType(0, "th") ;
$lien_supprimer=$GLOBALS['_BAZAR_']['url'];
$lien_supprimer->addQueryString('action', $_GET['action']);
$lien_supprimer->addQueryString('id_fiche', $GLOBALS['_BAZAR_']["id_fiche"]);
$lien_supprimer->addQueryString('typeannonce', $_REQUEST['typeannonce']);
$lien_supprimer->addQueryString('fichier', '2');
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_OBJECT)) {
$lien_supprimer->addQueryString('id_fichier', $ligne->bfj_id_fichier);
$table->addRow (array(
'<a href="/client/bazar/upload/'.$ligne->bfj_fichier.'"> '.$ligne->bfj_description.'</a>', // col 1 : le fichier et sa description
'<a href="'.$lien_supprimer->getURL().'" onclick="javascript:return confirm(\''.BAZ_CONFIRMATION_SUPPRESSION.'\');" >'.BAZ_SUPPRIMER.'</a>'."\n")) ; // col 2 : supprimer
$lien_supprimer->removeQueryString('id_fichier');
}
$table->altRowAttributes(1, array("class" => "ligne_impaire"), array("class" => "ligne_paire"));
$table->updateColAttributes(1, array("align" => "center"));
$html.= $table->toHTML().'</td></tr>' ;
}
else {
$html= '<tr><td colspan="2"><hr /><h3>'.BAZ_PAS_DE_FICHIERS_JOINTS.'</h3></td></tr>'."\n";
}
$html.='<tr><td colspan="2" width="600px"><h4>'.BAZ_AJOUTER_FICHIER_JOINT.'</h4>'.'</td></tr>'."\n";
$lien_formulaire=$GLOBALS['_BAZAR_']['url'];
$lien_formulaire->addQueryString('action', $_GET['action']);
$lien_formulaire->addQueryString('id_fiche', $GLOBALS['_BAZAR_']['id_fiche']);
$lien_formulaire->addQueryString('typeannonce', $GLOBALS['_BAZAR_']['typeannonce']);
$lien_formulaire->addQueryString('fichier', '1');
$formfichiers = new HTML_QuickForm('formulaire', 'post', preg_replace ('/&amp;/', '&', $lien_formulaire->getURL())) ;
$formfichiers->addElement('html', $html) ;
$formfichiers->addElement('file', 'fichier_joint', BAZ_FICHIER_JOINT) ;
$formfichiers->addElement('text', 'fichier_description', BAZ_FICHIER_DESCRIPTION) ;
$formfichiers->addRule('fichier_joint', BAZ_FICHIER_JOINT_REQUIS, 'required', '', 'client') ;
$formfichiers->addRule('fichier_description', BAZ_FICHIER_LABEL_REQUIS, 'required', '', 'client') ;
$formfichiers->setMaxFileSize(BAZ_TAILLE_MAX_FICHIER);
//Ajout de 'http://' comme valeur par default d'une url
$formurl->setDefaults(array('url_lien'=>'http://'));
//Bouton de validation du formulaire
$formurl->addElement('submit', 'valider', BAZ_VALIDER);
$formfichiers->addElement('submit', 'valider', BAZ_VALIDER);
}
}
//Affichage a l'ecran
$res .= $formtemplate->toHTML()."\n";
if (isset($formimage)) $res .= $formimage->toHTML()."\n".$formurl->toHTML()."\n".$formfichiers->toHTML()."\n";
return $res;
}
 
 
/** requete_bazar_fiche() - preparer la requete d'insertion ou de MAJ de la table bazar_fiche à partir du fichier de template
*
* @global mixed L'objet contenant les valeurs issues de la saisie du formulaire
757,9 → 772,15
$tableau=baz_valeurs_template($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
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') {
$val=implode('**', array_keys($valeur[$tableau[$i]['nom_bdd']]));
}
//cas des champs texte et textarea
else {
$val=addslashes($valeur[$tableau[$i]['nom_bdd']]);
}
782,7 → 803,7
function baz_insertion($valeur) {
// Recuperation de bn_appropriation
$requete_app = 'select bn_appropriation from bazar_nature where bn_id_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'] ;
$requete_app = 'SELECT bn_appropriation FROM bazar_nature WHERE bn_id_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'] ;
$resultat_app = $GLOBALS['_BAZAR_']['db']->query($requete_app) ;
$ligne = $resultat_app ->fetchRow(DB_FETCHMODE_ASSOC) ;
1039,12 → 1060,13
$requete = 'UPDATE bazar_fiche SET bf_statut_fiche=1 WHERE bf_id_fiche="'.$GLOBALS['_BAZAR_']['id_fiche'].'"' ;
}
// ====================Mise à jour de la table bazar_fiche====================
// ====================Mise a jour de la table bazar_fiche====================
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
unset ($resultat) ;
//TODO envoie mail annonceur
return;
}
 
1292,13 → 1314,6
}
 
 
function baz_unhtmlentities($string) {
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip($trans_tbl);
return strtr($string, $trans_tbl);
}
 
 
/** function baz_nextId () Renvoie le prochain identifiant numérique libre d'une table
*
* @param string Nom de la table
1325,6 → 1340,9
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.18 2005/11/18 16:03:23 florian
* correction bug html entites
*
* Revision 1.17 2005/11/17 18:48:02 florian
* corrections bugs + amélioration de l'application d'inscription
*