Changeset 59828 in spip-zone


Ignore:
Timestamp:
Mar 27, 2012, 5:37:30 PM (7 years ago)
Author:
marcimat@…
Message:

On affiche le message de publication de rubrique que si la rubrique n'est pas déjà publiée.
+ on passe au pipeline de messages la liste des messages déjà vus de l'auteur, pour éviter au maximum des requetes sql, en évitant des calculs si le message a déjà été lu.

Location:
_core_/plugins/compagnon
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _core_/plugins/compagnon/compagnon_messages.php

    r59644 r59828  
    66function compagnon_compagnon_messages($flux) {
    77
    8         $exec = $flux['args']['exec'];
     8        $exec     = $flux['args']['exec'];
    99        $pipeline = $flux['args']['pipeline'];
    10         $aides = &$flux['data'];
     10        $vus      = $flux['args']['deja_vus'];
     11        $aides    = &$flux['data'];
    1112
    1213        switch ($pipeline) {
     
    4041
    4142                                case 'rubriques':
    42                                         if (!sql_countsel('spip_rubriques')) {
     43                                        // eviter si possible une requete sql.
     44                                        if (!isset($vus['rubriques']) and !sql_countsel('spip_rubriques')) {
    4345                                                $aides[] = array(
    4446                                                        'id' => 'rubriques',
     
    5355
    5456                                case 'rubrique':
    55                                         $aides[] = array(
    56                                                 'id' => 'rubrique',
    57                                                 'titre' => _T('compagnon:c_rubrique_publier'),
    58                                                 'texte' => _T('compagnon:c_rubrique_publier_texte'),
    59                                                 'statuts'=> array('webmestre'),
    60                                                 'target'=> '#contenu .icone.article-new-24'
    61                                         );
     57                                        // eviter si possible une requete sql.
     58                                        if (!isset($vus['rubrique'])) {
     59                                                $statut = sql_getfetsel('statut', 'spip_rubriques', 'id_rubrique='.$flux['args']['id_rubrique']);
     60                                                if ($statut != 'publie') {
     61                                                        $aides[] = array(
     62                                                                'id' => 'rubrique',
     63                                                                'titre' => _T('compagnon:c_rubrique_publier'),
     64                                                                'texte' => _T('compagnon:c_rubrique_publier_texte'),
     65                                                                'statuts'=> array('webmestre'),
     66                                                                'target'=> '#contenu .icone.article-new-24'
     67                                                        );
     68                                                }
     69                                        }
    6270                                        break;
    6371
    6472                                case 'articles':
    65                                         if (!sql_countsel('spip_rubriques')) {
     73                                        // eviter si possible une requete sql.
     74                                        if (!isset($vus['articles']) and !sql_countsel('spip_rubriques')) {
    6675                                                $aides[] = array(
    6776                                                        'id' => 'articles',
  • _core_/plugins/compagnon/compagnon_pipelines.php

    r54635 r59828  
    3232                return $flux;
    3333        }
    34        
     34
     35        $moi = $GLOBALS['visiteur_session'];
     36        $deja_vus = lire_config("compagnon/".$moi['id_auteur']);
     37
    3538        $flux['args']['pipeline'] = $pipeline;
    36         $aides = pipeline('compagnon_messages', array('args'=>$flux['args'], 'data'=>array()));
    37        
     39        $flux['args']['deja_vus'] = $deja_vus;
     40        $aides = pipeline('compagnon_messages', array('args'=>$flux['args'], 'data' => array()));
     41
    3842        if (!$aides) {
    3943                return $flux;
    4044        }
    41        
    42        
    43         $moi = $GLOBALS['visiteur_session'];
    44         $deja_vus = lire_config("compagnon/".$moi['id_auteur']);
     45
    4546        $ajouts = "";
    46        
     47
    4748        foreach ($aides as $aide) {
    4849                // restreindre l'affichage par statut d'auteur
     
    5758                        } elseif (in_array($moi['statut'], $statuts)) {
    5859                                $ok = true;
    59                         }                       
     60                        }
    6061                }
    6162
  • _core_/plugins/compagnon/paquet.xml

    r59135 r59828  
    22        prefix="compagnon"
    33        categorie="divers"
    4         version="1.3.0"
     4        version="1.4.0"
    55        etat="dev"
    66        compatibilite="[3.0.0-alpha2;["
Note: See TracChangeset for help on using the changeset viewer.