Version 5.0.0 beta 11.1

This commit is contained in:
Neo committed 2025-12-19 18:00:22 -08:00
1 parent 264eeb97e0
commit 90e8c7e903
466 files changed
+7796 -2394

No files matched your search

+180 -163
View File
@@ -790,16 +790,34 @@ IPSCONTENT;
$coverPhoto = $event->coverPhoto();
$return .= <<<IPSCONTENT
<div class='cCalendarBlock i-background_1 ipsInnerBox
<li class="ipsData__item
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->ui( 'css' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= \IPS\Theme\Template::htmlspecialchars( $event->ui('css'), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" data-eventID='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->ui( 'dataAttributes' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
>
<div class='ipsCoverPhoto' data-controller='core.global.core.coverPhoto' data-coverOffset='
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->url( 'getPrefComment' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" class="ipsLinkPanel" aria-hidden="true" tabindex="-1"><span>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span></a>
<div class="ipsData__image">
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->url( 'getPrefComment' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" class='ipsCoverPhoto' data-controller='core.global.core.coverPhoto' data-coverOffset='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $coverPhoto->offset, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -807,15 +825,15 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $coverPhoto->offset, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
' aria-hidden="true" tabindex="-1">
IPSCONTENT;
if ( $coverPhoto->file ):
$return .= <<<IPSCONTENT
<div class='ipsCoverPhoto__container'>
<img src='
<div class='ipsCoverPhoto__container'>
<img src='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $coverPhoto->file->url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -824,15 +842,18 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' loading='lazy'>
</div>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_50'>
</a>
</div>
<div class="ipsData__content">
<div class="ipsData__main">
<div class="ipsPhotoPanel i-margin-bottom_2">
<div class='ipsUserPhoto ipsUserPhoto--mini'>
<img src='
IPSCONTENT;
@@ -840,86 +861,51 @@ $return .= \IPS\Theme\Template::htmlspecialchars( $event->author()->photo, ENT_Q
$return .= <<<IPSCONTENT
' alt='' loading='lazy'>
</div>
</div>
<div class='ipsColumns__primary'>
<h2 class='ipsTitle ipsTitle--h3 ipsPageHead_barText ipsPageHead_barText_small'><a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->url( "getPrefComment" ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' title='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
IPSCONTENT;
$return .= htmlspecialchars( mb_substr( html_entity_decode( $event->title ), '0', "18" ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE ) . ( ( mb_strlen( html_entity_decode( $event->title ) ) > "18" ) ? '&hellip;' : '' );
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $event->hidden() === 1 ):
$return .= <<<IPSCONTENT
<span class="ipsBadge ipsBadge--icon ipsBadge--warning" data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'pending_approval', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-triangle-exclamation'></i></span>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</a></h2>
</div>
</div>
</div>
<br>
<div class='i-padding_3'>
<h3>
<div class="ipsPhotoPanel__text">
<p class="i-color_primary i-font-weight_500 i-font-size_-2 i-text-transform_uppercase i-margin-bottom_1">
IPSCONTENT;
$startDate = $event->nextOccurrence( $date, 'startDate' );
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $revertToFirst AND $startDate AND $startDate->mon > $date->mon ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$startDate = $event->nextOccurrence( \IPS\calendar\Date::getDate( $date->year, $date->mon, 1 ), 'startDate' );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $startDate ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$nextEndDate = $event->nextOccurrence( $startDate ?: $date, 'endDate' );
$return .= <<<IPSCONTENT
IPSCONTENT;
$sameDay = ( $nextEndDate AND $startDate->calendarDate() == $nextEndDate->calendarDate() );
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $startDate->calendarDate(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -938,37 +924,37 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $event->_end_date AND $event->nextOccurrence( $startDate ?: $date, 'endDate' ) ):
$return .= <<<IPSCONTENT
&nbsp;&nbsp;<i class='fa-solid fa-circle-arrow-right i-font-size_2 i-color_soft'></i>&nbsp;&nbsp;
<span class="i-opacity_4"><i class="fa-solid fa-arrow-right-long" style="margin-inline:.5em;"></i></span>
IPSCONTENT;
if ( !$sameDay ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->nextOccurrence( $startDate ?: $date, 'endDate' )->calendarDate(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( !$event->all_day ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( !$sameDay ):
@@ -979,30 +965,30 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->nextOccurrence( $startDate ?: $date, 'endDate' )->localeTime( FALSE ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->lastOccurrence( 'startDate' )->calendarDate(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -1021,13 +1007,13 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $event->_end_date AND $event->lastOccurrence( 'endDate' ) ):
$return .= <<<IPSCONTENT
&nbsp;&nbsp;<i class='fa-solid fa-circle-arrow-right i-font-size_2 i-color_soft'></i>&nbsp;&nbsp;
<span class="i-opacity_4"><i class="fa-solid fa-arrow-right-long" style="margin-inline:.5em;"></i></span>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->lastOccurrence( 'endDate' )->calendarDate(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -1046,78 +1032,116 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</h3>
</p>
<h2 class='ipsData__title'>
<div class="ipsBadges">
IPSCONTENT;
if ( $event->hidden() === 1 ):
$return .= <<<IPSCONTENT
<span class="ipsBadge ipsBadge--icon ipsBadge--warning" data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'pending_approval', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-triangle-exclamation'></i></span>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->url( "getPrefComment" ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' title='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</a>
</h2>
</div>
</div>
<div>
<div class="ipsColumns">
<div class="ipsColumns__primary">
IPSCONTENT;
if ( $event->recurring ):
$return .= <<<IPSCONTENT
<p class='i-color_soft'>
<p class='i-color_soft i-margin-bottom_2'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->_recurring_text, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</p><br>
</p>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div class='ipsRichText
<div class='ipsRichText
IPSCONTENT;
if ( ( \IPS\Widget\Request::i()->isAjax() or $truncate ) && $event->content ):
$return .= <<<IPSCONTENT
ipsTruncate_5
ipsTruncate_3
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
'>
IPSCONTENT;
if ( $event->content ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( \IPS\Widget\Request::i()->isAjax() or $truncate ):
$return .= <<<IPSCONTENT
{$event->truncated()}
{$event->truncated()}
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
{$event->content}
{$event->content}
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<p class='ipsRichText i-margin-block_2'><a href='
<p class='ipsRichText i-margin-block_2'><a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->url( "getPrefComment" ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -1127,24 +1151,76 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'event_details', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a></p>
</div>
</div>
IPSCONTENT;
if ( $map !== FALSE AND $event->map( $map[0], $map[1] ) ):
if ( $event->rsvp ):
$return .= <<<IPSCONTENT
<div class='cCalendarBlock_map'>
{$event->map( $map[0], $map[1] )}
</div>
<h4 class="i-font-weight_500 i-margin-top_3">
IPSCONTENT;
$pluralize = array( $event->attendeeCount( \IPS\calendar\Event::RSVP_YES ) ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'event_rsvp_attendees_list', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
$return .= <<<IPSCONTENT
</h4>
IPSCONTENT;
if ( \count( $event->attendees( \IPS\calendar\Event::RSVP_YES, 5 ) ) ):
$return .= <<<IPSCONTENT
<ul class='ipsCaterpillar i-margin-top_2'>
IPSCONTENT;
foreach ( $event->attendees( \IPS\calendar\Event::RSVP_YES, 5 ) as $attendee ):
$return .= <<<IPSCONTENT
<li>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $attendee, 'tiny' );
$return .= <<<IPSCONTENT
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<br>
<a href='
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
if ( $map !== FALSE AND $event->map( $map[0], $map[1] ) ):
$return .= <<<IPSCONTENT
<div class='ipsColumns__secondary i-basis_300 cCalendarBlock_map'>
{$event->map( $map[0], $map[1] )}
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<div class="i-flex i-flex-wrap_wrap i-gap_3 i-align-items_center i-margin-top_3">
<a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->container()->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -1152,12 +1228,12 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->container()->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
i-margin-end_auto'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->container()->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
if ( $event->container()->allow_comments ):
@@ -1166,7 +1242,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->url()->setQueryString( 'tab', 'comments' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
' class="i-color_soft">
IPSCONTENT;
$pluralize = array( $event->comments ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'event_comment_count', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
@@ -1177,18 +1253,7 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $event->container()->allow_comments AND $event->container()->allow_reviews ):
$return .= <<<IPSCONTENT
&middot;
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $event->container()->allow_reviews ):
@@ -1197,7 +1262,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $event->url()->setQueryString( 'tab', 'reviews' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
' class="i-color_soft">
IPSCONTENT;
$pluralize = array( $event->reviews ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'event_review_count', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
@@ -1208,57 +1273,9 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $event->rsvp ):
$return .= <<<IPSCONTENT
<hr class='ipsHr'>
<h4><strong>
IPSCONTENT;
$pluralize = array( $event->attendeeCount( \IPS\calendar\Event::RSVP_YES ) ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'event_rsvp_attendees_list', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
$return .= <<<IPSCONTENT
</strong></h4>
IPSCONTENT;
if ( \count( $event->attendees( \IPS\calendar\Event::RSVP_YES, 5 ) ) ):
$return .= <<<IPSCONTENT
<ul class='ipsList ipsList--inline i-gap_0 i-margin-top_2'>
IPSCONTENT;
foreach ( $event->attendees( \IPS\calendar\Event::RSVP_YES, 5 ) as $attendee ):
$return .= <<<IPSCONTENT
<li>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $attendee, 'tiny' );
$return .= <<<IPSCONTENT
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
</div>
</div>
IPSCONTENT;
@@ -1298,7 +1315,7 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</li>
IPSCONTENT;
return $return;