Subversion Repositories Applications.bazar

Compare Revisions

Ignore whitespace Rev 67 → Rev 68

/trunk/bibliotheque/bazar.fonct.rss.php
1,15 → 1,14
<?php
/** baz_valeur_template() - Renvoi des valeurs inscrite dans le fichier de template
*
* @param string nom du fichier de template
* @param string valeur du template de bazar_nature
*
* @return mixed tableau contenant les champs du fichier template
*/
function baz_valeurs_template($fichier_template) {
function baz_valeurs_template($valeur_template) {
//Parcours du fichier de templates, pour mettre les champs spécifiques
$nblignes=0;
$fichier=file_get_contents(BAZ_CHEMIN_APPLI.'templates/'.$fichier_template);
$chaine = explode ("\n", $fichier);
$chaine = explode ("\n", $valeur_template);
array_pop($chaine);
foreach ($chaine as $ligne) {
$souschaine = explode ("***", $ligne) ;
106,22 → 105,6
}
}
//on cherche le type d'annonce, l'annonceur et les stats
$requete = 'SELECT bn_label_nature, bn_commentaire, bn_appropriation, bn_image_titre, bn_image_logo, bf_ce_utilisateur,bf_nb_consultations FROM bazar_fiche, bazar_nature WHERE bn_id_nature=bf_ce_nature AND bf_id_fiche='.$GLOBALS['_BAZAR_']['id_fiche'];
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$GLOBALS['_BAZAR_']['typeannonce']=$ligne['bn_label_nature'];
$GLOBALS['_BAZAR_']['commentaire']=$ligne['bn_commentaire'];
$GLOBALS['_BAZAR_']['appropriation']=$ligne['bn_appropriation'];
$GLOBALS['_BAZAR_']['annonceur']=$ligne['bf_ce_utilisateur'];
$GLOBALS['_BAZAR_']['nb_consultations']=$ligne['bf_nb_consultations'];
$GLOBALS['_BAZAR_']['image_titre']=$ligne['bn_image_titre'];
$GLOBALS['_BAZAR_']['image_logo']=$ligne['bn_image_logo'];
}
//on verifie si l'utilisateur est administrateur
$est_admin=0;
if ($GLOBALS['AUTH']->getAuth()) {
440,8 → 423,8
* @param string Le type de l'annonce (laisser vide pour tout type d'annonce)
* @param integer Le nombre d'annonces a regrouper dans le fichier XML (laisser vide pour toutes)
* @param integer L'identifiant de l'emetteur (laisser vide pour tous)
* @param integer L'état de validation de l'annonce (laisser 1 pour les annonces validées, 0 pour les non-validées)
* @param string La requête SQL personnalisee
* @param integer L'etat de validation de l'annonce (laisser 1 pour les annonces validees, 0 pour les non-validees)
* @param string La requete SQL personnalisee
*
* @return string Le code du flux RSS
*/
545,7 → 528,7
$squelette->setElementTemplate( '<li class="enligne">'."\n".'{element}'."\n".'</li>'."\n");
//cas du formulaire de recherche proposant de chercher parmis tous les types d'annonces
if ($typeannonce=='toutes') {
if ($GLOBALS['_BAZAR_']['typeannonce']=='toutes') {
$res= '<h2>'.BAZ_TOUTES_LES_ANNONCES.'</h2><br />'."\n";
//requete pour obtenir l'id et le label des types d'annonces
$requete = 'SELECT bn_id_nature, bn_label_nature '.
564,18 → 547,7
}
//cas du type d'annonces prédéfini
else {
//requete pour obtenir le label du type d'annonce
$requete = 'SELECT bn_label_nature '.
'FROM bazar_nature WHERE bn_id_nature='.$typeannonce.' '.
'ORDER BY bn_label_nature ASC';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$nom_typeannonce = constant($ligne['bn_label_nature']) ;
}
$res = '<h2>'.BAZ_TOUTES_LES_ANNONCES_DE_TYPE.' '.$nom_typeannonce.'</h2>'."\n";
$res = '<h2>'.BAZ_TOUTES_LES_ANNONCES_DE_TYPE.' '.$GLOBALS['_BAZAR_']['typeannonce'].'</h2>'."\n";
}
//requete pour obtenir l'id, le nom et prenom de toutes les personnes ayant depose une fiche
583,8 → 555,8
'FROM bazar_fiche,'.BAZ_ANNUAIRE.' '.
'WHERE bf_date_debut_validite_fiche<=NOW() AND bf_date_fin_validite_fiche>=NOW() AND bf_ce_utilisateur='.BAZ_CHAMPS_ID.' ';
if (!isset($_REQUEST['nature'])) {
if ($GLOBALS['_BAZAR_']['id_nature']!='toutes') {
$requete .= 'AND bf_ce_nature='.$GLOBALS['_BAZAR_']['id_nature'].' ';
if (isset($GLOBALS['_BAZAR_']['id_typeannonce'])) {
$requete .= 'AND bf_ce_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'].' ';
}
}
else {
/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.28 2006-01-05 16:28:24 alexandre_tb Exp $
// CVS : $Id: bazar.fonct.php,v 1.29 2006-01-13 14:12:51 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.28 $ $Date: 2006-01-05 16:28:24 $
*@version $Revision: 1.29 $ $Date: 2006-01-13 14:12:51 $
// +------------------------------------------------------------------------------------------------------+
*/
 
160,7 → 160,7
// 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='.$GLOBALS['_BAZAR_']['categorie_nature'].' ORDER BY bf_date_maj_fiche DESC,bf_ce_nature ASC';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;echo $requete ;
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ('Echec de la requete<br />'.$resultat->getMessage().'<br />'.$resultat->getDebugInfo()) ;
}
228,7 → 228,181
return $res;
}
 
/** baz_gestion_droits() interface de gestion des droits
*
* return string le code HTML
*/
function baz_gestion_droits() {
$lien_formulaire=$GLOBALS['_BAZAR_']['url'];
$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".'<table style="border:0;">'."\n".'{content}'."\n".'</table>'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<tr>'."\n".'<td style="font-size:12px;width:150px;text-align:right;">'."\n".'{label} :</td>'."\n".'<td style="text-align:left;padding:5px;"> '."\n".'{element}'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">*</span><!-- END required -->'."\n".
'<!-- BEGIN error --><span class="erreur">{error}</span><!-- END error -->'."\n".
'</td>'."\n".'</tr>'."\n");
$squelette->setElementTemplate( '<tr>'."\n".'<td colspan="2" class="liste_a_cocher"><strong>{label}&nbsp;{element}</strong>'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">&nbsp;*</span><!-- END required -->'."\n".'</td>'."\n".'</tr>'."\n", 'accept_condition');
$squelette->setElementTemplate( '<tr><td colspan="2" class="bouton">{label}{element}</td></tr>'."\n", 'valider');
$squelette->setRequiredNoteTemplate("\n".'<tr>'."\n".'<td colspan="2" class="symbole_obligatoire">* {requiredNote}</td></tr>'."\n");
//Traduction de champs requis
$formtemplate->setRequiredNote(BAZ_CHAMPS_REQUIS) ;
$formtemplate->setJsWarnings(BAZ_ERREUR_SAISIE,BAZ_VEUILLEZ_CORRIGER);
//Initialisation de la variable personne
if ( isset($_POST['personnes']) ) {
$personne=$_POST['personnes'];
}
else $personne=0;
//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
if (isset($_GET['idtypeannonce'])) {
$requete = 'DELETE FROM bazar_droits WHERE bd_id_utilisateur='.$_GET['pers'].
' AND bd_id_nature_offre='.$_GET['idtypeannonce'];
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
}
//CAS DU SUPER ADMIN: On efface tous les droits de la personne en general
else {
$requete = 'DELETE FROM bazar_droits WHERE bd_id_utilisateur='.$_GET['pers'];
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
}
if ($_GET['droits']=='superadmin') {
$requete = 'INSERT INTO bazar_droits VALUES ('.$_GET['pers'].',0,0)';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
}
elseif ($_GET['droits']=='redacteur') {
$requete = 'INSERT INTO bazar_droits VALUES ('.$_GET['pers'].','.$_GET['idtypeannonce'].',1)';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
}
elseif ($_GET['droits']=='admin') {
$requete = 'INSERT INTO bazar_droits VALUES ('.$_GET['pers'].','.$_GET['idtypeannonce'].',2)';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
}
}
//requete pour obtenir l'id, le nom et prenom des personnes inscrites a l'annuaire sauf soi meme
$requete = 'SELECT '.BAZ_CHAMPS_ID.', '.BAZ_CHAMPS_NOM.', '.BAZ_CHAMPS_PRENOM.' FROM '.BAZ_ANNUAIRE.
' WHERE '.BAZ_CHAMPS_ID."!=".$GLOBALS['id_user'].' ORDER BY '.BAZ_CHAMPS_NOM.' ASC';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
$res='<h2>'.BAZ_GESTION_DES_DROITS.'</h2><br />'."\n";
$res.=BAZ_DESCRIPTION_GESTION_DES_DROITS.'<br /><br />'."\n";
$personnes_select[0]=BAZ_SELECTION;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$personnes_select[$ligne[BAZ_CHAMPS_ID]] = $ligne[BAZ_CHAMPS_NOM]." ".$ligne[BAZ_CHAMPS_PRENOM] ;
}
$java=array ('style'=>'width:250px;','onchange'=>'this.form.submit();');
$formtemplate->addElement ('select', 'personnes', BAZ_LABEL_CHOIX_PERSONNE, $personnes_select, $java) ;
$defauts=array ('personnes'=>$personne);
$formtemplate->setDefaults($defauts);
$res.= $formtemplate->toHTML().'<br />'."\n" ;
if ($personne!=0) {
//cas du super utilisateur
if (niveau_droit(0,$personne)=='superadministrateur') {
$res.= '<br />'.BAZ_EST_SUPERADMINISTRATEUR.'<br /><br />'."\n";
$lien_enlever_superadmin=$GLOBALS['_BAZAR_']['url'];
$lien_enlever_superadmin->addQueryString('action', BAZ_GERER_DROITS);
$lien_enlever_superadmin->addQueryString('pers', $personne);
$lien_enlever_superadmin->addQueryString('droits', 'aucun');
$res.= '<a href='.$lien_enlever_superadmin->getURL().'>'.BAZ_CHANGER_SUPERADMINISTRATEUR.'</a><br />'."\n";
}
else {
$lien_passer_superadmin=$GLOBALS['_BAZAR_']['url'];
$lien_passer_superadmin->addQueryString('action', BAZ_GERER_DROITS);
$lien_passer_superadmin->addQueryString('pers', $personne);
$lien_passer_superadmin->addQueryString('droits', 'superadmin');
$res.= '<a href='.$lien_passer_superadmin->getURL().'>'.BAZ_PASSER_SUPERADMINISTRATEUR.'</a><br />'."\n";
//on cherche les differentes rubriques d'annonces
$requete = 'SELECT bn_id_nature, bn_label_nature, bn_image_titre FROM bazar_nature WHERE bn_ce_id_menu='.$GLOBALS['_GEN_commun']['info_menu']->gm_id_menu .' or bn_ce_id_menu=0';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
$res.='<br /><b>'.BAZ_DROITS_PAR_TYPE.'</b><br /><br />';
$table = new HTML_Table(array ('width' => '100%', 'class' => 'table_bazar')) ;
$table->addRow(array ('<strong>'.BAZ_TYPE_ANNONCES.'</strong>',
'<strong>'.BAZ_DROITS_ACTUELS.'</strong>',
'<strong>'.BAZ_PASSER_EN.'</strong>',
'<strong>'.BAZ_OU_PASSER_EN.'</strong>')) ;
$table->setRowType (0, 'th') ;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$droits=niveau_droit($ligne['bn_id_nature'],$personne);
 
$lien_aucun_droit=$GLOBALS['_BAZAR_']['url'];
$lien_aucun_droit->addQueryString('action', BAZ_GERER_DROITS);
$lien_aucun_droit->addQueryString('pers', $personne);
$lien_aucun_droit->addQueryString('droits', 'aucun');
$lien_aucun_droit->addQueryString('idtypeannonce', $ligne["bn_id_nature"]);
$lien_passer_redacteur=$GLOBALS['_BAZAR_']['url'];
$lien_passer_redacteur->addQueryString('action', BAZ_GERER_DROITS);
$lien_passer_redacteur->addQueryString('pers', $personne);
$lien_passer_redacteur->addQueryString('droits', 'redacteur');
$lien_passer_redacteur->addQueryString('idtypeannonce', $ligne["bn_id_nature"]);
$lien_passer_admin=$GLOBALS['_BAZAR_']['url'];
$lien_passer_admin->addQueryString('action', BAZ_GERER_DROITS);
$lien_passer_admin->addQueryString('pers', $personne);
$lien_passer_admin->addQueryString('droits', 'admin');
$lien_passer_admin->addQueryString('idtypeannonce', $ligne["bn_id_nature"]);
if (isset($ligne['bn_image_titre'])) {$titre='&nbsp;<img src="client/bazar/images/'.$ligne['bn_image_titre'].'" alt="'.constant($ligne['bn_label_nature']).'" />'."\n";}
else {$titre='<strong>&nbsp;'.constant($ligne['bn_label_nature']).'</strong>'."\n";}
if ($droits=='aucun') {
$table->addRow(array($titre,
BAZ_AUCUN_DROIT,
'<a href='.$lien_passer_redacteur->getURL().'>'.BAZ_DROIT_REDACTEUR.'</a>',
'<a href='.$lien_passer_admin->getURL().'>'.BAZ_DROIT_ADMIN.'</a>'));
}
elseif ($droits=='redacteur') {
$table->addRow(array($titre,
BAZ_DROIT_REDACTEUR,
'<a href='.$lien_aucun_droit->getURL().'>'.BAZ_AUCUN_DROIT.'</a>',
'<a href='.$lien_passer_admin->getURL().'>'.BAZ_DROIT_ADMIN.'</a>'));
}
else {
$table->addRow(array($titre,
BAZ_DROIT_ADMIN,
'<a href='.$lien_aucun_droit->getURL().'>'.BAZ_AUCUN_DROIT.'</a>',
'<a href='.$lien_passer_redacteur->getURL().'>'.BAZ_DROIT_REDACTEUR.'</a>'));
}
}
$table->altRowAttributes(1, array('class' => 'ligne_impaire'), array('class' => 'ligne_paire'));
$table->updateColAttributes(0, array('align' => 'left'));
$table->updateColAttributes(1, array('align' => 'left'));
$table->updateColAttributes(2, array('align' => 'left'));
$table->updateColAttributes(3, array('align' => 'left'));
$res.=$table->toHTML() ;
}
}
return $res;
}
 
/** baz_formulaire() - Renvoie le menu pour les saisies et modification des annonces
*
* @param string choix du formulaire a afficher (soit formulaire personnalise de
236,36 → 410,14
*
* @return string HTML
*/
function baz_formulaire($mode = 'inscription') {
function baz_formulaire($mode) {
if ($GLOBALS['AUTH']->getAuth()) {
//Recuperer les eventuelles variables passees en GET ou en POST
if (isset($_REQUEST['id_fiche'])) $GLOBALS['_BAZAR_']['id_fiche']=$_REQUEST['id_fiche'];
if (isset($_REQUEST['typeannonce'])) {
$GLOBALS['_BAZAR_']['typeannonce']=$_REQUEST['typeannonce'];
// Pour éviter qu'un formulaire soit revalidé si l'utilisateur
// Clique sur son bouton précédent
if ($mode == BAZ_ACTION_NOUVEAU) unset($_SESSION['formulaire_annonce_valide']) ;
}
//requete pour obtenir l'id du type d'annonce
if (isset($GLOBALS['_BAZAR_']['typeannonce'])) {
$requete = 'SELECT bn_id_nature, bn_condition FROM bazar_nature WHERE bn_id_nature="'.$GLOBALS['_BAZAR_']['typeannonce'].'"' ;
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$GLOBALS['_BAZAR_']['id_typeannonce']=$ligne['bn_id_nature'];
$conditions=$ligne['bn_condition'];
}
}
$lien_formulaire=$GLOBALS['_BAZAR_']['url'];
//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) {
if ((!isset($_POST['accept_condition']))and($conditions!=NULL)) {
if ((!isset($_POST['accept_condition']))and($GLOBALS['_BAZAR_']['condition']!=NULL)) {
$lien_formulaire->addQueryString('action', BAZ_ACTION_NOUVEAU);
} else {
$lien_formulaire->addQueryString('action', BAZ_ACTION_NOUVEAU_V);
272,7 → 424,7
}
}
if ($mode == BAZ_ACTION_MODIFIER) {
if (!isset($_POST['accept_condition'])and($conditions!=NULL)) {
if (!isset($_POST['accept_condition'])and($GLOBALS['_BAZAR_']['condition']!=NULL)) {
$lien_formulaire->addQueryString('action', BAZ_ACTION_MODIFIER);
} else {
$lien_formulaire->addQueryString('action', BAZ_ACTION_MODIFIER_V);
283,24 → 435,20
$lien_formulaire->addQueryString('action', BAZ_ACTION_MODIFIER_V);
$lien_formulaire->addQueryString('id_fiche', $GLOBALS['_BAZAR_']['id_fiche']);
}
if (!isset($GLOBALS['_BAZAR_']['typeannonce'])) $lien_formulaire->addQueryString('action', BAZ_ACTION_NOUVEAU);
else $lien_formulaire->addQueryString('typeannonce', $GLOBALS['_BAZAR_']['typeannonce']);
if ($mode == BAZ_GERER_DROITS) $lien_formulaire->addQueryString('action', BAZ_GERER_DROITS);
if (!isset($GLOBALS['_BAZAR_']['id_typeannonce'])) $lien_formulaire->addQueryString('action', BAZ_ACTION_NOUVEAU);
//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".
$squelette->setFormTemplate("\n".'<form {attributes}>'."\n".'<table style="border:0;">'."\n".'{content}'."\n".'</table>'."\n".'</form>'."\n");
$squelette->setElementTemplate( '<tr>'."\n".'<td style="font-size:12px;width:150px;text-align:right;">'."\n".'{label} :</td>'."\n".'<td style="text-align:left;padding:5px;"> '."\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");
'</td>'."\n".'</tr>'."\n");
$squelette->setElementTemplate( '<tr>'."\n".'<td colspan="2" class="liste_a_cocher"><strong>{label}&nbsp;{element}</strong>'."\n".
'<!-- BEGIN required --><span class="symbole_obligatoire">&nbsp;*</span><!-- END required -->'."\n".'</td>'."\n".'</tr>'."\n", 'accept_condition');
$squelette->setElementTemplate( '<tr><td colspan="2" class="bouton">{label}{element}</td></tr>'."\n", 'valider');
$squelette->setRequiredNoteTemplate("\n".'<tr>'."\n".'<td colspan="2" class="symbole_obligatoire">* {requiredNote}</td></tr>'."\n");
//Traduction de champs requis
$formtemplate->setRequiredNote(BAZ_CHAMPS_REQUIS) ;
$formtemplate->setJsWarnings(BAZ_ERREUR_SAISIE,BAZ_VEUILLEZ_CORRIGER);
309,8 → 457,7
//AFFICHAGE DU FORMULAIRE GENERAL DE CHOIX DU TYPE D'ANNONCE
//------------------------------------------------------------------------------------------------
if ($mode == BAZ_DEPOSER_ANNONCE) {
$res = '';
$res = '';
//requete pour obtenir le nom et la description des types d'annonce
$requete = "SELECT bn_id_nature, bn_label_nature, bn_description, bn_condition, bn_image_titre ".
"FROM bazar_nature WHERE bn_ce_id_menu=".$GLOBALS['_GEN_commun']['info_menu']->gm_id_menu.
319,7 → 466,7
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
$res.="<h2>".BAZ_DEPOSE_UNE_NOUVELLE_ANNONCE.'</h2>'."\n";
$res.='<h2>'.BAZ_DEPOSE_UNE_NOUVELLE_ANNONCE.'</h2>'."\n";
$res.='<br />'.BAZ_CHOIX_TYPEANNONCE.'<br /><br />'."\n";
while ($ligne = $resultat->fetchRow (DB_FETCHMODE_ASSOC)) {
$droitspers=niveau_droit($ligne["bn_id_nature"],$GLOBALS["id_user"]);
363,7 → 510,7
//------------------------------------------------------------------------------------------------
//CAS DE L'INSCRIPTION D'UNE ANNONCE
//------------------------------------------------------------------------------------------------
if (($mode == 'inscription')or($mode == BAZ_ACTION_NOUVEAU_V)) {
if ($mode == BAZ_ACTION_NOUVEAU_V) {
if ($formtemplate->validate() && !isset($_SESSION['formulaire_annonce_valide'])) {
$formtemplate->process('baz_insertion', false) ;
$_SESSION['formulaire_annonce_valide'] = 1;
380,162 → 527,6
return ;
}
}
//------------------------------------------------------------------------------------------------
//CAS OU LE FORMULAIRE DE GESTION DES DROITS EST APPELE
//------------------------------------------------------------------------------------------------
if ($mode == BAZ_GERER_DROITS) {
//Initialisation de la variable personne
if ( isset($_POST['personnes']) ) {
$personne=$_POST['personnes'];
}
else $personne=0;
//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
if (isset($_GET['idtypeannonce'])) {
$requete = 'DELETE FROM bazar_droits WHERE bd_id_utilisateur='.$_GET['pers'].
' AND bd_id_nature_offre='.$_GET['idtypeannonce'];
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
}
//CAS DU SUPER ADMIN: On efface tous les droits de la personne en general
else {
$requete = 'DELETE FROM bazar_droits WHERE bd_id_utilisateur='.$_GET['pers'];
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
}
if ($_GET['droits']=='superadmin') {
$requete = 'INSERT INTO bazar_droits VALUES ('.$_GET['pers'].',0,0)';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
}
elseif ($_GET['droits']=='redacteur') {
$requete = 'INSERT INTO bazar_droits VALUES ('.$_GET['pers'].','.$_GET['idtypeannonce'].',1)';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
}
elseif ($_GET['droits']=='admin') {
$requete = 'INSERT INTO bazar_droits VALUES ('.$_GET['pers'].','.$_GET['idtypeannonce'].',2)';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
}
}
//requete pour obtenir l'id, le nom et prenom des personnes inscrites a l'annuaire sauf soi meme
$requete = 'SELECT '.BAZ_CHAMPS_ID.', '.BAZ_CHAMPS_NOM.', '.BAZ_CHAMPS_PRENOM.' FROM '.BAZ_ANNUAIRE.
' WHERE '.BAZ_CHAMPS_ID."!=".$GLOBALS['id_user'].' ORDER BY '.BAZ_CHAMPS_NOM.' ASC';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
$res='<h2>'.BAZ_GESTION_DES_DROITS.'</h2><br />'."\n";
$res.=BAZ_DESCRIPTION_GESTION_DES_DROITS.'<br /><br />'."\n";
$personnes_select[0]=BAZ_SELECTION;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$personnes_select[$ligne[BAZ_CHAMPS_ID]] = $ligne[BAZ_CHAMPS_NOM]." ".$ligne[BAZ_CHAMPS_PRENOM] ;
}
$java=array ('style'=>'width:250px;','onchange'=>'this.form.submit();');
$formtemplate->addElement ('select', 'personnes', BAZ_LABEL_CHOIX_PERSONNE, $personnes_select, $java) ;
$defauts=array ('personnes'=>$personne);
$formtemplate->setDefaults($defauts);
$res.= $formtemplate->toHTML().'<br />'."\n" ;
if ($personne!=0) {
//cas du super utilisateur
if (niveau_droit(0,$personne)=='superadministrateur') {
$res.= '<br />'.BAZ_EST_SUPERADMINISTRATEUR.'<br /><br />'."\n";
$lien_enlever_superadmin=$GLOBALS['_BAZAR_']['url'];
$lien_enlever_superadmin->addQueryString('action', BAZ_GERER_DROITS);
$lien_enlever_superadmin->addQueryString('pers', $personne);
$lien_enlever_superadmin->addQueryString('droits', 'aucun');
$res.= '<a href='.$lien_enlever_superadmin->getURL().'>'.BAZ_CHANGER_SUPERADMINISTRATEUR.'</a><br />'."\n";
}
else {
$lien_passer_superadmin=$GLOBALS['_BAZAR_']['url'];
$lien_passer_superadmin->addQueryString('action', BAZ_GERER_DROITS);
$lien_passer_superadmin->addQueryString('pers', $personne);
$lien_passer_superadmin->addQueryString('droits', 'superadmin');
$res.= '<a href='.$lien_passer_superadmin->getURL().'>'.BAZ_PASSER_SUPERADMINISTRATEUR.'</a><br />'."\n";
//on cherche les differentes rubriques d'annonces
$requete = 'SELECT bn_id_nature, bn_label_nature, bn_image_titre FROM bazar_nature WHERE bn_ce_id_menu='.$GLOBALS['_GEN_commun']['info_menu']->gm_id_menu .' or bn_ce_id_menu=0';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
$res.='<br /><b>'.BAZ_DROITS_PAR_TYPE.'</b><br /><br />';
$table = new HTML_Table(array ('width' => '100%', 'class' => 'table_bazar')) ;
$table->addRow(array ('<strong>'.BAZ_TYPE_ANNONCES.'</strong>',
'<strong>'.BAZ_DROITS_ACTUELS.'</strong>',
'<strong>'.BAZ_PASSER_EN.'</strong>',
'<strong>'.BAZ_OU_PASSER_EN.'</strong>')) ;
$table->setRowType (0, 'th') ;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$droits=niveau_droit($ligne['bn_id_nature'],$personne);
$lien_aucun_droit=$GLOBALS['_BAZAR_']['url'];
$lien_aucun_droit->addQueryString('action', BAZ_GERER_DROITS);
$lien_aucun_droit->addQueryString('pers', $personne);
$lien_aucun_droit->addQueryString('droits', 'aucun');
$lien_aucun_droit->addQueryString('idtypeannonce', $ligne["bn_id_nature"]);
$lien_passer_redacteur=$GLOBALS['_BAZAR_']['url'];
$lien_passer_redacteur->addQueryString('action', BAZ_GERER_DROITS);
$lien_passer_redacteur->addQueryString('pers', $personne);
$lien_passer_redacteur->addQueryString('droits', 'redacteur');
$lien_passer_redacteur->addQueryString('idtypeannonce', $ligne["bn_id_nature"]);
$lien_passer_admin=$GLOBALS['_BAZAR_']['url'];
$lien_passer_admin->addQueryString('action', BAZ_GERER_DROITS);
$lien_passer_admin->addQueryString('pers', $personne);
$lien_passer_admin->addQueryString('droits', 'admin');
$lien_passer_admin->addQueryString('idtypeannonce', $ligne["bn_id_nature"]);
if (isset($ligne['bn_image_titre'])) {$titre='&nbsp;<img src="client/bazar/images/'.$ligne['bn_image_titre'].'" alt="'.constant($ligne['bn_label_nature']).'" />'."\n";}
else {$titre='<strong>&nbsp;'.constant($ligne['bn_label_nature']).'</strong>'."\n";}
if ($droits=='aucun') {
$table->addRow(array($titre,
BAZ_AUCUN_DROIT,
'<a href='.$lien_passer_redacteur->getURL().'>'.BAZ_DROIT_REDACTEUR.'</a>',
'<a href='.$lien_passer_admin->getURL().'>'.BAZ_DROIT_ADMIN.'</a>'));
}
elseif ($droits=='redacteur') {
$table->addRow(array($titre,
BAZ_DROIT_REDACTEUR,
'<a href='.$lien_aucun_droit->getURL().'>'.BAZ_AUCUN_DROIT.'</a>',
'<a href='.$lien_passer_admin->getURL().'>'.BAZ_DROIT_ADMIN.'</a>'));
}
else {
$table->addRow(array($titre,
BAZ_DROIT_ADMIN,
'<a href='.$lien_aucun_droit->getURL().'>'.BAZ_AUCUN_DROIT.'</a>',
'<a href='.$lien_passer_redacteur->getURL().'>'.BAZ_DROIT_REDACTEUR.'</a>'));
}
}
$table->altRowAttributes(1, array('class' => 'ligne_impaire'), array('class' => 'ligne_paire'));
$table->updateColAttributes(0, array('align' => 'left'));
$table->updateColAttributes(1, array('align' => 'left'));
$table->updateColAttributes(2, array('align' => 'left'));
$table->updateColAttributes(3, array('align' => 'left'));
$res.=$table->toHTML() ;
}
}
}
}
else $res=BAZ_IDENTIFIEZ_VOUS_POUR_SAISIR;
return $res;
565,22 → 556,13
}
//titre de la rubrique
$res= '<h2>'.BAZ_TITRE_SAISIE_ANNONCE.$GLOBALS['_BAZAR_']['typeannonce'].'</h2><br />'."\n";
//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'])))) {
$res= '<h2>'.BAZ_TITRE_SAISIE_ANNONCE.'&nbsp;'.constant($GLOBALS['_BAZAR_']['typeannonce']).'</h2><br />'."\n";
if (($GLOBALS['_BAZAR_']['condition']!='')AND(!isset($_POST['accept_condition']))AND(!isset($_GET['url'])OR(!isset($_GET['fichier']))OR(!isset($_GET['image'])))) {
require_once '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");
$conditions= new HTML_QuickForm_html('<tr><td colspan="2" style="padding:5px; margin:5px; width: 90%; background: #C1CBA7;">'.$GLOBALS['_BAZAR_']['condition'].'</td>'."\n".'</tr>'."\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->addElement('hidden', 'typeannonce', $GLOBALS['_BAZAR_']['id_typeannonce']);
$formtemplate->addRule('accept_condition', BAZ_ACCEPTE_CONDITIONS_REQUIS, 'required', '', 'client') ;
$formtemplate->addElement('submit', 'valider', BAZ_VALIDER);
}
587,11 → 569,13
//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');
$tableau=baz_valeurs_template($GLOBALS['_BAZAR_']['template']);
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']) ;
}
echo 'type annonce: '.$GLOBALS['_BAZAR_']['id_typeannonce'];
$formtemplate->addElement('hidden', 'typeannonce', $GLOBALS['_BAZAR_']['id_typeannonce']);
$formtemplate->addElement('submit', 'valider', BAZ_VALIDER);
if ($mode=='modification') {
770,13 → 754,13
//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')) {
$requete.='bf_statut_fiche=1,';
$requete.='bf_statut_fiche=1, ';
}
else {
$requete.='bf_statut_fiche="'.BAZ_ETAT_VALIDATION.'",';
$requete.='bf_statut_fiche="'.BAZ_ETAT_VALIDATION.'", ';
}
$tableau=baz_valeurs_template($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
echo '<br />'.$GLOBALS['_BAZAR_']['template'].'<br />';
$tableau=baz_valeur_template($GLOBALS['_BAZAR_']['template']);
for ($i=0; $i<count($tableau); $i++) {
if ($tableau[$i]['type']!='labelhtml') {
//cas des dates
784,8 → 768,10
$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') {
elseif (($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 {
806,7 → 792,6
return $requete;
}
 
 
/** baz_insertion() - inserer une nouvelle fiche
*
* @array Le tableau des valeurs a inserer
813,16 → 798,7
* @integer Valeur de l'identifiant de la fiche
* @return void
*/
function baz_insertion($valeur) {
// Recuperation de bn_appropriation
$requete_app = 'SELECT bn_appropriation FROM bazar_nature WHERE bn_id_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'] ;
$resultat_app = $GLOBALS['_BAZAR_']['db']->query($requete_app) ;
if (DB::isError($resultat_app)) {
echo $resultat_app->getMessage().$resultat_app->getDebugInfo().$requete_app;
}
$ligne = $resultat_app ->fetchRow(DB_FETCHMODE_ASSOC) ;
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']) ;
829,10 → 805,11
$requete = 'INSERT INTO bazar_fiche SET bf_id_fiche='.$id_fiche.','.
'bf_ce_utilisateur='.$GLOBALS['id_user'].', bf_ce_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'].','.
'bf_date_creation_fiche=NOW(),';
if ($ligne['bn_appropriation'] == 1) {
if ($GLOBALS['_BAZAR_']['appropriation']== 1) {
$requete .= 'bf_date_debut_validite_fiche=now(), ' ;
}
$requete .=requete_bazar_fiche(&$valeur, $GLOBALS['_BAZAR_']['id_typeannonce']) ;
$requete .=requete_bazar_fiche(&$valeur) ;
echo $requete;
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
840,7 → 817,7
// traitement des cases à cocher, donc des tables jointes,
// l'info est dans le champs table_jointe, champs_id_fiche, champs_id_table_jointe
$tableau = baz_valeurs_template($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
$tableau = ($GLOBALS['_BAZAR_']['template']);
for ($i=0; $i<count($tableau); $i++) {
if ($tableau[$i]['type']=='checkbox') {
897,7 → 874,7
* @return void
*/
function baz_insertion_fichier($fichier_description, $idfiche) {
//vérification de la présence de ce fichier
//verification de la presence de ce fichier
$requete = 'SELECT bfj_id_fichier FROM bazar_fichier_joint WHERE bfj_fichier="'.$_FILES['fichier_joint']['name'].'"';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
925,7 → 902,7
* @return void
*/
function baz_insertion_image($idfiche) {
//vérification de la présence de ce fichier
//verification de la presence de ce fichier
$requete = 'SELECT bf_id_fiche FROM bazar_fiche WHERE bf_url_image="'.$_FILES['image']['name'].'"';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
943,7 → 920,7
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
if ($resultat->numRows()==0) {
//création d'une fiche temporaire avec l'image
//creation d'une fiche temporaire avec l'image
$requete = 'INSERT INTO bazar_fiche SET bf_id_fiche='.$idfiche.', bf_ce_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'].', bf_ce_utilisateur='.$GLOBALS['id_user'].', bf_date_creation_fiche=NOW(), bf_url_image="'.$_FILES['image']['name'].'", '.
'bf_titre="annonce temporaire"';
}
964,7 → 941,6
* @return void
*/
function baz_mise_a_jour($valeur) {
 
//MAJ de bazar_fiche
$requete = 'UPDATE bazar_fiche SET '.requete_bazar_fiche(&$valeur,$GLOBALS['_BAZAR_']['id_typeannonce']);
$requete.= ' WHERE bf_id_fiche='.$GLOBALS['_BAZAR_']['id_fiche'];
993,7 → 969,7
// 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 = baz_valeurs_template($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
$tableau = ($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
for ($i=0; $i<count($tableau); $i++) {
if ($tableau[$i]['type']=='checkbox') {
1056,7 → 1032,7
* @return void
*/
function baz_suppression_fichier($id_fichier) {
//vérification de l'utilisation du fichier joint pour une autre annonce
//verification de l'utilisation du fichier joint pour une autre annonce
$requete = 'SELECT bfj_fichier FROM bazar_fichier_joint WHERE bfj_id_fichier='.$id_fichier;
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
1084,7 → 1060,7
* @return void
*/
function baz_suppression_image($id_fiche) {
//vérification de l'utilisation de l'image pour une autre annonce
//verification de l'utilisation de l'image pour une autre annonce
$requete = 'SELECT bf_url_image FROM bazar_fiche WHERE bf_id_fiche='.$id_fiche;
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
1240,7 → 1216,7
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC) ;
$valeurs_fiche = array() ;
$tableau=baz_valeurs_template($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
$tableau=($GLOBALS['_BAZAR_']['typeannonce'].'.tpl');
for ($i=0; $i<count($tableau); $i++) {
if ($tableau[$i]['type']!='labelhtml') {
$valeurs_fiche[$tableau[$i]['nom_bdd']] = stripslashes($ligne[$tableau[$i]['nom_bdd']]);
1254,90 → 1230,90
*
* @return string le code HTML à afficher
*/
function baz_rechercher() {
$res= '<h2>'.BAZ_RECHERCHER_DES_ANNONCES.'</h2>'."\n";
$GLOBALS['_BAZAR_']['url']->addQueryString('action', BAZ_RECHERCHER_ANNONCE);
$lien_formulaire=preg_replace ('/&amp;/', '&', $GLOBALS['_BAZAR_']['url']->getURL()) ;
$formtemplate = new HTML_QuickForm('formulaire', 'post', $lien_formulaire) ;
//requete pour obtenir l'id et le label des types d'annonces
$requete = 'SELECT bn_label_nature '.
'FROM bazar_nature WHERE bn_ce_id_menu='.$GLOBALS['_GEN_commun']['info_menu']->gm_id_menu.
' or bn_ce_id_menu=0 ORDER BY bn_label_nature ASC';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
$type_annonce_select['toutes']=BAZ_TOUTES;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$type_annonce_select[$ligne['bn_label_nature']] = $ligne['bn_label_nature'];
}
$option=array('style'=>'width: 195px;', 'onchange'=>'this.form.submit();');
$formtemplate->addElement ('select', 'type_annonce', BAZ_TYPEANNONCE, $type_annonce_select, $option) ;
//requete pour obtenir l'id, le nom et prénom de toutes les personnes ayant une fiche publiée actuellement
$requete = 'SELECT '.BAZ_CHAMPS_ID.', '.BAZ_CHAMPS_NOM.', '.BAZ_CHAMPS_PRENOM.' '.
'FROM bazar_fiche,'.BAZ_ANNUAIRE.' '.
'WHERE bf_statut_fiche=1 AND bf_date_debut_validite_fiche<=NOW() AND bf_date_fin_validite_fiche>=NOW() AND bf_ce_utilisateur='.BAZ_CHAMPS_ID.' '.
'ORDER BY '.BAZ_CHAMPS_NOM.' ASC';
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
$personnes_select['tous']=BAZ_TOUS;
while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
$personnes_select[$ligne[BAZ_CHAMPS_ID]] = $ligne[BAZ_CHAMPS_NOM]." ".$ligne[BAZ_CHAMPS_PRENOM] ;
}
$option=array('style'=>'width: 195px;', 'onchange'=>'this.form.submit();');
$formtemplate->addElement ('select', 'personnes', BAZ_EMETTEUR, $personnes_select, $option) ;
//champs texte pour entrer les mots clés
$option=array('size'=>30,'maxlength'=>40);
$formtemplate->addElement('text', 'recherche_mots_cles', BAZ_MOT_CLE, $option) ;
//Bouton de validation du formulaire
$bouton[] = &HTML_QuickForm::createElement('submit', 'valider', BAZ_VALIDER);
$formtemplate->addGroup($bouton, null, null, '');
$requeteSQL='';
//affichage des résultats de la recherche si le formulaire a été envoyé
if (isset($_POST['type_annonce'])) {
//ajout des champs pour la recherche personnalisée
if ($_POST['type_annonce']!='toutes') {
$tableau=baz_valeurs_template($_POST['type_annonce'].'.tpl');
$nbvaleurs=count($tableau);
$html='<h3>'.BAZ_RECHERCHE_AVANCEE.'</h3>'."\n";
$formtemplate->addElement('html', $html) ;
for ($i=0; $i<$nbvaleurs; $i++) {
if (($tableau[$i]['type']=='liste')or($tableau[$i]['type']=='listedatedeb')or($tableau[$i]['type']=='listedatefin')) {
$tableau[$i]['type']($formtemplate, $tableau[$i]['nom_bdd'], $tableau[$i]['label'], $tableau[$i]['limite1'],
$tableau[$i]['limite2'], $tableau[$i]['defaut'], $tableau[$i]['table_source'], 0) ;
}
}
}
$res.= $formtemplate->toHTML() ;
//préparation de la requête pour trouver les mots clés
if ($_POST['recherche_mots_cles']!='') {
//découpage des mots clés
$recherche = split(' ', $_POST['recherche_mots_cles']) ;
$nbmots=count($recherche);
for ($i=0; $i<$nbmots; $i++) {
if ($i>0) $requeteSQL.=' OR ';
$requeteSQL.='bf_titre LIKE "%'.$recherche[$i].'%" OR bf_description LIKE "%'.$recherche[$i].'%" ';
}
}
//génération de l'affichage
$res.=RSSversHTML(gen_RSS($_POST['type_annonce'], '', $_POST['personnes'], 1, $requeteSQL), 1, 'jm') ;
}
else {
//Bouton de validation du formulaire
$res.=$formtemplate->toHTML()."\n".BAZ_DESCRIPTION_RECHERCHE;
}
return $res;
}
//function baz_rechercher() {
// $res= '<h2>'.BAZ_RECHERCHER_DES_ANNONCES.'</h2>'."\n";
//
// $GLOBALS['_BAZAR_']['url']->addQueryString('action', BAZ_RECHERCHER_ANNONCE);
// $lien_formulaire=preg_replace ('/&amp;/', '&', $GLOBALS['_BAZAR_']['url']->getURL()) ;
// $formtemplate = new HTML_QuickForm('formulaire', 'post', $lien_formulaire) ;
//
// //requete pour obtenir l'id et le label des types d'annonces
// $requete = 'SELECT bn_label_nature '.
// 'FROM bazar_nature WHERE bn_ce_id_menu='.$GLOBALS['_GEN_commun']['info_menu']->gm_id_menu.
// ' or bn_ce_id_menu=0 ORDER BY bn_label_nature ASC';
// $resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
// if (DB::isError($resultat)) {
// die ($resultat->getMessage().$resultat->getDebugInfo()) ;
// }
// $type_annonce_select['toutes']=BAZ_TOUTES;
// while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
// $type_annonce_select[$ligne['bn_label_nature']] = $ligne['bn_label_nature'];
// }
// $option=array('style'=>'width: 195px;', 'onchange'=>'this.form.submit();');
// $formtemplate->addElement ('select', 'type_annonce', BAZ_TYPEANNONCE, $type_annonce_select, $option) ;
//
// //requete pour obtenir l'id, le nom et prénom de toutes les personnes ayant une fiche publiée actuellement
// $requete = 'SELECT '.BAZ_CHAMPS_ID.', '.BAZ_CHAMPS_NOM.', '.BAZ_CHAMPS_PRENOM.' '.
// 'FROM bazar_fiche,'.BAZ_ANNUAIRE.' '.
// 'WHERE bf_statut_fiche=1 AND bf_date_debut_validite_fiche<=NOW() AND bf_date_fin_validite_fiche>=NOW() AND bf_ce_utilisateur='.BAZ_CHAMPS_ID.' '.
// 'ORDER BY '.BAZ_CHAMPS_NOM.' ASC';
// $resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
// if (DB::isError($resultat)) {
// die ($resultat->getMessage().$resultat->getDebugInfo()) ;
// }
// $personnes_select['tous']=BAZ_TOUS;
// while ($ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC)) {
// $personnes_select[$ligne[BAZ_CHAMPS_ID]] = $ligne[BAZ_CHAMPS_NOM]." ".$ligne[BAZ_CHAMPS_PRENOM] ;
// }
// $option=array('style'=>'width: 195px;', 'onchange'=>'this.form.submit();');
// $formtemplate->addElement ('select', 'personnes', BAZ_EMETTEUR, $personnes_select, $option) ;
//
// //champs texte pour entrer les mots clés
// $option=array('size'=>30,'maxlength'=>40);
// $formtemplate->addElement('text', 'recherche_mots_cles', BAZ_MOT_CLE, $option) ;
// //Bouton de validation du formulaire
// $bouton[] = &HTML_QuickForm::createElement('submit', 'valider', BAZ_VALIDER);
// $formtemplate->addGroup($bouton, null, null, '');
//
// $requeteSQL='';
// //affichage des résultats de la recherche si le formulaire a été envoyé
// if (isset($_POST['type_annonce'])) {
// //ajout des champs pour la recherche personnalisée
// if ($_POST['type_annonce']!='toutes') {
// $tableau=baz_valeurs_template($_POST['type_annonce'].'.tpl');
// $nbvaleurs=count($tableau);
// $html='<h3>'.BAZ_RECHERCHE_AVANCEE.'</h3>'."\n";
// $formtemplate->addElement('html', $html) ;
// for ($i=0; $i<$nbvaleurs; $i++) {
// if (($tableau[$i]['type']=='liste')or($tableau[$i]['type']=='listedatedeb')or($tableau[$i]['type']=='listedatefin')) {
// $tableau[$i]['type']($formtemplate, $tableau[$i]['nom_bdd'], $tableau[$i]['label'], $tableau[$i]['limite1'],
// $tableau[$i]['limite2'], $tableau[$i]['defaut'], $tableau[$i]['table_source'], 0) ;
// }
// }
// }
// $res.= $formtemplate->toHTML() ;
//
// //préparation de la requête pour trouver les mots clés
// if ($_POST['recherche_mots_cles']!='') {
// //découpage des mots clés
// $recherche = split(' ', $_POST['recherche_mots_cles']) ;
// $nbmots=count($recherche);
// for ($i=0; $i<$nbmots; $i++) {
// if ($i>0) $requeteSQL.=' OR ';
// $requeteSQL.='bf_titre LIKE "%'.$recherche[$i].'%" OR bf_description LIKE "%'.$recherche[$i].'%" ';
// }
// }
//
// //génération de l'affichage
// $res.=RSSversHTML(gen_RSS($_POST['type_annonce'], '', $_POST['personnes'], 1, $requeteSQL), 1, 'jm') ;
// }
// else {
// //Bouton de validation du formulaire
// $res.=$formtemplate->toHTML()."\n".BAZ_DESCRIPTION_RECHERCHE;
// }
//
// return $res;
//}
 
 
function baz_envoie_mail() {
1403,6 → 1379,9
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.28 2006/01/05 16:28:24 alexandre_tb
* prise en chage des checkbox, reste la mise à jour à gérer
*
* Revision 1.27 2006/01/04 15:30:56 alexandre_tb
* mise en forme du code
*
/trunk/bibliotheque/bazar.fonct.formulaire.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.formulaire.php,v 1.12 2006-01-05 16:28:24 alexandre_tb Exp $
// CVS : $Id: bazar.fonct.formulaire.php,v 1.13 2006-01-13 14:12:51 florian Exp $
/**
* Formulaire
*
31,7 → 31,7
//Autres auteurs :
*@author Aleandre GRANIER <alexandre@tela-botanica.org>
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.12 $ $Date: 2006-01-05 16:28:24 $
*@version $Revision: 1.13 $ $Date: 2006-01-13 14:12:51 $
// +------------------------------------------------------------------------------------------------------+
*/
 
42,7 → 42,7
/** liste() - Ajoute un élément de type liste au formulaire
*
* @param mixed L'objet QuickForm du formulaire
* @param string nom du champs dans la table bazar_fiche dans la base de donnée
* @param int identifiant de la liste sur bazar_liste
* @param string label à afficher dans le formulaire
* @param string première restriction de la taille des champs du formulaire
* @param string deuxième restriction de la taille des champs du formulaire
51,29 → 51,27
* @param string ce champs est il obligatoire? (required)
* @return void
*/
function liste(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire) {
$requete = 'select * from '.$source;
function liste(&$formtemplate, $id_liste , $label, $limite1, $limite2, $defaut, $source, $obligatoire) {
//TODO: trouver la variable générique papyrus pour les langues
$requete = 'SELECT * FROM bazar_liste_valeurs WHERE blv_ce_liste='.$id_liste.' AND blv_ce_i18n="fr-FR"';
$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
while ($ligne = $resultat->fetchRow()) {
$select[$ligne[0]] = $ligne[1] ;
$select[$ligne[1]] = $ligne[2] ;
}
$option=array('style'=>'width: '.$limite1.'px;');
require_once 'HTML/QuickForm/select.php';
$select= new HTML_QuickForm_select($nom_bdd, constant($label), $select, $option);
$select= new HTML_QuickForm_select('liste'.$id_liste, constant($label), $select, $option);
$select->setSize($limite2);
$select->setMultiple(0);
$select->setSelected($defaut);
$formtemplate->addElement($select) ;
//gestion des champs obligatoire
//$formtemplate->registerRule('saisir_liste','function','liste_choisir');
//$formtemplate->addRule($nom_bdd, BAZ_CHOISIR_OBLIGATOIRE , 'saisir_liste');
 
if (isset($obligatoire)and($obligatoire==1)) {
$formtemplate->addRule($nom_bdd, BAZ_CHOISIR_OBLIGATOIRE.' '.constant($label) , 'nonzero', '', 'client') ;
$formtemplate->addRule($nom_bdd, constant($label.'_REQUIS'), 'required', '', 'client') ;}
$formtemplate->addRule('liste'.$id_liste, BAZ_CHOISIR_OBLIGATOIRE.' '.constant($label) , 'nonzero', '', 'client') ;
$formtemplate->addRule('liste'.$id_liste, constant($label.'_REQUIS'), 'required', '', 'client') ;}
}
 
 
80,7 → 78,7
/** checkbox() - Ajoute un élément de type checkbox au formulaire
*
* @param mixed L'objet QuickForm du formulaire
* @param string nom du champs dans la table bazar_fiche dans la base de donnée
* @param int identifiant de la liste sur bazar_liste
* @param string label à afficher dans le formulaire
* @param string première restriction de la taille des champs du formulaire
* @param string deuxième restriction de la taille des champs du formulaire
89,26 → 87,24
* @param string ce champs est il obligatoire? (required)
* @return void
*/
function checkbox(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire) {
$requete = 'SELECT * FROM '.$source;
function checkbox(&$formtemplate, $id_liste , $label, $limite1, $limite2, $defaut, $source, $obligatoire) {
//TODO: trouver la variable générique papyrus pour les langues
$requete = 'SELECT * FROM bazar_liste_valeurs WHERE blv_ce_liste='.$id_liste.' AND blv_ce_i18n="fr-FR"';
$resultat = & $GLOBALS['_BAZAR_']['db'] -> query($requete) ;
if (DB::isError ($resultat)) {
die ($GLOBALS['_BAZAR_']['db']->getMessage().$GLOBALS['_BAZAR_']['db']->getDebugInfo()) ;
}
$tableau_info_jointure = explode (',', $nom_bdd) ;
$nom_table_jointure = $tableau_info_jointure[0] ;
require_once 'HTML/QuickForm/advcheckbox.php' ;
$i=0;
while ($ligne = $resultat->fetchRow()) {
//$chkbox[$ligne[0]] = $ligne[1] ;
if ($i==0) $labelchkbox=constant($label) ; else $labelchkbox='&nbsp;' ;
$checkbox[]= & HTML_Quickform::createElement('checkbox', '', $labelchkbox, $ligne[1],
$checkbox[]= & HTML_Quickform::createElement('checkbox', $ligne[1], $labelchkbox, $ligne[2],
array ('style'=>'display:inline;margin-left:2px;')) ;
$i++;
}
 
$formtemplate->addGroup($checkbox, $nom_table_jointure, constant($label), '<br />'."\n");
$formtemplate->addGroup($checkbox, 'checkbox'.$id_liste, constant($label), '<br />'."\n");
}
 
 
215,7 → 211,7
*/
function labelhtml(&$formtemplate, $nom_bdd , $label, $limite1, $limite2, $defaut, $source, $obligatoire) {
require_once 'HTML/QuickForm/html.php';
$formhtml= new HTML_QuickForm_html('<li>'.constant($label).'</li>'."\n");
$formhtml= new HTML_QuickForm_html('<tr>'."\n".'<td colspan="2">'."\n".constant($label)."\n".'</td>'."\n".'</tr>'."\n");
$formtemplate->addElement($formhtml) ;
}
 
222,6 → 218,9
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.12 2006/01/05 16:28:24 alexandre_tb
* prise en chage des checkbox, reste la mise à jour à gérer
*
* Revision 1.11 2006/01/02 13:24:07 alexandre_tb
* correction de bug d'un mauvais retour en erreur
*
/trunk/bazar.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.php,v 1.20 2006-01-05 16:28:25 alexandre_tb Exp $
// CVS : $Id: bazar.php,v 1.21 2006-01-13 14:12:52 florian Exp $
/**
*
*@package bazar
28,7 → 28,7
*@author Florian Schmitt <florian@ecole-et-nature.org>
//Autres auteurs :
*@copyright Tela-Botanica 2000-2004
*@version $Revision: 1.20 $ $Date: 2006-01-05 16:28:25 $
*@version $Revision: 1.21 $ $Date: 2006-01-13 14:12:52 $
// +------------------------------------------------------------------------------------------------------+
*/
 
68,9 → 68,10
if (defined('PAP_VERSION')) { //si on est dans Papyrus
GEN_stockerStyleExterne( 'bazar_interne', 'client/bazar/bazar.interne.css');
}
//initialisation de l'id user
$GLOBALS['id_user']=$GLOBALS['AUTH']->getAuthData(BAZ_CHAMPS_ID);
 
//**********************************************************************************************************
//initialisation des paramêtres papyrus
//**********************************************************************************************************
//si un parametre est précisé dans le gestionnaire de menus papyrus, on le prends en compte
//parametre action pour lancer directement l'action indiquée
if (!isset($_GET['action'])and(isset($GLOBALS['_GEN_commun']['info_application']->action))) {
88,10 → 89,38
else $GLOBALS['_BAZAR_']['categorie_nature']=0;
//parametre id_nature pour afficher un certain type de fiche (par défaut, tous les types de fiches)
if (isset($GLOBALS['_GEN_commun']['info_application']->id_nature)) {
$GLOBALS['_BAZAR_']['id_nature']=$GLOBALS['_GEN_commun']['info_application']->id_nature;
$GLOBALS['_BAZAR_']['id_typeannonce']=$GLOBALS['_GEN_commun']['info_application']->id_nature;
}
else $GLOBALS['_BAZAR_']['id_nature']='toutes';
elseif (!isset($GLOBALS['_BAZAR_']['typeannonce'])) $GLOBALS['_BAZAR_']['typeannonce']='toutes';
 
//**********************************************************************************************************
//initialisation de la variable globale de bazar
//**********************************************************************************************************
$GLOBALS['id_user']=$GLOBALS['AUTH']->getAuthData(BAZ_CHAMPS_ID);
 
//Recuperer les eventuelles variables passees en GET ou en POST
if (isset($_REQUEST['id_fiche'])) $GLOBALS['_BAZAR_']['id_fiche']=$_REQUEST['id_fiche'];
if (isset($_REQUEST['typeannonce'])) {
$GLOBALS['_BAZAR_']['id_typeannonce']=$_REQUEST['typeannonce'];
}
 
if ((isset($GLOBALS['_BAZAR_']['id_typeannonce']))and($GLOBALS['_BAZAR_']['id_typeannonce']!='toutes')) {
$requete = 'SELECT bn_label_nature, bn_condition, bn_template, bn_commentaire, bn_appropriation, bn_image_titre, bn_image_logo FROM bazar_nature WHERE bn_id_nature='.$GLOBALS['_BAZAR_']['id_typeannonce'];
$resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
if (DB::isError($resultat)) {
die ($resultat->getMessage().$resultat->getDebugInfo()) ;
}
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
$GLOBALS['_BAZAR_']['typeannonce']=$ligne['bn_label_nature'];
$GLOBALS['_BAZAR_']['condition']=$ligne['bn_condition'];
$GLOBALS['_BAZAR_']['template']=$ligne['bn_template'];
$GLOBALS['_BAZAR_']['commentaire']=$ligne['bn_commentaire'];
$GLOBALS['_BAZAR_']['appropriation']=$ligne['bn_appropriation'];
$GLOBALS['_BAZAR_']['nb_consultations']=$ligne['bf_nb_consultations'];
$GLOBALS['_BAZAR_']['image_titre']=$ligne['bn_image_titre'];
$GLOBALS['_BAZAR_']['image_logo']=$ligne['bn_image_logo'];
}
 
// +------------------------------------------------------------------------------------------------------+
// | LISTE de FONCTIONS |
// +------------------------------------------------------------------------------------------------------+
151,6 → 180,7
$res.='<h1>'.$GLOBALS['_GEN_commun']['info_menu']->gm_titre.'</h1>'."\n";
 
if (isset($_GET['action'])) {
if (($_GET['action']!=BAZ_ACTION_NOUVEAU_V)and($_GET['action']!=BAZ_ACTION_MODIFIER_V)) unset($_SESSION['formulaire_annonce_valide']);
switch ($_GET['action']) {
case BAZ_VOIR_VOS_ANNONCES : $res .= mes_fiches(); break;
case BAZ_VOIR_TOUTES_ANNONCES : $res .= baz_liste($GLOBALS['_BAZAR_']['id_nature']); break;
161,13 → 191,13
case BAZ_SUPPRIMER_FICHE : $res .= baz_suppression().baz_liste('',$GLOBALS['id_user'],''); break;
case BAZ_VOIR_FICHE : $res .= baz_voir_fiche(1); break;
case BAZ_ACTION_NOUVEAU : $res .= baz_formulaire(BAZ_ACTION_NOUVEAU); break;
case BAZ_ACTION_NOUVEAU_V : $res .= baz_formulaire(BAZ_ACTION_NOUVEAU_V).mes_fiches(); break;
case BAZ_ACTION_NOUVEAU_V : $res .= baz_formulaire(BAZ_ACTION_NOUVEAU_V).baz_formulaire(BAZ_DEPOSER_ANNONCE); break;
case BAZ_ACTION_MODIFIER : $res .= baz_formulaire(BAZ_ACTION_MODIFIER); break;
case BAZ_ACTION_MODIFIER_V : $res .= baz_formulaire(BAZ_ACTION_MODIFIER_V).mes_fiches(); break;
case BAZ_ACTION_SUPPRESSION : $res .= baz_suppression().mes_fiches(); break;
case BAZ_ACTION_MODIFIER_V : $res .= baz_formulaire(BAZ_ACTION_MODIFIER_V).baz_formulaire(BAZ_DEPOSER_ANNONCE); break;
case BAZ_ACTION_SUPPRESSION : $res .= baz_suppression().baz_formulaire(BAZ_DEPOSER_ANNONCE); break;
case BAZ_ACTION_PUBLIER : publier_fiche(1) ;$res .= fiches_a_valider(); break;
case BAZ_ACTION_PAS_PUBLIER : publier_fiche(0) ;$res .= fiches_a_valider(); break;
case BAZ_GERER_DROITS : $res .= baz_formulaire(BAZ_GERER_DROITS); break;
case BAZ_GERER_DROITS : $res .= baz_gestion_droits(); break;
case BAZ_S_INSCRIRE : $res .= baz_s_inscrire(); break;
case BAZ_VOIR_FLUX_RSS : header('Content-type: text/xml; charset=ISO-8859-1');include("bazarRSS.php");exit(0);break;
default : $res .= accueil() ;
183,6 → 213,9
/* +--Fin du code ----------------------------------------------------------------------------------------+
*
* $Log: not supported by cvs2svn $
* Revision 1.20 2006/01/05 16:28:25 alexandre_tb
* prise en chage des checkbox, reste la mise à jour à gérer
*
* Revision 1.19 2006/01/03 10:19:31 florian
* Mise à jour pour accepter des parametres dans papyrus: faire apparaitre ou non le menu, afficher qu'un type de fiches, définir l'action par défaut...
*