Setting up the shortcode
authorSteve Sutton <steve@gaslightmedia.com>
Mon, 21 Nov 2016 15:15:05 +0000 (10:15 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Mon, 21 Nov 2016 15:15:05 +0000 (10:15 -0500)
Set up shortcode valid action.
Set up the ajax valid action.

css/front.css [new file with mode: 0644]
models/front/coupons/list.php [new file with mode: 0644]
setup/shortcodes.php
setup/validActions.php
views/front/coupons/list.html [new file with mode: 0644]

diff --git a/css/front.css b/css/front.css
new file mode 100644 (file)
index 0000000..cafc15a
--- /dev/null
@@ -0,0 +1,77 @@
+.coupon-row {
+    display: block;
+    width: 100%;
+}
+.coupon-item {
+    display: inline-table;
+    width: 30%;
+    padding: 0;
+    margin: 5px;
+    border: 1px dashed lightgrey;
+}
+.coupon-item-wrap {
+    padding: 20px;
+}
+.coupon-item-wrap h3 {
+    text-align: center;
+}
+.coupon-row h2 {
+    font-size: 1.45rem;
+}
+.coupon-row h3 {
+    font-size: 1.3rem;
+}
+.coupon-expires {
+    margin: 20px 5px 5px 0;
+    float: right;
+    font-size: .8rem;
+}
+.coupon-descr {
+    font-size: .9rem;
+}
+.coupon-url {
+    float: left;
+    font-size: .8rem;
+    margin: 20px 0 5px 5px;
+}
+.coupon-select {
+    background-color: lightgrey;
+    width: 100%;
+    height: 40px;
+    padding: 10px;
+}
+.glm_coupon_search_select, .glm_coupon_search_submit {
+    width: 45%;
+    margin-left: 0 !important;;
+}
+.glm_coupon_print {
+    width: 25%;
+    float: left;
+    margin-left: 20px !important;
+}
+/* small */
+@media screen and (max-width: 40em) {
+    .coupon-item {
+        width: 100%;
+    }
+    .glm_coupon_search_select, .glm_coupon_search_submit {
+        width: 100%;
+        margin-left: 0 !important;;
+    }
+    .glm_coupon_print {
+        width: 100%;
+        float: none;
+        margin-left: 0 !important;;
+    }
+}
+/* medium */
+@media screen and (min-width: 40.63em) and (max-width: 64em) {
+    .coupon-item {
+        width: 45%;
+    }
+    .glm_coupon_print {
+        width: 45%;
+        float: none;
+        margin-left: 0 !important;;
+    }
+}
diff --git a/models/front/coupons/list.php b/models/front/coupons/list.php
new file mode 100644 (file)
index 0000000..b9b4b6b
--- /dev/null
@@ -0,0 +1,94 @@
+<?php
+/**
+ * list.php
+ *
+ * This is the Members Coupon Plugin model for the front list shortcode.
+ * Handles the default and searching of the events. Then calls appropriate view
+ * files.
+ */
+
+require_once GLM_MEMBERS_COUPONS_PLUGIN_CLASS_PATH . '/data/dataCoupons.php';
+
+/**
+ * GlmMembersFront_events_list
+ *
+ * @uses      GlmDataCoupons
+ * @package   GlmMemberCoupons
+ * @version   0.0.1
+ * @copyright Copyright (c) 2010 All rights reserved.
+ * @author    Steve Sutton <steve@gaslightmedia.com>
+ * @license   PHP Version 3.0 {@link http://www.php.net/license/3_0.txt}
+ */
+class GlmMembersFront_coupons_list extends GlmDataCoupons
+{
+
+    public $wpdb;
+    public $config;
+
+    /**
+     * __construct
+     *
+     * @param mixed $wpdb   The main Word Press DB Object
+     * @param mixed $config The main Config
+     *
+     * @access public
+     * @return void
+     */
+    public function __construct($wpdb, $config)
+    {
+        $this->wpdb = $wpdb;
+        $this->config = $config;
+
+        parent::__construct(false, false);
+    }
+
+    /**
+     * modelAction
+     *
+     * @param bool $actionData Action Data passed to the modelAction
+     *
+     * @access public
+     * @return void
+     */
+    public function modelAction( $actionData = false )
+    {
+        $action  = '';
+        $view    = 'list.html';
+        $coupons = $categories = array();
+
+        // Need to only pull in active coupons that have the start_date and
+        // end_date within the current_date
+        $where   = "current_date BETWEEN T.start_date AND T.end_date AND T.status = 10";
+
+        $coupons = $this->getList( $where );
+
+        // Arrange the $coupons so they're grouped by the categories.
+        if ( is_array( $coupons ) && !empty( $coupons ) ) {
+            foreach ( $coupons as $coupon ) {
+                if ( is_array( $coupon['categories'] ) && !empty( $coupon['categories'] ) ) {
+                    foreach ( $coupon['categories'] as $category ) {
+                        $categories[$category['name']][] = $coupon;
+                    }
+                }
+            }
+        }
+
+
+        // Compile template data
+        $templateData = array(
+            'coupons'    => $coupons,
+            'categories' => $categories,
+            'imgUrl'     => GLM_MEMBERS_PLUGIN_MEDIA_URL . '/images/small/',
+        );
+        error_reporting(E_ALL ^ E_NOTICE);
+        return array(
+            'status'           => $status,
+            'menuItemRedirect' => false,
+            'modelRedirect'    => false,
+            'view'             => 'front/coupons/' . $view,
+            'data'             => $templateData,
+            'settings'         => $settings,
+        );
+    }
+
+}
index d7ba3ca..580c3ee 100644 (file)
  *           </td>
  *       </tr>
  */
-
 $glmMembersCouponsShortcodes = array(
+    'glm-members-coupons-list' => array(
+        'plugin'     => GLM_MEMBERS_COUPONS_PLUGIN_SLUG,
+        'menu'       => 'coupons',
+        'action'     => 'list',
+        'table'      => false,
+        'attributes' => array(
+        ),
+    ),
 );
 
-$glmMembersCouponsShortcodesDescription = '';
+$glmMembersCouponsShortcodesDescription = '
+<tr>
+    <th>[glm-members-coupons-list]</th>
+    <td>&nbsp;</td>
+    <td width="50%">
+    Show the Coupons
+    </td>
+</tr>
+';
 
index 1716329..954aa2f 100644 (file)
@@ -32,6 +32,9 @@
 
 $glmMembersCouponsAddOnValidActions = array(
     'adminActions' => array(
+        'ajax' => array(
+            'pdfOutput' => GLM_MEMBERS_COUPONS_PLUGIN_SLUG,
+        ),
         'coupons' => array(
             'index' => GLM_MEMBERS_COUPONS_PLUGIN_SLUG,
             'list' => GLM_MEMBERS_COUPONS_PLUGIN_SLUG,
diff --git a/views/front/coupons/list.html b/views/front/coupons/list.html
new file mode 100644 (file)
index 0000000..cfac1b6
--- /dev/null
@@ -0,0 +1,29 @@
+<div>
+    <h1>List Coupons</h1>
+    <form action="{$formAction}?glm-coupon-pdf=true" method="post">
+        <input type="submit" value="Print All" name="printAll" class="button success glm_coupon_print">
+        <input type="submit" value="Print Selected" name="printSel" class="button success glm_coupon_print">
+        {if $categories}
+        {foreach $categories as $catName => $coupons}
+                <h2>{$catName}</h2>
+                <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.glm_coupons_member}<h3>{$coupon.glm_coupons_member}</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}
+                {/foreach}
+            </div>
+        {/if}
+    </form>
+</div>