Dotclear

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

Revision 2685, 40.5 KB checked in by kwon, 13 years ago (diff)

Newsletter:

' closes #562
' delete really the mail from the database when clic on delete

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

Sites map