composer.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. defined('ABSPATH') || exit;
  3. require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
  4. $controls = new NewsletterControls();
  5. $module = NewsletterEmails::instance();
  6. wp_enqueue_style('tnpc-style', plugins_url('/tnp-composer/_css/newsletter-builder.css', __FILE__), array(), time());
  7. wp_enqueue_style('tnpc-newsletter-style', home_url('/') . '?na=emails-composer-css');
  8. include NEWSLETTER_INCLUDES_DIR . '/codemirror.php';
  9. if ($controls->is_action()) {
  10. if (empty($_GET['id'])) {
  11. $email = array();
  12. $email['status'] = 'new';
  13. $email['track'] = Newsletter::instance()->options['track'];
  14. $email['token'] = $module->get_token();
  15. $email['message'] = $controls->data['body'];
  16. $email['subject'] = $controls->data['subject'];
  17. $email['message_text'] = 'This email requires a modern e-mail reader but you can view the email online here:
  18. {email_url}.
  19. Thank you, ' . wp_specialchars_decode(get_option('blogname'), ENT_QUOTES) . '
  20. To change your subscription follow: {profile_url}.';
  21. $email['editor'] = NewsletterEmails::EDITOR_COMPOSER;
  22. $email['type'] = 'message';
  23. $email['send_on'] = time();
  24. $email['query'] = "select * from " . NEWSLETTER_USERS_TABLE . " where status='C'";
  25. $email = Newsletter::instance()->save_email($email, ARRAY_A);
  26. } else {
  27. $email['id'] = $_GET['id'];
  28. $email['editor'] = NewsletterEmails::EDITOR_COMPOSER;
  29. $email['message'] = $controls->data['body'];
  30. $email['subject'] = $controls->data['subject'];
  31. $email = Newsletter::instance()->save_email($email, ARRAY_A);
  32. }
  33. $controls->add_message_saved();
  34. /* * * Post save tasks ** */
  35. if ($controls->is_action('test')) {
  36. $module->send_test_email($module->get_email($email['id']), $controls);
  37. }
  38. if ($controls->is_action('preview')) {
  39. $redirect = $module->get_admin_page_url('edit');
  40. } else {
  41. $redirect = $module->get_admin_page_url('composer');
  42. }
  43. $controls->js_redirect($redirect . '&id=' . $email['id']);
  44. return;
  45. } else {
  46. if (!empty($_GET['id'])) {
  47. $email = Newsletter::instance()->get_email((int) $_GET['id'], ARRAY_A);
  48. $controls->data = $email;
  49. }
  50. }
  51. if (isset($email)) {
  52. $controls->data['body'] = $email['message'];
  53. $controls->data['subject'] = $email['subject'];
  54. }
  55. ?>
  56. <div id="tnp-notification">
  57. <?php
  58. $controls->show();
  59. $controls->messages = '';
  60. $controls->errors = '';
  61. ?>
  62. </div>
  63. <div class="wrap tnp-emails-composer" id="tnp-wrap">
  64. <?php $controls->composer_load('body', true); ?>
  65. <div id="tnp-heading" class="tnp-composer-heading">
  66. <div class="tnpc-logo">
  67. <p>The Newsletter Plugin <strong>Composer</strong></p>
  68. </div>
  69. <div class="tnpc-controls">
  70. <form method="post" action="" id="tnpc-form">
  71. <?php $controls->init(); ?>
  72. <?php $controls->composer_fields(); ?>
  73. <?php $controls->button_confirm('reset', __('Back to last save', 'newsletter'), 'Are you sure?'); ?>
  74. <?php $controls->button('save', __('Save', 'newsletter'), 'tnpc_save(this.form); this.form.submit();'); ?>
  75. <?php $controls->button('preview', __('Next', 'newsletter') . ' &raquo;', 'tnpc_save(this.form); this.form.submit();'); ?>
  76. </form>
  77. </div>
  78. </div>
  79. </div>