[PLUGINS] +acces restreint
authorLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Wed, 19 Jun 2013 05:46:50 +0000 (07:46 +0200)
committerLudovic CHEVALIER <ludovic.chevalier@heureux-cyclage.org>
Wed, 19 Jun 2013 05:46:50 +0000 (07:46 +0200)
77 files changed:
www/plugins/accesrestreint_3_5/accesrestreint_administrations.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/accesrestreint_fonctions.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/accesrestreint_options.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/accesrestreint_pipelines.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/action/acceder_document.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/action/affecter_zone.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/action/api_docrestreint.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/action/autoriser.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/action/editer_zone.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/action/retirer_zone.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/action/supprimer_zone.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/base/accesrestreint.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/demo/intro_article.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/demo/tests.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/formulaires/configurer_accesrestreint.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/formulaires/configurer_accesrestreint.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/formulaires/editer_zone.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/formulaires/editer_zone.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/formulaires/inc-select_rubriques.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/formulaires/inc-select_zones.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/inc/accesrestreint.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/inc/accesrestreint_autoriser.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/inc/accesrestreint_documents.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint.xml [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_ar.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_ast.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_br.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_ca.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_de.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_en.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_es.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_eu.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_fa.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_fr.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_fr_tu.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_gl.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_it.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_lb.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_nl.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_pt_br.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_ro.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_sk.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_sv.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/accesrestreint_tr.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint.xml [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint_de.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint_en.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint_es.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint_fr.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/paquet.xml [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/objets/liste/zones_associer.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/objets/liste/zones_lies.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/squelettes/contenu/configurer_accesrestreint.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/squelettes/contenu/zone_edit.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/squelettes/contenu/zones.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/squelettes/inclure/acces_auteur.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/squelettes/inclure/acces_restreint.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/squelettes/inclure/acces_rubrique.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/squelettes/navigation/configurer_accesrestreint.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/squelettes/navigation/zones.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/style_prive_plugin_accesrestreint.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/themes/spip/images/acces-interdit-24.png [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/themes/spip/images/acces-ok-24.png [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/themes/spip/images/cadenasouvert-16.png [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/themes/spip/images/cadenasouvert-24.png [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/themes/spip/images/cadenasouvert-32.png [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/themes/spip/images/croix.png [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/themes/spip/images/list-add-12.png [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/themes/spip/images/list-add-16.png [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/themes/spip/images/restreint-16.png [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/themes/spip/images/zone-16.png [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/themes/spip/images/zone-24.png [new file with mode: 0644]
www/plugins/accesrestreint_3_5/prive/themes/spip/images/zone-32.png [new file with mode: 0644]
www/plugins/accesrestreint_3_5/public/accesrestreint.php [new file with mode: 0644]
www/plugins/accesrestreint_3_5/saisies/zones.html [new file with mode: 0644]
www/plugins/accesrestreint_3_5/svn.revision [new file with mode: 0644]
www/plugins/accesrestreint_3_5/urls/generer_url_document.php [new file with mode: 0644]

diff --git a/www/plugins/accesrestreint_3_5/accesrestreint_administrations.php b/www/plugins/accesrestreint_3_5/accesrestreint_administrations.php
new file mode 100644 (file)
index 0000000..d3d2bad
--- /dev/null
@@ -0,0 +1,85 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/meta');
+/**
+ * Fonction d'installation, mise a jour de la base
+ *
+ * @param unknown_type $nom_meta_base_version
+ * @param unknown_type $version_cible
+ */
+function accesrestreint_upgrade($nom_meta_base_version,$version_cible){
+
+       $maj = array();
+       $maj['create'] = array(
+               array('maj_tables',array('spip_zones','spip_zones_liens')),
+       );
+
+       $maj['0.1.0'] = array(
+               array('maj_tables',array('spip_zones')), // publique, privee
+       );
+       $maj['0.2.0'] = array(
+               array('maj_tables',array('spip_zones')), // publique, privee
+       );
+       $maj['0.3.0'] = array(
+               array('sql_alter',"TABLE zones_auteurs DROP INDEX id_zone"),
+               array('sql_alter',"TABLE zones_auteurs ADD PRIMARY KEY ( id_zone , id_auteur )"),
+               array('sql_alter',"TABLE zones_rubriques DROP INDEX id_zone"),
+               array('sql_alter',"TABLE zones_rubriques ADD PRIMARY KEY ( id_zone , id_rubrique )"),
+       );
+       $maj['0.3.1'] = array(
+               array('sql_alter',"TABLE spip_zone ALTER titre SET DEFAULT ''"),
+               array('sql_alter',"TABLE spip_zone ALTER descriptif SET DEFAULT ''"),
+       );
+
+       include_spip('maj/svn10000');
+       $maj['0.4.0'] = array(
+               array('maj_liens','zone'), // creer la table zones_liens
+               array('maj_liens','zone','auteur'),
+               array('sql_drop_table',"spip_zones_auteurs"),
+               array('maj_liens','zone','rubrique'),
+               array('sql_drop_table',"spip_zones_rubriques"),
+       );
+       $maj['0.4.1'] = array(
+               array('sql_alter',"TABLE spip_zone CHANGE publique publique char(3) DEFAULT 'oui' NOT NULL"),
+               array('sql_alter',"TABLE spip_zone CHANGE privee privee char(3) DEFAULT 'oui' NOT NULL"),
+       );
+       $maj['0.4.2'] = array(
+               array('accesrestreint_upgrade_protection_documents'),
+       );
+
+       include_spip('base/upgrade');
+       maj_plugin($nom_meta_base_version, $version_cible, $maj);
+}
+
+function accesrestreint_upgrade_protection_documents(){
+       if (isset($GLOBALS['meta']["creer_htaccess"])
+               AND $GLOBALS['meta']["creer_htaccess"] == 'oui'
+               AND !isset($GLOBALS['meta']["accesrestreint_proteger_documents"])){
+               ecrire_meta("accesrestreint_proteger_documents","oui");
+               include_spip("inc/accesrestreint_documents");
+               accesrestreint_gerer_htaccess(true);
+       }
+}
+
+/**
+ * Fonction de desinstallation
+ *
+ * @param unknown_type $nom_meta_base_version
+ */
+function accesrestreint_vider_tables($nom_meta_base_version) {
+       sql_drop_table("spip_zones");
+       sql_drop_table("spip_zones_liens");
+       effacer_meta('accesrestreint_proteger_documents');
+       include_spip("inc/accesrestreint_documents");
+       accesrestreint_gerer_htaccess(false);
+       effacer_meta($nom_meta_base_version);
+}
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/accesrestreint_fonctions.php b/www/plugins/accesrestreint_3_5/accesrestreint_fonctions.php
new file mode 100644 (file)
index 0000000..efc1872
--- /dev/null
@@ -0,0 +1,282 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+include_spip('public/accesrestreint');
+include_spip('inc/accesrestreint');
+
+/**
+ * filtre de securisation des squelettes
+ * utilise avec [(#REM|accesrestreint_securise_squelette)]
+ * evite divulgation d'info si plugin desactive
+ * par erreur fatale
+ *
+ * @param unknown_type $letexte
+ * @return unknown
+ */
+function accesrestreint_securise_squelette($letexte){
+       return "";
+}
+
+
+/**
+ * filtre de test pour savoir si l'acces a un article est restreint
+ *
+ * @param int $id_article
+ * @param int $id_auteur
+ * @return bool
+ */
+function accesrestreint_article_restreint($id_article, $id_auteur=null){
+       include_spip('public/quete');
+       include_spip('inc/accesrestreint');
+       $article = quete_parent_lang('spip_articles',$id_article);
+       return
+               @in_array($article['id_rubrique'],
+                       accesrestreint_liste_rubriques_exclues(!test_espace_prive(), $id_auteur)
+               );
+}
+
+
+/**
+ * filtre de test pour savoir si l'acces a une rubrique est restreinte
+ *
+ * @param int $id_rubrique
+ * @param int $id_auteur
+ * @return bool
+ */
+function accesrestreint_rubrique_restreinte($id_rubrique, $id_auteur=null){
+       include_spip('inc/accesrestreint');
+       return
+               @in_array($id_rubrique,
+                       accesrestreint_liste_rubriques_exclues(!test_espace_prive(), $id_auteur)
+               );
+}
+
+/**
+ * Filtre pour tester l'appartenance d'un auteur a une zone
+ *
+ * @param int $id_zone
+ * @param int $id_auteur
+ * @return bool
+ */
+function accesrestreint_acces_zone($id_zone,$id_auteur=null){
+       static $liste_zones = array();
+       if (is_null($id_auteur)) $id_auteur=$GLOBALS['visiteur_session']['id_auteur'];
+       if (!isset($liste_zones[$id_auteur])){
+               if ($GLOBALS['accesrestreint_zones_autorisees']
+                 AND ($id_auteur==$GLOBALS['visiteur_session']['id_auteur']))
+                       $liste_zones[$id_auteur] = explode(',',$GLOBALS['accesrestreint_zones_autorisees']);
+               elseif (!is_null($id_auteur)){
+                       include_spip('inc/accesrestreint');
+                       $liste_zones[$id_auteur] = explode(',',accesrestreint_liste_zones_autorisees('',$id_auteur));
+               }
+       }
+       
+       return in_array($id_zone,$liste_zones[$id_auteur]);
+}
+
+/**
+ * fonction pour afficher une icone 12px selon le statut de l'auteur
+ *
+ * @param string $statut
+ * @return string
+ */
+function icone_auteur_12($statut){
+       if ($statut=='0minirezo') return _DIR_IMG_PACK . 'admin-12.gif';
+       if ($statut=='1comite') return _DIR_IMG_PACK . 'redac-12.gif';
+       return _DIR_IMG_PACK . 'visit-12.gif';
+}
+
+
+
+
+
+/**
+ * Retroune les identifiants des zones a laquelle appartient une rubrique
+ * et ses rubriques parentes
+ * (quelquesoit la visibilité de la zone (publique, prive, les 2 ou aucun)
+ *
+ * @param int $id_rubrique
+ * @return array identifiants des zones
+ */
+function accesrestreint_zones_rubrique_et_hierarchie($id_rubrique) {
+       static $zones = array();
+       
+       if (!$id_rubrique) {
+               return array();
+       }
+       
+       if (isset($zones[$id_rubrique])) {
+               return $zones[$id_rubrique];
+       }
+
+       // on teste notre rubrique deja
+       $idz = accesrestreint_zones_rubrique($id_rubrique);
+       
+       // on parcours toute l'arborescence jusqu'a la racine en testant les zones
+       // pour completer les zones deja trouvees
+       if ($id_parent = sql_getfetsel('id_parent', 'spip_rubriques', 'id_rubrique='.intval($id_rubrique))) {
+               // on teste notre parent
+               $idz_parent = accesrestreint_zones_rubrique_et_hierarchie($id_parent);
+               $idz = array_merge($idz, $idz_parent);
+       }
+
+       // on renvoie la rubrique
+       return $zones[$id_rubrique] = $idz;
+}
+
+
+/**
+ * Retroune les identifiants des zones a laquelle appartient une rubrique
+ * (quelquesoit la visibilité de la zone (publique, prive, les 2 ou aucun)
+ * 
+ * @param int $id_rubrique
+ * @return array identifiants des zones
+ */
+function accesrestreint_zones_rubrique($id_rubrique) {
+       // on teste notre rubrique deja
+       $idz = sql_allfetsel('id_zone', 'spip_zones_liens', "objet='rubrique' AND id_objet=". intval($id_rubrique));
+       if (is_array($idz)) {
+               $idz = array_map('reset', $idz);
+               return $idz;
+       }
+       return array();
+}
+
+/**
+ * Cherche si la rubrique donnée est inclue dans une zone d'accès restreinte.
+ * 
+ * [(#ID_RUBRIQUE|accesrestreint_rubrique_zone_restreinte|oui) Rubrique non visible dans une zone]
+ * [(#ID_RUBRIQUE|accesrestreint_rubrique_zone_restreinte{tout}) Rubrique dans une zone ]
+ *
+ * @param int $id_rubrique : identifiant de la rubrique
+ * @param null|bool|string $_publique
+ *   Sélectionner les rubriques
+ *   cachées dans le public (true),
+ *   le privé (false),
+ *   selon le contexte privé ou public (null),
+ *   cachées ou non quelque soit le contexte ('tout')
+ * @return bool La rubrique est présente dans une zone
+ */
+function accesrestreint_rubrique_zone_restreinte($id_rubrique, $_publique=null) {
+       return
+               @in_array($id_rubrique,
+                       accesrestreint_liste_rubriques_restreintes_et_enfants($_publique)
+               );
+}
+
+/**
+ * Retourne la liste de toutes les rubriques sélectionnées dans des zones 
+ *
+ * @param null|bool|string     $_publique
+ *   Sélectionner les rubriques
+ *   cachées dans le public (true),
+ *   le privé (false),
+ *   selon le contexte privé ou public (null),
+ *   cachées ou non quelque soit le contexte ('tout')
+ * @return Array liste d'identifiants de rubriques
+ */
+function accesrestreint_liste_rubriques_restreintes($_publique = null) {
+       static $rubs = array();
+
+       // $_publique : null, true, false, 'tout'
+       $tout = false;
+       if (is_null($_publique)) {
+               $_publique = !test_espace_prive();
+       } elseif ($_publique === 'tout') {
+               $tout = true;
+       }
+
+       if (isset($rubs[$_publique])) {
+               return $rubs[$_publique];
+       }
+
+       $where = array("zr.objet='rubrique'");
+       if (!$tout) {
+               if ($_publique) {
+                       $where[] = 'z.publique=' . sql_quote('oui');
+               } else {
+                       $where[] = 'z.privee=' . sql_quote('oui');
+               }
+       }
+       
+       $idz = sql_allfetsel('DISTINCT(zr.id_objet)', 'spip_zones_liens AS zr JOIN spip_zones AS z ON z.id_zone = zr.id_zone', $where);
+       
+       if (is_array($idz)) {
+               $idz = array_map('reset', $idz);
+               return $rubs[$_publique] = $idz;
+       }
+       
+       return $rubs[$_publique] = array();
+}
+
+
+/**
+ * Retourne la liste de toutes les rubriques sélectionnées dans des zones 
+ *
+ * @param null|bool|string $_publique
+ *   Sélectionner les rubriques
+ *   cachées dans le public (true),
+ *   le privé (false),
+ *   selon le contexte privé ou public (null),
+ *   cachées ou non quelque soit le contexte ('tout')
+ * @return Array liste d'identifiants de rubriques
+ */
+function accesrestreint_liste_rubriques_restreintes_et_enfants($_publique = null) {
+       static $rubs = array();
+
+       if (is_null($_publique)) {
+               $_publique = !test_espace_prive();
+       }
+
+       if (isset($rubs[$_publique])) {
+               return $rubs[$_publique];
+       }
+       
+       $parents = accesrestreint_liste_rubriques_restreintes($_publique);
+
+       if ($parents) {
+               include_spip('inc/rubriques');
+               $branches = explode(',', calcul_branche_in($parents));
+               return $rubs[$_publique] = $branches;
+       }
+       
+       return $rubs[$_publique] = array();
+}
+
+/**
+ * Un auteur donné fait il partie d'une zone permettant de voir telle rubrique.
+ * Renvoie true, si l'auteur peut voir la rubrique,
+ * quelquesoit la visibilité des rubriques de la zone 
+ *
+ * @param int $id_auteur       Identifiant de l'auteur
+ * @param int $id_rubrique     Identifiant de la rubrique
+ * @return bool L'auteur fait partie de la rubrique.
+ */
+function accesrestreint_auteur_lie_a_rubrique($id_auteur, $id_rubrique) {
+       if (!$id_auteur)   return false;
+       if (!$id_rubrique) return false;
+       // $auteur[3][8] : l'auteur 3 ne peut pas voir la rubrique 8
+       static $auteurs = array();
+       if (!isset($auteurs[$id_auteur])) {
+               $auteurs[$id_auteur] = array();
+
+               include_spip('inc/accesrestreint');
+               $auteurs[$id_auteur] = array_flip(accesrestreint_liste_rubriques_exclues(true, $id_auteur, true));
+       }
+       
+       // si la rubrique est presente, c'est qu'on ne peut pas la voir !
+       if (isset($auteurs[$id_auteur][$id_rubrique])) {
+               return false;
+       }
+       
+       return true;
+       
+}
+
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/accesrestreint_options.php b/www/plugins/accesrestreint_3_5/accesrestreint_options.php
new file mode 100644 (file)
index 0000000..2f4113c
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+
+if (isset($GLOBALS['meta']["accesrestreint_base_version"])){
+       // Si on n'est pas connecte, aucune autorisation n'est disponible
+       // pas la peine de sortir la grosse artillerie
+       if (!isset($GLOBALS['visiteur_session']['id_auteur'])){
+               $GLOBALS['accesrestreint_zones_autorisees'] = '';
+       }
+       else {
+               // Pipeline : calculer les zones autorisees, sous la forme '1,2,3'
+               // TODO : avec un petit cache pour eviter de solliciter la base de donnees
+               $GLOBALS['accesrestreint_zones_autorisees'] =
+                       pipeline('accesrestreint_liste_zones_autorisees', '');
+       }
+
+       // Ajouter un marqueur de cache pour le differencier selon les autorisations
+       if (!isset($GLOBALS['marqueur'])) $GLOBALS['marqueur'] = '';
+       $GLOBALS['marqueur'] .= ":accesrestreint_zones_autorisees="
+               .$GLOBALS['accesrestreint_zones_autorisees'];
+}
+
+?>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/accesrestreint_pipelines.php b/www/plugins/accesrestreint_3_5/accesrestreint_pipelines.php
new file mode 100644 (file)
index 0000000..17fb6f8
--- /dev/null
@@ -0,0 +1,110 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+
+/**
+ * Ajouter la boite des zones sur la fiche auteur
+ *
+ * @param string $flux
+ * @return string
+ */
+function accesrestreint_affiche_milieu($flux){
+       if ($e = trouver_objet_exec($flux['args']['exec'])
+         AND $e['type'] == 'auteur'
+         AND $e['edition'] == false) {
+               
+               $id_auteur = $flux['args']['id_auteur'];
+
+               $ins = recuperer_fond('prive/squelettes/inclure/acces_auteur',array('id_auteur'=>$id_auteur));
+               if (($p = strpos($flux['data'],"<!--affiche_milieu-->")) !== false)
+                       $flux['data'] = substr_replace($flux['data'],$ins,$p,0);
+               else
+                       $flux['data'] .= $ins;
+               
+       }
+       return $flux;
+}
+
+/**
+ * Ajouter la boite des zones sur la fiche de rubrique
+ *
+ * @param string $flux
+ * @return string
+ */
+function accesrestreint_affiche_gauche($flux) {
+       if ($e = trouver_objet_exec($flux['args']['exec'])
+         AND $e['type'] == 'rubrique'
+         AND $e['edition'] == false
+         AND $id_rubrique = $flux['args']['id_rubrique']){
+               if (autoriser('administrer', 'zone', 0)) {
+                       $flux['data'] .= recuperer_fond('prive/squelettes/inclure/acces_rubrique', array('id_rubrique'=>$id_rubrique));
+               }
+       }
+       return $flux;
+}
+
+/**
+ * Detecter les demande d'acces aux pages restreintes
+ * et re-orienter vers une 401 si necessaire
+ *
+ * @param array $contexte
+ * @return array
+ */
+function accesrestreint_page_indisponible($contexte){
+       if ($contexte['status']=='404'){
+               $objet = "";
+               if (isset($contexte['type'])) $objet = $contexte['type'];
+               elseif (isset($contexte['type-page'])) $objet = $contexte['type-page'];
+               elseif(isset($contexte['fond_erreur'])) {
+                       include_spip('inc/urls');
+                       define('_DEFINIR_CONTEXTE_TYPE_PAGE',true);
+                       $c2 = $contexte;
+                       list($fond2,$c2,$url_redirect) = urls_decoder_url(nettoyer_uri(),$contexte['fond_erreur'],$c2,true);
+                       $objet = $c2['type-page'];
+               }
+               if ($objet){
+                       $table_sql = table_objet_sql($objet);
+                       $id_table_objet = id_table_objet($objet);
+                       if ($id = intval($contexte[$id_table_objet])){
+
+                               $publie = true;
+                               if (include_spip("base/objets")
+                                 AND function_exists("objet_test_si_publie")){
+                                       $publie = objet_test_si_publie($objet,$id);
+                               }
+                               else {
+                                       $trouver_table = charger_fonction('trouver_table','base');
+                                       $desc = $trouver_table($table_sql);
+                                       if (isset($desc['field']['statut'])){
+                                               $statut = sql_getfetsel('statut', $table_sql, "$id_table_objet=".intval($id));
+                                               if ($statut!='publie')
+                                                       $publie = false;
+                                       }
+                               }
+
+                               include_spip('inc/autoriser');
+                               if ($publie AND !autoriser('voir',$objet,$id)){
+                                       // c'est un contenu restreint
+                                       $contexte['status'] = '401';
+                                       $contexte['code'] = '401 Unauthorized';
+                                       $contexte['fond'] = '401';
+                                       $contexte['erreur'] = _T('accesrestreint:info_acces_restreint');
+                                       $contexte['cible'] = self();
+                                       if (!isset($contexte['objet'])){
+                                               $contexte['objet'] = $objet;
+                                               $contexte['id_objet'] = $id;
+                                       }
+                               }
+                       }
+               }
+       }
+       return $contexte;
+}
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/action/acceder_document.php b/www/plugins/accesrestreint_3_5/action/acceder_document.php
new file mode 100644 (file)
index 0000000..58afac8
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2009                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/headers');
+
+// acces aux documents joints securise
+// verifie soit que le demandeur est authentifie
+// soit que le document est publie, c'est-a-dire
+// joint a au moins 1 article, breve ou rubrique publie
+
+// http://doc.spip.org/@action_acceder_document_dist
+function action_acceder_document_dist() {
+
+       // $file exige pour eviter le scan id_document par id_document
+       $f = rawurldecode(_request('file'));
+       $arg = rawurldecode(_request('arg'));
+       $cle = _request('cle');
+
+       $api_docrestreint = charger_fonction("api_docrestreint","action");
+       return $api_docrestreint("$arg/$cle/$f");
+
+}
+
+?>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/action/affecter_zone.php b/www/plugins/accesrestreint_3_5/action/affecter_zone.php
new file mode 100644 (file)
index 0000000..b3dca89
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+
+function action_affecter_zone_dist(){
+       $securiser_action = charger_fonction('securiser_action','inc');
+       $arg = $securiser_action();
+       
+       if (preg_match(',^([0-9]+|-1)-([a-z]+)-([0-9]+|-1)$,',$arg,$regs)
+         AND $regs[2]=='auteur')       {
+               $id_zone = intval($regs[1]);
+               $id_auteur = intval($regs[3]);
+               include_spip('action/editer_zone');
+               if ($id_auteur==-1)
+                       $id_auteur = array_map('reset',sql_allfetsel('id_auteur','spip_auteurs',"statut!='poub'"));
+               zone_lier($id_zone=='-1'?'':$id_zone,'auteur',$id_auteur);
+       }
+}
+
+?>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/action/api_docrestreint.php b/www/plugins/accesrestreint_3_5/action/api_docrestreint.php
new file mode 100644 (file)
index 0000000..7737ed0
--- /dev/null
@@ -0,0 +1,161 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2009                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/headers');
+
+/**
+ * acces aux documents joints securise
+ * verifie soit que le demandeur est authentifie
+ * soit que le document est publie, c'est-a-dire
+ * joint a au moins 1 article, breve ou rubrique publie
+ *
+ * URLs de la forme :
+ * docrestreint.api/id/cle/file
+ *
+ * @param null $arg
+ */
+function action_api_docrestreint_dist($arg=null) {
+       $status = 404;
+
+       if (is_null($arg))
+               $arg =_request('arg');
+
+       $arg = explode("/",$arg);
+
+       if (count($arg)>=3){
+
+               $id_document = intval(array_shift($arg));
+               $cle = array_shift($arg);
+               // file exige pour eviter le scan id_document par id_document
+               $f = implode("/",$arg);
+
+               if ($id_document==0
+                       AND $cle==1
+                 AND $f=="test/.test") {
+                       echo "OK";
+                       return;
+               }
+
+               include_spip('inc/documents');
+
+               $file = get_spip_doc($f);
+               spip_log($file,'dbg');
+
+               $status = $dcc = false;
+               // securite : on refuse tout ../ ou url absolue
+               if (strpos($f,'../') !== false
+                 OR preg_match(',^\w+://,', $f)) {
+                       $status = 403;
+               }
+               else if (!file_exists($file) OR !is_readable($file)) {
+                       $status = 404;
+               }
+               else {
+                       $where = "documents.fichier=".sql_quote(set_spip_doc($file))
+                       . ($id_document ? " AND documents.id_document=".intval($id_document): '');
+                       spip_log($where,'dbg');
+
+                       $doc = sql_fetsel("documents.id_document, documents.titre, documents.fichier, types.mime_type, types.inclus, documents.extension", "spip_documents AS documents LEFT JOIN spip_types_documents AS types ON documents.extension=types.extension",$where);
+                       spip_log($doc,'dbg');
+                       if (!$doc) {
+                               $status = 404;
+                       }
+                       else {
+
+                               // ETag pour gerer le status 304
+                               $ETag = md5($file . ': '. filemtime($file));
+                               if (isset($_SERVER['HTTP_IF_NONE_MATCH'])
+                                 AND $_SERVER['HTTP_IF_NONE_MATCH'] == $ETag) {
+                                       http_status(304); // Not modified
+                                       exit;
+                               }
+                               else {
+                                       header('ETag: '.$ETag);
+                               }
+
+                               //
+                               // Verifier les droits de lecture du document
+
+                               // en controlant la cle passee en argument si elle est dispo
+                               // (perf issue : toutes les urls ont en principe cette cle fournie dans la page au moment du calcul de la page)
+                               if ($cle){
+                                       include_spip('inc/securiser_action');
+                                       if (!verifier_cle_action($doc['id_document'].','.$f, $cle)) {
+                                               spip_log("acces interdit $cle erronee");
+                                               $status = 403;
+                                       }
+                               }
+                               // en verifiant le droit explicitement sinon, plus lent !
+                               else {
+                                       if (!function_exists("autoriser"))
+                                               include_spip("inc/autoriser");
+                                       if (!autoriser('voir', 'document', $doc['id_document'])) {
+                                               $status = 403;
+                                               spip_log("acces interdit $cle erronee");
+                                       }
+                               }
+                       }
+               }
+       }
+
+
+       switch($status) {
+
+       case 403:
+               include_spip('inc/minipres');
+               echo minipres("","","",true);
+               break;
+
+       case 404:
+               http_status(404);
+               include_spip('inc/minipres');
+               echo minipres(_T('erreur').' 404',
+                       _T('medias:info_document_indisponible'),"",true);
+               break;
+
+       default:
+               header("Content-Type: ". $doc['mime_type']);
+               // pour les images ne pas passer en attachment
+               // sinon, lorsqu'on pointe directement sur leur adresse,
+               // le navigateur les downloade au lieu de les afficher
+
+               if ($doc['inclus']=='non') {
+
+                       $f = basename($file);
+                       // ce content-type est necessaire pour eviter des corruptions de zip dans ie6
+                       header('Content-Type: application/octet-stream');
+
+                       header("Content-Disposition: attachment; filename=\"$f\";");
+                       header("Content-Transfer-Encoding: binary");
+
+                       // fix for IE catching or PHP bug issue
+                       header("Pragma: public");
+                       header("Expires: 0"); // set expiration time
+                       header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
+
+               }
+               else {
+                       header("Expires: 3600"); // set expiration time
+               }
+
+               if ($cl = filesize($file))
+                       header("Content-Length: ". $cl);
+
+               readfile($file);
+               break;
+       }
+
+}
+
+?>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/action/autoriser.php b/www/plugins/accesrestreint_3_5/action/autoriser.php
new file mode 100644 (file)
index 0000000..cf27498
--- /dev/null
@@ -0,0 +1,55 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2008                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/charsets');  # pour le nom de fichier
+include_spip('base/abstract_sql');
+
+//  acces aux documents joints securise
+//  est appelee avec arg comme parametre CGI
+//  mais peu aussi etre appele avec le parametre file directement 
+//  il verifie soit que le demandeur est authentifie
+// soit que le fichier est joint a au moins 1 article, breve ou rubrique publie
+
+// http://doc.spip.org/@action_autoriser_dist
+function action_autoriser_dist()
+{
+       $arg = intval(_request('arg'));
+
+       if (!autoriser('voir','document',$arg)
+               OR !($row = sql_fetsel("fichier","spip_documents","id_document=".intval($arg)))
+               OR !($file = $row['fichier'])
+               OR !(file_exists($file))
+               ) {
+    spip_log("Acces refuse (restreint) au document " . $arg . ': ' . $file);
+    redirige_par_entete('./?page=404');
+       }
+       else  {
+               if (!function_exists('mime_content_type')) {
+                       // http://doc.spip.org/@mime_content_type
+                       function mime_content_type($f) {preg_match("/\.(\w+)/",$f,$r); return $r[1];}
+               }
+               $ct = mime_content_type($file);
+               $cl = filesize($file);
+               $filename = basename($file);
+               header("Content-Type: ". $ct);
+               header("Content-Disposition: attachment; filename=\"". $filename ."\";");
+               if ($dcc) header("Content-Description: " . $dcc);
+               if ($cl) header("Content-Length: ". $cl);
+               
+               header("Content-Transfer-Encoding: binary");
+               readfile($file);
+  }
+}
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/action/editer_zone.php b/www/plugins/accesrestreint_3_5/action/editer_zone.php
new file mode 100644 (file)
index 0000000..3e4a460
--- /dev/null
@@ -0,0 +1,182 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+/**
+ * editer une zone (action apres creation/modif de zone)
+ *
+ * @param int $arg
+ * @return array
+ */
+function action_editer_zone_dist($arg=null){
+
+       if (is_null($arg)){
+               $securiser_action = charger_fonction('securiser_action', 'inc');
+               $arg = $securiser_action();
+       }
+
+       // Envoi depuis le formulaire d'edition d'une zone
+       if (!$id_zone = intval($arg)) {
+               $id_zone = zone_inserer();
+       }
+
+       if (!$id_zone)
+               return array(0,''); // erreur
+
+       if (_request('droits_admin')){
+               zone_lier($id_zone,'auteur',$GLOBALS['visiteur_session']['id_auteur']);
+       }
+
+       $err = zone_modifier($id_zone);
+
+       return array($id_zone,$err);
+}
+
+
+/**
+ * Inserer une zone en base
+ *
+ * @return int
+ */
+function zone_inserer() {
+
+       include_spip('inc/autoriser');
+       if (!autoriser('creer','zone'))
+               return false;
+
+       $champs = array(
+               'publique'=>'non',
+               'privee'=>'non',
+       );
+       
+       // Envoyer aux plugins
+       $champs = pipeline('pre_insertion',
+               array(
+                       'args' => array(
+                               'table' => 'spip_zones',
+                       ),
+                       'data' => $champs
+               )
+       );
+       $id_zone = sql_insertq("spip_zones", $champs);
+       pipeline('post_insertion',
+               array(
+                       'args' => array(
+                               'table' => 'spip_zones',
+                               'id_objet' => $id_zone
+                       ),
+                       'data' => $champs
+               )
+       );
+       return $id_zone;
+}
+
+
+/**
+ * Modifier une zone en base
+ * $c est un contenu (par defaut on prend le contenu via _request())
+ *
+ * @param int $id_zone
+ * @param array $set
+ * @return string|bool
+ */
+function zone_modifier ($id_zone, $set=null) {
+
+       include_spip('inc/modifier');
+       $c = collecter_requests(
+               // white list
+               array('titre', 'descriptif','publique', 'privee'),
+               // black list
+               array(),
+               // donnees eventuellement fournies
+               $set
+       );
+
+       // Si la zone est publiee, invalider les caches et demander sa reindexation
+       $invalideur = $indexation = '';
+       $t = sql_getfetsel("statut", "spip_zones", "id_zone=$id_zone");
+       if ($t == 'publie') {
+               $invalideur = "id='zone/$id_zone'";
+               $indexation = true;
+       }
+
+       if ($err = objet_modifier_champs('zone', $id_zone,
+               array(
+                       'nonvide' => array('titre' => _T('info_sans_titre')),
+                       'invalideur' => $invalideur,
+                       'indexation' => $indexation
+               ),
+               $c))
+               return $err;
+
+
+       zone_lier($id_zone, 'rubrique', _request('rubriques'),'set');
+       return $err;
+}
+
+
+/**
+ * Mettre a jour les liens objets/zones.
+ * si zones vaut '', associe toutes les zones a(aux) objets(s).
+ * $ids est une liste d'id.
+ * $type est le type de l'objet (rubrique, auteur).
+ * $operation = add/set/del pour ajouter, affecter uniquement, ou supprimer les objets listes dans ids.
+ *
+ * @param int|array $zones
+ * @param string $type
+ * @param int|array $ids
+ * @param string $operation
+ */
+function zone_lier($zones,$type,$ids,$operation = 'add'){
+       include_spip('inc/autoriser');
+       include_spip('action/editer_liens');
+       if (!$zones)
+               $zones="*";
+       if (!$ids)
+               $ids = array();
+       elseif (!is_array($ids))
+               $ids = array($ids);
+
+       if ($operation=='del'){
+               // on supprime les ids listes
+               objet_dissocier(array('zone'=>$zones),array($type=>$ids));
+       }
+       else {
+               // si c'est une affectation exhaustive, supprimer les existants qui ne sont pas dans ids
+               // si c'est un ajout, ne rien effacer
+               if ($operation=='set'){
+                       objet_dissocier(array('zone'=>$zones),array($type=>array("NOT",$ids)));
+               }
+               foreach ($ids as $id) {
+                       if (autoriser('affecterzones',$type,$id,null,array('id_zone'=>$zones))) {
+                               objet_associer(array('zone'=>$zones),array($type=>$id));
+                       }
+               }
+       }
+}
+
+
+
+/**
+ * Supprimer une zone
+ *
+ * @param int $id_zone
+ * @return int
+ */
+function zone_supprimer($id_zone){
+       include_spip('action/editer_liens');
+       objet_dissocier(array('zone'=>$id_zone),array('*'=>'*'));
+
+       // puis la zone
+       sql_delete("spip_zones", "id_zone=".intval($id_zone));
+
+       $id_zone = 0;
+       return $id_zone;
+}
+
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/action/retirer_zone.php b/www/plugins/accesrestreint_3_5/action/retirer_zone.php
new file mode 100644 (file)
index 0000000..757375f
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function action_retirer_zone_dist(){
+       $securiser_action = charger_fonction('securiser_action','inc');
+       $arg = $securiser_action();
+       
+       if (preg_match(',^([0-9]+|-1)-([a-z]+)-([0-9]+|-1)$,',$arg,$regs)){
+               $id_zone = intval($regs[1]);
+               $type = $regs[2];
+               $id_objet = intval($regs[3]);
+               include_spip('action/editer_zone');
+               if ($id_objet=='-1')
+                       zone_lier($id_zone,$type,array(),'set');
+               else
+                       zone_lier($id_zone,$type,$id_objet,'del');
+       }
+}
+
+?>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/action/supprimer_zone.php b/www/plugins/accesrestreint_3_5/action/supprimer_zone.php
new file mode 100644 (file)
index 0000000..d0d5be7
--- /dev/null
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function action_supprimer_zone_dist(){
+       $securiser_action = charger_fonction('securiser_action','inc');
+       $arg = $securiser_action();
+       
+       if ($id_zone = intval($arg)
+        AND autoriser('supprimer','zone',$id_zone)) {
+               include_spip('action/editer_zone');
+               zone_supprimer($id_zone);
+       }
+}
+
+?>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/base/accesrestreint.php b/www/plugins/accesrestreint_3_5/base/accesrestreint.php
new file mode 100644 (file)
index 0000000..e5c7204
--- /dev/null
@@ -0,0 +1,78 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function accesrestreint_declarer_tables_interfaces($interface){
+       $interface['tables_jointures']['spip_auteurs'][] = 'zones_liens';
+       $interface['tables_jointures']['spip_zones'][] = 'zones_liens';
+       $interface['tables_jointures']['spip_rubriques'][] = 'zones_liens';
+
+       //-- Table des tables ----------------------------------------------------
+       
+       $interface['table_des_tables']['zones']='zones';
+
+       return $interface;
+}
+
+function accesrestreint_declarer_tables_objets_sql($tables){
+       $tables['spip_zones'] = array(
+               'texte_modifier' => 'accesrestreint:modifier_zone',
+               'texte_creer' => 'accesrestreint:creer_zone',
+               'texte_objets' => 'accesrestreint:titre_zones_acces',
+               'texte_objet' => 'accesrestreint:titre_zone_acces',
+               'texte_ajouter' => 'accesrestreint:texte_ajouter_zone',
+               'texte_creer_associer' => 'accesrestreint:texte_creer_associer_zone',
+               'info_aucun_objet'=> 'accesrestreint:info_aucune_zone',
+               'info_1_objet' => 'accesrestreint:info_1_zone',
+               'info_nb_objets' => 'accesrestreint:info_nb_zones',
+               'url_voir' => 'zone_edit',
+               'url_edit' => 'zone_edit',
+               'page' => false,
+
+               'principale' => "oui",
+               'champs_editables' => array('titre', 'descriptif','publique', 'privee'),
+               'field'=> array(
+                       "id_zone"       => "bigint(21) NOT NULL",
+                       "titre"         => "varchar(255) DEFAULT '' NOT NULL",
+                       "descriptif"    => "text DEFAULT '' NOT NULL",
+                       "publique"      => "char(3) DEFAULT 'oui' NOT NULL",
+                       "privee"        => "char(3) DEFAULT 'non' NOT NULL",
+                       "maj"           => "TIMESTAMP"
+               ),
+               'key' => array(
+                       "PRIMARY KEY"   => "id_zone",
+               ),
+               'titre' => "titre AS titre, '' AS lang",
+       );
+       
+       return $tables;
+}
+
+function accesrestreint_declarer_tables_auxiliaires($tables_auxiliaires){
+
+       $spip_zones_liens = array(
+                       "id_zone"       => "bigint(21) DEFAULT '0' NOT NULL",
+                       "id_objet"      => "bigint(21) DEFAULT '0' NOT NULL",
+                       "objet" => "VARCHAR (25) DEFAULT '' NOT NULL"
+       );
+
+       $spip_zones_liens_key = array(
+                       "PRIMARY KEY"           => "id_zone,id_objet,objet",
+                       "KEY id_zone"   => "id_zone"
+       );
+
+       $tables_auxiliaires['spip_zones_liens'] = array(
+               'field' => &$spip_zones_liens,
+               'key' => &$spip_zones_liens_key
+       );
+
+       return $tables_auxiliaires;
+}
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/demo/intro_article.html b/www/plugins/accesrestreint_3_5/demo/intro_article.html
new file mode 100644 (file)
index 0000000..0acd392
--- /dev/null
@@ -0,0 +1,94 @@
+[(#REM)
+Cette page propose l'introduction de l'article et un formulaire de login.
+Elle peut etre appellée comme cela depuis article.html
+
+               </BOUCLE_article_principal>
+               [(#ID_ARTICLE|accesrestreint_article_restreint|?{' ',''}) <INCLURE{fond=intro_article}{id_article}> ] 
+               [(#ID_ARTICLE|accesrestreint_article_restreint|?{'',' '}) Cette page n'existe pas ] 
+               <//B_article_principal>
+
+]
+#CACHE{86400}
+<BOUCLE_intro(ARTICLES){id_article}{tout_voir}>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html dir="#LANG_DIR" lang="#LANG">
+<head>
+<title>[(#TITRE|textebrut) - ][(#NOM_SITE_SPIP|textebrut)]</title>
+[<meta name="description" content="(#INTRODUCTION|couper{150}|textebrut)" />]
+<INCLURE{fond=inc-head}>
+</head>
+
+<body class="page_article">
+<div id="page">
+
+       [(#REM) Entete de la page + titre du site ]
+       <INCLURE{fond=inc-entete}>
+
+       [(#REM) Fil d'Ariane ]
+       <div id="hierarchie"><a href="#URL_SITE_SPIP/"><:accueil_site:></a><BOUCLE_ariane(HIERARCHIE){id_article}> &gt; <a href="#URL_RUBRIQUE">[(#TITRE|couper{80})]</a></BOUCLE_ariane>[ &gt; (#TITRE|couper{80})]</div>
+
+
+       <div id="conteneur">
+
+               [(#REM) Contenu principal : contenu de l'article ]
+               <div id="contenu">
+<div class="cartouche">
+                               #DEBUT_SURLIGNE
+                               [(#LOGO_ARTICLE||image_reduire{200,200})]
+                               [<p class="#EDIT{surtitre} surtitre">(#SURTITRE)</p>]
+                               <h1 class="#EDIT{titre} titre">#TITRE</h1>
+                               [<p class="#EDIT{soustitre} soustitre">(#SOUSTITRE)</p>]
+                               #FIN_SURLIGNE
+
+                               <p><small>[(#DATE|nom_jour) ][(#DATE|affdate)][, <:par_auteur:> (#LESAUTEURS)]</small></p>
+
+                               [(#REM) Inclure le modele des liens de traductions ]
+                               #MODELE{article_traductions}
+
+                       </div>
+
+                       #DEBUT_SURLIGNE
+                       [<div class="#EDIT{texte} texte">(#INTRODUCTION)</div>]
+                       #FIN_SURLIGNE
+                       
+                       <?php if($GLOBALS['visiteur_session']){ ?>
+                       <h3>Votre abonnement ne vous permet pas d'acc&eacute;der &agrave; cette page</h3>
+                       <?php }else{ ?>
+                       <h3>Cette page est acc&eacute;ssible sur abonnement</h3>
+                       <p>Vous pouvez vous abonner en <a class="spip_in" href="spip.php?page=abonnement_complet">cliquant ici</a></p>
+                       <p>Si vous &ecirc;tes d&eacute;j&agrave; abonn&eacute;, vous pouvez vous connecter &agrave; l'aide du formulaire ci-dessous</p>
+
+                       #LOGIN_PUBLIC
+                       <?php } ?>
+                       </div><!-- fin contenu -->      
+                       [(#REM) Menu de navigation laterale ]
+               <div id="navigation">
+
+                       [(#REM) Menu de navigation par rubriques ]
+                       <INCLURE{fond=inc-rubriques}{id_rubrique}>
+
+                       [(#REM) Articles dans la meme rubrique ]
+                       <B_articles_rubrique>
+                       <div class="breves">
+                               <h2 class="menu-titre"><a href="#URL_RUBRIQUE"><:meme_rubrique:></a></h2>
+                               <ul>
+                                       <BOUCLE_articles_rubrique(ARTICLES) {id_rubrique} {par date}{inverse} {0,10}>
+                                       <li><a href="#URL_ARTICLE"[ class="(#EXPOSE)"]>#TITRE</a></li>
+                                       </BOUCLE_articles_rubrique>
+                               </ul>
+                       </div>
+                       </B_articles_rubrique>
+
+                       [(#REM) Menu de navigation mots-cles ]
+                       #MODELE{article_mots}
+
+               </div><!-- fin navigation -->
+       </div><!-- fin conteneur -->
+
+       [(#REM) Pied de page ]
+       <INCLURE{fond=inc-pied}{skel=#SQUELETTE}>
+
+</div><!-- fin page -->
+</body>
+</html>
+</BOUCLE_intro>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/demo/tests.html b/www/plugins/accesrestreint_3_5/demo/tests.html
new file mode 100644 (file)
index 0000000..9a1fb4c
--- /dev/null
@@ -0,0 +1,22 @@
+[(#REM)
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+]<BOUCLE_articles(ARTICLES){', '}>#ID_ARTICLE</BOUCLE_articles>
+<BOUCLE_articles_tout_voir(ARTICLES){', '}{tout_voir}>#ID_ARTICLE</BOUCLE_articles_tout_voir>
+
+<BOUCLE_rubriques(RUBRIQUES){', '}>#ID_RUBRIQUE</BOUCLE_rubriques>
+
+<BOUCLE_breves(BREVES){', '}>#ID_BREVE</BOUCLE_breves>
+
+<BOUCLE_sites(SITES){', '}>#ID_SITE</BOUCLE_sites>
+
+<BOUCLE_forums(FORUMS){', '}>#ID_FORUM</BOUCLE_forums>
+
+<BOUCLE_signatures(SIGNATURES){', '}>#ID_SIGNATURE</BOUCLE_signatures>
+
+<BOUCLE_documents(DOCUMENTS){', '}>#ID_DOCUMENT</BOUCLE_documents>
+
+<BOUCLE_syndic_articles(SYNDIC_ARTICLES){', '}>#ID_SYNDIC_ARTICLE</BOUCLE_syndic_articles>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/formulaires/configurer_accesrestreint.html b/www/plugins/accesrestreint_3_5/formulaires/configurer_accesrestreint.html
new file mode 100644 (file)
index 0000000..8c5772a
--- /dev/null
@@ -0,0 +1,60 @@
+<div class="ajax formulaire_spip formulaire_configurer formulaire_#FORM formulaire_#FORM-#ENV{id,nouveau}">
+       [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
+       [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
+       [(#ENV{editable})
+       <form method='post' action='#ENV{action}'><div>
+               [(#REM) declarer les hidden qui declencheront le service du formulaire
+               parametre : url d'action ]
+               #ACTION_FORMULAIRE{#ENV{action}}
+               #SET{fl,accesrestreint}
+               <ul>
+                       #SET{name,accesrestreint_proteger_documents}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+                       <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+                               <label><:accesrestreint:label_creer_htaccess:></label>[
+                               <span class='erreur_message'>(#GET{erreurs})</span>
+                               ]
+                               <p class="explication"><:accesrestreint:explication_creer_htaccess:></p>
+                               #SET{val,oui}
+                               <div class="choix">
+                                       <input type="radio" class="radio" name="#GET{name}" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name}}|=={#GET{val}}|oui)checked="checked"] />
+                                       <label for="#GET{name}_#GET{val}"><:accesrestreint:label_creer_htaccess_oui:></label>
+                               </div>
+                               #SET{val,non}
+                               <div class="choix">
+                                       <input type="radio" class="radio" name="#GET{name}" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name}}|=={#GET{val}}|oui)checked="checked"] />
+                                       <label for="#GET{name}_#GET{val}"><:accesrestreint:label_creer_htaccess_non:></label>
+                               </div>
+                       </li>
+                       <li class="fieldset">
+                               <fieldset>
+                                       <legend><:info_fichiers_authent:></legend>
+                                       <ul>
+                                               #SET{name,creer_htpasswd}#SET{obli,''}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}
+                                               <li class="editer editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">
+                                                       [<span class='erreur_message'>(#GET{erreurs})</span>]
+                                                       #SET{dossier,#VAL{_DIR_TMP}|constant|joli_repertoire|wrap{'<tt>'}}
+                                                       <p class="explication"><:texte_fichier_authent{dossier=#GET{dossier}}:></p>
+                                                       #SET{val,oui}
+                                                       <div class="choix">
+                                                               <input type="radio" class="radio" name="#GET{name}" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name}}|=={#GET{val}}|oui)checked="checked"] />
+                                                               <label for="#GET{name}_#GET{val}"><:item_creer_fichiers_authent:></label>
+                                                       </div>
+                                                       #SET{val,non}
+                                                       <div class="choix">
+                                                               <input type="radio" class="radio" name="#GET{name}" id="#GET{name}_#GET{val}" value="#GET{val}"[(#ENV{#GET{name}}|=={#GET{val}}|oui)checked="checked"] />
+                                                               <label for="#GET{name}_#GET{val}"><:item_non_creer_fichiers_authent:></label>
+                                                       </div>
+                                               </li>
+                                       </ul>
+                               </fieldset>
+                       </li>
+               </ul>
+
+
+               [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
+         <!--extra-->
+         <p class='boutons'><span class='image_loading'>&nbsp;</span>
+                       <input type='submit' class='submit' value='<:bouton_enregistrer:>' /></p>
+       </div></form>
+       ]
+</div>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/formulaires/configurer_accesrestreint.php b/www/plugins/accesrestreint_3_5/formulaires/configurer_accesrestreint.php
new file mode 100644 (file)
index 0000000..7ad0f42
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+function formulaires_configurer_accesrestreint_charger_dist(){
+       $valeurs = array(
+               'accesrestreint_proteger_documents' => isset($GLOBALS['meta']["accesrestreint_proteger_documents"])?$GLOBALS['meta']["accesrestreint_proteger_documents"]:'non',
+               'creer_htpasswd' => $GLOBALS['meta']["creer_htpasswd"]?$GLOBALS['meta']["creer_htpasswd"]:'non',
+       );
+
+       return $valeurs;
+}
+
+function formulaires_configurer_accesrestreint_traiter_dist(){
+
+       $champs = array('accesrestreint_proteger_documents','creer_htpasswd');
+       $current = $GLOBALS['meta']["accesrestreint_proteger_documents"];
+
+       foreach($champs as $c)
+               ecrire_meta($c,_request($c)=='oui'?'oui':'non');
+
+       // generer/supprimer les fichiers htaccess qui vont bien
+       include_spip("inc/accesrestreint_documents");
+       accesrestreint_gerer_htaccess($GLOBALS['meta']["accesrestreint_proteger_documents"]=="oui");
+
+       // si le reglage du htaccess a change, purger le cache
+       if ($GLOBALS['meta']["accesrestreint_proteger_documents"]!==$current) {
+               $purger = charger_fonction("purger","action");
+               $purger("cache");
+       }
+
+       return array('message_ok'=>_T('config_info_enregistree'),'editable'=>true);
+}
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/formulaires/editer_zone.html b/www/plugins/accesrestreint_3_5/formulaires/editer_zone.html
new file mode 100644 (file)
index 0000000..21fd025
--- /dev/null
@@ -0,0 +1,40 @@
+<div class="formulaire_spip formulaire_editer formulaire_editer_zone formulaire_editer_zone-#ENV{id_zone,nouveau}">
+       [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV**{message_ok})</p>]
+       [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV**{message_erreur})</p>]
+       [(#ENV{editable})
+       <form method='post' action='#ENV{action}' enctype='multipart/form-data'><div>
+               [(#REM) declarer les hidden qui declencheront le service du formulaire 
+               parametre : url d'action ]
+               #ACTION_FORMULAIRE{#ENV{action}}
+         <ul>
+           <li class="editer editer_titre obligatoire[ (#ENV**{erreurs}|table_valeur{titre}|oui)erreur]">
+               <label for="titre"><:accesrestreint:titre_zones_acces:></label>[
+                               <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{titre})</span>
+                               ]<input type='text' class='text' name='titre' id='titre' value="#ENV{titre}" />
+           </li>
+           [(#ENV{id_zone}|intval|non|et{#AUTORISER{modifier,zone}})
+           <li class='editer editer_droit_admin'>
+               <div class='choix'><input type='checkbox' name='droits_admin' value='oui' id='droits_admin' checked="checked" />
+               <label for='droits_admin'><:accesrestreint:ajouter_droits_auteur:></label></div>
+           </li>]
+           <li class='editer editer_publique_privee'>
+               <div class='choix'><input type='checkbox' name='publique' value='oui' id='publique'[ (#PUBLIQUE|=={oui}|oui)checked="checked"] />
+               <label for='publique'><:accesrestreint:zone_restreinte_publique:></label></div>
+               <div class='choix'><input type='checkbox' name='privee' value='oui' id='privee'[ (#PRIVEE|=={oui}|oui)checked="checked"] />
+               <label for='privee'><:accesrestreint:zone_restreinte_espace_prive:></label></div>
+           </li>
+           <li class="editer editer_descriptif[ (#ENV**{erreurs}|table_valeur{descriptif}|oui)erreur]">
+                       <label for="descriptif"><:accesrestreint:descriptif:></label>[
+                       <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{descriptif})</span>
+                       ]<textarea name='descriptif' rows='5' id='descriptif'>[(#ENV{descriptif})]</textarea>
+           </li>
+                 <li class='editer editer_rubriques fieldset'><fieldset><legend><:accesrestreint:rubriques_zones_acces:></legend>
+                 [(#INCLURE{fond=formulaires/inc-select_rubriques}{rubriques=#ENV{rubriques}})]</fieldset>
+                 </li>
+         </ul>
+         [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
+         <!--extra-->
+         <p class='boutons'><input type='submit' class='submit' value='[(#ENV{id_zone}|?{<:bouton_enregistrer:>,<:bouton_ajouter:>})]' /></p>
+       </div></form>
+       ]
+</div>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/formulaires/editer_zone.php b/www/plugins/accesrestreint_3_5/formulaires/editer_zone.php
new file mode 100644 (file)
index 0000000..268d6c5
--- /dev/null
@@ -0,0 +1,70 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/actions');
+include_spip('inc/editer');
+
+function formulaires_editer_zone_charger_dist($id_zone='new', $retour='', $associer_objet='', $config_fonc='zones_edit_config', $row=array(), $hidden=''){
+       $valeurs = formulaires_editer_objet_charger('zone',$id_zone,0,0,$retour,$config_fonc,$row,$hidden);
+       include_spip('inc/accesrestreint');
+       // charger les rubriques associees a la zone
+       if ($id_zone = intval($id_zone)) {
+               $valeurs['rubriques'] = accesrestreint_liste_contenu_zone_rub_direct($id_zone);
+       } {
+               // cas d'une creation, regardons si l'url propose deja des rubriques
+               if ($r = _request('rubriques')) {
+                       if (is_numeric($r)) {
+                               $r = array($r);
+                       }
+                       if (is_array($r)) {
+                               $valeurs['rubriques'] = $r;
+                       }
+               }
+       }
+       
+       return $valeurs;
+}
+
+function zones_edit_config(){
+       return array();
+}
+
+function formulaires_editer_zone_verifier_dist($id_zone='new', $retour='', $associer_objet='', $config_fonc='zones_edit_config', $row=array(), $hidden=''){
+       $erreurs = formulaires_editer_objet_verifier('zone',$id_zone,array('titre'));
+
+       return $erreurs;
+}
+
+function formulaires_editer_zone_traiter_dist($id_zone='new', $retour='', $associer_objet='', $config_fonc='zones_edit_config', $row=array(), $hidden=''){
+       if (_request('publique')!=='oui')
+               set_request('publique','non');
+       if (_request('privee')!=='oui')
+               set_request('privee','non');
+
+       $res = formulaires_editer_objet_traiter('zone',$id_zone,0,0,$retour,$config_fonc,$row,$hidden);
+
+       if ($retour AND $res['id_zone']) {
+               $res['redirect'] = parametre_url($retour,'id_zone',$res['id_zone']);
+       }
+       // Un lien auteur a prendre en compte ?
+       if ($associer_objet AND $id_zone=$res['id_zone']){
+               $objet = '';
+               if(preg_match(',^\w+\|[0-9]+$,',$associer_objet)){
+                       list($objet,$id_objet) = explode('|',$associer_objet);
+               }
+               if ($objet AND $id_objet AND autoriser('modifier',$objet,$id_objet)){
+                       zone_lier($id_zone,$objet,$id_objet);
+                       if (isset($res['redirect']))
+                               $res['redirect'] = parametre_url ($res['redirect'], "id_lien_ajoute", $id_zone, '&');
+               }
+       }
+
+       return $res;
+}
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/formulaires/inc-select_rubriques.html b/www/plugins/accesrestreint_3_5/formulaires/inc-select_rubriques.html
new file mode 100644 (file)
index 0000000..dc8e3ac
--- /dev/null
@@ -0,0 +1,14 @@
+<B_rubriques>
+<ul class='hierarchie'>
+<li[(#VAL{0}|in_any{#ENV{rubriques}})class='checked']><div class='choix'><input type='checkbox' name='rubriques[]' value='0' id='rub0' [(#VAL{0}|in_any{#ENV{rubriques}})checked='checked']/><label for='rub0'><:info_racine_site:></label></div><ul>
+<BOUCLE_rubriques(RUBRIQUES){racine}{par num titre,titre}{tout}{tout_voir}>
+<li[(#ID_RUBRIQUE|in_any{#ENV{rubriques}})class='checked']><div class='choix'><input type='checkbox' name='rubriques[]' value='#ID_RUBRIQUE' id='rub#ID_RUBRIQUE' [(#ID_RUBRIQUE|in_any{#ENV{rubriques}})checked='checked']/><label for='rub#ID_RUBRIQUE'>#TITRE</label></div><B_enfants><ul>
+<BOUCLE_enfants(RUBRIQUES){id_parent}{par num titre,titre}{tout}{tout_voir}>
+<li[(#ID_RUBRIQUE|in_any{#ENV{rubriques}})class='checked']><div class='choix'><input type='checkbox' name='rubriques[]' value='#ID_RUBRIQUE' id='rub#ID_RUBRIQUE' [(#ID_RUBRIQUE|in_any{#ENV{rubriques}})checked='checked']/><label for='rub#ID_RUBRIQUE'>#TITRE</label></div><BOUCLE_rec(BOUCLE_enfants)/></li>
+</BOUCLE_enfants>
+</ul>
+</B_enfants>
+</li>
+</BOUCLE_rubriques>
+</ul></ul>
+</B_rubriques>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/formulaires/inc-select_zones.html b/www/plugins/accesrestreint_3_5/formulaires/inc-select_zones.html
new file mode 100644 (file)
index 0000000..4737fc1
--- /dev/null
@@ -0,0 +1,16 @@
+[(#REM)
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+]<B_zones>
+<select[ name='(#ENV{name})'][ id='(#ENV{id})'] size='1'>
+<option value='x'><:accesrestreint:selectionner_une_zone:></option>
+<BOUCLE_zones(ZONES){!id_auteur=#ID_AUTEUR}>[
+(#AUTORISER{affecterzones,auteur,#ID_AUTEUR,'',#ARRAY{id_zone,#ID_ZONE}}|oui)<option value='#ID_ZONE'>#TITRE</option>
+]</BOUCLE_zones>
+</select>[
+(#TOTAL_BOUCLE|>{3}|oui)
+<a href='#URL_ACTION_AUTEUR{affecter_zone,-1-auteur-#ID_AUTEUR,#SELF}'><:accesrestreint:info_ajouter_zones:></a>]
+</B_zones>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/inc/accesrestreint.php b/www/plugins/accesrestreint_3_5/inc/accesrestreint.php
new file mode 100644 (file)
index 0000000..ee3f1b3
--- /dev/null
@@ -0,0 +1,258 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+// Liste des zones a laquelle appartient le visiteur, au format '1,2,3'
+// Cette fonction est appelee a chaque hit et peut etre completee (pipeline)
+/**
+ * Liste des zones a laquelle appartient le visiteur, au format '1,2,3'.
+ * Cette fonction est appelee a chaque hit et peut etre completee (pipeline)
+ *
+ * @param string $zones '1,2,3'
+ * @param int $id_auteur
+ * @return string '1,2,3'
+ */
+function accesrestreint_liste_zones_autorisees($zones='', $id_auteur=NULL) {
+       $id = NULL;
+       if (!is_null($id_auteur))
+               $id = $id_auteur;
+       elseif (isset($GLOBALS['visiteur_session']['id_auteur']) && $GLOBALS['visiteur_session']['id_auteur'])
+               $id = $GLOBALS['visiteur_session']['id_auteur'];
+       if (!is_null($id)) {
+               $new = accesrestreint_liste_zones_appartenance_auteur($id);
+               if ($zones AND $new) {
+                       $zones = array_unique(array_merge(explode(',',$zones),$new));
+                       sort($zones);
+                       $zones = join(',', $zones);
+               } else if ($new) {
+                       $zones = join(',', $new);
+               }
+       }
+       return $zones;
+}
+
+/**
+ * liste des rubriques contenues dans une zone, directement.
+ * pour savoir quelles rubriques on peut decocher
+ * si id_zone = '' : toutes les rub en acces restreint
+ *
+ * @param int|string $id_zone
+ * @return array
+ */
+function accesrestreint_liste_contenu_zone_rub_direct($id_zone){
+       $liste_rubriques=array();
+       // liste des rubriques directement liees a la zone
+       $where = array();
+       if (is_numeric($id_zone))
+               $where[] = "z.id_zone=".intval($id_zone);
+       elseif ($id_zone)
+               $where = $id_zone;
+
+       if (is_array($where))
+               $where[] = "zr.objet='rubrique'";
+       else
+               $where = "($where) AND zr.objet='rubrique'";
+
+       include_spip('base/abstract_sql');
+       $liste_rubriques = sql_allfetsel('id_objet','spip_zones_liens AS zr INNER JOIN spip_zones AS z ON zr.id_zone=z.id_zone',$where);
+       $liste_rubriques = array_map('reset',$liste_rubriques);
+       $liste_rubriques = array_unique($liste_rubriques);
+       return $liste_rubriques;
+}
+
+/**
+ * liste des rubriques contenues dans une zone, directement ou par heritage.
+ *
+ * @param int/string $id_zone
+ * @return array
+ */
+function accesrestreint_liste_contenu_zone_rub($id_zone){
+       include_spip('inc/rubriques');
+       $liste_rubriques = accesrestreint_liste_contenu_zone_rub_direct($id_zone);
+       if (!count($liste_rubriques))
+               return $liste_rubriques;
+       $liste_rubriques = calcul_branche_in(join(',',$liste_rubriques));
+       if (!strlen($liste_rubriques))
+               return array();
+       $liste_rubriques = explode(',',$liste_rubriques);
+       return $liste_rubriques;
+}
+
+
+/**
+ * liste des rubriques d'une zone et leurs rubriques parentes.
+ *
+ * @param int/string $id_zone
+ * @return array
+ */
+function accesrestreint_liste_parentee_zone_rub($id_zone){
+       include_spip('inc/rubriques');
+       $liste_rubriques = accesrestreint_liste_contenu_zone_rub_direct($id_zone);
+       if (!count($liste_rubriques))
+               return $liste_rubriques;
+
+       $id = $liste_rubriques;
+       while ($parents = sql_allfetsel('id_parent', 'spip_rubriques',
+       sql_in('id_rubrique', $id))) {
+               $parents = array_map('array_shift', $parents);
+               $parents = array_diff($parents, array(0));
+               $id = $parents;
+               $liste_rubriques = array_merge($liste_rubriques, $parents);
+       }
+       
+       return $liste_rubriques;
+}
+
+/**
+ * Lister les zones auxquelles un auteur appartient
+ *
+ * @param int $id_auteur
+ * @return array
+ */
+function accesrestreint_liste_zones_appartenance_auteur($id_auteur){
+       static $liste_zones = array();
+       if (!isset($liste_zones[$id_auteur])){
+               include_spip('base/abstract_sql');
+               $liste_zones[$id_auteur] = sql_allfetsel("id_zone","spip_zones_liens","objet='auteur' AND id_objet=".intval($id_auteur));
+               $liste_zones[$id_auteur] = array_map('reset',$liste_zones[$id_auteur]);
+       }
+       return $liste_zones[$id_auteur];
+}
+
+/**
+ * Verifier si un auteur appartient a une zone.
+ * utilise la fonction precedente qui met en cache son resultat
+ * on optimise en fonction de l'hypothese que le nombre de zones est toujours reduit
+ *
+ * @param unknown_type $id_zone
+ * @param unknown_type $id_auteur
+ * @return unknown
+ */
+function accesrestreint_test_appartenance_zone_auteur($id_zone,$id_auteur){
+       return in_array($id_zone,accesrestreint_liste_zones_appartenance_auteur($id_auteur));
+}
+
+/**
+ * liste des auteurs contenus dans une zone
+ *
+ * @param int $id_zone
+ * @return array
+ */
+function accesrestreint_liste_contenu_zone_auteur($id_zone) {
+       $liste_auteurs=array();
+       include_spip('base/abstract_sql');
+       $liste_auteurs = sql_allfetsel("id_objet","spip_zones_liens","objet='auteur' AND id_zone=".intval($id_zone));
+       $liste_auteurs = array_map('reset',$liste_auteurs);
+       return $liste_auteurs;
+}
+
+/**
+ * fonctions de filtrage rubrique
+ * -> condition NOT IN
+ * Cette fonction renvoie la liste des rubriques interdites
+ * au visiteur courant
+ * d'ou le recours a $GLOBALS['accesrestreint_zones_autorisees']
+ *
+ * @param bool $publique Selectionner les rubriques interdites dans l'espace public (true) ou prive (false)
+ * @param int $id_auteur Identifiant de l'auteur
+ * @param bool $quelquesoit_visibilite Si true, on ne s'occupe pas de savoir si une zone est restreinte sur le prive ou sur le public.
+ * @return array
+ */
+function accesrestreint_liste_rubriques_exclues($publique=true, $id_auteur=NULL, $quelquesoit_visibilite = false) {
+       // cache static
+       static $liste_rub_exclues = array();
+       static $liste_rub_inclues = array();
+       if ($quelquesoit_visibilite) { $publique = 'tout'; }
+
+       if (is_null($id_auteur) AND isset($GLOBALS['visiteur_session']['id_auteur']))
+               $id_auteur = $GLOBALS['visiteur_session']['id_auteur'];
+       if (!isset($liste_rub_exclues[$id_auteur][$publique]) || !is_array($liste_rub_exclues[$id_auteur][$publique])) {
+
+               $where = array();
+               // Ne selectionner que les zones pertinentes
+               if (!$quelquesoit_visibilite) {
+                       if ($publique)
+                               $where[] = "publique='oui'";
+                       else
+                               $where[] = "privee='oui'";
+               }
+
+               // Si le visiteur est autorise sur certaines zones publiques,
+               // on selectionne les rubriques correspondant aux autres zones,
+               // sinon on selectionne toutes celles correspondant a une zone.
+               include_spip('base/abstract_sql');
+               if ($GLOBALS['accesrestreint_zones_autorisees']
+                 AND $id_auteur==$GLOBALS['visiteur_session']['id_auteur'])
+                       $where[] = sql_in('zr.id_zone',$GLOBALS['accesrestreint_zones_autorisees'],'NOT');
+               elseif ($id_auteur)
+                       $where[] = sql_in('zr.id_zone',accesrestreint_liste_zones_autorisees('',$id_auteur),'NOT');
+
+               // liste les rubriques (+branches) des zones dont ne fait pas parti l'auteur
+               $liste_rub_exclues[$id_auteur][$publique] = accesrestreint_liste_contenu_zone_rub($where);
+               #$liste_rub_exclues[$publique] = array_unique($liste_rub_exclues[$publique]);
+       }
+       $final_liste_rub_exclues = $liste_rub_exclues[$id_auteur][$publique];
+       
+       if (defined("AR_TYPE_RESTRICTION") AND AR_TYPE_RESTRICTION == "faible") {
+               // AR_TYPE_RESTRICTION definit le type de restriction pour traiter les elements communs a plusieurs zone
+               // Une restriction exclusive (ou forte) donne l'acces aux rubriques restreintes par 
+               // plusieurs zone aux seuls membres de toutes les zones concernees.
+               // Une restriction faible donne acces a une rubrique, meme restreinte par
+               // plusieurs zones, aux membres de chaque zone concernee.
+               // valeurs : 'faible', 'forte, ou 'exclusive'           
+
+               // Autrement dit, si une rubrique 2 est enfant d'une rubrique 1,
+               // et qu'il existe une zone 1 (rubrique 1) et une zone 2 (rubrique 2) :
+               // - un auteur present dans la zone 1 (uniquement) ne pourra pas voir la rubrique 2
+               //   lorsque la restriction est "forte". Il le pourra avec une restriction "faible"
+               //
+               // - A l'inverse, un auteur present uniquement dans la zone 2 ne pourra pas voir
+               //   la rubrique 1 meme si la restriction est "faible" car la parentee n'est pas concernee.
+               //   il faut (si souhaite) dans ce cas definir en plus AR_TYPE_RESTRICTION_PARENTEE a "faible"
+               //   pour l'autoriser.
+               if (!isset($liste_rub_inclues[$id_auteur][$publique]) OR !is_array($liste_rub_inclues[$id_auteur][$publique])) {
+
+                       $where = array();
+                       // Ne selectionner que les zones pertinentes
+                       if (!$quelquesoit_visibilite) {
+                               if ($publique)
+                                       $where[] = "publique='oui'";
+                               else
+                                       $where[] = "privee='oui'";
+                       }
+
+                       // Calcul des rubriques dans des zones autorisees
+                       include_spip('base/abstract_sql');
+                       if ($GLOBALS['accesrestreint_zones_autorisees']
+                         AND $id_auteur==$GLOBALS['visiteur_session']['id_auteur'])
+                               $where[] = sql_in('zr.id_zone',$GLOBALS['accesrestreint_zones_autorisees']);
+                       elseif ($id_auteur)
+                               $where[] = sql_in('zr.id_zone',accesrestreint_liste_zones_autorisees('',$id_auteur));
+
+                       // liste les rubriques (+branches) des zones de l'auteur
+                       $liste_rub_inclues[$id_auteur][$publique] = accesrestreint_liste_contenu_zone_rub($where);
+
+                       // pour autoriser la vue des rubriques parentes
+                       // memes si elles sont restreintes par une autre zone
+                       if (defined("AR_TYPE_RESTRICTION_PARENTEE") AND AR_TYPE_RESTRICTION_PARENTEE == "faible") {
+                               $liste_rub_inclues[$id_auteur][$publique] =
+                                       array_merge($liste_rub_inclues[$id_auteur][$publique],
+                                               accesrestreint_liste_parentee_zone_rub($where));
+                       }
+               }
+
+               // Ne pas exclure les elements qui sont autorises
+               $final_liste_rub_exclues = array_diff($final_liste_rub_exclues,
+                       array_intersect($final_liste_rub_exclues,$liste_rub_inclues[$id_auteur][$publique]));
+       }
+
+       return $final_liste_rub_exclues;
+}
+
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/inc/accesrestreint_autoriser.php b/www/plugins/accesrestreint_3_5/inc/accesrestreint_autoriser.php
new file mode 100644 (file)
index 0000000..a6c2e07
--- /dev/null
@@ -0,0 +1,173 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+/* pour que le pipeline ne rale pas ! */
+function accesrestreint_autoriser(){}
+
+/**
+ * Autorisation a administrer les zones
+ *
+ * @param unknown_type $faire
+ * @param unknown_type $quoi
+ * @param unknown_type $id
+ * @param unknown_type $qui
+ * @param unknown_type $opts
+ * @return unknown
+ */
+function autoriser_zone_administrer($faire,$quoi,$id,$qui,$opts){
+       if ($qui['statut']=='0minirezo' AND !$qui['restreint'])
+               return true;
+       return false;
+}
+
+/**
+ * Autorisation a affecter les zones a un auteur
+ * si un id_zone passe dans opts, cela concerne plus particulierement le droit d'affecter cette zone
+ *
+ * @param unknown_type $faire
+ * @param unknown_type $qui
+ * @param unknown_type $id
+ * @param unknown_type $qui
+ * @param unknown_type $opts
+ * @return unknown
+ */
+function autoriser_auteur_affecterzones_dist($faire,$quoi,$id,$qui,$opts){
+       if (!autoriser('modifier','auteur',$id)) return false;
+       if ($qui['statut']=='0minirezo' AND !$qui['restreint'])
+               return true;
+       # les non admin ne peuvent pas s'administrer eux meme pour eviter les erreurs
+       if ($id == $qui['id_auteur']) return false;
+       # les non admin ne peuvent affecter que les zones dont ils font partie
+       include_spip('inc/accesrestreint');
+       if ($opts['id_zone']
+         AND accesrestreint_test_appartenance_zone_auteur($opts['id_zone'], $qui['id_auteur']))
+         return true;
+ return false;
+}
+
+if(!function_exists('autoriser_rubrique_voir')) {
+function autoriser_rubrique_voir($faire, $type, $id, $qui, $opt) {
+       include_spip('inc/accesrestreint');
+       static $rub_exclues;
+       $publique = isset($opt['publique'])?$opt['publique']:!test_espace_prive();
+       $id_auteur = isset($qui['id_auteur']) ? $qui['id_auteur'] : $GLOBALS['visiteur_session']['id_auteur'];
+       if (!isset($rub_exclues[$id_auteur][$publique]) || !is_array($rub_exclues[$id_auteur][$publique])) {
+               $rub_exclues[$id_auteur][$publique] = accesrestreint_liste_rubriques_exclues($publique,$id_auteur);
+               $rub_exclues[$id_auteur][$publique] = array_flip($rub_exclues[$id_auteur][$publique]);
+       }
+       return !isset($rub_exclues[$id_auteur][$publique][$id]);
+}
+}
+if(!function_exists('autoriser_article_voir')) {
+function autoriser_article_voir($faire, $type, $id, $qui, $opt) {
+       if (!$id){
+               if ($qui['statut'] == '0minirezo') return true;
+               if (isset($opt['statut'])){
+                       $statut = $opt['statut'];
+                       if (in_array($statut, array('prop', 'publie')))
+                               return true;
+               }
+               return false;
+       }
+
+       include_spip('public/quete');
+       if (!isset($opt['id_rubrique']) OR !$id_rubrique = $opt['id_rubrique']){
+               $article = quete_parent_lang('spip_articles',$id);
+               $id_rubrique = $article['id_rubrique'];
+       }
+       if (autoriser_rubrique_voir('voir','rubrique',$id_rubrique,$qui,$opt)){
+               if ($qui['statut'] == '0minirezo') return true;
+               // un article 'prepa' ou 'poubelle' dont on n'est pas auteur : interdit
+               $r = sql_getfetsel("statut", "spip_articles", "id_article=".sql_quote($id));
+               include_spip('inc/auth'); // pour auteurs_article si espace public
+               return
+                       in_array($r, array('prop', 'publie'))
+                       OR auteurs_article($id, "id_auteur=".$qui['id_auteur']);
+       }
+       return false;
+}
+}
+if(!function_exists('autoriser_breve_voir')) {
+function autoriser_breve_voir($faire, $type, $id, $qui, $opt) {
+       include_spip('public/quete');
+       if (!$id_rubrique = $opt['id_rubrique']){
+               $breve = quete_parent_lang('spip_breves',$id);
+               $id_rubrique = $breve['id_rubrique'];
+       }
+       return autoriser_rubrique_voir('voir','rubrique',$id_rubrique,$qui,$opt);
+}
+}
+if(!function_exists('autoriser_site_voir')) {
+function autoriser_site_voir($faire, $type, $id, $qui, $opt) {
+       include_spip('public/quete');
+       if (!$id_rubrique = $opt['id_rubrique']){
+               $site = quete_parent_lang('spip_syndic',$id);
+               $id_rubrique = $site['id_rubrique'];
+       }
+       return autoriser_rubrique_voir('voir','rubrique',$id_rubrique,$qui,$opt);
+}
+}
+if(!function_exists('autoriser_evenement_voir')) {
+function autoriser_evenement_voir($faire, $type, $id, $qui, $opt) {
+       static $evenements_statut;
+       $publique = isset($opt['publique'])?$opt['publique']:!test_espace_prive();
+       $id_auteur = isset($qui['id_auteur']) ? $qui['id_auteur'] : $GLOBALS['visiteur_session']['id_auteur'];
+       if (!isset($evenements_statut[$id_auteur][$publique][$id])){
+               $id_article = sql_getfetsel('id_article','spip_evenements','id_evenement='.intval($id));
+               $evenements_statut[$id_auteur][$publique][$id] = autoriser_article_voir('voir', 'article', $id_article, $qui, $opt);
+       }
+       return $evenements_statut[$id_auteur][$publique][$id];
+}
+}
+
+if(!function_exists('autoriser_document_voir')) {
+function autoriser_document_voir($faire, $type, $id, $qui, $opt) {
+       include_spip('public/accesrestreint');
+       static $documents_statut = array();
+       static $where = array();
+       $publique = isset($opt['publique'])?$opt['publique']:!test_espace_prive();
+       $id_auteur = isset($qui['id_auteur']) ? $qui['id_auteur'] : $GLOBALS['visiteur_session']['id_auteur'];
+       if (!isset($documents_statut[$id_auteur][$publique][$id])){
+
+               // il faut hacker la meta "creer_htaccess" le temps du calcul de l'autorisation car le core
+               $clean_meta = false;
+               if (isset($GLOBALS['meta']["accesrestreint_proteger_documents"]) AND $GLOBALS['meta']["accesrestreint_proteger_documents"]=='oui'){
+                       if (!isset($GLOBALS['meta']["creer_htaccess"]) OR $GLOBALS['meta']["creer_htaccess"] != 'oui'){
+                               $GLOBALS['meta']["creer_htaccess"] = 'oui';
+                               $clean_meta = true;
+                       }
+               }
+
+               if (!$id)
+                       $documents_statut[$id_auteur][$publique][$id] = autoriser_document_voir_dist($faire, $type, $id, $qui, $opt);
+               else {
+                       if (!isset($where[$publique])){
+                               $where[$publique] = accesrestreint_documents_accessibles_where('id_document', $publique?"true":"false");
+                               // inclure avant le eval, pour que les fonctions soient bien definies
+                               include_spip('inc/accesrestreint');
+                               // eviter une notice sur $connect inexistant dans eval() qui suit
+                               $connect = '';
+
+                               $where[$publique] = eval("return ".$where[$publique].";");
+                       }
+                       $documents_statut[$id_auteur][$publique][$id] = sql_getfetsel('id_document','spip_documents',array('id_document='.intval($id),$where[$publique]));
+                       if ($documents_statut[$id_auteur][$publique][$id])
+                               $documents_statut[$id_auteur][$publique][$id] = autoriser_document_voir_dist($faire, $type, $id, $qui, $opt);
+               }
+
+               if ($clean_meta){
+                       unset($GLOBALS['meta']["creer_htaccess"]);
+               }
+
+       }
+       return $documents_statut[$id_auteur][$publique][$id];
+}
+}
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/inc/accesrestreint_documents.php b/www/plugins/accesrestreint_3_5/inc/accesrestreint_documents.php
new file mode 100644 (file)
index 0000000..1c29a76
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+/**
+ * on essaye de poser un htaccess rewrite global sur IMG/
+ * si fonctionne on gardera des ulrs de document permanente
+ * si ne fonctionne pas on se rabat sur creer_htaccess du core
+ * qui pose un deny sur chaque sous repertoire de IMG/
+ *
+ * http://doc.spip.org/@gerer_htaccess
+ *
+ * @param bool $active
+ * @return bool
+ */
+function accesrestreint_gerer_htaccess($active = true) {
+       if (!$active){
+               spip_unlink(_DIR_IMG . _ACCESS_FILE_NAME);
+               effacer_meta("creer_htaccess");
+               // effacer les xx/.htaccess crees eventuellement par le core
+               include_spip("inc/acces");
+               gerer_htaccess();
+               return false;
+       }
+       else  {
+               $rewrite = <<<rewrite
+RewriteEngine On
+RewriteCond %{QUERY_STRING} ^(\d+/[\da-f]+)$
+RewriteRule ^\w+/.*$     ../spip.php?action=api_docrestreint&arg=%1/$0 [skip=100]
+RewriteRule ^\w+/.*$     ../spip.php?action=api_docrestreint&arg=0/0/$0 [skip=100]
+rewrite;
+               ecrire_fichier(_DIR_IMG . _ACCESS_FILE_NAME,$rewrite);
+               // verifier sur l'url de test
+               include_spip('inc/distant');
+               $url_test = url_absolue(_DIR_IMG . "test/.test?0/1");
+               $test = recuperer_page($url_test);
+               // si l'url de test renvoie bien "OK" alors rewrite rule fonctionne et on peut baser la protection de document sur ce shema
+               if ($test == "OK") {
+                       effacer_meta("creer_htaccess"); // securite, et permet de generer des urls permanentes
+               }
+               else {
+                       // sinon on se rabat sur un deny et on generera des urls moches
+                       spip_unlink(_DIR_IMG . _ACCESS_FILE_NAME);
+                       ecrire_meta("creer_htaccess","oui");
+               }
+               // dans tous les cas on passe par gerer_htaccess pour enlever ou mettre les .htaccess dans les sous rep
+               include_spip("inc/acces");
+               gerer_htaccess();
+
+               return true;
+       }
+}
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint.xml b/www/plugins/accesrestreint_3_5/lang/accesrestreint.xml
new file mode 100644 (file)
index 0000000..dd5904e
--- /dev/null
@@ -0,0 +1,46 @@
+<traduction module="accesrestreint" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/acces_restreint/trunk/lang/" reference="fr">
+       <langue code="ar" url="http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=ar">
+               <traducteur nom="George" lien="http://trad.spip.net/auteur/جورج-قندلفت" />
+       </langue>
+       <langue code="ast" url="http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=ast">
+               <traducteur nom="Xuacu" lien="http://trad.spip.net/auteur/xuacu" />
+       </langue>
+       <langue code="br" />
+       <langue code="ca" />
+       <langue code="de" url="http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=de">
+               <traducteur nom="klaus++" lien="http://trad.spip.net/auteur/klaus" />
+       </langue>
+       <langue code="en" url="http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=en">
+               <traducteur nom="kent1" lien="http://trad.spip.net/auteur/kent1" />
+               <traducteur nom="sQuonk" lien="http://trad.spip.net/auteur/squonk" />
+       </langue>
+       <langue code="es" url="http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=es">
+               <traducteur nom="Raquel S. Bujaldón" lien="http://trad.spip.net/auteur/raquel" />
+       </langue>
+       <langue code="fa" url="http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=fa">
+               <traducteur nom="Davood Hossein" lien="http://trad.spip.net/auteur/davood-hossein" />
+       </langue>
+       <langue code="fr" url="http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=fr">
+               <traducteur nom="Salvatore" lien="http://trad.spip.net/auteur/salvatore" />
+       </langue>
+       <langue code="fr_tu" url="http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=fr_tu">
+               <traducteur nom="beatnick" lien="http://trad.spip.net/auteur/beatnick" />
+               <traducteur nom="orlammd" lien="http://trad.spip.net/auteur/orlammd" />
+       </langue>
+       <langue code="gl" />
+       <langue code="lb" url="http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=lb">
+               <traducteur nom="jwander" lien="http://trad.spip.net/auteur/jwander" />
+       </langue>
+       <langue code="nl" url="http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=nl">
+               <traducteur nom="mpossoz" lien="http://trad.spip.net/auteur/mpossoz" />
+               <traducteur nom="Suske" lien="http://trad.spip.net/auteur/suske" />
+       </langue>
+       <langue code="pt_br" url="http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=pt_br">
+               <traducteur nom="Ricardo Porto" lien="http://trad.spip.net/auteur/ricardo-porto" />
+       </langue>
+       <langue code="ro" />
+       <langue code="sk" url="http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=sk">
+               <traducteur nom="jaro" lien="http://trad.spip.net/auteur/jaro" />
+       </langue>
+       <langue code="tr" />
+</traduction>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_ar.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_ar.php
new file mode 100644 (file)
index 0000000..b22c640
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=ar
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'إعطائي حق الدخول الى هذه المنطقة',
+       'aucune_zone' => 'لا توجد أية منطقة',
+       'auteurs' => 'المؤلفين',
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des accès .htaccess', # NEW
+       'bouton_creer_la_zone' => 'إنشاء المنطقة الجديدة',
+
+       // C
+       'colonne_id' => 'الرقم',
+       'confirmer_ajouter_auteurs' => 'هل انت متأكد من إضافة هذا المؤلف الى المنطقة؟',
+       'confirmer_retirer_auteur_zone' => 'هل تريد فعلاً سحب هذا المؤلف من المنطقة؟',
+       'confirmer_retirer_auteurs' => 'هل تريد فعلاً سحب جميع المؤلفين من المنطقة؟',
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?', # NEW
+       'confirmer_supprimer_zone' => 'هل تريد فعلاً حذف هذه المنطقة؟',
+       'creer_zone' => 'إنشاء منطقة جديدة',
+
+       // D
+       'descriptif' => 'الوصف',
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publi&eacute', # NEW
+
+       // I
+       'icone_menu_config' => 'دخول محصور',
+       'icone_supprimer_zone' => 'حذف هذه المنطقة',
+       'info_1_zone' => '1 zone', # NEW
+       'info_acces_restreint' => 'الوصول الى هذه الصفحة محصور. عليك التعريف بنفسك للوصول اليها',
+       'info_ajouter_auteur' => 'إضافة مؤلف',
+       'info_ajouter_auteurs' => 'إضافة جميع المؤلفين',
+       'info_ajouter_zones' => 'إضافة كل المناطق',
+       'info_aucun_acces' => 'لا يوجد أي دخول مسموح',
+       'info_aucun_auteur' => 'لا يوجد أي مؤلف في المنطقة',
+       'info_aucune_zone' => 'لا توجد أية منطقة',
+       'info_auteurs_lies_zone' => 'المؤلفون المسموح لهم الدخول الى هذه المنطقة',
+       'info_lien_action_proteger' => 'حماية الوصول الى هذا القسم.',
+       'info_nb_zones' => '@nb@ zones', # NEW
+       'info_page' => 'تتيح لك هذه الصفحة إدارة مناطق الدخول المحصور في الموقع',
+       'info_retirer_auteurs' => 'سحب جميع المؤلفين',
+       'info_retirer_zone' => 'سحب من المنطقة',
+       'info_retirer_zones' => 'إلغاء كل المناطق',
+       'info_rubrique_dans_zone' => 'هذا القسم هو ضمن المنطقة:',
+       'info_rubrique_dans_zones' => 'هذا القسم هو ضمن المناطق:',
+
+       // L
+       'label_creer_htaccess' => 'Accès aux document joints par leur URL', # NEW
+       'label_creer_htaccess_non' => 'autoriser la lecture', # NEW
+       'label_creer_htaccess_oui' => 'interdire la lecture', # NEW
+
+       // M
+       'modifier_zone' => 'تعديل المنطقة',
+
+       // P
+       'page_zones_acces' => 'دخول محصور',
+       'par_titre' => 'حسب الاسم',
+       'privee' => 'الخاص',
+       'publique' => 'العمومي',
+
+       // R
+       'rubriques' => 'أقسام',
+       'rubriques_zones_acces' => 'أقسام المنطقة',
+
+       // S
+       'selectionner_une_zone' => 'تحديد منطقة',
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone', # NEW
+       'texte_creer_associer_zone' => 'Créer et associer une zone', # NEW
+       'titre' => 'الاسم',
+       'titre_ajouter_zone' => 'الربط بالمنطقة',
+       'titre_boite_protegee_non' => 'وصول غير محمي',
+       'titre_boite_protegee_oui' => 'وصول محمي',
+       'titre_cadre_modifier_zone' => 'تعديل منطقة',
+       'titre_page_config' => 'إعداد الدخول',
+       'titre_table' => 'كل مناطق الدخول',
+       'titre_zone_acces' => 'Zone d\'accès restreint', # NEW
+       'titre_zones_acces' => 'مناطق الدخول المحصور',
+       'toutes' => 'الكل',
+
+       // V
+       'voir_toutes' => 'عرض كل المناطق',
+
+       // Z
+       'zone_numero' => '<strong>منطقة رقم</strong>',
+       'zone_restreinte_espace_prive' => 'حصر الدخول الى هذه المنطقة في المجال الخاص',
+       'zone_restreinte_publique' => 'حصر الدخول الى هذه المنطقة في الموقع العمومي'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_ast.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_ast.php
new file mode 100644 (file)
index 0000000..aec43ae
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=ast
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'Axuntame a los que tienen permitío entrar n\'esta estaya',
+       'aucune_zone' => 'Denguna zona',
+       'auteurs' => 'autores',
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des accès .htaccess', # NEW
+       'bouton_creer_la_zone' => 'Crear la estaya nueva',
+
+       // C
+       'colonne_id' => 'Num',
+       'confirmer_ajouter_auteurs' => '¿Tas seguru de que quies amestar esti autor a la zona?',
+       'confirmer_retirer_auteur_zone' => '¿Tas seguru de que quiés retirar esti autor de la zona?',
+       'confirmer_retirer_auteurs' => '¿Tas seguru de que quiés retirar toos los autores d\'esta zona?',
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?', # NEW
+       'confirmer_supprimer_zone' => '¿Tas seguru que quies desaniciar esta zona?',
+       'creer_zone' => 'Crear una estaya nueva',
+
+       // D
+       'descriptif' => 'Descrición',
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publi&eacute', # NEW
+
+       // I
+       'icone_menu_config' => 'Accesu Torgáo',
+       'icone_supprimer_zone' => 'Desaniciar esta estaya',
+       'info_1_zone' => '1 zone', # NEW
+       'info_acces_restreint' => 'L\'accesu a esta páxina ta llendáu. Identificate pa poder entrar',
+       'info_ajouter_auteur' => 'Amestar esti autor',
+       'info_ajouter_auteurs' => 'Amestar toos los autores',
+       'info_ajouter_zones' => 'Añadir toes les estayes',
+       'info_aucun_acces' => 'Dengún accesu autorizáu',
+       'info_aucun_auteur' => 'Dengún autor na zona',
+       'info_aucune_zone' => 'Denguna zona',
+       'info_auteurs_lies_zone' => 'Los autores con accesu a esta estaya',
+       'info_lien_action_proteger' => 'Protéger l\'accès à cette rubrique.', # NEW
+       'info_nb_zones' => '@nb@ zones', # NEW
+       'info_page' => 'Estae páxina te permite xestionar les estayes con accesu torgáu nel to sitiu',
+       'info_retirer_auteurs' => 'Retirar toos los autores',
+       'info_retirer_zone' => 'Quitar de la estaya',
+       'info_retirer_zones' => 'Quitar de toes les estayes',
+       'info_rubrique_dans_zone' => 'Cette rubrique fait partie de la zone :', # NEW
+       'info_rubrique_dans_zones' => 'Cette rubrique fait partie des zones :', # NEW
+
+       // L
+       'label_creer_htaccess' => 'Accès aux document joints par leur URL', # NEW
+       'label_creer_htaccess_non' => 'autoriser la lecture', # NEW
+       'label_creer_htaccess_oui' => 'interdire la lecture', # NEW
+
+       // M
+       'modifier_zone' => 'Iguar la zona',
+
+       // P
+       'page_zones_acces' => 'Accesu Torgáo',
+       'par_titre' => 'Pol títulu',
+       'privee' => 'Privao',
+       'publique' => 'Públicu',
+
+       // R
+       'rubriques' => 'seiciones',
+       'rubriques_zones_acces' => 'Seiciones de la estaya',
+
+       // S
+       'selectionner_une_zone' => 'Seleicionar una estaya',
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone', # NEW
+       'texte_creer_associer_zone' => 'Créer et associer une zone', # NEW
+       'titre' => 'Títulu',
+       'titre_ajouter_zone' => 'Amestar la estaya',
+       'titre_boite_protegee_non' => 'Accès non protégé', # NEW
+       'titre_boite_protegee_oui' => 'Accès protégé', # NEW
+       'titre_cadre_modifier_zone' => 'Iguar una zona',
+       'titre_page_config' => 'Configuración de los accesos',
+       'titre_table' => 'Toes les estayes d\'accesu',
+       'titre_zone_acces' => 'Zone d\'accès restreint', # NEW
+       'titre_zones_acces' => 'Estayes d\'accesu torgáo',
+       'toutes' => 'Toes',
+
+       // V
+       'voir_toutes' => 'Ver toes les estayes',
+
+       // Z
+       'zone_numero' => 'ESTAYA NÚMBERU:',
+       'zone_restreinte_espace_prive' => 'Torgar l\'accesu a esta estaya nel espaciu priváo',
+       'zone_restreinte_publique' => 'Torgar l\'accesu a esta estaya na parte pública'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_br.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_br.php
new file mode 100644 (file)
index 0000000..2d5eb7c
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=br
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'Ouzhpennañ gwirioù moned din-me evit an takad-mañ',
+       'aucune_zone' => 'Aucune zone', # NEW
+       'auteurs' => 'skridaozerien',
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des accès .htaccess', # NEW
+       'bouton_creer_la_zone' => 'Krouiñ an takad nevez',
+
+       // C
+       'colonne_id' => 'Niv.',
+       'confirmer_ajouter_auteurs' => 'Êtes vous sûr de vouloir ajouter cet auteur à la zone ?', # NEW
+       'confirmer_retirer_auteur_zone' => 'Ha sur oc\'h e fell deoc\'h lemel kuit an aozer-mañ eus an takad ?',
+       'confirmer_retirer_auteurs' => 'Ha sur oc\'h e fell deoc\'h lemel kuit an holl aozerien eus an takad ?',
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?', # NEW
+       'confirmer_supprimer_zone' => 'Ha sur oc\'h e fell deoc\'h diverkañ an takad ?',
+       'creer_zone' => 'Krouiñ un takad nevez',
+
+       // D
+       'descriptif' => 'Deskrivadur',
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publi&eacute', # NEW
+
+       // I
+       'icone_menu_config' => 'Moned bevennet',
+       'icone_supprimer_zone' => 'Diverkañ an takad-mañ',
+       'info_1_zone' => '1 zone', # NEW
+       'info_acces_restreint' => 'L\'accès à cette page est restreint. Identifiez vous pour y accéder', # NEW
+       'info_ajouter_auteur' => 'Ouzhpennañ an aozer-mañ',
+       'info_ajouter_auteurs' => 'Ouzhpennañ an holl aozerien',
+       'info_ajouter_zones' => 'Ouzhpennañ an holl dakadoù',
+       'info_aucun_acces' => 'Moned ebet aotreet',
+       'info_aucun_auteur' => 'Aozer ebet en takad',
+       'info_aucune_zone' => 'Takad ebet',
+       'info_auteurs_lies_zone' => 'Ar skridaozerien ganto ur moned war-zu an takad-mañ',
+       'info_lien_action_proteger' => 'Protéger l\'accès à cette rubrique.', # NEW
+       'info_nb_zones' => '@nb@ zones', # NEW
+       'info_page' => 'Gant ar bajenn-mañ e c\'hellit merañ takadoù eus ho lec\'hienn bevennet ar moned outo.',
+       'info_retirer_auteurs' => 'Lemel kuit an holl aozerien',
+       'info_retirer_zone' => 'Lemel kuit eus an takad',
+       'info_retirer_zones' => 'Lemel kuit eus an holl dakadoù',
+       'info_rubrique_dans_zone' => 'Cette rubrique fait partie de la zone :', # NEW
+       'info_rubrique_dans_zones' => 'Cette rubrique fait partie des zones :', # NEW
+
+       // L
+       'label_creer_htaccess' => 'Accès aux document joints par leur URL', # NEW
+       'label_creer_htaccess_non' => 'autoriser la lecture', # NEW
+       'label_creer_htaccess_oui' => 'interdire la lecture', # NEW
+
+       // M
+       'modifier_zone' => 'Kemmañ an takad',
+
+       // P
+       'page_zones_acces' => 'Moned bevennet',
+       'par_titre' => 'Dre ditloù',
+       'privee' => 'Prevez',
+       'publique' => 'Foran',
+
+       // R
+       'rubriques' => 'rubrikennoù',
+       'rubriques_zones_acces' => 'Rubrikennoù an takad',
+
+       // S
+       'selectionner_une_zone' => 'Diuzañ un takad',
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone', # NEW
+       'texte_creer_associer_zone' => 'Créer et associer une zone', # NEW
+       'titre' => 'Titl',
+       'titre_ajouter_zone' => 'Tizhout an takad',
+       'titre_boite_protegee_non' => 'Accès non protégé', # NEW
+       'titre_boite_protegee_oui' => 'Accès protégé', # NEW
+       'titre_cadre_modifier_zone' => 'Kemmañ un takad',
+       'titre_page_config' => 'Configuration des accès', # NEW
+       'titre_table' => 'An holl dakadoù moned',
+       'titre_zone_acces' => 'Zone d\'accès restreint', # NEW
+       'titre_zones_acces' => 'Takad bevennet ar moned outañ',
+       'toutes' => 'An holl',
+
+       // V
+       'voir_toutes' => 'Gwelet an holl dakadoù',
+
+       // Z
+       'zone_numero' => 'TAKAD NIVERENN :',
+       'zone_restreinte_espace_prive' => 'Bevenniñ ar moned ouzh an takad-mañ el lodenn brevez',
+       'zone_restreinte_publique' => 'Bevenniñ ar moned ouzh an takad-mañ el lodenn foran'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_ca.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_ca.php
new file mode 100644 (file)
index 0000000..963ddfa
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=ca
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'Afegir-me els drets d\'accés a aquesta zona',
+       'aucune_zone' => 'Cap zona',
+       'auteurs' => 'autors',
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des accès .htaccess', # NEW
+       'bouton_creer_la_zone' => 'Crear la nova zona',
+
+       // C
+       'colonne_id' => 'Núm',
+       'confirmer_ajouter_auteurs' => 'Esteu segurs de voler afegir aquest autor a la zona?',
+       'confirmer_retirer_auteur_zone' => 'Estàs segur que vols retirar aquest autor de la zona?',
+       'confirmer_retirer_auteurs' => 'Estàs segur que vols retirar tots els autors d\'aquesta zona?',
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?', # NEW
+       'confirmer_supprimer_zone' => 'Estàs segur que vols suprimir aquesta zona?',
+       'creer_zone' => 'Crear una nova zona',
+
+       // D
+       'descriptif' => 'Descripció',
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publi&eacute', # NEW
+
+       // I
+       'icone_menu_config' => 'Accés Restringit ',
+       'icone_supprimer_zone' => 'Suprimir aquesta zona',
+       'info_1_zone' => '1 zone', # NEW
+       'info_acces_restreint' => 'L\'accés a aquesta pàgina està restringit. Us heu d\'identificar per accedir-hi',
+       'info_ajouter_auteur' => 'Afegir aquest autor',
+       'info_ajouter_auteurs' => 'Afegir tots els autors',
+       'info_ajouter_zones' => 'Afegir totes les zones',
+       'info_aucun_acces' => 'Cap accés autoritzat',
+       'info_aucun_auteur' => 'Cap autor a la zona',
+       'info_aucune_zone' => 'Cap zona',
+       'info_auteurs_lies_zone' => 'Els autors que tenen accés a aquesta zona',
+       'info_lien_action_proteger' => 'Protéger l\'accès à cette rubrique.', # NEW
+       'info_nb_zones' => '@nb@ zones', # NEW
+       'info_page' => 'Aquesta pàgina permet gestionar les zones d\'accés restringit del vostre lloc',
+       'info_retirer_auteurs' => 'Retirar tots els autors',
+       'info_retirer_zone' => 'Treure de la zona',
+       'info_retirer_zones' => 'Treure de totes les zones',
+       'info_rubrique_dans_zone' => 'Cette rubrique fait partie de la zone :', # NEW
+       'info_rubrique_dans_zones' => 'Cette rubrique fait partie des zones :', # NEW
+
+       // L
+       'label_creer_htaccess' => 'Accès aux document joints par leur URL', # NEW
+       'label_creer_htaccess_non' => 'autoriser la lecture', # NEW
+       'label_creer_htaccess_oui' => 'interdire la lecture', # NEW
+
+       // M
+       'modifier_zone' => 'Modificar la zona',
+
+       // P
+       'page_zones_acces' => 'Accés Restringit',
+       'par_titre' => 'Per títol',
+       'privee' => 'Privat',
+       'publique' => 'Públic',
+
+       // R
+       'rubriques' => 'seccions',
+       'rubriques_zones_acces' => 'Seccions de la zona',
+
+       // S
+       'selectionner_une_zone' => 'Seleccionar una zona',
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone', # NEW
+       'texte_creer_associer_zone' => 'Créer et associer une zone', # NEW
+       'titre' => 'Títol',
+       'titre_ajouter_zone' => 'Tornar a la zona',
+       'titre_boite_protegee_non' => 'Accès non protégé', # NEW
+       'titre_boite_protegee_oui' => 'Accès protégé', # NEW
+       'titre_cadre_modifier_zone' => 'Modificar una zona',
+       'titre_page_config' => 'Configuració de l\'accés',
+       'titre_table' => 'Totes les zones d\'accés',
+       'titre_zone_acces' => 'Zone d\'accès restreint', # NEW
+       'titre_zones_acces' => 'Zones d\'accés restringit',
+       'toutes' => 'Totes',
+
+       // V
+       'voir_toutes' => 'Veure totes les zones',
+
+       // Z
+       'zone_numero' => 'ZONA NÚMERO :',
+       'zone_restreinte_espace_prive' => 'Restringir l\'accés a aquesta zona a l\'espai privat',
+       'zone_restreinte_publique' => 'Restringir l\'accés a aquesta zona a la part pública'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_de.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_de.php
new file mode 100644 (file)
index 0000000..c37a5ce
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=de
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'Mir selbst Zugangsberechtigung für diesen Bereich erteilen',
+       'aucune_zone' => 'Kein Bereich',
+       'auteurs' => 'Autoren',
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des accès .htaccess', # NEW
+       'bouton_creer_la_zone' => 'Neuen Bereich erstellen',
+
+       // C
+       'colonne_id' => 'Num',
+       'confirmer_ajouter_auteurs' => 'wollen sie diesen Autor wirklich dieser Zone zuordnen?',
+       'confirmer_retirer_auteur_zone' => 'Möchten Sie diesen Autor wirklich aus dem Bereich entfernen?',
+       'confirmer_retirer_auteurs' => 'Möchten wirklich alle Autoren aus dem Bereich entfernen?',
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?', # NEW
+       'confirmer_supprimer_zone' => 'Wollen Sie diesen Bereich wirklich löschen?',
+       'creer_zone' => 'Neuen Bereich anlegen',
+
+       // D
+       'descriptif' => 'Beschreibung',
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publi&eacute', # NEW
+
+       // I
+       'icone_menu_config' => 'Zugangskontrolle',
+       'icone_supprimer_zone' => 'Bereich löschen',
+       'info_1_zone' => '1 zone', # NEW
+       'info_acces_restreint' => 'Diese Seite ist geschützt. Bitte melden sie sich an, um auf sie zuzugreifen.',
+       'info_ajouter_auteur' => 'Autor hinzufügen',
+       'info_ajouter_auteurs' => 'Alle Autoren hinzufügen',
+       'info_ajouter_zones' => 'Alle Bereichen hinzufügen',
+       'info_aucun_acces' => 'Zugriff verboten',
+       'info_aucun_auteur' => 'Kein Autor für diesen Bereich',
+       'info_aucune_zone' => 'Kein Bereich',
+       'info_auteurs_lies_zone' => 'Autoren mit Zugang zu diesem Bereich',
+       'info_lien_action_proteger' => 'Protéger l\'accès à cette rubrique.', # NEW
+       'info_nb_zones' => '@nb@ zones', # NEW
+       'info_page' => 'Hier können Sie die Bereiche mit Zugangskontrolle verwalten.',
+       'info_retirer_auteurs' => 'ALle Autoren entfernen',
+       'info_retirer_zone' => 'Bereich löschen',
+       'info_retirer_zones' => 'Alle Bereiche löschen',
+       'info_rubrique_dans_zone' => 'Cette rubrique fait partie de la zone :', # NEW
+       'info_rubrique_dans_zones' => 'Cette rubrique fait partie des zones :', # NEW
+
+       // L
+       'label_creer_htaccess' => 'Accès aux document joints par leur URL', # NEW
+       'label_creer_htaccess_non' => 'autoriser la lecture', # NEW
+       'label_creer_htaccess_oui' => 'interdire la lecture', # NEW
+
+       // M
+       'modifier_zone' => 'Bereich ändern',
+
+       // P
+       'page_zones_acces' => 'Zugangskontrolle',
+       'par_titre' => 'Nach Titel',
+       'privee' => 'Privat',
+       'publique' => 'Öffentlich',
+
+       // R
+       'rubriques' => 'Rubriken',
+       'rubriques_zones_acces' => 'Rubriken des Bereiches',
+
+       // S
+       'selectionner_une_zone' => 'Bereich auswählen',
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone', # NEW
+       'texte_creer_associer_zone' => 'Créer et associer une zone', # NEW
+       'titre' => 'Titel',
+       'titre_ajouter_zone' => 'zum Bereich zufügen',
+       'titre_boite_protegee_non' => 'Accès non protégé', # NEW
+       'titre_boite_protegee_oui' => 'Accès protégé', # NEW
+       'titre_cadre_modifier_zone' => 'Bereich ändern',
+       'titre_page_config' => 'Zugangskonfiguration',
+       'titre_table' => 'Alle Bereiche mit Zugangskontrolle ',
+       'titre_zone_acces' => 'Zone d\'accès restreint', # NEW
+       'titre_zones_acces' => 'Bereiche mit Zugangskontrolle ',
+       'toutes' => 'Alle',
+
+       // V
+       'voir_toutes' => 'Alle Bereiche anzeigen',
+
+       // Z
+       'zone_numero' => 'BEREICH NUMMER:',
+       'zone_restreinte_espace_prive' => 'Zugang im Redaktionsbereich konrollieren',
+       'zone_restreinte_publique' => 'Zugang zu diesem Bereich in der öffentlichen Webseite kontrollieren'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_en.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_en.php
new file mode 100644 (file)
index 0000000..ef4291a
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=en
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'Give me access to this area',
+       'aucune_zone' => 'No zones',
+       'auteurs' => 'authors',
+
+       // B
+       'bouton_configurer_acces' => 'Configuring .htaccess access',
+       'bouton_creer_la_zone' => 'Create new area',
+
+       // C
+       'colonne_id' => '#',
+       'confirmer_ajouter_auteurs' => 'Are you sure you want to add this author to the area?',
+       'confirmer_retirer_auteur_zone' => 'Are you sure you wish to remove this author from this area?',
+       'confirmer_retirer_auteurs' => 'Are you sure you wish to remove all authors from this area?',
+       'confirmer_retirer_rubrique_zone' => 'Are you sure you want to remove this section of this zone?',
+       'confirmer_supprimer_zone' => 'Are you sure you want to delete this area?',
+       'creer_zone' => 'Create a new area',
+
+       // D
+       'descriptif' => 'Description',
+
+       // E
+       'explication_creer_htaccess' => 'This option prevents reading the attached documents if the text to which they relate is not published',
+
+       // I
+       'icone_menu_config' => 'Restricted access',
+       'icone_supprimer_zone' => 'Delete this area',
+       'info_1_zone' => '1 zone',
+       'info_acces_restreint' => 'Access to this page is restricted. Please log in to continue',
+       'info_ajouter_auteur' => 'Add this author',
+       'info_ajouter_auteurs' => 'Add all authors',
+       'info_ajouter_zones' => 'Add all areas',
+       'info_aucun_acces' => 'No access allowed',
+       'info_aucun_auteur' => 'No authors in the area',
+       'info_aucune_zone' => 'No areas',
+       'info_auteurs_lies_zone' => 'Authors with access to this area',
+       'info_lien_action_proteger' => 'Restrict access to this section',
+       'info_nb_zones' => '@nb@ zones',
+       'info_page' => 'This page allows you to create restricted areas in your site',
+       'info_retirer_auteurs' => 'Remove all authors',
+       'info_retirer_zone' => 'Remove from area',
+       'info_retirer_zones' => 'Remove from all areas',
+       'info_rubrique_dans_zone' => 'This section is in area:',
+       'info_rubrique_dans_zones' => 'This section is in areas:',
+
+       // L
+       'label_creer_htaccess' => 'Access to the attached document by their URL',
+       'label_creer_htaccess_non' => 'allow read',
+       'label_creer_htaccess_oui' => 'forbid the reading',
+
+       // M
+       'modifier_zone' => 'Edit the area',
+
+       // P
+       'page_zones_acces' => 'Restricted Access',
+       'par_titre' => 'By title',
+       'privee' => 'Private',
+       'publique' => 'Public',
+
+       // R
+       'rubriques' => 'sections',
+       'rubriques_zones_acces' => 'Sections in this area',
+
+       // S
+       'selectionner_une_zone' => 'Select a restricted area',
+
+       // T
+       'texte_ajouter_zone' => 'Add a zone',
+       'texte_creer_associer_zone' => 'Create and assign a zone',
+       'titre' => 'Title',
+       'titre_ajouter_zone' => 'Add to a restricted area',
+       'titre_boite_protegee_non' => 'Unrestricted access',
+       'titre_boite_protegee_oui' => 'Restricted access',
+       'titre_cadre_modifier_zone' => 'Edit an area',
+       'titre_page_config' => 'Configure access rights',
+       'titre_table' => 'All restricted areas',
+       'titre_zone_acces' => 'Restricted access zone',
+       'titre_zones_acces' => 'Restricted areas',
+       'toutes' => 'All',
+
+       // V
+       'voir_toutes' => 'Show all areas',
+
+       // Z
+       'zone_numero' => 'AREA NUMBER:',
+       'zone_restreinte_espace_prive' => 'Restrict access to this area in the private area',
+       'zone_restreinte_publique' => 'Restrict access to this area in the public site'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_es.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_es.php
new file mode 100644 (file)
index 0000000..cfc17e7
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=es
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'Otorgarme derechos de acceso para esta área',
+       'aucune_zone' => 'Ningún área',
+       'auteurs' => 'autores',
+
+       // B
+       'bouton_configurer_acces' => 'Configuración de accesos .htaccess',
+       'bouton_creer_la_zone' => 'Crear la nueva área',
+
+       // C
+       'colonne_id' => 'Nº',
+       'confirmer_ajouter_auteurs' => '¿Está seguro de querer añadir este autor al área?',
+       'confirmer_retirer_auteur_zone' => '¿Está seguro de querer retirar este autor del área?',
+       'confirmer_retirer_auteurs' => '¿Está seguro de querer retirar todos los autores de esta área?',
+       'confirmer_retirer_rubrique_zone' => '¿Está seguro de querer retirar esta sección de esta área?',
+       'confirmer_supprimer_zone' => '¿Esta seguro de querer eliminar esta área?',
+       'creer_zone' => 'Crear una nueva área',
+
+       // D
+       'descriptif' => 'Descripción',
+
+       // E
+       'explication_creer_htaccess' => 'Esta opción impide la lectura de los documentos adjuntos si el texto al que se refieren no está publicado',
+
+       // I
+       'icone_menu_config' => 'Acceso restringido',
+       'icone_supprimer_zone' => 'Eliminar esta área',
+       'info_1_zone' => '1 área',
+       'info_acces_restreint' => 'El acceso a esta página está restringido. Identifíquese para acceder a ella. ',
+       'info_ajouter_auteur' => 'Añadir este autor',
+       'info_ajouter_auteurs' => 'Añadir todos los autores',
+       'info_ajouter_zones' => 'Añadir todas las áreas',
+       'info_aucun_acces' => 'Ningún acceso autorizado',
+       'info_aucun_auteur' => 'Ningún autor en el área',
+       'info_aucune_zone' => 'Ningún área',
+       'info_auteurs_lies_zone' => 'Los autores con acceso a esta área',
+       'info_lien_action_proteger' => 'Proteger el acceso a esta sección',
+       'info_nb_zones' => '@nb@ áreas',
+       'info_page' => 'Esta página permite administrar las áreas de acceso restringido en el sitio',
+       'info_retirer_auteurs' => 'Retirar todos los autores',
+       'info_retirer_zone' => 'Quitar del área',
+       'info_retirer_zones' => 'Quitar de todas las áreas',
+       'info_rubrique_dans_zone' => 'Esta sección es parte del área:',
+       'info_rubrique_dans_zones' => 'Esta sección es parte de las áreas:',
+
+       // L
+       'label_creer_htaccess' => 'Acceso a los documentos adjuntos por su URL',
+       'label_creer_htaccess_non' => 'autorizar la lectura',
+       'label_creer_htaccess_oui' => 'prohibir la lectura',
+
+       // M
+       'modifier_zone' => 'Modificar el área',
+
+       // P
+       'page_zones_acces' => 'Acceso Restringido',
+       'par_titre' => 'Por título',
+       'privee' => 'Privado',
+       'publique' => 'Público',
+
+       // R
+       'rubriques' => 'secciones',
+       'rubriques_zones_acces' => 'Secciones del área',
+
+       // S
+       'selectionner_une_zone' => 'Seleccionar un área',
+
+       // T
+       'texte_ajouter_zone' => 'Añadir un área',
+       'texte_creer_associer_zone' => 'Crear y asociar un área',
+       'titre' => 'Título',
+       'titre_ajouter_zone' => 'Agregar el área',
+       'titre_boite_protegee_non' => 'Acceso no protegido',
+       'titre_boite_protegee_oui' => 'Acceso protegido',
+       'titre_cadre_modifier_zone' => 'Modificar un área',
+       'titre_page_config' => 'Configuración de accesos',
+       'titre_table' => 'Todas las áreas de acceso',
+       'titre_zone_acces' => 'Área de acceso restringido',
+       'titre_zones_acces' => 'Áreas de acceso restringido',
+       'toutes' => 'Todas',
+
+       // V
+       'voir_toutes' => 'Ver todas las áreas',
+
+       // Z
+       'zone_numero' => 'ÁREA NÚMERO:',
+       'zone_restreinte_espace_prive' => 'Restringir el acceso a esta área en el espacio privado',
+       'zone_restreinte_publique' => 'Restringir el acceso a esta área en la parte pública'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_eu.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_eu.php
new file mode 100644 (file)
index 0000000..8f89a41
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://www.spip.net/trad-lang/
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'M\'ajouter les droits d\'accès à cette zone', # NEW
+       'aucune_zone' => 'Aucune zone', # NEW
+       'auteurs' => 'Egileak',
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des acc&#232;s .htaccess', # NEW
+       'bouton_creer_la_zone' => 'Are berria sortu',
+
+       // C
+       'colonne_id' => 'Num',
+       'confirmer_ajouter_auteurs' => 'Êtes vous sûr de vouloir ajouter cet auteur à la zone ?', # NEW
+       'confirmer_retirer_auteur_zone' => 'Êtes vous sûr de vouloir retirer cet auteur de la zone ?', # NEW
+       'confirmer_retirer_auteurs' => 'Êtes vous sûr de vouloir retirer tous les auteurs de cette zone ?', # NEW
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?', # NEW
+       'confirmer_supprimer_zone' => 'Êtes vous sûr de vouloir supprimer cette zone ?', # NEW
+       'creer_zone' => 'Are berri bat sortu',
+
+       // D
+       'descriptif' => 'Deskripzioa',
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publi&eacute', # NEW
+
+       // I
+       'icone_menu_config' => 'Sarbide murriztua',
+       'icone_supprimer_zone' => 'Are hori kendu',
+       'info_1_zone' => '1 zone', # NEW
+       'info_acces_restreint' => 'L\'accès à cette page est restreint. Identifiez vous pour y accéder', # NEW
+       'info_ajouter_auteur' => 'Ajouter cet auteur', # NEW
+       'info_ajouter_auteurs' => 'Ajouter tous les auteurs', # NEW
+       'info_ajouter_zones' => 'Are guziak gehitu',
+       'info_aucun_acces' => 'Aucun accès autorisé', # NEW
+       'info_aucun_auteur' => 'Aucun auteur dans la zone', # NEW
+       'info_aucune_zone' => 'Aucune zone', # NEW
+       'info_auteurs_lies_zone' => 'Are hunetara sarbidea daukaten autoreak',
+       'info_lien_action_proteger' => 'Prot&eacute;ger l\'acc&egrave;s &agrave; cette rubrique.', # NEW
+       'info_nb_zones' => '@nb@ zones', # NEW
+       'info_page' => 'Cette page vous permet de gérer les zones d\'accès restreint de votre site', # NEW
+       'info_retirer_auteurs' => 'Retirer tous les auteurs', # NEW
+       'info_retirer_zone' => 'Aretik kendu',
+       'info_retirer_zones' => 'Are guzietarik kendu',
+       'info_rubrique_dans_zone' => 'Cette rubrique fait partie de la zone :', # NEW
+       'info_rubrique_dans_zones' => 'Cette rubrique fait partie des zones :', # NEW
+
+       // L
+       'label_creer_htaccess' => 'Acc&egrave;s aux document joints par leur URL', # NEW
+       'label_creer_htaccess_non' => 'autoriser la lecture', # NEW
+       'label_creer_htaccess_oui' => 'interdire la lecture', # NEW
+
+       // M
+       'modifier_zone' => 'Modifier la zone', # NEW
+
+       // P
+       'page_zones_acces' => 'Sarbide murriztua',
+       'par_titre' => 'Par titre', # NEW
+       'privee' => 'Pribatua',
+       'publique' => 'Publikoa',
+
+       // R
+       'rubriques' => 'gaiak',
+       'rubriques_zones_acces' => 'Areko gaiak',
+
+       // S
+       'selectionner_une_zone' => 'Are bat aukeratu',
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone', # NEW
+       'texte_creer_associer_zone' => 'Créer et associer une zone', # NEW
+       'titre' => 'Titulu',
+       'titre_ajouter_zone' => 'Rejoindre la zone', # NEW
+       'titre_boite_protegee_non' => 'Acc&egrave;s non prot&eacute;g&eacute;', # NEW
+       'titre_boite_protegee_oui' => 'Acc&egrave;s prot&eacute;g&eacute;', # NEW
+       'titre_cadre_modifier_zone' => 'Modifier une zone', # NEW
+       'titre_page_config' => 'Configuration des accès', # NEW
+       'titre_table' => 'Toutes les zones d\'accès', # NEW
+       'titre_zone_acces' => 'Zone d\'accès restreint', # NEW
+       'titre_zones_acces' => 'Zones d\'accès restreint', # NEW
+       'toutes' => 'Toutes', # NEW
+
+       // V
+       'voir_toutes' => 'Are guziak ikusi',
+
+       // Z
+       'zone_numero' => 'ZONE NUMÉRO :', # NEW
+       'zone_restreinte_espace_prive' => 'Restreindre l\'accès à cette zone dans l\'espace privé', # NEW
+       'zone_restreinte_publique' => 'Restreindre l\'accès à cette zone dans la partie publique' # NEW
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_fa.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_fa.php
new file mode 100644 (file)
index 0000000..f96094a
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=fa
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'حق دسترسي به اين عرصه را به من بدهيد',
+       'aucune_zone' => 'هيچ منطقه',
+       'auteurs' => 'نويسندگان',
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des accès .htaccess', # NEW
+       'bouton_creer_la_zone' => 'ايجاد منطقه‌ي جديد',
+
+       // C
+       'colonne_id' => 'شماره',
+       'confirmer_ajouter_auteurs' => 'آيا مطمئن هستيد كه مي‌‌خواهيد اين نويسنده را به اين منطقه اضافه كنيد؟‌',
+       'confirmer_retirer_auteur_zone' => 'آي مطمئن هستيد كه مي‌خواهيد اين نويسنده را از اين منطقه حذف كنيد؟',
+       'confirmer_retirer_auteurs' => 'آيا مطمئن هستيد كه مي‌خواهيد تمام اين نويسندگان را از اين منطقه حذف كنيد؟',
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?', # NEW
+       'confirmer_supprimer_zone' => 'آيا مطمئن‌ هستيد كه مي‌‌خواهيد اين منطقه را حذف كنيد؟',
+       'creer_zone' => 'ايجاد يك منطقه‌ي جديد',
+
+       // D
+       'descriptif' => 'توصيف ',
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publi&eacute', # NEW
+
+       // I
+       'icone_menu_config' => 'دسترسي محدود',
+       'icone_supprimer_zone' => 'حذف اين منطقه',
+       'info_1_zone' => '1 zone', # NEW
+       'info_acces_restreint' => 'دسترسي به اين صفحه محدود است. لطفاً براي دسترسي به آن خودتان را معرفي كنيد. ',
+       'info_ajouter_auteur' => 'اين نويسنده را اضافه كنيد',
+       'info_ajouter_auteurs' => 'تمام نويسندگان را اضافه كنيد',
+       'info_ajouter_zones' => 'تمام منطقه‌ها را اضافه كنيد',
+       'info_aucun_acces' => 'دسترسي مجاز نيست',
+       'info_aucun_auteur' => 'نويسنده‌‌اي در منطقه نيست',
+       'info_aucune_zone' => 'هيچ منطقه',
+       'info_auteurs_lies_zone' => 'نويسندگان داراي دسترسي به اين منطقه',
+       'info_lien_action_proteger' => 'عدم دسترسي به اين بخش. ',
+       'info_nb_zones' => '@nb@ zones', # NEW
+       'info_page' => 'اين صفحه به شما اجازه مي‌دهد مناطق محدود سايت خود را اداره كنيد',
+       'info_retirer_auteurs' => 'حذف تمام نويسندگان',
+       'info_retirer_zone' => 'حذف منطقه',
+       'info_retirer_zones' => 'حذف تمام منطقه‌ها',
+       'info_rubrique_dans_zone' => 'اين بخش در اين منطقه قرار دارد:',
+       'info_rubrique_dans_zones' => 'اين بخش در اين مناطق قرار دارد:',
+
+       // L
+       'label_creer_htaccess' => 'Accès aux document joints par leur URL', # NEW
+       'label_creer_htaccess_non' => 'autoriser la lecture', # NEW
+       'label_creer_htaccess_oui' => 'interdire la lecture', # NEW
+
+       // M
+       'modifier_zone' => 'اصلاح منطقه',
+
+       // P
+       'page_zones_acces' => 'دسترسي محدود',
+       'par_titre' => 'با تيتر ',
+       'privee' => 'خصوصي',
+       'publique' => 'همگاني',
+
+       // R
+       'rubriques' => 'بخش‌ها',
+       'rubriques_zones_acces' => 'بخش‌هاي منطقه',
+
+       // S
+       'selectionner_une_zone' => 'انتخاب يك منطقه',
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone', # NEW
+       'texte_creer_associer_zone' => 'Créer et associer une zone', # NEW
+       'titre' => 'تيتر ',
+       'titre_ajouter_zone' => 'افزودن به منطقه‌ي محدود',
+       'titre_boite_protegee_non' => 'دسترسي بدون منع',
+       'titre_boite_protegee_oui' => 'دسترسي ممنوع‌ شده',
+       'titre_cadre_modifier_zone' => 'اصلاح يك منطقه',
+       'titre_page_config' => 'پيكربندي دسترسي‌ها',
+       'titre_table' => 'تمام منطقه‌هاي محدود',
+       'titre_zone_acces' => 'Zone d\'accès restreint', # NEW
+       'titre_zones_acces' => 'منطقه‌هاي محدود',
+       'toutes' => 'همه',
+
+       // V
+       'voir_toutes' => 'ديدن تمام منطقه‌ها',
+
+       // Z
+       'zone_numero' => 'منطقه‌ي شماره‌ي: ',
+       'zone_restreinte_espace_prive' => 'دسترسي محدود به اين منطقه در قسمت شخصي',
+       'zone_restreinte_publique' => 'دسترسي محدود به اين منطقه در سايت همگاني'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_fr.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_fr.php
new file mode 100644 (file)
index 0000000..a4f8884
--- /dev/null
@@ -0,0 +1,97 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/acces_restreint/trunk/lang/
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'M\'ajouter les droits d\'accès à cette zone',
+       'aucune_zone' => 'Aucune zone',
+       'auteurs' => 'auteurs',
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des accès .htaccess',
+       'bouton_creer_la_zone' => 'Créer la nouvelle zone',
+
+       // C
+       'colonne_id' => 'Num',
+       'confirmer_ajouter_auteurs' => 'Êtes vous sûr de vouloir ajouter cet auteur à la zone ?',
+       'confirmer_retirer_auteur_zone' => 'Êtes vous sûr de vouloir retirer cet auteur de la zone ?',
+       'confirmer_retirer_auteurs' => 'Êtes vous sûr de vouloir retirer tous les auteurs de cette zone ?',
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?',
+       'confirmer_supprimer_zone' => 'Êtes vous sûr de vouloir supprimer cette zone ?',
+       'creer_zone' => 'Créer une nouvelle zone',
+
+       // D
+       'descriptif' => 'Descriptif',
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publié',
+
+       // I
+       'icone_menu_config' => 'Accès Restreint',
+       'icone_supprimer_zone' => 'Supprimer cette zone',
+       'info_1_zone' => '1 zone',
+       'info_acces_restreint' => 'L\'accès à cette page est restreint. Identifiez vous pour y accéder',
+       'info_ajouter_auteur' => 'Ajouter cet auteur',
+       'info_ajouter_auteurs' => 'Ajouter tous les auteurs',
+       'info_ajouter_zones' => 'Ajouter toutes les zones',
+       'info_aucun_acces' => 'Aucun accès autorisé',
+       'info_aucun_auteur' => 'Aucun auteur dans la zone',
+       'info_aucune_zone' => 'Aucune zone',
+       'info_auteurs_lies_zone' => 'Les auteurs ayant accès à cette zone',
+       'info_lien_action_proteger' => 'Protéger l\'accès à cette rubrique.',
+       'info_nb_zones' => '@nb@ zones',
+       'info_page' => 'Cette page vous permet de gérer les zones d\'accès restreint de votre site',
+       'info_retirer_auteurs' => 'Retirer tous les auteurs',
+       'info_retirer_zone' => 'Enlever de la zone',
+       'info_retirer_zones' => 'Enlever de toutes les zones',
+       'info_rubrique_dans_zone' => 'Cette rubrique fait partie de la zone :',
+       'info_rubrique_dans_zones' => 'Cette rubrique fait partie des zones :',
+
+       // L
+       'label_creer_htaccess' => 'Accès aux documents joints par leur URL',
+       'label_creer_htaccess_non' => 'autoriser la lecture',
+       'label_creer_htaccess_oui' => 'interdire la lecture',
+
+       // M
+       'modifier_zone' => 'Modifier la zone',
+
+       // P
+       'page_zones_acces' => 'Accès Restreint',
+       'par_titre' => 'Par titre',
+       'privee' => 'Privée',
+       'publique' => 'Publique',
+
+       // R
+       'rubriques' => 'rubriques',
+       'rubriques_zones_acces' => 'Rubriques de la zone',
+
+       // S
+       'selectionner_une_zone' => 'Sélectionner une zone',
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone',
+       'texte_creer_associer_zone' => 'Créer et associer une zone',
+       'titre' => 'Titre',
+       'titre_ajouter_zone' => 'Rejoindre la zone',
+       'titre_boite_protegee_non' => 'Accès non protégé',
+       'titre_boite_protegee_oui' => 'Accès protégé',
+       'titre_cadre_modifier_zone' => 'Modifier une zone',
+       'titre_page_config' => 'Configuration des accès',
+       'titre_table' => 'Toutes les zones d\'accès',
+       'titre_zone_acces' => 'Zone d\'accès restreint',
+       'titre_zones_acces' => 'Zones d\'accès restreint',
+       'toutes' => 'Toutes',
+
+       // V
+       'voir_toutes' => 'Voir toutes les zones',
+
+       // Z
+       'zone_numero' => 'ZONE NUMÉRO :',
+       'zone_restreinte_espace_prive' => 'Restreindre l\'accès à cette zone dans l\'espace privé',
+       'zone_restreinte_publique' => 'Restreindre l\'accès à cette zone dans la partie publique'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_fr_tu.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_fr_tu.php
new file mode 100644 (file)
index 0000000..8d64acf
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=fr_tu
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'M\'ajouter les droits d\'accès à cette zone',
+       'aucune_zone' => 'Aucune zone',
+       'auteurs' => 'auteurs',
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des accès .htaccess', # NEW
+       'bouton_creer_la_zone' => 'Créer la nouvelle zone',
+
+       // C
+       'colonne_id' => 'Num',
+       'confirmer_ajouter_auteurs' => 'Es-tu sûr de vouloir ajouter cet auteur à la zone ?',
+       'confirmer_retirer_auteur_zone' => 'Es-tu sûr de vouloir retirer cet auteur de la zone ?',
+       'confirmer_retirer_auteurs' => 'Es-tu sûr de vouloir retirer tous les auteurs de cette zone ?',
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?', # NEW
+       'confirmer_supprimer_zone' => 'Es-tu sûr de vouloir supprimer cette zone ?',
+       'creer_zone' => 'Créer une nouvelle zone',
+
+       // D
+       'descriptif' => 'Descriptif',
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publi&eacute', # NEW
+
+       // I
+       'icone_menu_config' => 'Accès Restreint',
+       'icone_supprimer_zone' => 'Supprimer cette zone',
+       'info_1_zone' => '1 zone', # NEW
+       'info_acces_restreint' => 'L\'accès à cette page est restreint. Identifie toi pour y accéder',
+       'info_ajouter_auteur' => 'Ajouter cet auteur',
+       'info_ajouter_auteurs' => 'Ajouter tous les auteurs',
+       'info_ajouter_zones' => 'Ajouter toutes les zones',
+       'info_aucun_acces' => 'Aucun accès autorisé',
+       'info_aucun_auteur' => 'Aucun auteur dans la zone',
+       'info_aucune_zone' => 'Aucune zone',
+       'info_auteurs_lies_zone' => 'Les auteurs ayant accès à cette zone',
+       'info_lien_action_proteger' => 'Protéger l\'accès à cette rubrique.',
+       'info_nb_zones' => '@nb@ zones', # NEW
+       'info_page' => 'Cette page te permets de gérer les zones d\'accès restreint de ton site',
+       'info_retirer_auteurs' => 'Retirer tous les auteurs',
+       'info_retirer_zone' => 'Enlever de la zone',
+       'info_retirer_zones' => 'Enlever de toutes les zones',
+       'info_rubrique_dans_zone' => 'Cette rubrique fait partie de la zone :',
+       'info_rubrique_dans_zones' => 'Cette rubrique fait partie des zones :',
+
+       // L
+       'label_creer_htaccess' => 'Accès aux document joints par leur URL', # NEW
+       'label_creer_htaccess_non' => 'autoriser la lecture', # NEW
+       'label_creer_htaccess_oui' => 'interdire la lecture', # NEW
+
+       // M
+       'modifier_zone' => 'Modifier la zone',
+
+       // P
+       'page_zones_acces' => 'Accès Restreint',
+       'par_titre' => 'Par titre',
+       'privee' => 'Privée',
+       'publique' => 'Publique',
+
+       // R
+       'rubriques' => 'rubriques',
+       'rubriques_zones_acces' => 'Rubriques de la zone',
+
+       // S
+       'selectionner_une_zone' => 'Sélectionner une zone',
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone', # NEW
+       'texte_creer_associer_zone' => 'Créer et associer une zone', # NEW
+       'titre' => 'Titre',
+       'titre_ajouter_zone' => 'Rejoindre la zone',
+       'titre_boite_protegee_non' => 'Accès non protégé',
+       'titre_boite_protegee_oui' => 'Accès protégé',
+       'titre_cadre_modifier_zone' => 'Modifier une zone',
+       'titre_page_config' => 'Configuration des accès',
+       'titre_table' => 'Toutes les zones d\'accès',
+       'titre_zone_acces' => 'Zone d\'accès restreint', # NEW
+       'titre_zones_acces' => 'Zones d\'accès restreint',
+       'toutes' => 'Toutes',
+
+       // V
+       'voir_toutes' => 'Voir toutes les zones',
+
+       // Z
+       'zone_numero' => 'ZONE NUMÈRO :',
+       'zone_restreinte_espace_prive' => 'Restreindre l\'accès à cette zone dans l\'espace privé',
+       'zone_restreinte_publique' => 'Restreindre l\'accès à cette zone dans la partie publique'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_gl.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_gl.php
new file mode 100644 (file)
index 0000000..f71da69
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=gl
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'Engadir os dereitos de acceso a esta zona',
+       'aucune_zone' => 'Aucune zone', # NEW
+       'auteurs' => 'autores',
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des accès .htaccess', # NEW
+       'bouton_creer_la_zone' => 'Crear a nova zona',
+
+       // C
+       'colonne_id' => 'Núm.',
+       'confirmer_ajouter_auteurs' => 'Êtes vous sûr de vouloir ajouter cet auteur à la zone ?', # NEW
+       'confirmer_retirer_auteur_zone' => 'Está vostede seguro de querer retirar este autor da zona?',
+       'confirmer_retirer_auteurs' => 'Está vostede seguro de querer retirar a todos os autores desta zona?',
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?', # NEW
+       'confirmer_supprimer_zone' => 'Está seguro de querer suprimir esta zona?',
+       'creer_zone' => 'Crear unha nova zona',
+
+       // D
+       'descriptif' => 'Descritivo',
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publi&eacute', # NEW
+
+       // I
+       'icone_menu_config' => 'Acceso restrinxido',
+       'icone_supprimer_zone' => 'Suprimir esta zona',
+       'info_1_zone' => '1 zone', # NEW
+       'info_acces_restreint' => 'L\'accès à cette page est restreint. Identifiez vous pour y accéder', # NEW
+       'info_ajouter_auteur' => 'Engadir este autor',
+       'info_ajouter_auteurs' => 'Engadir todos os autores',
+       'info_ajouter_zones' => 'Engadir todas as zonas',
+       'info_aucun_acces' => 'Non está autorizado ningún acceso',
+       'info_aucun_auteur' => 'Non hai ningún autor na zona',
+       'info_aucune_zone' => 'Ningunha zona',
+       'info_auteurs_lies_zone' => 'Os autores que teñen acceso a esta zona',
+       'info_lien_action_proteger' => 'Protéger l\'accès à cette rubrique.', # NEW
+       'info_nb_zones' => '@nb@ zones', # NEW
+       'info_page' => 'Esta páxina permite xestionar as zonas de acceso restrinxido do seu web',
+       'info_retirer_auteurs' => 'Retirar a todos os autores',
+       'info_retirer_zone' => 'Retirar da zona',
+       'info_retirer_zones' => 'Retirar de todas as zonas',
+       'info_rubrique_dans_zone' => 'Cette rubrique fait partie de la zone :', # NEW
+       'info_rubrique_dans_zones' => 'Cette rubrique fait partie des zones :', # NEW
+
+       // L
+       'label_creer_htaccess' => 'Accès aux document joints par leur URL', # NEW
+       'label_creer_htaccess_non' => 'autoriser la lecture', # NEW
+       'label_creer_htaccess_oui' => 'interdire la lecture', # NEW
+
+       // M
+       'modifier_zone' => 'Modificar a zona',
+
+       // P
+       'page_zones_acces' => 'Acceso restrinxido',
+       'par_titre' => 'Por título',
+       'privee' => 'Privado',
+       'publique' => 'Público',
+
+       // R
+       'rubriques' => 'seccións',
+       'rubriques_zones_acces' => 'Seccións da zona',
+
+       // S
+       'selectionner_une_zone' => 'Seleccionar unha zona',
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone', # NEW
+       'texte_creer_associer_zone' => 'Créer et associer une zone', # NEW
+       'titre' => 'Título',
+       'titre_ajouter_zone' => 'Reconectar a zona',
+       'titre_boite_protegee_non' => 'Accès non protégé', # NEW
+       'titre_boite_protegee_oui' => 'Accès protégé', # NEW
+       'titre_cadre_modifier_zone' => 'Modificar unha zona',
+       'titre_page_config' => 'Configuration des accès', # NEW
+       'titre_table' => 'Todas as zonas de acceso',
+       'titre_zone_acces' => 'Zone d\'accès restreint', # NEW
+       'titre_zones_acces' => 'Zonas de acceso restrinxido',
+       'toutes' => 'Todas',
+
+       // V
+       'voir_toutes' => 'Ver todas as zonas',
+
+       // Z
+       'zone_numero' => 'ZONA NÚMERO :',
+       'zone_restreinte_espace_prive' => 'Restrinxir o acceso a esta zona no espazo privado',
+       'zone_restreinte_publique' => 'Restrinxir o acceso a esta zona na parte pública'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_it.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_it.php
new file mode 100644 (file)
index 0000000..5526a51
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://www.spip.net/trad-lang/
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'Aggiungimi i diritti di accesso in questa zona',
+       'aucune_zone' => 'Aucune zone', # NEW
+       'auteurs' => 'autori',
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des acc&#232;s .htaccess', # NEW
+       'bouton_creer_la_zone' => 'Crea la nuova zona',
+
+       // C
+       'colonne_id' => 'Num',
+       'confirmer_ajouter_auteurs' => 'Êtes vous sûr de vouloir ajouter cet auteur à la zone ?', # NEW
+       'confirmer_retirer_auteur_zone' => 'Êtes vous sûr de vouloir retirer cet auteur de la zone ?', # NEW
+       'confirmer_retirer_auteurs' => 'Êtes vous sûr de vouloir retirer tous les auteurs de cette zone ?', # NEW
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?', # NEW
+       'confirmer_supprimer_zone' => 'Êtes vous sûr de vouloir supprimer cette zone ?', # NEW
+       'creer_zone' => 'Crea una nuova zona',
+
+       // D
+       'descriptif' => 'Descrizione',
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publi&eacute', # NEW
+
+       // I
+       'icone_menu_config' => 'Accesso limitato',
+       'icone_supprimer_zone' => 'Elimina questa zona',
+       'info_1_zone' => '1 zone', # NEW
+       'info_acces_restreint' => 'L\'accès à cette page est restreint. Identifiez vous pour y accéder', # NEW
+       'info_ajouter_auteur' => 'Ajouter cet auteur', # NEW
+       'info_ajouter_auteurs' => 'Ajouter tous les auteurs', # NEW
+       'info_ajouter_zones' => 'Aggiungi tutte le zone',
+       'info_aucun_acces' => 'Aucun accès autorisé', # NEW
+       'info_aucun_auteur' => 'Aucun auteur dans la zone', # NEW
+       'info_aucune_zone' => 'Aucune zone', # NEW
+       'info_auteurs_lies_zone' => 'Gli autori che possono accedere a questa zona',
+       'info_lien_action_proteger' => 'Prot&eacute;ger l\'acc&egrave;s &agrave; cette rubrique.', # NEW
+       'info_nb_zones' => '@nb@ zones', # NEW
+       'info_page' => 'Questa pagina permette di gestire le zone di accesso limitato del proprio sito ',
+       'info_retirer_auteurs' => 'Retirer tous les auteurs', # NEW
+       'info_retirer_zone' => 'Togli la zona',
+       'info_retirer_zones' => 'Togli tutte le zone',
+       'info_rubrique_dans_zone' => 'Cette rubrique fait partie de la zone :', # NEW
+       'info_rubrique_dans_zones' => 'Cette rubrique fait partie des zones :', # NEW
+
+       // L
+       'label_creer_htaccess' => 'Acc&egrave;s aux document joints par leur URL', # NEW
+       'label_creer_htaccess_non' => 'autoriser la lecture', # NEW
+       'label_creer_htaccess_oui' => 'interdire la lecture', # NEW
+
+       // M
+       'modifier_zone' => 'Modifier la zone', # NEW
+
+       // P
+       'page_zones_acces' => 'Accesso limitato',
+       'par_titre' => 'Par titre', # NEW
+       'privee' => 'Privata',
+       'publique' => 'Pubblica',
+
+       // R
+       'rubriques' => 'rubriche',
+       'rubriques_zones_acces' => 'Rubriche della zona',
+
+       // S
+       'selectionner_une_zone' => 'Seleziona una zona',
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone', # NEW
+       'texte_creer_associer_zone' => 'Créer et associer une zone', # NEW
+       'titre' => 'Titolo',
+       'titre_ajouter_zone' => 'Unisci la zona',
+       'titre_boite_protegee_non' => 'Acc&egrave;s non prot&eacute;g&eacute;', # NEW
+       'titre_boite_protegee_oui' => 'Acc&egrave;s prot&eacute;g&eacute;', # NEW
+       'titre_cadre_modifier_zone' => 'Modifier une zone', # NEW
+       'titre_page_config' => 'Configuration des accès', # NEW
+       'titre_table' => 'Tutte le zone di accesso',
+       'titre_zone_acces' => 'Zone d\'accès restreint', # NEW
+       'titre_zones_acces' => 'Zone ad accesso limitato',
+       'toutes' => 'Toutes', # NEW
+
+       // V
+       'voir_toutes' => 'Vedi tutte le zone',
+
+       // Z
+       'zone_numero' => 'ZONA NUMERO:',
+       'zone_restreinte_espace_prive' => 'Limitare l\'accesso a questa zona nell\'area riservata',
+       'zone_restreinte_publique' => 'Limitare l\'accesso a questa zona nell\'area pubblica'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_lb.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_lb.php
new file mode 100644 (file)
index 0000000..0e3daeb
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=lb
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'Mir Rechter fir dës Zone ginn',
+       'aucune_zone' => 'Kéng Zone',
+       'auteurs' => 'Auteuren',
+
+       // B
+       'bouton_configurer_acces' => 'Astellen vum .htaccess',
+       'bouton_creer_la_zone' => 'Déi nei Zone derbäi setzen',
+
+       // C
+       'colonne_id' => 'Num',
+       'confirmer_ajouter_auteurs' => 'Soll dësen Auteur wierklech bei dës Zone bäigesat ginn?',
+       'confirmer_retirer_auteur_zone' => 'Wëllt dir dësen Auteur aus dëser Zone ewech huelen?',
+       'confirmer_retirer_auteurs' => 'Wëllt dir wierklech all d\'Auteuren aus dëser Zone ewech huelen?',
+       'confirmer_retirer_rubrique_zone' => 'Wëllt dir dës Rubrik aus dëser Zone ewech huelen?',
+       'confirmer_supprimer_zone' => 'Wëllt dir dës Zone wierklech läschen?',
+       'creer_zone' => 'Eng nei Zone derbäi setzen',
+
+       // D
+       'descriptif' => 'Beschreiwung',
+
+       // E
+       'explication_creer_htaccess' => 'Dës Optioun verhënnert d\'Uweisen vu verlinkten Dokumenter wann den Text nët verëffentlecht ass', # MODIF
+
+       // I
+       'icone_menu_config' => 'Limitéierten Zougang',
+       'icone_supprimer_zone' => 'Dës Zone läschen',
+       'info_1_zone' => '1 Zone',
+       'info_acces_restreint' => 'Den Zougang zu dëser Säit ass beschränkt. Loggt Iech an',
+       'info_ajouter_auteur' => 'Dësen Auteur bäiflécken',
+       'info_ajouter_auteurs' => 'All d\'Auteure bäiflécken',
+       'info_ajouter_zones' => 'All d\'Zonen derbäi setzen',
+       'info_aucun_acces' => 'Keen erlaabten Zougang',
+       'info_aucun_auteur' => 'Keen Auteur an dëser Zone',
+       'info_aucune_zone' => 'Keng Zone',
+       'info_auteurs_lies_zone' => 'D\'Auteuren déi Zougang an dës Zone hun',
+       'info_lien_action_proteger' => 'Den Zougang op dës Rubrik aschränken.',
+       'info_nb_zones' => '@nb@ Zonen',
+       'info_page' => 'Dës Säit erlabt déi limitéiert Zonen vun ärem Site anzestellen',
+       'info_retirer_auteurs' => 'All d\'Auteuren ewech huelen',
+       'info_retirer_zone' => 'Vun der Zone ewech huelen',
+       'info_retirer_zones' => 'Vun allen Zonen ewech huelen',
+       'info_rubrique_dans_zone' => 'Dës Rubrik gehéiert zur Zone:',
+       'info_rubrique_dans_zones' => 'Dës Rubrik gehéiert zu den Zonen:',
+
+       // L
+       'label_creer_htaccess' => 'Zougang op verlinkten Dokumenter iwwert d\'Url', # MODIF
+       'label_creer_htaccess_non' => 'Liesen erlaaben',
+       'label_creer_htaccess_oui' => 'Liesen verbidden',
+
+       // M
+       'modifier_zone' => 'Zone änneren',
+
+       // P
+       'page_zones_acces' => 'Limitéierten Zougang',
+       'par_titre' => 'No Titel',
+       'privee' => 'Privat',
+       'publique' => 'Öffentlech',
+
+       // R
+       'rubriques' => 'Rubriken',
+       'rubriques_zones_acces' => 'Rubriken vun der Zone',
+
+       // S
+       'selectionner_une_zone' => 'Eng Zone auswielen',
+
+       // T
+       'texte_ajouter_zone' => 'Eng Zone bäiflécken',
+       'texte_creer_associer_zone' => 'Eng Zone erstellen an zouweisen',
+       'titre' => 'Titel',
+       'titre_ajouter_zone' => 'Bei d\'Zone derbäi kommen',
+       'titre_boite_protegee_non' => 'Zougang nët ageschränkt',
+       'titre_boite_protegee_oui' => 'Zougang ageschränkt',
+       'titre_cadre_modifier_zone' => 'Eng Zone änneren',
+       'titre_page_config' => 'Zougäng astellen',
+       'titre_table' => 'All Zougangs-Zonen',
+       'titre_zone_acces' => 'Ageschränkten Zone',
+       'titre_zones_acces' => 'Zonen mat limitéiertem Zougang',
+       'toutes' => 'Alleguer',
+
+       // V
+       'voir_toutes' => 'All Zonen weisen',
+
+       // Z
+       'zone_numero' => 'ZONE NUMMER:',
+       'zone_restreinte_espace_prive' => 'Den Zougang an dës Zone am privaten Deel limitéieren',
+       'zone_restreinte_publique' => 'Den Zougang an dës Zone am öffentlëchen Deel limitéieren'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_nl.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_nl.php
new file mode 100644 (file)
index 0000000..cc0fbfe
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=nl
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'Me de rechten van toegang tot deze zone toevoegen',
+       'aucune_zone' => 'Geen zone',
+       'auteurs' => 'auteurs',
+
+       // B
+       'bouton_configurer_acces' => 'Toegang configureren .htaccess',
+       'bouton_creer_la_zone' => 'De nieuwe zone creëren',
+
+       // C
+       'colonne_id' => 'Num',
+       'confirmer_ajouter_auteurs' => 'Ben je zeker dat je wilt deze auteur toe te voegen aan het gebied ?',
+       'confirmer_retirer_auteur_zone' => 'Bent u te willen zeker deze auteur van de zone terugtrekken?',
+       'confirmer_retirer_auteurs' => 'Bent u te willen zeker alle auteurs van deze zone terugtrekken ?',
+       'confirmer_retirer_rubrique_zone' => 'Weet je zeker dat je dit gedeelte van dit gebied te verwijderen ?',
+       'confirmer_supprimer_zone' => 'Bent u te willen zeker deze zone afschaffen?',
+       'creer_zone' => 'Een nieuwe zone creëren',
+
+       // D
+       'descriptif' => 'Werktekening',
+
+       // E
+       'explication_creer_htaccess' => 'Deze optie voorkomt het lezen van de bijgevoegde documenten als de tekst waarop zij betrekking hebben is niet gepubliceerd', # MODIF
+
+       // I
+       'icone_menu_config' => 'Beperkte toegang',
+       'icone_supprimer_zone' => 'Deze zone afschaffen',
+       'info_1_zone' => '1 zone',
+       'info_acces_restreint' => 'De toegang tot deze pagina is beperkt. Log in om toegang te krijgen',
+       'info_ajouter_auteur' => 'Deze auteur toevoegen',
+       'info_ajouter_auteurs' => 'Alle auteurs toevoegen',
+       'info_ajouter_zones' => 'Alle zones toevoegen',
+       'info_aucun_acces' => 'Geen enkele bevoegde toegang',
+       'info_aucun_auteur' => 'Geen enkele auteur in de zone',
+       'info_aucune_zone' => 'Geen enkele zone',
+       'info_auteurs_lies_zone' => 'De auteurs die toegang tot deze zone hebben',
+       'info_lien_action_proteger' => 'Bescherm de toegang tot dit gedeelte.',
+       'info_nb_zones' => '@nb@ zones',
+       'info_page' => 'Deze bladzijde laat u toe om de zones van beperkte toegang van uwsite te beheren',
+       'info_retirer_auteurs' => 'Alle auteurs terugtrekken',
+       'info_retirer_zone' => 'De zone wegnemen',
+       'info_retirer_zones' => 'Alle zones wegnemen',
+       'info_rubrique_dans_zone' => 'Deze post maakt deel uit van het gebied :',
+       'info_rubrique_dans_zones' => 'Deze post maakt deel uit van de zones :',
+
+       // L
+       'label_creer_htaccess' => 'De toegang tot het document bevestigd door de URL', # MODIF
+       'label_creer_htaccess_non' => 'laten lezen',
+       'label_creer_htaccess_oui' => 'verbieden afspelen',
+
+       // M
+       'modifier_zone' => 'De zone wijzigen',
+
+       // P
+       'page_zones_acces' => 'Beperkte toegang',
+       'par_titre' => 'Per titel',
+       'privee' => 'Beroofd',
+       'publique' => 'Openbaar',
+
+       // R
+       'rubriques' => 'rubrieken',
+       'rubriques_zones_acces' => 'Rubrieken van de zone',
+
+       // S
+       'selectionner_une_zone' => 'Een zone selecteren',
+
+       // T
+       'texte_ajouter_zone' => 'Voeg een zone',
+       'texte_creer_associer_zone' => 'Maken en toewijzen van een zone',
+       'titre' => 'Titel',
+       'titre_ajouter_zone' => 'Met de zone overeenkomen',
+       'titre_boite_protegee_non' => 'Onbeschermde toegang',
+       'titre_boite_protegee_oui' => 'Protected Access',
+       'titre_cadre_modifier_zone' => 'Een zone wijzigen',
+       'titre_page_config' => 'Toegang configureren',
+       'titre_table' => 'Alle zones van toegang',
+       'titre_zone_acces' => 'Beperkt gebied',
+       'titre_zones_acces' => 'Zones van beperkte toegang',
+       'toutes' => 'Iedereen',
+
+       // V
+       'voir_toutes' => 'Zie alle zones',
+
+       // Z
+       'zone_numero' => 'ZONE NUMBER :',
+       'zone_restreinte_espace_prive' => 'De toegang tot deze zone in de particuliere ruimte beperken',
+       'zone_restreinte_publique' => 'De toegang tot deze zone in het openbare deel beperken'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_pt_br.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_pt_br.php
new file mode 100644 (file)
index 0000000..4c90170
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=pt_br
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'Conceder-me direitos de acesso a esta área',
+       'aucune_zone' => 'Nenhuma zona',
+       'auteurs' => 'autores',
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des accès .htaccess', # NEW
+       'bouton_creer_la_zone' => 'Criar a nova área',
+
+       // C
+       'colonne_id' => 'N&ordm;.',
+       'confirmer_ajouter_auteurs' => 'Você quer realmente incluir este autor na zona?',
+       'confirmer_retirer_auteur_zone' => 'Você quer mesmo retirar este autor da zona?',
+       'confirmer_retirer_auteurs' => 'Voc6e quer mesmo retirar todos os autores da zona?',
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?', # NEW
+       'confirmer_supprimer_zone' => 'Você quer realmente excluir esta zona?',
+       'creer_zone' => 'Criar uma nova área',
+
+       // D
+       'descriptif' => 'Descrição rápida',
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publi&eacute', # NEW
+
+       // I
+       'icone_menu_config' => 'Acesso Restrito',
+       'icone_supprimer_zone' => 'Excluir está área',
+       'info_1_zone' => '1 zone', # NEW
+       'info_acces_restreint' => 'O acesso a esta página é restrito. Identifique-se para acessá-la',
+       'info_ajouter_auteur' => 'Incluir este autor',
+       'info_ajouter_auteurs' => 'Incluir todos os autores',
+       'info_ajouter_zones' => 'Incluir todas as áreas',
+       'info_aucun_acces' => 'Nenhum acesso permitido',
+       'info_aucun_auteur' => 'Nenhum autor na zona',
+       'info_aucune_zone' => 'Nenhuma zona',
+       'info_auteurs_lies_zone' => 'Os autores com acesso a esta área',
+       'info_lien_action_proteger' => 'Protéger l\'accès à cette rubrique.', # NEW
+       'info_nb_zones' => '@nb@ zones', # NEW
+       'info_page' => 'esta página permite-lhe gerar as áreas de acesso restrito do seu site',
+       'info_retirer_auteurs' => 'Excluir todos os autores',
+       'info_retirer_zone' => 'Retirar da área',
+       'info_retirer_zones' => 'retirar de todas as áreas',
+       'info_rubrique_dans_zone' => 'Cette rubrique fait partie de la zone :', # NEW
+       'info_rubrique_dans_zones' => 'Cette rubrique fait partie des zones :', # NEW
+
+       // L
+       'label_creer_htaccess' => 'Accès aux document joints par leur URL', # NEW
+       'label_creer_htaccess_non' => 'autoriser la lecture', # NEW
+       'label_creer_htaccess_oui' => 'interdire la lecture', # NEW
+
+       // M
+       'modifier_zone' => 'Alterar a zona',
+
+       // P
+       'page_zones_acces' => 'Acesso Restrito',
+       'par_titre' => 'Por título',
+       'privee' => 'Privado',
+       'publique' => 'Publicado',
+
+       // R
+       'rubriques' => 'seções',
+       'rubriques_zones_acces' => 'Seções da área',
+
+       // S
+       'selectionner_une_zone' => 'Selecionar uma área',
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone', # NEW
+       'texte_creer_associer_zone' => 'Créer et associer une zone', # NEW
+       'titre' => 'Título',
+       'titre_ajouter_zone' => 'Aderir à área',
+       'titre_boite_protegee_non' => 'Accès non protégé', # NEW
+       'titre_boite_protegee_oui' => 'Accès protégé', # NEW
+       'titre_cadre_modifier_zone' => 'Alterar uma zona',
+       'titre_page_config' => 'Configuração dos acessos',
+       'titre_table' => 'Todas as áreas de acesso',
+       'titre_zone_acces' => 'Zone d\'accès restreint', # NEW
+       'titre_zones_acces' => 'Áreas de acesso restrito',
+       'toutes' => 'Todas',
+
+       // V
+       'voir_toutes' => 'Ver todas as áreas',
+
+       // Z
+       'zone_numero' => 'ÁREA NÚMERO:',
+       'zone_restreinte_espace_prive' => 'Restringir o acesso a esta área no espaço privado',
+       'zone_restreinte_publique' => 'restringir o acesso a esta área na área pública'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_ro.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_ro.php
new file mode 100644 (file)
index 0000000..01ea5de
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=ro
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'Adaugă-mi drepturile de acces la această zonă',
+       'aucune_zone' => 'Aucune zone', # NEW
+       'auteurs' => 'autori',
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des accès .htaccess', # NEW
+       'bouton_creer_la_zone' => 'Creaţi noua zonă',
+
+       // C
+       'colonne_id' => 'Num',
+       'confirmer_ajouter_auteurs' => 'Êtes vous sûr de vouloir ajouter cet auteur à la zone ?', # NEW
+       'confirmer_retirer_auteur_zone' => 'Sunteţi sigur ca vreţi să scoateţi autorul din această zonă ?',
+       'confirmer_retirer_auteurs' => 'Sunteţi sigur că vreţi să retrageţi toţi autorii din această zonă ?',
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?', # NEW
+       'confirmer_supprimer_zone' => 'Sunteţi sigur că vreţi să suprimaţi această zonă ?',
+       'creer_zone' => 'Creaţi o zonă nouă',
+
+       // D
+       'descriptif' => 'Descriere',
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publi&eacute', # NEW
+
+       // I
+       'icone_menu_config' => 'Acces Restrâns',
+       'icone_supprimer_zone' => 'Ştergeţi această zonă',
+       'info_1_zone' => '1 zone', # NEW
+       'info_acces_restreint' => 'L\'accès à cette page est restreint. Identifiez vous pour y accéder', # NEW
+       'info_ajouter_auteur' => 'Adăugaţi acest autor',
+       'info_ajouter_auteurs' => 'Adăugaţi toţi autorii',
+       'info_ajouter_zones' => 'Adăugaţi toate zonele',
+       'info_aucun_acces' => 'Nici un acces autorizat',
+       'info_aucun_auteur' => 'Nici un autor în această zonă',
+       'info_aucune_zone' => 'Nici o zonă',
+       'info_auteurs_lies_zone' => 'Autorii care au acces la această zonă',
+       'info_lien_action_proteger' => 'Protéger l\'accès à cette rubrique.', # NEW
+       'info_nb_zones' => '@nb@ zones', # NEW
+       'info_page' => 'Această pagină vă permite să gestionaţi zonele de acces restrâns din cadrul site-ului dumneavostră',
+       'info_retirer_auteurs' => 'Retrageţi toţi autorii',
+       'info_retirer_zone' => 'Scoateţi din zonă',
+       'info_retirer_zones' => 'Scoateţi din toate zonele',
+       'info_rubrique_dans_zone' => 'Cette rubrique fait partie de la zone :', # NEW
+       'info_rubrique_dans_zones' => 'Cette rubrique fait partie des zones :', # NEW
+
+       // L
+       'label_creer_htaccess' => 'Accès aux document joints par leur URL', # NEW
+       'label_creer_htaccess_non' => 'autoriser la lecture', # NEW
+       'label_creer_htaccess_oui' => 'interdire la lecture', # NEW
+
+       // M
+       'modifier_zone' => 'Modificaţi zona',
+
+       // P
+       'page_zones_acces' => 'Acces Restrâns',
+       'par_titre' => 'După titlu',
+       'privee' => 'Privată',
+       'publique' => 'Publică',
+
+       // R
+       'rubriques' => 'rubrici',
+       'rubriques_zones_acces' => 'Rubricile zonei',
+
+       // S
+       'selectionner_une_zone' => 'Selecţionaţi o zonă',
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone', # NEW
+       'texte_creer_associer_zone' => 'Créer et associer une zone', # NEW
+       'titre' => 'Titlu',
+       'titre_ajouter_zone' => 'Regăsiţi zona',
+       'titre_boite_protegee_non' => 'Accès non protégé', # NEW
+       'titre_boite_protegee_oui' => 'Accès protégé', # NEW
+       'titre_cadre_modifier_zone' => 'Modificaţi o zonă',
+       'titre_page_config' => 'Configuration des accès', # NEW
+       'titre_table' => 'Toate zonele de acces',
+       'titre_zone_acces' => 'Zone d\'accès restreint', # NEW
+       'titre_zones_acces' => 'Zonele de acces restrâns',
+       'toutes' => 'Toate',
+
+       // V
+       'voir_toutes' => 'Vedeţi toate zonele',
+
+       // Z
+       'zone_numero' => 'ZONA NUMĂRUL :',
+       'zone_restreinte_espace_prive' => 'Restrângeţi accesul la această zonă în cadrul spaţiului privat',
+       'zone_restreinte_publique' => 'Restrângeţi accesul la această zonă în cadrul părţii publice'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_sk.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_sk.php
new file mode 100644 (file)
index 0000000..042b857
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=sk
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'Udeliť mi prístup do tejto oblasti',
+       'aucune_zone' => 'Žiadna oblasť',
+       'auteurs' => 'autori',
+
+       // B
+       'bouton_configurer_acces' => 'Nastavenie prístupu cez .htaccess',
+       'bouton_creer_la_zone' => 'Vytvoriť novú oblasť',
+
+       // C
+       'colonne_id' => 'Č.',
+       'confirmer_ajouter_auteurs' => 'Určite chcete pridať tohto autora do tejto oblasti?',
+       'confirmer_retirer_auteur_zone' => 'Určite chcete odstrániť tohto autora z tejto oblasti?',
+       'confirmer_retirer_auteurs' => 'Určite chcete odstrániť všetkých autorov z tejto oblasti?',
+       'confirmer_retirer_rubrique_zone' => 'Určite chcete odstrániť túto rubriku z tejto oblasti?',
+       'confirmer_supprimer_zone' => 'Určite chcete odstrániť túto oblasť?',
+       'creer_zone' => 'Vytvoriť novú oblasť',
+
+       // D
+       'descriptif' => 'Popis',
+
+       // E
+       'explication_creer_htaccess' => 'Táto možnosť bráni čítaniu pripojených súborov, ak text, ku ktorému sa pripoja, ešte nie je publikovaný',
+
+       // I
+       'icone_menu_config' => 'Obmedzený prístup',
+       'icone_supprimer_zone' => 'Odstrániť túto oblasť',
+       'info_1_zone' => '1 oblasť',
+       'info_acces_restreint' => 'Prístup na túto stránku je obmedzený. Prosím, prihláste sa, aby ste mohli pokračovať',
+       'info_ajouter_auteur' => 'Pridať tohto autora',
+       'info_ajouter_auteurs' => 'Pridať všetkých autorov',
+       'info_ajouter_zones' => 'Pridať všetky oblasti',
+       'info_aucun_acces' => 'Nepovolený prístup',
+       'info_aucun_auteur' => 'V tejto oblasti nie sú žiadni autori',
+       'info_aucune_zone' => 'Žiadne oblasti',
+       'info_auteurs_lies_zone' => 'Autori s prístupom do tejto oblasti',
+       'info_lien_action_proteger' => 'Obmedziť prístup do tejto oblasti',
+       'info_nb_zones' => '@nb@ oblastí',
+       'info_page' => 'Táto stránka vám umožňuje vytvoriť na vašej stránke oblasti s obmedzeným prístupom',
+       'info_retirer_auteurs' => 'Odstrániť všetkých autorov',
+       'info_retirer_zone' => 'Odstrániť z oblasti',
+       'info_retirer_zones' => 'Odstrániť zo všetkých oblastí',
+       'info_rubrique_dans_zone' => 'Táto rubrika sa nachádza v oblasti:',
+       'info_rubrique_dans_zones' => 'Táto rubrika sa nachádza v oblastiach:',
+
+       // L
+       'label_creer_htaccess' => 'Prístup k pripojeným súborom podľa ich URL',
+       'label_creer_htaccess_non' => 'Povoliť čítanie',
+       'label_creer_htaccess_oui' => 'Zakázať čítanie',
+
+       // M
+       'modifier_zone' => 'Upraviť oblasť',
+
+       // P
+       'page_zones_acces' => 'Obmedzený prístup',
+       'par_titre' => 'Podľa názvu',
+       'privee' => 'Súkromná',
+       'publique' => 'Verejná',
+
+       // R
+       'rubriques' => 'rubriky',
+       'rubriques_zones_acces' => 'Rubriky v tejto oblasti',
+
+       // S
+       'selectionner_une_zone' => 'Vyberte oblasť s obmedzeným prístupom',
+
+       // T
+       'texte_ajouter_zone' => 'Pridať oblasť',
+       'texte_creer_associer_zone' => 'Vytvoriť a prepojiť oblasť',
+       'titre' => 'Názov',
+       'titre_ajouter_zone' => 'Pridať oblasť s obmedzeným prístupom',
+       'titre_boite_protegee_non' => 'Neobmedzený prístup',
+       'titre_boite_protegee_oui' => 'Obmedzený prístup',
+       'titre_cadre_modifier_zone' => 'Upraviť oblasť',
+       'titre_page_config' => 'Nastaviť prístupové práva',
+       'titre_table' => 'Všetky oblasti s obmedzeným prístupom',
+       'titre_zone_acces' => 'Oblasť s obmedzeným prístupom',
+       'titre_zones_acces' => 'Oblasti s obmedzeným prístupom',
+       'toutes' => 'Všetky',
+
+       // V
+       'voir_toutes' => 'Zobraziť všetky oblasti',
+
+       // Z
+       'zone_numero' => 'OBLASŤ ČÍSLO:',
+       'zone_restreinte_espace_prive' => 'Obmedzte prístup do tejto oblasti v súkromnej zóne',
+       'zone_restreinte_publique' => 'Obmedzte prístup do tejto oblasti na verejne prístupnej stránke'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_sv.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_sv.php
new file mode 100644 (file)
index 0000000..5f75e82
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://www.spip.net/trad-lang/
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'M\'ajouter les droits d\'accès à cette zone', # NEW
+       'aucune_zone' => 'Aucune zone', # NEW
+       'auteurs' => 'auteurs', # NEW
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des acc&#232;s .htaccess', # NEW
+       'bouton_creer_la_zone' => 'Créer la nouvelle zone', # NEW
+
+       // C
+       'colonne_id' => 'Num', # NEW
+       'confirmer_ajouter_auteurs' => 'Êtes vous sûr de vouloir ajouter cet auteur à la zone ?', # NEW
+       'confirmer_retirer_auteur_zone' => 'Êtes vous sûr de vouloir retirer cet auteur de la zone ?', # NEW
+       'confirmer_retirer_auteurs' => 'Êtes vous sûr de vouloir retirer tous les auteurs de cette zone ?', # NEW
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?', # NEW
+       'confirmer_supprimer_zone' => 'Êtes vous sûr de vouloir supprimer cette zone ?', # NEW
+       'creer_zone' => 'Créer une nouvelle zone', # NEW
+
+       // D
+       'descriptif' => 'Descriptif', # NEW
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publi&eacute', # NEW
+
+       // I
+       'icone_menu_config' => 'Accès Restreint', # NEW
+       'icone_supprimer_zone' => 'Supprimer cette zone', # NEW
+       'info_1_zone' => '1 zone', # NEW
+       'info_acces_restreint' => 'L\'accès à cette page est restreint. Identifiez vous pour y accéder', # NEW
+       'info_ajouter_auteur' => 'Ajouter cet auteur', # NEW
+       'info_ajouter_auteurs' => 'Ajouter tous les auteurs', # NEW
+       'info_ajouter_zones' => 'Ajouter toutes les zones', # NEW
+       'info_aucun_acces' => 'Aucun accès autorisé', # NEW
+       'info_aucun_auteur' => 'Aucun auteur dans la zone', # NEW
+       'info_aucune_zone' => 'Aucune zone', # NEW
+       'info_auteurs_lies_zone' => 'Les auteurs ayant accès à cette zone', # NEW
+       'info_lien_action_proteger' => 'Prot&eacute;ger l\'acc&egrave;s &agrave; cette rubrique.', # NEW
+       'info_nb_zones' => '@nb@ zones', # NEW
+       'info_page' => 'Cette page vous permet de gérer les zones d\'accès restreint de votre site', # NEW
+       'info_retirer_auteurs' => 'Retirer tous les auteurs', # NEW
+       'info_retirer_zone' => 'Enlever de la zone', # NEW
+       'info_retirer_zones' => 'Enlever de toutes les zones', # NEW
+       'info_rubrique_dans_zone' => 'Cette rubrique fait partie de la zone :', # NEW
+       'info_rubrique_dans_zones' => 'Cette rubrique fait partie des zones :', # NEW
+
+       // L
+       'label_creer_htaccess' => 'Acc&egrave;s aux document joints par leur URL', # NEW
+       'label_creer_htaccess_non' => 'autoriser la lecture', # NEW
+       'label_creer_htaccess_oui' => 'interdire la lecture', # NEW
+
+       // M
+       'modifier_zone' => 'Modifier la zone', # NEW
+
+       // P
+       'page_zones_acces' => 'Accès Restreint', # NEW
+       'par_titre' => 'Par titre', # NEW
+       'privee' => 'Privat',
+       'publique' => 'Publik',
+
+       // R
+       'rubriques' => 'rubriques', # NEW
+       'rubriques_zones_acces' => 'Rubriques de la zone', # NEW
+
+       // S
+       'selectionner_une_zone' => 'Sélectionner une zone', # NEW
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone', # NEW
+       'texte_creer_associer_zone' => 'Créer et associer une zone', # NEW
+       'titre' => 'Titre', # NEW
+       'titre_ajouter_zone' => 'Rejoindre la zone', # NEW
+       'titre_boite_protegee_non' => 'Acc&egrave;s non prot&eacute;g&eacute;', # NEW
+       'titre_boite_protegee_oui' => 'Acc&egrave;s prot&eacute;g&eacute;', # NEW
+       'titre_cadre_modifier_zone' => 'Modifier une zone', # NEW
+       'titre_page_config' => 'Configuration des accès', # NEW
+       'titre_table' => 'Toutes les zones d\'accès', # NEW
+       'titre_zone_acces' => 'Zone d\'accès restreint', # NEW
+       'titre_zones_acces' => 'Zones d\'accès restreint', # NEW
+       'toutes' => 'Toutes', # NEW
+
+       // V
+       'voir_toutes' => 'Voir toutes les zones', # NEW
+
+       // Z
+       'zone_numero' => 'ZONE NUMÉRO :', # NEW
+       'zone_restreinte_espace_prive' => 'Restreindre l\'accès à cette zone dans l\'espace privé', # NEW
+       'zone_restreinte_publique' => 'Restreindre l\'accès à cette zone dans la partie publique' # NEW
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/accesrestreint_tr.php b/www/plugins/accesrestreint_3_5/lang/accesrestreint_tr.php
new file mode 100644 (file)
index 0000000..d6ad03b
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/accesrestreint?lang_cible=tr
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'ajouter_droits_auteur' => 'Bana, bu bölgeye erişim haklarını ver',
+       'aucune_zone' => 'لا توجد أية منطقة', # NEW
+       'auteurs' => 'yazar',
+
+       // B
+       'bouton_configurer_acces' => 'Configuration des accès .htaccess', # NEW
+       'bouton_creer_la_zone' => 'Yeni bölgeyi oluştur',
+
+       // C
+       'colonne_id' => 'Sayı',
+       'confirmer_ajouter_auteurs' => 'هل انت متأكد من إضافة هذا المؤلف الى المنطقة؟', # NEW
+       'confirmer_retirer_auteur_zone' => 'Bu yazarı bu bölümden (Zone) çekmek istediğinizden emin misiniz ?',
+       'confirmer_retirer_auteurs' => 'Tüm yazarları bu bölümden (Zone) çekmek istediğinizden emin misiniz ?',
+       'confirmer_retirer_rubrique_zone' => 'Êtes vous sûr de vouloir retirer cette rubrique de cette zone ?', # NEW
+       'confirmer_supprimer_zone' => 'Bu bölgeyi silmek istediğinizden emin misiniz ?',
+       'creer_zone' => 'Yeni bir bölge oluştur',
+
+       // D
+       'descriptif' => 'Tanımlayıcı',
+
+       // E
+       'explication_creer_htaccess' => 'Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n\'est pas publi&eacute', # NEW
+
+       // I
+       'icone_menu_config' => 'Kısıtlı Erişim',
+       'icone_supprimer_zone' => 'Bu bölgeyi sil',
+       'info_1_zone' => '1 zone', # NEW
+       'info_acces_restreint' => 'الوصول الى هذه الصفحة محصور. عليك التعريف بنفسك للوصول اليها', # NEW
+       'info_ajouter_auteur' => 'Bu yazarı ekle',
+       'info_ajouter_auteurs' => 'Tüm yazarları ekle',
+       'info_ajouter_zones' => 'Tüm bölgeleri ekle',
+       'info_aucun_acces' => 'Hiçbir erişime izin yok',
+       'info_aucun_auteur' => 'Bölümde (Zone) hiç yazar yok',
+       'info_aucune_zone' => 'Hiç bölüm (Zone) yok',
+       'info_auteurs_lies_zone' => 'Bu bölgeye erişim hakkı olan yazarlar',
+       'info_lien_action_proteger' => 'Protéger l\'accès à cette rubrique.', # NEW
+       'info_nb_zones' => '@nb@ zones', # NEW
+       'info_page' => 'Bu sayfa, sitenizin kısıtlanmış bölgelerini yönetmenizi sağlar',
+       'info_retirer_auteurs' => 'Tüm yazarları sil',
+       'info_retirer_zone' => 'Bölgeden kaldır',
+       'info_retirer_zones' => 'Tüm bölgelerden kaldır',
+       'info_rubrique_dans_zone' => 'Cette rubrique fait partie de la zone :', # NEW
+       'info_rubrique_dans_zones' => 'Cette rubrique fait partie des zones :', # NEW
+
+       // L
+       'label_creer_htaccess' => 'Accès aux document joints par leur URL', # NEW
+       'label_creer_htaccess_non' => 'autoriser la lecture', # NEW
+       'label_creer_htaccess_oui' => 'interdire la lecture', # NEW
+
+       // M
+       'modifier_zone' => 'Bölümü (Zone) değiştir',
+
+       // P
+       'page_zones_acces' => 'Kısıtlı Erişim',
+       'par_titre' => 'Başlığa göre',
+       'privee' => 'Özel',
+       'publique' => 'Kamusal',
+
+       // R
+       'rubriques' => 'başlıklar',
+       'rubriques_zones_acces' => 'Bölge başlıkları',
+
+       // S
+       'selectionner_une_zone' => 'Bir bölge seç',
+
+       // T
+       'texte_ajouter_zone' => 'Ajouter une zone', # NEW
+       'texte_creer_associer_zone' => 'Créer et associer une zone', # NEW
+       'titre' => 'Başlık',
+       'titre_ajouter_zone' => 'Bölgeye gir',
+       'titre_boite_protegee_non' => 'Accès non protégé', # NEW
+       'titre_boite_protegee_oui' => 'Accès protégé', # NEW
+       'titre_cadre_modifier_zone' => 'Bir bölümü (Zone) değiştir',
+       'titre_page_config' => 'إعداد الدخول', # NEW
+       'titre_table' => 'Tüm erişim bölgeleri',
+       'titre_zone_acces' => 'Zone d\'accès restreint', # NEW
+       'titre_zones_acces' => 'Kısıtlı erişim bölgeleri',
+       'toutes' => 'Hepsi',
+
+       // V
+       'voir_toutes' => 'Tüm bölgeleri göster',
+
+       // Z
+       'zone_numero' => 'ZONE No :',
+       'zone_restreinte_espace_prive' => 'Özel alanda bu bölgeye erişimi kısıtla',
+       'zone_restreinte_publique' => 'Kamusal alanda bu bölgeye erişimi kısıtla'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint.xml b/www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint.xml
new file mode 100644 (file)
index 0000000..be1bc7e
--- /dev/null
@@ -0,0 +1,8 @@
+<traduction module="paquet-accesrestreint" gestionnaire="salvatore" url="http://trad.spip.net" source="svn://zone.spip.org/spip-zone/_plugins_/acces_restreint/trunk/lang/" reference="fr">
+       <langue code="de" />
+       <langue code="en" url="http://trad.spip.net/tradlang_module/paquet-accesrestreint?lang_cible=en">
+               <traducteur nom="kent1" lien="http://trad.spip.net/auteur/kent1" />
+       </langue>
+       <langue code="es" />
+       <langue code="fr" />
+</traduction>
diff --git a/www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint_de.php b/www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint_de.php
new file mode 100644 (file)
index 0000000..87f7185
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-accesrestreint?lang_cible=de
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'accesrestreint_description' => '_ Jeder Bereich enthält Rubriken.
+_ Einzelnen Autoren können Zugangsrechte für Bereiche zugeordnet werden.
+_ ALle Standardschleifen (Abfragen) von SPIP werden überladen, und um die Überprüfung der Rechte des jeweiligen Sitebesuchers ergänzt.',
+       'accesrestreint_nom' => 'Zugangskontrolle',
+       'accesrestreint_slogan' => 'Verwaltung von Bereichen mit Zugangskontrolle'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint_en.php b/www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint_en.php
new file mode 100644 (file)
index 0000000..6c375b5
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-accesrestreint?lang_cible=en
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'accesrestreint_description' => '_ Each area contains sections.
+_ Authors can be associated with these areas to gain access to them.
+_ All SPIP\'s loops are loaded with the necessary tools to filter the results according to the visitors\' access priviliges.',
+       'accesrestreint_nom' => 'Restricted Access',
+       'accesrestreint_slogan' => 'Management of areas with restricted access'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint_es.php b/www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint_es.php
new file mode 100644 (file)
index 0000000..7a4b154
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// extrait automatiquement de http://trad.spip.net/tradlang_module/paquet-accesrestreint?lang_cible=es
+// ** ne pas modifier le fichier **
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'accesrestreint_description' => '_ Cada zona contiene secciones.
+_ Los autores podrán ser asociados a ciertas zonas restringidas para tener derechos de acceso a ellas.
+_ Todos los bucles nativos de SPIP quedan modificados para filtrar los resultados en función de los derechos del visitante.',
+       'accesrestreint_nom' => 'Acceso restringido',
+       'accesrestreint_slogan' => 'Gestión de zonas de acceso restringido'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint_fr.php b/www/plugins/accesrestreint_3_5/lang/paquet-accesrestreint_fr.php
new file mode 100644 (file)
index 0000000..4ebed98
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+// Fichier source, a modifier dans svn://zone.spip.org/spip-zone/_plugins_/acces_restreint/trunk/lang/
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+$GLOBALS[$GLOBALS['idx_lang']] = array(
+
+       // A
+       'accesrestreint_description' => '_ Chaque zone contient des rubriques.
+
+_ Les auteurs peuvent etre associés à des zones pour avoir le droit d\'y accéder.
+
+_ Toutes les boucles natives de SPIP sont surchargées pour en filtrer les résultats en fonction des droits du visiteur.',
+       'accesrestreint_nom' => 'Accès Restreint',
+       'accesrestreint_slogan' => 'Gestion de zones d\'accès restreint'
+);
+
+?>
diff --git a/www/plugins/accesrestreint_3_5/paquet.xml b/www/plugins/accesrestreint_3_5/paquet.xml
new file mode 100644 (file)
index 0000000..0d1afd6
--- /dev/null
@@ -0,0 +1,37 @@
+<paquet
+       prefix="accesrestreint"
+       categorie="auteur"
+       version="3.8.5"
+       etat="stable"
+       compatibilite="[3.0.0;3.0.*]"
+       logo="prive/themes/spip/images/zone-32.png"
+       schema="0.4.2"
+       documentation="http://www.spip-contrib.net/Acces-Restreint-3-0"
+>      
+
+       <nom>Acces Restreint</nom>
+       <!-- Gestion de zones d'acces restreint -->
+
+       <auteur lien="http://www.yterium.net" mail="cedric.morin@yterium.com">Cedric Morin</auteur>
+
+       <copyright>2007-2008</copyright>
+
+       <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL</licence>
+
+       <traduire module="accesrestreint" reference="fr" gestionnaire="salvatore" />
+
+       <pipeline nom="declarer_tables_interfaces" inclure="base/accesrestreint.php" />
+       <pipeline nom="declarer_tables_objets_sql" inclure="base/accesrestreint.php" />
+       <pipeline nom="declarer_tables_auxiliaires" inclure="base/accesrestreint.php" />
+       <pipeline nom="pre_boucle" inclure="public/accesrestreint.php" />
+       <pipeline nom="rechercher_liste_des_champs" inclure="public/accesrestreint.php" />
+       <pipeline nom="accesrestreint_liste_zones_autorisees" action="liste_zones_autorisees" inclure="inc/accesrestreint.php" />
+       <pipeline nom="affiche_milieu" inclure="accesrestreint_pipelines.php" />
+       <pipeline nom="affiche_gauche" inclure="accesrestreint_pipelines.php" />
+       <pipeline nom="page_indisponible" inclure="accesrestreint_pipelines.php" />
+       <pipeline nom="autoriser" inclure="inc/accesrestreint_autoriser.php" />
+
+       <menu nom="zones" titre="accesrestreint:icone_menu_config" parent="menu_publication" icone="images/zone-16.png" />
+
+       <utilise nom="medias" compatibilite="[;]" />
+</paquet>
diff --git a/www/plugins/accesrestreint_3_5/prive/objets/liste/zones_associer.html b/www/plugins/accesrestreint_3_5/prive/objets/liste/zones_associer.html
new file mode 100644 (file)
index 0000000..0a0f7e1
--- /dev/null
@@ -0,0 +1,59 @@
+[(#SET{defaut_tri,#ARRAY{
+       titre,1,
+}})
+]
+#SET{exclus,#ENV{objet_source}|lister_objets_lies{#ENV{objet},#ENV{id_objet},#ENV{_objet_lien}}}
+#SET{debut,#ENV{debutzonea,#EVAL{_request("debutzonea");}}}
+<input type="hidden" name="debutzonea" value="#GET{debut}" />
+<B_liste_aut>
+[(#REM) En cas de pagination indirecte @32, il faut refaire le set car la boucle
+a mis a jour la valeur avec la page reelle]
+#SET{debut,#ENV{debutzonea,#EVAL{_request("debutzonea");}}}
+#ANCRE_PAGINATION
+[<h3><:info_resultat_recherche:> &laquo;(#ENV{recherche})&raquo;</h3>]
+<div class="liste-objets liste-objets-associer zones">
+<table class='spip liste'>
+[<caption><span class="caption"><strong>(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{accesrestreint:info_1_zone,accesrestreint:info_nb_zones}})</strong>
+<span class="recherche">
+       <label for="recherche-#ENV{id}"><:info_rechercher_02:></label>
+       <input type="text" class="recherche" name="recherche" id="recherche-#ENV{id}" value="#ENV{recherche}" />
+       <input type="submit" class="tout_voir" name="tout_voir" value="<:info_tout_afficher:>" />
+</span>
+</span>
+</caption>]
+       <thead>
+               <tr class='first_row'>
+                       <th class='picto' scope='col'></th>
+                       <th class='titre' scope='col'>[(#TRI{titre,<:info_titre:>,ajax})]</th>
+                       <th class='publique' scope='col'><:accesrestreint:publique:></th>
+                       <th class='privee' scope='col'><:accesrestreint:privee:></th>
+                       <th class='action' scope='col'>&nbsp;</th>
+               </tr>
+       </thead>
+       <tbody>
+       <BOUCLE_liste_aut(ZONES){!id_zone IN #GET{exclus}}{tout}{where?}{recherche?}{statut?}{tri #ENV{par,multi titre},#GET{defaut_tri}}{pagination #ENV{nb,10} zonea}>
+               <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})][ (#EXPOSE|unique)]">
+                       <td class='picto'>[(#CHEMIN_IMAGE{zone-16.png}|balise_img)]</td>
+                       <td class='titre principale'><a href="[(#ID_ZONE|generer_url_entite{zone})]"
+                                                                                                                                                                                                                                                                                                               title="<:info_numero_abbreviation|attribut_html:> #ID_ZONE">[(#RANG). ]#TITRE</a></td>
+                       <td class='publique secondaire'>[[(#CHEMIN_IMAGE{restreint-16.png}|balise_img{<:accesrestreint:publique:>})](#PUBLIQUE|=={oui}|oui)]</td>
+                       <td class='privee secondaire'>[[(#CHEMIN_IMAGE{restreint-16.png}|balise_img{<:accesrestreint:publique:>})](#PRIVEE|=={oui}|oui)]</td>
+                       <td class='action'><button class="button" name="ajouter_lien[zone-#ID_ZONE-#OBJET-#ID_OBJET]" value="+"><:accesrestreint:titre_ajouter_zone:> [(#CHEMIN_IMAGE{ajouter-12.png}|balise_img{'+'})]</button></td>
+               </tr>
+       </BOUCLE_liste_aut>
+       </tbody>
+</table>
+[<p class='pagination'>(#PAGINATION{prive})</p>]
+</div>
+</B_liste_aut>
+[(#ENV{recherche}|oui)
+<div class="liste-objets liste-objets-associer zones caption-wrap">
+<span class="caption"><strong>[(#VAL{accesrestreint:info_recherche_auteur_zero}|_T{#ARRAY{cherche_auteur,#ENV{recherche}}})]</strong>
+<span class="recherche">
+       <label for="recherche-#ENV{id}"><:info_rechercher_02:></label>
+       <input type="text" class="recherche" name="recherche" id="recherche-#ENV{id}" value="#ENV{recherche}" />
+       <input type="submit" class="tout_voir" name="tout_voir" value="<:info_tout_afficher:>" />
+</span>
+</span>
+</div>
+]<//B_liste_aut>
diff --git a/www/plugins/accesrestreint_3_5/prive/objets/liste/zones_lies.html b/www/plugins/accesrestreint_3_5/prive/objets/liste/zones_lies.html
new file mode 100644 (file)
index 0000000..ed297ed
--- /dev/null
@@ -0,0 +1,44 @@
+[(#SET{defaut_tri,#ARRAY{
+       type,1,
+       num titre,1,
+       titre,1,
+       id_zone,1
+}})
+]
+#SET{selection,#ENV{objet_source}|lister_objets_lies{#ENV{objet},#ENV{id_objet},#ENV{_objet_lien}}}
+<input type="hidden" name="debutzonel" value='#ENV{debutzonel,#EVAL{_request("debutzonel");}}' />
+<B_liste_zone>
+#ANCRE_PAGINATION
+<div class="liste-objets liste-objets-lies zones">
+<table class='spip liste'>
+[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{accesrestreint:info_1_zone,accesrestreint:info_nb_zones}})</strong></caption>]
+       <thead>
+               <tr class='first_row'>
+                       <th class='picto' scope='col'></th>
+                       <th class='titre' scope='col'>[(#TRI{titre,<:info_titre:>,ajax})]</th>
+                       <th class='publique' scope='col'><:accesrestreint:publique:></th>
+                       <th class='privee' scope='col'><:accesrestreint:privee:></th>
+                       <th class='action' scope='col'>&nbsp;</th>
+               </tr>
+       </thead>
+       <tbody>
+       <BOUCLE_liste_zone(ZONES){id_zone IN #GET{selection}}{where?}{tri #ENV{par,titre},#GET{defaut_tri}}{par multi titre}{pagination #ENV{nb,10} zonel}>
+               <tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})][(#ID_ZONE|=={#ENV{id_lien_ajoute}}|oui)append]">
+                       <td class='picto'>[(#CHEMIN_IMAGE{zone-16.png}|balise_img)]</td>
+                       <td class='titre principale'><a href="[(#ID_ZONE|generer_url_entite{zone})]"
+                                                                                                                                                                                                                                                                                                               title="<:info_numero_abbreviation|attribut_html:> #ID_ZONE">[(#RANG). ]#TITRE</a></td>
+                       <td class='publique secondaire'>[[(#CHEMIN_IMAGE{restreint-16.png}|balise_img{<:accesrestreint:publique:>})](#PUBLIQUE|=={oui}|oui)]</td>
+                       <td class='privee secondaire'>[[(#CHEMIN_IMAGE{restreint-16.png}|balise_img{<:accesrestreint:publique:>})](#PRIVEE|=={oui}|oui)]</td>
+                       <td class='action'><button class="button link delete" name="supprimer_lien[zone-#ID_ZONE-#OBJET-#ID_OBJET]" value="X"><:accesrestreint:info_retirer_zone:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})]</button></td>
+               </tr>
+       </BOUCLE_liste_zone>
+       </tbody>
+</table>
+[<p class='pagination'>(#PAGINATION{prive})</p>]
+[(#GRAND_TOTAL|>{3}|oui)<div class="action"><button class="button link" name="supprimer_lien#EVAL{chr(91)}zone-*-#OBJET-#ID_OBJET#EVAL{chr(93)}" value="X"><:accesrestreint:info_retirer_zones:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})]</button></div>]
+</div>
+</B_liste_zone>
+<div class="liste-objets liste-objets-lies zones caption-wrap">
+<strong class="caption">[(#ENV*{titre,<:accesrestreint:info_aucune_zone:>}) ]#AIDER{artzones}</strong>
+</div>
+<//B_liste_zone>
diff --git a/www/plugins/accesrestreint_3_5/prive/squelettes/contenu/configurer_accesrestreint.html b/www/plugins/accesrestreint_3_5/prive/squelettes/contenu/configurer_accesrestreint.html
new file mode 100644 (file)
index 0000000..a306fd0
--- /dev/null
@@ -0,0 +1,6 @@
+[(#AUTORISER{configurer,accesrestreint}|sinon_interdire_acces)]
+
+<h1 class="grostitre"><:accesrestreint:titre_page_config:></h1>
+<div class="ajax">
+       #FORMULAIRE_CONFIGURER_ACCESRESTREINT
+</div>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/prive/squelettes/contenu/zone_edit.html b/www/plugins/accesrestreint_3_5/prive/squelettes/contenu/zone_edit.html
new file mode 100644 (file)
index 0000000..385ca13
--- /dev/null
@@ -0,0 +1,19 @@
+[(#ID_ZONE|oui)
+       [(#AUTORISER{modifier,zone,#ID_ZONE}|sinon_interdire_acces)]]
+[(#ID_ZONE|non)
+       [(#AUTORISER{creer,zone,#ID_ZONE,'','',#ARRAY{associer_objet,#ENV{associer_objet}}}|sinon_interdire_acces)]]
+
+#SET{retour,#ENV{redirect}|sinon{#ENV{id_zone}|?{#URL_ECRIRE{zones,id_zone=#ID_ZONE},#URL_ECRIRE{zones}}}}
+<div class='cadre-formulaire-editer'>
+       <div class="entete-formulaire">
+               [(#GET{retour}|icone_verticale{<:icone_retour:>,zone,'',left retour[(#ENV{retourajax,''}|oui)ajax preload]})]
+               [[(#VAL{zone}|objet_info{texte_modifier}|_T)]
+               <h1>(#ENV{titre,#INFO_TITRE{zone,#ID_ZONE}|sinon{<:info_sans_titre:>}})</h1>]
+       </div>
+       <div class="ajax">
+               #FORMULAIRE_EDITER_LIENS{zone,#ID_ZONE,auteurs,' '}
+       </div>
+
+       #FORMULAIRE_EDITER_ZONE{#ENV{id_zone,oui},#GET{retour},#ENV{associer_objet}}
+</div>
+
diff --git a/www/plugins/accesrestreint_3_5/prive/squelettes/contenu/zones.html b/www/plugins/accesrestreint_3_5/prive/squelettes/contenu/zones.html
new file mode 100644 (file)
index 0000000..abc1762
--- /dev/null
@@ -0,0 +1,7 @@
+<h1 class="grostitre"><:accesrestreint:titre_zones_acces:></h1>\r
+[(#AUTORISER{modifier,zone})\r
+       [(#INCLURE{fond=prive/squelettes/inclure/acces_restreint, env, ajax})]\r
+       \r
+       [(#URL_ECRIRE{zone_edit,new=oui}|parametre_url{redirect,#SELF}|icone_verticale{<:accesrestreint:creer_zone:>,zone-24.png,new,right})]\r
+\r
+]\r
diff --git a/www/plugins/accesrestreint_3_5/prive/squelettes/inclure/acces_auteur.html b/www/plugins/accesrestreint_3_5/prive/squelettes/inclure/acces_auteur.html
new file mode 100644 (file)
index 0000000..eb6c10b
--- /dev/null
@@ -0,0 +1,3 @@
+<div class="ajax">
+       #FORMULAIRE_EDITER_LIENS{zones,auteur,#ID_AUTEUR,' '}
+</div>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/prive/squelettes/inclure/acces_restreint.html b/www/plugins/accesrestreint_3_5/prive/squelettes/inclure/acces_restreint.html
new file mode 100644 (file)
index 0000000..66ef1d4
--- /dev/null
@@ -0,0 +1,39 @@
+[(#REM)
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+]#SET{self,#SELF|parametre_url{debut_zones|tri,''}}
+#FORMULAIRE_RECHERCHE_ECRIRE{#GET{self},ajax}
+<div class="nettoyeur"></div>
+<B_zones>
+<p class='pagination'>[(#PAGINATION) | ]<a href='[(#GET{self}|parametre_url{tri,titre})]'><:accesrestreint:par_titre:></a> 
+[(#ENV{publique}|non)| <a href='[(#GET{self}|parametre_url{publique,oui})]'><:accesrestreint:publique:></a>]
+[(#ENV{publique}|ou{#ENV{privee}}|oui)| <a href='[(#GET{self}|parametre_url{publique|privee,''})]'><:accesrestreint:toutes:></a>]
+[(#ENV{privee}|non)| <a href='[(#GET{self}|parametre_url{privee,oui})]'><:accesrestreint:privee:></a>]
+</p>
+
+<ul class='liste-items zones'>
+<BOUCLE_zones(ZONES){par #ENV{tri,id_zone}}{publique==#ENV{publique,.*}}{privee==#ENV{privee,.*}}{pagination 10}{recherche ?}>
+<li class='item zone[ (#ID_ZONE|accesrestreint_acces_zone|?{ok,interdit})][ (#EXPOSE)]'><h3>#TITRE</h3>
+<span class='contenu'>[(#ID_ZONE|accesrestreint_liste_contenu_zone_rub|count) <:accesrestreint:rubriques:>, ]
+[(#ID_ZONE|accesrestreint_liste_contenu_zone_auteur|count) <:accesrestreint:auteurs:>]
+</span>
+<span class='descriptif'>#DESCRIPTIF</span>
+<span class='quoi'>[(#PUBLIQUE|=={oui}|oui)<:accesrestreint:publique:>[, (#PRIVEE|=={oui}|oui)]][ (#PRIVEE|=={oui}|oui)<:accesrestreint:privee:>]</span>
+<div class='actions'>
+       [(#AUTORISER{supprimer,zone,#ID_ZONE})<span class='lien_supprimer'>[(#BOUTON_ACTION{<:accesrestreint:icone_supprimer_zone:>,#URL_ACTION_AUTEUR{supprimer_zone,#ID_ZONE,#SELF},ajax,<:accesrestreint:confirmer_supprimer_zone:>})]</span>]
+       [| (#AUTORISER{modifier,zone,#ID_ZONE}) <span class='lien_modifier'><a href='[(#URL_ECRIRE{zone_edit,id_zone=#ID_ZONE}|parametre_url{redirect,#SELF})]'><:bouton_modifier:></a></span>]
+</div>
+</li>
+</BOUCLE_zones>
+</ul>
+</B_zones>
+<p class='pagination'>[(#ENV{publique}|non)| <a href='[(#GET{self}|parametre_url{publique,oui})]'><:accesrestreint:publique:></a>]
+[(#ENV{publique}|ou{#ENV{privee}}|oui)| <a href='[(#GET{self}|parametre_url{publique|privee,''})]'><:accesrestreint:toutes:></a>]
+[(#ENV{privee}|non)| <a href='[(#GET{self}|parametre_url{privee,oui})]'><:accesrestreint:privee:></a>]
+</p>
+<h3><:accesrestreint:info_aucune_zone:></h3>
+
+<//B_zones>
diff --git a/www/plugins/accesrestreint_3_5/prive/squelettes/inclure/acces_rubrique.html b/www/plugins/accesrestreint_3_5/prive/squelettes/inclure/acces_rubrique.html
new file mode 100644 (file)
index 0000000..0bf3648
--- /dev/null
@@ -0,0 +1,32 @@
+[(#REM)\r
+       Boîte d'informations.\r
+       Sur une zone protégée : affiche le N° de la zone avec un lien pour y accéder.\r
+       Sur une rubrique non protégée : affiche un bouton pour la protéger.\r
+\r
+]\r
+<B_restreint>\r
+       [(#BOITE_OUVRIR{[<:accesrestreint:titre_boite_protegee_oui:>(#CHEMIN_IMAGE{zone-24.png}|balise_img{'',cadre-icone})],simple})]\r
+       [<p>(#GRAND_TOTAL|singulier_ou_pluriel{'accesrestreint:info_rubrique_dans_zone','accesrestreint:info_rubrique_dans_zones'})</p>]\r
+       <ul class="liste-items">\r
+<BOUCLE_restreint(ZONES){id_zone IN (#ENV{id_rubrique}|accesrestreint_zones_rubrique_et_hierarchie)}>\r
+       <li class="item">\r
+               <a href="[(#URL_ECRIRE{zone_edit,id_zone=#ID_ZONE}|parametre_url{redirect,#SELF})]">\r
+                       n&deg; #ID_ZONE : #TITRE\r
+               </a>\r
+               [(#BOUTON_ACTION{#CHEMIN_IMAGE{supprimer-12.png}|balise_img{<:accesrestreint:info_retirer_zone:>},[(#URL_ACTION_AUTEUR{retirer_zone,[(#ID_ZONE)-rubrique-#ID_RUBRIQUE],#SELF})],ajax,<:accesrestreint:confirmer_retirer_rubrique_zone:>})]\r
+       </li>\r
+</BOUCLE_restreint>\r
+       </ul>\r
+       #BOITE_FERMER\r
+</B_restreint>\r
+       [(#BOITE_OUVRIR{[<:accesrestreint:titre_boite_protegee_non:>(#CHEMIN_IMAGE{cadenasouvert-24.png}|balise_img{'',cadre-icone})],simple})]\r
+               <p>\r
+                       <a href="[(#URL_ECRIRE{zone_edit,new=oui}\r
+                               |parametre_url{rubriques,#ENV{id_rubrique}}\r
+                               |parametre_url{redirect,#SELF})]">\r
+                               <:accesrestreint:info_lien_action_proteger:>\r
+                       </a>\r
+               </p>\r
+       #BOITE_FERMER\r
+<//B_restreint>\r
+\r
diff --git a/www/plugins/accesrestreint_3_5/prive/squelettes/navigation/configurer_accesrestreint.html b/www/plugins/accesrestreint_3_5/prive/squelettes/navigation/configurer_accesrestreint.html
new file mode 100644 (file)
index 0000000..19098ec
--- /dev/null
@@ -0,0 +1,3 @@
+#BOITE_OUVRIR{'','raccourcis'}
+               [(#URL_ECRIRE{zones}|icone_horizontale{<:accesrestreint:voir_toutes:>,zone-24,'',left})]
+#BOITE_FERMER
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/prive/squelettes/navigation/zones.html b/www/plugins/accesrestreint_3_5/prive/squelettes/navigation/zones.html
new file mode 100644 (file)
index 0000000..35303f5
--- /dev/null
@@ -0,0 +1,9 @@
+#BOITE_OUVRIR{'',info}\r
+       <p><:accesrestreint:info_page:></p>\r
+#BOITE_FERMER\r
+\r
+[(#AUTORISER{webmestre})\r
+       #BOITE_OUVRIR{'','raccourcis'}\r
+                       [(#URL_ECRIRE{configurer_accesrestreint}|icone_horizontale{<:accesrestreint:bouton_configurer_acces:>,zone-24,'',left})]\r
+       #BOITE_FERMER\r
+]\r
diff --git a/www/plugins/accesrestreint_3_5/prive/style_prive_plugin_accesrestreint.html b/www/plugins/accesrestreint_3_5/prive/style_prive_plugin_accesrestreint.html
new file mode 100644 (file)
index 0000000..995246e
--- /dev/null
@@ -0,0 +1,37 @@
+#CACHE{0}
+[(#REM)
+
+       Ce squelette definit les styles de l'espace prive
+
+       Note: l'entete "Vary:" sert a repousser l'entete par
+       defaut "Vary: Cookie,Accept-Encoding", qui est (un peu)
+       genant en cas de "rotation du cookie de session" apres
+       un changement d'IP (effet de clignotement).
+
+       ATTENTION: il faut absolument le charset sinon Firefox croit que
+       c'est du text/html !
+       <style>
+]
+#CACHE{3600*100,cache-client}
+#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15}
+#HTTP_HEADER{Vary: Accept-Encoding}
+
+
+.liste-items.zones li.item > .actions {display:block;float:#GET{right};}
+li.item.zone p.actions {float:none;text-align:#GET{right};margin:0;}
+
+li.item.zone .quoi {display:block;padding-left:20px;background:url(#CHEMIN_IMAGE{restreint-16.png}) center left no-repeat;}
+
+.formulaire_spip ul.hierarchie {margin:0;padding:0;}
+.formulaire_spip ul.hierarchie ul {margin:0;padding:0;}
+.formulaire_spip ul.hierarchie li {margin:0;margin-#ENV{left}:15px;padding:0;}
+.formulaire_spip ul.hierarchie li li {border-#ENV{left}:1px solid #ddd;}
+.formulaire_spip ul.hierarchie li.checked {background:[#(#ENV{claire}|couleur_eclaircir)];}
+.formulaire_spip ul.hierarchie li.checked > .choix label {font-weight:bold;}
+
+.liste-items.zones li.item.ok {background-image:url(#CHEMIN_IMAGE{acces-ok-24.png});background-repeat:no-repeat;background-position:top right;}
+.liste-items.zones li.item.interdit {background-image:url(#CHEMIN_IMAGE{acces-interdit-24.png});background-repeat:no-repeat;background-position:top right;}
+
+.zone_edit .formulaire_editer_liens {margin-bottom: 0;}
+.formulaire_editer_liens .liste-objets.zones .publique, .formulaire_editer_liens .liste-objets.zones .privee {width:4em;text-align: center;}
+.formulaire_editer_liens .liste-objets.zones tr > .action {width:140px;}
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/prive/themes/spip/images/acces-interdit-24.png b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/acces-interdit-24.png
new file mode 100644 (file)
index 0000000..2b38609
Binary files /dev/null and b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/acces-interdit-24.png differ
diff --git a/www/plugins/accesrestreint_3_5/prive/themes/spip/images/acces-ok-24.png b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/acces-ok-24.png
new file mode 100644 (file)
index 0000000..6ded5e4
Binary files /dev/null and b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/acces-ok-24.png differ
diff --git a/www/plugins/accesrestreint_3_5/prive/themes/spip/images/cadenasouvert-16.png b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/cadenasouvert-16.png
new file mode 100644 (file)
index 0000000..0ee5b04
Binary files /dev/null and b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/cadenasouvert-16.png differ
diff --git a/www/plugins/accesrestreint_3_5/prive/themes/spip/images/cadenasouvert-24.png b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/cadenasouvert-24.png
new file mode 100644 (file)
index 0000000..e573158
Binary files /dev/null and b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/cadenasouvert-24.png differ
diff --git a/www/plugins/accesrestreint_3_5/prive/themes/spip/images/cadenasouvert-32.png b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/cadenasouvert-32.png
new file mode 100644 (file)
index 0000000..7bac7d2
Binary files /dev/null and b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/cadenasouvert-32.png differ
diff --git a/www/plugins/accesrestreint_3_5/prive/themes/spip/images/croix.png b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/croix.png
new file mode 100644 (file)
index 0000000..3769c65
Binary files /dev/null and b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/croix.png differ
diff --git a/www/plugins/accesrestreint_3_5/prive/themes/spip/images/list-add-12.png b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/list-add-12.png
new file mode 100644 (file)
index 0000000..59aaa7f
Binary files /dev/null and b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/list-add-12.png differ
diff --git a/www/plugins/accesrestreint_3_5/prive/themes/spip/images/list-add-16.png b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/list-add-16.png
new file mode 100644 (file)
index 0000000..1aa7f09
Binary files /dev/null and b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/list-add-16.png differ
diff --git a/www/plugins/accesrestreint_3_5/prive/themes/spip/images/restreint-16.png b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/restreint-16.png
new file mode 100644 (file)
index 0000000..0ccf05a
Binary files /dev/null and b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/restreint-16.png differ
diff --git a/www/plugins/accesrestreint_3_5/prive/themes/spip/images/zone-16.png b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/zone-16.png
new file mode 100644 (file)
index 0000000..85ec5b1
Binary files /dev/null and b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/zone-16.png differ
diff --git a/www/plugins/accesrestreint_3_5/prive/themes/spip/images/zone-24.png b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/zone-24.png
new file mode 100644 (file)
index 0000000..09a4af8
Binary files /dev/null and b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/zone-24.png differ
diff --git a/www/plugins/accesrestreint_3_5/prive/themes/spip/images/zone-32.png b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/zone-32.png
new file mode 100644 (file)
index 0000000..6149638
Binary files /dev/null and b/www/plugins/accesrestreint_3_5/prive/themes/spip/images/zone-32.png differ
diff --git a/www/plugins/accesrestreint_3_5/public/accesrestreint.php b/www/plugins/accesrestreint_3_5/public/accesrestreint.php
new file mode 100644 (file)
index 0000000..cd4da16
--- /dev/null
@@ -0,0 +1,173 @@
+<?php
+/**
+ * Plugin Acces Restreint 3.0 pour Spip 2.0
+ * Licence GPL (c) 2006-2008 Cedric Morin
+ *
+ */
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+/**
+ * Critere {tout_voir} permet de deverouiller l'acces restreint sur une boucle
+ *
+ * @param unknown_type $idb
+ * @param unknown_type $boucles
+ * @param unknown_type $crit
+ */
+if (!function_exists('critere_tout_voir_dist')){
+function critere_tout_voir_dist($idb, &$boucles, $crit) {
+       $boucle = &$boucles[$idb];
+       $boucle->modificateur['tout_voir'] = true;
+}
+}
+function accesrestreint_pre_boucle(&$boucle){
+       if (!isset($boucle->modificateur['tout_voir'])){
+               $securise = false;
+               switch ($boucle->type_requete){
+                       case 'hierarchie':
+                       case 'articles':
+                       case 'breves':
+                       case 'syndication':
+                               $t = $boucle->id_table . '.id_rubrique';
+                               $boucle->select = array_merge($boucle->select, array($t)); // pour postgres
+                               $boucle->where[] = accesrestreint_rubriques_accessibles_where($t);
+                               $securise = true;
+                               break;
+                       case 'evenements':
+                       case 'petitions':
+                               $t = $boucle->id_table . '.id_article';
+                               $boucle->select = array_merge($boucle->select, array($t));
+                               $boucle->where[] = accesrestreint_articles_accessibles_where($t);
+                               $securise = true;
+                               break;
+                       case 'signatures':
+                               // ajouter une jointure sur petitions si besoin
+                               $t = array_search("spip_petitions", $boucle->from);
+                               if (!$t) $t = trouver_jointure_champ("id_petition", $boucle);
+                               $t = $t . '.id_article';
+                               $boucle->select = array_merge($boucle->select, array($t));
+                               $boucle->where[] = accesrestreint_articles_accessibles_where($t);
+                               $securise = true;
+                               break;
+                       default :
+                               if (function_exists($accessible_where = "accesrestreint_".$boucle->type_requete."_accessibles_where")){
+                                       $t = $boucle->id_table . '.' . $boucle->primary;
+                                       $boucle->select = array_merge($boucle->select, array($t));
+                                       $boucle->where[] = $accessible_where($t);
+                                       $securise = true;
+                               }
+                               break;
+               }
+               if ($securise){
+                       $boucle->hash .= "if (!defined('_DIR_PLUGIN_ACCESRESTREINT')){
+                       \$link_empty = generer_url_ecrire('admin_vider'); \$link_plugin = generer_url_ecrire('admin_plugin');
+                       \$message_fr = 'La restriction d\'acc&egrave;s a ete desactiv&eacute;e. <a href=\"'.\$link_plugin.'\">Corriger le probl&egrave;me</a> ou <a href=\"'.\$link_empty.'\">vider le cache</a> pour supprimer les restrictions.';
+                       \$message_en = 'Acces Restriction is now unusable. <a href=\"'.\$link_plugin.'\">Correct this trouble</a> or <a href=\"'.generer_url_ecrire('admin_vider').'\">empty the cache</a> to finish restriction removal.';
+                       die(\$message_fr.'<br />'.\$message_en);
+                       }";
+               }
+       }
+       return $boucle;
+}
+
+
+/**
+ * Renvoyer le code de la condition where pour la liste des rubriques accessibles
+ *
+ * @param string $primary
+ * @return string
+ */
+function accesrestreint_rubriques_accessibles_where($primary,$not='NOT', $_publique=''){
+       if (!$_publique) $_publique = "!test_espace_prive()";
+       return "sql_in('$primary', accesrestreint_liste_rubriques_exclues($_publique), '$not')";
+}
+
+/**
+ * Renvoyer la condition where pour la liste des articles accessibles
+ *
+ * @param string $primary
+ * @return string
+ */
+function accesrestreint_articles_accessibles_where($primary, $_publique=''){
+       # hack : on utilise zzz pour eviter que l'optimiseur ne confonde avec un morceau de la requete principale
+       return "array('NOT IN','$primary','('.sql_get_select('zzza.id_article','spip_articles as zzza',".accesrestreint_rubriques_accessibles_where('zzza.id_rubrique','',$_publique).",'','','','',\$connect).')')";
+       #return array('SUBSELECT','id_article','spip_articles',array(".accesrestreint_rubriques_accessibles_where('id_rubrique').")))";
+}
+
+/**
+ * Renvoyer la condition where pour la liste des breves accessibles
+ *
+ * @param string $primary
+ * @return string
+ */
+function accesrestreint_breves_accessibles_where($primary, $_publique=''){
+       # hack : on utilise zzz pour eviter que l'optimiseur ne confonde avec un morceau de la requete principale
+       return "array('NOT IN','$primary','('.sql_get_select('zzzb.id_breve','spip_breves as zzzb',".accesrestreint_rubriques_accessibles_where('zzzb.id_rubrique','',$_publique).",'','','','',\$connect).')')";
+       #return "array('IN','$primary',array('SUBSELECT','id_breve','spip_breves',array(".accesrestreint_rubriques_accessibles_where('id_rubrique').")))";
+}
+
+/**
+ * Renvoyer le code de la condition where pour la liste des syndic articles accessibles
+ *
+ * @param string $primary
+ * @return string
+ */
+function accesrestreint_syndic_articles_accessibles_where($primary, $_publique=''){
+       # hack : on utilise zzz pour eviter que l'optimiseur ne confonde avec un morceau de la requete principale
+       return "array('NOT IN','$primary','('.sql_get_select('zzzs.id_syndic','spip_syndic as zzzs',".accesrestreint_rubriques_accessibles_where('zzzs.id_rubrique','',$_publique).",'','','','',\$connect).')')";
+       #return "array('IN','$primary',array('SUBSELECT','id_syndic','spip_syndic',array(".accesrestreint_rubriques_accessibles_where('id_rubrique').")))";
+}
+
+
+/**
+ * Renvoyer le code de la condition where pour la liste des forums accessibles
+ * on ne rend visible que les forums qui sont lies a un article, une breve ou une rubrique visible
+ *
+ * @param string $primary
+ * @return string
+ */
+function accesrestreint_forums_accessibles_where($primary, $_publique=''){
+       # hack : on utilise zzz pour eviter que l'optimiseur ne confonde avec un morceau de la requete principale
+       $where = "array('AND','zzzf.objet=\'rubrique\'',".accesrestreint_rubriques_accessibles_where('zzzf.id_objet','NOT',$_publique).")";
+       $where = "array('OR',$where,"
+                ."array('AND','zzzf.objet=\'article\'',".accesrestreint_articles_accessibles_where('zzzf.id_objet',$_publique).")"
+                .")";
+       $where = "array('OR',$where,"
+                ."array('AND','zzzf.objet=\'breve\'',".accesrestreint_breves_accessibles_where('zzzf.id_objet',$_publique).")"
+                .")";
+       $where = "array('OR',$where,sql_in('zzzf.objet',\"'rubrique','article','breve'\",'NOT',\$connect))";
+       return "array('IN','$primary','('.sql_get_select('zzzf.id_forum','spip_forum as zzzf',array($where),'','','','',\$connect).')')";
+}
+
+
+/**
+ * Renvoyer le code de la condition where pour la liste des documents accessibles
+ * on ne rend visible que les docs qui sont lies a un article, une breve ou une rubrique visible
+ *
+ * @param string $primary
+ * @return string
+ */
+function accesrestreint_documents_accessibles_where($primary, $_publique=''){
+       # hack : on utilise zzz pour eviter que l'optimiseur ne confonde avec un morceau de la requete principale
+       $where = "array('AND','zzzd.objet=\'rubrique\'',".accesrestreint_rubriques_accessibles_where('zzzd.id_objet','NOT',$_publique).")";
+       $where = "array('OR',$where,array('AND','zzzd.objet=\'article\'',".accesrestreint_articles_accessibles_where('zzzd.id_objet',$_publique)."))";
+       $where = "array('OR',$where,array('AND','zzzd.objet=\'breve\'',".accesrestreint_breves_accessibles_where('zzzd.id_objet',$_publique)."))";
+       $where = "array('OR',$where,array('AND','zzzd.objet=\'forum\'',".accesrestreint_forums_accessibles_where('zzzd.id_objet',$_publique)."))";
+       $where = "array('OR',$where,sql_in('zzzd.objet',\"'rubrique','article','breve','forum'\",'NOT',\$connect))";
+       
+       $where = "array('OR',
+       array('IN','$primary','('.sql_get_select('zzzd.id_document','spip_documents_liens as zzzd',array($where),'','','','',\$connect).')'),
+       array('NOT IN','$primary','('.sql_get_select('zzzd.id_document','spip_documents_liens as zzzd','','','','','',\$connect).')')
+       )";
+       
+       return $where;
+}
+
+
+/*     Champs declares pour la recherche */
+function accesrestreint_rechercher_liste_des_champs($tables) {
+       $tables['zone']['titre'] = 8;
+       $tables['zone']['descriptif'] = 3;
+       return $tables;
+}
+?>
diff --git a/www/plugins/accesrestreint_3_5/saisies/zones.html b/www/plugins/accesrestreint_3_5/saisies/zones.html
new file mode 100644 (file)
index 0000000..4ca9413
--- /dev/null
@@ -0,0 +1,25 @@
+[(#REM) 
+
+  Parametres :
+  - class : classe(s) css ajoutes au select
+  - multiple : si quelquechose est passe, le select est multiple, sinon, c'est un select simple
+       Dans le cas multiple, defaut et valeur doivent etre un array, sinon un int
+  - option_intro : chaine de langue de la premiere ligne vide ? (defaut:"")
+    (seulement si non multiple)
+  - cacher_option_intro : pas de premier option vide  (defaut:"")
+        
+  Exemple d'appel :
+       [(#SAISIE{zones,acces,
+               label=<:plugin:zones_acces:>,
+               multiple=oui})] 
+]
+<select name="#ENV{nom}[(#ENV{multiple}|?{[(#VAL{&#91;&#93;}|html_entity_decode)]})]" id="champ_#ENV{nom}"[ class="(#ENV{class})"][(#ENV{multiple}|oui) multiple="multiple"][ disabled="(#ENV{disable})"][ readonly="(#ENV{readonly})"] >
+       [(#ENV{cacher_option_intro}|ou{#ENV{multiple}}|non)
+               <option value="">[(#ENV{option_intro})]</option>]
+       <BOUCLE_zones_restreintes(ZONES){par num titre, titre}>
+               [(#ENV{multiple}|oui)
+               <option value="#ID_ZONE"[(#ID_ZONE|in_array{#ENV{valeur,#ENV{defaut,#ARRAY}}}|oui) selected="selected"]>#TITRE</option>]
+               [(#ENV{multiple}|non)
+               <option value="#ID_ZONE"[(#ID_ZONE|=={#ENV{valeur,#ENV{defaut}}}|oui) selected="selected"]>#TITRE</option>]
+       </BOUCLE_zones_restreintes>
+</select>
diff --git a/www/plugins/accesrestreint_3_5/svn.revision b/www/plugins/accesrestreint_3_5/svn.revision
new file mode 100644 (file)
index 0000000..745f2c1
--- /dev/null
@@ -0,0 +1,10 @@
+<svn_revision>
+<text_version>
+Origine: file:///home/svn/repository/spip-zone/_plugins_/acces_restreint/trunk
+Revision: 73137
+Dernier commit: 2013-06-01 05:42:39 +0200 
+</text_version>
+<origine>file:///home/svn/repository/spip-zone/_plugins_/acces_restreint/trunk</origine>
+<revision>73137</revision>
+<commit>2013-06-01 05:42:39 +0200 </commit>
+</svn_revision>
\ No newline at end of file
diff --git a/www/plugins/accesrestreint_3_5/urls/generer_url_document.php b/www/plugins/accesrestreint_3_5/urls/generer_url_document.php
new file mode 100644 (file)
index 0000000..9793b25
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2011                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined('_ECRIRE_INC_VERSION')) return;
+
+
+/**
+ * Generer l'url d'un document dans l'espace public,
+ * fonction du statut du document
+ *
+ * @param int $id
+ * @param string $args
+ * @param string $ancre
+ * @param string $public
+ * @param string $connect
+ * @return string
+ *
+ * http://doc.spip.org/@generer_url_ecrire_document
+ */
+function urls_generer_url_document_dist($id, $args='', $ancre='', $public=null, $connect='') {
+       include_spip('inc/autoriser');
+       include_spip('inc/documents');
+
+       if (!autoriser('voir', 'document', $id)) return '';
+
+       $r = sql_fetsel("fichier,distant", "spip_documents", "id_document=".intval($id));
+
+       if (!$r) return '';
+
+       $f = $r['fichier'];
+
+       if ($r['distant'] == 'oui') return $f;
+
+       // Si droit de voir tous les docs, pas seulement celui-ci
+       // il est inutilement couteux de rajouter une protection
+       $r = (autoriser('voir', 'document'));
+       if (($r AND $r !== 'htaccess'))
+               return get_spip_doc($f);
+
+       include_spip('inc/securiser_action');
+
+       // cette url doit etre publique !
+       $cle = calculer_cle_action($id.','.$f);
+
+       // renvoyer une url plus ou moins jolie
+       if ($GLOBALS['meta']['creer_htaccess'])
+               return _DIR_RACINE."docrestreint.api/$id/$cle/$f";
+       else
+               return get_spip_doc($f)."?$id/$cle";
+}
\ No newline at end of file