From: Steve Sutton Date: Fri, 10 Jun 2016 18:55:00 +0000 (-0400) Subject: Working on a new template for front page events X-Git-Tag: v1.0.17^2~1^2~1 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/index.cgi?a=commitdiff_plain;h=refs%2Fheads%2Ffeature%2Ffrontpage;p=WP-Plugins%2Fglm-member-db-events.git Working on a new template for front page events This is to have an output similar to the time.ly front page shortcode that we are using for mountpleasant right now. --- diff --git a/css/front.css b/css/front.css index 47e2f30..9ba46da 100644 --- a/css/front.css +++ b/css/front.css @@ -210,3 +210,52 @@ input[name='contact_fname'], input[name='contact_lname']{ width: 35%; } } +/* Front page styles */ +#glm-events-frontpage-wrapper { + font-size: 1rem; + line-height: 1.2; + width: 100%; +} +.glm-events-frontpage-day { + background-color: grey; + color: white; + border-radius: 5px; + margin: 0 0 10px 0; + padding: 5px; + text-align: center; + font-size: .7em; + font-weight: bold; +} +.glm-events-frontpage-event-image { + float: left; + height: 100%; + width: 30%; +} +.glm-events-frontpage-event-image img { + min-width: 90px; + float: left; + height: 100%; +} +.glm-events-frontpage-event-container { + border: lightgrey solid 1px; + border-radius: 5px; + background-color: white; + height: 90px; +} +.glm-events-frontpage-event-title { + font-size: .66em; + font-weight: bold; + float: right; + width: 70%; +} +.glm-events-frontpage-event-dates { + font-size: .63em; + font-weight: bold; + float: right; + width: 70%; +} +.glm-events-frontpage-event-content { + font-size: .63em; + float: right; + width: 70%; +} diff --git a/models/front/events/baseAction.php b/models/front/events/baseAction.php index 9e77a85..f50282b 100644 --- a/models/front/events/baseAction.php +++ b/models/front/events/baseAction.php @@ -88,8 +88,7 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents // If a catgegory ID is supplied if ($catId = filter_var( $categoryId, FILTER_VALIDATE_INT )) { $events = $this->getEventsByCategory( $catId, $limit ); - - // Else if a category name is supplied + // Else if a category name is supplied } else if ($term = filter_var( $categoryId, FILTER_SANITIZE_STRING )) { $searchTerm = $this->wpdb->esc_like( $term ); $where .= "T.name like '%" . $searchTerm . "%' @@ -104,10 +103,24 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents $order = "T.id"; $order .= " LIMIT 2 OFFSET 0"; $events = $this->getList($where, $order); - - // Otherwise get all categories + } else if ( $limit = filter_var( $limit, FILTER_VALIDATE_INT ) ) { + // Need to get the event id's for the next $limit number of events. + $where .= "T.id + AND T.status = " . $this->config['status_numb']['Active'] . " + AND T.id IN ( + SELECT distinct event + FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times AS ET + WHERE active + AND start_time >= NOW() + ) + "; + $order = "T.id"; + //$order .= " LIMIT {$limit} OFFSET 0"; + //echo '
$order: ' . print_r($order, true) . '
'; + $events = $this->getList( $where, $order ); + //echo '
$events: ' . print_r($events, true) . '
'; + // Otherwise get all categories } else { - $where .= "T.status = " . $this->config['status_numb']['Active'] . " AND T.id IN ( SELECT event diff --git a/models/front/events/list.php b/models/front/events/list.php index 51e9c9c..c88a511 100644 --- a/models/front/events/list.php +++ b/models/front/events/list.php @@ -54,6 +54,10 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction if ($memberId == 0) { $memberId = null; } + $limit = filter_var( $actionData['request']['limit'], FILTER_VALIDATE_INT ); + if ( $limit ) { + $action = 'front-page'; + } if (isset($_REQUEST['eventId']) && $eventId = filter_var($_REQUEST['eventId'], FILTER_VALIDATE_INT)) { $search = true; @@ -160,6 +164,9 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction switch ($action) { + case 'front-page': + $events = $this->getModelEventsData($categoryId, $limit); + break; case 'event-list-name': $events = $this->getModelEventsData($eventNameSearch); $view = 'agenda.html'; @@ -500,7 +507,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $eventsByDate = $mainEvents; } - // Check for alternate template requests + // Check for alternate template requests switch($actionData['request']['template']) { case 'member-list': wp_enqueue_style('glm-member-db-events-style', GLM_MEMBERS_EVENTS_PLUGIN_URL . 'css/front.css'); @@ -515,11 +522,40 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction case 'member-detail': $view = 'listForMemberDetail.html'; break; + case 'frontPage': + $view = 'eventsFrontPage.html'; + // update the $eventsByDate array so it has the limit + $eventCountInArray = 0; + $newEventsByDateArray = array(); + if ( $limit ) { + foreach ( $eventsByDate as $eventDate => &$eventgroup ) { + foreach ( $eventgroup as $key => &$events ) { + $i = 0; + foreach ( $events as $time => &$times ) { + ++$i; + ++$eventCountInArray; + $newEventsByDateArray[$eventDate][$i][$time] = $times; + if ( $eventCountInArray === $limit ) { + break 3; + } + } + if ( $eventCountInArray === $limit ) { + break 2; + } + } + if ( $eventCountInArray === $limit ) { + break 1; + } + } + } + $eventsByDate = $newEventsByDateArray; + break; default: // No changes otherwise break; } + //echo '
$eventsByDate: ' . print_r($eventsByDate, true) . '
'; // Compile template data $templateData = array( 'assetsUrl' => GLM_MEMBERS_EVENTS_PLUGIN_URL . 'assets/', @@ -533,8 +569,8 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction 'fromDate' => $fromDate, 'toDate' => $toDate, 'eventName' => $eventNameSearch, - 'imgUrl' => GLM_MEMBERS_PLUGIN_MEDIA_URL . '/images/small/', - 'calDates' => $calDates + 'imgUrl' => GLM_MEMBERS_PLUGIN_MEDIA_URL . '/images/small/', + 'calDates' => $calDates ); error_reporting(E_ALL ^ E_NOTICE); diff --git a/setup/shortcodes.php b/setup/shortcodes.php index 2f09a57..d413696 100644 --- a/setup/shortcodes.php +++ b/setup/shortcodes.php @@ -102,7 +102,8 @@ $glmMembersEventsShortcodes = array( 'type' => 'all', 'order' => 'title', 'member' => false, - 'template' => false + 'template' => false, + 'limit' => null ) ), 'glm-members-event-detail' => array( @@ -111,7 +112,7 @@ $glmMembersEventsShortcodes = array( 'action' => 'detail', 'table' => false, 'attributes' => array( - 'id' => false + 'id' => false, ) ), diff --git a/views/front/events/eventsFrontPage.html b/views/front/events/eventsFrontPage.html new file mode 100644 index 0000000..9ba3029 --- /dev/null +++ b/views/front/events/eventsFrontPage.html @@ -0,0 +1,26 @@ +
+ {foreach $eventsByDate as $date => $key} +
+ {$date|date_format:"%B %e"} + ({$date|date_format:"%A"}) +
+ {foreach $key as $events} + {foreach $events as $event} +
+
+
+
+ {$event.name} +
+
+ {$event.dates} +
+
+ {$event.intro} +
+
+ {/foreach} + {/foreach} + {/foreach} +