From: Chuck Scott Date: Thu, 21 Jan 2016 20:17:02 +0000 (-0500) Subject: Added optional template selection for package list output to use in member pages. X-Git-Tag: v1.1.0^2~9^2 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=bfba4c1b23083626871bca8560cca17a9fef031c;p=WP-Plugins%2Fglm-member-db-packaging.git Added optional template selection for package list output to use in member pages. --- diff --git a/models/front/packaging/list.php b/models/front/packaging/list.php index 654f27e..3802d0c 100644 --- a/models/front/packaging/list.php +++ b/models/front/packaging/list.php @@ -186,18 +186,10 @@ class GlmMembersFront_packaging_list extends GlmDataPackages $status = true; } - // Member sort function - function packageMemberCmp($a, $b) { - if ($a['member_name'] == $b['member_name']) { - return 0; - } - return ($a['member_name'] < $b['member_name']) ? -1 : 1; - } - /* * Sort by Member */ - if ($actionData['request']['order'] == 'member') { + if (false && $havePackages && $actionData['request']['order'] == 'member') { // Create empty array that will take all the data by member $members = array(); @@ -225,11 +217,32 @@ class GlmMembersFront_packaging_list extends GlmDataPackages // Sort by member name reset($members); - uasort($members, 'packageMemberCmp'); + uasort($members, function($a, $b) { + if ($a['member_name'] == $b['member_name']) { + return 0; + } + return ($a['member_name'] < $b['member_name']) ? -1 : 1; + }); $byMember = true; } + // Check for alternate template requests + switch($actionData['request']['template']) { + case 'member-list': + $view = 'listForMemberListing.html'; + break; + case 'packages-link': + $view = 'packagesLinkForMemberDetail.html'; + break; + case 'member-detail': + $view = 'listForMemberDetail.html'; + break; + default: + $view = 'list.html'; + break; + } + // Compile template data $templateData = array( 'siteBaseUrl' => GLM_MEMBERS_SITE_BASE_URL, @@ -244,7 +257,7 @@ class GlmMembersFront_packaging_list extends GlmDataPackages 'status' => $status, 'menuItemRedirect' => false, 'modelRedirect' => false, - 'view' => 'front/packaging/list.html', + 'view' => 'front/packaging/'.$view, 'data' => $templateData, 'settings' => $settings ); diff --git a/setup/frontHooks.php b/setup/frontHooks.php index 6a61ce9..599881a 100644 --- a/setup/frontHooks.php +++ b/setup/frontHooks.php @@ -33,7 +33,7 @@ add_filter('rewrite_rules_array', function($rules) { return $newrules + $rules; }); -// Add packageslug query var +// Add package slug query var add_filter('query_vars', function($vars) { array_push($vars, 'packageslug'); return $vars; @@ -48,16 +48,38 @@ add_filter('init', function() { } }); -// Add content to member detail page - Get it from the existing package detail shortcode if (isset($this->config['addOns']['glm-member-db'])) { + + // Add content to member listing page - Get it from the existing package listing shortcode + add_filter('glm-member-db-front-members-list-memberDataBelow', function($content, $id) { + $packageData = do_shortcode('[glm-members-packaging-list member='.$id.' template="member-list" order="title"]'); + $content .= $packageData; + return $content; + }, + 10, + 2 + ); + + // Add internal page content links to member detail page + add_filter('glm-member-db-front-members-detail-internalContentLinks', function($content, $id) { + $packageData = do_shortcode('[glm-members-packaging-list member='.$id.', template="packages-link" order="title"]'); + $content .= $packageData; + return $content; + }, + 10, + 2 + ); + + // Add content to member detail page - Get it from the existing package listing shortcode add_filter('glm-member-db-front-members-detail-descriptionBottom', function($content, $id) { - $packageData = do_shortcode('[glm-members-packaging-detail id="'.$id.'"]'); + $packageData = do_shortcode('[glm-members-packaging-list member='.$id.', template="member-detail" order="title"]'); $content .= $packageData; return $content; }, 10, 2 ); + } ?> \ No newline at end of file diff --git a/setup/shortcodes.php b/setup/shortcodes.php index 4d7ae5b..74d2870 100644 --- a/setup/shortcodes.php +++ b/setup/shortcodes.php @@ -71,7 +71,8 @@ $glmMembersPackagingShortcodes = array( 'attributes' => array( 'type' => 'all', // 'all', 'member', 'multi-member' 'order' => 'member', // 'member', 'title', 'start-date', 'end-date', 'exp-date' - 'member' => false // ID of member for member specific list + 'member' => false, // ID of member for member specific list + 'template' => false // Template type (member-list, member-detail, default is normal) ) ), 'glm-members-packaging-detail' => array( @@ -147,6 +148,23 @@ $glmMembersPackagingShortcodesDescription = '

+ +   + template="{template type}" + +

+ Used to ask the packaging list shortcode to use an alternate template. + This option is used when calling the shortcode with the do_shortcode() function to include via a filter + in the member listing or detail page. +

+ + + + +
Template Types
member-listUsed when producing output for inclusion in a member listing page.
member-detailUsed when producing output for inclusion in a member detail page
+

+ + [glm-members-packaging-detail]   diff --git a/views/front/packaging/listForMemberDetail.html b/views/front/packaging/listForMemberDetail.html new file mode 100644 index 0000000..7450dd0 --- /dev/null +++ b/views/front/packaging/listForMemberDetail.html @@ -0,0 +1,28 @@ +{if $havePackages} +

Packages

+ +
+ {foreach $packages as $p} + +
+ + +
+ + {if $p.image} +
+ +
+ {/if} +

{$p.title}

+ {$p.short_descr} +
+
Expires: {$p.expire_date.date}
+
Pricing: {$p.pricing}
+
+
+ +
+ {/foreach} +
+{/if} diff --git a/views/front/packaging/listForMemberListing.html b/views/front/packaging/listForMemberListing.html new file mode 100644 index 0000000..ff59c55 --- /dev/null +++ b/views/front/packaging/listForMemberListing.html @@ -0,0 +1,28 @@ +{if $havePackages} +

Packages

+ +
+ {foreach $packages as $p} + +
+ + +
+ + {if $p.image} +
+ +
+ {/if} +

{$p.title}

+ {$p.short_descr} +
+
Expires: {$p.expire_date.date}
+
Pricing: {$p.pricing}
+
+
+ +
+ {/foreach} +
+{/if} diff --git a/views/front/packaging/packagesLinkForMemberDetail.html b/views/front/packaging/packagesLinkForMemberDetail.html new file mode 100644 index 0000000..16a699d --- /dev/null +++ b/views/front/packaging/packagesLinkForMemberDetail.html @@ -0,0 +1,5 @@ +{if $havePackages} +
+ Internal Page Link to Packages +
+{/if}