Changeset 115939 in spip-zone for _plugins_


Ignore:
Timestamp:
Jul 12, 2019, 10:03:03 AM (5 days ago)
Author:
root
Message:

Correction d'un bug vicelard : les documents avec le rôle logo étaient exclus par défaut des boucles DOCUMENTS, fort bien. Sauf que cette exclusion ne doit avoir lieu que quand il y a une jointure sur la table de liens, sinon ça exclut des documents pour rien. Exemple : dans ce cas, il n'y a aucune raison d'exclure le document s'il est utilisé comme logo quelque part.

Location:
_plugins_/roles_documents/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/roles_documents/trunk/paquet.xml

    r115424 r115939  
    22        prefix="roles_documents"
    33        categorie="edition"
    4         version="1.2.24"
     4        version="1.2.25"
    55        etat="dev"
    66        compatibilite="[3.2.0;3.2.*]"
  • _plugins_/roles_documents/trunk/roles_documents_pipelines.php

    r110165 r115939  
    163163
    164164/**
    165  * Empêcher les logos de sortir dans les boucles DOCUMENTS standards.
     165 * Empêcher les logos de sortir dans les boucles DOCUMENTS lorsqu'il y a une jointure sur la table de liens (et donc des rôles actifs).
    166166 *
    167167 * C'est nécessaire pour la rétro-compatibilité avec les squelettes existants.
    168168 * Pour voir les logos dans les boucles DOCUMENTS, il faut utiliser
    169  * explicitement le critère {tout} ou {role=logo}
     169 * explicitement le critère {tout} ou {role=logo} ou {role?}
    170170 *
    171171 * @pipeline pre_boucle
     
    177177        // Boucle DOCUMENTS
    178178        if ($boucle->type_requete === 'documents') {
     179
     180                // Vérifier s'il y a une jointure sur la table de liens
     181                $jointure_documents = false;
     182                if ($boucle->join) {
     183                        foreach($boucle->join as $join) {
     184                                if (array_search(sql_quote('documents'), $join) !== false) {
     185                                        $jointure_documents = true;
     186                                        break;
     187                                }
     188                        }
     189                }
    179190
    180191                // Vérifier la présence du critère {role}
     
    211222                // Go go go
    212223                if (
    213                         !$utilise_critere_logo
     224                        $jointure_documents
     225                        and !$utilise_critere_logo
    214226                        and (empty($boucle->modificateur['tout']) or $boucle->modificateur['tout'] === false)
    215227                        and !$bypass
Note: See TracChangeset for help on using the changeset viewer.