Cleaned up output and added Delete and other package options
authorChuck Scott <cscott@gaslightmedia.com>
Wed, 16 Dec 2015 22:02:28 +0000 (17:02 -0500)
committerChuck Scott <cscott@gaslightmedia.com>
Wed, 16 Dec 2015 22:02:28 +0000 (17:02 -0500)
classes/data/dataPackages.php
models/admin/member/packaging.php
models/front/packaging/detail.php
models/front/packaging/list.php
views/admin/member/packaging.html
views/front/packaging/detail.html
views/front/packaging/list.html

index 963c73b..6328ebc 100644 (file)
@@ -12,6 +12,9 @@
  * @release  SVN: $Id: dataPackages.php,v 1.0 2011/01/25 19:31:47 cscott Exp $
  */
 
+// Member Info Data required
+require_once(GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataMemberInfo.php');
+
 /**
  * GlmDataPackages class
  *
@@ -72,6 +75,13 @@ class GlmDataPackages extends GlmDataAbstract
      * @access public
      */
     public $fields = false;
+    /**
+     * MemberInfo DB object
+     *
+     * @var $MemberInfo
+     * @access public
+     */
+    public $MemberInfo;
 
     /**
      * Constructor
@@ -227,12 +237,30 @@ class GlmDataPackages extends GlmDataAbstract
                 'use' => 'lged'
             )
 
-        );
+         );
+
+        // Instatiate the memberInfo data class so as to be able to get current member data for a package
+        $this->MemberInfo = new GlmDataMemberInfo($this->wpdb, $this->config);
 
     }
 
+    /*
+     * Entry Post Processing Call-Back Method
+     *
+     * Perform post-processing for all result entries.
+     *
+     * In this case we're using it to append an array of category
+     * data to each member result and also sort by member name.
+     *
+     * @param array $r Array of field result data for a single entry
+     * @param string $a Action being performed (l, i, g, ...)
+     *
+     * @return object Class object
+     *
+     */
     public function entryPostProcessing($r, $a)
     {
+        // *** NOTE: This will have to be enhanced when other ref_types are put into use other than "member". ***
 
         // Only run these tests for list, get, edit, and delete
         if (in_array($a, array('l', 'g', 'e', 'd', 'u')) && $r['ref_type'] > 0 && $r['ref_dest'] > 0) {
@@ -240,8 +268,12 @@ class GlmDataPackages extends GlmDataAbstract
             // Get entity table
             $table = GLM_MEMBERS_PLUGIN_DB_PREFIX.$this->config['ref_type_table'][$r['ref_type']['value']];
 
-            $dest = $this->wpdb->get_row("SELECT name FROM $table WHERE id = ".$r['ref_dest'].";");
-            $r['ref_dest_name'] = $dest->name;
+            // Get simplified member data
+            $memberInfoData = $this->MemberInfo->getActiveInfoSimplified($r['ref_dest']);
+
+            if ($memberInfoData) {
+                $r = array_merge($r, $memberInfoData);
+            }
 
         }
 
index 39b03ce..51db0c8 100644 (file)
@@ -86,6 +86,7 @@ class GlmMembersAdmin_member_packaging extends GlmDataPackages
         $packages = false;
         $havePackage = false;
         $packageUpdated = false;
+        $packageDeleted = false;
         $packageInfo = false;
         $packageError = false;
         $haveMember = false;
@@ -230,10 +231,17 @@ class GlmMembersAdmin_member_packaging extends GlmDataPackages
                 break;
 
             case 'delete':
-                if ($id > 0) {
-                    $this->deleteEntry($id, true);
+
+                // Get the package ID
+                $packageID = 0;
+                if ($_REQUEST['packageID'] && $_REQUEST['packageID'] != '') {
+                    $packageID = $_REQUEST['packageID'] - 0;
+                }
+
+                if ($packageID > 0) {
+                    $this->deleteEntry($packageID, true);
+                    $packageDeleted = true;
                 }
-                break;
 
             case 'list':
             default:
@@ -291,6 +299,7 @@ class GlmMembersAdmin_member_packaging extends GlmDataPackages
             'packages' => $packages,
             'havePackage' => $havePackage,
             'packageUpdated' => $packageUpdated,
+            'packageDeleted' => $packageDeleted,
             'packageID' => $packageID,
             'packageInfo' => $packageInfo,
             'packageError' => $packageError,
index 2561d5b..88c125a 100644 (file)
@@ -123,6 +123,7 @@ class GlmMembersFront_packaging_detail extends GlmDataPackages
 
         // Compile template data
         $templateData = array(
+            'siteBaseUrl' => GLM_MEMBERS_SITE_BASE_URL,
             'havePackage' => $havePackage,
             'packageID' => $packageID,
             'package' => $package
index fd1de41..64ea48d 100644 (file)
@@ -99,10 +99,12 @@ class GlmMembersFront_packaging_list extends GlmDataPackages
         $havePackages = false;
         $settings = array();
         $status = false;
-        $where = 'true';
         $orderBy = '';
         $byMember = false;
 
+        // Only select pacakges that are current
+        $where = "CURDATE() BETWEEN T.start_date AND T.end_date";
+
         // Select by specified type
         switch($actionData['request']['type']) {
 
@@ -198,6 +200,7 @@ class GlmMembersFront_packaging_list extends GlmDataPackages
 
         // Compile template data
         $templateData = array(
+            'siteBaseUrl' => GLM_MEMBERS_SITE_BASE_URL,
             'havePackages' => $havePackages,
             'packages' => $packages,
             'byMember' => $byMember
index 4e31cc7..aec0621 100644 (file)
@@ -1,7 +1,10 @@
 {include file='admin/member/header.html'}
 
+{if $packageDeleted}
+    <h2><span class="glm-notice glm-flash-updated">Package Deleted:</span></h2>
+{/if}            
+
 {if $option == 'edit' || $option == 'add'}
-        
 
   {if apply_filters('glm_members_permit_admin_member_packaging_edit_package', true)}
 
     
       {if $option == 'edit'}
         <h2>Edit Package</h2>
+        <a href="{$thisURL}?page={$thisPage}&glm_action=packaging&member={$memberID}" class="button-primary glm-button glm-right">Return to Package List</a>
+        <a id="deletePackageButton" class="button-primary glm-button glm-right">Delete this Package</a>
+        
+        <div id="deletePackageDialog" class="glm-dialog-box" title="Delete Package">
+            <center>
+                <p><a id="deletePackageCancel" class="button-primary">Cancel</a></p>
+                <p><input id="deletePackageSubmit" type="submit" value="Delete this package"></p>
+            </center>
+            <div class="glm-item-container">
+                <p><center><span class="glm-error">WARNING:</span></center></p>
+                <p>
+                    <span class="glm-warning">Clicking the "Delete this Package" button above will 
+                    delete all of the data and images associated with this package.
+                    </span>
+                </p>
+                <p>
+                    <span class="glm-error">Once deleted, this information will no longer be available and cannot be retrieved!</span>
+                </p>
+            </div>
+        </div>
       {else}
         <h2>Add new Package</h2>
       {/if}
             // Date Input
             $('.glm-date-input').datepicker();
             
+            // Delete Package dialog
+            $("#deletePackageDialog").dialog({
+                autoOpen: false,
+                minWidth: 400,
+                dialogClass: "glm-dialog-no-close"
+            });
+            $('#deletePackageButton').click( function() {
+                $('#deletePackageDialog').dialog('open');
+            });
+            $('#deletePackageCancel').click( function() {
+                $("#deletePackageDialog").dialog("close");
+            });            
+            $('#deletePackageSubmit').click( function() {
+                window.location.replace("{$thisURL}?page={$thisPage}&glm_action=packaging&member={$memberID}&option=delete&packageID={$packageInfo.fieldData.id}");
+            });
+
             // Flash certain elements for a short time after display      
             $(".glm-flash-updated").fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500).fadeIn(500).fadeOut(500);
 
index b2e9506..2385059 100644 (file)
@@ -2,30 +2,46 @@
 
 {if $havePackage}
 
-    <div>
-        <h1><a src="">{$package.title}</a></h1>
-   {if $package.ref_type.value}
-        <h2>{$package.ref_type.name}: {$package.ref_dest_name}</h2>
-  {/if}
-      {if $package.image}
+    {if ($byMember && $package.firstForMember) || !$byMember}
         <div>
-            <img src="{$glmPluginMediaURL}/images/small/{$package.image}">
-        </div> 
-      {/if}
-        <div>
-            <table>
-                <tr><th>Start Date:</th><td>{$package.start_date.date}</td></tr>
-                <tr><th>End Date:</th><td>{$package.end_date.date}</td></tr>
-                <tr><th>Expiration Date:</th><td>{$package.expire_date.date}</td></tr>
-                <tr><th>Pricing:</th><td>{$package.pricing}</td></tr>
-            </table>
-      {if $package.descr}
-            <p><b>Description:</b> {$package.descr}</p>
-      {else if $package.short_descr}
-            <p><b>Description:</b> {$package.short_descr}</p>
-      {/if}
+            <h2><a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$package.member_slug}/">{$package.ref_dest_name}</a></h2>
+            {if $package.addr1}<div>{$package.addr1}</div>{/if}
+            {if $package.addr2}<div>{$package.addr2}</div>{/if}
+            {if $package.city}<span>{$package.city}</span>{if $package.state.name}, {/if}{/if}<span>{if $package.state.name}{$package.state.name}</span>{/if}{if $package.zip} {$package.zip}{/if}
+            {if $package.country.name}<div>{$package.country.name}</div>{/if}
         </div>
-    </div>
+        <p>&nbsp;</p>
+    {/if}
+  
+    <div class="row">
+            <div class="small-12 {if $p.image}medium-8{/if} columns">
+                <div class="row">
+                    <div class="small-12 columns">
+                        <h4>{$package.title}</h4>
+                        <div>
+                      {if $package.descr}
+                        {$package.descr}
+                      {else if $package.short_descr}
+                        {$package.short_descr}
+                      {/if}
+                        </div>
+                        <div class="row">
+                            <div class="small-12 medium-2 columns"><b>Expires:</b></div>
+                            <div class="small-12 medium-10 columns">{$package.expire_date.date}</div>
+                        </div>
+                        <div class="row">
+                            <div class="small-12 medium-2 columns"><b>Pricing:</b></div>
+                            <div class="small-12 medium-10 columns">{$package.pricing}</div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        {if $package.image}
+            <div class="glm-member-list-image-wrapper small-12 medium-4 columns">
+                   <img class="glm-member-list-image left" src="{$glmPluginMediaURL}/images/medium/{$package.image}"> 
+            </div>
+        {/if}
+    </div> 
 
 {else}
     (Sorry, no data on the specified package.)
index 9034e26..cdcdc18 100644 (file)
@@ -1,42 +1,53 @@
 {include file='front/packaging/header.html'}
+
+<div class="content-wrapper">
 {if $havePackages}
    
- {foreach $packages as $p}
 {foreach $packages as $p}
     <div>
-  {if $p.ref_type.value}
-    {if $byMember}
-      {if $p.firstForMember}
-        <h1>{$p.ref_type.name}: {$p.ref_dest_name}</h1>
-      {/if}
-    {else}
-        <h3>{$p.ref_type.name}: {$p.ref_dest_name}</h3>
+    {if ($byMember && $p.firstForMember) || !$byMember}
+        <div style="margin-bottom: 2em;">
+            <h2><a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$p.member_slug}/">{$p.ref_dest_name}</a></h2>
+            {if $p.addr1}<div>{$p.addr1}</div>{/if}
+            {if $p.addr2}<div>{$p.addr2}</div>{/if}
+            {if $p.city}<span>{$p.city}</span>{if $p.state.name}, {/if}{/if}<span>{if $p.state.name}{$p.state.name}</span>{/if}{if $p.zip} {$p.zip}{/if}
+            {if $p.country.name}<div>{$p.country.name}</div>{/if}
+        </div>
     {/if}
-  {/if}
-    <h2><a href="{$thisURL}?glm_action=detail&packageID={$p.id}">{$p.title}</a></h2>
-      {if $p.image}
-        <div>
-            <img src="{$glmPluginMediaURL}/images/small/{$p.image}">
-        </div> 
-      {/if}
-        <div>
-            <table>
-                <tr><th>Start Date:</th><td>{$p.start_date.date}</td></tr>
-                <tr><th>End Date:</th><td>{$p.end_date.date}</td></tr>
-                <tr><th>Expiration Date:</th><td>{$p.expire_date.date}</td></tr>
-                <tr><th>Pricing:</th><td>{$p.pricing}</td></tr>
-            </table>
-          {if $p.descr}
-            <p><b>Description:</b> {$p.descr}</p>
-          {else if $p.short_descr}
-            <p><b>Description:</b> {$p.short_descr}</p>
-          {/if}
+        <div class="row" style="margin-bottom: 2em;">
+            <div class="small-12 {if $p.image}medium-8{/if} columns">
+                <div class="row">
+                    <div class="small-12 columns">
+                        <h4><a href="{$thisURL}?glm_action=detail&packageID={$p.id}">{$p.title}</a></h4>
+                        <div>
+                      {if $p.descr}
+                        {$p.descr}
+                      {else if $p.short_descr}
+                        {$p.short_descr}
+                      {/if}
+                        </div>
+                        <div class="row">
+                            <div class="small-12 medium-2 columns"><b>Expires:</b></div>
+                            <div class="small-12 medium-10 columns">{$p.expire_date.date}</div>
+                        </div>
+                        <div class="row">
+                            <div class="small-12 medium-2 columns"><b>Pricing:</b></div>
+                            <div class="small-12 medium-10 columns">{$p.pricing}</div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        {if $p.image}
+            <div class="glm-member-list-image-wrapper small-12 medium-4 columns">
+                   <img class="glm-member-list-image left" src="{$glmPluginMediaURL}/images/medium/{$p.image}"> 
+            </div>
+        {/if}
         </div>
-    </div>
-  {/foreach}
-
+    </div> 
+  {/foreach}                          
+  
 {else}
     (Sorry, no packages currently listed.)
 {/if}
-  
+</div>
 {include file='front/footer.html'}