editorhtml.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. defined('ABSPATH') || exit;
  3. require_once NEWSLETTER_INCLUDES_DIR . '/controls.php';
  4. $controls = new NewsletterControls();
  5. $module = NewsletterEmails::instance();
  6. $email_id = (int) $_GET['id'];
  7. if ($controls->is_action('save') || $controls->is_action('next') || $controls->is_action('test')) {
  8. $email['id'] = $email_id;
  9. $email['message'] = $controls->data['message'];
  10. $email['subject'] = $controls->data['subject'];
  11. $module->save_email($email);
  12. if ($controls->is_action('next')) {
  13. $controls->js_redirect($module->get_admin_page_url('edit') . '&id=' . $email_id);
  14. return;
  15. }
  16. }
  17. if ($controls->is_action('test')) {
  18. $module->send_test_email($module->get_email($email_id), $controls);
  19. }
  20. $controls->data = Newsletter::instance()->get_email($email_id, ARRAY_A);
  21. ?>
  22. <?php include NEWSLETTER_INCLUDES_DIR . '/codemirror.php'; ?>
  23. <style>
  24. .CodeMirror {
  25. height: 600px;
  26. margin-top: 15px;
  27. margin-bottom: 15px;
  28. }
  29. </style>
  30. <script>
  31. var templateEditor;
  32. jQuery(function () {
  33. templateEditor = CodeMirror.fromTextArea(document.getElementById("options-message"), {
  34. lineNumbers: true,
  35. mode: 'htmlmixed',
  36. lineWrapping: true,
  37. extraKeys: {"Ctrl-Space": "autocomplete"}
  38. });
  39. });
  40. function tnp_media(name) {
  41. var tnp_uploader = wp.media({
  42. title: "Select an image",
  43. button: {
  44. text: "Select"
  45. },
  46. frame: 'post',
  47. multiple: false,
  48. displaySetting: true,
  49. displayUserSettings: true
  50. }).on("insert", function () {
  51. wp.media;
  52. var media = tnp_uploader.state().get("selection").first();
  53. if (media.attributes.url.indexOf("http") !== 0)
  54. media.attributes.url = "http:" + media.attributes.url;
  55. if (!media.attributes.mime.startsWith("image")) {
  56. templateEditor.getDoc().replaceRange(url, templateEditor.getDoc().getCursor());
  57. } else {
  58. var display = tnp_uploader.state().display(media);
  59. var url = media.attributes.sizes[display.attributes.size].url;
  60. templateEditor.getDoc().replaceRange('<img src="' + url + '">', templateEditor.getDoc().getCursor());
  61. }
  62. }).open();
  63. }
  64. </script>
  65. <div id="tnp-notification">
  66. <?php $controls->show(); ?>
  67. </div>
  68. <div class="wrap tnp-emails-editor-html" id="tnp-wrap">
  69. <form action="" method="post">
  70. <?php $controls->init() ?>
  71. <?php $controls->text('subject', 60, 'Newsletter subject') ?>
  72. <a href="#" class="button-primary" onclick="tnp_suggest_subject(); return false;"><?php _e('Get ideas', 'newsletter') ?></a>
  73. <a href="#" class="button-primary" onclick="newsletter_textarea_preview('options-message'); return false;"><i class="fa fa-eye"></i></a>
  74. <input type="button" class="button-primary" value="Add media" onclick="tnp_media()">
  75. <?php $controls->textarea_preview('message', '100%', 700, '', '', false); ?>
  76. <div style="text-align: right ">
  77. <?php $controls->button_confirm('reset', __('Back to last save', 'newsletter'), 'Are you sure?'); ?>
  78. <?php $controls->button('test', __('Test', 'newsletter')); ?>
  79. <?php $controls->button('save', __('Save', 'newsletter')); ?>
  80. <?php $controls->button('next', __('Next', 'newsletter') . ' &raquo;'); ?>
  81. </div>
  82. </form>
  83. <?php include NEWSLETTER_DIR . '/emails/subjects.php'; ?>
  84. </div>