Dotclear

source: plugins/newsletter/trunk/index.php @ 2646

Revision 2646, 40.4 KB checked in by kwon, 13 years ago (diff)

Newsletter 3.7.9 : correction d'un petit bug

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ----------------------------------
3# This file is part of Newsletter, a plugin for Dotclear.
4#
5# Copyright (c) 2009-2010 Benoit de Marne.
6# benoit.de.marne@gmail.com
7# Many thanks to Association Dotclear and special thanks to Olivier Le Bris
8#
9# Licensed under the GPL version 2.0 license.
10# A copy of this license is available in LICENSE file or at
11# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
12# -- END LICENSE BLOCK ------------------------------------
13
14if (!defined('DC_CONTEXT_ADMIN')) exit;
15dcPage::check('usage,admin');
16
17# Settings compatibility test
18if (version_compare(DC_VERSION,'2.2-alpha','>=')) {
19     $blog_settings =& $core->blog->settings->newsletter;
20     $system_settings =& $core->blog->settings->system;
21} else {
22     $blog_settings =& $core->blog->settings;
23     $system_settings =& $core->blog->settings;
24}
25
26// Loading librairies
27require_once dirname(__FILE__).'/inc/class.newsletter.settings.php';
28require_once dirname(__FILE__).'/inc/class.newsletter.plugin.php';
29require_once dirname(__FILE__).'/inc/class.newsletter.core.php';
30require_once dirname(__FILE__).'/inc/class.newsletter.admin.php';
31require_once dirname(__FILE__).'/inc/class.newsletter.cron.php';
32require_once dirname(__FILE__).'/inc/class.newsletter.tools.php';
33require_once dirname(__FILE__).'/inc/class.newsletter.letter.php';
34
35// setting variables
36$plugin_name   = __('Newsletter');
37$id            = null;
38$p_url         = 'plugin.php?p=newsletter';
39
40try {
41
42$newsletter_flag = (boolean)$blog_settings->newsletter_flag;
43     
44// Recovery module
45$m = (!empty($_REQUEST['m'])) ? (string) rawurldecode($_REQUEST['m']) : 'subscribers';
46
47// Recovery tab
48$plugin_tab = 'tab_'.$m;
49
50$edit_subscriber = ('addedit'==$m && !empty($_GET['id'])) ? __('Edit') : __('Add');
51
52if (!empty($_POST['tab'])) 
53     $plugin_tab = 'tab_'.(string)$_POST['tab'];
54else if (!empty($_GET['tab'])) 
55     $plugin_tab = 'tab_'.(string)$_GET['tab'];
56
57// Recovery parameter operation
58$plugin_op = (!empty($_POST['op'])) ? (string)$_POST['op'] : 'none';
59
60// Recovery parameter action on letters
61$action =  (!empty($_POST['action'])) ? (string) $_POST['action'] : 'none';
62
63// Recovery the message to print
64if (!empty($_GET['msg'])) 
65     $msg = (string) rawurldecode($_GET['msg']);
66else if (!empty($_POST['msg'])) 
67     $msg = (string) rawurldecode($_POST['msg']);
68
69/* ----------
70 * operations
71 * ----------
72*/
73switch ($plugin_op)
74{
75     ###############################################
76     # STATE
77     ###############################################
78     
79     // Modified the activation state of the plugin
80     case 'state':
81     {
82          $m = 'maintenance';
83
84          if (empty($_POST['newsletter_flag']) !== null) {
85               
86               $newsletter_flag = (empty($_POST['newsletter_flag']))?false:true;
87               $blog_settings->put('newsletter_flag',$newsletter_flag,'boolean','Plugin status newsletter');
88               $msg = __('Plugin status updated.');
89          }
90         
91          // notification of changes to blog
92          newsletterPlugin::triggerBlog();
93
94          //$msg = __('Plugin status updated.');
95          newsletterTools::redirection($m,$msg);
96     }
97     break;
98
99     ###############################################
100     # SETTINGS
101     ###############################################
102
103     // Modified settings
104     case 'settings':
105     {
106          $m = 'settings';
107
108          if (!empty($_POST['feditoremail']) && !empty($_POST['feditorname'])) {
109               $newsletter_settings = new newsletterSettings($core);
110
111               $newsletter_settings->setEditorName($_POST['feditorname']);
112               $newsletter_settings->setEditorEmail($_POST['feditoremail']);
113                   
114               (!empty($_POST['fcaptcha']) ? $newsletter_settings->setCaptcha($_POST['fcaptcha']) : $newsletter_settings->clearCaptcha());
115               (!empty($_POST['fmode']) ? $newsletter_settings->setSendMode($_POST['fmode']) : $newsletter_settings->clearSendMode());
116               (!empty($_POST['f_use_default_format']) ? $newsletter_settings->setUseDefaultFormat($_POST['f_use_default_format']) : $newsletter_settings->clearUseDefaultFormat());
117               (!empty($_POST['fautosend']) ? $newsletter_settings->setAutosend($_POST['fautosend']) : $newsletter_settings->clearAutosend());
118               (!empty($_POST['f_send_update_post']) ? $newsletter_settings->setSendUpdatePost($_POST['f_send_update_post']) : $newsletter_settings->clearSendUpdatePost());
119               
120               /*if ($_POST['fautosend']==true || $_POST['f_send_update_post']==true) {
121                    $newsletter_settings->clearMinPosts();
122                    $newsletter_settings->clearMaxPosts();
123               } else {*/
124                    (!empty($_POST['fminposts']) ? $newsletter_settings->setMinPosts($_POST['fminposts']) : $newsletter_settings->clearMinPosts());
125                    (!empty($_POST['fmaxposts']) ? $newsletter_settings->setMaxPosts($_POST['fmaxposts']) : $newsletter_settings->clearMaxPosts());
126               //}
127               
128               if (!empty($_POST['f_excerpt_restriction'])) {
129                    $newsletter_settings->setExcerptRestriction($_POST['f_excerpt_restriction']);
130                    // dependency
131                    $newsletter_settings->clearViewContentPost();
132               } else {
133                    $newsletter_settings->clearExcerptRestriction();
134                    (!empty($_POST['f_view_content_post']) ? $newsletter_settings->setViewContentPost($_POST['f_view_content_post']) : $newsletter_settings->clearViewContentPost());
135               }
136               
137               (!empty($_POST['f_view_content_in_text_format']) ? $newsletter_settings->setViewContentInTextFormat($_POST['f_view_content_in_text_format']) : $newsletter_settings->clearViewContentInTextFormat());
138               (!empty($_POST['f_view_thumbnails']) ? $newsletter_settings->setViewThumbnails($_POST['f_view_thumbnails']) : $newsletter_settings->clearViewThumbnails());
139               (!empty($_POST['f_size_content_post']) ? $newsletter_settings->setSizeContentPost($_POST['f_size_content_post']) : $newsletter_settings->clearSizeContentPost());
140               (!empty($_POST['f_size_thumbnails']) ? $newsletter_settings->setSizeThumbnails($_POST['f_size_thumbnails']) : $newsletter_settings->clearSizeThumbnails());
141               (!empty($_POST['f_category']) ? $newsletter_settings->setCategory($_POST['f_category']) : $newsletter_settings->clearCategory());
142               (!empty($_POST['f_check_subcategories']) ? $newsletter_settings->setCheckSubCategories($_POST['f_check_subcategories']) : $newsletter_settings->clearCheckSubCategories());
143               (!empty($_POST['f_check_notification']) ? $newsletter_settings->setCheckNotification($_POST['f_check_notification']) : $newsletter_settings->clearCheckNotification());
144               (!empty($_POST['f_check_use_suspend']) ? $newsletter_settings->setCheckUseSuspend($_POST['f_check_use_suspend']) : $newsletter_settings->clearCheckUseSuspend());
145               (!empty($_POST['f_order_date']) ? $newsletter_settings->setOrderDate($_POST['f_order_date']) : $newsletter_settings->clearOrderDate());
146               (!empty($_POST['f_date_previous_send']) ? $newsletter_settings->setDatePreviousSend($_POST['f_date_previous_send']) : $newsletter_settings->setDatePreviousSend());
147               
148               // notification of changes to blog
149               $newsletter_settings->save();
150               newsletterTools::redirection($m,rawurldecode(__('Settings updated.')));
151          } else {
152               if (empty($_POST['feditoremail']))
153                    throw new Exception(__('You must input a valid email'));
154                   
155               if (empty($_POST['feditorname']))
156                    throw new Exception(__('You must input an editor')); 
157          }
158     }
159     break;
160
161     // Modified messages
162     case 'messages':
163     {
164          $m = 'messages';
165          $newsletter_settings = new newsletterSettings($core);
166         
167          // en vrac
168          (!empty($_POST['f_txt_link_visu_online']) ? $newsletter_settings->setTxtLinkVisuOnline($_POST['f_txt_link_visu_online']) : $newsletter_settings->clearTxtLinkVisuOnline());
169         
170          // newsletter
171          (!empty($_POST['f_introductory_msg']) ? $newsletter_settings->setIntroductoryMsg($_POST['f_introductory_msg']) : $newsletter_settings->clearIntroductoryMsg());
172          (!empty($_POST['f_concluding_msg']) ? $newsletter_settings->setConcludingMsg($_POST['f_concluding_msg']) : $newsletter_settings->clearConcludingMsg());
173          (!empty($_POST['f_presentation_msg']) ? $newsletter_settings->setPresentationMsg($_POST['f_presentation_msg']) : $newsletter_settings->clearPresentationMsg());
174          (!empty($_POST['f_presentation_posts_msg']) ? $newsletter_settings->setPresentationPostsMsg($_POST['f_presentation_posts_msg']) : $newsletter_settings->clearPresentationPostsMsg());
175          (!empty($_POST['f_newsletter_subject']) ? $newsletter_settings->setNewsletterSubject($_POST['f_newsletter_subject']) : $newsletter_settings->clearNewsletterSubject());
176
177          // confirm
178          (!empty($_POST['f_txt_intro_confirm']) ? $newsletter_settings->setTxtIntroConfirm($_POST['f_txt_intro_confirm']) : $newsletter_settings->clearTxtIntroConfirm());
179          (!empty($_POST['f_txtConfirm']) ? $newsletter_settings->setTxtConfirm($_POST['f_txtConfirm']) : $newsletter_settings->clearTxtConfirm());
180          (!empty($_POST['f_confirm_subject']) ? $newsletter_settings->setConfirmSubject($_POST['f_confirm_subject']) : $newsletter_settings->clearConfirmSubject());
181          (!empty($_POST['f_confirm_msg']) ? $newsletter_settings->setConfirmMsg($_POST['f_confirm_msg']) : $newsletter_settings->clearConfirmMsg());
182          (!empty($_POST['f_concluding_confirm_msg']) ? $newsletter_settings->setConcludingConfirmMsg($_POST['f_concluding_confirm_msg']) : $newsletter_settings->clearConcludingConfirmMsg());
183
184          // disable
185          (!empty($_POST['f_txt_intro_disable']) ? $newsletter_settings->setTxtIntroDisable($_POST['f_txt_intro_disable']) : $newsletter_settings->clearTxtIntroDisable());
186          (!empty($_POST['f_txtDisable']) ? $newsletter_settings->setTxtDisable($_POST['f_txtDisable']) : $newsletter_settings->clearTxtDisable());
187          (!empty($_POST['f_disable_subject']) ? $newsletter_settings->setDisableSubject($_POST['f_disable_subject']) : $newsletter_settings->clearDisableSubject());
188          (!empty($_POST['f_disable_msg']) ? $newsletter_settings->setDisableMsg($_POST['f_disable_msg']) : $newsletter_settings->clearDisableMsg());
189          (!empty($_POST['f_concluding_disable_msg']) ? $newsletter_settings->setConcludingDisableMsg($_POST['f_concluding_disable_msg']) : $newsletter_settings->clearConcludingDisableMsg());
190          (!empty($_POST['f_txt_disabled_msg']) ? $newsletter_settings->setTxtDisabledMsg($_POST['f_txt_disabled_msg']) : $newsletter_settings->clearTxtDisabledMsg());
191
192          // enable
193          (!empty($_POST['f_txt_intro_enable']) ? $newsletter_settings->setTxtIntroEnable($_POST['f_txt_intro_enable']) : $newsletter_settings->clearTxtIntroEnable());
194          (!empty($_POST['f_txtEnable']) ? $newsletter_settings->setTxtEnable($_POST['f_txtEnable']) : $newsletter_settings->clearTxtEnable());
195          (!empty($_POST['f_enable_subject']) ? $newsletter_settings->setEnableSubject($_POST['f_enable_subject']) : $newsletter_settings->clearEnableSubject());
196          (!empty($_POST['f_enable_msg']) ? $newsletter_settings->setEnableMsg($_POST['f_enable_msg']) : $newsletter_settings->clearEnableMsg());
197          (!empty($_POST['f_concluding_enable_msg']) ? $newsletter_settings->setConcludingEnableMsg($_POST['f_concluding_enable_msg']) : $newsletter_settings->clearConcludingEnableMsg());
198          (!empty($_POST['f_txt_enabled_msg']) ? $newsletter_settings->setTxtEnabledMsg($_POST['f_txt_enabled_msg']) : $newsletter_settings->clearTxtEnabledMsg());
199               
200          // suspend
201          (!empty($_POST['f_txt_intro_suspend']) ? $newsletter_settings->setTxtIntroSuspend($_POST['f_txt_intro_suspend']) : $newsletter_settings->clearTxtIntroSuspend());
202          (!empty($_POST['f_txtSuspend']) ? $newsletter_settings->setTxtSuspend($_POST['f_txtSuspend']) : $newsletter_settings->clearTxtSuspend());
203          (!empty($_POST['f_suspend_subject']) ? $newsletter_settings->setSuspendSubject($_POST['f_suspend_subject']) : $newsletter_settings->clearSuspendSubject());
204          (!empty($_POST['f_suspend_msg']) ? $newsletter_settings->setSuspendMsg($_POST['f_suspend_msg']) : $newsletter_settings->clearSuspendMsg());
205          (!empty($_POST['f_concluding_suspend_msg']) ? $newsletter_settings->setConcludingSuspendMsg($_POST['f_concluding_suspend_msg']) : $newsletter_settings->clearConcludingSuspendMsg());
206          (!empty($_POST['f_txt_suspended_msg']) ? $newsletter_settings->setTxtSuspendedMsg($_POST['f_txt_suspended_msg']) : $newsletter_settings->clearTxtSuspendedMsg());
207               
208          // changemode
209          (!empty($_POST['f_change_mode_subject']) ? $newsletter_settings->setChangeModeSubject($_POST['f_change_mode_subject']) : $newsletter_settings->clearChangeModeSubject());
210          (!empty($_POST['f_header_changemode_msg']) ? $newsletter_settings->setHeaderChangeModeMsg($_POST['f_header_changemode_msg']) : $newsletter_settings->clearHeaderChangeModeMsg());
211          (!empty($_POST['f_footer_changemode_msg']) ? $newsletter_settings->setFooterChangeModeMsg($_POST['f_footer_changemode_msg']) : $newsletter_settings->clearFooterChangeModeMsg());
212          (!empty($_POST['f_changemode_msg']) ? $newsletter_settings->setChangeModeMsg($_POST['f_changemode_msg']) : $newsletter_settings->clearChangeModeMsg());
213               
214          // resume
215          (!empty($_POST['f_resume_subject']) ? $newsletter_settings->setResumeSubject($_POST['f_resume_subject']) : $newsletter_settings->clearResumeSubject());
216          (!empty($_POST['f_header_resume_msg']) ? $newsletter_settings->setHeaderResumeMsg($_POST['f_header_resume_msg']) : $newsletter_settings->clearHeaderResumeMsg());
217          (!empty($_POST['f_footer_resume_msg']) ? $newsletter_settings->setFooterResumeMsg($_POST['f_footer_resume_msg']) : $newsletter_settings->clearFooterResumeMsg());
218                   
219          // subscribe
220          (!empty($_POST['f_msg_presentation_form']) ? $newsletter_settings->setMsgPresentationForm($_POST['f_msg_presentation_form']) : $newsletter_settings->clearMsgPresentationForm());
221          (!empty($_POST['f_form_title_page']) ? $newsletter_settings->setFormTitlePage($_POST['f_form_title_page']) : $newsletter_settings->clearFormTitlePage());
222          (!empty($_POST['f_txt_subscribed_msg']) ? $newsletter_settings->setTxtSubscribedMsg($_POST['f_txt_subscribed_msg']) : $newsletter_settings->clearTxtSubscribedMsg());
223
224          // notification of changes to blog
225          $newsletter_settings->save();
226         
227          $msg = __('Messages updated.');
228          newsletterTools::redirection($m,$msg);
229     }
230     break;
231
232     ###############################################
233     # CSS
234     ###############################################
235     
236     // write the new CSS
237     case 'write_css':   
238     {
239          $m = 'editCSS';
240         
241          if (!empty($_POST['write']))
242          {
243               $letter_css = new newsletterCSS($core);
244               $msg=$letter_css->setLetterCSS($_POST['f_content']);
245          }         
246
247          newsletterTools::redirection($m,$msg);
248     }
249     break;         
250     
251     ###############################################
252     # PLANIFICATION
253     ###############################################
254     
255     // schedule newsletter
256     case 'schedule':
257     {
258          $m = 'planning';
259
260          if ($core->blog->dcCron instanceof dcCron) {
261               $newsletter_cron = new newsletterCron($core);     
262               
263               // adding scheduled task
264               $interval = (($_POST['f_interval']) ? $_POST['f_interval'] : 604800);
265               $f_first_run = (($_POST['f_first_run']) ? strtotime(html::escapeHTML($_POST['f_first_run'])) : time() + dt::getTimeOffset($system_settings->blog_timezone));
266               
267               if ($newsletter_cron->add($interval, $f_first_run)) {
268                    // notification of changes to blog
269                    $newsletter_settings = new newsletterSettings($core);
270                    $newsletter_settings->setCheckSchedule(true);
271                    $newsletter_settings->save();
272                    $msg = __('Planning updated.');
273               } else {
274                    throw new Exception(__('Error during create planning task.'));
275               }
276          }
277          newsletterTools::redirection($m,$msg);
278     }
279     break;
280
281     // unschedule newsletter
282     case 'unschedule':
283     {
284          $m = 'planning';
285
286          if ($core->blog->dcCron instanceof dcCron) {
287               $newsletter_cron=new newsletterCron($core); 
288               $newsletter_settings = new newsletterSettings($core);
289               $newsletter_settings->setCheckSchedule(false);
290               
291               // delete scheduled task
292               $newsletter_cron->del();
293
294               // notification of changes to blog
295               $newsletter_settings->save();
296               
297               $msg = __('Planning updated.');
298          }
299          newsletterTools::redirection($m,$msg);
300     }
301     break;
302
303     // enable schedule task
304     case 'enabletask':
305     {
306          $m = 'planning';
307
308          if ($core->blog->dcCron instanceof dcCron) {
309               $newsletter_cron=new newsletterCron($core);
310               $newsletter_settings = new newsletterSettings($core);
311                   
312               // enable scheduled task
313               $newsletter_cron->enable();
314
315               // notification of changes to blog
316               $newsletter_settings->save();
317               
318               $msg = __('Planning updated.');
319          }
320          newsletterTools::redirection($m,$msg);
321
322     }
323     break;
324
325     // disable schedule task
326     case 'disabletask':
327     {
328          $m = 'planning';
329
330          if ($core->blog->dcCron instanceof dcCron) {
331               $newsletter_cron=new newsletterCron($core);
332               $newsletter_settings = new newsletterSettings($core);
333                   
334               // disable scheduled task
335               $newsletter_cron->disable();
336
337               // notification of changes to blog
338               $newsletter_settings->save();
339               
340               $msg = __('Planning updated.');
341          }
342          newsletterTools::redirection($m,$msg);
343     }
344     break;
345
346     ###############################################
347     # SUBSCRIBERS
348     ###############################################
349
350     // add subscriber
351     case 'add':
352     {
353          $m = 'addedit';
354         
355          $email = !empty($_POST['femail']) ? $_POST['femail'] : null;
356
357          if (newsletterCore::add($email)) {
358               $msg = __('Subscriber added.');
359          } else {
360               throw new Exception(__('Error adding subscriber.'));
361          }
362
363          newsletterTools::redirection($m,$msg);
364     }
365     break;
366
367     // Modify subscriber
368     case 'edit':
369     {
370          $id = (!empty($_POST['id']) ? $_POST['id'] : null);
371          $email = (!empty($_POST['femail']) ? $_POST['femail'] : null);
372          $subscribed = (!empty($_POST['fsubscribed']) ? $_POST['fsubscribed'] : null);
373          $lastsent = (!empty($_POST['flastsent']) ? $_POST['flastsent'] : null);
374          $modesend = (!empty($_POST['fmodesend']) ? $_POST['fmodesend'] : null);
375          $state = (!empty($_POST['fstate']) ? $_POST['fstate'] : null);
376
377          if ($email == null) {
378               if ($id == null) {
379                    throw new Exception(__('Missing informations'));
380               } else {
381                    $plugin_tab = 'tab_addedit';
382               }
383          } else {
384               $regcode = null;
385               if (!newsletterCore::update($id, $email, $state, $regcode, $subscribed, $lastsent, $modesend)) {
386                    throw new Exception(__('Error in modify subscriber'));
387               } else {
388                    $msg = __('Subscriber updated.');
389               }
390          }
391          newsletterTools::redirection($m,$msg);           
392     }
393     break;
394
395     // remove subscribers
396     case 'remove':
397     {
398          $msg = __('No account removed.');
399          if (is_array($_POST['subscriber'])) {
400               $ids = array();
401               foreach ($_POST['subscriber'] as $k => $v) {
402                    $ids[$k] = (integer) $v;
403               }
404
405               if (newsletterCore::delete($ids)) {
406                    $msg = __('Account(s) successfully removed.');
407               } else {
408                    throw new Exception(__('Error to remove account(s)'));
409               }
410          }
411          newsletterTools::redirection($m,$msg);
412     }
413     break;
414
415     // suspend subscribers
416     case 'suspend':
417     {
418          $msg = __('No account suspended.');
419          if (is_array($_POST['subscriber'])) {
420               $ids = array();
421               foreach ($_POST['subscriber'] as $k => $v) {
422                    $ids[$k] = (integer) $v;
423               }
424
425               if (newsletterCore::suspend($ids)) {
426                    $msg = __('Account(s) successfully suspended.');
427               } else {
428                    throw new Exception(__('Error to suspend account(s)'));
429               }             
430          }
431          newsletterTools::redirection($m,$msg);
432     }
433     break;
434
435     // activate subscribers
436     case 'enable':
437     {
438          $msg = __('No account enabled.');
439          if (is_array($_POST['subscriber'])) {
440               $ids = array();
441
442               foreach ($_POST['subscriber'] as $k => $v) {
443                    $ids[$k] = (integer) $v;
444               }
445               if (newsletterCore::enable($ids)) 
446                    $msg = __('Account(s) successfully enabled.');
447               else
448                    throw new Exception(__('Error to enable account(s)'));
449          }
450          newsletterTools::redirection($m,$msg);
451     }
452     break;
453
454     // disable subscribers
455     case 'disable':
456     {
457          $msg = __('No account disabled.');
458          if (is_array($_POST['subscriber'])) {
459               $ids = array();
460
461               foreach ($_POST['subscriber'] as $k => $v) {
462                    $ids[$k] = (integer) $v;
463               }
464
465               if (newsletterCore::disable($ids)) 
466                    $msg = __('Account(s) successfully disabled.');
467               else
468                    throw new Exception(__('Error to disable account(s)'));
469          }
470          newsletterTools::redirection($m,$msg); 
471     }
472     break;
473
474     // set mail format to html
475     case 'changemodehtml':
476     {
477          $msg = __('No account(s) updated.');
478          if (is_array($_POST['subscriber'])) {
479               $ids = array();
480               foreach ($_POST['subscriber'] as $k => $v) {
481                    $ids[$k] = (integer) $v;
482               }
483
484               if (newsletterCore::changemodehtml($ids)) 
485                    $msg = __('Format sending for account(s) successfully updated to html.');
486               else
487                    throw new Exception(__('Error in modification format'));
488          }
489          newsletterTools::redirection($m,$msg);
490     }
491     break;
492
493     // set mail format to text
494     case 'changemodetext':
495     {
496          $msg = __('No account(s) updated.');
497          if (is_array($_POST['subscriber'])) {
498               $ids = array();
499               foreach ($_POST['subscriber'] as $k => $v) {
500                    $ids[$k] = (integer) $v;
501               }
502
503               if (newsletterCore::changemodetext($ids)) 
504                    $msg = __('Format sending for account(s) successfully updated to text.');
505               else
506                    throw new Exception(__('Error in modification format'));
507          }
508          newsletterTools::redirection($m,$msg);
509     }
510     break;
511
512     ###############################################
513     # MAILING
514     ###############################################
515
516     // send newsletter
517     case 'send':
518     {
519          if(!empty($_POST['subscriber'])) {
520               $subscribers_id = array();
521               $subscribers_id = $_POST['subscriber'];
522               
523               $ids = array();
524               foreach ($_POST['subscriber'] as $k => $v) {
525                    // check if users are enabled
526                    if ($subscriber = newsletterCore::get((integer) $v)){
527                         if ($subscriber->state == 'enabled') {
528                              $ids[$k] = (integer) $v;
529                         }
530                    }
531               }
532               $subscribers_id = $ids;
533          } else {
534               throw new Exception(__('no user selected'));
535               //newsletterTools::redirection($m,$msg);
536          }
537     }
538     break;
539
540     // initialize field lastsent
541     case 'lastsent':
542     {
543          $msg = __('No account changed.');
544          if (is_array($_POST['subscriber'])) {
545               $ids = array();
546               foreach ($_POST['subscriber'] as $k => $v) {
547                    $ids[$k] = (integer) $v;
548               }
549
550               if (newsletterCore::lastsent($ids, 'clear')) 
551                    $msg = __('Account(s) successfully changed.');
552               else
553                    throw new Exception(__('Error in modification of field last sent'));
554          }
555          newsletterTools::redirection($m,$msg);
556     }
557     break;
558     
559     // send confirmation mail
560     case 'sendconfirm':
561     {
562          if (is_array($_POST['subscriber'])) {
563               $ids = array();
564               foreach ($_POST['subscriber'] as $k => $v) {
565                    $ids[$k] = (integer) $v;
566               }
567
568               $msg = newsletterCore::send($ids,'confirm');
569          }
570          newsletterTools::redirection($m,$msg);
571     }
572     break;
573     
574     // send disable mail
575     case 'senddisable':
576     {
577          if (is_array($_POST['subscriber'])) {
578               $ids = array();
579               foreach ($_POST['subscriber'] as $k => $v) {
580                    $ids[$k] = (integer) $v;
581               }
582
583               $msg = newsletterCore::send($ids,'disable');
584          }
585          newsletterTools::redirection($m,$msg);
586     }
587     break;
588     
589     // send enable mail
590     case 'sendenable':
591     {
592          if (is_array($_POST['subscriber'])) {
593               $ids = array();
594               foreach ($_POST['subscriber'] as $k => $v) {
595                    $ids[$k] = (integer) $v;
596               }
597
598               $msg = newsletterCore::send($ids,'enable');
599          }
600          newsletterTools::redirection($m,$msg);
601     }
602     break;
603
604     ###############################################
605     # MAINTENANCE
606     ###############################################
607
608     // exporting list of subscribers
609     case 'export':
610     {
611          $m = 'maintenance';
612
613          $type = (!empty($_POST['type'])) ? $_POST['type'] : 'blog';
614          $msg = newsletterAdmin::exportToBackupFile( ($type=='blog') ? true : false );
615
616          newsletterTools::redirection($m,$msg);
617     }
618     break;
619
620     // importing list of subscribers
621     case 'import':
622     {
623          $m = 'maintenance';
624          $blogid = (string)$core->blog->id;
625          $type = (!empty($_POST['type'])) ? $_POST['type'] : 'blog';
626                   
627          // read the content of file
628          $onlyblog=($type=='blog') ? true : false;
629         
630          if ($onlyblog)
631               $filename=$core->blog->public_path.'/'.$blogid.'-'.newsletterPlugin::pname().'.dat';
632          else 
633               $filename=$core->blog->public_path.'/'.newsletterPlugin::pname().'.dat';
634     
635          $retour = newsletterAdmin::importFromBackupFile($filename);
636          if($retour) {
637               $msg = __('Datas imported from').' '.$filename.' : '.$retour;
638          }
639          //newsletterTools::redirection($m,$msg);
640     }
641     break;
642
643     // importing email addresses from a file
644     case 'reprise':
645     {
646          $m = 'maintenance';
647
648          if (empty($_POST['your_pwd']) || !$core->auth->checkPassword(crypt::hmac(DC_MASTER_KEY,$_POST['your_pwd']))) {
649               throw new Exception(__('Password verification failed'));
650          }
651          $retour = newsletterAdmin::importFromTextFile($_FILES['file_reprise']);
652          if($retour) {
653               $msg = __('Datas imported from').' '.$_FILES['file_reprise']['name'].' : '.$retour;
654          }
655         
656          newsletterTools::redirection($m,$msg);
657     }
658     break;
659
660     // adaptation of the template
661     case 'adapt_theme':
662     {
663          $m = 'maintenance';
664         
665          if (!empty($_POST['fthemes'])) {
666               if (newsletterAdmin::adaptTheme($_POST['fthemes'])) {
667                    $msg = __('Template successfully adapted.');
668               } else {
669                    throw new Exception(__('Error to adapt template'));
670               }
671          } else {
672               $msg = __('No template adapted.');
673          }
674         
675          newsletterTools::redirection($m,$msg);
676     }
677     break;
678     
679     case 'erasingnewsletter':     
680     {
681          $m = 'maintenance';
682
683          // delete scheduled task
684          if (isset($core->blog->dcCron)) {
685               $newsletter_cron=new newsletterCron($core); 
686               $newsletter_settings = new newsletterSettings($core);
687               $newsletter_settings->setCheckSchedule(false);
688               
689               $newsletter_cron->del();
690
691               // notification of changes to blog
692               $newsletter_settings->save();
693          }
694
695          newsletterAdmin::uninstall();
696         
697          $redir = 'plugin.php?p=aboutConfig';
698          http::redirect($redir);           
699     }
700     break;   
701
702     case 'none':
703     default:
704          break;
705} // end switch
706
707/* ---------------------
708 * action on the letters
709 * ---------------------
710*/
711switch ($action)
712{
713     case 'publish':
714     case 'unpublish':
715     case 'pending':
716     case 'delete':
717     {
718          if(!empty($_POST['letters_id'])) $letters_id = $_POST['letters_id'];
719          newsletterLettersList::lettersActions($letters_id);
720     }
721     break;
722
723     case 'send_old':
724     {
725          $subscribers_id = array();
726          $letters_id = array();
727          $newsletter_mailing = new newsletterMailing($core);
728          $newsletter_settings = new newsletterSettings($core);
729          //$letters_id[] = newsletterCore::insertMessageNewsletter($newsletter_mailing,$newsletter_settings);
730         
731          $letters_id[] = newsletterCore::insertMessageNewsletter($newsletter_mailing,$newsletter_settings);
732         
733          if($letters_id[0]==0) {
734               $t_msg='';
735               $t_msg.=date('Y-m-j H:i',time() + dt::getTimeOffset($system_settings->blog_timezone)).': ';
736               $t_msg.=__('not enough posts for sending');
737               throw new Exception($t_msg);
738          }
739
740          if(!empty($_POST['subscribers_id'])) {
741               $subscribers_id = $_POST['subscribers_id'];
742          }
743     }
744     break;
745     
746     case 'send':
747     case 'author':
748     {
749          $subscribers_id = array();
750          if(!empty($_POST['letters_id'])) 
751               $letters_id = $_POST['letters_id'];
752          else 
753               throw new Exception(__('no letter selected'));
754         
755          if(!empty($_POST['subscribers_id'])) {
756               $subscribers_id = $_POST['subscribers_id'];
757          }
758     }
759     break;
760     
761     case 'associate':
762     case 'unlink':
763     {
764          $newsletterLetter = new newsletterLetter($core);
765          $newsletterLetter->letterActions();
766     }
767     break;
768     
769     case 'none':
770     default:
771          break;
772} // end switch
773
774
775} catch (Exception $e) {
776     if(isset($core->blog->dcNewsletter)) {
777          $core->blog->dcNewsletter->addError($e->getMessage());
778          $core->blog->dcNewsletter->save();
779          newsletterTools::redirection($m,$msg);
780     }
781}
782
783
784if(isset($core->blog->dcNewsletter)) {
785     # Display errors
786     foreach ($core->blog->dcNewsletter->getErrors() as $k => $v) {
787          $core->error->add($v);
788          $core->blog->dcNewsletter->delError($k);
789     }
790
791     # Get messages
792     foreach ($core->blog->dcNewsletter->getMessages() as $k => $v) {
793          $msg .= $v.'<br />';
794          $core->blog->dcNewsletter->delMessage($k);
795     }
796         
797     # Save le traitement des messages
798     $core->blog->dcNewsletter->save();
799}
800
801/* -------------------------------
802 * define heading of the html page
803 * -------------------------------
804*/
805echo
806     '<html>'.
807     '<head>'.
808     '<title>'.$plugin_name.'</title>'.
809     '<link rel="stylesheet" type="text/css" href="index.php?pf=newsletter/style.css" />';
810
811     if ($plugin_tab == 'tab_planning') {
812          if (isset($core->blog->dcCron)) {
813               echo 
814                    dcPage::jsDatePicker().
815                    dcPage::jsLoad('index.php?pf=newsletter/js/_newsletter.cron.js').
816                    dcPage::jsLoad('index.php?pf=newsletter/js/_newsletter.js');
817          }
818          echo dcPage::jsPageTabs($plugin_tab);
819     
820     } else if (($plugin_tab == 'tab_letters' || $plugin_tab == 'tab_subscribers') 
821                    && ($action == 'send' || $action == 'send_old')) {
822          echo 
823               dcPage::jsLoad('index.php?pf=newsletter/js/_sequential_ajax.js').
824               dcPage::jsLoad('index.php?pf=newsletter/js/_letters_actions.js');
825         
826          echo 
827               '<script type="text/javascript">'."\n".
828               "//<![CDATA[\n".
829               "var letters = [".implode(',',$letters_id)."];\n".
830               "var subscribers = [".implode(',',$subscribers_id)."];\n".
831               "dotclear.msg.search_subscribers_for_letter = '".html::escapeJS(__('Search subscribers for letter'))."';\n".
832               "dotclear.msg.subject = '".html::escapeJS(__('Subject'))."';\n".
833               "dotclear.msg.to_user = '".html::escapeJS(__('to user'))."';\n".
834               "dotclear.msg.please_wait = '".html::escapeJS(__('Waiting...'))."';\n".
835               "dotclear.msg.subscribers_found = '".html::escapeJS(__('%s subscribers found'))."';\n".
836               "\n//]]>\n".
837               "</script>\n";
838         
839          echo dcPage::jsPageTabs($plugin_tab);
840
841     } else if ($plugin_tab == 'tab_subscribers' || $plugin_tab == 'tab_letters') {
842          echo 
843               dcPage::jsLoad('index.php?pf=newsletter/js/_newsletter.js').
844               dcPage::jsLoad('js/filter-controls.js');
845          echo 
846               '<script type="text/javascript">'."\n".
847               "//<![CDATA[\n".
848               "dotclear.msg.confirm_delete_letters = '".html::escapeJS(__('Are you sure you want to delete selected letters?'))."';\n".
849               "\n//]]>\n".
850               "</script>\n";
851               echo dcPage::jsPageTabs($plugin_tab);
852
853     } else if ($plugin_tab == 'tab_letter') {
854          echo dcPage::jsDatePicker().
855               dcPage::jsToolBar().
856               dcPage::jsModal().
857               dcPage::jsLoad('js/_post.js');
858               //dcPage::jsConfirmClose('entry-form','comment-form').
859               dcPage::jsConfirmClose('entry-form');
860               # --BEHAVIOR-- adminPageHeaders
861               $core->callBehavior('adminLetterHeaders');
862
863           // Bidouille pour que l'affichage des outils JS de Dotclear se fasse correctement
864           echo dcPage::jsPageTabs('edit-entry');
865     } else if ($plugin_tab == 'tab_letter_associate') {
866          echo 
867               dcPage::jsLoad('index.php?pf=newsletter/js/_newsletter.js').
868               dcPage::jsLoad('js/filter-controls.js');
869          echo dcPage::jsPageTabs('tab_letter');
870     } else {
871          echo dcPage::jsLoad('index.php?pf=newsletter/js/_newsletter.js');
872          echo 
873               '<script type="text/javascript">'."\n".
874               "//<![CDATA[\n".
875               "dotclear.msg.confirm_erasing_datas = '".html::escapeJS(__('Are you sure you want to delete all informations about newsletter in database?'))."';\n".
876               "dotclear.msg.confirm_import_backup = '".html::escapeJS(__('Are you sure you want to import a backup file?'))."';\n".
877               "\n//]]>\n".
878               "</script>\n";
879          echo dcPage::jsPageTabs($plugin_tab);
880     }
881
882echo '</head>'.
883     '<body>';
884
885/* -------------------------------
886 * define content of the html page
887 * -------------------------------
888*/
889echo '<h2>'.
890     html::escapeHTML($core->blog->name).' &gt; <a href="'.newsletterPlugin::admin().'" title="'.$plugin_name.'">'.$plugin_name.' '.newsletterPlugin::dcVersion().'</a>'.
891     '</h2>';
892
893// print information message
894if (!empty($msg)) {
895     echo '<p class="message">'.$msg.'</p>';
896}
897
898if ( $newsletter_flag == 0) {
899     tabsNewsletter::displayTabMaintenance();
900} else {
901     // define the presentation of tabs
902     switch ($plugin_tab) {
903          case 'tab_subscribers':
904          {
905               echo '<div class="multi-part" id="tab_subscribers" title="'.__('Subscribers').'">';
906               
907               if($plugin_op == 'send') {
908                    newsletterSubscribersList::subcribersActions();
909               } else {
910                    newsletterSubscribersList::tabSubscribersList();
911               }
912               echo '</div>'; 
913               echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
914               echo '<p><a href="plugin.php?p=newsletter&amp;m=letters" class="multi-part">'.__('Letters').'</a></p>';
915               echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
916               echo '<p><a href="plugin.php?p=newsletter&amp;m=editCSS" class="multi-part">'.__('CSS for letters').'</a></p>';
917               echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
918               echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
919               echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
920          }
921          break;
922         
923          case 'tab_addedit':
924          {
925               echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
926               echo '<div class="multi-part" id="tab_addedit" title="'.$edit_subscriber.'">';
927               tabsNewsletter::AddEdit();
928               echo '</div>'; 
929               echo '<p><a href="plugin.php?p=newsletter&amp;m=letters" class="multi-part">'.__('Letters').'</a></p>';
930               echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
931               echo '<p><a href="plugin.php?p=newsletter&amp;m=editCSS" class="multi-part">'.__('CSS for letters').'</a></p>';
932               echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
933               echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
934               echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
935          }
936          break;
937         
938          case 'tab_letters':
939          {
940               echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
941               echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
942               echo '<div class="multi-part" id="tab_letters" title="'.__('Letters').'">';
943               if($action == 'author' || $action == 'send' || $action == 'send_old') {
944                    newsletterLettersList::lettersActions($letters_id);
945               } else {
946                    newsletterLettersList::displayTabLettersList();
947               }
948               echo '</div>';
949               echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
950               echo '<p><a href="plugin.php?p=newsletter&amp;m=editCSS" class="multi-part">'.__('CSS for letters').'</a></p>';
951               echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
952               echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
953               echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
954          }
955          break;
956               
957          case 'tab_letter':
958          {
959               echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
960               echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
961               echo '<p><a href="plugin.php?p=newsletter&amp;m=letters" class="multi-part">'.__('Letters').'</a></p>';
962               //echo '<div class="multi-part" id="tab_letter" title="'.__('Letter').'">';
963               echo '<div class="multi-part" id="edit-entry" title="'.__('Letter').'">';
964               $nltr = new newsletterLetter($core);
965               $nltr->displayTabLetter();
966               echo '</div>';           
967               echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
968               echo '<p><a href="plugin.php?p=newsletter&amp;m=editCSS" class="multi-part">'.__('CSS for letters').'</a></p>';
969               echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
970               echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
971               echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
972          }
973          break;
974     
975          case 'tab_letter_associate':
976          {
977               echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
978               echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
979               echo '<p><a href="plugin.php?p=newsletter&amp;m=letters" class="multi-part">'.__('Letters').'</a></p>';
980               echo '<div class="multi-part" id="tab_letter" title="'.__('Letter').'">';
981               $nltr = new newsletterLetter($core);
982               $nltr->displayTabLetterAssociate();
983               echo '</div>';
984               echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
985               echo '<p><a href="plugin.php?p=newsletter&amp;m=editCSS" class="multi-part">'.__('CSS for letters').'</a></p>';
986               echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
987               echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
988               echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
989          }
990          break;
991     
992     
993          case 'tab_settings':
994          {
995               echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
996               echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
997               echo '<p><a href="plugin.php?p=newsletter&amp;m=letters" class="multi-part">'.__('Letters').'</a></p>';
998               echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
999               echo '<p><a href="plugin.php?p=newsletter&amp;m=editCSS" class="multi-part">'.__('CSS for letters').'</a></p>';
1000               echo '<div class="multi-part" id="tab_settings" title="'.__('Settings').'">';   
1001               tabsNewsletter::displayTabSettings();
1002               echo '</div>';
1003               echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
1004               echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
1005          }
1006          break;
1007     
1008          case 'tab_messages':
1009          {
1010               echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
1011               echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
1012               echo '<p><a href="plugin.php?p=newsletter&amp;m=letters" class="multi-part">'.__('Letters').'</a></p>';
1013               echo '<div class="multi-part" id="tab_messages" title="'.__('Messages').'">';
1014               tabsNewsletter::displayTabMessages();
1015               echo '</div>';
1016               echo '<p><a href="plugin.php?p=newsletter&amp;m=editCSS" class="multi-part">'.__('CSS for letters').'</a></p>';
1017               echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
1018               echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
1019               echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
1020          }
1021          break;
1022     
1023          case 'tab_editCSS':
1024          {
1025               echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
1026               echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
1027               echo '<p><a href="plugin.php?p=newsletter&amp;m=letters" class="multi-part">'.__('Letters').'</a></p>';
1028               echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
1029               echo '<div class="multi-part" id="tab_editCSS" title="'.__('CSS for letters').'">';
1030               tabsNewsletter::displayTabEditCSS();
1031               echo '</div>';
1032               echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
1033               echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
1034               echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
1035          }
1036          break;
1037               
1038          case 'tab_planning':
1039          {
1040               echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
1041               echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
1042               echo '<p><a href="plugin.php?p=newsletter&amp;m=letters" class="multi-part">'.__('Letters').'</a></p>';
1043               echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
1044               echo '<p><a href="plugin.php?p=newsletter&amp;m=editCSS" class="multi-part">'.__('CSS for letters').'</a></p>';
1045               echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
1046               echo '<div class="multi-part" id="tab_planning" title="'.__('Planning').'">';
1047               tabsNewsletter::displayTabPlanning();
1048               echo '</div>';
1049               echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
1050          }
1051          break;
1052     
1053          case 'tab_maintenance':
1054          {
1055               echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
1056               echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
1057               echo '<p><a href="plugin.php?p=newsletter&amp;m=letters" class="multi-part">'.__('Letters').'</a></p>';
1058               echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
1059               echo '<p><a href="plugin.php?p=newsletter&amp;m=editCSS" class="multi-part">'.__('CSS for letters').'</a></p>';         
1060               echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
1061               echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
1062               echo '<div class="multi-part" id="tab_maintenance" title="'.__('Maintenance').'">';
1063               tabsNewsletter::displayTabMaintenance();
1064               echo '</div>';
1065          }
1066          break;
1067     
1068          default:
1069          break;   
1070     } // end switch
1071
1072}
1073echo dcPage::helpBlock('newsletter');
1074
1075echo '</body>';
1076echo '</html>';
1077
1078?>
Note: See TracBrowser for help on using the repository browser.

Sites map