Changeset 22643 in spip-zone


Ignore:
Timestamp:
Sep 18, 2008, 1:15:01 PM (13 years ago)
Author:
cedric@…
Message:

compatibilite avec la branche beta2 ne supportant pas SUBSELECT dans la clause where des boucles

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/acces_restreint/public/acces_restreint.php

    r22633 r22643  
    7474 * @return string
    7575 */
    76 function AccesRestreint_rubriques_accessibles_where($primary){
    77         return "sql_in('$primary', AccesRestreint_liste_rubriques_exclues(test_espace_prive()), 'NOT')";
     76function AccesRestreint_rubriques_accessibles_where($primary,$not='NOT'){
     77        return "sql_in('$primary', AccesRestreint_liste_rubriques_exclues(test_espace_prive()), '$not')";
    7878}
    7979
     
    8585 */
    8686function AccesRestreint_articles_accessibles_where($primary){
    87         return "array('IN','$primary',array('SUBSELECT','id_article','spip_articles',array(".AccesRestreint_rubriques_accessibles_where('id_rubrique').")))";
     87        # hack : on utilise zzz pour eviter que l'optimiseur ne confonde avec un morceau de la requete principale
     88        return "array('NOT IN','$primary','('.sql_get_select('zzza.id_article','spip_articles as zzza',".AccesRestreint_rubriques_accessibles_where('zzza.id_rubrique','').",'','','','',\$connect).')')";
     89        #return array('SUBSELECT','id_article','spip_articles',array(".AccesRestreint_rubriques_accessibles_where('id_rubrique').")))";
    8890}
    8991
     
    9597 */
    9698function AccesRestreint_breves_accessibles_where($primary){
    97         return "array('IN','$primary',array('SUBSELECT','id_breve','spip_breves',array(".AccesRestreint_rubriques_accessibles_where('id_rubrique').")))";
     99        # hack : on utilise zzz pour eviter que l'optimiseur ne confonde avec un morceau de la requete principale
     100        return "array('NOT IN','$primary','('.sql_get_select('zzzb.id_breve','spip_breves as zzzb',".AccesRestreint_rubriques_accessibles_where('zzzb.id_rubrique','').",'','','','',\$connect).')')";
     101        #return "array('IN','$primary',array('SUBSELECT','id_breve','spip_breves',array(".AccesRestreint_rubriques_accessibles_where('id_rubrique').")))";
    98102}
    99103
     
    105109 */
    106110function AccesRestreint_syndic_articles_accessibles_where($primary){
    107         return "array('IN','$primary',array('SUBSELECT','id_syndic','spip_syndic',array(".AccesRestreint_rubriques_accessibles_where('id_rubrique').")))";
     111        # hack : on utilise zzz pour eviter que l'optimiseur ne confonde avec un morceau de la requete principale
     112        return "array('NOT IN','$primary','('.sql_get_select('zzzs.id_syndic','spip_syndic as zzzs',".AccesRestreint_rubriques_accessibles_where('zzzs.id_rubrique','').",'','','','',\$connect).')')";
     113        #return "array('IN','$primary',array('SUBSELECT','id_syndic','spip_syndic',array(".AccesRestreint_rubriques_accessibles_where('id_rubrique').")))";
    108114}
    109115
     
    116122 */
    117123function AccesRestreint_documents_accessibles_where($primary){
    118         return "array('IN','$primary',array('SUBSELECT','id_document','spip_documents_liens',
     124        # hack : on utilise zzz pour eviter que l'optimiseur ne confonde avec un morceau de la requete principale
     125        return "array('IN','$primary','('.sql_get_select('zzz.id_document','spip_documents_liens as zzz',
     126        array(array('OR',
     127                array('OR',
     128                        array('AND','zzz.objet=\'rubrique\'',".AccesRestreint_rubriques_accessibles_where('zzz.id_objet')."),
     129                        array('AND','zzz.objet=\'article\'',".AccesRestreint_articles_accessibles_where('zzz.id_objet').")
     130                ),
     131                        array('AND','zzz.objet=\'breve\'',".AccesRestreint_breves_accessibles_where('zzz.id_objet').")
     132        ))"
     133        .",'','','','',\$connect).')')";
     134        /*return "array('IN','$primary',array('SUBSELECT','id_document','spip_documents_liens',
    119135        array(array('OR',
    120136                array('OR',
     
    124140                        array('AND','objet=\'breve\'',".AccesRestreint_breves_accessibles_where('id_objet').")
    125141        ))
    126         ))";
     142        ))";*/
    127143}
    128144
Note: See TracChangeset for help on using the changeset viewer.