From: Steve Sutton Date: Thu, 22 Sep 2016 18:00:47 +0000 (-0400) Subject: Adding current event method X-Git-Tag: v1.4.0^2~22 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=98dcbe381fb5eeffdb5eed0abcaf95e4a58c7f1d;p=WP-Plugins%2Fglm-member-db-events.git Adding current event method Add new template for front page current events. --- diff --git a/models/admin/management/events.php b/models/admin/management/events.php index d040f2d..4f5b1cc 100644 --- a/models/admin/management/events.php +++ b/models/admin/management/events.php @@ -386,10 +386,10 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement $feed['next_runtime'] = wp_next_scheduled( GLM_MEMBERS_EVENTS_PLUGIN_CRON_EVENT, array( (int)$feed['id'] ) ); } } - + // Populate the state list for event default state selection $event_settings['event_default_state'] = $this->config['states']; - + // Compile template data $template_data = array( 'import_feeds' => $import_feeds, @@ -503,6 +503,7 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement */ public function addCategories() { + $category_label = ( $this->settings['tablename'] == 'event' ) ? 'descr' : 'name'; $return = ''; $sql = " SELECT * @@ -517,7 +518,7 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement $sql = " SELECT id FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "categories - WHERE name = '" . esc_sql( trim($category['name']) ) . "'"; + WHERE name = '" . esc_sql( trim($category[$category_label]) ) . "'"; $return .= '
$sql: ' . print_r($sql, true) . '
'; $found = $this->wpdb->get_row($sql, ARRAY_A); $return .= '
$found: ' . print_r($found, true) . '
'; @@ -525,7 +526,7 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement $this->wpdb->insert( GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . 'categories', array( - 'name' => trim($category['name']), + 'name' => trim($category[$category_label]), 'parent' => 0 ), array( @@ -534,10 +535,10 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement ) ); $catid = $this->wpdb->insert_id; - $this->categories[$catid] = trim($category['name']); + $this->categories[$catid] = trim($category[$category_label]); $this->oldCatMap[$category['id']] = $catid; } else { - $this->categories[$found['id']] = trim($category['name']); + $this->categories[$found['id']] = trim($category[$category_label]); $this->oldCatMap[$category['id']] = $found['id']; } } @@ -697,9 +698,9 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement $get_file_data = $this->dbh->prepare($prepare_sql); } //$sql .=" AND file != '' "; - //$sql .= " AND id = 5"; + //$sql .= " AND id = 2396"; $this->wpdb->show_errors(); - echo '
$sql: ' . print_r($sql, true) . '
'; + //echo '
$sql: ' . print_r($sql, true) . '
'; try { $events = $this->dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC); $return .= '
$events: ' . print_r($events, true) . '
'; @@ -719,7 +720,25 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement } } if ( $old_event_format ) { - $intro = substr(strip_tags($event['descr']), 0, 150); + $intro = substr( + str_replace( + "\n", + ' ', + strip_tags( $event['descr'] ) + ), + 0, + 150 + ); + $descr = preg_replace( + '%
|
%', + '', + $event['descr'] + ); + $descr = str_replace( + "\n", + '', + $descr + ); $event_data = array( 'status' => (($event['visable'] == '1') ? $this->config['status_numb']['Active'] @@ -729,7 +748,7 @@ class GlmMembersAdmin_management_events extends GlmDataEventsManagement 'approved' => $event['approved_date'], 'name' => $event['header'], 'intro' => $intro, - 'descr' => $event['descr'], + 'descr' => $descr, 'image' => $event['img'], 'file1' => $event['file'], 'file1_descr' => $event['filename'], diff --git a/models/front/events/baseAction.php b/models/front/events/baseAction.php index 67b8ce8..2b08ff3 100644 --- a/models/front/events/baseAction.php +++ b/models/front/events/baseAction.php @@ -179,6 +179,43 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents return $events; } + /** + * getFeaturedEventsData + * + * Fetch all events from current date on that are marked featured. + * + * @access public + * @return mixed + */ + public function getCurrentEvents( $limit = 3 ) + { + // Get the last $limit Events. + $events = $this->wpdb->get_results( + $this->wpdb->prepare( + "SELECT E.*,T1.start_time as start,T2.end_time as end + FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "events E, + " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times T1, + " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times T2 + WHERE E.status = 10 + AND T1.event = E.id AND T1.start_time IN (SELECT MIN(start_time) FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times WHERE event = E.id AND end_time <= %s) + AND T2.event = E.id AND T2.end_time IN (SELECT MAX(end_time) FROM " . GLM_MEMBERS_EVENTS_PLUGIN_DB_PREFIX . "times WHERE event = E.id AND end_time >= %s) + ORDER BY start, end + LIMIT %d + OFFSET 0", + date( 'Y-m-d' ), + date( 'Y-m-d' ), + $limit + ), + ARRAY_A + ); + if ( $events ) { + foreach ( $events as &$event ) { + $event['dates'] = $this->getEventDate( strtotime( $event['start'] ), strtotime( $event['end'] ), 'timestamp', false ); + } + } + return $events; + } + /** * getModelEventData * @@ -233,29 +270,29 @@ abstract class GlmMembersFront_events_baseAction extends GlmDataEvents function getEventDate( $sdate, $edate, $dateType, $microFormat = false ) { switch($dateType) { - case "Postgres": + case "Postgres": $postgresPattern = "/([0-9]{1,2})[/-]([0-9]{1,2})[/-]([0-9]{4})/"; if (preg_match($postgresPattern, $sdate, $spt)) { - $mon = $spt[1]; - $day = $spt[2]; - $yr = $spt[3]; - } + $mon = $spt[1]; + $day = $spt[2]; + $yr = $spt[3]; + } if (preg_match($postgresPattern, $edate, $ept)) { - $mon2 = $ept[1]; - $day2 = $ept[2]; - $yr2 = $ept[3]; - } - break; + $mon2 = $ept[1]; + $day2 = $ept[2]; + $yr2 = $ept[3]; + } + break; case "eventstamp": - case "timestamp": - $mon = date("m",$sdate); - $day = date("d",$sdate); - $yr = date("Y",$sdate); - $mon2 = date("m",$edate); - $day2 = date("d",$edate); - $yr2 = date("Y",$edate); - break; + case "timestamp": + $mon = date("m",$sdate); + $day = date("d",$sdate); + $yr = date("Y",$sdate); + $mon2 = date("m",$edate); + $day2 = date("d",$edate); + $yr2 = date("Y",$edate); + break; } $start = mktime(0,0,0,$mon,$day,$yr); diff --git a/models/front/events/list.php b/models/front/events/list.php index 2f61bc1..5631e6d 100644 --- a/models/front/events/list.php +++ b/models/front/events/list.php @@ -55,6 +55,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $memberId = null; $view = null; $featured = null; + $current = null; $eventsByDate = null; // If a memberID has been specified, limit to that member @@ -67,6 +68,9 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction if ( isset( $actionData['request']['limit'] ) ) { $limit = filter_var( $actionData['request']['limit'], FILTER_VALIDATE_INT ); } + if ( isset ( $actionData['request']['template'] ) ) { + $view = $actionData['request']['template']; + } if ( $limit ) { $action = 'front-page'; } @@ -74,6 +78,10 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $featured = filter_var( $actionData['request']['featured'], FILTER_VALIDATE_BOOLEAN ); $action = 'featured'; } + if ( isset( $actionData['request']['current'] ) ) { + $current = filter_var( $actionData['request']['current'], FILTER_VALIDATE_BOOLEAN ); + $action = 'current'; + } if (isset($_REQUEST['eventId']) && $eventId = filter_var($_REQUEST['eventId'], FILTER_VALIDATE_INT)) { $search = true; $action = 'event-detail'; @@ -227,9 +235,17 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction exit; } break; + case 'current': + $events = $this->getCurrentEvents( $limit ); + if ( isset ( $actionData['request']['template'] ) && $actionData['request']['template'] ) { + $view = $actionData['request']['template']; + } else { + $view = 'eventsHomeCurrent.html'; + } + break; case 'featured': $events = $this->getFeaturedEventsData( $featured ); - if ( isset ( $actionData['request']['template'] ) ) { + if ( isset ( $actionData['request']['template'] ) && $actionData['request']['template'] ) { $view = $actionData['request']['template']; } else { $view = 'agenda.html'; @@ -239,7 +255,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction include_once GLM_MEMBERS_EVENTS_PLUGIN_PATH . '/SetaPDF/Autoload.php'; $this->postAddLocations = true; $this->postAddRecurrences = true; - $events = $this->getModelEventsData($categoryId); + $events = $this->getModelEventsData($categoryId); $this->postAddLocations = false; $this->postAddRecurrences = false; @@ -450,7 +466,6 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $pdfY -= self::LINE_HEIGHT; } $intro->draw($page->getCanvas(), self::PDF_LFT_COL_X, $pdfY); - //echo '
lineCount: ' . print_r($lineCount, true)  . '
'; $pdfY -= self::LINE_HEIGHT;// * $lineCount; $page->getCanvas()->draw()->line(self::PDF_LFT_COL_X, $pdfY, self::PDF_WIDTH, $pdfY); @@ -518,7 +533,7 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction // group the events by the starting date $eventsByDate = $mainEvents = array(); - if ( $events && $action != 'featured' ) { + if ( $events && $action != 'featured' && $action != 'current' ) { foreach ( $events as $event ) { if ( isset( $event['times'] ) && is_array( $event['times'] ) ) { foreach ( $event['times'] as $eventTime ) { @@ -629,8 +644,6 @@ class GlmMembersFront_events_list extends GlmMembersFront_events_baseAction $calendar_view = $calendar_view[0]['calendar_view']; } -// print_r($calDates); -// echo "
", print_r($eventsByDate), "
"; // Compile template data $templateData = array( 'assetsUrl' => GLM_MEMBERS_EVENTS_PLUGIN_URL . 'assets/', diff --git a/setup/shortcodes.php b/setup/shortcodes.php index 2797fc5..fb08e65 100644 --- a/setup/shortcodes.php +++ b/setup/shortcodes.php @@ -105,6 +105,7 @@ $glmMembersEventsShortcodes = array( 'template' => false, 'limit' => null, 'featured' => null, + 'current' => null, ) ), 'glm-members-event-detail' => array( diff --git a/views/front/events/eventsHomeCurrent.html b/views/front/events/eventsHomeCurrent.html new file mode 100644 index 0000000..0f78b2f --- /dev/null +++ b/views/front/events/eventsHomeCurrent.html @@ -0,0 +1,19 @@ +{if $events} + {foreach $events as $event} +
+
{$event.name}
+ {if $event.image} +
+ +
+
+ {else} +
+ {/if} + +

{$event.intro}

+ find out more... +
+
+ {/foreach} +{/if}