Dotclear

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

Revision 1532, 28.3 KB checked in by kwon, 14 years ago (diff)

Newsletter 3.6.0rc1 :

  • closes #117 : retourne les billets des catégories filles
  • closes #156 : prise en compte de l'export / import
  • closes #233 : choix de la date de tri des billets
  • many others things ...
Line 
1<?php
2# -- BEGIN LICENSE BLOCK ----------------------------------
3# This file is part of Newsletter, a plugin for Dotclear.
4#
5# Copyright (c) 2009 Benoit de Marne
6# benoit.de.marne@gmail.com
7#
8# Licensed under the GPL version 2.0 license.
9# A copy of this license is available in LICENSE file or at
10# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
11# -- END LICENSE BLOCK ------------------------------------
12
13if (!defined('DC_CONTEXT_ADMIN')) exit;
14dcPage::check('usage,admin');
15
16// chargement des librairies
17require_once dirname(__FILE__).'/inc/class.newsletter.settings.php';
18require_once dirname(__FILE__).'/inc/class.newsletter.plugin.php';
19require_once dirname(__FILE__).'/inc/class.newsletter.core.php';
20require_once dirname(__FILE__).'/inc/class.newsletter.admin.php';
21require_once dirname(__FILE__).'/inc/class.newsletter.cron.php';
22require_once dirname(__FILE__).'/inc/class.newsletter.tools.php';
23
24// paramétrage des variables
25$plugin_name   = __('Newsletter');
26$id            = null;
27$p_url         = 'plugin.php?p=newsletter';
28
29try {
30
31if (!empty($_REQUEST['m'])) {
32     $m=(string) rawurldecode($_REQUEST['m']);
33} else {
34     $m='subscribers';
35}
36$plugin_tab = 'tab_'.$m;
37
38
39// récupération de l'onglet (si disponible)
40if (!empty($_POST['tab'])) 
41     $plugin_tab = 'tab_'.(string)$_POST['tab'];
42else if (!empty($_GET['tab'])) 
43     $plugin_tab = 'tab_'.(string)$_GET['tab'];
44
45// récupération de l'opération (si possible)
46if (!empty($_POST['op'])) 
47     $plugin_op = (string)$_POST['op'];
48else 
49     $plugin_op = 'none';
50
51// message àafficher (en cas de redirection)
52if (!empty($_GET['msg'])) 
53     $msg = (string) rawurldecode($_GET['msg']);
54else if (!empty($_POST['msg'])) 
55     $msg = (string) rawurldecode($_POST['msg']);
56
57// action en fonction de l'opération
58switch ($plugin_op)
59{
60     // modification de l'état d'activation du plugin
61     case 'state':
62     {
63          $m = 'maintenance';
64
65          (!empty($_POST['active']) ? newsletterPlugin::activate() : newsletterPlugin::inactivate());
66
67          // notification de modification au blog et redirection
68          newsletterPlugin::triggerBlog();
69
70          $msg = __('Activation updated.');
71          newsletterTools::redirection($m,$msg);
72     }
73     break;
74
75     // modification du paramétrage
76     case 'settings':
77     {
78          $m='settings';
79
80          if (!empty($_POST['feditoremail']) && !empty($_POST['feditorname'])) {
81               $newsletter_settings = new newsletterSettings($core);
82               // nom de l'éditeur
83               $newsletter_settings->setEditorName($_POST['feditorname']);
84
85               // email de l'éditeur
86               $newsletter_settings->setEditorEmail($_POST['feditoremail']);
87
88               // --------- advanced settings -------------
89
90               // captcha
91               (!empty($_POST['fcaptcha']) ? $newsletter_settings->setCaptcha($_POST['fcaptcha']) : $newsletter_settings->clearCaptcha());
92
93               // mode d'envoi
94               (!empty($_POST['fmode']) ? $newsletter_settings->setSendMode($_POST['fmode']) : $newsletter_settings->clearSendMode());
95
96               // sélection du format d'envoi par utilisateur ou global
97               (!empty($_POST['f_use_default_format']) ? $newsletter_settings->setUseDefaultFormat($_POST['f_use_default_format']) : $newsletter_settings->clearUseDefaultFormat());
98
99               // envoi automatique
100               (!empty($_POST['fautosend']) ? $newsletter_settings->setAutosend($_POST['fautosend']) : $newsletter_settings->clearAutosend());
101
102               // nombre min. de billets
103               (!empty($_POST['fminposts']) ? $newsletter_settings->setMinPosts($_POST['fminposts']) : $newsletter_settings->clearMinPosts());
104
105               // nombre max. de billets
106               (!empty($_POST['fmaxposts']) ? $newsletter_settings->setMaxPosts($_POST['fmaxposts']) : $newsletter_settings->clearMaxPosts());
107                   
108               // affichage du contenu du post
109               (!empty($_POST['f_view_content_post']) ? $newsletter_settings->setViewContentPost($_POST['f_view_content_post']) : $newsletter_settings->clearViewContentPost());
110
111               // taille maximale du contenu du post
112               (!empty($_POST['f_size_content_post']) ? $newsletter_settings->setSizeContentPost($_POST['f_size_content_post']) : $newsletter_settings->clearSizeContentPost());
113
114               // filtre de catégorie
115               (!empty($_POST['f_category']) ? $newsletter_settings->setCategory($_POST['f_category']) : $newsletter_settings->clearCategory());
116
117               // option sur les sous catégories
118               (!empty($_POST['f_check_subcategories']) ? $newsletter_settings->setCheckSubCategories($_POST['f_check_subcategories']) : $newsletter_settings->clearCheckSubCategories());
119
120               // envoi automatique
121               (!empty($_POST['f_check_notification']) ? $newsletter_settings->setCheckNotification($_POST['f_check_notification']) : $newsletter_settings->clearCheckNotification());
122
123               // option suspend
124               (!empty($_POST['f_check_use_suspend']) ? $newsletter_settings->setCheckUseSuspend($_POST['f_check_use_suspend']) : $newsletter_settings->clearCheckUseSuspend());
125
126               // sélection de la date pour le tri des billets de la newsletter
127               (!empty($_POST['f_order_date']) ? $newsletter_settings->setOrderDate($_POST['f_order_date']) : $newsletter_settings->clearOrderDate());
128               
129               // notification de modification au blog et redirection
130               $newsletter_settings->save();
131               newsletterTools::redirection($m,rawurldecode(__('Settings updated.')));
132          } else {
133               if (empty($_POST['feditoremail']))
134                    throw new Exception(__('You must input a valid email')); 
135               if (empty($_POST['feditorname']))
136                    throw new Exception(__('You must input an editor')); 
137          }
138     }
139     break;
140
141     // modification des messages
142     case 'messages':
143     {
144          $m='messages';
145          $newsletter_settings = new newsletterSettings($core);
146               
147          // newsletter
148          (!empty($_POST['f_introductory_msg']) ? $newsletter_settings->setIntroductoryMsg($_POST['f_introductory_msg']) : $newsletter_settings->clearIntroductoryMsg());
149          (!empty($_POST['f_concluding_msg']) ? $newsletter_settings->setConcludingMsg($_POST['f_concluding_msg']) : $newsletter_settings->clearConcludingMsg());
150          (!empty($_POST['f_presentation_msg']) ? $newsletter_settings->setPresentationMsg($_POST['f_presentation_msg']) : $newsletter_settings->clearPresentationMsg());
151          (!empty($_POST['f_presentation_posts_msg']) ? $newsletter_settings->setPresentationPostsMsg($_POST['f_presentation_posts_msg']) : $newsletter_settings->clearPresentationPostsMsg());
152          (!empty($_POST['f_newsletter_subject']) ? $newsletter_settings->setNewsletterSubject($_POST['f_newsletter_subject']) : $newsletter_settings->clearNewsletterSubject());
153
154          // confirm
155          (!empty($_POST['f_txt_intro_confirm']) ? $newsletter_settings->setTxtIntroConfirm($_POST['f_txt_intro_confirm']) : $newsletter_settings->clearTxtIntroConfirm());
156          (!empty($_POST['f_txtConfirm']) ? $newsletter_settings->setTxtConfirm($_POST['f_txtConfirm']) : $newsletter_settings->clearTxtConfirm());
157          (!empty($_POST['f_confirm_subject']) ? $newsletter_settings->setConfirmSubject($_POST['f_confirm_subject']) : $newsletter_settings->clearConfirmSubject());
158          (!empty($_POST['f_confirm_msg']) ? $newsletter_settings->setConfirmMsg($_POST['f_confirm_msg']) : $newsletter_settings->clearConfirmMsg());
159          (!empty($_POST['f_concluding_confirm_msg']) ? $newsletter_settings->setConcludingConfirmMsg($_POST['f_concluding_confirm_msg']) : $newsletter_settings->clearConcludingConfirmMsg());
160
161          // disable
162          (!empty($_POST['f_txt_intro_disable']) ? $newsletter_settings->setTxtIntroDisable($_POST['f_txt_intro_disable']) : $newsletter_settings->clearTxtIntroDisable());
163          (!empty($_POST['f_txtDisable']) ? $newsletter_settings->setTxtDisable($_POST['f_txtDisable']) : $newsletter_settings->clearTxtDisable());
164          (!empty($_POST['f_disable_subject']) ? $newsletter_settings->setDisableSubject($_POST['f_disable_subject']) : $newsletter_settings->clearDisableSubject());
165          (!empty($_POST['f_disable_msg']) ? $newsletter_settings->setDisableMsg($_POST['f_disable_msg']) : $newsletter_settings->clearDisableMsg());
166          (!empty($_POST['f_concluding_disable_msg']) ? $newsletter_settings->setConcludingDisableMsg($_POST['f_concluding_disable_msg']) : $newsletter_settings->clearConcludingDisableMsg());
167          (!empty($_POST['f_txt_disabled_msg']) ? $newsletter_settings->setTxtDisabledMsg($_POST['f_txt_disabled_msg']) : $newsletter_settings->clearTxtDisabledMsg());
168
169          // enable
170          (!empty($_POST['f_txt_intro_enable']) ? $newsletter_settings->setTxtIntroEnable($_POST['f_txt_intro_enable']) : $newsletter_settings->clearTxtIntroEnable());
171          (!empty($_POST['f_txtEnable']) ? $newsletter_settings->setTxtEnable($_POST['f_txtEnable']) : $newsletter_settings->clearTxtEnable());
172          (!empty($_POST['f_enable_subject']) ? $newsletter_settings->setEnableSubject($_POST['f_enable_subject']) : $newsletter_settings->clearEnableSubject());
173          (!empty($_POST['f_enable_msg']) ? $newsletter_settings->setEnableMsg($_POST['f_enable_msg']) : $newsletter_settings->clearEnableMsg());
174          (!empty($_POST['f_concluding_enable_msg']) ? $newsletter_settings->setConcludingEnableMsg($_POST['f_concluding_enable_msg']) : $newsletter_settings->clearConcludingEnableMsg());
175          (!empty($_POST['f_txt_enabled_msg']) ? $newsletter_settings->setTxtEnabledMsg($_POST['f_txt_enabled_msg']) : $newsletter_settings->clearTxtEnabledMsg());
176               
177          // suspend
178          (!empty($_POST['f_txt_intro_suspend']) ? $newsletter_settings->setTxtIntroSuspend($_POST['f_txt_intro_suspend']) : $newsletter_settings->clearTxtIntroSuspend());
179          (!empty($_POST['f_txtSuspend']) ? $newsletter_settings->setTxtSuspend($_POST['f_txtSuspend']) : $newsletter_settings->clearTxtSuspend());
180          (!empty($_POST['f_suspend_subject']) ? $newsletter_settings->setSuspendSubject($_POST['f_suspend_subject']) : $newsletter_settings->clearSuspendSubject());
181          (!empty($_POST['f_suspend_msg']) ? $newsletter_settings->setSuspendMsg($_POST['f_suspend_msg']) : $newsletter_settings->clearSuspendMsg());
182          (!empty($_POST['f_concluding_suspend_msg']) ? $newsletter_settings->setConcludingSuspendMsg($_POST['f_concluding_suspend_msg']) : $newsletter_settings->clearConcludingSuspendMsg());
183          (!empty($_POST['f_txt_suspended_msg']) ? $newsletter_settings->setTxtSuspendedMsg($_POST['f_txt_suspended_msg']) : $newsletter_settings->clearTxtSuspendedMsg());
184               
185          // changemode
186          (!empty($_POST['f_change_mode_subject']) ? $newsletter_settings->setChangeModeSubject($_POST['f_change_mode_subject']) : $newsletter_settings->clearChangeModeSubject());
187          (!empty($_POST['f_header_changemode_msg']) ? $newsletter_settings->setHeaderChangeModeMsg($_POST['f_header_changemode_msg']) : $newsletter_settings->clearHeaderChangeModeMsg());
188          (!empty($_POST['f_footer_changemode_msg']) ? $newsletter_settings->setFooterChangeModeMsg($_POST['f_footer_changemode_msg']) : $newsletter_settings->clearFooterChangeModeMsg());
189          (!empty($_POST['f_changemode_msg']) ? $newsletter_settings->setChangeModeMsg($_POST['f_changemode_msg']) : $newsletter_settings->clearChangeModeMsg());
190               
191          // resume
192          (!empty($_POST['f_resume_subject']) ? $newsletter_settings->setResumeSubject($_POST['f_resume_subject']) : $newsletter_settings->clearResumeSubject());
193          (!empty($_POST['f_header_resume_msg']) ? $newsletter_settings->setHeaderResumeMsg($_POST['f_header_resume_msg']) : $newsletter_settings->clearHeaderResumeMsg());
194          (!empty($_POST['f_footer_resume_msg']) ? $newsletter_settings->setFooterResumeMsg($_POST['f_footer_resume_msg']) : $newsletter_settings->clearFooterResumeMsg());
195                   
196          // subscribe
197          (!empty($_POST['f_msg_presentation_form']) ? $newsletter_settings->setMsgPresentationForm($_POST['f_msg_presentation_form']) : $newsletter_settings->clearMsgPresentationForm());
198          (!empty($_POST['f_form_title_page']) ? $newsletter_settings->setFormTitlePage($_POST['f_form_title_page']) : $newsletter_settings->clearFormTitlePage());
199          (!empty($_POST['f_txt_subscribed_msg']) ? $newsletter_settings->setTxtSubscribedMsg($_POST['f_txt_subscribed_msg']) : $newsletter_settings->clearTxtSubscribedMsg());
200
201          // notification de modification au blog et redirection
202          $newsletter_settings->save();
203          newsletterTools::redirection($m,rawurldecode(__('Messages updated.')));
204     }
205
206     // mise en place de la planification
207     case 'planning':
208     {
209          $plugin_tab = 'tab_planning';
210          newsletterPlugin::redirect(newsletterPlugin::admin().'&tab=planning&msg='.rawurldecode(__('Planning updated.')));
211     }
212
213     case 'schedule':
214     {
215          $m='planning';
216
217          if (isset($core->blog->dcCron)) {
218               $newsletter_cron = new newsletterCron($core);     
219               $newsletter_settings = new newsletterSettings($core);
220                   
221               // ajout de la tache planifiée
222               $interval = (($_POST['f_interval']) ? $_POST['f_interval'] : 604800);
223               $f_first_run = (($_POST['f_first_run']) ? strtotime(html::escapeHTML($_POST['f_first_run'])) : time() + dt::getTimeOffset($core->blog->settings->blog_timezone));
224               if ($newsletter_cron->add($interval, $f_first_run)) {
225                    $newsletter_settings->setCheckSchedule(true);
226                   
227                    // notification de modification au blog
228                    $newsletter_settings->save();
229                   
230                    $msg = __('Planning updated.');
231               } else {
232                    throw new Exception(__('Error during create planning task.'));
233               }
234          }
235          newsletterTools::redirection($m,$msg);
236     }
237     break;
238
239     case 'unschedule':
240     {
241          $m='planning';
242
243          if (isset($core->blog->dcCron)) {
244               $newsletter_cron=new newsletterCron($core); 
245               $newsletter_settings = new newsletterSettings($core);
246               $newsletter_settings->setCheckSchedule(false);
247               
248               // suppression de la tache planifiée
249               $newsletter_cron->del();
250
251               // notification de modification au blog
252               $newsletter_settings->save();
253               
254               $msg = __('Planning updated.');
255          }
256          newsletterTools::redirection($m,$msg);
257     }
258     break;
259
260     // mise en place de la planification
261     case 'enabletask':
262     {
263          $m='planning';
264
265          if (isset($core->blog->dcCron)) {
266               $newsletter_cron=new newsletterCron($core);
267               $newsletter_settings = new newsletterSettings($core);
268                   
269               // activation de la tache planifiée
270               $newsletter_cron->enable();
271
272               // notification de modification au blog
273               $newsletter_settings->save();
274               
275               $msg = __('Planning updated.');
276          }
277          newsletterTools::redirection($m,$msg);
278
279     }
280     break;
281
282
283     // mise en place de la planification
284     case 'disabletask':
285     {
286          $m='planning';
287
288          if (isset($core->blog->dcCron)) {
289               $newsletter_cron=new newsletterCron($core);
290               $newsletter_settings = new newsletterSettings($core);
291                   
292               // désactivation de la tache planifiée
293               $newsletter_cron->disable();
294
295               // notification de modification au blog
296               $newsletter_settings->save();
297               
298               $msg = __('Planning updated.');
299          }
300          newsletterTools::redirection($m,$msg);
301     }
302     break;
303
304     // ajout d'un abonné
305     case 'add':
306     {
307          $m='addedit';
308         
309          if (!empty($_POST['femail'])) {
310               $email = $_POST['femail'];
311
312               if (newsletterCore::add($email)) {
313                    $msg = __('Subscriber added.');
314               } else {
315                    throw new Exception(__('Error adding subscriber.'));
316               }
317          } else  {
318               throw new Exception(__('You must input a valid email !'));
319          }
320          newsletterTools::redirection($m,$msg);
321     }
322     break;
323
324     // mise à jour d'un abonné
325     case 'edit':
326     {
327          $id = (!empty($_POST['id']) ? $_POST['id'] : null);
328          $email = (!empty($_POST['femail']) ? $_POST['femail'] : null);
329          $subscribed = (!empty($_POST['fsubscribed']) ? $_POST['fsubscribed'] : null);
330          $lastsent = (!empty($_POST['flastsent']) ? $_POST['flastsent'] : null);
331          $modesend = (!empty($_POST['fmodesend']) ? $_POST['fmodesend'] : null);
332          $state = (!empty($_POST['fstate']) ? $_POST['fstate'] : null);
333
334          if ($email == null) {
335               if ($id == null) {
336                    throw new Exception(__('Missing informations'));           
337               } else {
338                    $plugin_tab = 'tab_addedit';
339               }
340          } else {
341               $regcode = null;
342               if (!newsletterCore::update($id, $email, $state, $regcode, $subscribed, $lastsent, $modesend)) {
343                    throw new Exception(__('Error in modify subscriber'));
344               } else {
345                    $msg = __('Subscriber updated.');
346               }
347          }
348          newsletterTools::redirection($m,$msg);           
349     }
350     break;
351
352     // suppression d'un ou plusieurs abonnés
353     case 'remove':
354     {
355          $msg = __('No account removed.');
356          if (is_array($_POST['subscriber'])) {
357               $ids = array();
358               foreach ($_POST['subscriber'] as $k => $v) {
359                    $ids[$k] = (integer) $v;
360               }
361
362               if (newsletterCore::delete($ids)) {
363                    $msg = __('Account(s) successfully removed.');
364               } else {
365                    throw new Exception(__('Error to remove account(s)'));
366               }
367          }
368          newsletterTools::redirection($m,$msg);
369     }
370     break;
371
372     // suspension des comptes d'un ou plusieurs abonnés
373     case 'suspend':
374     {
375          $msg = __('No account suspended.');
376          if (is_array($_POST['subscriber'])) {
377               $ids = array();
378               foreach ($_POST['subscriber'] as $k => $v) {
379                    $ids[$k] = (integer) $v;
380               }
381
382               if (newsletterCore::suspend($ids)) {
383                    $msg = __('Account(s) successfully suspended.');
384               } else {
385                    throw new Exception(__('Error to suspend account(s)'));
386               }             
387          }
388          newsletterTools::redirection($m,$msg);
389     }
390     break;
391
392     // activation des comptes d'un ou plusieurs abonnés
393     case 'enable':
394     {
395          $msg = __('No account enabled.');
396          if (is_array($_POST['subscriber'])) {
397               $ids = array();
398
399               foreach ($_POST['subscriber'] as $k => $v) {
400                    $ids[$k] = (integer) $v;
401               }
402               if (newsletterCore::enable($ids)) 
403                    $msg = __('Account(s) successfully enabled.');
404               else
405                    throw new Exception(__('Error to enable account(s)'));
406          }
407          newsletterTools::redirection($m,$msg);
408     }
409     break;
410
411     // désactivation des comptes d'un ou plusieurs abonnés
412     case 'disable':
413     {
414          $msg = __('No account disabled.');
415          if (is_array($_POST['subscriber'])) {
416               $ids = array();
417
418               foreach ($_POST['subscriber'] as $k => $v) {
419                    $ids[$k] = (integer) $v;
420               }
421
422               if (newsletterCore::disable($ids)) 
423                    $msg = __('Account(s) successfully disabled.');
424               else
425                    throw new Exception(__('Error to disable account(s)'));
426          }
427          newsletterTools::redirection($m,$msg); 
428     }
429     break;
430
431     // envoi de la newsletter d'un ou plusieurs abonnés
432     case 'send':
433     {
434
435          if (is_array($_POST['subscriber'])) {
436               $ids = array();
437               foreach ($_POST['subscriber'] as $k => $v) {
438                    $ids[$k] = (integer) $v;
439               }
440               
441               $msg = newsletterCore::send($ids,'newsletter');
442               
443          }
444
445          newsletterTools::redirection($m,$msg);
446     }
447     break;
448
449     case 'sending':
450     {
451
452     }
453     break;
454
455     // réinitialisation de l'information 'dernier envoi'
456     case 'lastsent':
457     {
458          $msg = __('No account changed.');
459          if (is_array($_POST['subscriber'])) {
460               $ids = array();
461               foreach ($_POST['subscriber'] as $k => $v) {
462                    $ids[$k] = (integer) $v;
463               }
464
465               if (newsletterCore::lastsent($ids, 'clear')) 
466                    $msg = __('Account(s) successfully changed.');
467               else
468                    throw new Exception(__('Error in modification of field last sent'));
469          }
470          newsletterTools::redirection($m,$msg);
471     }
472     break;
473     
474     // envoi du mail de confirmation d'inscription
475     case 'sendconfirm':
476     {
477          if (is_array($_POST['subscriber'])) {
478               $ids = array();
479               foreach ($_POST['subscriber'] as $k => $v) {
480                    $ids[$k] = (integer) $v;
481               }
482
483               $msg = newsletterCore::send($ids,'confirm');
484          }
485          newsletterTools::redirection($m,$msg);
486     }
487     break;
488     
489     // envoi du mail de notification de suspension de compte
490     case 'sendsuspend':
491     {
492          if (is_array($_POST['subscriber'])) {
493               $ids = array();
494               foreach ($_POST['subscriber'] as $k => $v) {
495                    $ids[$k] = (integer) $v;
496               }
497
498               $msg = newsletterCore::send($ids,'suspend');
499          }
500          newsletterTools::redirection($m,$msg);
501     }
502     break;
503     
504     // envoi du mail de notification de désactivation de compte
505     case 'senddisable':
506     {
507          if (is_array($_POST['subscriber'])) {
508               $ids = array();
509               foreach ($_POST['subscriber'] as $k => $v) {
510                    $ids[$k] = (integer) $v;
511               }
512
513               $msg = newsletterCore::send($ids,'disable');
514          }
515          newsletterTools::redirection($m,$msg);
516     }
517     break;
518     
519     // envoi du mail de notification de validation de compte
520     case 'sendenable':
521     {
522          if (is_array($_POST['subscriber'])) {
523               $ids = array();
524               foreach ($_POST['subscriber'] as $k => $v) {
525                    $ids[$k] = (integer) $v;
526               }
527
528               $msg = newsletterCore::send($ids,'enable');
529          }
530          newsletterTools::redirection($m,$msg);
531     }
532     break;
533
534     // changement du format d'envoi en html pour un ou plusieurs abonnés
535     case 'changemodehtml':
536     {
537          $msg = __('No account(s) updated.');
538          if (is_array($_POST['subscriber'])) {
539               $ids = array();
540               foreach ($_POST['subscriber'] as $k => $v) {
541                    $ids[$k] = (integer) $v;
542               }
543
544               if (newsletterCore::changemodehtml($ids)) 
545                    $msg = __('Format sending for account(s) successfully updated to html.');
546               else
547                    throw new Exception(__('Error in modification format'));
548          }
549          newsletterTools::redirection($m,$msg);
550     }
551     break;
552
553     // changement du format d'envoi en html pour un ou plusieurs abonnés
554     case 'changemodetext':
555     {
556          $msg = __('No account(s) updated.');
557          if (is_array($_POST['subscriber'])) {
558               $ids = array();
559               foreach ($_POST['subscriber'] as $k => $v) {
560                    $ids[$k] = (integer) $v;
561               }
562
563               if (newsletterCore::changemodetext($ids)) 
564                    $msg = __('Format sending for account(s) successfully updated to text.');
565               else
566                    throw new Exception(__('Error in modification format'));
567          }
568          newsletterTools::redirection($m,$msg);
569     }
570     break;
571
572     // export des données
573     case 'export':
574     {
575          $m = 'maintenance';
576
577          if (!empty($_POST['type'])) 
578               $type = $_POST['type'];
579          else 
580               $type = 'blog';
581         
582          $msg = newsletterAdmin::Export( ($type=='blog') ? true : false );
583         
584          newsletterTools::redirection($m,$msg);
585     }
586     break;
587
588     // import des données
589     case 'import':
590     {
591          $m = 'maintenance';
592
593          if (!empty($_POST['type'])) 
594               $type = $_POST['type'];
595          else 
596               $type = 'blog';
597         
598          $msg = newsletterAdmin::Import( ($type=='blog') ? true : false );
599         
600          newsletterTools::redirection($m,$msg);
601     }
602     break;
603
604     // import email addresses from a file
605     case 'reprise':
606     {
607          $m = 'maintenance';
608
609          if (empty($_POST['your_pwd']) || !$core->auth->checkPassword(crypt::hmac(DC_MASTER_KEY,$_POST['your_pwd']))) {
610               throw new Exception(__('Password verification failed'));
611          }
612          $retour = newsletterAdmin::importFromTextFile($_FILES['file_reprise']);
613          if($retour) {
614               $msg = __('Datas imported from').' '.$_FILES['file_reprise']['name'].' : '.$retour;
615          }
616         
617          newsletterTools::redirection($m,$msg);
618     }
619     break;
620
621     // adaptation du template au thème
622     case 'adapt':
623     {
624          $m = 'maintenance';
625
626          $msg = __('No template adapted.');
627          if (!empty($_POST['fthemes'])) {
628               if (newsletterAdmin::adapt($_POST['fthemes'])) 
629                    $msg = __('Template successfully adapted.');
630               else
631                    throw new Exception(__('Error to adapt template'));
632          }
633         
634          newsletterTools::redirection($m,$msg);
635     }
636     break;
637     
638     // suppression des informations de newsletter en base
639     case 'erasingnewsletter':     
640     {
641          $m = 'maintenance';
642
643          // suppression de la tache planifiée   
644          if (isset($core->blog->dcCron)) {
645               $newsletter_cron=new newsletterCron($core); 
646               $newsletter_settings = new newsletterSettings($core);
647               $newsletter_settings->setCheckSchedule(false);
648               
649               // suppression de la tache planifiée
650               $newsletter_cron->del();
651
652               // notification de modification au blog
653               $newsletter_settings->save();
654          }
655               
656          newsletterAdmin::uninstall();
657         
658          $redir = 'plugin.php?p=aboutConfig';
659          http::redirect($redir);           
660     }
661     break;   
662   
663     case '-':
664     {
665          newsletterTools::redirection($m,$msg);
666     }
667     break;
668         
669     case 'none':
670     default:
671          break;
672}
673
674} catch (Exception $e) {
675     if(isset($core->blog->dcNewsletter)) {
676          $core->blog->dcNewsletter->addError($e->getMessage());
677          $core->blog->dcNewsletter->save();
678     }
679}
680
681# Display errors
682if(isset($core->blog->dcNewsletter)) {
683     foreach ($core->blog->dcNewsletter->getErrors() as $k => $v) {
684          $core->error->add($v);
685          $core->blog->dcNewsletter->delError($k);
686     }
687     $core->blog->dcNewsletter->save();
688}
689
690?>
691<html>
692<head>
693     <title><?php echo $plugin_name ?></title>
694     <link rel="stylesheet" type="text/css" href="<?php echo newsletterPlugin::urldatas() ?>/style.css" />
695     
696     <?php 
697     if (newsletterPlugin::isActive()) {
698          echo dcPage::jsLoad(DC_ADMIN_URL.'?pf=newsletter/js/_newsletter.js');
699
700          if ($plugin_tab == 'tab_planning') {
701               if (isset($core->blog->dcCron)) {
702                    echo dcPage::jsDatePicker();                 
703                    echo dcPage::jsLoad(DC_ADMIN_URL.'?pf=newsletter/js/_newsletter.cron.js');
704               }
705          } else if ($plugin_tab == 'tab_subscribers') {
706               echo dcPage::jsLoad('js/filter-controls.js');
707          }
708     }
709     ?>
710     <script type="text/javascript">
711     //<![CDATA[
712     <?php echo dcPage::jsVar('dotclear.msg.confirm_erasing_datas',__('Are you sure you want to delete all informations about newsletter in database ?')); ?>
713     <?php echo dcPage::jsVar('dotclear.msg.confirm_import',__('Are you sure you want to import a backup file ?')); ?>
714     //]]>
715     </script>
716     
717     <?php echo dcPage::jsPageTabs($plugin_tab); ?>   
718</head>
719<body>
720
721<?php 
722echo '<h2>'.html::escapeHTML($core->blog->name).' &gt; <a href="'.newsletterPlugin::admin().'" title="'.$plugin_name.'">'.$plugin_name.' '.newsletterPlugin::dcVersion().'</a></h2>';
723
724if (!empty($msg)) {
725     echo '<p class="message">'.$msg.'</p>';
726}
727
728$edit_subscriber = (!empty($_GET['id']) ? __('Edit') : __('Add'));
729
730switch ($plugin_tab) {
731     case 'tab_subscribers' :
732          echo '<div class="multi-part" id="tab_subscribers" title="'.__('Subscribers').'">';
733          newsletterSubscribersList::tabSubscribersList();
734          echo '</div>'; 
735          echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
736          echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
737          echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
738          echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
739          echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
740          break;
741     case 'tab_addedit' :
742          echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
743          echo '<div class="multi-part" id="tab_addedit" title="'.$edit_subscriber.'">';
744          tabsNewsletter::AddEdit();
745          echo '</div>'; 
746          echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
747          echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
748          echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
749          echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
750          break;
751     case 'tab_settings' :
752          echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
753          echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
754          echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
755          echo '<div class="multi-part" id="tab_settings" title="'.__('Settings').'">';   
756          tabsNewsletter::Settings();
757          echo '</div>';
758          echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
759          echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
760          break;
761     case 'tab_messages' :
762          echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
763          echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
764          echo '<div class="multi-part" id="tab_messages" title="'.__('Messages').'">';
765          tabsNewsletter::Messages();
766          echo '</div>';
767          echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
768          echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
769          echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
770          break;
771     case 'tab_planning':
772          echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
773          echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
774          echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
775          echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
776          echo '<div class="multi-part" id="tab_planning" title="'.__('Planning').'">';
777          tabsNewsletter::Planning();
778          echo '</div>';
779          echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
780          break;
781     case 'tab_maintenance':
782          echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
783          echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
784          echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
785          echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
786          echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
787          echo '<div class="multi-part" id="tab_maintenance" title="'.__('Maintenance').'">';
788          tabsNewsletter::Maintenance();
789          echo '</div>';
790          break;
791}
792
793?>
794     
795<?php dcPage::helpBlock('newsletter');?>
796
797</body>
798</html>
Note: See TracBrowser for help on using the repository browser.

Sites map