From 8e7c75cb376239e8fdb151d3fc06f30448b9c03a Mon Sep 17 00:00:00 2001 From: Chuck Scott Date: Mon, 4 Jan 2016 15:24:13 -0500 Subject: [PATCH] Fixed problems with div organization in package listings --- classes/data/dataPackages.php | 2 +- glm-member-db-packaging.php | 4 +- models/front/packaging/list.php | 52 +++++++--- views/front/packaging/list.html | 176 +++++++++++++++++++------------- 4 files changed, 144 insertions(+), 90 deletions(-) diff --git a/classes/data/dataPackages.php b/classes/data/dataPackages.php index 6328ebc..e0d48d7 100644 --- a/classes/data/dataPackages.php +++ b/classes/data/dataPackages.php @@ -272,7 +272,7 @@ class GlmDataPackages extends GlmDataAbstract $memberInfoData = $this->MemberInfo->getActiveInfoSimplified($r['ref_dest']); if ($memberInfoData) { - $r = array_merge($r, $memberInfoData); + $r['member'] = $memberInfoData; } } diff --git a/glm-member-db-packaging.php b/glm-member-db-packaging.php index 373f60a..919c860 100644 --- a/glm-member-db-packaging.php +++ b/glm-member-db-packaging.php @@ -3,7 +3,7 @@ * Plugin Name: GLM Members Database Packaging * Plugin URI: http://www.gaslightmedia.com/ * Description: Gaslight Media Members Database. - * Version: 1.0.5 + * Version: 1.0.11 * Author: Chuck Scott * Author URI: http://www.gaslightmedia.com/ * License: GPL2 @@ -33,7 +33,7 @@ * version when there's a change in the database!! Use the * version nunmber of that release for the DB version. */ -define('GLM_MEMBERS_PACKAGING_PLUGIN_VERSION', '1.0.5'); +define('GLM_MEMBERS_PACKAGING_PLUGIN_VERSION', '1.0.11'); define('GLM_MEMBERS_PACKAGING_PLUGIN_DB_VERSION', '0.0.2'); // This is the minimum version of the GLM Members DB plugin require for this plugin. diff --git a/models/front/packaging/list.php b/models/front/packaging/list.php index 4134d7d..654f27e 100644 --- a/models/front/packaging/list.php +++ b/models/front/packaging/list.php @@ -97,6 +97,8 @@ class GlmMembersFront_packaging_list extends GlmDataPackages { $havePackages = false; + $packages = false; // Used if sorting by package + $members = false; // Used if sorting by member then package $settings = array(); $status = false; $orderBy = ''; @@ -184,32 +186,47 @@ class GlmMembersFront_packaging_list extends GlmDataPackages $status = true; } - /* - * Sort by Member - */ + // Member sort function function packageMemberCmp($a, $b) { - if ($a['ref_dest_name'] == $b['ref_dest_name']) { + if ($a['member_name'] == $b['member_name']) { return 0; } - return ($a['ref_dest_name'] < $b['ref_dest_name']) ? -1 : 1; + return ($a['member_name'] < $b['member_name']) ? -1 : 1; } + + /* + * Sort by Member + */ if ($actionData['request']['order'] == 'member') { - // Sort by member name - reset($packages); - uasort($packages, 'packageMemberCmp'); - - // Mark first entry for each member - reset($packages); - $memb = ''; - while (list($key, $val) = each($packages)) { - $packages[$key]['firstForMember'] = false; - if ($memb != $val['ref_dest_name']) { - $packages[$key]['firstForMember'] = true; - $memb = $val['ref_dest_name']; + // Create empty array that will take all the data by member + $members = array(); + + // For each package + foreach ($packages as $p) { + + $membID = $p['member']['member_pointer']; + + // If member has not been created, do that now. + if (!isset($members[$membID])) { + $members[$membID] = $p['member']; + $members[$membID]['packages'] = array(); } + + // Add package to this member + $members[$membID]['packages'][$p['id']] = $p; + + // Drop member data from the package + unset($members[$membID]['packages'][$p['id']]['member']); } + // Drop the data organized by packages + $packages = false; + + // Sort by member name + reset($members); + uasort($members, 'packageMemberCmp'); + $byMember = true; } @@ -218,6 +235,7 @@ class GlmMembersFront_packaging_list extends GlmDataPackages 'siteBaseUrl' => GLM_MEMBERS_SITE_BASE_URL, 'havePackages' => $havePackages, 'packages' => $packages, + 'members' => $members, 'byMember' => $byMember ); diff --git a/views/front/packaging/list.html b/views/front/packaging/list.html index 402071a..a470868 100644 --- a/views/front/packaging/list.html +++ b/views/front/packaging/list.html @@ -9,98 +9,134 @@
{if $havePackages} + + - {foreach $packages as $p} -
- {if $byMember && $p.firstForMember} - -
- {if $p.logo} - - {/if} -

{$p.ref_dest_name}

-
-
{$p.addr1}
- {if $p.addr2} -
{$p.addr2}
- {/if} -
{if $p.city}{$p.city}, {/if}{if $p.state.name}{$p.state.name} {/if}{if $p.zip}{$p.zip}{/if}
- {if $p.country.name} -
{$p.country.name}
- {/if} - {if $p.toll_free} -
{$p.toll_free}
- {/if} - {if $p.phone} -
{$p.phone}
- {/if} - {if $p.url} - - {/if} - {if $p.email} - + {if $byMember} + {foreach $members as $m} +
+ + +
+ {if $m.logo} + {/if} +

{$m.member_name}

+
+
{$m.addr1}
+ {if $m.addr2} +
{$m.addr2}
+ {/if} +
{if $m.city}{$m.city}, {/if}{if $m.state.name}{$m.state.name} {/if}{if $m.zip}{$m.zip}{/if}
+ {if $m.country.name} +
{$m.country.name}
+ {/if} + {if $m.toll_free} +
{$m.toll_free}
+ {/if} + {if $m.phone} +
{$m.phone}
+ {/if} + {if $m.url} + + {/if} + {if $m.email} + + {/if} +
-
- {/if} + + {foreach $m.packages as $p} + +
- -
+ +
+ + {if $p.image} + + {/if} +

{$p.title}

+ {if $p.descr} + {$p.descr} + {else if $p.short_descr} + {$p.short_descr} + {/if} +
+
Expires: {$p.expire_date.date}
+
Pricing: {$p.pricing}
+
+
+ +
+ {/foreach} + +
+ {/foreach} + + + {else} + + {foreach $packages as $p} + +
- {if !$byMember} +
- {if $p.logo} - + {if $p.member.logo} + {/if} -

{$p.ref_dest_name}

+

{$p.member.member_name}

-
{$p.addr1}
- {if $p.addr2} -
{$p.addr2}
+
{$p.member.addr1}
+ {if $p.member.addr2} +
{$p.member.addr2}
{/if} -
{if $p.city}{$p.city}, {/if}{if $p.state.name}{$p.state.name} {/if}{if $p.zip}{$p.zip}{/if}
- {if $p.country.name} -
{$p.country.name}
+
{if $p.member.city}{$p.member.city}, {/if}{if $p.member.state.name}{$p.member.state.name} {/if}{if $p.member.zip}{$p.member.zip}{/if}
+ {if $p.member.country.name} +
{$p.member.country.name}
{/if} - {if $p.toll_free} -
{$p.toll_free}
+ {if $p.member.toll_free} +
{$p.member.toll_free}
{/if} - {if $p.phone} -
{$p.phone}
+ {if $p.member.phone} +
{$p.member.phone}
{/if} - {if $p.url} - {$p.url} + {if $p.member.url} + {$p.member.url} {/if} - {if $p.email} - + {if $p.member.email} + {/if}
- {/if} -
- - {if $p.image} - - {/if} -

{$p.title}

- {if $p.descr} - {$p.descr} - {else if $p.short_descr} - {$p.short_descr} - {/if} -
-
Expires: {$p.expire_date.date}
-
Pricing: {$p.pricing}
+
+
+ + {if $p.image} + + {/if} +

{$p.title}

+ {if $p.descr} + {$p.descr} + {else if $p.short_descr} + {$p.short_descr} + {/if} +
+
Expires: {$p.expire_date.date}
+
Pricing: {$p.pricing}
+
+
-
- -
- {/foreach} + {/foreach} + + {/if} + {else} (Sorry, no packages currently listed.) -- 2.17.1