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