Version 5.0.0 beta 6
This commit is contained in:
1 parent
57d9db6ce2
commit
fa2a720105
115 files changed
+1823
-1147
No files matched your search
@@ -754,9 +754,7 @@ class view extends Controller
|
||||
$select = 'calendar_events.*, core_clubs.name';
|
||||
$sort = 'event_start_date asc';
|
||||
$location = NULL;
|
||||
$having = [];
|
||||
$where = [];
|
||||
$where[] = ['event_approved=?', 1];
|
||||
$searchNearLocation = FALSE; // Should results be limited to near the provided location only? If not, we'll just use location to allow sorting.
|
||||
|
||||
if( $values = $form->values() )
|
||||
@@ -840,93 +838,14 @@ class view extends Controller
|
||||
$startDate = Date::dateTimeToCalendarDate( $values['date']['start'] ?: $today );
|
||||
$endDate = $values['date']['end'] ? Date::dateTimeToCalendarDate( $values['date']['end'] ) : NULL;
|
||||
|
||||
/* Get timezone adjusted versions of start/end time */
|
||||
$startDateTimezone = Date::parseTime( $startDate->mysqlDatetime(), TRUE );
|
||||
$endDateTimezone = ( $endDate !== NULL ) ? Date::parseTime( $endDate->mysqlDatetime() ) : NULL;
|
||||
|
||||
if ( $member->timezone )
|
||||
{
|
||||
$startDateTimezone->setTimezone( new DateTimeZone( 'UTC' ) );
|
||||
|
||||
if( $endDateTimezone !== NULL )
|
||||
{
|
||||
$endDateTimezone->setTimezone( new DateTimeZone( 'UTC' ) );
|
||||
}
|
||||
}
|
||||
|
||||
if( $endDate !== NULL AND $startDate == $endDate )
|
||||
{
|
||||
$where[] = array(
|
||||
'(
|
||||
( event_end_date IS NULL AND DATE( event_start_date ) = ? AND event_all_day=1 )
|
||||
OR
|
||||
( event_end_date IS NOT NULL AND DATE( event_start_date ) <= ? AND DATE( event_end_date ) >= ? AND event_all_day=1 )
|
||||
OR
|
||||
( event_end_date IS NULL AND event_start_date >= ? AND event_start_date <= ? AND event_all_day=0 )
|
||||
OR
|
||||
( event_end_date IS NOT NULL AND event_start_date <= ? AND event_end_date >= ? AND event_all_day=0 )
|
||||
)',
|
||||
$startDate->mysqlDatetime( FALSE ),
|
||||
$endDate->mysqlDatetime( FALSE ),
|
||||
$startDate->mysqlDatetime( FALSE ),
|
||||
$startDateTimezone->mysqlDatetime(),
|
||||
$startDateTimezone->adjust('+1 day')->mysqlDatetime(),
|
||||
$endDateTimezone->adjust('+1 day')->mysqlDatetime(),
|
||||
$startDateTimezone->mysqlDatetime()
|
||||
);
|
||||
}
|
||||
elseif( $endDate !== NULL )
|
||||
{
|
||||
$where[] = array(
|
||||
'(
|
||||
( event_end_date IS NULL AND DATE( event_start_date ) >= ? AND DATE( event_start_date ) <= ? AND event_all_day=1 )
|
||||
OR
|
||||
( event_end_date IS NOT NULL AND DATE( event_start_date ) <= ? AND DATE( event_end_date ) >= ? AND event_all_day=1 )
|
||||
OR
|
||||
( event_end_date IS NULL AND event_start_date >= ? AND event_start_date <= ? AND event_all_day=0 )
|
||||
OR
|
||||
( event_end_date IS NOT NULL AND event_start_date <= ? AND event_end_date >= ? AND event_all_day=0 )
|
||||
)',
|
||||
$startDate->mysqlDatetime( FALSE ),
|
||||
$endDate->mysqlDatetime( FALSE ),
|
||||
$endDate->mysqlDatetime( FALSE ),
|
||||
$startDate->mysqlDatetime( FALSE ),
|
||||
$startDateTimezone->mysqlDatetime(),
|
||||
$endDateTimezone->mysqlDatetime(),
|
||||
$endDateTimezone->mysqlDatetime(),
|
||||
$startDateTimezone->mysqlDatetime()
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
$where[] = array(
|
||||
"(
|
||||
( DATE( event_start_date ) >= ? AND event_all_day=1 )
|
||||
OR
|
||||
( event_start_date >= ? AND event_all_day=0 )
|
||||
OR
|
||||
( event_end_date IS NOT NULL AND DATE( event_start_date ) <= ? AND DATE( event_end_date ) >= ? AND event_all_day=1 )
|
||||
OR
|
||||
( event_end_date IS NOT NULL AND event_start_date <= ? AND event_end_date >= ? AND event_all_day=0 )
|
||||
)",
|
||||
$startDate->mysqlDatetime( FALSE ),
|
||||
$startDateTimezone->mysqlDatetime(),
|
||||
$startDate->mysqlDatetime( FALSE ),
|
||||
$startDate->mysqlDatetime( FALSE ),
|
||||
$startDateTimezone->adjust('+1 day')->mysqlDatetime(),
|
||||
$startDateTimezone->mysqlDatetime()
|
||||
);
|
||||
}
|
||||
|
||||
$offset = isset( Request::i()->offset ) ? intval( Request::i()->offset ) : 0;
|
||||
$limit = isset( Request::i()->limit ) ? min( array( intval( Request::i()->limit ), 50 ) ) : 20;
|
||||
$query = Db::i()->select( $select, 'calendar_events', $where, $sort, array( $offset, $limit ), NULL, implode( " OR ", $having ) );
|
||||
$query->join( 'calendar_calendars', "event_calendar_id = cal_id" );
|
||||
$query->join( 'core_clubs', "cal_club_id = id" );
|
||||
|
||||
$results = new ActiveRecordIterator( $query, '\IPS\calendar\Event' );
|
||||
$results = Event::retrieveEvents( $startDate, $endDate, null, null, false, null, null, false, $location, null, $where );
|
||||
}
|
||||
|
||||
$totalCount = count( $results );
|
||||
$offset = isset( Request::i()->offset ) ? intval( Request::i()->offset ) : 0;
|
||||
$limit = isset( Request::i()->limit ) ? min( array( intval( Request::i()->limit ), 50 ) ) : 20;
|
||||
$results = array_slice( $results, $offset, $limit, true );
|
||||
|
||||
$mapMarkers = array();
|
||||
foreach ( $results as $event )
|
||||
{
|
||||
@@ -938,18 +857,15 @@ class view extends Controller
|
||||
|
||||
if( Request::i()->isAjax() )
|
||||
{
|
||||
$countQuery = Db::i()->select( $select, 'calendar_events', $where, NULL, array(), NULL, is_array( $having ) ? implode( " OR ", $having ) : NULL );
|
||||
$countQuery->join( 'calendar_calendars', "event_calendar_id = cal_id" );
|
||||
$countQuery->join( 'core_clubs', "cal_club_id = id" );
|
||||
|
||||
$output = Theme::i()->getTemplate( 'events' )->searchResults( $results );
|
||||
Member::loggedIn()->language()->parseOutputForDisplay( $output );
|
||||
|
||||
$toReturn = array(
|
||||
'totalCount' => $countQuery->count(),
|
||||
'totalCount' => $totalCount,
|
||||
'count' => count( $results ),
|
||||
'content' => $output,
|
||||
'markers' => $mapMarkers,
|
||||
'markerCount' => count( $mapMarkers ),
|
||||
'blurb' => '', // @todo
|
||||
'online' => ( Request::i()->show == 'online' )
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user