Version 5.0.0 beta 5

This commit is contained in:
Neo committed 2025-12-19 17:04:22 -08:00
1 parent 2f24f9de48
commit 57d9db6ce2
218 files changed
+5331 -7416

No files matched your search

@@ -155,14 +155,6 @@ class event extends Controller
/* Online User Location */
Session::i()->setLocation( $this->event->url(), $this->event->onlineListPermissions(), 'loc_calendar_viewing_event', array( $this->event->title => FALSE ) );
/* Reminder */
$reminder = NULL;
try
{
$reminder = Db::i()->select( '*', 'calendar_event_reminders', array( 'reminder_event_id=? and reminder_member_id=?', $this->event->id, (int) Member::loggedIn()->member_id ) )->first();
}
catch ( UnderflowException $e ) {}
/* Address */
$address = NULL;
$location = NULL;
@@ -186,13 +178,28 @@ class event extends Controller
'@type' => "Event",
'url' => (string) $this->event->url(),
'name' => $this->event->mapped('title'),
'description' => $this->event->truncated( TRUE, NULL ),
'description' => $this->event->truncated( TRUE, NULL ) ?? "",
'eventStatus' => "EventScheduled",
'organizer' => array(
'@type' => 'Person',
'name' => $this->event->author()->name,
'image' => $this->event->author()->get_photo( TRUE, TRUE )
),
'startDate' => $this->event->nextOccurrence( Date::getDate(), 'startDate' ) ?
$this->event->nextOccurrence( Date::getDate(), 'startDate' )->format( $format ) :
$this->event->lastOccurrence( 'startDate' )->format( $format )
);
if( $this->event->author()->member_id )
{
Output::i()->jsonLd['event']['organizer']['url'] = (string) $this->event->author()->url();
}
if( $image = $this->event->coverPhotoFile() )
{
Output::i()->jsonLd['event']['image'] = (string) $image->url;
}
if( $this->event->_end_date )
{
Output::i()->jsonLd['event']['endDate'] = $this->event->nextOccurrence( $this->event->nextOccurrence( Date::getDate(), 'startDate' ) ?: Date::getDate(), 'endDate' ) ?
@@ -210,13 +217,10 @@ class event extends Controller
);
}
if( $this->event->coverPhoto()->file )
{
Output::i()->jsonLd['event']['image'] = (string) $this->event->coverPhoto()->file->url;
}
if( $this->event->rsvp )
{
Output::i()->jsonLd['event']['eventAttendanceMode'] = 'https://schema.org/MixedEventAttendanceMode';
if( count( $attendees[1] ) )
{
Output::i()->jsonLd['event']['attendee'] = array();
@@ -249,6 +253,8 @@ class event extends Controller
{
Output::i()->jsonLd['event']['location']['name'] = $addressName;
}
Output::i()->jsonLd['event']['eventAttendanceMode'] = 'https://schema.org/OfflineEventAttendanceMode';
}
/* If not, default to events URL */
else
@@ -268,10 +274,12 @@ class event extends Controller
'@type' => 'VirtualLocation',
'url' => $this->event->url
);
Output::i()->jsonLd['event']['eventAttendanceMode'] = 'https://schema.org/OnlineEventAttendanceMode';
}
/* Display */
Output::i()->output = Theme::i()->getTemplate( 'view' )->view( $this->event, $commentsAndReviews, $attendees, $address, $reminder );
Output::i()->output = Theme::i()->getTemplate( 'view' )->view( $this->event, $commentsAndReviews, $attendees, $address, $this->event->getReminder() );
return null;
}
@@ -484,12 +492,7 @@ class event extends Controller
}
/* Existing reminder? */
$existing = NULL;
try
{
$existing = Db::i()->select( '*', 'calendar_event_reminders', array( 'reminder_event_id=? and reminder_member_id=?', $this->event->id, (int) Member::loggedIn()->member_id ) )->first();
}
catch ( UnderflowException $e ) {}
$existing = $this->event->getReminder();
/* Build the form */
@@ -520,9 +523,14 @@ class event extends Controller
Db::i()->update( 'core_tasks', array( 'enabled' => 1 ), array( '`key`=?', 'eventreminders' ) );
$message = 'event_reminder_added';
Output::i()->redirect( $this->event->url(), $message );
if( Request::i()->isAjax() )
{
Output::i()->sendOutput( Theme::i()->getTemplate( 'view', 'calendar', 'front' )->reminderButton( $this->event, $this->event->getReminder() ) );
}
else
{
Output::i()->redirect( $this->event->url(), 'event_reminder_added' );
}
}
/* Display */
@@ -573,16 +581,6 @@ class event extends Controller
*/
protected function reminderButton() : void
{
/* Existing reminder? */
$existing = NULL;
try
{
$existing = Db::i()->select( '*', 'calendar_event_reminders', array( 'reminder_event_id=? and reminder_member_id=?', $this->event->id, (int)Member::loggedIn()->member_id ) )->first();
}
catch ( UnderflowException $e )
{
}
Output::i()->sendOutput( Theme::i()->getTemplate( 'view', 'calendar', 'front' )->reminderButton( $this->event, $existing ) );
Output::i()->sendOutput( Theme::i()->getTemplate( 'view', 'calendar', 'front' )->reminderButton( $this->event, $this->event->getReminder() ) );
}
}
@@ -602,7 +602,15 @@ class view extends Controller
}
/* Sort */
$startDate = Date::getDate();
if( !isset( Request::i()->get ) or Request::i()->get == 'byMonth' )
{
$startDate = Date::getDate( Request::i()->y ?: null, Request::i()->m ?: null, 1, 12 );
}
else
{
$startDate = Date::getDate();
}
@usort( $events, function( $a, $b ) use ( $startDate )
{
if( $a->nextOccurrence( $startDate, 'startDate' ) === NULL )
@@ -645,7 +653,7 @@ class view extends Controller
{
foreach( $events as $idx => $event )
{
$eventHtml .= Theme::i()->getTemplate( 'events', 'calendar' )->event( $event );
$eventHtml .= Theme::i()->getTemplate( 'events', 'calendar' )->event( $event, 'normal', $startDate );
}
}
else