New options for events management.
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 10 Apr 2019 17:52:56 +0000 (13:52 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 10 Apr 2019 17:54:44 +0000 (13:54 -0400)
Text field for read more button.
Flag for enable read more button.
Minimum number of events settings for agenda view.

classes/data/dataManagement.php
index.php
models/front/events/list.php
readme.txt
setup/databaseScripts/create_database_V0.1.14.sql [deleted file]
setup/databaseScripts/create_database_V0.1.15.sql [new file with mode: 0644]
setup/databaseScripts/dbVersions.php
setup/databaseScripts/update_database_V0.1.15.sql [new file with mode: 0644]
views/admin/management/events.html
views/front/events/agenda.html
views/front/events/agenda_new.html

index 9ea1580..a2410e7 100644 (file)
@@ -346,6 +346,14 @@ class GlmDataEventsManagement extends GlmDataAbstract
                 'use'      => 'a',
             ),
 
+            // Minimum number of events to get in agenda views
+            'agenda_view_min_events' => array(
+                'field'    => 'agenda_view_min_events',
+                'type'     => 'integer',
+                'required' => false,
+                'use'      => 'a',
+            ),
+
             // Color of the search button
             'agenda_date_background_color' => array(
                 'field'    => 'agenda_date_background_color',
@@ -394,6 +402,22 @@ class GlmDataEventsManagement extends GlmDataAbstract
                 'use'      => 'a',
             ),
 
+            // Enable Read More Button
+            'agenda_view_more_enabled' => array(
+                'field'   => 'agenda_view_more_enabled',
+                'type'    => 'checkbox',
+                'default' => false,
+                'use'     => 'a'
+            ),
+
+            // Text for Read More Button
+            'agenda_view_more_text' => array(
+                'field'    => 'agenda_view_more_text',
+                'type'     => 'text',
+                'required' => false,
+                'use'      => 'a',
+            ),
+
          );
 
     }
index b286ea2..09ef0ee 100755 (executable)
--- a/index.php
+++ b/index.php
@@ -44,7 +44,7 @@ if (!defined('ABSPATH')) {
  *  version from this plugin.
  */
 define('GLM_MEMBERS_EVENTS_PLUGIN_VERSION', '1.7.23');
-define('GLM_MEMBERS_EVENTS_PLUGIN_DB_VERSION', '0.1.14');
+define('GLM_MEMBERS_EVENTS_PLUGIN_DB_VERSION', '0.1.15');
 
 // 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');
index f9b2d5e..6337b78 100644 (file)
@@ -346,7 +346,10 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction
                 // This is the default date range for this agenda view.
                 $total_current_events = $this->checkHaveAnyEvents( $memberId, $categoryId );
                 // Set default number of events wanted in default view.
-                $total_events_wanted  = 5;
+                $total_events_wanted  = 5; // default if empty
+                if ( $this->config['settings']['agenda_view_min_events'] ) {
+                    $total_events_wanted = $this->config['settings']['agenda_view_min_events'];
+                }
                 // Set default number of weeks to view.
                 // Set this to one less than actual weeks to check.
                 // It will be increased in the do while loop.
index 210f1fd..1894c7f 100755 (executable)
@@ -25,6 +25,11 @@ e.g.
 1. Activate the plugin through the 'Plugins' menu in WordPress
 
 == Changelog ==
+=  Pending =
+New options
+* Read more button options
+* Minimum number of events option
+
 = 1.7.23 =
 * Adding counties to event locations
 
diff --git a/setup/databaseScripts/create_database_V0.1.14.sql b/setup/databaseScripts/create_database_V0.1.14.sql
deleted file mode 100644 (file)
index c941c61..0000000
+++ /dev/null
@@ -1,303 +0,0 @@
--- 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.' )
-;
diff --git a/setup/databaseScripts/create_database_V0.1.15.sql b/setup/databaseScripts/create_database_V0.1.15.sql
new file mode 100644 (file)
index 0000000..17dde17
--- /dev/null
@@ -0,0 +1,306 @@
+-- Gaslight Media Members Database - Events Add-On
+-- File Created: 08/18/17
+-- Database Version: 0.1.15
+-- 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
+    agenda_view_more_enabled BOOLEAN DEFAULT '1',            -- Turn on Read More Button
+    agenda_view_more_text TINYTEXT NULL,                     -- Text for More button
+    agenda_view_min_events INT DEFAULT 5,                    -- Minimum number of events to get in agenda views
+    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, agenda_view_more_text )
+   VALUES
+    ( 1, 'event-detail', 'Amenity', 'Amenities', 1, 'large', 0, '', 'agenda', 'Read More')
+;
+
+----
+
+-- 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.' )
+;
index 430fdd7..f0c1f03 100644 (file)
@@ -50,5 +50,6 @@ $glmMembersEventsDbVersions = array(
     '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'),
+    '0.1.15' => array('version' => '0.1.15', 'tables' => 13, 'date' => '04/09/2019'),
 );
 
diff --git a/setup/databaseScripts/update_database_V0.1.15.sql b/setup/databaseScripts/update_database_V0.1.15.sql
new file mode 100644 (file)
index 0000000..cd79e11
--- /dev/null
@@ -0,0 +1,21 @@
+-- Gaslight Media Members Database  - Events Add-On
+-- File Created: 04/09/19
+-- Database Version: 0.1.15
+-- 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}management ADD COLUMN agenda_view_more_enabled BOOLEAN DEFAULT '1';         -- Turn on Read More Button
+
+----
+
+ALTER TABLE {prefix}management ADD COLUMN agenda_view_more_text TINYTEXT NULL;                  -- Text for Read more button
+
+----
+
+ALTER TABLE {prefix}management ADD COLUMN agenda_view_min_events INT DEFAULT 5;                  -- Minimum number of events to get in agenda views
+
+----
+
+UPDATE {prefix}management SET agenda_view_more_text = 'Read More' WHERE id = 1;
index 167d16f..6ad7290 100644 (file)
                             <th>Front-End View Styles</th>
                             <td>
                                 <table class="glm-admin-table">
+                                    <tr>
+                                        <th {if $eventsSettings.fieldRequired.agenda_view_min_events}class="glm-required"{/if}>Minimum number of events for Agenda:</th>
+                                        <td {if $eventsSettings.fieldFail.agenda_view_min_events}class="glm-form-bad-input"{/if}>
+                                            <input type="number" min="1" name="agenda_view_min_events" value="{$eventsSettings.fieldData.agenda_view_min_events}" />
+                                        </td>
+                                    </tr>
                                     <tr>
                                         <th {if $eventsSettings.fieldRequired.agenda_view_max_width}class="glm-required"{/if}>Max Width for Agenda View:</th>
                                         <td {if $eventsSettings.fieldFail.agenda_view_max_width}class="glm-form-bad-input"{/if}>
                                 </table>
                             </td>
                         </tr>
+                        <tr>
+                            <th>Front-End Event Agenda Read more</th>
+                            <td>
+                                <label> <input type="checkbox" name="agenda_view_more_enabled" {if $eventsSettings.fieldData.agenda_view_more_enabled.value}checked{/if}> Enable Read More Button</label><br><br>
+                            </td>
+                        </tr>
+                        <tr>
+                            <th {if $eventsSettings.fieldRequired.agenda_view_more_text}class="glm-required"{/if}>Read More Button Text:</th>
+                            <td {if $eventsSettings.fieldFail.agenda_view_more_text}class="glm-form-bad-input"{/if}>
+                                <input type="text" class="glm-form-text-input-small" name="agenda_view_more_text" value="{$eventsSettings.fieldData.agenda_view_more_text}" />
+                            </td>
+                        </tr>
                         <tr>
                             <th>Admin Options</th>
                             <td>
                                 </div>
                             </td>
                         </tr>
-                        <!--
-                        <tr>
-                            <td colspan="2">
-                                <h1> E-Mail Notification Settings (These have been moved to settings)</h1>
-                            </td>
-                        </tr>
-                        <tr>
-                            <th class="emailLabel"> Sender Email Address </th>
-                            <td><input disabled class="glm-form-text-input-medium" name="from_email" id="fromEmailAddress" type="text" value="{$eventsSettings.fieldData.from_email}"></td>
-                        </tr>
-                        <tr>
-                            <th class="emailLabel"> Recipient Email Address (comma separated) </th>
-                            <td><input disabled class="glm-form-text-input-medium" name="to_email" id="toEmailAddress" type="text" value="{$eventsSettings.fieldData.to_email}"></td>
-                        </tr>
-                        <tr>
-                            <th>Email Notification</th>
-                            <td>
-                                <textarea disabled rows="3" cols="90" name="email_notification" id="emailNotification">{$eventsSettings.fieldData.email_notification} </textarea>
-                            </td>
-                        </tr>
-                        -->
                     </table>
                     <input type="submit" value="Update Settings" class="button-primary">
                 </form>
index 971b1b8..ee82517 100644 (file)
                                     <div class="event-content glm-hide clearfix">
                                         {if $event.image}<img style="float:right;" data-src="{$imgUrl}{$event.image}">{/if}
                                         {$event.intro}
-                                        <div>
-                                            <a class="glm-read-more" href="{$siteBaseUrl}{$pageSlug}/{if !$customPage}{$event.name_slug}/{else}?eventId={$event.id}{/if}">Read More</a>
-                                        </div>
+                                        {if $settings.agenda_view_more_enabled}
+                                            <div>
+                                                <a class="glm-read-more" href="{$siteBaseUrl}{$pageSlug}/{if !$customPage}{$event.name_slug}/{else}?eventId={$event.id}{/if}">
+                                                    {if $settings.agenda_view_more_text}{$settings.agenda_view_more_text}{else}Read More{/if}
+                                                </a>
+                                            </div>
+                                        {/if}
                                     </div>
                                 </div>
                             </div>
index 9799a79..95df8ed 100644 (file)
@@ -149,9 +149,13 @@ a.glm-read-more:hover, a.event-read-more:hover {
                                     </div>
                                     {/if}
 
-                                    <div>
-                                        <a class="glm-read-more event-read-more" href="{$siteBaseUrl}{$pageSlug}/{if !$customPage}{$event.name_slug}/{else}?eventId={$event.id}{/if}">Read More</a>
-                                    </div>
+                                    {if $settings.agenda_view_more_enabled}
+                                        <div>
+                                            <a class="glm-read-more event-read-more" href="{$siteBaseUrl}{$pageSlug}/{if !$customPage}{$event.name_slug}/{else}?eventId={$event.id}{/if}">
+                                                {if $settings.agenda_view_more_text}{$settings.agenda_view_more_text}{else}Read More{/if}
+                                            </a>
+                                        </div>
+                                    {/if}
 
                                 </div>
                             {/foreach}