Updating html newsletter
authorSteve Sutton <steve@gaslightmedia.com>
Fri, 9 Aug 2019 15:33:40 +0000 (11:33 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Fri, 9 Aug 2019 15:33:40 +0000 (11:33 -0400)
Working on the fix for image alignment.

index.php
models/admin/ajax/ajaxMessagePreview.php
models/admin/ajax/newsletter.php
models/admin/messages/index.php
views/admin/messages/editHtmlEmail.html
views/admin/messages/list.html

index b5653ef..9f8f7a7 100644 (file)
--- a/index.php
+++ b/index.php
@@ -116,6 +116,21 @@ if ($is_active != '1') {
     add_action( 'admin_notices', 'glmMembersMessagesPluginRequired' );
     deactivate_plugins('/'.GLM_MEMBERS_MESSAGES_PLUGIN_SLUG.'/index.php');
 }
+// Check for the Contact Plugin to be installed and active.
+function glmMembersMessagesContactPluginRequired() {
+    echo '
+        <div class="error">
+            <p>The '.GLM_MEMBERS_MESSAGES_PLUGIN_NAME.' add-on requires the GLM Associate Contacts Plugin to be installed and active!</p>
+            <p>The '.GLM_MEMBERS_MESSAGES_PLUGIN_NAME.' plugin has been de-activated.</p>
+        </div>
+    ';
+}
+$plugin_name = 'glm-member-db-contacts/index.php';
+$is_active = is_plugin_active($plugin_name);
+if ($is_active != '1') {
+    add_action( 'admin_notices', 'glmMembersMessagesContactPluginRequired' );
+    deactivate_plugins('/'.GLM_MEMBERS_MESSAGES_PLUGIN_SLUG.'/index.php');
+}
 
 /**
  * Hooks for creating help documentation
index c4971cc..4d09191 100644 (file)
@@ -70,6 +70,8 @@ class GlmMembersAdmin_ajax_ajaxMessagePreview extends GlmMembersAdmin_messages_i
         // Save plugin configuration object
         $this->config = $config;
 
+        parent::__construct( $this->wpdb, $this->config );
+
     }
 
 
index c74d2fe..055c7ff 100644 (file)
@@ -98,7 +98,10 @@ class GlmMembersAdmin_ajax_newsletter extends GlmDataEmailMessages
                     $smarty->templateAssign( $k, $d );
                 }
             }
-            $emailContent = $smarty->template->fetch( 'eval:' . wpautop( $message['message_body'] ) );
+            $message['message_body'] = $this->fixImages( $message['message_body'] );
+            $htmlMessage = wpautop( $message['message_body'] );
+            // $htmlMessage = nl2br( $message['message_body'] );
+            $emailContent = $smarty->template->fetch( 'eval:' . $htmlMessage );
         } else {
             $emailContent = '<p>Message Content would go here!</p>';
         }
@@ -140,4 +143,42 @@ class GlmMembersAdmin_ajax_newsletter extends GlmDataEmailMessages
         echo $output;
         exit;
     }
+
+
+    public function fixImages( $content )
+    {
+        $dom           = new DOMDocument( '1.0', 'UTF-8' );
+        $dom->encoding = 'UTF-8';
+        $test          = $dom->loadHTML( $content );
+        $images        = $dom->getElementsByTagName( 'img' );
+        foreach ( $images as $image ) {
+            $width = $height = $align = null;
+            if ( $image->hasAttribute( 'class' ) ) {
+                // Is it left or right or center?
+                if ( preg_match( '%alignleft%', $image->getAttribute('class'))) {
+                    $align = 'left';
+                }
+                if ( preg_match( '%alignright%', $image->getAttribute('class'))) {
+                    $align = 'right';
+                }
+                if ( preg_match( '%aligncenter%', $image->getAttribute('class'))) {
+                    $align = 'center';
+                }
+            }
+            switch ( $align ) {
+            case 'left':
+                $image->setAttribute( 'style', 'float: left; margin: 5px;' );
+                break;
+            case 'right':
+                $image->setAttribute( 'style', 'float: right; margin: 5px;' );
+                break;
+            case 'center':
+                $image->setAttribute( 'style', 'display: block; text-align: center; margin: 0 auto;' );
+                break;
+            }
+        }
+        $content = $dom->saveHTML();
+        return $content;
+    }
+
 }
index de3f416..a11094b 100644 (file)
@@ -338,14 +338,17 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages
             break;
 
         case 'preview':
+            trigger_error( 'REQUEST: ' . print_r($_REQUEST, true), E_USER_NOTICE );
             $view         = 'newsletterFrame';
             $viewPath     = 'email/messages/';
             $emailContent = '';
             $messageId    = false;
             $Templates    = new GlmDataEmailTemplates( $this->wpdb, $this->config );
+            trigger_error( '$this: ' . print_r($this->fields, true), E_USER_NOTICE );
             if ( isset( $_REQUEST['message_id'] ) && $messageId = filter_var( $_REQUEST['message_id'], FILTER_VALIDATE_INT ) ) {
-                $message      = $this->getEntry( $messageId );
-                // echo '<pre>$message: ' . print_r( $message, true ) . '</pre>';
+                trigger_error( 'messageId: ' . print_r($messageId, true), E_USER_NOTICE );
+                $message = $this->getEntry( $messageId );
+                trigger_error( 'message: ' . print_r($message, true), E_USER_NOTICE );
                 $emailData = array(
                     'member' => array(
                         'name' => 'Test Member',
@@ -371,12 +374,15 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages
                         $smarty->templateAssign( $k, $d );
                     }
                 }
-                $emailContent = $smarty->template->fetch( 'eval:' . wpautop( $message['message_body'] ) );
+                // $htmlMessage = wpautop( $message['message_body'] );
+                $htmlMessage = nl2br( $message['message_body'] );
+                $emailContent = $smarty->template->fetch( 'eval:' . $htmlMessage );
             } else {
                 $emailContent = '<p>Message Content would go here!</p>';
             }
             if ( isset( $_REQUEST['id'] ) && $id = filter_var( $_REQUEST['id'], FILTER_VALIDATE_INT ) ) {
                 $template = $Templates->getEntry( $id );
+                trigger_error( 'template: ' . print_r($template, true), E_USER_NOTICE );
             }
             $tData = array(
                 'template_id' => $id,
@@ -512,8 +518,13 @@ class GlmMembersAdmin_messages_index extends GlmDataEmailMessages
 
         case 'list':
             $view = 'list';
+
         default:
-            $where = "T.archived <> true";
+            if ( isset( $_REQUEST['filterArchived'] ) && $filterArchived = filter_var( $_REQUEST['filterArchived'], FILTER_VALIDATE_BOOLEAN ) ) {
+                $where = "T.archived = true";
+            } else {
+                $where = "T.archived <> true";
+            }
             $this->postStats = true;
             $this->postSent  = true;
             $messages = $this->getList( $where );
index d3cb2f2..dbe91b3 100644 (file)
             'field'     => 'message_body',
             'label'     => 'Message Content',
             'height'    => '450',
+            'media'     => true,
             'required'  => $data.fieldRequired.message_body,
             'errorText' => 'Message Content is Required',
             'dataError' => $data.fieldFail.message_body
index be0756c..1cc439c 100644 (file)
@@ -1,6 +1,48 @@
 {include file='admin/header.html'}
 <h3>List Messages</h3>
 
+{* Form Start *}
+{$ui = [
+    'id'     => 'messageSearch',
+    'action' => "{$thisUrl}?page={$thisPage}",
+    'method' => 'post',
+    'file'   => false
+]}
+{include file='ui/f6/form-start.html'}
+
+<input type="hidden" name="option" value="list" />
+
+<div class="grid-x grid-margin-x">
+    <fieldset class="fieldset cell small-12 medium-6">
+        <legend>Filter</legend>
+
+        {* Show Archived *}
+        {$ui = [
+            'value'     => $smarty.request.filterArchived|default:'',
+            'field'     => 'filterArchived',
+            'label'     => 'Show Archived',
+            'required'  => false,
+            'errorText' => 'Show Archived is Required',
+            'dataError' => ''
+        ]}
+        {include file='ui/f6/checkbox.html'}
+
+        {* Submit *}
+        {$ui = [
+            'class'  => 'primary',
+            'label'  => 'Submit',
+            'submit' => true,
+            'id'     => '',
+            'cancel' => ""
+        ]}
+        {include file='ui/f6/submit.html'}
+
+    </fieldset>
+</div>
+
+{* Form End *}
+{include file='ui/f6/form-end.html'}
+
 <a href="{$thisUrl}?page={$thisPage}&option=editHtmlEmail" class="button button-primary glm-right">Add Message</a>
 
 {include file='admin/messages/listMessagesTable.html'}