444,11 → 444,11 |
* |
* @return string Le code du flux RSS |
*/ |
function gen_RSS($typeannonce='', $nbitem='', $emetteur='', $valide=1, $requeteSQL='') { |
function gen_RSS($typeannonce='', $nbitem='', $emetteur='', $valide=1, $requeteSQL='', $requeteSQLFrom = '') { |
// generation de la requete MySQL personnalisee |
$req_where=0; |
$requete = 'SELECT DISTINCT bf_id_fiche, bf_titre, bf_date_debut_validite_fiche '. |
'FROM bazar_fiche, bazar_nature WHERE '; |
'FROM bazar_fiche, bazar_nature '.$requeteSQLFrom.' WHERE '; |
if ($valide!=2) { |
$requete .= 'bf_statut_fiche='.$valide; |
$req_where=1; |
582,7 → 582,8 |
} |
if ($GLOBALS['_BAZAR_']['typeannonce']=='toutes') { |
$res= '<h2>'.BAZ_TOUTES_LES_ANNONCES.'</h2><br />'."\n"; |
$option=array('style'=>'border:1px solid #000;width: 140px;font:12px Myriad, Arial, sans-serif;'); |
$option=array('style'=>'border:1px solid #000;width: 140px;font:12px Myriad, Arial, sans-serif;', |
'onchange' => 'javascript:this.form.submit();'); |
$formtemplate->addElement ('select', 'nature', BAZ_TYPEANNONCE, $type_annonce_select, $option) ; |
} |
//cas du type d'annonces prédéfini |
650,6 → 651,33 |
//option cachee pour savoir si le formulaire a ete appele deja |
$formtemplate->addElement('hidden', 'recherche_effectuee', 1) ; |
|
// Ajout des options si un type de fiche a ete choisie |
if (isset($_POST['nature']) || isset($GLOBALS['_BAZAR_']['categorie_nature'])) { |
if ($GLOBALS['_BAZAR_']['categorie_nature'] != '') { |
$champs_requete = 'bn_ce_id_menu' ; |
$_POST['nature'] = $GLOBALS['_BAZAR_']['categorie_nature']; |
} else { |
$champs_requete = 'bn_id_nature' ; |
} |
// Récupération du template |
$requete = 'select bn_template from bazar_nature where '.$champs_requete.'='.$_POST['nature']; |
$resultat = $GLOBALS['_BAZAR_']['db']->getOne($requete) ; |
if (DB::isError($resultat)) { |
die ($resultat->getMessage().$resultat->getDebugInfo()) ; |
} |
|
$tableau = baz_valeurs_template($resultat) ; |
|
for ($i=0; $i<count($tableau); $i++) { |
if ($tableau[$i]['type'] == 'liste' || $tableau[$i]['type'] == 'checkbox') { |
if ($tableau[$i]['type'] == 'checkbox') { |
$formtemplate->addElement ('html', '<br />'.$tableau[$i]['label'].'<br />') ; |
} |
$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']) ; |
} |
} |
} |
//Bouton de validation du formulaire |
$option=array('style'=>'border:1px solid #000;width:80px;font:12px Myriad, Arial, sans-serif;'); |
$bouton[] = &HTML_QuickForm::createElement('submit', 'rechercher', BAZ_RECHERCHER, $option); |
658,6 → 686,34 |
//affichage du formulaire |
$res.=$formtemplate->toHTML()."\n"; |
|
// Ajout de la table bazar_fiche_liste_valeur dans le from de la requete |
$case_coche = false ; |
$requeteFrom = '' ; |
$requeteWhere = '' ; |
$requeteWhereListe = '' ; |
|
for ($i = 0; $i < count ($tableau); $i++) { |
if ($tableau[$i]['type'] == 'checkbox' || $tableau[$i]['type'] == 'liste') { |
$nom_liste = $tableau[$i]['type'].$tableau[$i]['nom_bdd'] ; |
|
if (is_array($_POST[$nom_liste])) { |
foreach ($_POST[$nom_liste] as $cle =>$valeur) { |
echo $valeur ; |
if ($valeur == 1) { |
$case_coche = true ; |
$requeteWhereListe .= ' AND bfvl_ce_liste='.$tableau[$i]['nom_bdd'] ; // Numéro de la liste |
|
} |
} |
} |
} |
} |
if ($case_coche) { |
$requeteFrom = ', bazar_fiche_valeur_liste ' ; |
$requeteWhereListe .= ' AND bfvl_valeur IN ()' ; |
$requeteWhere = ' bfvl_ce_fiche=bf_id_fiche'.$requeteWhereListe; |
} |
|
//affichage des resultats de la recherche si le formulaire a ete envoye |
$requeteSQL=''; |
if (isset($_REQUEST['recherche_effectuee'])) { |
684,7 → 740,7 |
else {$valides=1;} |
//generation de la liste de flux a afficher |
|
$res .= RSSversHTML(gen_RSS($typedefiches, '', $_POST['personnes'], $valides, $requeteSQL), |
$res .= RSSversHTML(gen_RSS($typedefiches, '', $_POST['personnes'], $valides, $requeteSQL, $requeteFrom), |
0, BAZ_TYPE_AFFICHAGE_LISTE, 1) ; |
} |
else { |