Subversion Repositories Applications.bazar

Compare Revisions

Ignore whitespace Rev 114 → Rev 115

/trunk/bibliotheque/bazar.fonct.rss.php
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 {