source: spip-zone/_plugins_/acs/inc/acs_onload_ecrire.php @ 48965

Last change on this file since 48965 was 48965, checked in by webmaster@…, 10 years ago

ACS:

  • liste des widgets en partie privée : classement des composants en deux blocs: cadres et éléments.
  • suppression de exec/acs_page_source.php (devenu inutile).
  • formulaire administration enrichi d'un accès direct à l'édition de la page et du bouton inclusions.
  • choix du positionnement du formulaire administration de SPIP.
  • passage en ajax du bloc de configuration d'ACS (Onglet Administration).
  • nouvelle option de configuration : Désactiver le cache de SPIP.
  • nouvelle aide contextuelle
  • restauration du fonctionnement de controleurs/var.php suite au passage des controleurs en objets.


Cat :

  • évolution de l'usage de la balise #ACS_CHEMIN (dans tous les fichiers où elle est utilisée)
  • Carte: correction bug sur affichage des sous-rubriques géoreferencées. Correction d'un bug sur les popups ombrées introduit par le changement de comportement de la balise #ACS_CHEMIN.
  • Fond/entete: filtre textebrut sur le titre des pages.
  • Keys: nouvelles variables arrondi de bordure et ombre.
File size: 3.2 KB
Line 
1<?php
2#              ACS
3#          (Plugin Spip)
4#     http://acs.geomaticien.org
5#
6# Copyright Daniel FAIVRE, 2007-2011
7# Copyleft: licence GPL - Cf. LICENCES.txt
8
9/**
10 * acs_onload_ecrire est appellé au chargement de l'espace ecrire.
11 * les fonctions définies ici sont disponibles dans tout l'espace ecrire
12 */
13
14// Contrôle l'accès aux pages de configuration, dont celles déclarées dans $GLOBALS['ACS_ACCES'] (acs_options)
15// et celles déclarées dans $GLOBALS['meta']['ACS_CADENASSE'] (inc/acs_adm)
16if (_request('exec'))
17  acs_acces(_request('exec'));
18
19  /**
20   * Contrôle l'accès à la page $page
21   * Les pages à contrôler sont déclarées dans $GLOBALS['ACS_ACCES'] (acs_options)
22   * et dans $GLOBALS['meta']['ACS_CADENASSE'] (inc/acs_adm)
23   *
24   * @param string $page
25   */
26function acs_acces($page) {
27  // les fichiers exec de configuration de spip sont administrés par les mêmes admins qu'ACS
28  $enfer = array('acs',
29        'acs_editer_admins',
30        'acs_selectionner_admin',
31        'acs_rechercher_admin',
32    'acs_page_get_infos',
33    'composant_get_infos',
34    'composant_get_trad',
35    'configuration',
36    'config_lang',
37    'admin_tech',
38    'admin_vider',
39    'admin_plugin');
40 
41  // Les pages administrés par les mêmes admins qu'ACS
42  if (isset($GLOBALS['ACS_ACCES']) && is_array($GLOBALS['ACS_ACCES']) && count($GLOBALS['ACS_ACCES']))
43    $enfer = array_merge($GLOBALS['ACS_ACCES'], $enfer);
44  $GLOBALS['ACS_ENFER'] = $enfer; // On garde cette définition pour affichage
45
46  if (isset($GLOBALS['meta']['ACS_ADMINS'])) { // Pas d'action avant initialisation d'ACS !
47    // Les pages à accès contrôlé par ACS, avec choix des admins
48    if (isset($GLOBALS['meta']['ACS_CADENASSE']) && $GLOBALS['meta']['ACS_CADENASSE']) {
49      $acsCadenasse = unserialize($GLOBALS['meta']['ACS_CADENASSE']);
50      if (is_array($acsCadenasse) && isset($acsCadenasse[$page])) {
51        if (!in_array($GLOBALS['auteur_session']['id_auteur'], array_keys($acsCadenasse[$page])))
52          acs_exit();
53      }
54    }
55    if (in_array($page, $enfer) && (!acs_autorise()))
56      acs_exit();
57  }
58}
59
60// (ressemble vaguement à exec_configuration_dist() de spip 1.9.2 - http://doc.spip.org/@exec_configuration_dist)
61function acs_exit() {
62  global $spip_version_code;
63
64  if (!isset($GLOBALS['auteur_session']['statut'])) {
65    include_spip('inc/headers');
66    redirige_par_entete(generer_url_public('login'));
67  }
68
69  include_spip('inc/acs_presentation');
70  include_spip('inc/config');
71
72  $GLOBALS['couleur_foncee'] = '#ffaf00';
73  $GLOBALS['couleur_claire'] = '#ff0000';
74  if($spip_version_code >= 1.93)
75    echo '<html><body>'; // commencer_page_dist() buggé avec version 1.9.3svn du 11/04/2008
76  else
77    echo acs_commencer_page(_T('avis_non_acces_page'), "administration", "interdit");
78
79  echo '<br /><div style="width: 50%">';
80  echo '<h2 class="alert">'._T('avis_non_acces_page').'</h2>';
81  if (in_array(_request('exec'), $GLOBALS['ACS_ENFER']))
82    echo avertissement_config();
83  echo '</div>';
84  echo fin_gauche(), fin_page();
85  exit;
86}
87
88
89
90// Lit un tableau sérialisé dans une variable meta
91// Read serialized array in meta variable
92function meta2array($meta) {
93  $r = unserialize($GLOBALS['meta'][$meta]);
94  if (is_array($r))
95    return $r;
96  return $GLOBALS['meta'][$meta];
97}
98
99?>
Note: See TracBrowser for help on using the repository browser.