source: spip-zone/_plugins_/spip-listes/spip-listes_1_9_3/inc/spiplistes_api_journal.php @ 45317

Last change on this file since 45317 was 45317, checked in by paladin@…, 9 years ago

réécriture de la fonction spiplistes_server_rezo_local(), mieux detecter les réseaux privés

  • Property svn:eol-style set to native
  • Property svn:keywords set to LastChangedBy LastChangedDate LastChangedRevision
File size: 10.1 KB
Line 
1<?php
2       
3        // inc/spiplistes_api_journal.php
4       
5        // $LastChangedRevision: 45317 $
6        // $LastChangedBy: paladin@quesaco.org $
7        // $LastChangedDate: 2011-03-11 09:44:14 +0000 (Fri, 11 Mar 2011) $
8       
9        // fonctions utilises en espace privé
10        // presentation
11
12        /*****************************************************
13        Copyright (C) 2008 Christian PAULUS
14        cpaulus@quesaco.org - http://www.quesaco.org/
15        /*****************************************************
16       
17        This file is part of Fmp3.
18        http://files.spip.org/spip-zone/fond_mp3.zip
19       
20/******************************************************************************************/
21/* SPIP-Listes est un systeme de gestion de listes d'abonnes et d'envoi d'information     */
22/* par email pour SPIP. http://bloog.net/spip-listes                                      */
23/* Copyright (C) 2004 Vincent CARON  v.caron<at>laposte.net                               */
24/*                                                                                        */
25/* Ce programme est libre, vous pouvez le redistribuer et/ou le modifier selon les termes */
26/* de la Licence Publique Generale GNU publiee par la Free Software Foundation            */
27/* (version 2).                                                                           */
28/*                                                                                        */
29/* Ce programme est distribue car potentiellement utile, mais SANS AUCUNE GARANTIE,       */
30/* ni explicite ni implicite, y compris les garanties de commercialisation ou             */
31/* d'adaptation dans un but specifique. Reportez-vous a la Licence Publique Generale GNU  */
32/* pour plus de details.                                                                  */
33/*                                                                                        */
34/* Vous devez avoir recu une copie de la Licence Publique Generale GNU                    */
35/* en meme temps que ce programme ; si ce n'est pas le cas, ecrivez a la                  */
36/* Free Software Foundation,                                                              */
37/* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, Etats-Unis.                   */
38/******************************************************************************************/
39
40if(!defined('_ECRIRE_INC_VERSION')) return;
41
42include_spip('inc/plugin');
43include_spip('inc/presentation');
44include_spip('inc/texte');
45
46/*
47 * Afficher le journal (log) en espace prive. Voir:
48 * - exec/*_voir_journal.php
49 * - action/*_voir_journal.php
50 * Ajouter dans la page exec/* spiplistes_raccourci_journal()
51 */
52
53/*
54 * Boite raccourci, Afficher le journal du plugin
55 */
56function spiplistes_raccourci_journal ($envelopper = true) {
57
58        $connect_id_auteur = intval($GLOBALS['connect_id_auteur']);
59       
60        $result = "";
61       
62        if($envelopper) {
63                $result .= ""
64                        . debut_cadre_enfonce('', true)
65                        . "<span class='verdana2' style='font-size:80%;text-transform: uppercase;font-weight:bold;'>"
66                                . _T('titre_cadre_raccourcis')
67                                . "</span>\n"
68                        . "<ul class='verdana2' style='list-style:none;padding:1ex;margin:0;'>\n"
69                        ;
70        }
71        $result .= ""
72                . "<li id='spiplistes-log-raccourci'>"
73                . icone_horizontale(
74                        _T('spiplistes:log_voir_le_journal')
75                        , generer_url_ecrire('spiplistes_voir_journal')
76                        , _DIR_PLUGIN_SPIPLISTES_IMG_PACK."log-24.png"
77                        , ''
78                        ,false
79                        )
80                .       (
81                                (spiplistes_server_rezo_local())
82                                ? "<span class='verdana2' style='display:block;padding:0.5ex;text-align:center'>" 
83                                        // avertir qu'on est en mode debug
84                                        . "<span style='display:block;font-weight:700;color:white;background-color:red;'>" . _T('spiplistes:mode_debug_actif') . "</span>\n"
85                                        // l'adresse IP pour info
86                                        . "<span style='display:block;'>" . $_SERVER['SERVER_ADDR'] . "</span>\n"
87                                        . "</span>\n"
88                                : ""
89                        )
90                . "</li>\n"
91                ;
92        if($envelopper) {
93                $result .= ""
94                        . "</ul>\n"
95                        ;
96        }
97       
98        if($envelopper)
99        {
100                $result .= fin_cadre_enfonce(true);
101        }
102
103        return($result);
104}
105
106/*
107 * jQuery pour afficher le journal
108 * @return le code jQuery à placer au bon endroit
109 */
110function spiplistes_raccourci_journal_jquery () {
111
112        $action = "spiplistes_journal";
113        $action_arg = "";
114        $journal_url_action = generer_action_auteur($action, $action_arg);
115        // $.ajax n'aime pas &amp;
116        $journal_url_action = preg_replace("/&amp;/", "&", $journal_url_action);
117       
118               
119        /*
120         * le JS nécessaire
121         */
122       
123        $js = "
124$(document).ready(function(){
125       
126        $.fn.extend({
127                log_loader: function() {
128                        $('#spiplistes-log-result').css({
129                                'background': 'url(". find_in_path("images/searching.gif").") no-repeat top center'
130                        });
131                        $.ajax({
132                                type: 'POST'
133                                , data : ''
134                                , url: '" . $journal_url_action . "'
135                                , success: function(msg){
136                                        $('#spiplistes-log-result').html(msg);
137                                        $('#spiplistes-log-result').css({'background': 'url()'});
138                                }
139                        });
140                }
141        });
142
143        /* le journal */
144        var log_switch = null;
145        /*
146         * attendre évènement click sur le bouton
147         */
148        $('#spiplistes-log-raccourci .cellule-h').click(function(){
149                if(log_switch) {
150                        /* supprimer la boite de log */
151                        $('#spiplistes-log-bg').remove();
152                        $('#spiplistes-log-div').remove();
153                        log_switch = false;
154                }
155                else {
156                        /* creer une boite pour le fond */
157                        $('body').append(
158                                '<div id=\'spiplistes-log-bg\'></div>'
159                                + '<div id=\'spiplistes-log-div\'>'
160                                + '<h1>".spiplistes_journal_titre()."<span id=\'spiplistes-log-close\'>'
161                                                + '<span style=\'display:none\'>X</span>'
162                                        + '</span></h1>'
163                                + '<div id=\'spiplistes-log-result\' style=\'padding:1ex\'></div>'
164                                + '<div id=\'spiplistes-log-reload\'><div id=\'spiplistes-log-reload-btn\'></div></div>'
165                                + '</div>'
166                                );
167                        /*
168                         * prendre toute la surface de l ecran
169                         */
170                        $('#spiplistes-log-bg').width($('body').width());
171                        $('#spiplistes-log-bg').height($('body').height());
172                        $('#spiplistes-log-bg').css({
173                                'position': 'absolute'
174                                , 'top':'0'
175                                , 'left': '0'
176                                /* un peu de transparence pour le fond */
177                                , 'filter': 'alpha(opacity=70)' /* IE */       
178                                , '-moz-opacity': '.70' /* Mozilla */   
179                                , 'opacity':'.70' /* les autres */
180                                , 'background-color': '#333'
181                                , 'color': 'white'
182                                /* passer au dessus de tous */
183                                , 'z-index': '2000'
184                        });
185                        var log_x = Math.round(($('body').width() - 600) / 2);
186                        var log_y = Math.round(($('body').height() - 400) / 8);
187                        log_x = (log_x >= 0) ? log_x : 0;
188                        log_y = (log_y >= 0) ? log_y : 0;
189                       
190                        /*
191                         * la fenetre de résultat
192                         */
193                        $('#spiplistes-log-div').css({
194                                'position': 'absolute'
195                                , 'top': log_y
196                                , 'left': log_x
197                                , 'margin': '100px auto'
198                                , 'width': '600px'
199                                , 'height': '450px'
200                                , 'background-color': 'white'
201                                , 'color': 'black'
202                                , 'z-index': '2001'
203                        });
204                       
205                        /*
206                         * le titre de cette fenêtre
207                         */
208                        $('#spiplistes-log-div h1').css({
209                                'position': 'relative'
210                                , 'font-size': '1.2em'
211                                , 'padding': '0 8px'
212                                , 'height': '24px'
213                                , 'margin-top': '0.25em'
214                        });
215
216                        /*
217                         * le bouton close positionné à droite
218                         */
219                        $('#spiplistes-log-close').css({
220                                'display': 'block'
221                                , 'position': 'absolute'
222                                , 'top': '0'
223                                , 'right': '8px'
224                                , 'width': '24px'
225                                , 'height': '24px'
226                                , 'cursor': 'pointer'
227                                , 'background': 'url(". find_in_path(_DIR_PLUGIN_SPIPLISTES_IMG_PACK . "close-24.png").") no-repeat top right'
228                        });
229                       
230                        /*
231                         * la boite pour le résultat
232                         */
233                        $('#spiplistes-log-result').css({
234                                'width': 'auto'
235                                , 'height': '360px'
236                                , 'background': 'url(". find_in_path(_DIR_PLUGIN_SPIPLISTES_IMG_PACK . "searching.gif").") no-repeat top center'
237                        });
238                       
239                        /*
240                         * le bouton pour recharger
241                         */
242                        $('#spiplistes-log-reload').css({
243                                'width': 'auto'
244                                , 'height': '12px'
245                                , 'text-align': 'right'
246                                , 'padding': '4px 10px'
247                                , 'cursor': 'pointer'
248                        });
249                        $('#spiplistes-log-reload-btn').css({
250                                'width': '12px'
251                                , 'height': '12px'
252                                , 'margin-left': 'auto'
253                                , 'background': 'url(". find_in_path(_DIR_PLUGIN_SPIPLISTES_IMG_PACK . "reload-12.png").") no-repeat top right'
254                        });
255                        $('#spiplistes-log-close').attr('title', '" . _T('spiplistes:fermer_journal'). "');
256                        $('#spiplistes-log-reload-btn').attr('title', '" . _T('spiplistes:recharger_journal'). "');
257                       
258                        log_switch = true;
259                        /*
260                         * maintenant que l'objet parent est créé, on peut rajouter les évènements
261                         * sur ses enfants
262                         */
263                        $('#spiplistes-log-close').hover(function(){
264                                $(this).addClass('spiplistes-hover');
265                        },function(){
266                                $(this).removeClass('spiplistes-hover');
267                        });
268                        $('#spiplistes-log-close').click(function(){
269                                log_switch = false;
270                                $('#spiplistes-log-bg').remove();
271                                $('#spiplistes-log-div').remove();
272                        });
273                        $('#spiplistes-log-reload-btn').hover(function(){
274                                $(this).addClass('spiplistes-hover');
275                        },function(){
276                                $(this).removeClass('spiplistes-hover');
277                        });
278                        $('#spiplistes-log-reload-btn').click(function(){
279                                $(document).log_loader();
280                        });
281                        /*
282                         * Demande le journal via Ajax
283                         */
284                        $(document).log_loader();
285                }
286                return(false);
287        });
288               
289}); // end $(document).ready()
290        ";
291       
292        $result = spiplistes_envelopper_script(spiplistes_compacter_script($js, 'js'), 'js');
293       
294        return($result);
295}
296
297/*
298 * @return: le contenu du journal (log) du plugin
299 */
300function spiplistes_journal_lire ($logname = NULL, $logdir = NULL, $logsuf = NULL) {
301        // definition des constantes 1.9.3 pour les SPIP anterieurs
302        if (!defined('_DIR_LOG')){
303                define('_DIR_LOG',defined('_DIR_TMP')?_DIR_TMP:_DIR_SESSION);
304        }
305        if (!defined('_FILE_LOG_SUFFIX')){
306                define('_FILE_LOG_SUFFIX','.log');
307        }
308        if (!defined('_FILE_LOG')){
309                define('_FILE_LOG','spip');
310        }
311       
312        $logname = ($logname === NULL ? _FILE_LOG : $logname);
313       
314        $logfile = 
315                (spiplistes_spip_est_inferieur_193())
316                ? _DIR_TMP . $logname . '.log' 
317                : ($logdir===NULL ? _DIR_LOG : $logdir)
318                        . (test_espace_prive()?'prive_':'') //distinguer les logs prives et publics
319                        . $logname
320                        . ($logsuf === NULL ? _FILE_LOG_SUFFIX : $logsuf)
321                ;
322
323        $result =
324                (file_exists($logfile))
325                //? file_get_contents($logfile, false, null, 0, 2048)
326                ? file_get_contents($logfile)
327                : _T('fichier_introuvable', array('fichier', $logfile))
328                ;
329       
330        $result = ""
331                . "<div class='verdana2' style='height:360px;overflow:scroll;background:url(rien.gif)'>\n"
332                . nl2br($result)
333                . "</div>\n"
334                ;
335               
336        return($result);
337}
338
339function spiplistes_journal_titre() {
340        return(_T('spiplistes:titre_page_voir_journal'));
341}
342 
343?>
Note: See TracBrowser for help on using the repository browser.