source: spip-zone/_plugins_/auteurs_last/inc/aula_pipeline_header_prive.php @ 48925

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

Dans la table *_auteurs, le champ 'en_ligne' semble plus pertinant en SPIP 2 que 'maj' pour afficher la date de dernière connexion. A tester/confirmer.

  • Property svn:eol-style set to LF
  • Property svn:keywords set to LastChangedBy LastChangedDate LastChangedRevision
File size: 5.3 KB
Line 
1<?php 
2
3        // inc/aula_pipeline_insert_head.php
4       
5        // $LastChangedRevision: 48925 $
6        // $LastChangedBy: paladin@quesaco.org $
7        // $LastChangedDate: 2011-06-19 16:15:06 +0000 (Sun, 19 Jun 2011) $
8
9        /*****************************************************
10        Copyright (C) 2008 Christian PAULUS
11        cpaulus@quesaco.org - http://www.quesaco.org/
12        /*****************************************************
13       
14        This file is part of AuLa.
15       
16        AuLa is free software; you can redistribute it and/or modify
17        it under the terms of the GNU General Public License as published by
18        the Free Software Foundation; either version 2 of the License, or
19        (at your option) any later version.
20       
21        AuLa is distributed in the hope that it will be useful,
22        but WITHOUT ANY WARRANTY; without even the implied warranty of
23        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24        GNU General Public License for more details.
25       
26        You should have received a copy of the GNU General Public License
27        along with AuLa; if not, write to the Free Software
28        Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
29       
30        /*****************************************************
31       
32        Ce fichier est un des composants de AuLa.
33       
34        AuLa est un programme libre, vous pouvez le redistribuer et/ou le modifier
35        selon les termes de la Licence Publique Generale GNU publiée par
36        la Free Software Foundation (version 2 ou bien toute autre version ultérieure
37        choisie par vous).
38       
39        AuLa est distribué car potentiellement utile, mais SANS AUCUNE GARANTIE,
40        ni explicite ni implicite, y compris les garanties de commercialisation ou
41        d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU
42        pour plus de détails.
43       
44        Vous devez avoir reçu une copie de la Licence Publique Generale GNU
45        en meme temps que ce programme ; si ce n'est pas le cas, ecrivez à la 
46        Free Software Foundation, Inc.,
47        59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis.
48       
49        *****************************************************/
50       
51if (!defined("_ECRIRE_INC_VERSION")) return;
52
53function aula_header_prive ($flux) {
54        global $connect_toutes_rubriques;
55
56        $exec = _request('exec');
57       
58        if(
59                ($exec == 'auteurs')
60                && $connect_toutes_rubriques
61                ) {
62
63                $script = "";
64               
65                if($ii = aula_last_array()) {
66                        foreach(aula_last_array() as $key => $value) {
67                                $script .= $key.":"
68                                        .
69                                                (
70                                                        (is_bool($value)) 
71                                                        ?       (
72                                                                        ($value)
73                                                                        ? 'true' // actuellement connecté
74                                                                        : 'false' // ne s'est jamais connecté
75                                                                )
76                                                        :       "'".affdate_jourcourt($value)." ".heures($value).":".minutes($value)."'"
77                                                )
78                                        .",";
79                        }
80                        $script = rtrim($script, ",");
81                }
82               
83                //
84                $script = "var aula_auteurs={".$script."};";
85                $script = "
86
87<!-- aula -->
88<style type='text/css'>
89<!--
90.aula-b {
91        border-top: 1px solid #ccc;
92}
93-->
94</style>
95<script language='JavaScript' type='text/javascript'>
96$script
97var aula_class = 'class=\'aula-b\'';
98function aula_completer () {
99        $('#auteurs table tr').each(function(i){
100                if(!i) v = '"._T(_AULA_PREFIX.':connexion')."';
101                else {
102                        v = $(this).find('td.verdana1 a').attr('href');
103                        var e = /(id_auteur=)([0-9]+)/;
104                        e.exec(v);
105                        v = RegExp.$2;
106                        var c;
107                        if(aula_auteurs[v]) {
108                                v = aula_auteurs[v];
109                                if(v.length > 5) {
110                                        v = '<span class=\'arial1\'>' + v + '<\/span>';
111                                }
112                                else {
113                                        v = $(this).find('img').attr('src');
114                                        v = '<img src=\'' + v + '\' title=\'".($ii = trim(_T(_AULA_PREFIX.':actuellement_connecte'),":"))."\' =alt=\'".$ii."\' \/>';
115                                }
116                                c = aula_class;
117                        }
118                        else if(v >= 1) {
119                                v = '<span class=\'arial1\' title=\'"._T(_AULA_PREFIX.':jamais_connecte')."\'>?<\/span>';
120                                c = aula_class;
121                        }
122                        else {
123                                c = v = '';
124                        }
125                }
126                $(this).append('<td ' + c + '>' + v + '</td>');
127         });
128}
129jQuery().ready(function(){
130        aula_completer (); "
131                /* supprime les appels ajax de la boite des auteurs */
132        . "
133        $('#auteurs td.arial1 a').removeAttr('onclick');
134        $('#auteurs td.arial11 a').removeAttr('onclick');
135        $('#auteurs #bas a').removeAttr('onclick');
136});
137</script>
138<!-- /aula -->
139                ";
140               
141        // compression du script
142        $script = preg_replace("=[[:space:]]+=", " ", $script);
143
144        $flux .= $script;
145       
146        }
147       
148        return ($flux);
149       
150} // end aula_insert_head()
151
152function aula_last_array () {
153        include_spip('inc/filtres');
154       
155        $where = ($ii = _request('statut')) ? "statut="._q($ii) : "statut='0minirezo' OR statut='1comite'";
156
157        //$current_date = date("Y-m-d H:i:s");
158        // mieux vaut demander l'heure de la base (si distante ?)
159        $current_date = spip_fetch_array(spip_query("SELECT NOW()"));
160        $current_date = $current_date['NOW()'];
161
162        // récupère les heures de connexion
163        $sql_query = "SELECT id_auteur,maj,en_ligne FROM spip_auteurs WHERE $where";
164        $sql_result = spip_query($sql_query);
165       
166        while($row = spip_fetch_array($sql_result)) {
167                $en_ligne = vider_date($row['en_ligne']);
168                $maj = vider_date($row['maj']);
169
170                $result[$row['id_auteur']] = 
171                        (!empty($en_ligne))
172                        ?       (
173                                (aula_last_interval($current_date, $en_ligne))
174                                        ? true // connexion en cours
175                                        // date dernière connexion
176                                        : (($maj > $en_ligne) ? $maj : $en_ligne)
177                                ) 
178                        : false; // ne s'est pas encore connecté
179        }
180        return($result);
181}
182
183function aula_last_interval ($current_date, $en_ligne, $interval_minutes = _AULA_DELAY_MINUTES) {
184        $en_ligne = strtotime($en_ligne);
185        $current_date = strtotime($current_date);
186        return($en_ligne > ($current_date - $interval_minutes) && $en_ligne < ($current_date + $interval_minutes));
187}
188
189?>
Note: See TracBrowser for help on using the repository browser.