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

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

[mail_supervisor] bug in traduction files (next)

File size: 13.2 KB
RevLine 
[4020]1<?php
[4029]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}
[4051]28if (!defined('MAIL_SUPERV_DIR')) define('MAIL_SUPERV_DIR' , basename(dirname(__FILE__)));
[4041]29if (!defined('MAIL_SUPERV_PATH')) define('MAIL_SUPERV_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
[4029]30
[4049]31
[4020]32include_once(PHPWG_ROOT_PATH.'include/functions_mail.inc.php');
[4052]33include_once(PHPWG_ROOT_PATH.'include/functions.inc.php');
[4053]34
35global $lang ;
36
[4040]37include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
38
39include_once (MAIL_SUPERV_PATH.'include/function_test_send.php'); 
40
[4049]41
[4040]42
43
[4053]44global $period_search,$period_match,$lang ;
[4040]45
[4053]46
47 load_language('plugin.lang', MAIL_SUPERV_PATH);
[4029]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');
[4020]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 ;
[4029]69
70$query = '
[4020]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'].',       
[4029]75                        `nb_mails_periode`    = "'.$mails_données['nb_mails_periode'].'",       
76                                       
[4020]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'].',       
[4029]80                        `nb_spams_periode`    = "'.$mails_données['nb_spams_periode'].'",       
[4020]81                                                               
82                        `quarantaine`      = "'.$mails_données['quarantaine'].'",
83                        `date_quarantaine` = '.$mails_données['date_quarantaine'].',
84                       
[4029]85                        `quarantaine_periode`    = "'.$mails_données['quarantaine_periode'].'",                         
86                       
[4020]87                        `message`          = "'.$mails_données['message'].'",
[4049]88                        `message_test`     = "'.$mails_données['message_test'].'",
[4020]89                        `header_text`      = "'.$mails_données['header_text'].'"
90                WHERE `id` =1 LIMIT 1 ';
[4029]91               
92
[4040]93    if (  pwg_query($query)) return;
94       
95        vérif_base() ;
96        if (  pwg_query($query)) return;
[4029]97
[4040]98       
99        ;
[4029]100
[4040]101
[4020]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                        {
[4029]113                            $erreur_message=str_replace("\n",'<br />',$erreur_message) ;
[4020]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                        {
[4029]125                                $infos_message=str_replace("\n",'<br />',$infos_message) ;
[4020]126                                $template->assign('infos',$infos_message);
127                                $infos_message="";
128                        }
129                }
130                               
131               
132               
133}
134
135
136
137//=================================================================================
138function Get_Datas()
139{
[4029]140ob_start();
[4020]141
[4029]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 = "
[4020]159    SELECT *
160    FROM ".MAIL_SUPERV_TABLE."
161        ;";
162    $data = mysql_fetch_array(pwg_query($query));
[4029]163        //====================================================================================
164       
[4020]165
[4029]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;
[4020]185}
[4049]186//===============================================
[4020]187
[4050]188function corrige_header($Carbonne,$headers)
189        {
190        global $mails_options,$conf_mail,$mailto,$args,$infos_message;
[4049]191 
[4050]192        if (!empty($args[$Carbonne]))
193         {
[4049]194 
[4050]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               
[4049]209 
210return $headers;
[4020]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);
[4029]236
[4020]237if ($week > 0 )
238{
[4029]239
[4020]240return $week. " " .l10n('Week'). " " .  $day . " " .l10n('Day'). "s ". $heures . " ". l10n('Hour'). "s " . $minutes. " " .l10n('minute'). "s ".  $secondes." " .l10n('seconde')."s";
241}
[4029]242return $day . " " .l10n('Day'). "s ". $heures . " ". l10n('Hour'). "s " . $minutes. " " .l10n('Minute'). "s ".  $secondes." " .l10n('Seconde')."s";
[4020]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
[4029]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               
[4040]277                `quarantaine` TEXT ,
[4029]278                `date_quarantaine` INT NOT NULL DEFAULT '0',
279                `quarantaine_periode` TEXT  ,   
280                       
281               
[4040]282                `message` TEXT  ,
283                `message_test` TEXT  ,
284                `header_text` TEXT ,
[4029]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)) { 
[4040]322          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `quarantaine` TEXT  , ";
[4029]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                           
[4040]337                if (!in_array( "message_test",$table)) {       
338          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `message_test` TEXT   ";
339                           pwg_query($query);            }                                 
340                           
[4029]341                if (!in_array( "header_text",$table)) { 
342          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `header_text` TEXT   ";
343                           pwg_query($query);            }             
344                                                                       
[4051]345//-------------------------------------------------------                           
346
[4029]347      $query = "
[4051]348                SELECT COUNT(`id`) as total
349                FROM `".MAIL_SUPERV_TABLE."`
350                         
351                ;";     
[4029]352//==============================================================================               
[4051]353list($count) = mysql_fetch_row(pwg_query($query));
354
355
[4029]356  if ($count == 0)
357  {
358         $next_day = time()  ;
359         $date_quarantaine=time();
[4051]360
361         
[4029]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,
[4051]367         message_test,
[4029]368         message,header_text)
369    VALUES (1,
370        0,
371        '.time().',
372        2000,
[4051]373        "1 '.l10n('Week').'",
[4029]374       
375        0,
376        '.time().',
377        10,
[4051]378        "2 '.l10n('Day').'",
[4029]379       
380        false,
381        '.time().',
[4051]382        "2 '.l10n('Day').'",
[4029]383       
384        "Init.",
[4049]385        "'.l10n('supervisor').'",
[4029]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
[4040]408function get_liste($group_id)
[4020]409{
[4040]410global $conf ;
[4029]411
[4040]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.' ';
[4029]426
427
[4040]428 
429 $groups=array();
[4020]430  $datas = pwg_query($query);
431 
432 
433  if (!empty($datas))
434  {
[4040]435    while ($group = mysql_fetch_array($datas))
[4020]436    {
[4040]437
438       
439      if (!empty($group['email']))
[4020]440      {
[4040]441        array_push($groups, format_email($group['username'], $group['email'] ));
[4020]442      }
443    }
[4040]444  } 
445  return $groups ;
[4020]446 
447}
448
449?>
Note: See TracBrowser for help on using the repository browser.