Subversion Repositories Applications.bazar

Compare Revisions

Ignore whitespace Rev 467 → Rev 468

/trunk/patch-bazar-RSS-bugSuperAdmin.patch
New file
0,0 → 1,122
Index: bibliotheque/bazar.fonct.rss.php
===================================================================
--- bibliotheque/bazar.fonct.rss.php (révision 464)
+++ bibliotheque/bazar.fonct.rss.php (révision 465)
@@ -392,7 +392,7 @@
$res .= '<br />'."\n".'<div class="BAZ_cadre_fiche BAZ_cadre_fiche_'.$GLOBALS['_BAZAR_']['class'].'">'."\n";
$res .= '<h2 class="BAZ_titre BAZ_titre_'.$GLOBALS['_BAZAR_']['class'].'">'.BAZ_LES_STRUCTURES_POSSEDANT_UNE_RESSOURCE.'</h2>'."\n";
$requete = 'SELECT '.BAZ_CHAMPS_ID.', '.BAZ_CHAMPS_NOM.' FROM bazar_appropriation,'.BAZ_ANNUAIRE.' WHERE ba_ce_id_fiche='.$GLOBALS['_BAZAR_']['id_fiche'].' AND ba_ce_id_structure='.BAZ_CHAMPS_ID.' ORDER BY '.BAZ_CHAMPS_NOM.' ASC';
- $resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
+ $resultat = $GLOBALS['_BAZAR_']['db']->query($requete . ' -- ' . __FILE__ . ':' . __LINE__) ;
if (DB::isError ($resultat)) {
return $resultat->getMessage().'<br />'.$resultat->getDebugInfo();
}
@@ -640,18 +640,17 @@
function gen_RSS($typeannonce='', $nbitem='', $emetteur='', $valide=1, $requeteSQL='', $requeteSQLFrom = '', $requeteWhereListe = '', $categorie_nature='', $order = '') {
// generation de la requete MySQL personnalisee
- $req_where=0;
$requete = 'SELECT DISTINCT bf_id_fiche, bf_titre, bf_date_debut_validite_fiche, bf_description,bf_date_debut_evenement, bn_label_nature, bf_date_creation_fiche, bf_ce_utilisateur '.
'FROM bazar_fiche, bazar_nature '.$requeteSQLFrom.' WHERE '.$requeteWhereListe;
+
+ $where_cond = array();
if ($valide!=2) {
- $requete .= 'bf_statut_fiche='.$valide;
- $req_where=1;
+ $where_cond[] = 'bf_statut_fiche='.$valide;
}
$nomflux=html_entity_decode(BAZ_DERNIERE_ACTU);
if (!is_array ($typeannonce) && $typeannonce!='' and $typeannonce!='toutes') {
- if ($req_where==1) {$requete .= ' AND ';}
- $requete .= 'bf_ce_nature='.$typeannonce.' and bf_ce_nature=bn_id_nature ';;
- $req_where=1;
+ $where_cond[] = 'bf_ce_nature='.$typeannonce;
+ $where_cond[] = ' bf_ce_nature=bn_id_nature';
//le nom du flux devient le type d'annonce
$requete_nom_flux = 'select bn_label_nature from bazar_nature where bn_id_nature = '.$typeannonce;
$nomflux = $GLOBALS['_BAZAR_']['db']->getOne($requete_nom_flux) ;
@@ -659,38 +658,24 @@
// cas où on veut toutes les annonces
if ($typeannonce == 'toutes') {
- if ($req_where==1) {$requete .= ' AND ';}
- $requete .= 'bf_ce_nature IN (1,2,3,4' ;
- $chaine = '';
- $requete .= ') and bf_ce_nature=bn_id_nature ';
+ $where_cond[] = 'bf_ce_nature IN (1,2,3,4)';
+ $where_cond[] = 'bf_ce_nature=bn_id_nature';
}
// Cas ou il y plusieurs type d annonce demande
- if (is_array ($typeannonce)) {
- if ($req_where==1) {$requete .= ' AND ';}
- $requete .= 'bf_ce_nature IN (' ;
- $chaine = '';
- foreach ($typeannonce as $valeur) $chaine .= '"'.$valeur.'",' ;
- $requete .= substr ($chaine, 0, strlen ($chaine)-1) ;
- $requete .= ') and bf_ce_nature=bn_id_nature ';
+ if (is_array($typeannonce) && ! empty($typeannonce)) {
+ $where_cond[] = 'bf_ce_nature IN (' . '"' . implode('","', $typeannonce) . '"' . ')';
+ $where_cond[] = 'bf_ce_nature=bn_id_nature';
}
- $utilisateur = new Administrateur_bazar ($GLOBALS['AUTH']) ;
- if ($utilisateur->isSuperAdmin()) {
- $req_where=1;
- } else {
- if ($req_where==1) {
- $requete .= ' AND ';
- }
+ // useless ?
+ // $utilisateur = new Administrateur_bazar ($GLOBALS['AUTH']) ;
- }
+ $where_cond[] = 'bf_date_debut_evenement >= NOW()';
+ $where_cond[] = 'bn_id_nature=bf_ce_nature';
- $requete .= 'bf_date_debut_evenement >= NOW() AND bn_id_nature=bf_ce_nature';
-
if ($emetteur!='' && $emetteur!='tous') {
- if ($req_where==1) {$requete .= ' AND ';}
- $requete .= 'bf_ce_utilisateur='.$emetteur;
- $req_where=1;
+ $where_cond[] = 'bf_ce_utilisateur='.$emetteur;
//requete pour afficher le nom de la structure
$requetenom = 'SELECT '.BAZ_CHAMPS_NOM.', '.BAZ_CHAMPS_PRENOM.' FROM '.
BAZ_ANNUAIRE.' WHERE '.BAZ_CHAMPS_ID.'='.$emetteur;
@@ -701,26 +686,25 @@
$ligne = $resultat->fetchRow(DB_FETCHMODE_ASSOC);
$nomflux .= ' ('.$ligne[BAZ_CHAMPS_NOM].' '.$ligne[BAZ_CHAMPS_PRENOM].')';
}
- if ($requeteSQL!='') {
- if ($req_where==1) {$requete .= ' AND ';}
- $requete .= '('.$requeteSQL.')';
- $req_where=1;
+ if ($requeteSQL) {
+ $where_cond[] = $requeteSQL;
}
+
if ($categorie_nature!='') {
- if ($req_where==1) {$requete .= ' AND ';}
- $requete .= 'bn_ce_id_menu IN ('.$categorie_nature.') and bf_ce_nature=bn_id_nature ';
- $req_where=1;
+ $where_cond[] = 'bn_ce_id_menu IN ('.$categorie_nature.')';
+ $where_cond[] = 'bf_ce_nature=bn_id_nature';
}
if (isset($_REQUEST['departement'])) {
- if ($req_where==1) {$requete .= ' AND ';}
- $requete .= ' bf_cp_lieu_evenement LIKE "'.$_REQUEST['departement'].'%" ';
+ $where_cond[] = 'bf_cp_lieu_evenement LIKE "'.$_REQUEST['departement'].'%"';
}
+
+ $requete .= implode(' AND ', $where_cond);
$requete .= ' ORDER BY bf_date_debut_evenement ASC ';
if ($nbitem!='') {$requete .= ' LIMIT 0,'.$nbitem;}
- $resultat = $GLOBALS['_BAZAR_']['db']->query($requete) ;
+ $resultat = $GLOBALS['_BAZAR_']['db']->query($requete . ' -- ' . __FILE__ . ':' . __LINE__) ;
//mail('aurelien@tela-botanica.org','requete',$requete);