From 1a480f4b59b786953bd23b2fcfd72f8377083b19 Mon Sep 17 00:00:00 2001 From: Steve Sutton Date: Thu, 3 Nov 2016 12:44:25 -0400 Subject: [PATCH] Add amenities and venues to frontAdd form. Adding the amenities as checkboxes. Add function for checking that at least one of them are required. Adding venue list to the front end add event form. --- js/front.js | 28 ++- models/front/events/frontAdd.php | 96 +++++--- views/front/events/frontAdd.html | 410 +++++++++++++++++-------------- 3 files changed, 318 insertions(+), 216 deletions(-) diff --git a/js/front.js b/js/front.js index 09e627b..e7f109f 100644 --- a/js/front.js +++ b/js/front.js @@ -18,13 +18,13 @@ var EventFront = { this.preventDefault(); return false; }); - + // load front end form submission jquery if elements exist if(jQuery("#frontForm").length > 0){ jQuery("#sdate, #edate").datepicker({ - dateFormat: 'mm/dd/yy' + dateFormat: 'mm/dd/yy' }); - + jQuery("#freeEvent").change( function () { if(this.checked){ @@ -62,7 +62,27 @@ var EventFront = { } }); } - } + }, + deRequireCb: function(elClass) { + el=document.getElementsByClassName(elClass); + + var atLeastOneChecked=false;//at least one cb is checked + for (i=0; iwpdb, $this->config ); + $eventAmenities = $amenities->getList(); } if( ! wp_script_is( 'jquery-ui', 'enqueued' ) ){ @@ -139,8 +146,8 @@ class GLmMembersFront_events_frontAdd extends GlmDataEvents } $view = 'frontAdd'; // populate category dropdown - $categories = new GlmDataEventsCategories($this->wpdb, $this->config); - $emailInfo = new GlmDataEventsManagement($this->wpdb, $this->config); + $categories = new GlmDataEventsCategories( $this->wpdb, $this->config ); + $emailInfo = new GlmDataEventsManagement( $this->wpdb, $this->config ); $emailInfo = $emailInfo->getEntry(1); // get and validate recipient email address, put into an array to pass to wp_mail @@ -172,6 +179,7 @@ class GLmMembersFront_events_frontAdd extends GlmDataEvents // if form is submitted if ( isset( $_REQUEST['newEvent'] ) && $_REQUEST['newEvent'] == "Add Event" ) { + // Check to see if the honey pot caught spam. if ( isset( $_REQUEST['real_email'] ) && $_REQUEST['real_email'] ) { $view = 'confirmation'; @@ -382,17 +390,27 @@ class GLmMembersFront_events_frontAdd extends GlmDataEvents '%s', '%s' ); - if ( $memberOnly && $memberContact ) { - $eventData['ref_type'] = $memberContact['ref_type']; - $eventData['ref_dest'] = $memberContact['ref_dest']; - $eventDataFormat[] = '%d'; - $eventDataFormat[] = '%d'; - } - if ( $memberOnly && $ref_dest = filter_var( $_REQUEST['ref_dest'], FILTER_VALIDATE_INT ) ) { - $eventData['ref_type'] = 10; - $eventData['ref_dest'] = $ref_dest; - $eventDataFormat[] = '%d'; - $eventDataFormat[] = '%d'; + if ( $memberOnly ) { + if ( $memberContact ) { + $eventData['ref_type'] = $memberContact['ref_type']; + $eventData['ref_dest'] = $memberContact['ref_dest']; + $eventDataFormat[] = '%d'; + $eventDataFormat[] = '%d'; + } + if ( $ref_dest = filter_var( $_REQUEST['ref_dest'], FILTER_VALIDATE_INT ) ) { + $eventData['ref_type'] = 10; + $eventData['ref_dest'] = $ref_dest; + $eventDataFormat[] = '%d'; + $eventDataFormat[] = '%d'; + } + if ( $other_ref_dest = filter_var( $_REQUEST['other_ref_dest'], FILTER_VALIDATE_INT ) ) { + $eventData['other_ref_dest'] = $other_ref_dest; + $eventDataFormat[] = '%d'; + } + if ( $user_member_location = filter_var( $_REQUEST['use_member_location'], FILTER_VALIDATE_BOOLEAN ) ) { + $eventData['use_member_location'] = $user_member_location; + $eventDataFormat[] = '%s'; + } } $this->wpdb->insert( GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'events', @@ -495,6 +513,19 @@ class GLmMembersFront_events_frontAdd extends GlmDataEvents '%d' ) ); + // Amenity Data + if ( $this->config['settings']['use_event_amenities'] ) { + $amenityRequestData = $_REQUEST['amenity']; + if ( is_array( $amenityRequestData ) && !empty( $amenityRequestData ) ) { + foreach ( $amenityRequestData as $amm ) { + $this->wpdb->insert( + GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'amenity_event', + array( 'event' => $eventID, 'amenity' => $amm ), + array( '%d' ) + ); + } + } + } $smarty = new smartyTemplateSupport(); @@ -559,25 +590,28 @@ class GLmMembersFront_events_frontAdd extends GlmDataEvents $default_state = ( $this->config['settings']['default_state'] ) ? $this->config['settings']['default_state'] : ( $this->config['settings']['event_default_state'] ) ? $this->config['settings']['event_default_state']: 'MI'; + // Compile template data $templateData = array( - 'members' => $members, - 'memberManager' => $memberManager, - 'memberOnly' => $memberOnly, - 'memberContact' => $memberContact, - 'states' => $this->config['states'], - 'state_def' => $default_state, - 'siteBaseUrl' => GLM_MEMBERS_EVENTS_SITE_BASE_URL, - 'currentUrl' => ((isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''), - 'categories' => $eventCategories, - 'fromDate' => $fromDate, - 'event' => $newEvent, - 'permalink' => $permalink, - 'title' => $title, - 'to_email' => $to_email, - 'from_email' => $fromEmail, - 'notification' => $emailNotification, - 'mainImgUrl' => GLM_MEMBERS_PLUGIN_MEDIA_URL . '/images/large/' + 'members' => $members, + 'venues' => $venues, + 'eventAmenities' => $eventAmenities, + 'memberManager' => $memberManager, + 'memberOnly' => $memberOnly, + 'memberContact' => $memberContact, + 'states' => $this->config['states'], + 'state_def' => $default_state, + 'siteBaseUrl' => GLM_MEMBERS_EVENTS_SITE_BASE_URL, + 'currentUrl' => ((isset($_SERVER['HTTP_REFERER']) && $_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''), + 'categories' => $eventCategories, + 'fromDate' => $fromDate, + 'event' => $newEvent, + 'permalink' => $permalink, + 'title' => $title, + 'to_email' => $to_email, + 'from_email' => $fromEmail, + 'notification' => $emailNotification, + 'mainImgUrl' => GLM_MEMBERS_PLUGIN_MEDIA_URL . '/images/large/' ); //error_reporting(E_ALL ^ E_NOTICE); diff --git a/views/front/events/frontAdd.html b/views/front/events/frontAdd.html index 4effe9e..c83977e 100644 --- a/views/front/events/frontAdd.html +++ b/views/front/events/frontAdd.html @@ -4,8 +4,8 @@
{if $memberOnly && $memberContact} - - + + {/if} @@ -13,17 +13,30 @@ {if $memberManager} - - - - + + + + + {/if} + {if $memberOnly} + + + + {/if} @@ -31,6 +44,18 @@ + {if $memberOnly && $settings.use_event_amenities} + + + + + {/if} @@ -52,29 +77,29 @@ @@ -82,29 +107,29 @@ @@ -136,61 +161,59 @@ - - - - + {if !$memberOnly} + + + + + {/if} @@ -206,8 +229,9 @@ + {debug} - + - - - - - - - - - - - - - - - - - - - - + {if $memberOnly} + + + + + + + + + {else} + + + + + + + + + + + + + + + + + + + + + {/if} @@ -336,38 +389,33 @@ -
Member - -
Member + +
Categories + +
Event Name:
{$settings.term_event_amenities_plural}: (Check all that apply) + {foreach $eventAmenities as $amenity} + {/foreach} +
Start Date Start Time  :  
End Time  :  
- - - - - - - - - - - - - - - -
Categories - - + + + + + + + + + + + + + +
Categories + +
Web Address (URL): -
Intro Text: -
Description:Description: {php} wp_editor('{$event.fieldData.descr|escape:quotes}', 'glm_descr', array( @@ -226,82 +250,111 @@ Image: - {if $event.fieldData.image} - - - - - {/if} + {if $event.fieldData.image} + + + + + {/if}
-
- -
-
- Delete Image
- {$event.fieldData.image}
-
+
+ +
+
+ Delete Image
+ {$event.fieldData.image}
+
New image:
- - - - - -
- - - -
- - - -
State: - -
- - - -
+ +
Venue + + + + + + + + +
+ + + + + +
+ + + +
+ + + +
State: + +
+ + + +
- - - + +
- + @@ -309,26 +362,26 @@
- + - +
- + - +
- + - +
- +
- - + - +
- + - +
- + - +
- - +
- - -- 2.17.1