{
$havePackages = false;
+ $packages = false; // Used if sorting by package
+ $members = false; // Used if sorting by member then package
$settings = array();
$status = false;
$orderBy = '';
$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;
}
'siteBaseUrl' => GLM_MEMBERS_SITE_BASE_URL,
'havePackages' => $havePackages,
'packages' => $packages,
+ 'members' => $members,
'byMember' => $byMember
);
<div class="glm-member-package-wrapper">
{if $havePackages}
+
+ <!-- If pacakges are listed by member, use this block -->
- {foreach $packages as $p}
- <div class="glm-member-package-container">
- {if $byMember && $p.firstForMember}
- <!-- Container for member information if multiple packages are listed under one member. - Only shows before first package for this member -->
- <div class="member">
- {if $p.logo}
- <img src="{$glmPluginMediaURL}/images/medium/{$p.logo}">
- {/if}
- <h2 class="member-title"><a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$p.member_slug}/">{$p.ref_dest_name}</a></h2>
- <div class="address">
- <div class="addr1">{$p.addr1}</div>
- {if $p.addr2}
- <div class="addr2">{$p.addr2}</div>
- {/if}
- <div class="citystatezip">{if $p.city}{$p.city}, {/if}{if $p.state.name}{$p.state.name} {/if}{if $p.zip}{$p.zip}{/if}</div>
- {if $p.country.name}
- <div class="country">{$p.country.name}</div>
- {/if}
- {if $p.toll_free}
- <div class="phone">{$p.toll_free}</div>
- {/if}
- {if $p.phone}
- <div class="phone">{$p.phone}</div>
- {/if}
- {if $p.url}
- <div><a class="url" title="url" href={$p.url}>{$p.url}</a></div>
- {/if}
- {if $p.email}
- <div><a class="email" title="Email" href={$p.email}>Email</a></div>
+ {if $byMember}
+ {foreach $members as $m}
+ <div class="glm-member-package-container">
+
+ <!-- Container for member information if multiple packages are listed under one member. - Only shows before first package for this member -->
+ <div class="member">
+ {if $m.logo}
+ <img src="{$glmPluginMediaURL}/images/medium/{$m.logo}">
{/if}
+ <h2 class="member-title"><a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$m.member_slug}/">{$m.member_name}</a></h2>
+ <div class="address">
+ <div class="addr1">{$m.addr1}</div>
+ {if $m.addr2}
+ <div class="addr2">{$m.addr2}</div>
+ {/if}
+ <div class="citystatezip">{if $m.city}{$m.city}, {/if}{if $m.state.name}{$m.state.name} {/if}{if $m.zip}{$m.zip}{/if}</div>
+ {if $m.country.name}
+ <div class="country">{$m.country.name}</div>
+ {/if}
+ {if $m.toll_free}
+ <div class="phone">{$m.toll_free}</div>
+ {/if}
+ {if $m.phone}
+ <div class="phone">{$m.phone}</div>
+ {/if}
+ {if $m.url}
+ <div><a class="url" title="url" href={$m.url}>{$m.url}</a></div>
+ {/if}
+ {if $m.email}
+ <div><a class="email" title="Email" href={$m.email}>Email</a></div>
+ {/if}
+ </div>
</div>
- </div>
- {/if}
+
+ {foreach $m.packages as $p}
+ <!-- Container for each package -->
+ <div class="package">
- <!-- Container for each package -->
- <div class="package">
+ <!-- Container for package information -->
+ <div class="package-info">
+
+ {if $p.image}
+ <img src="{$glmPluginMediaURL}/images/medium/{$p.image}">
+ {/if}
+ <h3 class="package-title"><a href="{$thisURL}?glm_action=detail&packageID={$p.id}">{$p.title}</a></h3>
+ {if $p.descr}
+ {$p.descr}
+ {else if $p.short_descr}
+ {$p.short_descr}
+ {/if}
+ <div class="details">
+ <div><span class="title">Expires: </span><span class="data">{$p.expire_date.date}</span></div>
+ <div><span class="title">Pricing: </span><span class="data">{$p.pricing}</span></div>
+ </div>
+ </div>
+
+ </div>
+ {/foreach} <!-- /package -->
+
+ </div> <!-- /member -->
+ {/foreach}
+
+ <!-- If packages are listed by package, use this block -->
+ {else}
+
+ {foreach $packages as $p}
+
+ <div class="glm-member-package-container">
- {if !$byMember}
+
<!-- Container for member information if displayed with each package -->
<div class="member">
- {if $p.logo}
- <img src="{$glmPluginMediaURL}/images/medium/{$p.logo}">
+ {if $p.member.logo}
+ <img src="{$glmPluginMediaURL}/images/medium/{$p.member.logo}">
{/if}
- <h2 class="member-title"><a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$p.member_slug}/">{$p.ref_dest_name}</a></h2>
+ <h2 class="member-title"><a href="{$siteBaseUrl}{$settings.canonical_member_page}/{$p.member.member_slug}/">{$p.member.member_name}</a></h2>
<div class="address">
- <div class="addr1">{$p.addr1}</div>
- {if $p.addr2}
- <div class="addr2">{$p.addr2}</div>
+ <div class="addr1">{$p.member.addr1}</div>
+ {if $p.member.addr2}
+ <div class="addr2">{$p.member.addr2}</div>
{/if}
- <div class="citystatezip">{if $p.city}{$p.city}, {/if}{if $p.state.name}{$p.state.name} {/if}{if $p.zip}{$p.zip}{/if}</div>
- {if $p.country.name}
- <div class="country">{$p.country.name}</div>
+ <div class="citystatezip">{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}</div>
+ {if $p.member.country.name}
+ <div class="country">{$p.member.country.name}</div>
{/if}
- {if $p.toll_free}
- <div class="phone">{$p.toll_free}</div>
+ {if $p.member.toll_free}
+ <div class="phone">{$p.member.toll_free}</div>
{/if}
- {if $p.phone}
- <div class="phone">{$p.phone}</div>
+ {if $p.member.phone}
+ <div class="phone">{$p.member.phone}</div>
{/if}
- {if $p.url}
- <a class="url" title="url" href={$p.url}>{$p.url}</a>
+ {if $p.member.url}
+ <a class="url" title="url" href={$p.member.url}>{$p.member.url}</a>
{/if}
- {if $p.email}
- <a class="email" title="Email" href={$p.email}>Email</a>
+ {if $p.member.email}
+ <a class="email" title="Email" href={$p.member.email}>Email</a>
{/if}
</div>
</div>
- {/if}
<!-- Container for package information -->
- <div class="package-info">
-
- {if $p.image}
- <img src="{$glmPluginMediaURL}/images/medium/{$p.image}">
- {/if}
- <h3 class="package-title"><a href="{$thisURL}?glm_action=detail&packageID={$p.id}">{$p.title}</a></h3>
- {if $p.descr}
- {$p.descr}
- {else if $p.short_descr}
- {$p.short_descr}
- {/if}
- <div class="details">
- <div><span class="title">Expires: </span><span class="data">{$p.expire_date.date}</span></div>
- <div><span class="title">Pricing: </span><span class="data">{$p.pricing}</span></div>
+ <div class="package">
+ <div class="package-info">
+
+ {if $p.image}
+ <img src="{$glmPluginMediaURL}/images/medium/{$p.image}">
+ {/if}
+ <h3 class="package-title"><a href="{$thisURL}?glm_action=detail&packageID={$p.id}">{$p.title}</a></h3>
+ {if $p.descr}
+ {$p.descr}
+ {else if $p.short_descr}
+ {$p.short_descr}
+ {/if}
+ <div class="details">
+ <div><span class="title">Expires: </span><span class="data">{$p.expire_date.date}</span></div>
+ <div><span class="title">Pricing: </span><span class="data">{$p.pricing}</span></div>
+ </div>
</div>
</div>
+ </div>
- </div> <!-- /package -->
-
- </div> <!-- /package container -->
- {/foreach}
+ {/foreach}
+
+ {/if} <!-- if by member -->
+
{else}
(Sorry, no packages currently listed.)