From e405ecbe3b1b944537ed20fe4e25de8500cae292 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Wed, 3 Jan 2018 09:02:59 -0500 Subject: [PATCH] Add Event Attendee Export and Print Adding option to export the Attendees to html (print) or csv. --- classes/data/dataRegRequestRegistrant.php | 31 ++++++++++++------- models/admin/ajax/registrantsListExport.php | 10 +++--- models/admin/registrations/events.php | 18 +++++++++++ views/admin/ajax/registrantsListExport.html | 12 +++++-- .../admin/ajax/registrantsListExportCsv.html | 18 ++++++----- .../admin/registrations/eventRegistrants.html | 25 +++++++++++++++ 6 files changed, 89 insertions(+), 25 deletions(-) diff --git a/classes/data/dataRegRequestRegistrant.php b/classes/data/dataRegRequestRegistrant.php index 1b9b852..d3fdeb2 100644 --- a/classes/data/dataRegRequestRegistrant.php +++ b/classes/data/dataRegRequestRegistrant.php @@ -335,6 +335,8 @@ class GlmDataRegistrationsRequestRegistrant extends GlmDataAbstract return false; } + $customFieldsPluginActive = apply_filters( 'glm-members-customfields-plugin-active', false ); + // For each registrant foreach ($registrants as $registrantKey=>$registrantVal) { @@ -347,6 +349,23 @@ class GlmDataRegistrationsRequestRegistrant extends GlmDataAbstract } // Try to get any per Event custom field data + if ( $customFieldsPluginActive ) { + $custom_data = array(); + // Check if there's custom field data for this record + $fid = 'glm_reg_customfields_reg_event_attendee_' . $eventId; + $recordId = $registrantVal['id']; + $customData = apply_filters( 'glm-members-customfields-form-data-recall', '', $fid, $recordId, false ); + // echo '
$customData: ' . print_r( $customData, true ) . '
'; + if ( isset( $customData ) && is_array( $customData ) && !empty( $customData ) ) { + $fields = $customData['form']; + foreach ( $fields as $cField ) { + $custom_data[] = array( + $cField['field_name'] => $cField['stored'] + ); + } + $registrants[$registrantKey]['custom_data'] = $custom_data; + } + } // Try to get any per } @@ -355,17 +374,5 @@ class GlmDataRegistrationsRequestRegistrant extends GlmDataAbstract return $listResult; - - - - - - - - - - } } - -?> diff --git a/models/admin/ajax/registrantsListExport.php b/models/admin/ajax/registrantsListExport.php index eccccd6..7599e07 100644 --- a/models/admin/ajax/registrantsListExport.php +++ b/models/admin/ajax/registrantsListExport.php @@ -110,6 +110,10 @@ class GlmMembersAdmin_ajax_registrantsListExport extends GlmDataRegistrationsReq 'exportEmail' => $this->checkFlag('exportEmail'), 'exportPhone' => $this->checkFlag('exportPhone'), 'exportCounty' => $this->checkFlag('exportCounty'), + 'exportLevel' => $this->checkFlag('exportLevel'), + 'exportTime' => $this->checkFlag('exportTime'), + 'exportRate' => $this->checkFlag('exportRate'), + 'exportStatus' => $this->checkFlag('exportStatus'), ); // Get registration event ID if supplied @@ -155,6 +159,8 @@ class GlmMembersAdmin_ajax_registrantsListExport extends GlmDataRegistrationsReq // $list = $this->getList($where, "lname"); $listResult = $this->getFullRegistrantsData($regEventID, $where, 1, false); $list = $listResult['list']; + // echo '
$list: ' . print_r( $list, true ) . '
'; + // exit; // If we have list entries - even if it's an empty list $success = true; @@ -171,16 +177,12 @@ class GlmMembersAdmin_ajax_registrantsListExport extends GlmDataRegistrationsReq // Compile template data $templateData = array( - 'category_data' => $category_data, 'select' => $select, 'haveRegistrants' => $haveRegistrants, 'registrants' => $list, 'registrantCount' => $registrantCount, 'categories' => $categories, 'haveFilter' => $haveFilter, - 'filterArchived' => $filterArchived, - 'filterFeatured' => $filterFeatured, - 'filterPending' => $filterPending, 'numbDisplayed' => $numbDisplayed, 'lastDisplayed' => $lastDisplayed, 'paging' => $paging, diff --git a/models/admin/registrations/events.php b/models/admin/registrations/events.php index e399aff..34c5e71 100644 --- a/models/admin/registrations/events.php +++ b/models/admin/registrations/events.php @@ -206,7 +206,25 @@ class GlmMembersAdmin_registrations_events extends GlmDataRegistrationsRegEvent } } + $customFieldsPluginActive = apply_filters( 'glm-members-customfields-plugin-active', false ); + $listResult = $Registrants->getFullRegistrantsData($regEventID, $where, $start, $limit); + // echo '
$listResult: ' . print_r( $listResult['list'], true ) . '
'; + + $customFields = false; + // Go through the $listResult to pull out the custom fields if available and if plugin is on + if ( $customFieldsPluginActive && $listResult['list'] ) { + foreach ( $listResult['list'] as $row ) { + if ( $row['custom_data'] ) { + foreach ( $row['custom_data'] as $cFields ) { + $customFields[] = array_keys( $cFields ); + } + } + break; + } + } + // echo '
$customFields: ' . print_r( $customFields, true ) . '
'; + // Get count of registrants listed $registrantCount = $listResult['totalCount'];; diff --git a/views/admin/ajax/registrantsListExport.html b/views/admin/ajax/registrantsListExport.html index b1808b3..3235479 100644 --- a/views/admin/ajax/registrantsListExport.html +++ b/views/admin/ajax/registrantsListExport.html @@ -18,9 +18,13 @@ {if $select.exportCity}City{/if} {if $select.exportState}State{/if} {if $select.exportZip}ZIP{/if} - {if $select.exportCounty}County{/if} {if $select.exportEmail}Email{/if} {if $select.exportPhone}Phone{/if} + + {if $select.exportLevel}Level{/if} + {if $select.exportTime}Date/Time{/if} + {if $select.exportRate}Rate{/if} + {if $select.exportStatus}Status{/if} @@ -34,10 +38,14 @@ {if $select.exportCity}{$m.account.city}{/if} {if $select.exportState}{if $m.account.state}{$m.account.state.value}{/if}{/if} {if $select.exportZip}{$m.account.zip}{/if} - {if $select.exportCounty}{if $m.account.county}{$m.account.county.value}{/if}{/if} {if $select.exportEmail}{$m.account.email}{/if} {if $select.exportPhone}{$m.account.phone}{/if} + {if $select.exportLevel}{$m.class_name}{/if} + {if $select.exportTime}{$m.event_time_reformatted}{/if} + {if $select.exportRate}{$m.rate_name}{/if} + {if $select.exportStatus}{$m.request_status_name}{/if} + {/foreach} {else} diff --git a/views/admin/ajax/registrantsListExportCsv.html b/views/admin/ajax/registrantsListExportCsv.html index 311b475..5594ecb 100644 --- a/views/admin/ajax/registrantsListExportCsv.html +++ b/views/admin/ajax/registrantsListExportCsv.html @@ -6,22 +6,26 @@ {if $select.exportCity}"City",{/if} {if $select.exportState}"State",{/if} {if $select.exportZip}"ZIP/Postal",{/if} -{if $select.exportCounty}"County",{/if} -{if $select.exportRegion}"Region",{/if} {if $select.exportEmail}"Email",{/if} -{if $select.exportPhone}"Phone"{/if} +{if $select.exportPhone}"Phone",{/if} +{if $select.exportLevel}"Level",{/if} +{if $select.exportTime}"Date/Time",{/if} +{if $select.exportRate}"Rate",{/if} +{if $select.exportStatus}"Status"{/if} {foreach $registrants as $m} {if $select.exportId}"{$m.id}",{/if} -{if $select.exportRegistrant}"{$m.registrant}",{/if} +{if $select.exportRegistrant}"{$m.fname} {$m.lname}",{/if} {if $select.exportAddr1}"{$m.account.addr1}",{/if} {if $select.exportAddr2}"{$m.account.addr2}",{/if} {if $select.exportCity}"{$m.account.city}",{/if} {if $select.exportState}"{if $m.account.state}{$m.account.state.value}{/if}",{/if} {if $select.exportZip}"{$m.account.zip}",{/if} -{if $select.exportCounty}"{if $m.account.county}{$m.county.account.value}{/if}",{/if} {if $select.exportEmail}"{$m.account.email}",{/if} -{if $select.exportPhone}"{$m.account.phone}"{/if} - +{if $select.exportPhone}"{$m.account.phone}",{/if} +{if $select.exportLevel}"{$m.class_name}",{/if} +{if $select.exportTime}"{$m.event_time_reformatted}",{/if} +{if $select.exportRate}"{$m.rate_name}",{/if} +{if $select.exportStatus}"{$m.request_status_name}"{/if} {/foreach} {else}No {$terms.reg_term_attendee_plur_cap} Selected{/if} diff --git a/views/admin/registrations/eventRegistrants.html b/views/admin/registrations/eventRegistrants.html index 0546dc6..16000b6 100644 --- a/views/admin/registrations/eventRegistrants.html +++ b/views/admin/registrations/eventRegistrants.html @@ -112,9 +112,16 @@ City
State
ZIP/Postal Code
+ + Email
Phone
County
+ Level
+ Date/Time
+ Rate
+ Status
+ @@ -135,18 +142,36 @@ -- 2.17.1