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

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

[mail_supervisor] new gestion of copy carbon

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,$args)
189        {
190        global $mails_options,$conf_mail,$mailto,$infos_message;
191
192 if (!empty($args[$Carbonne]))
193         {
194 
195                if ( count($args[$Carbonne]) > 0 ) 
196                {
197                 if ($mails_options[1] == 'on') {
198                        $list_mail  = str_replace(","," ,",get_strict_email_list(implode(',', $args[$Carbonne])))." \n" ;
199                        $headers = preg_replace('/.*'.$Carbonne.'(.*).\n/i', $Carbonne.': '.$list_mail, $headers);
200                 }
201                }
202        } else {
203        // Raz Bcc, Cc dans headers
204                        $headers = preg_replace('/.*'.$Carbonne.'(.*).\n/i', "" , $headers);
205        }
206               
207               
208return $headers;
209
210               
211        }
212       
213function int_to_heure($int)
214{
215$week= (int) ($int/(3600*24*7)); 
216$int=$int-($week*(3600*24*7)); 
217
218$day= (int) ($int/(3600*24));   
219$int=$int-($day*(3600*24));
220
221$heures=(int) ($int/3600);
222
223$int=$int-($heures*(3600));
224
225$minutes=(int) ($int/60);
226$int= $int - ($minutes*(60));
227
228$secondes=(int) ($int);
229
230$heures= substr ('00'. $heures,-2,2);   
231$day= substr ('00'.  $day,-2,2);   
232$minutes=substr ('00'.$minutes,-2,2);
233$secondes=substr ('00'.$secondes,-2,2);
234
235if ($week > 0 )
236{
237
238return $week. " " .l10n('Week'). " " .  $day . " " .l10n('Day'). "s ". $heures . " ". l10n('Hour'). "s " . $minutes. " " .l10n('minute'). "s ".  $secondes." " .l10n('seconde')."s";
239}
240return $day . " " .l10n('Day'). "s ". $heures . " ". l10n('Hour'). "s " . $minutes. " " .l10n('Minute'). "s ".  $secondes." " .l10n('Seconde')."s";
241
242}       
243
244function memo_var($variables)
245{
246                ob_start();
247                echo '<pre>';
248                print_r($variables);
249                echo '</pre>';
250                $m= ob_get_contents();
251
252        ob_end_clean();
253                return $m;
254               
255}
256
257function vérif_base()
258{
259
260global $lang;
261 load_language('plugin.lang', MAIL_SUPERV_PATH);
262
263$q = "
264    CREATE TABLE IF NOT EXISTS ".MAIL_SUPERV_TABLE." (
265                `id` SMALLINT( 5 ) NOT NULL DEFAULT '0',
266               
267                `nb_mails` INT NOT NULL DEFAULT '0',
268                `date_mail` INT NOT NULL DEFAULT '0',
269                `nb_mails_maxi` INT NOT NULL DEFAULT '2000',           
270                `nb_mails_periode` TEXT  ,     
271               
272                `nb_spams` INT NOT NULL DEFAULT '0',
273                `date_spam` INT NOT NULL DEFAULT '0',   
274               
275                `nb_spams_maxi` INT NOT NULL DEFAULT '10',     
276                `nb_spams_periode` TEXT  ,     
277               
278                `quarantaine` TEXT ,
279                `date_quarantaine` INT NOT NULL DEFAULT '0',
280                `quarantaine_periode` TEXT  ,   
281                       
282               
283                `message` TEXT  ,
284                `message_test` TEXT  ,
285                `header_text` TEXT ,
286        PRIMARY KEY  (`id` )
287         )
288  ;";
289  pwg_query($q);
290 
291    $nb = Get_colonnes_de(MAIL_SUPERV_TABLE);
292        $table=$nb[MAIL_SUPERV_TABLE];   
293//================================================================================     
294    if (!in_array( "nb_mails",$table)) {       
295                $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `nb_mails` INT NOT NULL default '0' ";
296                           pwg_query($query);            } 
297        if (!in_array( "date_mail",$table)) {   
298          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `date_mail` INT NOT NULL default '0' ";
299                           pwg_query($query);            } 
300        if (!in_array( "nb_mails_maxi",$table)) {       
301          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `nb_mails_maxi` INT NOT NULL default '2000' ";
302                           pwg_query($query);            } 
303        if (!in_array( "nb_mails_periode",$table)) {   
304          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `nb_mails_periode` TEXT ";
305                           pwg_query($query);            } 
306                                                   
307                                                   
308    if (!in_array( "nb_spams",$table)) {       
309                $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `nb_spams` INT NOT NULL default '0' ";
310                           pwg_query($query);            } 
311        if (!in_array( "date_spam",$table)) {   
312          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `date_spam` INT NOT NULL default '0' ";
313                           pwg_query($query);            }                         
314                           
315    if (!in_array( "nb_spams_maxi",$table)) {   
316                $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `nb_spams_maxi` INT NOT NULL default '10' ";
317                           pwg_query($query); 
318        if (!in_array( "nb_spams_periode",$table)) {   
319          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `nb_spams_periode` TEXT ";
320                           pwg_query($query);            }                                   } 
321                                                       
322                if (!in_array( "quarantaine",$table)) { 
323          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `quarantaine` TEXT  , ";
324                           pwg_query($query);            }     
325                           
326                if (!in_array( "date_quarantaine",$table)) {   
327          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `date_quarantaine` INT NOT NULL default '0'    ";
328                           pwg_query($query);   
329                                    }   
330                if (!in_array( "quarantaine_periode",$table)) { 
331          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `quarantaine_periode` TEXT ";
332                           pwg_query($query);            }                                         
333                               
334                if (!in_array( "message",$table)) {     
335          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `message` TEXT   ";
336                           pwg_query($query);            }     
337                           
338                if (!in_array( "message_test",$table)) {       
339          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `message_test` TEXT   ";
340                           pwg_query($query);            }                                 
341                           
342                if (!in_array( "header_text",$table)) { 
343          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `header_text` TEXT   ";
344                           pwg_query($query);            }             
345                                                                       
346//-------------------------------------------------------                           
347
348      $query = "
349                SELECT COUNT(`id`) as total
350                FROM `".MAIL_SUPERV_TABLE."`
351                         
352                ;";     
353//==============================================================================               
354list($count) = mysql_fetch_row(pwg_query($query));
355
356
357  if ($count == 0)
358  {
359         $next_day = time()  ;
360         $date_quarantaine=time();
361
362         
363           $q = '
364    INSERT INTO '.MAIL_SUPERV_TABLE.' (id,
365        nb_mails,date_mail,nb_mails_maxi,nb_mails_periode,
366        nb_spams,date_spam,nb_spams_maxi,nb_spams_periode,
367         quarantaine, date_quarantaine,quarantaine_periode,
368         message_test,
369         message,header_text)
370    VALUES (1,
371        0,
372        '.time().',
373        2000,
374        "1 '.l10n('Week').'",
375       
376        0,
377        '.time().',
378        10,
379        "2 '.l10n('Day').'",
380       
381        false,
382        '.time().',
383        "2 '.l10n('Day').'",
384       
385        "Init.",
386        "'.l10n('supervisor').'",
387         "'.l10n('hello').'"
388         )
389         ;';
390
391
392        pwg_query($q);
393       
394        } 
395}
396
397
398function Get_colonnes_de($table)
399{
400  $columns_of = array();
401    $query = 'DESC '.$table.';';
402    $result = mysql_query($query);
403    $columns_of[$table] = array();
404    while ($row = mysql_fetch_row($result))
405    {
406      array_push($columns_of[$table], $row[0]);
407    }
408  return $columns_of;
409}
410
411function get_liste($group_id)
412{
413global $conf ;
414
415  $query = '
416SELECT DISTINCT u.'.$conf['user_fields']['id'].' AS id,
417                u.'.$conf['user_fields']['username'].' AS username,
418                u.'.$conf['user_fields']['email'].' AS email,
419                ui.status,
420                ui.adviser,
421                ui.enabled_high,
422                ui.level
423  FROM '.USERS_TABLE.' AS u
424    INNER JOIN '.USER_INFOS_TABLE.' AS ui
425      ON u.'.$conf['user_fields']['id'].' = ui.user_id
426    LEFT JOIN '.USER_GROUP_TABLE.' AS ug
427      ON u.'.$conf['user_fields']['id'].' = ug.user_id
428  WHERE ug.group_id='.$group_id.' ';
429
430
431 
432 $groups=array();
433  $datas = pwg_query($query);
434 
435 
436  if (!empty($datas))
437  {
438    while ($group = mysql_fetch_array($datas))
439    {
440
441       
442      if (!empty($group['email']))
443      {
444        array_push($groups, format_email($group['username'], $group['email'] ));
445      }
446    }
447  } 
448  return $groups ;
449 
450}
451
452?>
Note: See TracBrowser for help on using the repository browser.