Changeset 22698 in spip-zone


Ignore:
Timestamp:
Sep 22, 2008, 1:51:55 PM (13 years ago)
Author:
cedric@…
Message:

beaucoup de code en moins, mais plus propre et squeletise, pour le meme prix

Location:
_plugins_/_stable_/acces_restreint
Files:
6 added
8 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_stable_/acces_restreint/action/affecter_zone.php

    r22658 r22698  
    1515                $id_zone = intval($regs[1]);
    1616                $id_auteur = intval($regs[3]);
    17                 AccesRestreint_affecter_auteur_zones($id_auteur,$id_zone=='-1'?'':$id_zone);
     17                include_spip('action/editer_zone');
     18                accesrestreint_revision_zone_objets_lies($id_zone=='-1'?'':$id_zone,$id_auteur,'auteur');
    1819        }
    1920}
    2021
    21 function AccesRestreint_affecter_auteur_zones($id_auteur,$zones){
    22         $in = "";
    23         if ($zones){
    24                 $in = sql_in('id_zone',$zones);
    25         }
    26         $liste = sql_allfetsel('id_zone','spip_zones',$in);
    27         $deja = array_map('reset',sql_allfetsel('id_zone','spip_zones_auteurs',"id_auteur=".intval($id_auteur)));
    28         foreach($liste as $row){
    29                 if (autoriser('affecterzone','auteur',$id_auteur,null,array('id_zone'=>$row['id_zone']))
    30                   AND !in_array($row['id_zone'],$deja))
    31                         sql_insertq('spip_zones_auteurs',array('id_zone'=>$row['id_zone'],'id_auteur'=>intval($id_auteur)));
    32         }
    33 }
    3422?>
  • _plugins_/_stable_/acces_restreint/action/retirer_zone.php

    r22658 r22698  
    1414                $type = $regs[2];
    1515                $id_objet = intval($regs[3]);
    16                 sql_delete("spip_zones_{$type}s","id_$type=".intval($id_objet).(intval($id_zone)>0?" AND id_zone=".intval($id_zone):""));
     16                include_spip('action/editer_zone');
     17                accesrestreint_revision_zone_objets_lies($id_zone,$id_objet,$type,'del');
    1718        }
    1819}
  • _plugins_/_stable_/acces_restreint/exec/acces_restreint_edit.php

    r20357 r22698  
    123123
    124124        // Selecteur d'auteurs sympathique
    125         if ($GLOBALS['spip_version_code'] >= 1.9253) {
     125        if (version_compare($GLOBALS['spip_version_code'],'2.0.0 dev','>=')) {
    126126                $editer_auteurs = charger_fonction('editer_auteurs', 'inc');
    127127                echo $editer_auteurs('zone', $id_zone, $flag_editable=true, _request('cherche_auteur'), _request('ids'));
  • _plugins_/_stable_/acces_restreint/formulaires/affecter_zones.php

    r22658 r22698  
    1717function formulaires_affecter_zones_traiter_dist($id_auteur){
    1818        /* ajout d'une zone */
    19         include_spip('action/affecter_zone');
    20         AccesRestreint_affecter_auteur_zones($id_auteur,array(intval(_request('zone'))));
     19        include_spip('action/editer_zone');
     20        accesrestreint_revision_zone_objets_lies(intval(_request('zone')),$id_auteur,'auteur');
    2121        return array('editable'=>true,'message'=>'');
    2222}
  • _plugins_/_stable_/acces_restreint/inc/acces_restreint_gestion.php

    r22658 r22698  
    88if (!defined("_ECRIRE_INC_VERSION")) return;
    99        include_spip('base/abstract_sql');
    10 
    11         function AccesRestreint_cree_zone(){
    12                 $titre = addslashes(_request('titre'));
    13                 $descriptif = addslashes(_request('descriptif'));
    14                 $publique = (_request('publique')=='oui')?'oui':'non';
    15                 $privee = (_request('privee')=='oui')?'oui':'non';
    16                 if (strlen($titre)>0){
    17                         $id_zone = spip_abstract_insert('spip_zones', "(titre,descriptif,publique,privee,maj)", "('$titre','$descriptif','$publique','$privee',NOW())");
    18                         if ($id_zone && _request('auto_attribue_droits')=='oui'){
    19                                 global $connect_id_auteur;
    20                                 if (autoriser('modifier','zone'))
    21                                         spip_abstract_insert('spip_zones_auteurs', "(id_zone,id_auteur)", "($id_zone,$connect_id_auteur)");
    22                         }
    23                         return $id_zone;
    24                 }
    25                 return 0;
    26         }
    27         function AccesRestreint_supprimer_zone(){
    28                 $id_zone = intval(_request('supp_zone'));
    29                 if ($id_zone){
    30                         spip_query("DELETE FROM spip_zones WHERE id_zone='$id_zone'");
    31                         spip_query("DELETE FROM spip_zones_rubriques WHERE id_zone='$id_zone'");
    32                         spip_query("DELETE FROM spip_zones_auteurs WHERE id_zone='$id_zone'");
    33                 }
    34                 return 0;
    35         }
    36 
    37         function AccesRestreint_enregistrer_zone(){
    38                 $titre = addslashes(_request('titre'));
    39                 $descriptif = addslashes(_request('descriptif'));
    40                 $publique = (_request('publique')=='oui')?'oui':'non';
    41                 $privee = (_request('privee')=='oui')?'oui':'non';
    42                 $id_zone = intval(_request('id_zone'));
    43                 if (strlen($titre)>0 && $id_zone){
    44                         spip_query("UPDATE spip_zones SET titre='$titre', descriptif='$descriptif', privee='$privee', publique='$publique' WHERE id_zone=$id_zone");
    45                         // suppression de tous les liens zone-rubriques
    46                         spip_query("DELETE FROM spip_zones_rubriques WHERE id_zone='$id_zone'");
    47                         if (is_array($_POST['restrict'])){
    48                                 foreach(array_keys($_POST['restrict']) as $id){
    49                                         $id = intval($id);
    50                                         spip_abstract_insert('spip_zones_rubriques', "(id_zone,id_rubrique)", "('$id_zone','$id')");
    51                                 }
    52                         }
    53                 }
    54                 return 0;
    55         }
    56 
    57         function AccesRestreint_formulaire_zone($id_zone, $titre, $descriptif, $publique, $privee){
    58                 global $couleur_claire;
    59                 echo "<div style='padding: 2px; background-color: $couleur_claire; color: black;'>&nbsp;";
    60                 echo _T('accesrestreint:titre_zones_acces');
    61                 echo "</div>";
    62                 echo "<p>";
    63                 echo _T('accesrestreint:titre')."<br/>";
    64                 echo "<input type='input' name='titre' value='".entites_html($titre)."' class='formo' />";
    65                 echo "</p>";
    66                 echo "<p>";
    67                 echo _T('accesrestreint:descriptif')."<br/>";
    68                 echo "<textarea name='descriptif' class='formo'>";
    69                 echo entites_html($descriptif);
    70                 echo "</textarea>";
    71                 echo "</p>";
    72                
    73                 echo "<p>";
    74                 $checked = ($publique == 'oui') ? " checked='checked'" : "";
    75                 echo "&nbsp; &nbsp; <input type='checkbox' name='publique' value='oui' id='zone_publique'$checked> ";
    76                 echo "<label for='zone_publique'>"._T("accesrestreint:zone_restreinte_publique")."</label>";
    77                 echo "<br />\n";
    78                 if ($GLOBALS['spip_version_code']>=1.9206){
    79                         $checked = ($privee == 'oui') ? " checked='checked'" : "";
    80                         echo "&nbsp; &nbsp; <input type='checkbox' name='privee' value='oui' id='zone_privee'$checked> ";
    81                         echo "<label for='zone_privee'>"._T("accesrestreint:zone_restreinte_espace_prive")."</label>";
    82                 }
    83                 echo "</p>";
    84                 echo "</div>";
    85                 return;
    86         }
    87 
    88         // Fonction de presentation
    89         function AccesRestreint_sous_menu_rubriques($id_zone, $root, $niv, &$data, &$enfants, &$liste_rub_dir, &$liste_rub, $type) {
    90                 global $browser_name, $browser_version;
    91                 static $decalage_secteur;
    92                 global $couleur_claire;
    93                 include_spip('inc/chercher_rubrique');
    94        
    95                 // Si on a demande l'exclusion ne pas descendre dans la rubrique courante
    96                 if ($exclus > 0
    97                 AND $root == $exclus) return '';
    98        
    99                 // en fonction du niveau faire un affichage plus ou moins kikoo
    100                
    101                 $class = "";
    102                 if ($restric = in_array($root,$liste_rub_dir))  $class = " class='selec_rub'";
    103        
    104                 // le style en fonction de la profondeur
    105                 $a = style_menu_rubriques($niv);
    106                 $espace = array_pop($a);
    107                 $style = "style='padding-left:".($niv*1)."em;";
    108                 if ($restrictherit = in_array($root,$liste_rub))
    109                         $style .= "background-color: $couleur_claire;";
    110                 $style.= "'";
    111 
    112                 // creer l'<option> pour la rubrique $root
    113                 if (isset($data[$root])) # pas de racine sauf pour les rubriques
    114                 {
    115                         $r .= "<input type='checkbox' name='restrict[$root]' value='O' id='label_$root'";
    116                         $r .= ($restric!==FALSE)?" checked='checked'":"";
    117                         $r .= " />\n <label for='label_$root' >$espace".$data[$root]."</label>";
    118                 }
    119                        
    120                 // et le sous-menu pour ses enfants
    121                 $sous = '';
    122                 if ($enfants[$root])
    123                         foreach ($enfants[$root] as $sousrub)
    124                                 $sous .= AccesRestreint_sous_menu_rubriques($id_rubrique, $sousrub,
    125                                         $niv+1, $data, $enfants, $liste_rub_dir, $liste_rub, $type);
    126 
    127                 if (strlen($sous)>0){
    128                         $visible = (($restrictherit) OR (strpos($sous,"checked='checked'")!==FALSE));
    129                         if ($visible)
    130                                 $r = bouton_block_visible("rub$root") . $r;
    131                         else
    132                                 $r = bouton_block_invisible("rub$root") . $r;
    133                         $r = "<div $class $style>" . $r;
    134                         $r .= "</div>\n";
    135 
    136                         if ($visible)
    137                                 $r .= debut_block_visible("rub$root");
    138                         else
    139                                 $r .= debut_block_invisible("rub$root");
    140                         $r .= $sous;
    141                         $r .= fin_block();
    142                 }
    143                 else{
    144                         $r = "<div $class$style>" . $r;
    145                         $r .= "</div>\n";
    146                 }
    147                
    148                 // et voila le travail
    149                 return $r;
    150         }
    151 
    152         // Le selecteur de rubriques en mode classique (menu)
    153         function AccesRestreint_selecteur_rubrique_html($id_zone) {
    154                 $type = 'rubrique';
    155                 $data = array();
    156                 if ($type == 'rubrique')
    157                         $data[0] = _T('info_racine_site');
    158                 if ($type == 'auteur')
    159                         $data[0] = '&nbsp;'; # premier choix = neant (rubriques restreintes)
    160        
    161                 //
    162                 // creer une structure contenant toute l'arborescence
    163                 //
    164        
    165                 # oblige les breves a resider a la racine
    166                 if ($type == 'breve') $where = 'WHERE id_parent=0';
    167        
    168                 $q = spip_query("SELECT
    169                 id_rubrique, id_parent, titre, statut, lang, langue_choisie
    170                 FROM spip_rubriques
    171                 $where
    172                 ORDER BY 0+titre,titre");
    173                 while ($r = spip_fetch_array($q)) {
    174                         // titre largeur maxi a 50
    175                         $titre = couper(supprimer_tags(typo(extraire_multi(
    176                                 $r['titre']
    177                         )))." ", 50);
    178                         if ($GLOBALS['meta']['multi_rubriques'] == 'oui'
    179                         AND ($r['langue_choisie'] == "oui" OR $r['id_parent'] == 0))
    180                                 $titre .= ' ['.traduire_nom_langue($r['lang']).']';
    181                         $data[$r['id_rubrique']] = $titre;
    182                         $enfants[$r['id_parent']][] = $r['id_rubrique'];
    183                         if ($id_rubrique == $r['id_rubrique']) $id_parent = $r['id_parent'];
    184                 }
    185 
    186                 $liste_rub_dir = AccesRestreint_liste_contenu_zone_rub_direct($id_zone);
    187                 $liste_rub = AccesRestreint_liste_contenu_zone_rub($id_zone);
    188        
    189                 $r = "<div style='font-size: 90%; width: 99%;"
    190                 ."font-face: verdana,arial,helvetica,sans-serif;'>\n";
    191        
    192                 $r .= AccesRestreint_sous_menu_rubriques($id_zone,0,
    193                         0,$data,$enfants,$liste_rub_dir, $liste_rub, $type);
    194        
    195                 $r .= "</div>\n";
    196        
    197                 return $r;
    198         }
    199 
    20010
    20111        //Affichage de la liste des auteurs
  • _plugins_/_stable_/acces_restreint/lang/accesrestreint_fr.php

    r22655 r22698  
    2121
    2222        // I
    23         'icone_creer_zone' => 'Cr&eacute;er une nouvelle zone',
    2423        'icone_menu_config' => 'Acc&egrave;s Restreint',
    2524        'icone_supprimer_zone' => 'Supprimer cette zone',
     
    3130        'info_aucun_acces' => 'Aucun acc&egrave;s autoris&eacute;',
    3231        'info_aucune_zone' => 'Aucune zone',
     32       
     33        // M
     34        'modifier_zone' => 'Modifier la zone',
    3335
    3436        // P
     
    3638        'privee' => 'Priv&eacute;e',
    3739        'publique' => 'Publique',
     40        'par_titre' => 'Par titre',
    3841
    3942        // R
     
    4952        'titre_table' => 'Toutes les zones d\'acc&egrave;s',
    5053        'titre_zones_acces' => 'Zones d\'acc&egrave;s restreint',
     54        'titre_cadre_modifier_zone' => 'Modifier une zone',
     55        'toutes' => 'Toutes',
    5156
    5257        // V
  • _plugins_/_stable_/acces_restreint/prive/acces_restreint.html

    r22658 r22698  
    66 */
    77]#SET{self,#SELF|parametre_url{debut_zones|tri,''}}
    8 <B_zones><p class='pagination'>[(#PAGINATION) | ]<a href='[(#GET{self}|parametre_url{tri,titre})]'><:par_titre:></a>
     8<B_zones><p class='pagination'>[(#PAGINATION) | ]<a href='[(#GET{self}|parametre_url{tri,titre})]'><:accesrestreint:par_titre:></a>
    99[(#ENV{publique}|non)| <a href='[(#GET{self}|parametre_url{publique,oui})]'><:accesrestreint:publique:></a>]
    1010[(#ENV{publique}|ou{#ENV{privee}}|oui)| <a href='[(#GET{self}|parametre_url{publique|privee,''})]'><:accesrestreint:toutes:></a>]
     
    1212</p>
    1313<ul class='liste_items'>
    14 <BOUCLE_zones(ZONES){par #ENV{tri,id_zone}}{publique==#ENV{publique,.*}}{prive==#ENV{privee,.*}}{pagination 10}>
     14<BOUCLE_zones(ZONES){par #ENV{tri,id_zone}}{publique==#ENV{publique,.*}}{privee==#ENV{privee,.*}}{pagination 10}>
    1515<li class='item zone'><h3>#TITRE</h3>
    1616<span class='contenu'>[(#ID_ZONE|AccesRestreint_liste_contenu_zone_rub|count) <:accesrestreint:rubriques:>, ]
  • _plugins_/_stable_/acces_restreint/prive/style_prive_plugin_accesrestreint.html

    r22655 r22698  
    2525
    2626li.item.zone .quoi {display:block;padding-left:20px;background:url(#EVAL{_DIR_PLUGIN_ACCESRESTREINT}img_pack/restreint-16.png) center left no-repeat;}
     27
     28.formulaire_spip ul.hierarchie {margin:0;padding:0;}
     29.formulaire_spip ul.hierarchie li {margin:0;margin-#GET{left}:10px;padding:0;}
     30.formulaire_spip ul.hierarchie li.checked {background:[#(#GET{claire}|couleur_eclaircir)];}
     31.formulaire_spip ul.hierarchie li.checked > .choix label {font-weight:bold;}
Note: See TracChangeset for help on using the changeset viewer.