Add new db fields for county.
Add new db fields for search options.
WIP for event form.
'use' => 'a'
),
+ // County - References main plugin county table
+ 'county' => array (
+ 'field' => 'county',
+ 'type' => 'pointer',
+ 'p_table' => GLM_MEMBERS_PLUGIN_DB_PREFIX . 'counties',
+ 'p_field' => 'name',
+ 'p_orderby' => 'name',
+ 'p_blank' => false,
+ 'force_list' => true,
+ 'use' => 'a'
+ ),
+
// Country
'country' => array (
'field' => 'country',
'use' => 'a'
),
+ // Show category in search form
+ 'show_search_category' => array(
+ 'field' => 'show_search_category',
+ 'type' => 'checkbox',
+ 'default' => false,
+ 'use' => 'a'
+ ),
+
// Show region in search form
'show_search_region' => array(
'field' => 'show_search_region',
'use' => 'a'
),
+ // Show county in search form
+ 'show_search_county' => array(
+ 'field' => 'show_search_county',
+ 'type' => 'checkbox',
+ 'default' => false,
+ 'use' => 'a'
+ ),
// Turn on required fields for Michigan.org
'michigan_org_requirements' => array(
'field' => 'michigan_org_requirements',
* version from this plugin.
*/
define('GLM_MEMBERS_EVENTS_PLUGIN_VERSION', '1.7.19');
-define('GLM_MEMBERS_EVENTS_PLUGIN_DB_VERSION', '0.1.13');
+define('GLM_MEMBERS_EVENTS_PLUGIN_DB_VERSION', '0.1.14');
// This is the minimum version of the GLM Members DB plugin require for this plugin.
define('GLM_MEMBERS_EVENTS_PLUGIN_MIN_MEMBERS_REQUIRED_VERSION', '2.9.15');
// since we're doing paging, we have to break out just the events data
$events = $eventsResult['list'];
- if (count($events)>0) {
+ if ( is_array( $events ) && !empty( $events ) && count($events) > 0 ) {
$haveEvents = true;
}
unset($eventsResult);
$eventsByDate = null;
$categoryId = null;
$categories = array();
+ $counties = array();
$amenityId = null;
$amenities = array();
$memberId = null;
LEFT OUTER JOIN " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "locations EL ON ( EL.city = C1.id )
LEFT OUTER JOIN " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events E ON ( E.id = EL.event )
WHERE E.use_member_location <> true
+ AND E.id IN (
+ SELECT event
+ FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times ET
+ WHERE E.status = " . $this->config['status_numb']['Active'] . "
+ AND " . $this->dateRange . "
+ )
UNION
SELECT C2.id,C2.name
FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "cities C2
LEFT OUTER JOIN " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info MI ON ( MI.city = C2.id )
LEFT OUTER JOIN " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events E ON ( E.ref_dest = MI.member )
WHERE E.use_member_location = true
+ AND E.id IN (
+ SELECT event
+ FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times ET
+ WHERE E.status = " . $this->config['status_numb']['Active'] . "
+ AND " . $this->dateRange . "
+ )
ORDER BY name";
$cityData = $this->wpdb->get_results( $citySql, ARRAY_A );
LEFT OUTER JOIN " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "locations EL ON ( EL.region = C1.id )
LEFT OUTER JOIN " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events E ON ( E.id = EL.event )
WHERE E.use_member_location <> true
+ AND E.id IN (
+ SELECT event
+ FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times ET
+ WHERE E.status = " . $this->config['status_numb']['Active'] . "
+ AND " . $this->dateRange . "
+ )
UNION
SELECT C2.id,C2.name
FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "regions C2
LEFT OUTER JOIN " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info MI ON ( MI.region = C2.id )
LEFT OUTER JOIN " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events E ON ( E.ref_dest = MI.member )
WHERE E.use_member_location = true
+ AND E.id IN (
+ SELECT event
+ FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times ET
+ WHERE E.status = " . $this->config['status_numb']['Active'] . "
+ AND " . $this->dateRange . "
+ )
ORDER BY name";
$regionData = $this->wpdb->get_results( $regionSql, ARRAY_A );
} else {
$eventNameSearch = false;
}
+ // Setup counties for search
+ if ( $this->config['settings']['enable_counties'] ) {
+ // Get list of counties to search by
+ $countySql = "
+ SELECT C1.id,C1.name
+ FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "counties C1
+ LEFT OUTER JOIN " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "locations EL ON ( EL.county = C1.id )
+ LEFT OUTER JOIN " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events E ON ( E.id = EL.event )
+ WHERE E.use_member_location <> true
+ AND E.id IN (
+ SELECT event
+ FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times ET
+ WHERE E.status = " . $this->config['status_numb']['Active'] . "
+ AND " . $this->dateRange . "
+ )
+ UNION
+ SELECT C2.id,C2.name
+ FROM " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "counties C2
+ LEFT OUTER JOIN " . GLM_MEMBERS_PLUGIN_DB_PREFIX . "member_info MI ON ( MI.county = C2.id )
+ LEFT OUTER JOIN " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events E ON ( E.ref_dest = MI.member )
+ WHERE E.use_member_location = true
+ AND E.id IN (
+ SELECT event
+ FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times ET
+ WHERE E.status = " . $this->config['status_numb']['Active'] . "
+ AND " . $this->dateRange . "
+ )
+ ORDER BY name";
+ $countyData = $this->wpdb->get_results( $countySql, ARRAY_A );
+ }
$categories = $this->getCategories();
if ( isset($categories) && is_array($categories)) {
'amenities' => $amenities,
'memberId' => $memberId,
'cities' => $cityData,
+ 'counties' => $countyData,
'regions' => $regionData,
'cityId' => $cityId,
'regionId' => $regionId,
+++ /dev/null
--- Gaslight Media Members Database - Events Add-On
--- File Created: 08/18/17
--- Database Version: 0.1.13
--- Database Creation Script
---
--- This file is called to create a new set of tables for this
--- add-on for the most recent database version for this add-on.
---
--- There should only be one such file in this directory
---
--- To permit each query below to be executed separately,
--- all queries must be separated by a line with four dashes
-
-
--- Amenities
-CREATE TABLE {prefix}amenities (
- id INT NOT NULL AUTO_INCREMENT,
- active TINYINT(1) NULL, -- Amenity is active flag
- name TINYTEXT NULL, -- Name of amenity
- descr TEXT NULL, -- Description of amenity
- short_descr TINYTEXT NULL, -- Short description of amenity
- uses_value BOOLEAN NULL, -- Flag indicating whether the amenity requires a quantity number
- PRIMARY KEY (id),
- INDEX(name(20))
-);
-
-----
-
--- Amenity Reference - Links a specific amenity to a specific entity of type ref_type
-CREATE TABLE {prefix}amenity_event (
- id INT NOT NULL AUTO_INCREMENT,
- amenity INT NULL,
- event INT NULL,
- PRIMARY KEY (id),
- INDEX(event)
-);
-
-----
-
--- groups
-CREATE TABLE {prefix}amenity_groups (
- id INT NOT NULL AUTO_INCREMENT,
- name TINYTEXT NULL, -- Name of the Group
- PRIMARY KEY (id),
- INDEX(name(20))
-);
-
-----
-
--- Amenity Group - Links a specific amenity to groups
-CREATE TABLE {prefix}grouped_amenities (
- id INT NOT NULL AUTO_INCREMENT,
- group_id INT, -- Pointer to the group
- amenity_id INT, -- Pointer to the Amenity
- searchable BOOLEAN DEFAULT '0', -- Flag indicating whether the amenity group will show in the search form
- PRIMARY KEY (id)
-);
-
-----
-
--- Categories - Categories for events
-CREATE TABLE {prefix}categories (
- id INT NOT NULL AUTO_INCREMENT,
- name TINYTEXT NULL, -- Name of event category
- descr TINYTEXT NULL, -- Description of this category
- parent INT NULL, -- Parent category, null or 0 if this is a top level category
- PRIMARY KEY (id),
- INDEX(parent)
-);
-
-----
-
--- Event-Category - Categories for specific event records
-CREATE TABLE {prefix}event_categories (
- id INT NOT NULL AUTO_INCREMENT,
- event INT NULL, -- Pointer to the event
- category INT NULL, -- Pointer to the category
- PRIMARY KEY (id),
- INDEX(event),
- INDEX(category)
-);
-
-----
-
--- Event Recurrence - Defines how an event recurs
-CREATE TABLE {prefix}recurrences (
- id INT NOT NULL AUTO_INCREMENT,
- event INTEGER NULL, -- Pointer to event
- name TINYTEXT NULL, -- Name of this recurrence schedule - used on admin calendar
- start_time TIME NULL, -- Start time of day for event
- start_time_only BOOLEAN NULL, -- Use end of first occurrence flag
- end_time TIME NULL, -- End time of day for event - If less than start time, assume a date boundry
- all_day BOOLEAN NULL, -- Flag indicating if this is an all-day event (informational only)
- start_date DATE NULL, -- Starting Date (if all_day is selected) Used instead of start_time
- from_date DATE NULL, -- From Date for recurrences
- to_date DATE NULL, -- To Date for recurrences
- recurring BOOLEAN NULL, -- Flag indicating that event recurs on a schedule rather than all dates
- month_of_year SMALLINT UNSIGNED NULL, -- Month of year (bitmap)
- week_of_month TINYINT UNSIGNED NULL, -- Week of the month (bitmap)
- day_of_week TINYINT UNSIGNED NULL, -- Day of the week (bitmap)
- by_day_of_month BOOLEAN NULL, -- Flag indicating if selecting by days of the month
- day_of_month INTEGER UNSIGNED NULL, -- Day of the month (bitmap)
- last_day_of_month BOOLEAN NULL, -- Last day of the month
- specific_dates TEXT NULL, -- Serialized array of specific dates added to the recurrence
- holiday INT NULL, -- Pointer to holidays list (for future development)
- holiday_offset TINYINT, -- Offset from holiday (from -128 to +127 days)
- PRIMARY KEY (id),
- INDEX(event)
-);
-
-----
-
--- Times - List of actual event times for single and recurring events
-CREATE TABLE {prefix}times (
- id INT NOT NULL AUTO_INCREMENT,
- event INT NULL, -- Pointer to the primary record for the event
- custom_event INT NULL, -- Pointer to a customized copy of the event record (if set)
- recur_id INT NULL, -- Pointer to recurrence entry
- active BOOLEAN NULL, -- Active flag - normally set but used to temporarily disable a specific date
- start_time DATETIME NULL, -- Date and time event starts
- end_time DATETIME NULL, -- Date and time event ends
- all_day BOOLEAN NULL, -- All Day flag
- PRIMARY KEY (id),
- INDEX(event),
- INDEX(start_time),
- INDEX(end_time)
-);
-
-----
-
--- Locations - Locations for event - If there's no location pointing to an event try to use the referenced entity in events table
-CREATE TABLE {prefix}locations (
- id INT NOT NULL AUTO_INCREMENT,
- event INT NULL, -- Pointer to the primary or custom event record
- name TINYTEXT NULL, -- Name of location
- address TINYTEXT NULL, -- Street Address
- city INT NULL, -- Pointer to city - references main plugin city table
- state TINYTEXT NULL, -- Two character state abbreviation
- zip TINYTEXT NULL, -- ZIP/Postal code
- country TINYTEXT NULL, -- Country Code
- lat FLOAT NULL, -- Latitude of location
- lon FLOAT NULL, -- Longitude of location
- region INT NULL, -- Pointer to Region - references main plugin region table
- phone TINYTEXT NULL, -- Location Phone #
- url TINYTEXT NULL, -- Location URL
- email TINYTEXT NULL, -- Location E-Mail Address
- contact_addon_id INT NULL, -- ID of Contact from contact add-on (optional and if available)
- contact_fname TINYTEXT NULL, -- Contact first name for this location (optional)
- contact_lname TINYTEXT NULL, -- Contact last name for this location (optional)
- contact_phone TINYTEXT NULL, -- Contact phone for this location (optional)
- contact_email TINYTEXT NULL, -- Contact E-Mail address (optional)
- PRIMARY KEY (id)
-);
-
-----
-
--- Events - Base event information - May also be entries here referenced by the "times" table for a custom date.
-CREATE TABLE {prefix}events (
- id INT NOT NULL AUTO_INCREMENT,
- status INT NULL, -- Status for this event, see config['status']
- custom_time INT NULL, -- If this is a custom record for a specific instance (date) this points to that times table entry
- root_event INT NULL, -- Root event pointer if this is a custom record for a specific instance (date) (if custom_time is set)
- created DATETIME NULL, -- Date/Time event was created or date custom event record was created if custom record
- updated DATETIME NULL, -- Date/Time this event record was last updated
- approved DATETIME NULL, -- Date/Ttime this event record was approved
- ref_type INT NULL, -- Type of entity this event is associated with - See config['ref_type']
- ref_dest INT NULL, -- Pointer to the specific entity of ref_type this event is associated with
- hide_address BOOLEAN NULL, -- Option to hide address on front-end
- featured BOOLEAN NULL, -- Option to mark as featured event
- slideshow BOOLEAN NULL, -- Option to mark for use in slide show
- major BOOLEAN NULL, -- Option to mark as a major event
- name TINYTEXT NULL, -- Name of this event
- name_slug TINYTEXT NULL, -- Slug for this event
- header TINYTEXT NULL, -- Header text for front-end display - NOT CURRENTLY USED
- intro TINYTEXT NULL, -- Intro text for front-end display
- descr TEXT NULL, -- Full description text
- image TINYTEXT NULL, -- Image file name
- file1 TINYTEXT NULL, -- File name for a single uploaded file #1
- file1_descr TINYTEXT NULL, -- Description for file uploaded in field "file" #1
- file2 TINYTEXT NULL, -- File name for a single uploaded file #2
- file2_descr TINYTEXT NULL, -- Description for file uploaded in field "file" #2
- file3 TINYTEXT NULL, -- File name for a single uploaded file #3
- file3_descr TINYTEXT NULL, -- Description for file uploaded in field "file" #3
- url TINYTEXT NULL, -- Event URL
- ticket_url TINYTEXT NULL, -- Ticket URL
- registration_url TINYTEXT NULL, -- Registration URL
- cost TINYTEXT NULL, -- Description of event cost
- admin_ref_type INT NULL, -- Type of admin contact if using a member contact
- admin_ref_dest INT NULL, -- Pointer to admin contact record if using a member contact
- admin_name TINYTEXT NULL, -- Admin Contact Name if not using a member contact
- admin_org TINYTEXT NULL, -- Admin Contact Organization if not using a member contact
- admin_email TINYTEXT NULL, -- Admin Contact E-Mail if not using a member contact
- admin_phone TINYTEXT NULL, -- Admin Contact Phone if not using a member contact
- free BOOLEAN NULL, -- Event is Free
- contact_email TINYTEXT NULL, -- Contact E-mail address
- contact_name TINYTEXT NULL, -- Contact name
- contact_phone TINYTEXT NULL, -- Event Phone
- use_member_location BOOLEAN NULL, -- Use location of the member (if provided) rather than location table data
- other_ref_dest INT NULL, -- Set location of the event to another member
- old_event_id INT NULL, -- ID of event from old site for reference
- ical_uid TINYTEXT NULL, -- The ical UID for this event.
- notes TEXT NULL, -- Internal notes for this event
- PRIMARY KEY (id),
- INDEX(custom_time),
- INDEX(root_event),
- INDEX(ref_type),
- INDEX(ref_dest),
- INDEX(featured),
- INDEX(slideshow),
- INDEX(major)
-);
-
-----
-
--- Event Management Settings
-CREATE TABLE {prefix}management (
- id INT NOT NULL AUTO_INCREMENT,
- canonical_event_page TINYTEXT NULL, -- Canonical page slug for event detail
- pdf_logo TINYTEXT NULL, -- Image for the Top of the PDF
- footer_text TINYTEXT NULL, -- Image for the Top of the PDF
- to_email TINYTEXT NULL, -- Email address of the recipient
- from_email TINYTEXT NULL, -- Email address of the sender
- email_notification TEXT NULL, -- Email notification message
- calendar_view TINYTEXT NULL, -- Default calendar view
- event_default_state TINYTEXT NULL, -- Default calendar view
- term_event_amenities_singular TINYTEXT NULL, -- Singular term to use for event amenities
- term_event_amenities_plural TINYTEXT NULL, -- Plural term to use for event amenities
- use_event_amenities BOOLEAN NULL, -- Whether amenities are used at all for events
- use_venue_locations BOOLEAN NULL, -- To use Other members as the location of event
- member_events_allowed BOOLEAN NULL, -- If members are allowed to add events.
- member_events_moderated BOOLEAN DEFAULT '0', -- If member edits are moderated.
- non_moderated_status_default INTEGER DEFAULT 20, -- Non Moderated Member Default Event Status
- ical_feed_image_size TINYTEXT NULL, -- Image size to use in iCal Feed
- event_display_member_message BOOLEAN DEFAULT '0', -- Boolean to show member message or not
- event_member_message TEXT NULL, -- Member Message
- event_add_button_color TINYTEXT NULL, -- Color of the search button
- event_add_button_hidden BOOLEAN NULL, -- Option to hide the add event button
- event_back_to_search_color TINYTEXT NULL, -- Background Color of the search
- default_agenda_view TINYTEXT NULL, -- Default view file for agenda views
- agenda_date_background_color TINYTEXT NULL, -- Background Color of the date
- agenda_date_text_color TINYTEXT NULL, -- Text Color of the date
- agenda_title_color TINYTEXT NULL, -- Color of the Event Title
- agenda_container_background_color TINYTEXT NULL, -- Event Container Background Color
- agenda_container_border_color TINYTEXT NULL, -- Event Container Border Color
- agenda_view_max_width TINYTEXT NULL, -- Max Width of agenda view
- detail_ext_links_same_window BOOLEAN DEFAULT '0', -- Turn on to keep from adding target blank to detail page url's
- michigan_org_requirements BOOLEAN DEFAULT '0', -- Turn on required fields for Michigan.org
- sort_by_featured_in_agenda BOOLEAN DEFAULT '0', -- Sort by the featured events in agenda view
- show_search_city BOOLEAN DEFAULT '0', -- Show city in search form
- show_search_region BOOLEAN DEFAULT '0', -- Show region in search form
- PRIMARY KEY (id)
-);
-
-----
-
--- Set default event management entry
-INSERT INTO {prefix}management
- ( id, canonical_event_page, term_event_amenities_singular, term_event_amenities_plural, member_events_allowed, ical_feed_image_size, event_display_member_message, event_member_message, default_agenda_view )
- VALUES
- ( 1, 'event-detail', 'Amenity', 'Amenities', 1, 'large', 0, '', 'agenda')
-;
-
-----
-
--- Event iCal Feed imports
-CREATE TABLE {prefix}feed_import (
- id INT NOT NULL AUTO_INCREMENT,
- feed_url TEXT NOT NULL, -- The ical feed url to import
- created DATETIME NULL, -- The date this feed was created
- updated DATETIME NULL, -- Last time this feed was updated
- duration INT NULL, -- The time it took to fetch the feed
- events INT NULL, -- The number of events last fetched
- PRIMARY KEY (id)
-);
-
-----
-
--- Event Email Notifications
-CREATE TABLE {prefix}email_notifications (
- id INT NOT NULL AUTO_INCREMENT,
- declined_message TEXT NULL, -- Event declined message
- approved_message TEXT NULL, -- Event approved message
- to_email TINYTEXT NULL, -- To Email Address
- from_email TINYTEXT NULL, -- From Email Address
- email_notification TEXT NULL, -- Email notification message
- PRIMARY KEY (id)
-);
-
-----
-
--- Set default event email settings
-INSERT INTO {prefix}email_notifications
- ( id, declined_message, approved_message )
- VALUES
- ( 1, 'The Event parameters do not comply with our event guidelines.', 'Your event has been approved.' )
-;
--- /dev/null
+-- Gaslight Media Members Database - Events Add-On
+-- File Created: 08/18/17
+-- Database Version: 0.1.13
+-- Database Creation Script
+--
+-- This file is called to create a new set of tables for this
+-- add-on for the most recent database version for this add-on.
+--
+-- There should only be one such file in this directory
+--
+-- To permit each query below to be executed separately,
+-- all queries must be separated by a line with four dashes
+
+
+-- Amenities
+CREATE TABLE {prefix}amenities (
+ id INT NOT NULL AUTO_INCREMENT,
+ active TINYINT(1) NULL, -- Amenity is active flag
+ name TINYTEXT NULL, -- Name of amenity
+ descr TEXT NULL, -- Description of amenity
+ short_descr TINYTEXT NULL, -- Short description of amenity
+ uses_value BOOLEAN NULL, -- Flag indicating whether the amenity requires a quantity number
+ PRIMARY KEY (id),
+ INDEX(name(20))
+);
+
+----
+
+-- Amenity Reference - Links a specific amenity to a specific entity of type ref_type
+CREATE TABLE {prefix}amenity_event (
+ id INT NOT NULL AUTO_INCREMENT,
+ amenity INT NULL,
+ event INT NULL,
+ PRIMARY KEY (id),
+ INDEX(event)
+);
+
+----
+
+-- groups
+CREATE TABLE {prefix}amenity_groups (
+ id INT NOT NULL AUTO_INCREMENT,
+ name TINYTEXT NULL, -- Name of the Group
+ PRIMARY KEY (id),
+ INDEX(name(20))
+);
+
+----
+
+-- Amenity Group - Links a specific amenity to groups
+CREATE TABLE {prefix}grouped_amenities (
+ id INT NOT NULL AUTO_INCREMENT,
+ group_id INT, -- Pointer to the group
+ amenity_id INT, -- Pointer to the Amenity
+ searchable BOOLEAN DEFAULT '0', -- Flag indicating whether the amenity group will show in the search form
+ PRIMARY KEY (id)
+);
+
+----
+
+-- Categories - Categories for events
+CREATE TABLE {prefix}categories (
+ id INT NOT NULL AUTO_INCREMENT,
+ name TINYTEXT NULL, -- Name of event category
+ descr TINYTEXT NULL, -- Description of this category
+ parent INT NULL, -- Parent category, null or 0 if this is a top level category
+ PRIMARY KEY (id),
+ INDEX(parent)
+);
+
+----
+
+-- Event-Category - Categories for specific event records
+CREATE TABLE {prefix}event_categories (
+ id INT NOT NULL AUTO_INCREMENT,
+ event INT NULL, -- Pointer to the event
+ category INT NULL, -- Pointer to the category
+ PRIMARY KEY (id),
+ INDEX(event),
+ INDEX(category)
+);
+
+----
+
+-- Event Recurrence - Defines how an event recurs
+CREATE TABLE {prefix}recurrences (
+ id INT NOT NULL AUTO_INCREMENT,
+ event INTEGER NULL, -- Pointer to event
+ name TINYTEXT NULL, -- Name of this recurrence schedule - used on admin calendar
+ start_time TIME NULL, -- Start time of day for event
+ start_time_only BOOLEAN NULL, -- Use end of first occurrence flag
+ end_time TIME NULL, -- End time of day for event - If less than start time, assume a date boundry
+ all_day BOOLEAN NULL, -- Flag indicating if this is an all-day event (informational only)
+ start_date DATE NULL, -- Starting Date (if all_day is selected) Used instead of start_time
+ from_date DATE NULL, -- From Date for recurrences
+ to_date DATE NULL, -- To Date for recurrences
+ recurring BOOLEAN NULL, -- Flag indicating that event recurs on a schedule rather than all dates
+ month_of_year SMALLINT UNSIGNED NULL, -- Month of year (bitmap)
+ week_of_month TINYINT UNSIGNED NULL, -- Week of the month (bitmap)
+ day_of_week TINYINT UNSIGNED NULL, -- Day of the week (bitmap)
+ by_day_of_month BOOLEAN NULL, -- Flag indicating if selecting by days of the month
+ day_of_month INTEGER UNSIGNED NULL, -- Day of the month (bitmap)
+ last_day_of_month BOOLEAN NULL, -- Last day of the month
+ specific_dates TEXT NULL, -- Serialized array of specific dates added to the recurrence
+ holiday INT NULL, -- Pointer to holidays list (for future development)
+ holiday_offset TINYINT, -- Offset from holiday (from -128 to +127 days)
+ PRIMARY KEY (id),
+ INDEX(event)
+);
+
+----
+
+-- Times - List of actual event times for single and recurring events
+CREATE TABLE {prefix}times (
+ id INT NOT NULL AUTO_INCREMENT,
+ event INT NULL, -- Pointer to the primary record for the event
+ custom_event INT NULL, -- Pointer to a customized copy of the event record (if set)
+ recur_id INT NULL, -- Pointer to recurrence entry
+ active BOOLEAN NULL, -- Active flag - normally set but used to temporarily disable a specific date
+ start_time DATETIME NULL, -- Date and time event starts
+ end_time DATETIME NULL, -- Date and time event ends
+ all_day BOOLEAN NULL, -- All Day flag
+ PRIMARY KEY (id),
+ INDEX(event),
+ INDEX(start_time),
+ INDEX(end_time)
+);
+
+----
+
+-- Locations - Locations for event - If there's no location pointing to an event try to use the referenced entity in events table
+CREATE TABLE {prefix}locations (
+ id INT NOT NULL AUTO_INCREMENT,
+ event INT NULL, -- Pointer to the primary or custom event record
+ name TINYTEXT NULL, -- Name of location
+ address TINYTEXT NULL, -- Street Address
+ city INT NULL, -- Pointer to city - references main plugin city table
+ state TINYTEXT NULL, -- Two character state abbreviation
+ zip TINYTEXT NULL, -- ZIP/Postal code
+ country TINYTEXT NULL, -- Country Code
+ county INT NULL, -- Reference to county table
+ lat FLOAT NULL, -- Latitude of location
+ lon FLOAT NULL, -- Longitude of location
+ region INT NULL, -- Pointer to Region - references main plugin region table
+ phone TINYTEXT NULL, -- Location Phone #
+ url TINYTEXT NULL, -- Location URL
+ email TINYTEXT NULL, -- Location E-Mail Address
+ contact_addon_id INT NULL, -- ID of Contact from contact add-on (optional and if available)
+ contact_fname TINYTEXT NULL, -- Contact first name for this location (optional)
+ contact_lname TINYTEXT NULL, -- Contact last name for this location (optional)
+ contact_phone TINYTEXT NULL, -- Contact phone for this location (optional)
+ contact_email TINYTEXT NULL, -- Contact E-Mail address (optional)
+ PRIMARY KEY (id),
+ INDEX(event),
+ INDEX(city),
+ INDEX(county),
+ INDEX(region)
+);
+
+----
+
+-- Events - Base event information - May also be entries here referenced by the "times" table for a custom date.
+CREATE TABLE {prefix}events (
+ id INT NOT NULL AUTO_INCREMENT,
+ status INT NULL, -- Status for this event, see config['status']
+ custom_time INT NULL, -- If this is a custom record for a specific instance (date) this points to that times table entry
+ root_event INT NULL, -- Root event pointer if this is a custom record for a specific instance (date) (if custom_time is set)
+ created DATETIME NULL, -- Date/Time event was created or date custom event record was created if custom record
+ updated DATETIME NULL, -- Date/Time this event record was last updated
+ approved DATETIME NULL, -- Date/Ttime this event record was approved
+ ref_type INT NULL, -- Type of entity this event is associated with - See config['ref_type']
+ ref_dest INT NULL, -- Pointer to the specific entity of ref_type this event is associated with
+ hide_address BOOLEAN NULL, -- Option to hide address on front-end
+ featured BOOLEAN NULL, -- Option to mark as featured event
+ slideshow BOOLEAN NULL, -- Option to mark for use in slide show
+ major BOOLEAN NULL, -- Option to mark as a major event
+ name TINYTEXT NULL, -- Name of this event
+ name_slug TINYTEXT NULL, -- Slug for this event
+ header TINYTEXT NULL, -- Header text for front-end display - NOT CURRENTLY USED
+ intro TINYTEXT NULL, -- Intro text for front-end display
+ descr TEXT NULL, -- Full description text
+ image TINYTEXT NULL, -- Image file name
+ file1 TINYTEXT NULL, -- File name for a single uploaded file #1
+ file1_descr TINYTEXT NULL, -- Description for file uploaded in field "file" #1
+ file2 TINYTEXT NULL, -- File name for a single uploaded file #2
+ file2_descr TINYTEXT NULL, -- Description for file uploaded in field "file" #2
+ file3 TINYTEXT NULL, -- File name for a single uploaded file #3
+ file3_descr TINYTEXT NULL, -- Description for file uploaded in field "file" #3
+ url TINYTEXT NULL, -- Event URL
+ ticket_url TINYTEXT NULL, -- Ticket URL
+ registration_url TINYTEXT NULL, -- Registration URL
+ cost TINYTEXT NULL, -- Description of event cost
+ admin_ref_type INT NULL, -- Type of admin contact if using a member contact
+ admin_ref_dest INT NULL, -- Pointer to admin contact record if using a member contact
+ admin_name TINYTEXT NULL, -- Admin Contact Name if not using a member contact
+ admin_org TINYTEXT NULL, -- Admin Contact Organization if not using a member contact
+ admin_email TINYTEXT NULL, -- Admin Contact E-Mail if not using a member contact
+ admin_phone TINYTEXT NULL, -- Admin Contact Phone if not using a member contact
+ free BOOLEAN NULL, -- Event is Free
+ contact_email TINYTEXT NULL, -- Contact E-mail address
+ contact_name TINYTEXT NULL, -- Contact name
+ contact_phone TINYTEXT NULL, -- Event Phone
+ use_member_location BOOLEAN NULL, -- Use location of the member (if provided) rather than location table data
+ other_ref_dest INT NULL, -- Set location of the event to another member
+ old_event_id INT NULL, -- ID of event from old site for reference
+ ical_uid TINYTEXT NULL, -- The ical UID for this event.
+ notes TEXT NULL, -- Internal notes for this event
+ PRIMARY KEY (id),
+ INDEX(custom_time),
+ INDEX(root_event),
+ INDEX(ref_type),
+ INDEX(ref_dest),
+ INDEX(featured),
+ INDEX(slideshow),
+ INDEX(major)
+);
+
+----
+
+-- Event Management Settings
+CREATE TABLE {prefix}management (
+ id INT NOT NULL AUTO_INCREMENT,
+ canonical_event_page TINYTEXT NULL, -- Canonical page slug for event detail
+ pdf_logo TINYTEXT NULL, -- Image for the Top of the PDF
+ footer_text TINYTEXT NULL, -- Image for the Top of the PDF
+ to_email TINYTEXT NULL, -- Email address of the recipient
+ from_email TINYTEXT NULL, -- Email address of the sender
+ email_notification TEXT NULL, -- Email notification message
+ calendar_view TINYTEXT NULL, -- Default calendar view
+ event_default_state TINYTEXT NULL, -- Default calendar view
+ term_event_amenities_singular TINYTEXT NULL, -- Singular term to use for event amenities
+ term_event_amenities_plural TINYTEXT NULL, -- Plural term to use for event amenities
+ use_event_amenities BOOLEAN NULL, -- Whether amenities are used at all for events
+ use_venue_locations BOOLEAN NULL, -- To use Other members as the location of event
+ member_events_allowed BOOLEAN NULL, -- If members are allowed to add events.
+ member_events_moderated BOOLEAN DEFAULT '0', -- If member edits are moderated.
+ non_moderated_status_default INTEGER DEFAULT 20, -- Non Moderated Member Default Event Status
+ ical_feed_image_size TINYTEXT NULL, -- Image size to use in iCal Feed
+ event_display_member_message BOOLEAN DEFAULT '0', -- Boolean to show member message or not
+ event_member_message TEXT NULL, -- Member Message
+ event_add_button_color TINYTEXT NULL, -- Color of the search button
+ event_add_button_hidden BOOLEAN NULL, -- Option to hide the add event button
+ event_back_to_search_color TINYTEXT NULL, -- Background Color of the search
+ default_agenda_view TINYTEXT NULL, -- Default view file for agenda views
+ agenda_date_background_color TINYTEXT NULL, -- Background Color of the date
+ agenda_date_text_color TINYTEXT NULL, -- Text Color of the date
+ agenda_title_color TINYTEXT NULL, -- Color of the Event Title
+ agenda_container_background_color TINYTEXT NULL, -- Event Container Background Color
+ agenda_container_border_color TINYTEXT NULL, -- Event Container Border Color
+ agenda_view_max_width TINYTEXT NULL, -- Max Width of agenda view
+ detail_ext_links_same_window BOOLEAN DEFAULT '0', -- Turn on to keep from adding target blank to detail page url's
+ michigan_org_requirements BOOLEAN DEFAULT '0', -- Turn on required fields for Michigan.org
+ sort_by_featured_in_agenda BOOLEAN DEFAULT '0', -- Sort by the featured events in agenda view
+ show_search_city BOOLEAN DEFAULT '0', -- Show city in search form
+ show_search_region BOOLEAN DEFAULT '0', -- Show region in search form
+ show_search_county BOOLEAN DEFAULT '0', -- Show county in search form
+ show_search_category BOOLEAN DEFAULT '1', -- Show category in search form
+ PRIMARY KEY (id)
+);
+
+----
+
+-- Set default event management entry
+INSERT INTO {prefix}management
+ ( id, canonical_event_page, term_event_amenities_singular, term_event_amenities_plural, member_events_allowed, ical_feed_image_size, event_display_member_message, event_member_message, default_agenda_view )
+ VALUES
+ ( 1, 'event-detail', 'Amenity', 'Amenities', 1, 'large', 0, '', 'agenda')
+;
+
+----
+
+-- Event iCal Feed imports
+CREATE TABLE {prefix}feed_import (
+ id INT NOT NULL AUTO_INCREMENT,
+ feed_url TEXT NOT NULL, -- The ical feed url to import
+ created DATETIME NULL, -- The date this feed was created
+ updated DATETIME NULL, -- Last time this feed was updated
+ duration INT NULL, -- The time it took to fetch the feed
+ events INT NULL, -- The number of events last fetched
+ PRIMARY KEY (id)
+);
+
+----
+
+-- Event Email Notifications
+CREATE TABLE {prefix}email_notifications (
+ id INT NOT NULL AUTO_INCREMENT,
+ declined_message TEXT NULL, -- Event declined message
+ approved_message TEXT NULL, -- Event approved message
+ to_email TINYTEXT NULL, -- To Email Address
+ from_email TINYTEXT NULL, -- From Email Address
+ email_notification TEXT NULL, -- Email notification message
+ PRIMARY KEY (id)
+);
+
+----
+
+-- Set default event email settings
+INSERT INTO {prefix}email_notifications
+ ( id, declined_message, approved_message )
+ VALUES
+ ( 1, 'The Event parameters do not comply with our event guidelines.', 'Your event has been approved.' )
+;
'0.1.11' => array('version' => '0.1.11', 'tables' => 13, 'date' => '01/07/2019'),
'0.1.12' => array('version' => '0.1.12', 'tables' => 13, 'date' => '01/30/2019'),
'0.1.13' => array('version' => '0.1.13', 'tables' => 13, 'date' => '02/04/2019'),
+ '0.1.14' => array('version' => '0.1.14', 'tables' => 13, 'date' => '02/13/2019'),
);
--- /dev/null
+-- Gaslight Media Members Database - Events Add-On
+-- File Created: 02/13/19
+-- Database Version: 0.1.14
+-- Database Update From Previous Version Script
+--
+-- To permit each query below to be executed separately,
+-- all queries must be separated by a line with four dashes
+
+ALTER TABLE {prefix}locations ADD COLUMN county INT NULL; -- Reference to county table
+
+----
+
+ALTER TABLE {prefix}management ADD COLUMN show_search_county BOOLEAN DEFAULT '0'; -- Show county in search form
+
+----
+
+ALTER TABLE {prefix}management ADD COLUMN show_search_category BOOLEAN DEFAULT '1'; -- Show category in search form
+
+----
+
+CREATE INDEX event ON {prefix}locations (event);
+
+----
+
+CREATE INDEX city ON {prefix}locations (city);
+
+----
+
+CREATE INDEX county ON {prefix}locations (county);
+
+----
+
+CREATE INDEX region ON {prefix}locations (region);
-
-<!-- Location -->
+{* Location *}
{if $settings.selected_map_interface == 1}
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.3/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/>
<script type="text/javascript">var enableDraggable = true;</script>
{/if}
-<!-- Add New City Dialog Box -->
+{* Add New City Dialog Box *}
<div id="newCityDialog" class="glm-dialog-box" title="Enter a New City">
<table class="glm-admin-table">
<tr>
<a id="newCityCancel" class="button button-primary glm-right">Cancel</a>
<input class="newCitySubmit" type="submit" value="Add new City">
</div>
-<!-- New city hidden input fields go here -->
+{* New city hidden input fields go here *}
<span id="newCityNames"></span>
{if !$settings.use_venue_locations}
<tr>
<td id="placeLocationDeletesHere" colspan="2">
- <!-- Only doing one event at a time - edit.html has JAVAscript code to create the first and only one
+ {* Only doing one event at a time - edit.html has JAVAscript code to create the first and only one
<a id="addLocation" class="button button-primary glm-button glm-right">Add a Location</a>
- -->
+ *}
</td>
</tr>
<tr id="locationContainer" {if $event.fieldData.use_member_location.value || $event.fieldData.other_ref_dest.value}class="glm-hidden"{/if}>
<td>
<table id="locationTable" width="100%">
- <!-- Location forms go here. -->
-{if $locations}
- {foreach $locations as $loc}
- <tr class="location_{$loc.id}"><td colspan="2"><hr></td></tr>
- <tr id="location_{$loc.id}" data-id="{$loc.id}" class="location_{$loc.id} location-form">
- <td>
- <input type="hidden" name="locID[{$loc.id}]" value="Loc{$loc.id}">
- <input type="hidden" class="eLocation" data-id="{$loc.id}" name="loc{$loc.id}_id" value="{$loc.id}">
- <input type="hidden" name="Loc{$loc.id}_event" value="{$event.fieldData.id}"> <!-- required to have event id with prefix -->
- <table width="100%">
- <tr>
- <th>Location Name:</th>
- <td>
- <input id="name_{$loc.id}" type="text" name="Loc{$loc.id}_name" value="{$loc.name|escape}" class="glm-form-text-input-medium">
- </td>
- </tr>
- <tr>
- <th{if $settings.michigan_org_requirements && $lockedToMember} class="glm-required"{/if}>Address:</th>
- <td>
- <input id="address_{$loc.id}" data-id="{$loc.id}" type="text" name="Loc{$loc.id}_address" value="{$loc.address}" class="glm-form-text-input-medium">
- </td>
- </tr>
- <tr>
- <th{if $settings.michigan_org_requirements && $lockedToMember} class="glm-required"{/if}>City</th>
- <td class="glm-item-container">
- {if !$lockedToMember}
- <!-- Add new city dialog -->
- <div data-id="{$loc.id}" class="button button-secondary glm-right new-city-button">Add a new City</div>
- {/if}
- <!-- City Selection -->
- <select id="city_{$loc.id}" data-id="{$loc.id}" class="city-picklist" name="Loc{$loc.id}_city">
- <option value="0"></option>
- {foreach from=$loc.city.list item=v}
- <option value="{$v.value}"{if $v.default} selected="selected"{/if}>
- {$v.name}
- </option>
- {/foreach}
- </select>
- </td>
- </tr>
- <tr>
- <th{if $settings.michigan_org_requirements && $lockedToMember} class="glm-required"{/if}>State:</th>
- <td>
- <select id="state_{$loc.id}" data-id="{$loc.id}" class="" name="Loc{$loc.id}_state">
- <option value=""></option>
- {foreach from=$loc.state.list item=v}
- <option value="{$v.value}"{if $v.default} selected="selected"{/if}>
- {$v.name}{if $eventDefaultState == $v.value} (default){/if}
- </option>
- {/foreach}
- </select>
- </td>
- </tr>
- <tr>
- <th{if $settings.michigan_org_requirements && $lockedToMember} class="glm-required"{/if}>ZIP / Postal Code:</th>
- <td>
- <input id="zip_{$loc.id}" data-id="{$loc.id}" type="text" name="Loc{$loc.id}_zip" value="{$loc.zip}" class="glm-form-text-input-medium zipcode-input">
- </td>
- </tr>
- <tr>
- <th>Country:</th>
- <td>
- <select id="country_{$loc.id}" data-id="{$loc.id}" name="Loc{$loc.id}_country">
- {foreach from=$loc.country.list item=v}
- <option value="{$v.value}"{if $v.default} selected="selected"{/if}>
- {$v.name} {$v.value}
- </option>
- {/foreach}
- </select>
- </td>
- </tr>
- <tr>
- <th>Region:</th>
- <td>
- <select name="Loc{$loc.id}_region">
- <option value="0"></option>
- {foreach from=$loc.region.list item=v}
- <option value="{$v.value}"{if $v.default} selected="selected"{/if}>{$v.name}</option>
- {/foreach}
- </select>
- </td>
- </tr>
- <tr>
- <th>Phone:</th>
- <td>
- <input type="text" name="Loc{$loc.id}_phone" value="{$loc.phone}" class="glm-form-text-input-medium glm-phone-input">
- </td>
- </tr>
- <tr>
- <th>Web Address:</th>
- <td>
- <input type="text" name="Loc{$loc.id}_url" value="{$loc.url}" class="glm-form-text-input-medium">
- </td>
- </tr>
- <tr>
- <th>Email Address:</th>
- <td>
- <input type="text" name="Loc{$loc.id}_email" value="{$loc.email}" class="glm-form-text-input-medium">
- </td>
- </tr>
-
- </table>
- </td>
- <td>
- <table width="100%">
- <tr>
- <th>Location:</th>
- <td>
- <span class="glm-right">
- <!-- Only doing one location per event right now
- <a id="deleteLocation_{$loc.id}" data-id="{$loc.id}" class="button button-primary glm-button glm-right delete-location">Delete Location222</a>
- -->
- </span>
- <div id="glm-estimate-location_{$loc.id}" class="button button-secondary">Map Location Using Above Address</div>
- <p>
- {if $settings.selected_map_interface == 1}
- <!-- Leaflet Map -->
- <div id="locationMap_{$loc.id}" style="height: 400px; width: 100%;"></div>
- {/if}
+ {* Location forms go here. *}
+ {if $locations}
+ {foreach $locations as $loc}
+ <tr class="location_{$loc.id}"><td colspan="2"><hr></td></tr>
+ <tr id="location_{$loc.id}" data-id="{$loc.id}" class="location_{$loc.id} location-form">
+ <td>
+ <input type="hidden" name="locID[{$loc.id}]" value="Loc{$loc.id}">
+ <input type="hidden" class="eLocation" data-id="{$loc.id}" name="loc{$loc.id}_id" value="{$loc.id}">
+ <input type="hidden" name="Loc{$loc.id}_event" value="{$event.fieldData.id}"> <!-- required to have event id with prefix -->
+ <table width="100%">
+ <tr>
+ <th>Location Name:</th>
+ <td>
+ <input id="name_{$loc.id}" type="text" name="Loc{$loc.id}_name" value="{$loc.name|escape}" class="glm-form-text-input-medium">
+ </td>
+ </tr>
+ <tr>
+ <th{if $settings.michigan_org_requirements && $lockedToMember} class="glm-required"{/if}>Address:</th>
+ <td>
+ <input id="address_{$loc.id}" data-id="{$loc.id}" type="text" name="Loc{$loc.id}_address" value="{$loc.address}" class="glm-form-text-input-medium">
+ </td>
+ </tr>
+ <tr>
+ <th{if $settings.michigan_org_requirements && $lockedToMember} class="glm-required"{/if}>City</th>
+ <td class="glm-item-container">
+ {if !$lockedToMember}
+ {* Add new city dialog *}
+ <div data-id="{$loc.id}" class="button button-secondary glm-right new-city-button">Add a new City</div>
+ {/if}
+ {* City Selection *}
+ <select id="city_{$loc.id}" data-id="{$loc.id}" class="city-picklist" name="Loc{$loc.id}_city">
+ <option value="0"></option>
+ {foreach from=$loc.city.list item=v}
+ <option value="{$v.value}"{if $v.default} selected="selected"{/if}>
+ {$v.name}
+ </option>
+ {/foreach}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <th{if $settings.michigan_org_requirements && $lockedToMember} class="glm-required"{/if}>State:</th>
+ <td>
+ <select id="state_{$loc.id}" data-id="{$loc.id}" class="" name="Loc{$loc.id}_state">
+ <option value=""></option>
+ {foreach from=$loc.state.list item=v}
+ <option value="{$v.value}"{if $v.default} selected="selected"{/if}>
+ {$v.name}{if $eventDefaultState == $v.value} (default){/if}
+ </option>
+ {/foreach}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <th{if $settings.michigan_org_requirements && $lockedToMember} class="glm-required"{/if}>ZIP / Postal Code:</th>
+ <td>
+ <input id="zip_{$loc.id}" data-id="{$loc.id}" type="text" name="Loc{$loc.id}_zip" value="{$loc.zip}" class="glm-form-text-input-medium zipcode-input">
+ </td>
+ </tr>
+ <tr>
+ <th>County:</th>
+ <td>
+ <select id="county_{$loc.id}" data-id="{$loc.id}" name="Loc{$loc.id}_county">
+ <option value="0"></option>
+ {foreach from=$loc.county.list item=v}
+ <option value="{$v.value}"{if $v.default} selected="selected"{/if}>
+ {$v.name}
+ </option>
+ {/foreach}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <th>Country:</th>
+ <td>
+ <select id="country_{$loc.id}" data-id="{$loc.id}" name="Loc{$loc.id}_country">
+ {foreach from=$loc.country.list item=v}
+ <option value="{$v.value}"{if $v.default} selected="selected"{/if}>
+ {$v.name} {$v.value}
+ </option>
+ {/foreach}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <th>Region:</th>
+ <td>
+ <select name="Loc{$loc.id}_region">
+ <option value="0"></option>
+ {foreach from=$loc.region.list item=v}
+ <option value="{$v.value}"{if $v.default} selected="selected"{/if}>{$v.name}</option>
+ {/foreach}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <th>Phone:</th>
+ <td>
+ <input type="text" name="Loc{$loc.id}_phone" value="{$loc.phone}" class="glm-form-text-input-medium glm-phone-input">
+ </td>
+ </tr>
+ <tr>
+ <th>Web Address:</th>
+ <td>
+ <input type="text" name="Loc{$loc.id}_url" value="{$loc.url}" class="glm-form-text-input-medium">
+ </td>
+ </tr>
+ <tr>
+ <th>Email Address:</th>
+ <td>
+ <input type="text" name="Loc{$loc.id}_email" value="{$loc.email}" class="glm-form-text-input-medium">
+ </td>
+ </tr>
- {if $settings.selected_map_interface == 2}
- <!-- Google Map -->
- <div id="locationMap_{$loc.id}" class="glm-map-edit-small" style="height: 400; width: 600px;">(map loads here)</div>
- {/if}
- <p>
- <b>Position:</b>
- Lat <input id="glmLat_{$loc.id}" name="Loc{$loc.id}_lat" type="text" value="{$loc.lat}" class="glm-form-text-input-veryshort">
- Lon <input id="glmLng_{$loc.id}" name="Loc{$loc.id}_lon" type="text" value="{$loc.lon}" class="glm-form-text-input-veryshort">
- <span data-id="{$loc.id}" class="button button-secondary latLonRecenter">Update pointer</span><br>
- You may drag the map marker to the exact location desired. Also consider selecting "Satellite" view to better locate the marker.
- </p>
- </p>
- </td>
- </tr>
- </table>
- </td>
- </tr>
+ </table>
+ </td>
+ <td>
+ <table width="100%">
+ <tr>
+ <th>Location:</th>
+ <td>
+ <span class="glm-right">
+ {* Only doing one location per event right now
+ <a id="deleteLocation_{$loc.id}" data-id="{$loc.id}" class="button button-primary glm-button glm-right delete-location">Delete Location222</a>
+ *}
+ </span>
+ <div id="glm-estimate-location_{$loc.id}" class="button button-secondary">Map Location Using Above Address</div>
+ <p>
+ {if $settings.selected_map_interface == 1}
+ <!-- Leaflet Map -->
+ <div id="locationMap_{$loc.id}" style="height: 400px; width: 100%;"></div>
+ {/if}
- {/foreach}
-{/if}
+ {if $settings.selected_map_interface == 2}
+ <!-- Google Map -->
+ <div id="locationMap_{$loc.id}" class="glm-map-edit-small" style="height: 400; width: 600px;">(map loads here)</div>
+ {/if}
+ <p>
+ <b>Position:</b>
+ Lat <input id="glmLat_{$loc.id}" name="Loc{$loc.id}_lat" type="text" value="{$loc.lat}" class="glm-form-text-input-veryshort">
+ Lon <input id="glmLng_{$loc.id}" name="Loc{$loc.id}_lon" type="text" value="{$loc.lon}" class="glm-form-text-input-veryshort">
+ <span data-id="{$loc.id}" class="button button-secondary latLonRecenter">Update pointer</span><br>
+ You may drag the map marker to the exact location desired. Also consider selecting "Satellite" view to better locate the marker.
+ </p>
+ </p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ {/foreach}
+ {/if}
</table>
</td>
</tr>
</table>
-<!-- Add/Edit Location Template -->
+{* Add/Edit Location Template *}
<table id="addLocationTemplate" class="glm-hidden">
<tr class="location_{ newLocID }">
<td>
<input type="hidden" name="locID[{ newLocID }]" value="{ newLocID }">
- {if $haveEvent}
- <input type="hidden" name="{ newLocID }_event" value="{$event.fieldData.id}"> <!-- required to have event id with prefix -->
- {/if}
+ {if $haveEvent}
+ <input type="hidden" name="{ newLocID }_event" value="{$event.fieldData.id}"> {* required to have event id with prefix *}
+ {/if}
<table width="100%">
<tr>
<tr>
<th{if $settings.michigan_org_requirements && $lockedToMember} class="glm-required"{/if}>City</th>
<td class="glm-item-container">
{if !$lockedToMember}
- <!-- Add new city dialog -->
+ {* Add new city dialog *}
<div data-id="{ newLocID }" class="button button-secondary glm-right new-city-button">Add a new City</div>
{/if}
- <!-- City Selection -->
+ {* City Selection *}
<select id="city_{ newLocID }" data-id="{ newLocID }" class="city-picklist" name="{ newLocID }_city">
<option value="0"></option>
- {foreach from=$newLocation.fieldData.city.list item=v}
- <option value="{$v.value}"{if $v.default} selected="selected"{/if}>{$v.name}</option>
- {/foreach}
+ {foreach from=$newLocation.fieldData.city.list item=v}
+ <option value="{$v.value}"{if $v.default} selected="selected"{/if}>{$v.name}</option>
+ {/foreach}
</select>
</td>
</tr>
<th{if $settings.michigan_org_requirements && $lockedToMember} class="glm-required"{/if}>State:</th>
<td>
<select id="state_{ newLocID }" data-id="{ newLocID }" name="{ newLocID }_state">
- {foreach from=$newLocation.fieldData.state.list item=v}
- <option value="{$v.value}"{if $v.value == $eventDefaultState} selected="selected"{/if}>
- {$v.name} {if $eventDefaultState == $v.value} (default) {/if}
- </option>
- {/foreach}
+ {foreach from=$newLocation.fieldData.state.list item=v}
+ <option value="{$v.value}"{if $v.value == $eventDefaultState} selected="selected"{/if}>
+ {$v.name} {if $eventDefaultState == $v.value} (default) {/if}
+ </option>
+ {/foreach}
</select>
</td>
</tr>
<input id="zip_{ newLocID }" data-id="{ newLocID }" type="text" name="{ newLocID }_zip" value="{$newLocation.fieldData.zip}" class="glm-form-text-input-medium zipcode-input">
</td>
</tr>
+ <tr>
+ <th>County:</th>
+ <td>
+ <select id="county_{ newLocID }" data-id="{ newLocID }" name="{ newLocID }_county">
+ <option value="0"></option>
+ {foreach from=$newLocation.fieldData.county.list item=v}
+ <option value="{$v.value}"{if $v.default} selected="selected"{/if}>{$v.name}</option>
+ {/foreach}
+ </select>
+ </td>
+ </tr>
<tr>
<th>Country:</th>
<td>
<select id="country_{ newLocID }" data-id="{ newLocID }" name="{ newLocID }_country">
- {foreach from=$newLocation.fieldData.country.list item=v}
- <option value="{$v.value}"{if $v.default} selected="selected"{/if}>
- {$v.name} {$v.value}
- </option>
- {/foreach}
+ {foreach from=$newLocation.fieldData.country.list item=v}
+ <option value="{$v.value}"{if $v.default} selected="selected"{/if}>
+ {$v.name} {$v.value}
+ </option>
+ {/foreach}
</select>
</td>
</tr>
<td>
<select name="{ newLocID }_region">
<option value="0"></option>
- {foreach from=$newLocation.fieldData.region.list item=v}
- <option value="{$v.value}"{if $v.default} selected="selected"{/if}>{$v.name}</option>
- {/foreach}
+ {foreach from=$newLocation.fieldData.region.list item=v}
+ <option value="{$v.value}"{if $v.default} selected="selected"{/if}>{$v.name}</option>
+ {/foreach}
</select>
</td>
</tr>
<tr>
<th>Location:</th>
<td>
- <!-- Only doing one event per location now.
+ {* Only doing one event per location now.
<span class="glm-right"><a id="deleteLocation_{ newLocID }" data-id="{ newLocID }" class="button button-primary glm-button glm-right delete-location">Delete Location</a></span>
- -->
+ *}
<div id="glm-estimate-location_{ newLocID }" class="button button-secondary">Map Location Using Address</div>
<p>
{if $settings.selected_map_interface == 1}
- <!-- Leaflet Map -->
+ {* Leaflet Map *}
<div id="locationMap_{ newLocID }" style="height: 400px; width: 100%;"></div>
{/if}
{if $settings.selected_map_interface == 2}
- <!-- Google Map -->
+ {* Google Map *}
<div id="locationMap_{ newLocID }" class="glm-map-edit-small" style="height: 400; width: 600px;">(map loads here)</div>
{/if}
<tr>
<th>Front-End Event Search Form</th>
<td>
+ <label> <input type="checkbox" name="show_search_category" {if $eventsSettings.fieldData.show_search_category.value}checked{/if}> Show Category Search</label><br><br>
<label> <input type="checkbox" name="show_search_city" {if $eventsSettings.fieldData.show_search_city.value}checked{/if}> Show City Search</label><br><br>
<label> <input type="checkbox" name="show_search_region" {if $eventsSettings.fieldData.show_search_region.value}checked{/if}> Show Region Search</label><br><br>
+ <label> <input type="checkbox" name="show_search_county" {if $eventsSettings.fieldData.show_search_county.value}checked{/if}> Show County Search</label><br><br>
</td>
</tr>
<tr>
</select>
</div>
{/if}
- <div class="glma-small-8 glma-medium-3 glma-column">
- <input class="glm-search-icon glma-right" type="image" alt="Search" src="{$assetsUrl}search-icon-24x24.png">
- <select id="glm-event-category" name="category" class="glma-select">
- <option value="0">-- All Categories --</option>
- {foreach $categories as $cat}
- <option value="{$cat.id}"{if $cat.default == 1} selected{/if}>{$cat.name}</option>
- {/foreach}
- </select>
- </div>
- {if $settings.show_search_city || $settings.show_search_region}
+ {if $settings.enable_counties && $settings.show_search_county}
+ <div class="glma-small-8 glma-medium-3 glma-column">
+ <select id="glm-event-county" name="county" class="glma-select">
+ <option value="0">-- All Counties --</option>
+ {foreach $counties as $county}
+ <option value="{$county.id}"{if $county.default == 1} selected{/if}>{$county.name}</option>
+ {/foreach}
+ </select>
+ </div>
+ {/if}
+ {if $settings.show_search_category}
+ <div class="glma-small-8 glma-medium-3 glma-column">
+ <input class="glm-search-icon glma-right" type="image" alt="Search" src="{$assetsUrl}search-icon-24x24.png">
+ <select id="glm-event-category" name="category" class="glma-select">
+ <option value="0">-- All Categories --</option>
+ {foreach $categories as $cat}
+ <option value="{$cat.id}"{if $cat.default == 1} selected{/if}>{$cat.name}</option>
+ {/foreach}
+ </select>
+ </div>
+ {/if}
+ {if $settings.show_search_city || $settings.show_search_region || $settings.show_search_county}
<div class="glma-small-12 glma-medium-9 glma-columns view-select">
<select id="glm-event-view-select" class="glma-select">
<option id="agenda-view-option" value="agenda"> Agenda View </option>