Changeset 48270 in spip-zone


Ignore:
Timestamp:
May 30, 2011, 11:31:22 AM (10 years ago)
Author:
cedric@…
Message:

version SPIP 3 du plugin En travaux
On normalise l'utilisation du prefix 'entravaux', et le nom des fichiers.
On met a jour la page login_sos
On retablit une page de configuration pour le message, mais on garde le fonctionnement simple : il suffit d'activer pour que cela marche (le panneau permet quand meme de desactiver temporairement la maintenance, sans desinstaller le plugin).

Location:
_plugins_/en_travaux/trunk
Files:
11 added
7 edited
6 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/en_travaux/trunk/entravaux.html

    r48269 r48270  
    77<style type="text/css">
    88html { font-size: 100%; }
    9 body { background: #fff url(#CHEMIN{en_travaux-bg.gif}); text-align: left; font: 1em/normal Verdana,Geneva,sans-serif; color: #000; }
     9body { background: #fff url(#CHEMIN{entravaux-bg.gif}); text-align: left; font: 1em/normal Verdana,Geneva,sans-serif; color: #000; }
    1010#minipres { width: 30em; margin: 26px; margin-left: 100px; }
    1111#minipres h1 { font-size: 1.1em; color: #970038; font-weight: bold; }
     
    1515        <div id="minipres">
    1616                <h1><:info_travaux_titre:></h1>
    17                 <p><:entravaux:info_travaux_texte:></p>
     17                [(#CONFIG{entravaux_message,<:entravaux:info_travaux_texte:>}|propre)]
    1818                <p class="retour">&#91;<a href="#URL_PAGE{login_sos}"><:lien_connecter:></a>&#93;</p>
    1919        </div>
  • _plugins_/en_travaux/trunk/entravaux_install.php

    r48269 r48270  
    77 */
    88
    9 function entravaux_install($action){
    10         switch ($action){
    11                         case 'test':
    12                                         include_spip('inc/meta');
    13                                         include_spip('inc/autoriser');
    14                                         if (autoriser('webmestre')){
    15                                                 ecrire_meta('entravaux_id_auteur',$GLOBALS['visiteur_session']['id_auteur']);
    16                                         }
    17                                         else{
    18                                                 effacer_meta('entravaux_id_auteur');
    19                                         }
    20                                         return (true);
    21                                         break;
    22                         case 'install':
    23                                         break;
    24                         case 'uninstall':
    25                                         break;
     9
     10/**
     11 * Installation/maj base
     12 *
     13 * @param string $nom_meta_base_version
     14 * @param string $version_cible
     15 */
     16function entravaux_upgrade($nom_meta_base_version,$version_cible){
     17
     18        $maj = array();
     19
     20        include_spip('inc/autoriser');
     21        // seul un webmestre peut activer les travaux sur le site
     22        // si c'est un autre admin qui active le plugin, il ne fait rien en base
     23        if (autoriser('travaux')) {
     24                $maj['create'] = array(
     25                        array('ecrire_meta','entravaux_id_auteur',$GLOBALS['visiteur_session']['id_auteur']),
     26                );
     27                include_spip('base/upgrade');
     28                maj_plugin($nom_meta_base_version, $version_cible, $maj);
    2629        }
     30        else
     31                // sans mise a jour de $nom_meta_base_version ce qui fera une erreur dans le panneau plugin
     32                effacer_meta('entravaux_id_auteur');
    2733}
    2834
     35/**
     36 * Installation/maj base
     37 *
     38 * @param string $nom_meta_base_version
     39 */
     40function entravaux_vider_tables($nom_meta_base_version) {
     41
     42        effacer_meta("entravaux_id_auteur");
     43        effacer_meta("entravaux_message");
     44        effacer_meta($nom_meta_base_version);
     45}
     46
     47
     48
    2949?>
  • _plugins_/en_travaux/trunk/entravaux_options.php

    r48269 r48270  
    99#var_dump($GLOBALS['meta']['entravaux_id_auteur']);
    1010
    11 function autoriser_travaux_dist(){
    12         return autoriser('webmestre');
    13 }
     11/**
     12 * Autoriser a voir le site en travaux : par defaut tous les webmestre
     13 * @return mixed
     14 */
     15function autoriser_travaux_dist(){ return autoriser('webmestre'); }
    1416
    15 if (isset($GLOBALS['meta']['entravaux_id_auteur']) AND $GLOBALS['meta']['entravaux_id_auteur']){
    16         // desactiver le cache
    17         define('_NO_CACHE',1);
     17/**
     18 * A-t-on active les travaux oui ou non ?
     19 * @return bool
     20 */
     21function is_entravaux(){ return (isset($GLOBALS['meta']['entravaux_id_auteur']) AND $GLOBALS['meta']['entravaux_id_auteur']);}
    1822
    19         // au cas ou, placer tout nouveau calcul dans le cache
    20         $GLOBALS['marqueur'].= ":en_travaux";
     23if (is_entravaux()){
     24        include_spip('inc/autoriser');
    2125
    22         if (test_espace_prive() AND (_request('exec')!='admin_plugin'
    23         //              OR _request('action')!='activer_plugins'
    24         )){
    25                 include_spip('inc/autoriser');
     26        // dans le site public
     27        // si auteur pas autorise : placer sur un cache dedie
     28        // si auteur autorise, desactiver le cache :
     29        // il voit le site, mais pas de cache car il travaille dessus !
     30        if (!test_espace_prive()){
    2631                if (!autoriser('travaux')){
    27                         $travaux = recuperer_fond("en_travaux",array());
    28                         // fallback : le fond renvoie parfois du vide ...
    29                         if (!strlen($travaux)){
    30                                 @define('_SPIP_SCRIPT','spip.php');
    31                                 echo "Acces interdit (en travaux) <a href='"
    32                                 .generer_url_action('logout',"logout=public",false,true)
    33                                 ."'>Deconnexion</a>";
    34                         }
    35                         die();
     32                        $GLOBALS['marqueur'].= ":en_travaux";
     33                }
     34                else {
     35                        // desactiver le cache sauf si inhibe par define
     36                        if (!defined('_ENTRAVAUX_GARDER_CACHE'))
     37                                define('_NO_CACHE',1);
    3638                }
    3739        }
    38 
    39 }
    40 else {
    41                 include_spip('inc/autoriser');
    42                 if (!autoriser('travaux')){
    43                         // se desactiver tout seul car on ne sert a rien
    44                         // sauf a ralentir le site !
    45                         include_spip('inc/plugin');
    46                         ecrire_plugin_actifs(array('ENTRAVAUX'=>trim(substr(_DIR_PLUGIN_ENTRAVAUX,strlen(_DIR_PLUGINS)),'/')),false,'enleve');
    47                         // avec un message d'erreur smart
    48                         ecrire_meta('plugin_erreur_activation',_T('entravaux:erreur_droit'));
     40        else {
     41                if (_request('exec')!='admin_plugin'
     42                //              OR _request('action')!='activer_plugins'
     43                ){
     44                        if (!autoriser('travaux')){
     45                                spip_initialisation_suite();
     46                                $travaux = recuperer_fond("entravaux",array());
     47                                // fallback : le fond renvoie parfois du vide ...
     48                                if (!strlen($travaux)){
     49                                        @define('_SPIP_SCRIPT','spip.php');
     50                                        echo "Acces interdit (en travaux) <a href='"
     51                                        .generer_url_action('logout',"logout=public",false,true)
     52                                        ."'>Deconnexion</a>";
     53                                }
     54                                else
     55                                        echo $travaux;
     56                                die();
     57                        }
    4958                }
     59        }
    5060}
    5161
     
    5868 */
    5969function entravaux_styliser($flux){
    60         if (isset($GLOBALS['meta']['entravaux_id_auteur']) AND $GLOBALS['meta']['entravaux_id_auteur']){
     70        if (is_entravaux()){
    6171                include_spip('inc/autoriser');
    6272                if (!autoriser('travaux')
    63                         AND !in_array($flux['args']['fond'],array('login_sos','formulaires/login','formulaires/menu_lang','formulaires/inc-logo_auteur','formulaires/administration'))){
    64                         $ext = $flux['args']['ext'];
    65                         $fond = find_in_path('en_travaux.html');
    66                         $flux['data'] = substr($fond, 0, - strlen(".$ext"));
     73                        AND !in_array(
     74                                    $flux['args']['fond'],
     75                                                // les exceptions
     76                              array('login_sos','formulaires/login','formulaires/menu_lang','formulaires/inc-logo_auteur','formulaires/administration',
     77                              'spip_pass','formulaires/oubli','formulaires/mot_de_passe',
     78                              )
     79                            )){
     80                        $fond = trouver_fond('entravaux','',true);
     81                        $flux['data'] = $fond['fond'];
    6782                }
    6883        }
     
    7287
    7388/**
    74  * Afficher une icone de travaux sur tout le site pour que le webmestre n'oublie pas
     89 * Afficher une icone de travaux sur tout le site public pour que le webmestre n'oublie pas
    7590 * de retablir le site
    7691 *
    77  * @param <type> $flux 
     92 * @param <type> $flux
    7893 */
    7994function entravaux_affichage_final($flux){
    80         $image = find_in_path("en_travaux.png");
    81         if ($GLOBALS['html']
    82         AND !_AJAX){
    83                 include_spip('inc/minipres'); // pour http_img_pack
     95        if (is_entravaux()
     96                AND !test_espace_prive()
     97                AND $GLOBALS['html']
     98                AND !_AJAX){
     99                include_spip('inc/filtres'); // pour http_img_pack
    84100                $x = '<div id="icone_travaux" style="
    85101                padding-right: 5px;
     
    90106                top: 26px;
    91107                ">'
    92                 . http_img_pack(find_in_path('en_travaux-64.png'), _T('entravaux:en_travaux'), '')
     108                . http_img_pack(chemin_image('entravaux-64.png'), _T('entravaux:en_travaux'), '')
    93109                . '</div>';
    94110                if (!$pos = strpos($flux, '</body>'))
  • _plugins_/en_travaux/trunk/lang/entravaux_de.php

    r38576 r48270  
    99
    1010'en_travaux' => 'Wartung',
    11 'info_travaux_texte' => 'Diese Website wird gerade gewartet.<br /> Bitte schauen sie sp&auml;ter wieder vorbei.',
     11'info_travaux_texte' => 'Diese Website wird gerade gewartet.
     12_ Bitte schauen sie sp&auml;ter wieder vorbei.',
    1213'info_message' => 'Diese Seite erm&ouml;glicht einen Wartungshinweis anstelle der Website anzuzeigen.',
    1314
  • _plugins_/en_travaux/trunk/lang/entravaux_en.php

    r28611 r48270  
    66'activer_message' => 'Activate maintenance mode',
    77'en_travaux' => 'Under construction',
    8 'info_travaux_texte' => 'This site now under construction.<br /> Please come back later...',
     8'info_travaux_texte' => 'This site now under construction.
     9_ Please come back later...',
    910'parametrage_page_travaux' => 'Settings for your maintenance page',
    1011'info_message' => 'This page lets you set up a temporary message which will be displayed on all the pages of your site during a maintenance period.',
  • _plugins_/en_travaux/trunk/lang/entravaux_es.php

    r33421 r48270  
    99
    1010'en_travaux' => 'En obras',
    11 'info_travaux_texte' => 'Este sitio se encuentra actualmente en obras.<br /> Por favor regrese m&aacute;s tarde.',
     11'info_travaux_texte' => 'Este sitio se encuentra actualmente en obras.
     12_ Por favor regrese m&aacute;s tarde.',
    1213'info_message' => 'Esta p&aacute;gina permite dejar un mensaje temporal en todas las p&aacute;ginas del sitio durante una fase de mantenimiento.',
    1314
  • _plugins_/en_travaux/trunk/lang/entravaux_fr.php

    r28658 r48270  
    99
    1010'en_travaux' => 'En travaux',
    11 'info_travaux_texte' => 'Ce site est actuellement en travaux.<br /> Revenez plus tard.',
     11'info_travaux_texte' => 'Ce site est actuellement en travaux.
     12_ Revenez plus tard.',
    1213'info_message' => 'Cette page permet de mettre un message temporaire sur toute les pages du site pendant une phase de maintenance.',
    1314
    1415'message_temporaire' => 'Votre message temporaire :',
    1516'parametrage_page_travaux' => 'Param&eacute;trage de la page temporaire',
     17'info_maintenance_en_cours' => 'Maintenance en cours !'
    1618);
    1719?>
  • _plugins_/en_travaux/trunk/lang/entravaux_it.php

    r28611 r48270  
    66'activer_message' => 'Attivare una sessione di manutenzione',
    77'en_travaux' => 'In manutenzione',
    8 'info_travaux_texte' => 'Questo sito &egrave; stato in manutenzione.<br /> Torna pi&ugrave; tardi...',
     8'info_travaux_texte' => 'Questo sito &egrave; stato in manutenzione.
     9_ Torna pi&ugrave; tardi...',
    910'parametrage_page_travaux' => 'Configurazione della pagina di manutenzione',
    1011'info_message' => 'Questa pagina consente di visualizzare un messaggio temporaneo su tutte le pagine del sito durante una sessione di manutenzione.',
  • _plugins_/en_travaux/trunk/login_sos.html

    r47623 r48270  
    2020#minipres h1 { font-size: 1.1em; color: #970038; font-weight: bold; }
    2121</style>
    22 [(#REM|f_jQuery)]
     22#INSERT_HEAD
    2323<script type='text/javascript'><!--
    2424jQuery(function(){ jQuery('input#var_login').focus();
     
    2929<body class="page_login" >
    3030<div id="minipres">
     31        <h1>#NOM_SITE_SPIP</h1>
    3132        [(#REM)
    3233                Est-ce qu'on se connecte a l'espace prive ou pas ?
     34        ][
     35        (#ENV**{url}|non
     36        |ou{[(#ENV**{url}|match{^(/.*/)?#EVAL{_DIR_RESTREINT_ABS}})]})
     37        <h1><:login_acces_prive:></h1>
    3338        ]
    34         [(#ENV{url}|=={''}|?{#SET{prive,' '}})]
    35         [(#ENV{url}|match{^#EVAL{_DIR_RESTREINT_ABS}}|?{#SET{prive,' '}})]
    36         [(#GET{prive}) <h1><:login_acces_prive:></h1>]
    37        
    3839        #MENU_LANG_ECRIRE
    3940
     
    4243        ]
    4344        [(#SESSION{statut}|non)
    44         [(#FORMULAIRE_LOGIN{#ENV{url,.*}|sinon{#URL_ECRIRE{accueil}}})]
     45                [(#FORMULAIRE_LOGIN{#ENV{url}|sinon{#URL_ECRIRE{accueil}}})]
    4546        ]
    4647        <p class="retour">
  • _plugins_/en_travaux/trunk/plugin.xml

    r36984 r48270  
    11<plugin>
    2 <nom><multi>[fr]En travaux 2.0[en]Under construction 2.0[it]In manutenzione 2.0</multi></nom>
    3 <icon>en_travaux.png</icon>
    4 <auteur><multi>
    5 [fr][Arnaud Ventre->ventrea@gmail.com], [C&eacute;dric Morin->http://www.yterium.com] - 2006-2009
    6 [en][Arnaud Ventre->ventrea@gmail.com], [C&eacute;dric Morin->http://www.yterium.com] - 2006-2009
    7 _ Translated from French by Etienne B. [->http://www.loiseau2nuit.net]
    8 [it][Arnaud Ventre->ventrea@gmail.com], [C&eacute;dric Morin->http://www.yterium.com] - 2006-2009
    9 </multi>
    10 </auteur>
    11 <licence>GPL</licence>
    12 <version>2.0.1</version>
    13 <etat>stable</etat>
    14 <description><multi>
    15 [fr] &Agrave; activer avant une phase de maintenance, ce plugin affiche aussit&ocirc;t une page d'avertissement, <strong>&agrave; la place</strong> du site public.
    16 _ Attention : seul le webmestre acc&eacute;de encore &agrave; l'espace priv&eacute; et au site public.
    17 [en] Displays a defined page during maintenance period on all your public pages.
    18 [it] Consente di visualizzare un messaggio personalizzabile durante una sessione di manutenzione su tutte le pagine del sito pubblico.
    19 </multi>
    20 </description>
    21 <lien>http://www.spip-contrib.net/plugin-en-travaux-2-0</lien>
    22 <prefix>entravaux</prefix>
    23 <install>en_travaux_install.php</install>
    24 <options>en_travaux_options.php</options>
    25 <pipeline>
    26 <nom>styliser</nom>
    27 </pipeline>
    28 <pipeline>
    29 <nom>affichage_final</nom>
    30 </pipeline>
    31 <necessite id="SPIP" version="[2.0.7;]" />
    32 <categorie>maintenance</categorie>
     2        <nom>En travaux</nom>
     3        <icon>prive/themes/spip/images/entravaux-32.png</icon>
     4        <auteur><multi>
     5        [fr][Arnaud Ventre->ventrea@gmail.com], [C&eacute;dric Morin->http://www.yterium.com] - 2006-2009
     6        [en][Arnaud Ventre->ventrea@gmail.com], [C&eacute;dric Morin->http://www.yterium.com] - 2006-2009
     7        _ Translated from French by Etienne B. [->http://www.loiseau2nuit.net]
     8        [it][Arnaud Ventre->ventrea@gmail.com], [C&eacute;dric Morin->http://www.yterium.com] - 2006-2009
     9        </multi>
     10        </auteur>
     11        <licence>GPL</licence>
     12        <version>3.0.0</version>
     13        <version_base>0.1.0</version_base>
     14        <etat>dev</etat>
     15        <description><multi>
     16        [fr] &Agrave; activer avant une phase de maintenance, ce plugin affiche aussit&ocirc;t une page d'avertissement, <strong>&agrave; la place</strong> du site public.
     17        _ Attention : seul le webmestre acc&eacute;de encore &agrave; l'espace priv&eacute; et au site public.
     18        [en] Displays a defined page during maintenance period on all your public pages.
     19        [it] Consente di visualizzare un messaggio personalizzabile durante una sessione di manutenzione su tutte le pagine del sito pubblico.
     20        </multi></description>
     21        <lien>http://www.spip-contrib.net/plugin-en-travaux-2-0</lien>
     22        <prefix>entravaux</prefix>
     23        <install>entravaux_install.php</install>
     24        <options>entravaux_options.php</options>
     25        <pipeline>
     26                <nom>styliser</nom>
     27        </pipeline>
     28        <pipeline>
     29                <nom>affichage_final</nom>
     30        </pipeline>
     31        <necessite id="SPIP" version="[3.0.0-dev;3.0.*]" />
     32        <categorie>maintenance</categorie>
    3333</plugin>
Note: See TracChangeset for help on using the changeset viewer.