From: Ludovic CHEVALIER
Date: Wed, 28 Aug 2013 13:20:42 +0000 (+0200)
Subject: [PLUGINS] +en_travaux
X-Git-Tag: 3.0.0~29
X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/%24%7Bnav_urls/recentchanges/href%7D?a=commitdiff_plain;h=488c41e3cdcbe8a418957be932b2703e9f22a784;p=ptitvelo%2Fweb%2Fwww.git
[PLUGINS] +en_travaux
---
diff --git a/www/plugins/en_travaux/entravaux-bg.gif b/www/plugins/en_travaux/entravaux-bg.gif
new file mode 100644
index 0000000..5ba2ea3
Binary files /dev/null and b/www/plugins/en_travaux/entravaux-bg.gif differ
diff --git a/www/plugins/en_travaux/entravaux_administrations.php b/www/plugins/en_travaux/entravaux_administrations.php
new file mode 100644
index 0000000..15a937a
--- /dev/null
+++ b/www/plugins/en_travaux/entravaux_administrations.php
@@ -0,0 +1,73 @@
+
\ No newline at end of file
diff --git a/www/plugins/en_travaux/entravaux_options.php b/www/plugins/en_travaux/entravaux_options.php
new file mode 100644
index 0000000..b23fffe
--- /dev/null
+++ b/www/plugins/en_travaux/entravaux_options.php
@@ -0,0 +1,167 @@
+ redirection
+ else {
+ if (
+ !in_array(_request('action'),array('logout'))
+ AND !in_array(_request('exec'),array('install'))
+ ){
+ if (!autoriser('travaux')){
+ spip_initialisation_suite();
+ // si on est loge : die() avec travaux
+ if ($GLOBALS['visiteur_session']['id_auteur']){
+ $travaux = recuperer_fond("inclure/entravaux",array());
+ // fallback : le fond renvoie parfois du vide ...
+ if (!strlen($travaux)){
+ @define('_SPIP_SCRIPT','spip.php');
+ echo "Acces interdit (en travaux) Deconnexion";
+ }
+ else
+ echo $travaux;
+ die();
+ }
+ // sinon retour sur login_sos
+ else {
+ $redirect = parametre_url(generer_url_public('login_sos'),'url',self(),'&');
+ include_spip('inc/headers');
+ redirige_par_entete($redirect);
+ }
+ }
+ }
+ }
+}
+
+/**
+ * Pipeline styliser pour rerouter tous les fonds vers en_travaux
+ * sauf si l'auteur connecte est celui qui a active le plugin
+ *
+ * @param array $flux
+ * @return array
+ */
+function entravaux_styliser($flux){
+ if (is_entravaux()){
+ include_spip('inc/autoriser');
+ // les pages exceptions
+ $pages_ok = array('login_sos','robots.txt','spip_pass','favicon.ico','informer_auteur');
+ if (!autoriser('travaux')
+ AND !in_array($flux['args']['fond'],$pages_ok)
+ AND !in_array($flux['args']['contexte'][_SPIP_PAGE],$pages_ok)
+ // et on laisse passer modeles et formulaires,
+ // qui ne peuvent etre inclus ou appeles que legitimement
+ AND strpos($flux['args']['fond'],'/')===false){
+ $fond = trouver_fond('inclure/entravaux','',true);
+ $flux['data'] = $fond['fond'];
+ }
+ }
+ return $flux;
+}
+
+
+/**
+ * Afficher une icone de travaux sur tout le site public pour que le webmestre n'oublie pas
+ * de retablir le site
+ *
+ * @param string $flux
+ * @return string
+ */
+function entravaux_affichage_final($flux){
+ if (is_entravaux()
+ AND !test_espace_prive()
+ AND $GLOBALS['html']
+ AND !_AJAX){
+ include_spip('inc/filtres'); // pour http_img_pack
+ $x = ''
+ . http_img_pack(chemin_image('entravaux-64.png'), _T('entravaux:en_travaux'), '', _T('entravaux:en_travaux'))
+ . '
';
+ if (!$pos = strpos($flux, '
+
+'))
+ $pos = strlen($flux);
+ $flux = substr_replace($flux, $x, $pos, 0);
+ }
+ return $flux;
+}
+
+/**
+ * Afficher une notice sur l'accueil de ecrire
+ * @param array $flux
+ * @return array
+ */
+function entravaux_affiche_milieu($flux){
+ if (is_entravaux()){
+ if ($flux['args']['exec']=='accueil'){
+ $notice = recuperer_fond('inclure/entravaux_notice_ecrire',array());
+ if (strlen(trim($notice)))
+ $flux['data'] = $notice . $flux['data'];
+ }
+ }
+ if ($flux['args']['exec']=='configurer_identite'){
+ $flux['data'] .= recuperer_fond('prive/squelettes/contenu/configurer_entravaux',array());
+ }
+ return $flux;
+}
+
+?>
diff --git a/www/plugins/en_travaux/formulaires/configurer_entravaux.html b/www/plugins/en_travaux/formulaires/configurer_entravaux.html
new file mode 100644
index 0000000..1cfa9f4
--- /dev/null
+++ b/www/plugins/en_travaux/formulaires/configurer_entravaux.html
@@ -0,0 +1,48 @@
+[(#ENV{id_auteur}|oui)
+
+#BOITE_OUVRIR{'',notice}
+
<:entravaux:info_maintenance_en_cours:>
+#BOITE_FERMER
+
+
+]
+[(#ENV{id_auteur}|non)
+
+]
+
+
\ No newline at end of file
diff --git a/www/plugins/en_travaux/formulaires/configurer_entravaux.php b/www/plugins/en_travaux/formulaires/configurer_entravaux.php
new file mode 100644
index 0000000..b5bb613
--- /dev/null
+++ b/www/plugins/en_travaux/formulaires/configurer_entravaux.php
@@ -0,0 +1,42 @@
+ is_entravaux()?'1':'',
+ 'message' => $GLOBALS['meta']['entravaux_message'],
+ 'disallow_robots' => $GLOBALS['meta']['entravaux_disallow_robots'],
+ );
+
+ return $valeurs;
+}
+
+/**
+ * Traiter
+ * @return array
+ */
+function formulaires_configurer_entravaux_traiter_dist(){
+
+ include_spip('entravaux_administrations');
+ if (_request('accesferme'))
+ entravaux_poser_verrou('accesferme');
+ else
+ entravaux_lever_verrou('accesferme');
+
+
+ foreach(array('message','disallow_robots') as $k)
+ ecrire_meta('entravaux_'.$k,_request($k)?_request($k):'','non');
+
+ return array('message_ok' => _T('config_info_enregistree'));
+}
\ No newline at end of file
diff --git a/www/plugins/en_travaux/inclure/entravaux.html b/www/plugins/en_travaux/inclure/entravaux.html
new file mode 100644
index 0000000..bcc6fd0
--- /dev/null
+++ b/www/plugins/en_travaux/inclure/entravaux.html
@@ -0,0 +1,26 @@
+[(#HTTP_HEADER{HTTP/1.1 503 Service Temporarily Unavailable})][(#HTTP_HEADER{Status: 503 Service Temporarily Unavailable})][(#HTTP_HEADER{Retry-After: 7200})]
+
+
+
<:entravaux:en_travaux:>
+
+
+
+
+
+