Changeset 87489 in spip-zone


Ignore:
Timestamp:
Feb 17, 2015, 8:57:33 AM (5 years ago)
Author:
cedric@…
Message:

Bugfix : sur les secteurs on affiche une icone pour voir tous les forums proposes sur les articles du secteur mais la page controler_forum n'affichait pas les resultats correspondants

  • on declare la jointure sur spip_articles pour le critere id_secteur
  • on filtre les messages sur id_secteur quand il est dans l'URL
  • on modifie l'url du lien pour passer les bons arguments et arriver sur les messages proposes dont le decompte correspond a ce qui est annonce sur l'icone
Location:
_core_/branches/spip-3.0/plugins/forum
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • _core_/branches/spip-3.0/plugins/forum/base/forum.php

    r79966 r87489  
    2828
    2929        // il ne faut pas essayer de chercher le forum du mot cle, mais bien le mot cle associe au forum
     30        $interfaces['exceptions_des_jointures']['spip_forum']['id_secteur'] = array('spip_articles','id_secteur');
    3031        $interfaces['exceptions_des_jointures']['spip_forum']['id_mot'] = array('spip_mots','id_mot');
    3132        $interfaces['exceptions_des_jointures']['spip_forum']['titre_mot'] = array('spip_mots','titre');
  • _core_/branches/spip-3.0/plugins/forum/forum_pipelines.php

    r80918 r87489  
    126126                        $n_forums = 0;
    127127                if ($n_forums)
    128                 $flux['data'] .= icone_verticale(_T('forum:icone_suivi_forum', array('nb_forums' => $n_forums)), generer_url_ecrire("controler_forum","objet=rubrique&id_objet=$id_rubrique"), "forum-24.png", "", 'center');
     128                $flux['data'] .= icone_verticale(_T('forum:icone_suivi_forum', array('nb_forums' => $n_forums)), generer_url_ecrire("controler_forum","objet=article&id_secteur=$id_rubrique&statut=prop"), "forum-24.png", "", 'center');
    129129        }
    130130        return $flux;
  • _core_/branches/spip-3.0/plugins/forum/inc/forum.php

    r79785 r87489  
    1414include_spip('inc/actions');
    1515
    16 // recuperer le critere SQL qui selectionne nos forums
    17 // http://doc.spip.org/@critere_statut_controle_forum
    18 function critere_statut_controle_forum($type, $id_rubrique=0, $recherche='') {
    19 
    20         if (is_array($id_rubrique))   $id_rubrique = join(',',$id_rubrique);
    21         if (!$id_rubrique) {
     16/**
     17 * recuperer le critere SQL qui selectionne nos forums
     18 * http://doc.spip.org/@critere_statut_controle_forum
     19 *
     20 * @param string $type
     21 * @param int|array $id_secteur
     22 * @param string $recherche
     23 * @return array
     24 */
     25function critere_statut_controle_forum($type, $id_secteur=0, $recherche='') {
     26
     27        if (!$id_secteur) {
    2228                $from = 'spip_forum AS F';
    2329                $where = "";
    2430                $and = "";
    2531        } else {
    26                 if (strpos($id_rubrique,','))
    27                   $eq = " IN ($id_rubrique)";
    28                 else $eq = "=$id_rubrique";
    29              
     32                if (!is_array($id_secteur)){
     33                        $id_secteur = explode(',',$id_secteur);
     34                }
    3035                $from = 'spip_forum AS F, spip_articles AS A';
    31                 $where = "A.id_secteur$eq AND F.objet='article' AND F.id_objet=A.id_article";
     36                $where = sql_in("A.id_secteur",$id_secteur)." AND F.objet='article' AND F.id_objet=A.id_article";
    3237                $and = ' AND ';
    3338        }
    3439   
    3540        switch ($type) {
    36         case 'public':
    37                 $and .= "F.statut IN ('publie', 'off', 'prop', 'spam') AND F.texte!=''";
    38                 break;
    39         case 'prop':
    40                 $and .= "F.statut='prop'";
    41                 break;
    42         case 'spam':
    43                 $and .= "F.statut='spam'";
    44                 break;
    45         case 'interne':
    46                 $and .= "F.statut IN ('prive', 'privrac', 'privoff', 'privadm') AND F.texte!=''";
    47                 break;
    48         case 'vide':
    49                 $and .= "F.statut IN ('publie', 'off', 'prive', 'privrac', 'privoff', 'privadm') AND F.texte=''";
    50                 break;
    51         default:
    52                 $where = '0=1';
    53                 $and ='';
    54                 break;
     41                case 'public':
     42                        $and .= "F.statut IN ('publie', 'off', 'prop', 'spam') AND F.texte!=''";
     43                        break;
     44                case 'prop':
     45                        $and .= "F.statut='prop'";
     46                        break;
     47                case 'spam':
     48                        $and .= "F.statut='spam'";
     49                        break;
     50                case 'interne':
     51                        $and .= "F.statut IN ('prive', 'privrac', 'privoff', 'privadm') AND F.texte!=''";
     52                        break;
     53                case 'vide':
     54                        $and .= "F.statut IN ('publie', 'off', 'prive', 'privrac', 'privoff', 'privadm') AND F.texte=''";
     55                        break;
     56                default:
     57                        $where = '0=1';
     58                        $and ='';
     59                        break;
    5560        }
    5661
  • _core_/branches/spip-3.0/plugins/forum/paquet.xml

    r86007 r87489  
    22        prefix="forum"
    33        categorie="communication"
    4         version="1.8.36"
     4        version="1.8.37"
    55        etat="stable"
    66        compatibilite="[3.0.0;3.0.*]"
  • _core_/branches/spip-3.0/plugins/forum/prive/squelettes/contenu/controler_forum.html

    r59777 r87489  
    6262        [<h2><:resultats_recherche:> &#171;&nbsp;(#ENV{recherche})&nbsp;&#187;</h2>]
    6363
    64 <B_forum>
     64<B_forums>
    6565        <h3>[(#GRAND_TOTAL|singulier_ou_pluriel{forum:info_1_message_forum,forum:info_nb_messages_forum}|sinon{<:forum:aucun_message_forum:>})]</h3>
    6666        <div class="clear"></div>
     
    6868        [<p class='pagination'>(#PAGINATION{prive})</p>]
    6969        <ul class='liste-items forums'>
    70                 <BOUCLE_forum(FORUMS){id_forum?}{id_objet?}{objet?}{id_auteur?}{auteur?}{email_auteur?}{ip?}{!par id_forum}{pagination #ENV{nb,10}}{statut?}{statut LIKE #GET{prive}}{statut !LIKE #GET{public}}{texte LIKE #GET{vide}}{recherche?}>
     70                <BOUCLE_forums(FORUMS){id_forum?}{id_objet?}{id_secteur?}{objet?}{id_auteur?}{auteur?}{email_auteur?}{ip?}{!par id_forum}{pagination #ENV{nb,10}}{statut?}{statut LIKE #GET{prive}}{statut !LIKE #GET{public}}{texte LIKE #GET{vide}}{recherche?}>
    7171                        <li class="item forum[ (#EXPOSE)] statut_#STATUT[ (#COMPTEUR_BOUCLE|alterner{'','odd'})]" id='forum#ID_FORUM' data-id='#ID_FORUM'
    7272                                                        onclick="jQuery(this).toggleClass('hover');">
    7373                        [(#INCLURE{fond=prive/modeles/forum, id_forum, self})]
    7474                        </li>
    75                 </BOUCLE_forum>
     75                </BOUCLE_forums>
    7676        </ul>
    7777        [<p class='pagination'>(#PAGINATION{prive})</p>]
    78 </B_forum>
     78</B_forums>
    7979
    8080        <h3><:forum:aucun_message_forum:></h3>
    8181
    82 <//B_forum>
     82<//B_forums>
  • _core_/branches/spip-3.0/plugins/forum/prive/squelettes/inclure/boutons-filtres-statut-forum.html

    r60471 r87489  
    99
    1010#SET{statut,#ENV{type_message,public}|=={interne}|?{'prive','publie'}}
    11 <BOUCLE_cpt_1(FORUMS){id_forum?}{id_auteur?}{id_objet?}{objet?}{auteur?}{email_auteur?}{ip?}{statut=#GET{statut}}{statut !LIKE #GET{public}}{texte LIKE #GET{vide}}{recherche?} />
     11<BOUCLE_cpt_1(FORUMS){id_forum?}{id_auteur?}{id_objet?}{objet?}{id_secteur?}{auteur?}{email_auteur?}{ip?}{statut=#GET{statut}}{statut !LIKE #GET{public}}{texte LIKE #GET{vide}}{recherche?} />
    1212[(#TOTAL_BOUCLE|oui) <li class='#GET{statut}'>[(#GET{self}|parametre_url{statut,#GET{statut}}|lien_ou_expose{#VAL{forum:messages_#GET{statut}}|_T|concat{' (',#TOTAL_BOUCLE,')'},#ENV{statut,''}|=={#GET{statut}},'ajax'})]</li>]<//B_cpt_1>
    1313
    1414#SET{statut,#ENV{type_message,public}|=={interne}|?{'privrac','prop'}}
    15 <BOUCLE_cpt_2(FORUMS){id_forum?}{id_auteur?}{id_objet?}{objet?}{auteur?}{email_auteur?}{ip?}{statut=#GET{statut}}{statut !LIKE #GET{public}}{texte LIKE #GET{vide}}{recherche?} />
     15<BOUCLE_cpt_2(FORUMS){id_forum?}{id_auteur?}{id_objet?}{objet?}{id_secteur?}{auteur?}{email_auteur?}{ip?}{statut=#GET{statut}}{statut !LIKE #GET{public}}{texte LIKE #GET{vide}}{recherche?} />
    1616[(#TOTAL_BOUCLE|oui) <li class='#GET{statut}'>[(#GET{self}|parametre_url{statut,#GET{statut}}|lien_ou_expose{#VAL{forum:messages_#GET{statut}}|_T|concat{' (',#TOTAL_BOUCLE,')'},#ENV{statut,''}|=={#GET{statut}},'ajax'})]</li>]<//B_cpt_2>
    1717
    1818#SET{statut,#ENV{type_message,public}|=={interne}|?{'privadm','spam'}}
    19 <BOUCLE_cpt_3(FORUMS){id_forum?}{id_auteur?}{id_objet?}{objet?}{auteur?}{email_auteur?}{ip?}{statut=#GET{statut}}{statut !LIKE #GET{public}}{texte LIKE #GET{vide}}{recherche?} />
     19<BOUCLE_cpt_3(FORUMS){id_forum?}{id_auteur?}{id_objet?}{objet?}{id_secteur?}{auteur?}{email_auteur?}{ip?}{statut=#GET{statut}}{statut !LIKE #GET{public}}{texte LIKE #GET{vide}}{recherche?} />
    2020[(#TOTAL_BOUCLE|oui) <li class='#GET{statut}'>[(#GET{self}|parametre_url{statut,#GET{statut}}|lien_ou_expose{#VAL{forum:messages_#GET{statut}}|_T|concat{' (',#TOTAL_BOUCLE,')'},#ENV{statut,''}|=={#GET{statut}},'ajax'})]</li>]<//B_cpt_3>
    2121
    2222#SET{statut,#ENV{type_message,public}|=={interne}|?{'privoff','off'}}
    23 <BOUCLE_cpt_4(FORUMS){id_forum?}{id_auteur?}{id_objet?}{objet?}{auteur?}{email_auteur?}{ip?}{statut=#GET{statut}}{statut !LIKE #GET{public}}{texte LIKE #GET{vide}}{recherche?} />
     23<BOUCLE_cpt_4(FORUMS){id_forum?}{id_auteur?}{id_objet?}{objet?}{id_secteur?}{auteur?}{email_auteur?}{ip?}{statut=#GET{statut}}{statut !LIKE #GET{public}}{texte LIKE #GET{vide}}{recherche?} />
    2424[(#TOTAL_BOUCLE|oui) <li class='#GET{statut}'>[(#GET{self}|parametre_url{statut,#GET{statut}}|lien_ou_expose{#VAL{forum:messages_#GET{statut}}|_T|concat{' (',#TOTAL_BOUCLE,')'},#ENV{statut,''}|=={#GET{statut}},'ajax'})]</li>]<//B_cpt_4>
    2525</ul>
Note: See TracChangeset for help on using the changeset viewer.