Changeset 50075 in spip-zone
- Timestamp:
- Jul 29, 2011, 2:46:34 PM (10 years ago)
- Location:
- _plugins_/acces_restreint
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/acces_restreint/acces_restreint_fonctions.php
r50067 r50075 143 143 } 144 144 145 /** 146 * Cherche si la rubrique donnée est inclue dans une zone d'accès restreinte. 147 * 148 * [(#ID_RUBRIQUE|accesrestreint_rubrique_zone_restreinte|oui) Rubrique non visible dans une zone] 149 * [(#ID_RUBRIQUE|accesrestreint_rubrique_zone_restreinte{tout}) Rubrique dans une zone ] 150 * 151 * @param int $id_rubrique : identifiant de la rubrique 152 * @param null|bool|'tout' Sélectionner les rubriques 153 * cachées dans le public (true), 154 * le privé (false), 155 * selon le contexte privé ou public (null), 156 * cachées ou non quelque soit le contexte ('tout') 157 * @return bool La rubrique est présente dans une zone 158 **/ 159 function accesrestreint_rubrique_zone_restreinte($id_rubrique, $_publique=null) { 160 return 161 @in_array($id_rubrique, 162 accesrestreint_liste_rubriques_restreintes_et_enfants($_publique) 163 ); 164 } 145 165 146 166 /** 147 167 * Retourne la liste de toutes les rubriques sélectionnées dans des zones 148 168 * 169 @param null|bool|'tout' Sélectionner les rubriques 170 * cachées dans le public (true), 171 * le privé (false), 172 * selon le contexte privé ou public (null), 173 * cachées ou non quelque soit le contexte ('tout') 149 174 * @return Array liste d'identifiants de rubriques 150 175 **/ 151 function accesrestreint_liste_rubriques_restreintes( ) {176 function accesrestreint_liste_rubriques_restreintes($_publique = null) { 152 177 static $rubs = array(); 153 178 154 $_publique = !test_espace_prive(); 179 // $_publique : null, true, false, 'tout' 180 $tout = false; 181 if (is_null($_publique)) { 182 $_publique = !test_espace_prive(); 183 } elseif ($_publique === 'tout') { 184 $tout = true; 185 } 155 186 156 187 if (isset($rubs[$_publique])) { 157 188 return $rubs[$_publique]; 158 } 159 160 if ($_publique) { 161 $p = 'publique=' . sql_quote('oui'); 162 } else { 163 $p = 'prive=' . sql_quote('non'); 164 } 165 166 $idz = sql_allfetsel('DISTINCT(id_rubrique)', array('spip_zones_rubriques AS zr', 'spip_zones AS z'), array( 167 'z.id_zone = zr.id_zone', $p 168 )); 189 } 190 191 $where = array('z.id_zone = zr.id_zone'); 192 if (!$tout) { 193 if ($_publique) { 194 $where[] = 'publique=' . sql_quote('oui'); 195 } else { 196 $where[] = 'privee=' . sql_quote('oui'); 197 } 198 } 199 200 $idz = sql_allfetsel('DISTINCT(id_rubrique)', array('spip_zones_rubriques AS zr', 'spip_zones AS z'), $where); 169 201 170 202 if (is_array($idz)) { … … 180 212 * Retourne la liste de toutes les rubriques sélectionnées dans des zones 181 213 * 214 * @param null|bool|'tout' Sélectionner les rubriques 215 * cachées dans le public (true), 216 * le privé (false), 217 * selon le contexte privé ou public (null), 218 * cachées ou non quelque soit le contexte ('tout') 182 219 * @return Array liste d'identifiants de rubriques 183 220 **/ 184 function accesrestreint_liste_rubriques_restreintes_et_enfants( ) {221 function accesrestreint_liste_rubriques_restreintes_et_enfants($_publique = null) { 185 222 static $rubs = array(); 186 223 187 $_publique = !test_espace_prive(); 224 if (is_null($_publique)) { 225 $_publique = !test_espace_prive(); 226 } 188 227 189 228 if (isset($rubs[$_publique])) { 190 229 return $rubs[$_publique]; 191 230 } 192 193 $parents = accesrestreint_liste_rubriques_restreintes(); 231 232 $parents = accesrestreint_liste_rubriques_restreintes($_publique); 233 194 234 if ($parents) { 195 235 include_spip('inc/rubriques'); -
_plugins_/acces_restreint/plugin.xml
r50067 r50075 6 6 <auteur>[cedric.morin@yterium.com->http://www.yterium.net]</auteur> 7 7 <licence>GPL © 2007-2008</licence> 8 <version>3.3. 0</version>8 <version>3.3.1</version> 9 9 <version_base>0.3.0.2</version_base> 10 10 <etat>stable</etat>
Note: See TracChangeset
for help on using the changeset viewer.