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

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

[mail_supervisor] new gestion of copy carbon

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
[4054]188function corrige_header($Carbonne,$headers,$args)
[4050]189        {
[4054]190        global $mails_options,$conf_mail,$mailto,$infos_message;
191
192 if (!empty($args[$Carbonne]))
[4050]193         {
[4049]194 
[4050]195                if ( count($args[$Carbonne]) > 0 ) 
196                {
[4054]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                 }
[4050]201                }
202        } else {
203        // Raz Bcc, Cc dans headers
204                        $headers = preg_replace('/.*'.$Carbonne.'(.*).\n/i', "" , $headers);
205        }
206               
207               
[4049]208return $headers;
[4020]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);
[4029]234
[4020]235if ($week > 0 )
236{
[4029]237
[4020]238return $week. " " .l10n('Week'). " " .  $day . " " .l10n('Day'). "s ". $heures . " ". l10n('Hour'). "s " . $minutes. " " .l10n('minute'). "s ".  $secondes." " .l10n('seconde')."s";
239}
[4029]240return $day . " " .l10n('Day'). "s ". $heures . " ". l10n('Hour'). "s " . $minutes. " " .l10n('Minute'). "s ".  $secondes." " .l10n('Seconde')."s";
[4020]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
[4029]257function vérif_base()
258{
259
[4054]260global $lang;
261 load_language('plugin.lang', MAIL_SUPERV_PATH);
262
[4029]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               
[4040]278                `quarantaine` TEXT ,
[4029]279                `date_quarantaine` INT NOT NULL DEFAULT '0',
280                `quarantaine_periode` TEXT  ,   
281                       
282               
[4040]283                `message` TEXT  ,
284                `message_test` TEXT  ,
285                `header_text` TEXT ,
[4029]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)) { 
[4040]323          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `quarantaine` TEXT  , ";
[4029]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                           
[4040]338                if (!in_array( "message_test",$table)) {       
339          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `message_test` TEXT   ";
340                           pwg_query($query);            }                                 
341                           
[4029]342                if (!in_array( "header_text",$table)) { 
343          $query = "ALTER TABLE `".MAIL_SUPERV_TABLE."` ADD `header_text` TEXT   ";
344                           pwg_query($query);            }             
345                                                                       
[4051]346//-------------------------------------------------------                           
347
[4029]348      $query = "
[4051]349                SELECT COUNT(`id`) as total
350                FROM `".MAIL_SUPERV_TABLE."`
351                         
352                ;";     
[4029]353//==============================================================================               
[4051]354list($count) = mysql_fetch_row(pwg_query($query));
355
356
[4029]357  if ($count == 0)
358  {
359         $next_day = time()  ;
360         $date_quarantaine=time();
[4051]361
362         
[4029]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,
[4051]368         message_test,
[4029]369         message,header_text)
370    VALUES (1,
371        0,
372        '.time().',
373        2000,
[4051]374        "1 '.l10n('Week').'",
[4029]375       
376        0,
377        '.time().',
378        10,
[4051]379        "2 '.l10n('Day').'",
[4029]380       
381        false,
382        '.time().',
[4051]383        "2 '.l10n('Day').'",
[4029]384       
385        "Init.",
[4049]386        "'.l10n('supervisor').'",
[4029]387         "'.l10n('hello').'"
388         )
389         ;';
390
391
392        pwg_query($q);
393       
394        } 
395}
[4054]396
397
[4029]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
[4040]411function get_liste($group_id)
[4020]412{
[4040]413global $conf ;
[4029]414
[4040]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.' ';
[4029]429
430
[4040]431 
432 $groups=array();
[4020]433  $datas = pwg_query($query);
434 
435 
436  if (!empty($datas))
437  {
[4040]438    while ($group = mysql_fetch_array($datas))
[4020]439    {
[4040]440
441       
442      if (!empty($group['email']))
[4020]443      {
[4040]444        array_push($groups, format_email($group['username'], $group['email'] ));
[4020]445      }
446    }
[4040]447  } 
448  return $groups ;
[4020]449 
450}
451
452?>
Note: See TracBrowser for help on using the repository browser.