Dotclear

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

Revision 1538, 28.5 KB checked in by kwon, 14 years ago (diff)

Newsletter 3.6.0rc4 :

  • corrige le choix du template pour la newsletter
  • corrige la selection des abonnes lors de l'envoi de la newsletter
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          if (is_array($_POST['subscriber'])) {
435               $ids = array();
436               foreach ($_POST['subscriber'] as $k => $v) {
437                    // on verifie que les utilisateurs sont enabled
438                    if ($subscriber = newsletterCore::get((integer) $v)){
439                         if ($subscriber->state == 'enabled') {
440                              $ids[$k] = (integer) $v;
441                         }
442                    }
443               }
444               $msg = newsletterCore::send($ids,'newsletter');
445          }
446          newsletterTools::redirection($m,$msg);
447     }
448     break;
449
450     case 'sending':
451     {
452
453     }
454     break;
455
456     // réinitialisation de l'information 'dernier envoi'
457     case 'lastsent':
458     {
459          $msg = __('No account changed.');
460          if (is_array($_POST['subscriber'])) {
461               $ids = array();
462               foreach ($_POST['subscriber'] as $k => $v) {
463                    $ids[$k] = (integer) $v;
464               }
465
466               if (newsletterCore::lastsent($ids, 'clear')) 
467                    $msg = __('Account(s) successfully changed.');
468               else
469                    throw new Exception(__('Error in modification of field last sent'));
470          }
471          newsletterTools::redirection($m,$msg);
472     }
473     break;
474     
475     // envoi du mail de confirmation d'inscription
476     case 'sendconfirm':
477     {
478          if (is_array($_POST['subscriber'])) {
479               $ids = array();
480               foreach ($_POST['subscriber'] as $k => $v) {
481                    $ids[$k] = (integer) $v;
482               }
483
484               $msg = newsletterCore::send($ids,'confirm');
485          }
486          newsletterTools::redirection($m,$msg);
487     }
488     break;
489     
490     // envoi du mail de notification de suspension de compte
491     case 'sendsuspend':
492     {
493          if (is_array($_POST['subscriber'])) {
494               $ids = array();
495               foreach ($_POST['subscriber'] as $k => $v) {
496                    $ids[$k] = (integer) $v;
497               }
498
499               $msg = newsletterCore::send($ids,'suspend');
500          }
501          newsletterTools::redirection($m,$msg);
502     }
503     break;
504     
505     // envoi du mail de notification de désactivation de compte
506     case 'senddisable':
507     {
508          if (is_array($_POST['subscriber'])) {
509               $ids = array();
510               foreach ($_POST['subscriber'] as $k => $v) {
511                    $ids[$k] = (integer) $v;
512               }
513
514               $msg = newsletterCore::send($ids,'disable');
515          }
516          newsletterTools::redirection($m,$msg);
517     }
518     break;
519     
520     // envoi du mail de notification de validation de compte
521     case 'sendenable':
522     {
523          if (is_array($_POST['subscriber'])) {
524               $ids = array();
525               foreach ($_POST['subscriber'] as $k => $v) {
526                    $ids[$k] = (integer) $v;
527               }
528
529               $msg = newsletterCore::send($ids,'enable');
530          }
531          newsletterTools::redirection($m,$msg);
532     }
533     break;
534
535     // changement du format d'envoi en html pour un ou plusieurs abonnés
536     case 'changemodehtml':
537     {
538          $msg = __('No account(s) updated.');
539          if (is_array($_POST['subscriber'])) {
540               $ids = array();
541               foreach ($_POST['subscriber'] as $k => $v) {
542                    $ids[$k] = (integer) $v;
543               }
544
545               if (newsletterCore::changemodehtml($ids)) 
546                    $msg = __('Format sending for account(s) successfully updated to html.');
547               else
548                    throw new Exception(__('Error in modification format'));
549          }
550          newsletterTools::redirection($m,$msg);
551     }
552     break;
553
554     // changement du format d'envoi en html pour un ou plusieurs abonnés
555     case 'changemodetext':
556     {
557          $msg = __('No account(s) updated.');
558          if (is_array($_POST['subscriber'])) {
559               $ids = array();
560               foreach ($_POST['subscriber'] as $k => $v) {
561                    $ids[$k] = (integer) $v;
562               }
563
564               if (newsletterCore::changemodetext($ids)) 
565                    $msg = __('Format sending for account(s) successfully updated to text.');
566               else
567                    throw new Exception(__('Error in modification format'));
568          }
569          newsletterTools::redirection($m,$msg);
570     }
571     break;
572
573     // export des données
574     case 'export':
575     {
576          $m = 'maintenance';
577
578          if (!empty($_POST['type'])) 
579               $type = $_POST['type'];
580          else 
581               $type = 'blog';
582         
583          $msg = newsletterAdmin::Export( ($type=='blog') ? true : false );
584         
585          newsletterTools::redirection($m,$msg);
586     }
587     break;
588
589     // import des données
590     case 'import':
591     {
592          $m = 'maintenance';
593
594          if (!empty($_POST['type'])) 
595               $type = $_POST['type'];
596          else 
597               $type = 'blog';
598         
599          $msg = newsletterAdmin::Import( ($type=='blog') ? true : false );
600         
601          newsletterTools::redirection($m,$msg);
602     }
603     break;
604
605     // import email addresses from a file
606     case 'reprise':
607     {
608          $m = 'maintenance';
609
610          if (empty($_POST['your_pwd']) || !$core->auth->checkPassword(crypt::hmac(DC_MASTER_KEY,$_POST['your_pwd']))) {
611               throw new Exception(__('Password verification failed'));
612          }
613          $retour = newsletterAdmin::importFromTextFile($_FILES['file_reprise']);
614          if($retour) {
615               $msg = __('Datas imported from').' '.$_FILES['file_reprise']['name'].' : '.$retour;
616          }
617         
618          newsletterTools::redirection($m,$msg);
619     }
620     break;
621
622     // adaptation du template au thème
623     case 'adapt':
624     {
625          $m = 'maintenance';
626
627          $msg = __('No template adapted.');
628          if (!empty($_POST['fthemes'])) {
629               if (newsletterAdmin::adapt($_POST['fthemes'])) 
630                    $msg = __('Template successfully adapted.');
631               else
632                    throw new Exception(__('Error to adapt template'));
633          }
634         
635          newsletterTools::redirection($m,$msg);
636     }
637     break;
638     
639     // suppression des informations de newsletter en base
640     case 'erasingnewsletter':     
641     {
642          $m = 'maintenance';
643
644          // suppression de la tache planifiée   
645          if (isset($core->blog->dcCron)) {
646               $newsletter_cron=new newsletterCron($core); 
647               $newsletter_settings = new newsletterSettings($core);
648               $newsletter_settings->setCheckSchedule(false);
649               
650               // suppression de la tache planifiée
651               $newsletter_cron->del();
652
653               // notification de modification au blog
654               $newsletter_settings->save();
655          }
656               
657          newsletterAdmin::uninstall();
658         
659          $redir = 'plugin.php?p=aboutConfig';
660          http::redirect($redir);           
661     }
662     break;   
663   
664     case '-':
665     {
666          newsletterTools::redirection($m,$msg);
667     }
668     break;
669         
670     case 'none':
671     default:
672          break;
673}
674
675} catch (Exception $e) {
676     if(isset($core->blog->dcNewsletter)) {
677          $core->blog->dcNewsletter->addError($e->getMessage());
678          $core->blog->dcNewsletter->save();
679     }
680}
681
682# Display errors
683if(isset($core->blog->dcNewsletter)) {
684     foreach ($core->blog->dcNewsletter->getErrors() as $k => $v) {
685          $core->error->add($v);
686          $core->blog->dcNewsletter->delError($k);
687     }
688     $core->blog->dcNewsletter->save();
689}
690
691?>
692<html>
693<head>
694     <title><?php echo $plugin_name ?></title>
695     <link rel="stylesheet" type="text/css" href="<?php echo newsletterPlugin::urldatas() ?>/style.css" />
696     
697     <?php 
698     if (newsletterPlugin::isActive()) {
699          echo dcPage::jsLoad(DC_ADMIN_URL.'?pf=newsletter/js/_newsletter.js');
700
701          if ($plugin_tab == 'tab_planning') {
702               if (isset($core->blog->dcCron)) {
703                    echo dcPage::jsDatePicker();                 
704                    echo dcPage::jsLoad(DC_ADMIN_URL.'?pf=newsletter/js/_newsletter.cron.js');
705               }
706          } else if ($plugin_tab == 'tab_subscribers') {
707               echo dcPage::jsLoad('js/filter-controls.js');
708          }
709     }
710     ?>
711     <script type="text/javascript">
712     //<![CDATA[
713     <?php echo dcPage::jsVar('dotclear.msg.confirm_erasing_datas',__('Are you sure you want to delete all informations about newsletter in database ?')); ?>
714     <?php echo dcPage::jsVar('dotclear.msg.confirm_import',__('Are you sure you want to import a backup file ?')); ?>
715     //]]>
716     </script>
717     
718     <?php echo dcPage::jsPageTabs($plugin_tab); ?>   
719</head>
720<body>
721
722<?php 
723echo '<h2>'.html::escapeHTML($core->blog->name).' &gt; <a href="'.newsletterPlugin::admin().'" title="'.$plugin_name.'">'.$plugin_name.' '.newsletterPlugin::dcVersion().'</a></h2>';
724
725if (!empty($msg)) {
726     echo '<p class="message">'.$msg.'</p>';
727}
728
729$edit_subscriber = (!empty($_GET['id']) ? __('Edit') : __('Add'));
730
731switch ($plugin_tab) {
732     case 'tab_subscribers' :
733          echo '<div class="multi-part" id="tab_subscribers" title="'.__('Subscribers').'">';
734          newsletterSubscribersList::tabSubscribersList();
735          echo '</div>'; 
736          echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
737          echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
738          echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
739          echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
740          echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
741          break;
742     case 'tab_addedit' :
743          echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
744          echo '<div class="multi-part" id="tab_addedit" title="'.$edit_subscriber.'">';
745          tabsNewsletter::AddEdit();
746          echo '</div>'; 
747          echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
748          echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
749          echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
750          echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
751          break;
752     case 'tab_settings' :
753          echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
754          echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
755          echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
756          echo '<div class="multi-part" id="tab_settings" title="'.__('Settings').'">';   
757          tabsNewsletter::Settings();
758          echo '</div>';
759          echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
760          echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
761          break;
762     case 'tab_messages' :
763          echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
764          echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
765          echo '<div class="multi-part" id="tab_messages" title="'.__('Messages').'">';
766          tabsNewsletter::Messages();
767          echo '</div>';
768          echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
769          echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
770          echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
771          break;
772     case 'tab_planning':
773          echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
774          echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
775          echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
776          echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
777          echo '<div class="multi-part" id="tab_planning" title="'.__('Planning').'">';
778          tabsNewsletter::Planning();
779          echo '</div>';
780          echo '<p><a href="plugin.php?p=newsletter&amp;m=maintenance" class="multi-part">'.__('Maintenance').'</a></p>';
781          break;
782     case 'tab_maintenance':
783          echo '<p><a href="plugin.php?p=newsletter&amp;m=subscribers" class="multi-part">'.__('Subscribers').'</a></p>';
784          echo '<p><a href="plugin.php?p=newsletter&amp;m=addedit" class="multi-part">'.$edit_subscriber.'</a></p>';
785          echo '<p><a href="plugin.php?p=newsletter&amp;m=messages" class="multi-part">'.__('Messages').'</a></p>';
786          echo '<p><a href="plugin.php?p=newsletter&amp;m=settings" class="multi-part">'.__('Settings').'</a></p>';
787          echo '<p><a href="plugin.php?p=newsletter&amp;m=planning" class="multi-part">'.__('Planning').'</a></p>';
788          echo '<div class="multi-part" id="tab_maintenance" title="'.__('Maintenance').'">';
789          tabsNewsletter::Maintenance();
790          echo '</div>';
791          break;
792}
793
794?>
795     
796<?php dcPage::helpBlock('newsletter');?>
797
798</body>
799</html>
Note: See TracBrowser for help on using the repository browser.

Sites map