/** * Initialisation method * @return NULL */ public function init() { // Only run when Admin page is loaded if (Input::uri(false) == '/wp-admin/admin.php' && Input::request('page') == 'membership-reporting') { $templateData = \CPFCMembers\TemplateData::getInstance(); $form = \CPFCMembers\ReportingFilter::getInstance(); $export = Input::post('cpfc_filter_export') || Input::post('cpfc_filter_see_tickets_account_holder_export') || Input::post('cpfc_logged_in_filter_export'); $filterResultsSample = false; $filterResultsCount = false; $exportLink = ''; $dataType = ''; // Define which tab to show in admin switch (true) { case Input::post('cpfc_logged_in_filter_submit'): $showTab = '2'; break; case Input::post('cpfc_filter_see_tickets_account_holder_submit'): $showTab = '1'; break; default: $showTab = '0'; } if (Input::request('cpfc_member_export')) { $this->memberExport(); } elseif (Input::request('cpfc_login_export')) { $this->loginExport(); } elseif (Input::isPost()) { $form->setValues(Input::post()); $form->validate(); if ($form->isValid()) { $whereConditions = array(); $whereConditionsFriendly = array(); switch (true) { case Input::post('cpfc_filter_member_submit'): case Input::post('cpfc_filter_member_export'): case Input::post('cpfc_filter_see_tickets_account_holder_submit'): case Input::post('cpfc_filter_see_tickets_account_holder_export'): list($whereConditions, $whereConditionsFriendly) = $this->buildWhereConditions(); $filterResultsSample = $this->fetchRegistrations($whereConditions, 0, $export ? false : $this->_sampleCount); $filterResultsCount = $this->fetchRegistrations($whereConditions, 0, false, 'count'); $exportLink = home_url(CPFC_MEMBERS_REPORTING_ADMIN_URL, CPFC_MEMBERS_HTTP_MODE) . '&' . http_build_query(Input::post() + array('cpfc_member_export'=>true)); $dataType = 'member'; break; case Input::post('cpfc_logged_in_filter_submit'): case Input::post('cpfc_logged_in_filter_export'): list($whereConditions, $whereConditionsFriendly) = $this->buildWhereConditions(); $filterResultsSample = $this->fetchLogins($whereConditions, 0, $export ? false : $this->_sampleCount); $filterResultsCount = $this->fetchLogins($whereConditions, 0, false, 'count'); $exportLink = home_url(CPFC_MEMBERS_REPORTING_ADMIN_URL, CPFC_MEMBERS_HTTP_MODE) . '&' . http_build_query(Input::post() + array('cpfc_login_export'=>true)); $dataType = 'logins'; break; default: // Reset wp_redirect(home_url(CPFC_MEMBERS_REPORTING_ADMIN_URL, CPFC_MEMBERS_HTTP_MODE), 301); exit(); } } } else { $form->setValues($this->defaultFilters); } $templateData->set('exportLink', $exportLink); $templateData->set('filterResultsCount', $filterResultsCount); $templateData->set('filterResultsSample', $filterResultsSample); $templateData->set('atAGlanceData', $this->fetchAtAGlance()); $templateData->set('whereConditionsFriendly', $whereConditionsFriendly); $templateData->set('dataType', $dataType); $templateData->set('showTab', $showTab); } }
/** * Data Capture */ protected function _dataCapture() { $details = Input::request('details', false); $templateData = \CPFCMembers\TemplateData::getInstance(); $User = \CPFCMembers\Auth::getUser(); $template = ''; $status = ''; // Can't access if not logged in as Member if (\CPFCMembers\Auth::isLoggedIn()) { switch($details) { case 'address': $form = \CPFCMembers\DataCaptureAddressForm::getInstance(); $template = 'partials/data_capture/address_form'; break; case 'contact': $form = \CPFCMembers\DataCaptureContactForm::getInstance(); $template = 'partials/data_capture/contact_form'; break; case 'preferences': $form = \CPFCMembers\DataCapturePreferencesForm::getInstance(); $template = 'partials/data_capture/preferences_form'; break; case 'see_tickets': $form = \CPFCMembers\DataCaptureSeeTicketsForm::getInstance(); $template = 'partials/data_capture/see_tickets_form'; break; default: $status = 'INVALID_DETAIL'; $template = 'partials/data_capture/error'; $templateData->set('error_type', 'invalid_form_chosen'); } $notification = \CPFCMembers\MemberNotificationModel::loadByUserIdAndDetail($User->getId(), $details); if ($notification->getStatus() == 'complete') { $status = 'ALREADY_COMPLETED'; $template = 'partials/data_capture/error'; $templateData->set('error_type', 'already_completed'); } } else { $status = 'NOT_LOGGED_IN'; $template = 'partials/data_capture/error'; $templateData->set('error_type', 'not_logged_in'); } if ($status == '') { if (Input::isPost()) { $form->setValues(Input::post()); $form->validate(); if ($form->isValid()) { switch($details) { case 'address': $User->setHouseNameNumber(Input::post('house_name_number')); $User->setStreet(Input::post('street')); $User->setTown(Input::post('town')); $User->setCounty(Input::post('county')); $User->setPostcode(Input::post('postcode')); $User->setCountry(Input::post('country')); break; case 'contact': $User->setMobilePhone(Input::post('mobile_phone')); $User->setDaytimePhone(Input::post('daytime_phone')); break; case 'preferences': $User->setPreferenceRegularNewsletter(Input::post('preference_regular_newsletter')); $User->setPreferenceBreakingNews(Input::post('preference_breaking_news')); $User->setPreferencePartners(Input::post('preference_partners')); $User->setPreferenceSMS(Input::post('preference_sms')); break; case 'see_tickets': $User->setSeeTicketsAccountNumber(Input::post('see_tickets_account_number')); break; } if ($User->save(true)) { $status = 'SUCCESS'; $notification->setUserId($User->getId()) ->setDetail($details) ->setStatus('complete'); $notification->save(true); } else { $status = 'NOT_SAVED'; $template = 'partials/data_capture/error'; } } } else { $form->setValues($User->toArray(false, false)); } } $templateData->set('template', $template); $templateData->set('status', $status); $templateData->set('message', $message); }