source: extensions/Mail_supervisor/include/fonctions.php @ 4053

Last change on this file since 4053 was 4053, checked in by cljosse, 15 years ago

[mail_supervisor] bug in traduction files (next)

File size: 13.2 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | Piwigo - a PHP based picture gallery                                  |
4// +-----------------------------------------------------------------------+
5// | Copyright(C) 2008-2009 Piwigo Team                  http://piwigo.org |
6// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
7// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
8// +-----------------------------------------------------------------------+
9// | This program is free software; you can redistribute it and/or modify  |
10// | it under the terms of the GNU General Public License as published by  |
11// | the Free Software Foundation                                          |
12// |                                                                       |
13// | This program is distributed in the hope that it will be useful, but   |
14// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
15// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
16// | General Public License for more details.                              |
17// |                                                                       |
18// | You should have received a copy of the GNU General Public License     |
19// | along with this program; if not, write to the Free Software           |
20// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
21// | USA.                                                                  |
22// +-----------------------------------------------------------------------+
23
24if (!defined('PHPWG_ROOT_PATH'))
25{
26  die('Hacking attempt!');
27}
28if (!defined('MAIL_SUPERV_DIR')) define('MAIL_SUPERV_DIR' , basename(dirname(__FILE__)));
29if (!defined('MAIL_SUPERV_PATH')) define('MAIL_SUPERV_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
30
31
32include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
33include_once(PHPWG_ROOT_PATH.'include/functions.inc.php');
34
35global $lang ;
36
37include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
38
39include_once (MAIL_SUPERV_PATH.'include/function_test_send.php'); 
40
41
42
43
44global $period_search,$period_match,$lang ;
45
46
47 load_language('plugin.lang', MAIL_SUPERV_PATH);
48        $period_search=array("D","H","M","S","W");
49        array_push($period_search,l10n('Week'),l10n('Day'),l10n('Hour'),l10n('Minute'),l10n('Seconde'));
50       
51        $period_match=array(" day"," hour"," minute"," second"," week");       
52        array_push($period_match,'week','day','hour','minute','seconde');
53
54function sauve_options()
55{
56global $mails_options ;
57        $query = '
58    UPDATE '.CONFIG_TABLE.'
59    SET value="'.$mails_options[0]. ',' .$mails_options[1]. ',' .$mails_options[2].',' .$mails_options[3]. ',' .$mails_options[4]. '"
60    WHERE param="mail_superv"
61    LIMIT 1';
62 pwg_query($query);
63
64}
65//=================================================================================
66function sauve_données()
67{
68global $mails_données ;
69
70$query = '
71        UPDATE '.MAIL_SUPERV_TABLE.'
72        SET `nb_mails`         = '.$mails_données['nb_mails'].',
73                        `date_mail`        = '.$mails_données['date_mail'].',
74                        `nb_mails_maxi`    = '.$mails_données['nb_mails_maxi'].',       
75                        `nb_mails_periode`    = "'.$mails_données['nb_mails_periode'].'",       
76                                       
77                        `nb_spams`         = '.$mails_données['nb_spams'].',
78                        `date_spam`        = '.$mails_données['date_spam'].',
79                        `nb_spams_maxi`    = '.$mails_données['nb_spams_maxi'].',       
80                        `nb_spams_periode`    = "'.$mails_données['nb_spams_periode'].'",       
81                                                               
82                        `quarantaine`      = "'.$mails_données['quarantaine'].'",
83                        `date_quarantaine` = '.$mails_données['date_quarantaine'].',
84                       
85                        `quarantaine_periode`    = "'.$mails_données['quarantaine_periode'].'",                         
86                       
87                        `message`          = "'.$mails_données['message'].'",
88                        `message_test`     = "'.$mails_données['message_test'].'",
89                        `header_text`      = "'.$mails_données['header_text'].'"
90                WHERE `id` =1 LIMIT 1 ';
91               
92
93    if (  pwg_query($query)) return;
94       
95        vérif_base() ;
96        if (  pwg_query($query)) return;
97
98       
99        ;
100
101
102}
103//=================================================================================
104function affiche_message()
105{
106 global $template,$infos_message,$erreur_message ;;
107 
108  if (isset($erreur_message))
109                {       
110 
111                if ($erreur_message <> "")
112                        {
113                            $erreur_message=str_replace("\n",'<br />',$erreur_message) ;
114                                $template->assign('errors',$erreur_message);
115                                $erreur_message="";
116                        }
117                }
118               
119       
120  if (isset($infos_message))
121                {       
122               
123                if ($infos_message <> "")
124                        {
125                                $infos_message=str_replace("\n",'<br />',$infos_message) ;
126                                $template->assign('infos',$infos_message);
127                                $infos_message="";
128                        }
129                }
130                               
131               
132               
133}
134
135
136
137//=================================================================================
138function Get_Datas()
139{
140ob_start();
141
142        $data=Lire_datas();
143
144
145                        $m= ob_get_contents();
146        ob_end_clean();
147       
148        if (strlen($m)>0) {
149        vérif_base() ;
150        $data=Lire_datas();
151        }
152    return $data;
153}
154
155function Lire_datas()
156{
157global $period_search,$period_match ;
158 $query = "
159    SELECT *
160    FROM ".MAIL_SUPERV_TABLE."
161        ;";
162    $data = mysql_fetch_array(pwg_query($query));
163        //====================================================================================
164       
165
166    $mails_periode="+".str_replace($period_search, $period_match, $data['nb_mails_periode']);
167        $next_day =  strtotime(  $mails_periode,$data['date_mail']);
168        $data['rest_mail']=  ( $next_day )-time() ;
169       
170                               
171        $spams_periode="+".str_replace($period_search, $period_match, $data['nb_spams_periode']);
172        $next_day =  strtotime(  $spams_periode,$data['date_spam']);
173        $data['rest_spam']=  ( $next_day )-time() ;
174
175 
176        $quarantaine_periode="+".str_replace($period_search, $period_match, $data['quarantaine_periode']);
177        $next_day =  strtotime( $quarantaine_periode,$data['date_quarantaine']);       
178        if ($data['quarantaine']) {
179        $data['reste'] =   ( $next_day )-time() ;
180        }else{
181        $data['reste'] = 0;
182        }
183       
184         return $data;
185}
186//===============================================
187
188function corrige_header($Carbonne,$headers)
189        {
190        global $mails_options,$conf_mail,$mailto,$args,$infos_message;
191 
192        if (!empty($args[$Carbonne]))
193         {
194 
195                if ( count($args[$Carbonne]) > 0 ) 
196                {
197                  if ($mails_options[1] == 'on') {
198                  // Correction "< >"
199                        $list_mail  = get_strict_email_list(implode(',', $args[$Carbonne])) ;
200                        $headers = preg_replace('/.*'.$Carbonne.'(.*).\n/i', $Carbonne.' : '.$list_mail."\n", $headers);
201                        }
202                }
203        } else {
204        // Raz Bcc, Cc dans headers
205                        $headers = preg_replace('/.*'.$Carbonne.'(.*).\n/i', "" , $headers);
206        }
207               
208               
209 
210return $headers;
211
212               
213        }
214       
215function int_to_heure($int)
216{
217$week= (int) ($int/(3600*24*7)); 
218$int=$int-($week*(3600*24*7)); 
219
220$day= (int) ($int/(3600*24));   
221$int=$int-($day*(3600*24));
222
223$heures=(int) ($int/3600);
224
225$int=$int-($heures*(3600));
226
227$minutes=(int) ($int/60);
228$int= $int - ($minutes*(60));
229
230$secondes=(int) ($int);
231
232$heures= substr ('00'. $heures,-2,2);   
233$day= substr ('00'.  $day,-2,2);   
234$minutes=substr ('00'.$minutes,-2,2);
235$secondes=substr ('00'.$secondes,-2,2);
236
237if ($week > 0 )
238{
239
240return $week. " " .l10n('Week'). " " .  $day . " " .l10n('Day'). "s ". $heures . " ". l10n('Hour'). "s " . $minutes. " " .l10n('minute'). "s ".  $secondes." " .l10n('seconde')."s";
241}
242return $day . " " .l10n('Day'). "s ". $heures . " ". l10n('Hour'). "s " . $minutes. " " .l10n('Minute'). "s ".  $secondes." " .l10n('Seconde')."s";
243
244}       
245
246function memo_var($variables)
247{
248                ob_start();
249                echo '<pre>';
250                print_r($variables);
251                echo '</pre>';
252                $m= ob_get_contents();
253
254        ob_end_clean();
255                return $m;
256               
257}
258
259function vérif_base()
260{
261
262$q = "
263    CREATE TABLE IF NOT EXISTS ".MAIL_SUPERV_TABLE." (
264                `id` SMALLINT( 5 ) NOT NULL DEFAULT '0',
265               
266                `nb_mails` INT NOT NULL DEFAULT '0',
267                `date_mail` INT NOT NULL DEFAULT '0',
268                `nb_mails_maxi` INT NOT NULL DEFAULT '2000',           
269                `nb_mails_periode` TEXT  ,     
270               
271                `nb_spams` INT NOT NULL DEFAULT '0',
272                `date_spam` INT NOT NULL DEFAULT '0',   
273               
274                `nb_spams_maxi` INT NOT NULL DEFAULT '10',     
275                `nb_spams_periode` TEXT  ,     
276               
277                `quarantaine` TEXT ,
278                `date_quarantaine` INT NOT NULL DEFAULT '0',
279                `quarantaine_periode` TEXT  ,   
280                       
281               
282                `message` TEXT  ,
283                `message_test` TEXT  ,
284                `header_text` TEXT ,
285        PRIMARY KEY  (`id` )
286         )
287  ;";
288  pwg_query($q);
289 
290    $nb = Get_colonnes_de(MAIL_SUPERV_TABLE);
291        $table=$nb[MAIL_SUPERV_TABLE];   
292//================================================================================     
293    if (!in_array( "nb_mails",$table)) {       
294                $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `nb_mails` INT NOT NULL default '0' ";
295                           pwg_query($query);            } 
296        if (!in_array( "date_mail",$table)) {   
297          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `date_mail` INT NOT NULL default '0' ";
298                           pwg_query($query);            } 
299        if (!in_array( "nb_mails_maxi",$table)) {       
300          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `nb_mails_maxi` INT NOT NULL default '2000' ";
301                           pwg_query($query);            } 
302        if (!in_array( "nb_mails_periode",$table)) {   
303          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `nb_mails_periode` TEXT ";
304                           pwg_query($query);            } 
305                                                   
306                                                   
307    if (!in_array( "nb_spams",$table)) {       
308                $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `nb_spams` INT NOT NULL default '0' ";
309                           pwg_query($query);            } 
310        if (!in_array( "date_spam",$table)) {   
311          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `date_spam` INT NOT NULL default '0' ";
312                           pwg_query($query);            }                         
313                           
314    if (!in_array( "nb_spams_maxi",$table)) {   
315                $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `nb_spams_maxi` INT NOT NULL default '10' ";
316                           pwg_query($query); 
317        if (!in_array( "nb_spams_periode",$table)) {   
318          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `nb_spams_periode` TEXT ";
319                           pwg_query($query);            }                                   } 
320                                                       
321                if (!in_array( "quarantaine",$table)) { 
322          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `quarantaine` TEXT  , ";
323                           pwg_query($query);            }     
324                           
325                if (!in_array( "date_quarantaine",$table)) {   
326          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `date_quarantaine` INT NOT NULL default '0'    ";
327                           pwg_query($query);   
328                                    }   
329                if (!in_array( "quarantaine_periode",$table)) { 
330          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `quarantaine_periode` TEXT ";
331                           pwg_query($query);            }                                         
332                               
333                if (!in_array( "message",$table)) {     
334          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `message` TEXT   ";
335                           pwg_query($query);            }     
336                           
337                if (!in_array( "message_test",$table)) {       
338          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `message_test` TEXT   ";
339                           pwg_query($query);            }                                 
340                           
341                if (!in_array( "header_text",$table)) { 
342          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `header_text` TEXT   ";
343                           pwg_query($query);            }             
344                                                                       
345//-------------------------------------------------------                           
346
347      $query = "
348                SELECT COUNT(`id`) as total
349                FROM `".MAIL_SUPERV_TABLE."`
350                         
351                ;";     
352//==============================================================================               
353list($count) = mysql_fetch_row(pwg_query($query));
354
355
356  if ($count == 0)
357  {
358         $next_day = time()  ;
359         $date_quarantaine=time();
360
361         
362           $q = '
363    INSERT INTO '.MAIL_SUPERV_TABLE.' (id,
364        nb_mails,date_mail,nb_mails_maxi,nb_mails_periode,
365        nb_spams,date_spam,nb_spams_maxi,nb_spams_periode,
366         quarantaine, date_quarantaine,quarantaine_periode,
367         message_test,
368         message,header_text)
369    VALUES (1,
370        0,
371        '.time().',
372        2000,
373        "1 '.l10n('Week').'",
374       
375        0,
376        '.time().',
377        10,
378        "2 '.l10n('Day').'",
379       
380        false,
381        '.time().',
382        "2 '.l10n('Day').'",
383       
384        "Init.",
385        "'.l10n('supervisor').'",
386         "'.l10n('hello').'"
387         )
388         ;';
389
390
391        pwg_query($q);
392       
393        } 
394}
395function Get_colonnes_de($table)
396{
397  $columns_of = array();
398    $query = 'DESC '.$table.';';
399    $result = mysql_query($query);
400    $columns_of[$table] = array();
401    while ($row = mysql_fetch_row($result))
402    {
403      array_push($columns_of[$table], $row[0]);
404    }
405  return $columns_of;
406}
407
408function get_liste($group_id)
409{
410global $conf ;
411
412  $query = '
413SELECT DISTINCT u.'.$conf['user_fields']['id'].' AS id,
414                u.'.$conf['user_fields']['username'].' AS username,
415                u.'.$conf['user_fields']['email'].' AS email,
416                ui.status,
417                ui.adviser,
418                ui.enabled_high,
419                ui.level
420  FROM '.USERS_TABLE.' AS u
421    INNER JOIN '.USER_INFOS_TABLE.' AS ui
422      ON u.'.$conf['user_fields']['id'].' = ui.user_id
423    LEFT JOIN '.USER_GROUP_TABLE.' AS ug
424      ON u.'.$conf['user_fields']['id'].' = ug.user_id
425  WHERE ug.group_id='.$group_id.' ';
426
427
428 
429 $groups=array();
430  $datas = pwg_query($query);
431 
432 
433  if (!empty($datas))
434  {
435    while ($group = mysql_fetch_array($datas))
436    {
437
438       
439      if (!empty($group['email']))
440      {
441        array_push($groups, format_email($group['username'], $group['email'] ));
442      }
443    }
444  } 
445  return $groups ;
446 
447}
448
449?>
Note: See TracBrowser for help on using the repository browser.