Working on the member detail page for the member coupons
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 7 Dec 2016 22:11:51 +0000 (17:11 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 7 Dec 2016 22:11:51 +0000 (17:11 -0500)
Adding args to shortcode for the member id to go through.
Adding the member id to the pdf generator.
Adding styles for the image to be centered in each coupon.

css/front.css
models/admin/ajax/pdfCoupons.php
models/front/coupons/list.php
setup/frontHooks.php
setup/shortcodes.php
views/front/coupons/list.html
views/front/coupons/memberDetail.html [new file with mode: 0644]

index cafc15a..a0f1263 100644 (file)
@@ -1,3 +1,7 @@
+#glm-member-detail-coupons-container {
+    display: none;
+    padding: 10px;
+}
 .coupon-row {
     display: block;
     width: 100%;
@@ -9,6 +13,13 @@
     margin: 5px;
     border: 1px dashed lightgrey;
 }
+.coupon-item img {
+    margin: 0 auto;
+    display: block;
+}
+.member-detail .coupon-item {
+    width: 48%;
+}
 .coupon-item-wrap {
     padding: 20px;
 }
index c4611f4..71f1490 100644 (file)
@@ -71,6 +71,10 @@ class GlmMembersAdmin_ajax_pdfCoupons extends GlmDataCoupons
 
         $where   = "current_date BETWEEN T.start_date AND T.end_date AND T.status = 10";
 
+        if ( isset( $_REQUEST['member'] ) && $memberId = filter_var( $_REQUEST['member'], FILTER_VALIDATE_INT ) ) {
+            $where .= " AND T.ref_dest = " . $_REQUEST['member'];
+        }
+
         $coupons = $this->getList( $where );
 
         if ( isset( $coupons ) && !empty( $coupons ) ) {
index 279a5ad..889c31e 100644 (file)
@@ -52,6 +52,9 @@ class GlmMembersFront_coupons_list extends GlmDataCoupons
      */
     public function modelAction( $actionData = false )
     {
+        $memberId = false;
+
+        //echo '<pre>$actionData: ' . print_r( $actionData, true ) . '</pre>';
         $action  = '';
         $view    = 'list.html';
         $coupons = $categories = array();
@@ -60,6 +63,10 @@ class GlmMembersFront_coupons_list extends GlmDataCoupons
         // end_date within the current_date
         $where   = "current_date BETWEEN T.start_date AND T.end_date AND T.status = 10";
 
+        if ( isset( $actionData['request']['member'] ) && $memberId = filter_var( $actionData['request']['member'], FILTER_VALIDATE_INT ) ) {
+            $where .= " AND T.ref_dest = " . $actionData['request']['member'];
+        }
+
         $coupons = $this->getList( $where );
 
         // Arrange the $coupons so they're grouped by the categories.
@@ -77,9 +84,21 @@ class GlmMembersFront_coupons_list extends GlmDataCoupons
         // sort them by category name
         ksort( $categories );
 
+        // check the $actionData for a template argument
+        if ( isset( $actionData['request']['template'] ) && $actionData['request']['template'] ) {
+            switch ( $actionData['request']['template'] ) {
+            case 'member-detail':
+                $view = 'memberDetail.html';
+                break;
+            default:
+                $view = 'list.html';
+                break;
+            }
+        }
 
         // Compile template data
         $templateData = array(
+            'member_id'  => $memberId,
             'coupons'    => $coupons,
             'categories' => $categories,
             'imgUrl'     => GLM_MEMBERS_PLUGIN_MEDIA_URL . '/images/small/',
index 2285c70..b3784a4 100644 (file)
  *
  *  *** Also note that parameters will be in the context of the main front controller constructor. ***
  */
+// Add content to member detail page - Get it from the existing coupon shortcode
+add_filter('glm-member-db-front-members-detail-descriptionAfter', function($content, $id) {
+        $eventData = do_shortcode('[glm-members-coupons-list member='.$id.' template="member-detail"]');
+        $content .= $eventData;
+        return $content;
+    },
+    10,
+    2
+);
index 580c3ee..e637273 100644 (file)
@@ -92,6 +92,8 @@ $glmMembersCouponsShortcodes = array(
         'action'     => 'list',
         'table'      => false,
         'attributes' => array(
+            'member'   => false,
+            'template' => false,
         ),
     ),
 );
index 5168b36..8152ceb 100644 (file)
@@ -2,33 +2,33 @@
     <h1>List Coupons</h1>
     <form id="glm-coupon-form" action="{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=pdfCoupons&pdf=1" method="post">
         <input type="hidden" id="form-option" name="option" value="">
-        <input type="submit"id="print-all-coupon" value="Print All" name="printAll" class="button success glm_coupon_print">
+        <input type="submit" id="print-all-coupon" value="Print All" name="printAll" class="button success glm_coupon_print">
         <input type="submit" id="print-selected-coupon" value="Print Selected" name="printSel" class="button success glm_coupon_print">
         {if $categories}
-        {foreach $categories as $catName => $coupons}
-            {if $catName != '1-category'}
-            <h2>{$catName}</h2>
-            {else}
-            <br style="clear:both;">
-            {/if}
+            {foreach $categories as $catName => $coupons}
+                {if $catName != '1-category'}
+                <h2>{$catName}</h2>
+                {else}
+                <br style="clear:both;" />
+                {/if}
                 <div class="coupon-row">
-                {if $coupons}
-                    {foreach $coupons as $coupon}
-                        <div class="{if $coupon.end}end {/if}coupon-item">
-                            <div class="coupon-select"><label><input type="checkbox" name="coupon-id-{$coupon.id}"> Select this coupon</label></div>
-                            <div class="coupon-item-wrap">
-                                {if $coupon.ref_dest}<h3>{$coupon.ref_dest}</h3>{/if}
-                                <h3>{$coupon.name}</h3>
-                                {if $coupon.image}<img src="{$imgUrl}{$coupon.image}">{/if}
-                                <div class="coupon-descr">{$coupon.descr}</div>
-                                {if $coupon.url}<div class="coupon-url"><a target="_blank" href="http://{$coupon.url}">Web Site</a></div>{/if}
-                                <div class="coupon-expires">Expires: {$coupon.expire.timestamp|date_format:"%m/%d/%Y"}</div>
+                    {if $coupons}
+                        {foreach $coupons as $coupon}
+                            <div class="{if $coupon.end}end {/if}coupon-item">
+                                <div class="coupon-select"><label><input type="checkbox" name="coupon-id-{$coupon.id}"> Select this coupon</label></div>
+                                <div class="coupon-item-wrap">
+                                    {if $coupon.ref_dest}<h3>{$coupon.ref_dest}</h3>{/if}
+                                    <h3>{$coupon.name}</h3>
+                                    {if $coupon.image}<img src="{$imgUrl}{$coupon.image}">{/if}
+                                    <div class="coupon-descr">{$coupon.descr}</div>
+                                    {if $coupon.url}<div class="coupon-url"><a target="_blank" href="http://{$coupon.url}">Web Site</a></div>{/if}
+                                    <div class="coupon-expires">Expires: {$coupon.expire.timestamp|date_format:"%m/%d/%Y"}</div>
+                                </div>
                             </div>
-                        </div>
                         {/foreach}
                     {/if}
-                {/foreach}
-            </div>
+                </div>
+            {/foreach}
         {/if}
     </form>
 </div>
diff --git a/views/front/coupons/memberDetail.html b/views/front/coupons/memberDetail.html
new file mode 100644 (file)
index 0000000..8ed9fba
--- /dev/null
@@ -0,0 +1,72 @@
+<div id="glm-member-detail-coupons-toggle" class="glm-member-detail-content-toggle">Coupons</div>
+<div id="glm-member-detail-coupons-container">
+    <form id="glm-coupon-form" action="{$ajaxUrl}?action=glm_members_admin_ajax&glm_action=pdfCoupons&pdf=1&member={$member_id}" method="post">
+        <input type="hidden" id="form-option" name="option" value="">
+        <input type="submit" id="print-all-coupon" value="Print All" name="printAll" class="button success glm_coupon_print">
+        <input type="submit" id="print-selected-coupon" value="Print Selected" name="printSel" class="button success glm_coupon_print">
+        {if $categories}
+            {foreach $categories as $catName => $coupons}
+                {if $catName != '1-category'}
+                <h3>{$catName}</h3>
+                {else}
+                <br style="clear:both;" />
+                {/if}
+                <div class="coupon-row member-detail">
+                    {if $coupons}
+                        {foreach $coupons as $coupon}
+                            <div class="{if $coupon.end}end {/if}coupon-item">
+                                <div class="coupon-select"><label><input type="checkbox" name="coupon-id-{$coupon.id}"> Select this coupon</label></div>
+                                <div class="coupon-item-wrap">
+                                    {if $coupon.ref_dest}<h3>{$coupon.ref_dest}</h3>{/if}
+                                    <h3>{$coupon.name}</h3>
+                                    {if $coupon.image}<img src="{$imgUrl}{$coupon.image}">{/if}
+                                    <div class="coupon-descr">{$coupon.descr}</div>
+                                    {if $coupon.url}<div class="coupon-url"><a target="_blank" href="http://{$coupon.url}">Web Site</a></div>{/if}
+                                    <div class="coupon-expires">Expires: {$coupon.expire.timestamp|date_format:"%m/%d/%Y"}</div>
+                                </div>
+                            </div>
+                        {/foreach}
+                    {/if}
+                </div>
+            {/foreach}
+        {/if}
+    </form>
+</div>
+{literal}
+<script>
+jQuery(function($){
+    $("#print-all-coupon").click(function(){
+        $("#form-option").val('printAll');
+    });
+    $("#print-selected-coupon").click(function(){
+        $("#form-option").val('printSel');
+    });
+    $("#glm-coupon-form").submit(function(){
+        var option = $("#form-option").val();
+        console.log(option);
+        switch ( option ) {
+        case 'printSel':
+            // test how many are checked
+            var counter = 0;
+            $('input[name^="coupon-id"]').each(function(){
+                if ( $(this).is(":checked") ) {
+                    counter++;
+                }
+            });
+            if ( counter > 0 ) {
+                return true;
+            } else {
+                alert('Please select a coupon.');
+            }
+            return false;
+            break;
+        default:
+            return true;
+            break;
+        }
+        return false;
+
+    });
+});
+</script>
+{/literal}