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 | |
---|
13 | /** ================================================== |
---|
14 | administration |
---|
15 | ================================================== */ |
---|
16 | |
---|
17 | class newsletterAdmin |
---|
18 | { |
---|
19 | /** |
---|
20 | * désinstallation du plugin |
---|
21 | */ |
---|
22 | public static function uninstall() |
---|
23 | { |
---|
24 | // suppression du schéma |
---|
25 | global $core; |
---|
26 | try { |
---|
27 | // désactivation du plugin |
---|
28 | newsletterPlugin::inactivate(); |
---|
29 | |
---|
30 | // suppression des paramètres par défaut |
---|
31 | newsletterPlugin::deleteSettings(); |
---|
32 | newsletterPlugin::delete_version(); |
---|
33 | |
---|
34 | $con = &$core->con; |
---|
35 | |
---|
36 | $strReq = |
---|
37 | 'DROP TABLE '. |
---|
38 | $core->prefix.newsletterPlugin::pname(); |
---|
39 | |
---|
40 | $rs = $con->execute($strReq); |
---|
41 | |
---|
42 | } catch (Exception $e) { |
---|
43 | $core->error->add($e->getMessage()); |
---|
44 | } |
---|
45 | } |
---|
46 | |
---|
47 | /** |
---|
48 | * export du contenu du schéma |
---|
49 | */ |
---|
50 | public static function Export($onlyblog = true, $outfile = null) |
---|
51 | { |
---|
52 | global $core; |
---|
53 | try { |
---|
54 | $blog = &$core->blog; |
---|
55 | $blogid = (string)$blog->id; |
---|
56 | |
---|
57 | // générer le contenu du fichier à partir des données |
---|
58 | if (isset($outfile)) { |
---|
59 | $filename = $outfile; |
---|
60 | } else { |
---|
61 | if ($onlyblog) |
---|
62 | $filename = $core->blog->public_path.'/'.$blogid.'-'.newsletterPlugin::pname().'.dat'; |
---|
63 | else |
---|
64 | $filename = $core->blog->public_path.'/'.newsletterPlugin::pname().'.dat'; |
---|
65 | } |
---|
66 | |
---|
67 | $content = ''; |
---|
68 | $datas = newsletterCore::getRawDatas($onlyblog); |
---|
69 | if (is_object($datas) !== FALSE) { |
---|
70 | $datas->moveStart(); |
---|
71 | while ($datas->fetch()) |
---|
72 | { |
---|
73 | $elems = array(); |
---|
74 | |
---|
75 | // génération des élements de données |
---|
76 | $elems[] = $datas->subscriber_id; |
---|
77 | $elems[] = base64_encode($datas->blog_id); |
---|
78 | $elems[] = base64_encode($datas->email); |
---|
79 | $elems[] = base64_encode($datas->regcode); |
---|
80 | $elems[] = base64_encode($datas->state); |
---|
81 | $elems[] = base64_encode($datas->subscribed); |
---|
82 | $elems[] = base64_encode($datas->lastsent); |
---|
83 | $elems[] = base64_encode($datas->modesend); |
---|
84 | |
---|
85 | // génération de la ligne de données exportées(séparateur -> ;) |
---|
86 | $line = implode(";", $elems); |
---|
87 | $content .= "$line\n"; |
---|
88 | } |
---|
89 | } |
---|
90 | |
---|
91 | // écrire le contenu dans le fichier |
---|
92 | if(@file_put_contents($filename, $content)) { |
---|
93 | return $msg = __('Datas exported in file').' '.$filename; |
---|
94 | } else { |
---|
95 | throw new Exception(__('Error during export')); |
---|
96 | } |
---|
97 | |
---|
98 | |
---|
99 | } catch (Exception $e) { |
---|
100 | $core->error->add($e->getMessage()); |
---|
101 | } |
---|
102 | } |
---|
103 | |
---|
104 | /** |
---|
105 | * import du contenu du schéma |
---|
106 | */ |
---|
107 | public static function Import($onlyblog = true, $infile = null) |
---|
108 | { |
---|
109 | global $core; |
---|
110 | |
---|
111 | $blog = &$core->blog; |
---|
112 | $blogid = (string)$blog->id; |
---|
113 | |
---|
114 | // lire le contenu du fichier à partir des données |
---|
115 | if (isset($infile)) |
---|
116 | $filename = $infile; |
---|
117 | else { |
---|
118 | if ($onlyblog) |
---|
119 | $filename = $core->blog->public_path.'/'.$blogid.'-'.newsletterPlugin::pname().'.dat'; |
---|
120 | else |
---|
121 | $filename = $core->blog->public_path.'/'.newsletterPlugin::pname().'.dat'; |
---|
122 | } |
---|
123 | |
---|
124 | // ouverture du fichier |
---|
125 | $fh = @fopen($filename, "r"); |
---|
126 | if ($fh === FALSE) |
---|
127 | throw new Exception(__('File not readable').' '.$filename); |
---|
128 | else { |
---|
129 | // boucle de lecture sur les lignes du fichier |
---|
130 | $err = false; |
---|
131 | while (!feof($fh)) { |
---|
132 | // lecture d'une ligne du fichier |
---|
133 | $l = @fgetss($fh, 4096); |
---|
134 | if ($l != FALSE) { |
---|
135 | // sécurisation du contenu de la ligne et décomposition en élements (séparateur -> ;) |
---|
136 | $line = (string) html::clean((string) $l); |
---|
137 | $elems = explode(";", $line); |
---|
138 | |
---|
139 | // traitement des données lues |
---|
140 | $subscriber_id = $elems[0]; |
---|
141 | $blog_id = base64_decode($elems[1]); |
---|
142 | $email = base64_decode($elems[2]); |
---|
143 | $regcode = base64_decode($elems[3]); |
---|
144 | $state = base64_decode($elems[4]); |
---|
145 | $subscribed = base64_decode($elems[5]); |
---|
146 | $lastsent = base64_decode($elems[6]); |
---|
147 | $modesend = base64_decode($elems[7]); |
---|
148 | |
---|
149 | newsletterCore::add($email, $blog_id, $regcode, $modesend); |
---|
150 | |
---|
151 | $subscriber = newsletterCore::getEmail($email); |
---|
152 | if ($subscriber != null) { |
---|
153 | //$core->error->add('id : '.$subscriber->subscriber_id); |
---|
154 | newsletterCore::update($subscriber->subscriber_id, $email, $state, $regcode, $subscribed, $lastsent, $modesend); |
---|
155 | } |
---|
156 | } |
---|
157 | } |
---|
158 | |
---|
159 | // fermeture du fichier |
---|
160 | @fclose($fh); |
---|
161 | |
---|
162 | if ($err) |
---|
163 | throw new Exception(__('Error to import file').' '.$filename); |
---|
164 | else |
---|
165 | return $msg = __('Datas imported from file').' '.$filename; |
---|
166 | } |
---|
167 | } |
---|
168 | |
---|
169 | /** |
---|
170 | * import email addresses from a file |
---|
171 | */ |
---|
172 | public static function importFromTextFile($infile = null) |
---|
173 | { |
---|
174 | global $core; |
---|
175 | try { |
---|
176 | $blog = &$core->blog; |
---|
177 | $blogid = (string)$blog->id; |
---|
178 | $counter=0; |
---|
179 | $counter_ignore=0; |
---|
180 | $counter_failed=0; |
---|
181 | |
---|
182 | $newsletter_settings = new newsletterSettings($core); |
---|
183 | $modesend = $newsletter_settings->getSendMode(); |
---|
184 | |
---|
185 | if (!empty($infile)){ |
---|
186 | |
---|
187 | //$core->error->add('Traitement du fichier ' . $infile['name']); |
---|
188 | files::uploadStatus($infile); |
---|
189 | $filename = $infile['tmp_name']; |
---|
190 | |
---|
191 | if(file_exists($filename) && is_readable($filename)) { |
---|
192 | |
---|
193 | // ouverture du fichier |
---|
194 | $fh = @fopen($filename, "r"); |
---|
195 | |
---|
196 | // boucle de lecture sur les lignes du fichier |
---|
197 | while (!feof($fh)) { |
---|
198 | // lecture d'une ligne du fichier |
---|
199 | $l = @fgetss($fh, 4096); |
---|
200 | if ($l != FALSE) { |
---|
201 | $email = trim($l); |
---|
202 | if (!text::isEmail($email)) { |
---|
203 | $core->error->add(html::escapeHTML($email).' '.__('is not a valid email address.')); |
---|
204 | $counter_failed++; |
---|
205 | } else { |
---|
206 | $regcode = newsletterTools::regcode(); |
---|
207 | if(newsletterCore::add($email, $blog_id, $regcode, $modesend)) |
---|
208 | $counter++; |
---|
209 | else |
---|
210 | $counter_ignore++; |
---|
211 | } |
---|
212 | } |
---|
213 | } |
---|
214 | |
---|
215 | // fermeture du fichier |
---|
216 | @fclose($fh); |
---|
217 | |
---|
218 | // message de retour |
---|
219 | if(0 == $counter || 1 == $counter) { |
---|
220 | $retour = $counter . ' ' . __('email inserted'); |
---|
221 | } else { |
---|
222 | $retour = $counter . ' ' . __('emails inserted'); |
---|
223 | } |
---|
224 | if(0 == $counter_ignore || 1 == $counter_ignore) { |
---|
225 | $retour .= ', ' . $counter_ignore . ' ' . __('email ignored'); |
---|
226 | } else { |
---|
227 | $retour .= ', ' . $counter_ignore . ' ' . __('emails ignored'); |
---|
228 | } |
---|
229 | if(1 == $counter_failed) { |
---|
230 | $retour .= ', ' . $counter_failed . ' ' . __('line incorrect'); |
---|
231 | } else { |
---|
232 | $retour .= ', ' . $counter_failed . ' ' . __('lines incorrect'); |
---|
233 | } |
---|
234 | |
---|
235 | return $retour; |
---|
236 | } else { |
---|
237 | throw new Exception(__('No file to read.')); |
---|
238 | } |
---|
239 | } else { |
---|
240 | throw new Exception(__('No file to read.')); |
---|
241 | } |
---|
242 | } catch (Exception $e) { |
---|
243 | $core->error->add($e->getMessage()); |
---|
244 | } |
---|
245 | } |
---|
246 | |
---|
247 | /** |
---|
248 | * formulaire d'adaptation de template |
---|
249 | */ |
---|
250 | public static function adapt($theme = null) |
---|
251 | { |
---|
252 | // prise en compte du plugin installé |
---|
253 | if (!newsletterPlugin::isInstalled()) |
---|
254 | return; |
---|
255 | |
---|
256 | if ($theme == null) |
---|
257 | echo __('No template to adapt.'); |
---|
258 | else { |
---|
259 | global $core; |
---|
260 | try { |
---|
261 | |
---|
262 | $blog = &$core->blog; |
---|
263 | $settings = &$blog->settings; |
---|
264 | |
---|
265 | // fichier source |
---|
266 | //$sfile = 'post.html'; |
---|
267 | $sfile = 'home.html'; |
---|
268 | $source = $blog->themes_path.'/'.$theme.'/tpl/'.$sfile; |
---|
269 | |
---|
270 | // fichier de template |
---|
271 | $tfile = 'template.newsletter.html'; |
---|
272 | $template = dirname(__FILE__).'/../default-templates/'.$tfile; |
---|
273 | |
---|
274 | // fichier destination |
---|
275 | $dest = $blog->themes_path.'/'.$theme.'/tpl/'.'subscribe.newsletter.html'; |
---|
276 | |
---|
277 | |
---|
278 | if (!@file_exists($source)) { // test d'existence de la source |
---|
279 | $msg = $sfile.' '.__('is not in your theme folder.').' ('.$blog->themes_path.')'; |
---|
280 | $core->error->add($msg); |
---|
281 | return; |
---|
282 | } else if (!@file_exists($template)) { // test d'existence du template source |
---|
283 | $msg = $tfile.' '.__('is not in the plugin folder.').' ('.dirname(__FILE__).')'; |
---|
284 | $core->error->add($msg); |
---|
285 | return; |
---|
286 | } else if (!@is_readable($source)) { // test si le fichier source est lisible |
---|
287 | $msg = $sfile.' '.__('is not readable.'); |
---|
288 | $core->error->add($msg); |
---|
289 | return; |
---|
290 | } else { |
---|
291 | // lecture du contenu des fichiers template et source |
---|
292 | $tcontent = @file_get_contents($template); |
---|
293 | $scontent = @file_get_contents($source); |
---|
294 | |
---|
295 | // definition des remplacements |
---|
296 | switch ($theme) { |
---|
297 | case 'noviny': |
---|
298 | { |
---|
299 | // traitement du theme particulier noviny |
---|
300 | $patterns[0] = '/<div id=\"overview\" class=\"grid-l\">[\S\s]*<div id=\"extra\"/'; |
---|
301 | $replacements[0] = '<div class="grid-l">'. "\n" .'<div class="post">'. "\n" . $tcontent . "\n" .'</div>'. "\n" . '</div>'. "\n" .'<div id="extra"'; |
---|
302 | $patterns[1] = '/<title>.*<\/title>/'; |
---|
303 | $replacements[1] = '<title>{{tpl:NewsletterPageTitle encode_html="1"}} - {{tpl:BlogName encode_html="1"}}</title>'; |
---|
304 | $patterns[2] = '/dc-home/'; |
---|
305 | $replacements[2] = 'dc-newsletter'; |
---|
306 | $patterns[3] = '/<meta name=\"dc.title\".*\/>/'; |
---|
307 | $replacements[3] = '<meta name="dc.title" content="{{tpl:NewsletterPageTitle encode_html="1"}} - {{tpl:BlogName encode_html="1"}}" />'; |
---|
308 | $patterns[4] = '/<div id=\"lead\" class="grid-l home-lead">[\S\s]*<div id=\"meta\"/'; |
---|
309 | $replacements[4] = '<div id="lead" class="grid-l">'. "\n\t" .'<h2>{{tpl:NewsletterPageTitle encode_html="1"}}</h2>'. "\n\t" .'</div>'. "\n\t" . '<div id="meta"'; |
---|
310 | $patterns[5] = '/<div id=\"meta\" class=\"grid-s\">[\S\s]*{{tpl:include src=\"inc_meta.html\"}}/'; |
---|
311 | $replacements[5] = '<div id="meta" class="grid-s">'. "\n\t" .'{{tpl:include src="inc_meta.html"}}'; |
---|
312 | $patterns[6] = '/<h2 class=\"post-title\">{{tpl:NewsletterPageTitle encode_html=\"1\"}}<\/h2>/'; |
---|
313 | $replacements[6] = ''; |
---|
314 | break; |
---|
315 | } |
---|
316 | default: |
---|
317 | { |
---|
318 | $patterns[0] = '/<tpl:Entries>[\S\s]*<\/tpl:Entries>/'; |
---|
319 | $replacements[0] = $tcontent; |
---|
320 | $patterns[1] = '/<title>.*<\/title>/'; |
---|
321 | $replacements[1] = '<title>{{tpl:NewsletterPageTitle encode_html="1"}} - {{tpl:BlogName encode_html="1"}}</title>'; |
---|
322 | $patterns[2] = '/dc-home/'; |
---|
323 | $replacements[2] = 'dc-newsletter'; |
---|
324 | $patterns[3] = '/<meta name=\"dc.title\".*\/>/'; |
---|
325 | $replacements[3] = '<meta name="dc.title" content="{{tpl:NewsletterPageTitle encode_html="1"}} - {{tpl:BlogName encode_html="1"}}" />'; |
---|
326 | $patterns[4] = '/<tpl:Entries no_content=\"1\">[\S\s]*<\/tpl:Entries>/'; |
---|
327 | $replacements[4] = ''; |
---|
328 | } |
---|
329 | } |
---|
330 | |
---|
331 | |
---|
332 | $count = 0; |
---|
333 | $scontent = preg_replace($patterns, $replacements, $scontent, 1, $count); |
---|
334 | //$core->error->add('Nombre de remplacements : ' . $count); |
---|
335 | |
---|
336 | // suppression des lignes vides et des espaces de fin de ligne |
---|
337 | $a2 = array(); |
---|
338 | $tok = strtok($scontent, "\n\r"); |
---|
339 | while ($tok !== FALSE) |
---|
340 | { |
---|
341 | $l = rtrim($tok); |
---|
342 | if (strlen($l) > 0) |
---|
343 | $a2[] = $l; |
---|
344 | $tok = strtok("\n\r"); |
---|
345 | } |
---|
346 | $c2 = implode("\n", $a2); |
---|
347 | $scontent = $c2; |
---|
348 | |
---|
349 | // écriture du fichier de template |
---|
350 | if ((@file_exists($dest) && @is_writable($dest)) || @is_writable($blog->themes_path)) { |
---|
351 | $fp = @fopen($dest, 'w'); |
---|
352 | @fputs($fp, $scontent); |
---|
353 | @fclose($fp); |
---|
354 | $msg = __('Template created.'); |
---|
355 | } else { |
---|
356 | $msg = __('Unable to write file.'); |
---|
357 | } |
---|
358 | |
---|
359 | //@file_put_contents($dest,$scontent); |
---|
360 | $msg = __('Template created.'); |
---|
361 | |
---|
362 | } |
---|
363 | |
---|
364 | return $msg; |
---|
365 | } catch (Exception $e) { |
---|
366 | $core->error->add($e->getMessage()); |
---|
367 | } |
---|
368 | } |
---|
369 | } |
---|
370 | } |
---|
371 | |
---|
372 | /** ================================================== |
---|
373 | onglets de la partie d'administration |
---|
374 | ================================================== */ |
---|
375 | |
---|
376 | class tabsNewsletter |
---|
377 | { |
---|
378 | /** |
---|
379 | * paramétrage du plugin |
---|
380 | */ |
---|
381 | public static function Settings() |
---|
382 | { |
---|
383 | // prise en compte du plugin installé |
---|
384 | if (!newsletterCore::isInstalled()) { |
---|
385 | return; |
---|
386 | } |
---|
387 | |
---|
388 | global $core; |
---|
389 | try { |
---|
390 | $blog = &$core->blog; |
---|
391 | $auth = &$core->auth; |
---|
392 | |
---|
393 | $mode_combo = array(__('text') => 'text', |
---|
394 | __('html') => 'html'); |
---|
395 | $date_combo = array(__('creation date') => 'post_creadt', |
---|
396 | __('update date') => 'post_dt', |
---|
397 | __('publication date') => 'post_upddt' |
---|
398 | ); |
---|
399 | |
---|
400 | $sadmin = (($auth->isSuperAdmin()) ? true : false); |
---|
401 | |
---|
402 | if (newsletterPlugin::isActive()) { |
---|
403 | |
---|
404 | $newsletter_settings = new newsletterSettings($core); |
---|
405 | |
---|
406 | // initialisation des variables |
---|
407 | $feditorname = $newsletter_settings->getEditorName(); |
---|
408 | $feditoremail = $newsletter_settings->getEditorEmail(); |
---|
409 | $fcaptcha = $newsletter_settings->getCaptcha(); |
---|
410 | $fmode = $newsletter_settings->getSendMode(); |
---|
411 | $f_use_default_format = $newsletter_settings->getUseDefaultFormat(); |
---|
412 | $fmaxposts = $newsletter_settings->getMaxPosts(); |
---|
413 | $fminposts = $newsletter_settings->getMinPosts(); |
---|
414 | $f_view_content_post = $newsletter_settings->getViewContentPost(); |
---|
415 | $f_size_content_post = $newsletter_settings->getSizeContentPost(); |
---|
416 | $fautosend = $newsletter_settings->getAutosend(); |
---|
417 | $f_check_notification = $newsletter_settings->getCheckNotification(); |
---|
418 | $f_check_use_suspend = $newsletter_settings->getCheckUseSuspend(); |
---|
419 | $f_order_date = $newsletter_settings->getOrderDate(); |
---|
420 | |
---|
421 | $rs = $core->blog->getCategories(array('post_type'=>'post')); |
---|
422 | $categories = array('' => '', __('Uncategorized') => 'null'); |
---|
423 | while ($rs->fetch()) { |
---|
424 | $categories[str_repeat(' ',$rs->level-1).'• '.html::escapeHTML($rs->cat_title)] = $rs->cat_id; |
---|
425 | } |
---|
426 | $f_category = $newsletter_settings->getCategory(); |
---|
427 | $f_check_subcategories = $newsletter_settings->getCheckSubCategories(); |
---|
428 | |
---|
429 | // gestion des paramètres du plugin |
---|
430 | echo |
---|
431 | '<form action="plugin.php?p=newsletter&m=settings" method="post" id="settings">'. |
---|
432 | '<fieldset id="advanced">'. |
---|
433 | '<legend>'.__('Advanced Settings').'</legend>'. |
---|
434 | '<p class="field">'. |
---|
435 | '<label for="feditorname" class="classic required" title="'.__('Required field').'">'.__('Editor name').'</label>'. |
---|
436 | form::field('feditorname',50,255,html::escapeHTML($feditorname)). |
---|
437 | '</p>'. |
---|
438 | '<p class="field">'. |
---|
439 | '<label for="feditoremail" class="classic required" title="'.__('Required field').'">'.__('Editor email').'</label>'. |
---|
440 | form::field('feditoremail',50,255,html::escapeHTML($feditoremail)). |
---|
441 | '</p>'. |
---|
442 | '<p class="field">'. |
---|
443 | '<label for="fcaptcha" class="classic">'.__('Captcha').'</label>'. |
---|
444 | form::checkbox('fcaptcha',1,$fcaptcha). |
---|
445 | '</p>'. |
---|
446 | '<p class="field">'. |
---|
447 | '<label for="fmode" class="classic">'.__('Default format for sending').'</label>'. |
---|
448 | form::combo('fmode',$mode_combo,$fmode). |
---|
449 | '</p>'. |
---|
450 | '<p class="field">'. |
---|
451 | '<label for="f_use_default_format" class="classic">'.__('Use default format for sending').'</label>'. |
---|
452 | form::checkbox('f_use_default_format',1,$f_use_default_format). |
---|
453 | '</p>'. |
---|
454 | '<p class="field">'. |
---|
455 | '<label for="fautosend" class="classic">'.__('Automatic send').'</label>'. |
---|
456 | form::checkbox('fautosend',1,$fautosend). |
---|
457 | '</p>'. |
---|
458 | '<p class="field">'. |
---|
459 | '<label for="f_check_notification" class="classic">'.__('Notification sending').'</label>'. |
---|
460 | form::checkbox('f_check_notification',1,$f_check_notification). |
---|
461 | '</p>'. |
---|
462 | '<p class="field">'. |
---|
463 | '<label for="fminposts" class="classic">'.__('Minimum posts').'</label>'. |
---|
464 | form::field('fminposts',4,4,$fminposts). |
---|
465 | '</p>'. |
---|
466 | '<p class="field">'. |
---|
467 | '<label for="fmaxposts" class="classic">'.__('Maximum posts').'</label>'. |
---|
468 | form::field('fmaxposts',4,4,$fmaxposts). |
---|
469 | '</p>'. |
---|
470 | '<p class="field">'. |
---|
471 | '<label for="f_view_content_post" class="classic">'.__('View contents posts').'</label>'. |
---|
472 | form::checkbox('f_view_content_post',1,$f_view_content_post). |
---|
473 | '</p>'. |
---|
474 | '<p class="field">'. |
---|
475 | '<label for="f_size_content_post" class="classic">'.__('Size contents posts').'</label>'. |
---|
476 | form::field('f_size_content_post',4,4,$f_size_content_post). |
---|
477 | '</p>'. |
---|
478 | '<p class="field">'. |
---|
479 | '<label for="f_category" class="classic">'.__('Category').'</label>'. |
---|
480 | form::combo('f_category',$categories,$f_category). |
---|
481 | '</p>'. |
---|
482 | '<p class="field">'. |
---|
483 | '<label for="f_check_subcategories" class="classic">'.__('Include sub-categories').'</label>'. |
---|
484 | form::checkbox('f_check_subcategories',1,$f_check_subcategories). |
---|
485 | '</p>'. |
---|
486 | '<p class="field">'. |
---|
487 | '<label for="f_check_use_suspend" class="classic">'.__('Use suspend option').'</label>'. |
---|
488 | form::checkbox('f_check_use_suspend',1,$f_check_use_suspend). |
---|
489 | '</p>'. |
---|
490 | '<p class="field">'. |
---|
491 | '<label for="f_order_date" class="classic">'.__('Date selection for sorting posts').'</label>'. |
---|
492 | form::combo('f_order_date',$date_combo,$f_order_date). |
---|
493 | '</p>'. |
---|
494 | '</fieldset>'. |
---|
495 | // boutons du formulaire |
---|
496 | '<p>'. |
---|
497 | '<input type="submit" name="save" value="'.__('Save').'" /> '. |
---|
498 | '<input type="reset" name="reset" value="'.__('Cancel').'" /> '. |
---|
499 | '</p>'. |
---|
500 | '<p>'. |
---|
501 | form::hidden(array('p'),newsletterPlugin::pname()). |
---|
502 | form::hidden(array('op'),'settings'). |
---|
503 | $core->formNonce(). |
---|
504 | '</p>'. |
---|
505 | '</form>'. |
---|
506 | ''; |
---|
507 | } else { |
---|
508 | echo |
---|
509 | '<fieldset>'. |
---|
510 | '<p>'. |
---|
511 | '<label class="classic">'.__('Activate the plugin in the Maintenance tab to view all options').'</label>'. |
---|
512 | '</p>'. |
---|
513 | '</fieldset>'; |
---|
514 | } |
---|
515 | |
---|
516 | } catch (Exception $e) { |
---|
517 | $core->error->add($e->getMessage()); |
---|
518 | } |
---|
519 | } |
---|
520 | |
---|
521 | /** |
---|
522 | * paramétrage du plugin |
---|
523 | */ |
---|
524 | public static function Messages() |
---|
525 | { |
---|
526 | global $core; |
---|
527 | try { |
---|
528 | $blog = &$core->blog; |
---|
529 | $auth = &$core->auth; |
---|
530 | |
---|
531 | $sadmin = (($auth->isSuperAdmin()) ? true : false); |
---|
532 | |
---|
533 | if (newsletterPlugin::isActive()) { |
---|
534 | $newsletter_settings = new newsletterSettings($core); |
---|
535 | |
---|
536 | // newsletter |
---|
537 | $f_newsletter_subject = $newsletter_settings->getNewsletterSubject(); |
---|
538 | $f_introductory_msg = $newsletter_settings->getIntroductoryMsg(); |
---|
539 | $f_concluding_msg = $newsletter_settings->getConcludingMsg(); |
---|
540 | $f_msg_presentation_form = $newsletter_settings->getMsgPresentationForm(); |
---|
541 | $f_presentation_msg = $newsletter_settings->getPresentationMsg(); |
---|
542 | $f_presentation_posts_msg = $newsletter_settings->getPresentationPostsMsg(); |
---|
543 | |
---|
544 | // confirm |
---|
545 | $f_confirm_subject = $newsletter_settings->getConfirmSubject(); |
---|
546 | $f_txt_intro_confirm = $newsletter_settings->getTxtIntroConfirm(); |
---|
547 | $f_txtConfirm = $newsletter_settings->getTxtConfirm(); |
---|
548 | $f_confirm_msg = $newsletter_settings->getConfirmMsg(); |
---|
549 | $f_concluding_confirm_msg = $newsletter_settings->getConcludingConfirmMsg(); |
---|
550 | |
---|
551 | // disable |
---|
552 | $f_disable_subject = $newsletter_settings->getDisableSubject(); |
---|
553 | $f_txt_intro_disable = $newsletter_settings->getTxtIntroDisable(); |
---|
554 | $f_txtDisable = $newsletter_settings->getTxtDisable(); |
---|
555 | $f_disable_msg = $newsletter_settings->getDisableMsg(); |
---|
556 | $f_concluding_disable_msg = $newsletter_settings->getConcludingDisableMsg(); |
---|
557 | $f_txt_disabled_msg = $newsletter_settings->getTxtDisabledMsg(); |
---|
558 | |
---|
559 | // enable |
---|
560 | $f_txt_intro_enable = $newsletter_settings->getTxtIntroEnable(); |
---|
561 | $f_txtEnable = $newsletter_settings->getTxtEnable(); |
---|
562 | $f_enable_subject = $newsletter_settings->getEnableSubject(); |
---|
563 | $f_enable_msg = $newsletter_settings->getEnableMsg(); |
---|
564 | $f_concluding_enable_msg = $newsletter_settings->getConcludingEnableMsg(); |
---|
565 | $f_txt_enabled_msg = $newsletter_settings->getTxtEnabledMsg(); |
---|
566 | |
---|
567 | // suspend |
---|
568 | $f_suspend_subject = $newsletter_settings->getSuspendSubject(); |
---|
569 | $f_suspend_msg = $newsletter_settings->getSuspendMsg(); |
---|
570 | $f_txt_suspended_msg = $newsletter_settings->getTxtSuspendedMsg(); |
---|
571 | $f_concluding_suspend_msg = $newsletter_settings->getConcludingSuspendMsg(); |
---|
572 | $f_txt_intro_suspend = $newsletter_settings->getTxtIntroSuspend(); |
---|
573 | $f_txtSuspend = $newsletter_settings->getTxtSuspend(); |
---|
574 | |
---|
575 | // changemode |
---|
576 | $f_change_mode_subject = $newsletter_settings->getChangeModeSubject(); |
---|
577 | $f_header_changemode_msg = $newsletter_settings->getHeaderChangeModeMsg(); |
---|
578 | $f_footer_changemode_msg = $newsletter_settings->getFooterChangeModeMsg(); |
---|
579 | $f_changemode_msg = $newsletter_settings->getChangeModeMsg(); |
---|
580 | |
---|
581 | // resume |
---|
582 | $f_resume_subject = $newsletter_settings->getResumeSubject(); |
---|
583 | $f_header_resume_msg = $newsletter_settings->getHeaderResumeMsg(); |
---|
584 | $f_footer_resume_msg = $newsletter_settings->getFooterResumeMsg(); |
---|
585 | |
---|
586 | // subscribe |
---|
587 | $f_form_title_page = $newsletter_settings->getFormTitlePage(); |
---|
588 | $f_txt_subscribed_msg = $newsletter_settings->getTxtSubscribedMsg(); |
---|
589 | |
---|
590 | // gestion des paramètres du plugin |
---|
591 | echo |
---|
592 | '<form action="plugin.php" method="post" id="messages">'. |
---|
593 | |
---|
594 | // boutons du formulaire |
---|
595 | '<fieldset>'. |
---|
596 | '<p>'. |
---|
597 | __('Update messages'). |
---|
598 | '</p>'. |
---|
599 | '<p>'. |
---|
600 | '<input type="submit" name="save" value="'.__('Update').'" /> '. |
---|
601 | '<input type="reset" name="reset" value="'.__('Cancel').'" /> '. |
---|
602 | '</p>'. |
---|
603 | '</fieldset>'. |
---|
604 | |
---|
605 | '<fieldset id="define_newsletter">'. |
---|
606 | '<legend>'.__('Define message content Newsletter').'</legend>'. |
---|
607 | '<p>'. |
---|
608 | '<label for="f_newsletter_subject">'.__('Subject of the Newsletter').'</label>'. |
---|
609 | form::field('f_newsletter_subject',50,255,html::escapeHTML($f_newsletter_subject)). |
---|
610 | '</p>'. |
---|
611 | '<p>'. |
---|
612 | '<label for="f_presentation_msg">'.__('Message presentation').'</label>'. |
---|
613 | form::field('f_presentation_msg',50,255,html::escapeHTML($f_presentation_msg)). |
---|
614 | '</p>'. |
---|
615 | '<p>'. |
---|
616 | '<label for="f_introductory_msg">'.__('Introductory message').' : </label>'. |
---|
617 | form::textarea('f_introductory_msg',30,4,html::escapeHTML($f_introductory_msg)). |
---|
618 | '</p>'. |
---|
619 | '<p>'. |
---|
620 | '<label for="f_presentation_posts_msg">'.__('Presentation message for posts').'</label>'. |
---|
621 | form::field('f_presentation_posts_msg',50,255,html::escapeHTML($f_presentation_posts_msg)). |
---|
622 | '</p>'. |
---|
623 | '<p>'. |
---|
624 | '<label for="f_concluding_msg">'.__('Concluding message').' : </label>'. |
---|
625 | form::textarea('f_concluding_msg',30,4, html::escapeHTML($f_concluding_msg)). |
---|
626 | '</p>'. |
---|
627 | '</fieldset>'. |
---|
628 | '<fieldset id="define_confirm">'. |
---|
629 | '<legend>'.__('Define message content Confirm').'</legend>'. |
---|
630 | '<p>'. |
---|
631 | '<label for="f_confirm_subject">'.__('Subject of the mail Confirm').'</label>'. |
---|
632 | form::field('f_confirm_subject',50,255,html::escapeHTML($f_confirm_subject)). |
---|
633 | '</p>'. |
---|
634 | '<p>'. |
---|
635 | '<label for="f_confirm_msg">'.__('Confirm message').'</label>'. |
---|
636 | form::field('f_confirm_msg',50,255,html::escapeHTML($f_confirm_msg)). |
---|
637 | '</p>'. |
---|
638 | '<p>'. |
---|
639 | '<label for="f_txt_intro_confirm">'.__('Introductory confirm message').'</label>'. |
---|
640 | form::field('f_txt_intro_confirm',50,255,html::escapeHTML($f_txt_intro_confirm)). |
---|
641 | '</p>'. |
---|
642 | '<p>'. |
---|
643 | '<label for="f_txtConfirm">'.__('Title confirmation link').'</label>'. |
---|
644 | form::field('f_txtConfirm',50,255,html::escapeHTML($f_txtConfirm)). |
---|
645 | '</p>'. |
---|
646 | '<p>'. |
---|
647 | '<label for="f_concluding_confirm_msg">'.__('Concluding confirm message').'</label>'. |
---|
648 | form::field('f_concluding_confirm_msg',50,255,html::escapeHTML($f_concluding_confirm_msg)). |
---|
649 | '</p>'. |
---|
650 | '</fieldset>'. |
---|
651 | '<fieldset id="define_disable">'. |
---|
652 | '<legend>'.__('Define message content Disable').'</legend>'. |
---|
653 | '<p>'. |
---|
654 | '<label for="f_txt_disabled_msg">'.__('Txt disabled msg'). |
---|
655 | form::field('f_txt_disabled_msg',50,255,html::escapeHTML($f_txt_disabled_msg)). |
---|
656 | '</p>'. |
---|
657 | '<p>'. |
---|
658 | '<label for="f_disable_subject">'.__('Subject of the mail Disable').'</label>'. |
---|
659 | form::field('f_disable_subject',50,255,html::escapeHTML($f_disable_subject)). |
---|
660 | '</p>'. |
---|
661 | '<p>'. |
---|
662 | '<label for="f_disable_msg">'.__('Disable message').'</label>'. |
---|
663 | form::field('f_disable_msg',50,255,html::escapeHTML($f_disable_msg)). |
---|
664 | '</p>'. |
---|
665 | '<p>'. |
---|
666 | '<label for="f_txt_intro_disable">'.__('Introductory disable message').'</label>'. |
---|
667 | form::field('f_txt_intro_disable',50,255,html::escapeHTML($f_txt_intro_disable)). |
---|
668 | '</p>'. |
---|
669 | '<p>'. |
---|
670 | '<label for="f_txtDisable">'.__('Title disable link').'</label>'. |
---|
671 | form::field('f_txtDisable',50,255,html::escapeHTML($f_txtDisable)). |
---|
672 | '</p>'. |
---|
673 | '<p>'. |
---|
674 | '<label for="f_concluding_disable_msg">'.__('Concluding disable msg').'</label>'. |
---|
675 | form::field('f_concluding_disable_msg',50,255,html::escapeHTML($f_concluding_disable_msg)). |
---|
676 | '</p>'. |
---|
677 | '</fieldset>'. |
---|
678 | '<fieldset id="define_enable">'. |
---|
679 | '<legend>'.__('Define message content Enable').'</legend>'. |
---|
680 | '<p>'. |
---|
681 | '<label for="f_txt_enabled_msg">'.__('Texte enabled message').'</label>'. |
---|
682 | form::field('f_txt_enabled_msg',50,255,html::escapeHTML($f_txt_enabled_msg)). |
---|
683 | '</p>'. |
---|
684 | '<p>'. |
---|
685 | '<label for="f_enable_subject">'.__('Subject of the mail Enable').'</label>'. |
---|
686 | form::field('f_enable_subject',50,255,html::escapeHTML($f_enable_subject)). |
---|
687 | '</p>'. |
---|
688 | '<p>'. |
---|
689 | '<label for="f_enable_msg">'.__('Enable message').'</label>'. |
---|
690 | form::field('f_enable_msg',50,255,html::escapeHTML($f_enable_msg)). |
---|
691 | '</p>'. |
---|
692 | '<p>'. |
---|
693 | '<label for="f_txt_intro_enable">'.__('Introductory enable message').'</label>'. |
---|
694 | form::field('f_txt_intro_enable',50,255,html::escapeHTML($f_txt_intro_enable)). |
---|
695 | '</p>'. |
---|
696 | '<p>'. |
---|
697 | '<label for="f_txtEnable">'.__('Title enable link').'</label>'. |
---|
698 | form::field('f_txtEnable',50,255,html::escapeHTML($f_txtEnable)). |
---|
699 | '</p>'. |
---|
700 | '<p>'. |
---|
701 | '<label for="f_concluding_enable_msg">'.__('Concluging enable message').'</label>'. |
---|
702 | form::field('f_concluding_enable_msg',50,255,html::escapeHTML($f_concluding_enable_msg)). |
---|
703 | '</p>'. |
---|
704 | '</fieldset>'. |
---|
705 | '<fieldset id="define_suspend">'. |
---|
706 | '<legend>'.__('Define message content Suspend').'</legend>'. |
---|
707 | '<p>'. |
---|
708 | '<label for="f_txt_suspended_msg">'.__('Txt suspended msg').'</label>'. |
---|
709 | form::field('f_txt_suspended_msg',50,255,html::escapeHTML($f_txt_suspended_msg)). |
---|
710 | '</p>'. |
---|
711 | '<p>'. |
---|
712 | '<label for="f_suspend_subject">'.__('Subject of the mail Suspend').'</label>'. |
---|
713 | form::field('f_suspend_subject',50,255,html::escapeHTML($f_suspend_subject)). |
---|
714 | '</p>'. |
---|
715 | '<p>'. |
---|
716 | '<label for="f_suspend_msg">'.__('Suspend message').'</label>'. |
---|
717 | form::field('f_suspend_msg',50,255,html::escapeHTML($f_suspend_msg)). |
---|
718 | '</p>'. |
---|
719 | '<p>'. |
---|
720 | '<label for="f_txt_intro_suspend">'.__('Introductory suspend message').'</label>'. |
---|
721 | form::field('f_txt_intro_suspend',50,255,html::escapeHTML($f_txt_intro_suspend)). |
---|
722 | '</p>'. |
---|
723 | '<p>'. |
---|
724 | '<label for="f_txtSuspend">'.__('Title suspend link').'</label>'. |
---|
725 | form::field('f_txtSuspend',50,255,html::escapeHTML($f_txtSuspend)). |
---|
726 | '</p>'. |
---|
727 | '<p>'. |
---|
728 | '<label for="f_concluding_suspend_msg">'.__('Concluding suspend message').'</label>'. |
---|
729 | form::field('f_concluding_suspend_msg',50,255,html::escapeHTML($f_concluding_suspend_msg)). |
---|
730 | '</p>'. |
---|
731 | '</fieldset>'. |
---|
732 | '<fieldset id="define_changemode">'. |
---|
733 | '<legend>'.__('Define message content Changemode').'</legend>'. |
---|
734 | '<p>'. |
---|
735 | '<label for="f_changemode_msg">'.__('Change mode message').'</label>'. |
---|
736 | form::field('f_changemode_msg',50,255,html::escapeHTML($f_changemode_msg)). |
---|
737 | '</p>'. |
---|
738 | '<p>'. |
---|
739 | '<label for="f_change_mode_subject">'.__('Subject of the mail Changing mode').'</label>'. |
---|
740 | form::field('f_change_mode_subject',50,255,html::escapeHTML($f_change_mode_subject)). |
---|
741 | '</p>'. |
---|
742 | '<p>'. |
---|
743 | '<label for="f_header_changemode_msg">'.__('Introductory change mode message').'</label>'. |
---|
744 | form::field('f_header_changemode_msg',50,255,html::escapeHTML($f_header_changemode_msg)). |
---|
745 | '</p>'. |
---|
746 | '<p>'. |
---|
747 | '<label for="f_footer_changemode_msg">'.__('Concludind change mode message').'</label>'. |
---|
748 | form::field('f_footer_changemode_msg',50,255,html::escapeHTML($f_footer_changemode_msg)). |
---|
749 | '</p>'. |
---|
750 | '</fieldset>'. |
---|
751 | '<fieldset id="define_resume">'. |
---|
752 | '<legend>'.__('Define message content Resume').'</legend>'. |
---|
753 | '<p>'. |
---|
754 | '<label for="f_resume_subject">'.__('Subject of the mail Resume').'</label>'. |
---|
755 | form::field('f_resume_subject',50,255,html::escapeHTML($f_resume_subject)). |
---|
756 | '</p>'. |
---|
757 | '<p>'. |
---|
758 | '<label for="f_header_resume_msg">'.__('Introductory resume message').'</label>'. |
---|
759 | form::field('f_header_resume_msg',50,255,html::escapeHTML($f_header_resume_msg)). |
---|
760 | '</p>'. |
---|
761 | '<p>'. |
---|
762 | '<label for="f_footer_resume_msg">'.__('Concluding resume message').'</label>'. |
---|
763 | form::field('f_footer_resume_msg',50,255,html::escapeHTML($f_footer_resume_msg)). |
---|
764 | '</p>'. |
---|
765 | '</fieldset>'. |
---|
766 | '<fieldset id="define_subscribe">'. |
---|
767 | '<legend>'.__('Define formulary content Subscribe').'</legend>'. |
---|
768 | '<p>'. |
---|
769 | '<label for="f_txt_subscribed_msg">'.__('Subcribed message').'</label>'. |
---|
770 | form::field('f_txt_subscribed_msg',50,255,html::escapeHTML($f_txt_subscribed_msg)). |
---|
771 | '</p>'. |
---|
772 | '<p>'. |
---|
773 | '<label for="f_form_title_page">'.__('Title page of the subscribe form').'</label>'. |
---|
774 | form::field('f_form_title_page',50,255,html::escapeHTML($f_form_title_page)). |
---|
775 | '</p>'. |
---|
776 | '<p>'. |
---|
777 | '<label for="f_msg_presentation_form">'.__('Message presentation form').' : </label>'. |
---|
778 | form::textarea('f_msg_presentation_form',30,4,html::escapeHTML($f_msg_presentation_form)). |
---|
779 | '</p>'. |
---|
780 | '</fieldset>'. |
---|
781 | |
---|
782 | // boutons du formulaire |
---|
783 | '<fieldset>'. |
---|
784 | '<p>'. |
---|
785 | __('Update messages'). |
---|
786 | '</p>'. |
---|
787 | '<p>'. |
---|
788 | '<input type="submit" name="save" value="'.__('Update').'" /> '. |
---|
789 | '<input type="reset" name="reset" value="'.__('Cancel').'" /> '. |
---|
790 | '</p>'. |
---|
791 | '</fieldset>'. |
---|
792 | '<p>'. |
---|
793 | form::hidden(array('p'),newsletterPlugin::pname()). |
---|
794 | form::hidden(array('op'),'messages'). |
---|
795 | $core->formNonce(). |
---|
796 | '</p>'. |
---|
797 | '</form>'. |
---|
798 | ''; |
---|
799 | |
---|
800 | } else { |
---|
801 | echo |
---|
802 | '<fieldset>'. |
---|
803 | '<p>'. |
---|
804 | '<label class="classic">'.__('Activate the plugin in the Maintenance tab to view all options').'</label>'. |
---|
805 | '</p>'. |
---|
806 | '</fieldset>'; |
---|
807 | } |
---|
808 | |
---|
809 | } catch (Exception $e) { |
---|
810 | $core->error->add($e->getMessage()); |
---|
811 | } |
---|
812 | |
---|
813 | } |
---|
814 | |
---|
815 | |
---|
816 | /** |
---|
817 | * paramétrage des options de planification |
---|
818 | */ |
---|
819 | public static function Planning() |
---|
820 | { |
---|
821 | // prise en compte du plugin installé |
---|
822 | if (!newsletterCore::isInstalled()) { |
---|
823 | return; |
---|
824 | } |
---|
825 | |
---|
826 | global $core; |
---|
827 | try { |
---|
828 | $blog = &$core->blog; |
---|
829 | $auth = &$core->auth; |
---|
830 | |
---|
831 | if (newsletterPlugin::isActive()) { |
---|
832 | |
---|
833 | $sadmin = (($auth->isSuperAdmin()) ? true : false); |
---|
834 | if ($sadmin) { |
---|
835 | |
---|
836 | // Utilisation de dcCron |
---|
837 | if (isset($blog->dcCron)) { |
---|
838 | $newsletter_cron=new newsletterCron($core); |
---|
839 | $newsletter_settings = new newsletterSettings($core); |
---|
840 | |
---|
841 | $f_check_schedule = $newsletter_settings->getCheckSchedule(); |
---|
842 | $f_interval = ($newsletter_cron->getTaskInterval() ? $newsletter_cron->getTaskInterval() : 604800); |
---|
843 | $f_first_run = ($newsletter_cron->getFirstRun() ? $newsletter_cron->getFirstRun() : ''); |
---|
844 | |
---|
845 | echo |
---|
846 | '<fieldset>'. |
---|
847 | '<legend>'.__('Planning newsletter').'</legend>'. |
---|
848 | '<form action="plugin.php" method="post" name="planning">'. |
---|
849 | '<p class="field">'. |
---|
850 | '<label class="classic" for="f_interval">'.__('Interval time in seconds between 2 runs'). |
---|
851 | form::field('f_interval',20,20,$f_interval). |
---|
852 | '</label></p>'. |
---|
853 | '<p class="comments">'. |
---|
854 | __('samples').' : ( 1 '.__('day').' = 86400s / 1 '.__('week').' = 604800s / 28 '.__('days').' = 2420000s )'. |
---|
855 | '</p>'. |
---|
856 | '<p class="field">'. |
---|
857 | '<label for="f_first_run" class="classic">'.__('Date for the first run').'</label>'. |
---|
858 | form::field('f_first_run',20,20,$f_first_run). |
---|
859 | '</p>'. |
---|
860 | |
---|
861 | // boutons du formulaire |
---|
862 | '<p>'. |
---|
863 | '<input type="submit" name="submit" value="'.(($f_check_schedule)?__('Unschedule'):__('Schedule')).'" /> '. |
---|
864 | '<input type="reset" name="reset" value="'.__('Cancel').'" /> '. |
---|
865 | '</p>'. |
---|
866 | form::hidden(array('p'),newsletterPlugin::pname()). |
---|
867 | form::hidden(array('op'),(($f_check_schedule)?'unschedule':'schedule')). |
---|
868 | $core->formNonce(). |
---|
869 | '</form>'. |
---|
870 | '</fieldset>'. |
---|
871 | ''; |
---|
872 | |
---|
873 | if ($f_check_schedule) { |
---|
874 | |
---|
875 | $f_task_state = $newsletter_cron->getState(); |
---|
876 | |
---|
877 | echo |
---|
878 | '<fieldset>'. |
---|
879 | '<legend>'.__('Scheduled task').' : '.html::escapeHTML($newsletter_cron->getTaskName()).'</legend>'. |
---|
880 | '<table summary="resume" class="minimal">'. |
---|
881 | '<thead>'. |
---|
882 | '<tr>'. |
---|
883 | '<th>'.__('Name').'</th>'. |
---|
884 | '<th>'.__('Value').'</th>'. |
---|
885 | '</tr>'. |
---|
886 | '</thead>'. |
---|
887 | '<tbody id="classes-list">'. |
---|
888 | '<tr class="line">'. |
---|
889 | '<td>'.__('State').'</td>'. |
---|
890 | '<td>'.html::escapeHTML(__($newsletter_cron->printState())).'</td>'. |
---|
891 | '</tr>'. |
---|
892 | '<tr class="line">'. |
---|
893 | '<td>'.__('Interval').'</td>'. |
---|
894 | '<td>'.html::escapeHTML($newsletter_cron->printTaskInterval()).'</td>'. |
---|
895 | '</tr>'. |
---|
896 | '<tr class="line">'. |
---|
897 | '<td>'.__('Last run').'</td>'. |
---|
898 | '<td>'.html::escapeHTML($newsletter_cron->printLastRunDate()).'</td>'. |
---|
899 | '</tr>'. |
---|
900 | '<tr class="line">'. |
---|
901 | '<td>'.__('Next run').'</td>'. |
---|
902 | '<td>'.html::escapeHTML($newsletter_cron->printNextRunDate()).'</td>'. |
---|
903 | '</tr>'. |
---|
904 | '<tr class="line">'. |
---|
905 | '<td>'.__('Remaining Time').'</td>'. |
---|
906 | '<td>'.html::escapeHTML($newsletter_cron->printRemainingTime()).'</td>'. |
---|
907 | '</tr>'. |
---|
908 | '</tbody>'. |
---|
909 | '</table>'. |
---|
910 | |
---|
911 | '<form action="plugin.php" method="post" name="taskplanning">'. |
---|
912 | |
---|
913 | // boutons du formulaire |
---|
914 | '<p>'. |
---|
915 | '<input type="submit" name="submit" value="'.(($f_task_state)?__('Disable'):__('Enable')).'" /> '. |
---|
916 | '</p>'. |
---|
917 | form::hidden(array('p'),newsletterPlugin::pname()). |
---|
918 | form::hidden(array('op'),(($f_task_state)?'disabletask':'enabletask')). |
---|
919 | $core->formNonce(). |
---|
920 | '</form>'. |
---|
921 | |
---|
922 | '</fieldset>'. |
---|
923 | ''; |
---|
924 | } |
---|
925 | } else { |
---|
926 | echo |
---|
927 | '<fieldset>'. |
---|
928 | '<legend>'.__('Planning newsletter').'</legend>'. |
---|
929 | '<p>'. |
---|
930 | '<label class="classic">'.__('Install the plugin dcCron for using planning').'</label>'. |
---|
931 | '</p>'. |
---|
932 | '</fieldset>'; |
---|
933 | } |
---|
934 | |
---|
935 | } |
---|
936 | } else { |
---|
937 | echo |
---|
938 | '<fieldset>'. |
---|
939 | '<p>'. |
---|
940 | '<label class="classic">'.__('Activate the plugin in the Maintenance tab to view all options').'</label>'. |
---|
941 | '</p>'. |
---|
942 | '</fieldset>'; |
---|
943 | } |
---|
944 | |
---|
945 | } catch (Exception $e) { |
---|
946 | $core->error->add($e->getMessage()); |
---|
947 | } |
---|
948 | |
---|
949 | } |
---|
950 | |
---|
951 | /** |
---|
952 | * Maintenance du plugin |
---|
953 | */ |
---|
954 | public static function Maintenance() |
---|
955 | { |
---|
956 | // prise en compte du plugin installé |
---|
957 | if (!newsletterCore::isInstalled()) { |
---|
958 | return; |
---|
959 | } |
---|
960 | |
---|
961 | global $core; |
---|
962 | try { |
---|
963 | $blog = &$core->blog; |
---|
964 | $auth = &$core->auth; |
---|
965 | $url = &$core->url; |
---|
966 | $themes = &$core->themes; |
---|
967 | $blogurl = &$blog->url; |
---|
968 | $urlBase = http::concatURL($blogurl, $url->getBase('newsletter')); |
---|
969 | |
---|
970 | //$core->themes = new dcModules($core); |
---|
971 | $core->themes = new dcThemes($core); |
---|
972 | $core->themes->loadModules($blog->themes_path, NULL); |
---|
973 | $theme = $blog->settings->theme; |
---|
974 | //$theme = $themes->getModules($theme); |
---|
975 | $bthemes = array(); |
---|
976 | foreach ($themes->getModules() as $k => $v) |
---|
977 | { |
---|
978 | if (file_exists($blog->themes_path . '/' . $k . '/tpl/post.html')) |
---|
979 | $bthemes[html::escapeHTML($v['name'])] = $k; |
---|
980 | } |
---|
981 | |
---|
982 | $sadmin = (($auth->isSuperAdmin()) ? true : false); |
---|
983 | |
---|
984 | // paramétrage de l'état d'activation du plugin |
---|
985 | if (newsletterPlugin::isActive()) |
---|
986 | $pactive = 'checked'; |
---|
987 | else |
---|
988 | $pactive = ''; |
---|
989 | |
---|
990 | echo |
---|
991 | '<fieldset>'. |
---|
992 | '<legend>'.__('Plugin state').'</legend>'. |
---|
993 | '<form action="plugin.php" method="post" id="state">'. |
---|
994 | '<p class="field">'. |
---|
995 | '<label for="active" class="classic">'.__('Activate plugin').'</label>'. |
---|
996 | form::checkbox('active', 1, $pactive). |
---|
997 | '</p>'. |
---|
998 | '<p>'. |
---|
999 | '<input type="submit" value="'.__('Save').'" /> '. |
---|
1000 | '<input type="reset" value="'.__('Cancel').'" /> '. |
---|
1001 | '</p>'. |
---|
1002 | form::hidden(array('p'),newsletterPlugin::pname()). |
---|
1003 | form::hidden(array('op'),'state'). |
---|
1004 | $core->formNonce(). |
---|
1005 | '</form>'. |
---|
1006 | '</fieldset>'. |
---|
1007 | ''; |
---|
1008 | |
---|
1009 | if (newsletterPlugin::isActive()) { |
---|
1010 | echo |
---|
1011 | // export/import pour le blog |
---|
1012 | '<fieldset>'. |
---|
1013 | '<legend>'.__('Import/Export subscribers list').'</legend>'. |
---|
1014 | '<form action="plugin.php" method="post" id="export" name="export">'. |
---|
1015 | '<p>'. |
---|
1016 | '<label class="classic">'. |
---|
1017 | form::radio(array('type'),'blog',(!$sadmin) ? true : false).__('This blog only'). |
---|
1018 | '</label>'. |
---|
1019 | '<br />'. |
---|
1020 | '<label class="classic">'. |
---|
1021 | form::radio(array('type'),'all',($sadmin) ? true : false,'','',(!$sadmin) ? true : false).__('All datas'). |
---|
1022 | '</label>'. |
---|
1023 | '</p>'. |
---|
1024 | '<p>'. |
---|
1025 | '<input type="submit" value="'.__('Export').'" />'. |
---|
1026 | '</p>'. |
---|
1027 | form::hidden(array('p'),newsletterPlugin::pname()). |
---|
1028 | form::hidden(array('op'),'export'). |
---|
1029 | $core->formNonce(). |
---|
1030 | '</form>'. |
---|
1031 | |
---|
1032 | '<form action="plugin.php" method="post" id="import" name="import">'. |
---|
1033 | '<p>'. |
---|
1034 | '<label class="classic">'. |
---|
1035 | form::radio(array('type'),'blog',(!$sadmin) ? true : false).__('This blog only'). |
---|
1036 | '</label>'. |
---|
1037 | '<br />'. |
---|
1038 | '<label class="classic">'. |
---|
1039 | form::radio(array('type'),'all',($sadmin) ? true : false,'','',(!$sadmin) ? true : false).__('All datas'). |
---|
1040 | '</label>'. |
---|
1041 | '</p>'. |
---|
1042 | '<p>'. |
---|
1043 | '<input type="submit" value="'.__('Import').'" />'. |
---|
1044 | '</p>'. |
---|
1045 | form::hidden(array('p'),newsletterPlugin::pname()). |
---|
1046 | form::hidden(array('op'),'import'). |
---|
1047 | $core->formNonce(). |
---|
1048 | '</form>'. |
---|
1049 | |
---|
1050 | '</fieldset>'. |
---|
1051 | ''; |
---|
1052 | |
---|
1053 | echo |
---|
1054 | // reprise d'une liste d'adresse email |
---|
1055 | '<fieldset>'. |
---|
1056 | '<legend>'.__('Importing a subscribers list from a file text in the current blog').'</legend>'. |
---|
1057 | '<form action="plugin.php" method="post" id="reprise" name="reprise" enctype="multipart/form-data">'. |
---|
1058 | '<p>'. |
---|
1059 | '<label class="classic required" title="'.__('Required field').'">'. |
---|
1060 | __('File to import :').' '. |
---|
1061 | '<input type="file" name="file_reprise" />'. |
---|
1062 | '</label>'. |
---|
1063 | '</p>'. |
---|
1064 | '<p>'. |
---|
1065 | '<label class="classic required" title="'.__('Required field').'">'. |
---|
1066 | __('Your password:').' '. |
---|
1067 | form::password(array('your_pwd'),20,255).'</label></p>'. |
---|
1068 | '<p>'. |
---|
1069 | '<input type="submit" value="'.__('Launch reprise').'" />'. |
---|
1070 | '</p>'. |
---|
1071 | form::hidden(array('p'),newsletterPlugin::pname()). |
---|
1072 | form::hidden(array('op'),'reprise'). |
---|
1073 | $core->formNonce(). |
---|
1074 | '</form>'. |
---|
1075 | '</fieldset>'. |
---|
1076 | ''; |
---|
1077 | |
---|
1078 | echo |
---|
1079 | // adaptation du template |
---|
1080 | '<fieldset>'. |
---|
1081 | '<legend>'.__('Adapt the template for the theme').'</legend>'. |
---|
1082 | '<form action="plugin.php" method="post" id="adapt">'. |
---|
1083 | '<p><label class="classic" for="fthemes">'.__('Theme name').' : '. |
---|
1084 | form::combo('fthemes', $bthemes, $theme). |
---|
1085 | '</label></p>'. |
---|
1086 | '<p>'. |
---|
1087 | '<input type="submit" value="'.__('Adapt').'" />'. |
---|
1088 | '</p>'. |
---|
1089 | '<p>'. |
---|
1090 | '<a href="'.$urlBase.'/test'.'" target="_blank">'.__('Clic here to test the template.').'</a>'. |
---|
1091 | '</p>'. |
---|
1092 | form::hidden(array('p'),newsletterPlugin::pname()). |
---|
1093 | form::hidden(array('op'),'adapt'). |
---|
1094 | $core->formNonce(). |
---|
1095 | '</form>'. |
---|
1096 | '</fieldset>'. |
---|
1097 | ''; |
---|
1098 | |
---|
1099 | echo |
---|
1100 | // Nettoyage de la base |
---|
1101 | '<fieldset>'. |
---|
1102 | '<legend>'.__('Erasing all informations about newsletter in database').'</legend>'. |
---|
1103 | '<form action="plugin.php" method="post" id="erasingnewsletter">'. |
---|
1104 | '<p>'.__('Be careful, please backup your database before erasing'). |
---|
1105 | '</p>'. |
---|
1106 | '<p>'. |
---|
1107 | //'<input type="submit" value="'.__('Erasing').'" name="delete" class="delete" onclick="erasingnewsletterConfirm(); return false" />'. |
---|
1108 | '<input type="submit" value="'.__('Erasing').'" name="delete" class="delete"/>'. |
---|
1109 | '</p>'. |
---|
1110 | form::hidden(array('p'),newsletterPlugin::pname()). |
---|
1111 | form::hidden(array('op'),'erasingnewsletter'). |
---|
1112 | $core->formNonce(). |
---|
1113 | '</form>'. |
---|
1114 | '</fieldset>'. |
---|
1115 | ''; |
---|
1116 | |
---|
1117 | } else { |
---|
1118 | echo |
---|
1119 | '<fieldset>'. |
---|
1120 | '<p>'. |
---|
1121 | '<label class="classic">'.__('Activate the plugin in the Maintenance tab to view all options').'</label>'. |
---|
1122 | '</p>'. |
---|
1123 | '</fieldset>'; |
---|
1124 | } |
---|
1125 | |
---|
1126 | } catch (Exception $e) { |
---|
1127 | $core->error->add($e->getMessage()); |
---|
1128 | } |
---|
1129 | } |
---|
1130 | |
---|
1131 | /** |
---|
1132 | * formulaire d'ajout d'un abonné |
---|
1133 | */ |
---|
1134 | public static function AddEdit() |
---|
1135 | { |
---|
1136 | // prise en compte du plugin installé |
---|
1137 | if (!newsletterCore::isInstalled()) { |
---|
1138 | return; |
---|
1139 | } |
---|
1140 | |
---|
1141 | global $core; |
---|
1142 | try |
---|
1143 | { |
---|
1144 | $blog = &$core->blog; |
---|
1145 | $settings = &$blog->settings; |
---|
1146 | $allowed = true; |
---|
1147 | $mode_combo = array(__('text') => 'text', |
---|
1148 | __('html') => 'html'); |
---|
1149 | |
---|
1150 | $state_combo = array(__('pending') => 'pending', |
---|
1151 | __('enabled') => 'enabled', |
---|
1152 | __('suspended') => 'suspended', |
---|
1153 | __('disabled') => 'disabled'); |
---|
1154 | |
---|
1155 | if (newsletterPlugin::isActive()) { |
---|
1156 | |
---|
1157 | // test si ajout ou édition |
---|
1158 | if (!empty($_GET['id'])) |
---|
1159 | { |
---|
1160 | $id = (integer)$_GET['id']; |
---|
1161 | $datas = newsletterCore::get($id); |
---|
1162 | if ($datas == null) { |
---|
1163 | $allowed = false; |
---|
1164 | } else { |
---|
1165 | $email = $datas->f('email'); |
---|
1166 | $subscribed = $datas->f('subscribed'); |
---|
1167 | $lastsent = $datas->f('lastsent'); |
---|
1168 | $modesend = $datas->f('modesend'); |
---|
1169 | $regcode = $datas->f('regcode'); |
---|
1170 | $state = $datas->f('state'); |
---|
1171 | $form_title = __('Edit a subscriber'); |
---|
1172 | $form_op = 'edit'; |
---|
1173 | $form_libel = __('Update'); |
---|
1174 | $form_id = '<input type="hidden" name="id" value="'.$id.'" />'; |
---|
1175 | |
---|
1176 | if ($subscribed != null) |
---|
1177 | $subscribed = dt::dt2str($settings->date_format, $subscribed).' @'.dt::dt2str($settings->time_format, $subscribed); |
---|
1178 | else |
---|
1179 | $subscribed = __('Never'); |
---|
1180 | |
---|
1181 | if ($lastsent != null) |
---|
1182 | $lastsent = dt::dt2str($settings->date_format, $lastsent).' @'.dt::dt2str($settings->time_format, $lastsent); |
---|
1183 | else |
---|
1184 | $lastsent = __('Never'); |
---|
1185 | |
---|
1186 | $form_update = |
---|
1187 | '<p class="field">'. |
---|
1188 | '<label for="fsubscribed" class="classic">'.__('Subscribed:').'</label>'. |
---|
1189 | form::field('fsubscribed',50,255,$subscribed,'','',true). |
---|
1190 | '</p>'. |
---|
1191 | '<p class="field">'. |
---|
1192 | '<label for="flastsent" class="classic">'.__('Last sent:').'</label>'. |
---|
1193 | form::field('flastsent',50,255,$lastsent,'','',true). |
---|
1194 | '</p>'. |
---|
1195 | '<p class="field">'. |
---|
1196 | '<label for="fmodesend" class="classic">'.__('Mode send').'</label>'. |
---|
1197 | form::combo('fmodesend',$mode_combo,$modesend). |
---|
1198 | '</p>'. |
---|
1199 | '<p class="field">'. |
---|
1200 | '<label for="fregcode" class="classic">'.__('Registration code:').'</label>'. |
---|
1201 | form::field('fregcode',50,255,$regcode,'','',true). |
---|
1202 | '</p>'. |
---|
1203 | '<p class="field">'. |
---|
1204 | '<label for "fstate" class="classic">'.__('Status:').'</label>'. |
---|
1205 | form::combo('fstate',$state_combo,$state). |
---|
1206 | '</p>'. |
---|
1207 | ''; |
---|
1208 | } |
---|
1209 | |
---|
1210 | } else { |
---|
1211 | $id = -1; |
---|
1212 | $email = ''; |
---|
1213 | $subscribed = ''; |
---|
1214 | $lastsent = ''; |
---|
1215 | $modesend = ''; |
---|
1216 | $status = ''; |
---|
1217 | $form_title = __('Add a subscriber'); |
---|
1218 | $form_op = 'add'; |
---|
1219 | $form_libel = __('Add'); |
---|
1220 | $form_id = ''; |
---|
1221 | $form_update = ''; |
---|
1222 | } |
---|
1223 | |
---|
1224 | if (!$allowed) { |
---|
1225 | echo __('Not allowed.'); |
---|
1226 | } else { |
---|
1227 | echo |
---|
1228 | '<form action="plugin.php?p=newsletter&m=subscribers" method="post" id="addedit">'. |
---|
1229 | '<fieldset id="addedit">'. |
---|
1230 | '<legend>'.$form_title.'</legend>'. |
---|
1231 | '<p class="field">'. |
---|
1232 | '<label for="femail" class="classic">'.__('Email:').'</label>'. |
---|
1233 | form::field('femail',50,255, $email). |
---|
1234 | |
---|
1235 | '</p>'. |
---|
1236 | $form_update. |
---|
1237 | '</fieldset>'. |
---|
1238 | '<p>'. |
---|
1239 | '<input type="submit" value="'.$form_libel.'" />'. |
---|
1240 | '<input type="reset" name="reset" value="'.__('Cancel').'" /> '. |
---|
1241 | form::hidden(array('p'),newsletterPlugin::pname()). |
---|
1242 | form::hidden(array('op'),$form_op). |
---|
1243 | $form_id. |
---|
1244 | $core->formNonce(). |
---|
1245 | '</p>'. |
---|
1246 | |
---|
1247 | '</form>'. |
---|
1248 | ''; |
---|
1249 | } |
---|
1250 | } else { |
---|
1251 | echo |
---|
1252 | '<fieldset>'. |
---|
1253 | '<p>'. |
---|
1254 | '<label class="classic">'.__('Activate the plugin in the Maintenance tab to view all options').'</label>'. |
---|
1255 | '</p>'. |
---|
1256 | '</fieldset>'; |
---|
1257 | } |
---|
1258 | |
---|
1259 | } catch (Exception $e) { |
---|
1260 | $core->error->add($e->getMessage()); |
---|
1261 | } |
---|
1262 | } |
---|
1263 | |
---|
1264 | |
---|
1265 | } |
---|
1266 | |
---|
1267 | ?> |
---|