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

+64 -92
View File
@@ -6,10 +6,9 @@ class class_calendar_front_browse extends \IPS\Theme\Template
$return .= <<<IPSCONTENT
<div class=''>
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager_prev'>
<a href="
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager_prev'>
<a href="
IPSCONTENT;
if ( $thisCalendar ):
@@ -40,29 +39,29 @@ IPSCONTENT;
$sprintf = array($yesterday->monthName, $yesterday->mday, $yesterday->year); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cal_month_day', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
' rel='prev nofollow' data-action='changeView'>
<span class='ipsPager_type'>
<span class='ipsPager_type'>
IPSCONTENT;
$sprintf = array($yesterday->monthName, $yesterday->mday); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cal_month_day_noyear', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
</span>
<span class='ipsPager_title'>
<span class='ipsPager_title'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $yesterday->year, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
</a>
</div>
<div class='ipsPager_center cCalendarNav' data-role='calendarNav'>
<h1 class='ipsTitle ipsTitle--h3'>
</a>
</div>
<div class='ipsPager_center cCalendarNav' data-role='calendarNav'>
<h1 class='ipsTitle ipsTitle--h3'>
IPSCONTENT;
$sprintf = array($date->monthName, $date->mday, $date->year); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cal_month_day', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
</h1>
</div>
<div class='ipsPager_next'>
<a href="
</div>
<div class='ipsPager_next'>
<a href="
IPSCONTENT;
if ( $thisCalendar ):
@@ -93,106 +92,87 @@ IPSCONTENT;
$sprintf = array($tomorrow->monthName, $tomorrow->mday, $tomorrow->year); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cal_month_day', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
' rel='next nofollow' data-action='changeView'>
<span class='ipsPager_type'>
<span class='ipsPager_type'>
IPSCONTENT;
$sprintf = array($tomorrow->monthName, $tomorrow->mday); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cal_month_day_noyear', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
</span>
<span class='ipsPager_title'>
<span class='ipsPager_title'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $tomorrow->year, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
</a>
</div>
</a>
</div>
</div>
<div class=''>
<div class=''>
<h2 class='ipsTitle ipsTitle--h4 ipsTitle--padding'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'events_happening_today', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h2>
IPSCONTENT;
if ( $events['count'] > 0 ):
$return .= <<<IPSCONTENT
<ol class='cCalendarDay ipsData'>
IPSCONTENT;
if ( isset( $events['allDay'] ) && \count( $events['allDay'] ) ):
$return .= <<<IPSCONTENT
<li class='ipsData__item cCalendarDay_allDay'>
<div class='i-basis_140 cCalendarDay_hour'>
<h2 class='i-font-weight_600 i-color_hard i-font-size_4'>
<h2 class='ipsTitle ipsTitle--h4 ipsTitle--padding i-background_2'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'day_view_all_day', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h2>
</div>
<div class='ipsData__main'>
<ul class='ipsGrid ipsGrid--event-daily i-basis_300'>
<i-data>
<ol class='ipsData ipsData--featured ipsData--calendarAllDay'>
IPSCONTENT;
foreach ( $events['allDay'] as $event ):
$return .= <<<IPSCONTENT
<li>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "view", "calendar" )->eventBlock( $event, $date, true );
$return .= <<<IPSCONTENT
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</div>
</li>
</ol>
</i-data>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $events as $hour => $hourEvents ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( !empty( $hourEvents ) && $hour !== 'allDay' && $hour !== 'count' ):
$return .= <<<IPSCONTENT
<li class='ipsData__item'>
<div class='i-basis_140 cCalendarDay_hour'>
<h2 class='i-font-weight_600 i-color_hard i-font-size_4'>
<h2 class='ipsTitle ipsTitle--h4 ipsTitle--padding i-background_2'>
IPSCONTENT;
if ( \IPS\calendar\Date::usesAmPm() ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \IPS\calendar\Date::getTwelveHour( $hour ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
@@ -203,54 +183,36 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \IPS\calendar\Date::getAmPm( $hour ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $hour, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
<span>:00</span>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</h2>
</div>
<div class='ipsData__main'>
<ul class='ipsGrid ipsGrid--event-daily i-basis_300'>
</h2>
<i-data>
<ol class='ipsData ipsData--featured ipsData--calendarHourly'>
IPSCONTENT;
foreach ( $hourEvents as $idx => $event ):
$return .= <<<IPSCONTENT
<li>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "view", "calendar" )->eventBlock( $event, $date, true );
$return .= <<<IPSCONTENT
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</div>
</li>
IPSCONTENT;
endif;
$return .= \IPS\Theme::i()->getTemplate( "view", "calendar" )->eventBlock( $event, $date, true );
$return .= <<<IPSCONTENT
@@ -260,27 +222,37 @@ endforeach;
$return .= <<<IPSCONTENT
</ol>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<div class='ipsEmptyMessage'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_events_today', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</div>
</i-data>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<div class='ipsEmptyMessage'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_events_today', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
return $return;
+26 -43
View File
@@ -1271,62 +1271,28 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
if ( $row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
<div class='cFollowedContent_anon'>
<span class='ipsBadge ipsBadge--icon' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<ul class='ipsData__followedInfo'>
<li class='i-color_hard i-font-weight_500' title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
$return .= <<<IPSCONTENT
</li>
<li class='i-color_soft' title='
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_how', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followFrequency'>
IPSCONTENT;
if ( $row->_followData['follow_notify_freq'] == 'none' ):
$return .= <<<IPSCONTENT
<i class='fa-regular fa-bell-slash'></i>
<i class='fa-regular fa-bell-slash'></i>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
endif;
@@ -1337,8 +1303,25 @@ IPSCONTENT;
$val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='cFollowedContent_manage'>
IPSCONTENT;
+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;
+17 -15
View File
@@ -433,16 +433,17 @@ IPSCONTENT;
$return = '';
$return .= <<<IPSCONTENT
<div class='ipsComposeArea ipsComposeArea--unavailable'>
<div class='ipsComposeArea__photo'>
<div class="ipsComposeAreaWrapper">
<div class='ipsComposeArea ipsComposeArea--unavailable'>
<div class='ipsComposeArea__photo'>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( \IPS\Member::loggedIn(), 'fluid' );
$return .= <<<IPSCONTENT
</div>
<div class='ipsComposeArea_editor'>
<div class="ipsComposeArea_dummy">
<span class='i-color_warning'><i class="fa-solid fa-triangle-exclamation"></i>
<div class='ipsComposeArea_editor'>
<div class="ipsComposeArea_dummy">
<span class='i-color_warning'><i class="fa-solid fa-triangle-exclamation"></i>
IPSCONTENT;
$val = "{$lang}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -463,27 +464,27 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
if ( \count( $warnings) ):
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $warnings as $idx => $warning ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $idx === 0 ):
$return .= <<<IPSCONTENT
<br><br>
<a href="
<br><br>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $warning->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -493,24 +494,25 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_warning_details', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
</div>
</div>
@@ -1704,7 +1706,7 @@ IPSCONTENT;
if ( !$standalone ):
$return .= <<<IPSCONTENT
<div class='cGuestTeaser i-margin-bottom_3'>
<div class='cGuestTeaser'>
<h2 class='ipsTitle ipsTitle--h3'>
IPSCONTENT;
+3 -7
View File
@@ -7503,7 +7503,7 @@ $return .= <<<IPSCONTENT
<link rel="preload" as="font" type="font/woff2" href="
IPSCONTENT;
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/fontawesome/webfonts/fa-solid-900.woff2", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/static/fontawesome/webfonts/fa-solid-900.woff2", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= <<<IPSCONTENT
" crossorigin="anonymous">
@@ -23432,11 +23432,7 @@ IPSCONTENT;
if ( \get_class( $widget ) !== 'IPS\cms\widgets\Database' ):
$return .= <<<IPSCONTENT
ipsWidget ipsWidget--
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $area->orientation(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
ipsWidget
IPSCONTENT;
endif;
@@ -23444,7 +23440,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $widget->getWrapperClasses() as $class ):
foreach ( $area->widgetClasses( $widget ) as $class ):
$return .= <<<IPSCONTENT
IPSCONTENT;
+15
View File
@@ -4749,6 +4749,21 @@ $return .= <<<IPSCONTENT
ipsSideMenu_itemActive
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
" aria-selected="
IPSCONTENT;
if ( $currentType == $key ):
$return .= <<<IPSCONTENT
true
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
false
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
">
+39 -52
View File
@@ -1618,34 +1618,13 @@ endif;
$return .= <<<IPSCONTENT
</p>
</div>
<div>
<span class='ipsBadge ipsBadge--icon ipsBadge--new
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
ipsHide
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
<div class='i-basis_180'>
<ul>
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
' data-role='followDate' hidden><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
@@ -1670,7 +1649,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
@@ -1683,10 +1662,25 @@ $val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\
$return .= <<<IPSCONTENT
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='i-basis_180 i-text-align_center'>
<div class='cFollowedContent_manage'>
IPSCONTENT;
@@ -1842,29 +1836,7 @@ $pluralize = array( $count ); $return .= \IPS\Member::loggedIn()->language()->ad
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div>
<span class='ipsBadge ipsBadge--icon ipsBadge--new
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
ipsHide
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
<div class='i-basis_180'>
<ul>
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
@@ -1895,7 +1867,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
@@ -1908,10 +1880,25 @@ $val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\
$return .= <<<IPSCONTENT
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='i-basis_180 i-text-align_center'>
<div class='cFollowedContent_manage'>
IPSCONTENT;
+47 -60
View File
@@ -561,35 +561,13 @@ endif;
$return .= <<<IPSCONTENT
</ul>
</div>
<div class='i-basis_70'>
<span class='ipsBadge ipsBadge--icon ipsBadge--new
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
ipsHide
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
<div class='i-basis_180'>
<ul>
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
' data-role='followDate' hidden><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
@@ -614,7 +592,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
@@ -627,10 +605,25 @@ $val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\
$return .= <<<IPSCONTENT
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='i-basis_180 i-text-align_center'>
<div class='cFollowedContent_manage'>
IPSCONTENT;
@@ -795,7 +788,6 @@ endif;
$return .= <<<IPSCONTENT
</div>
<h4>
<a href='
IPSCONTENT;
@@ -873,60 +865,39 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<div>
<span class='ipsBadge ipsBadge--icon' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class='fa-solid fa-eye-slash'></i></span>
</div>
<ul class='ipsData__stats'>
<li title='
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
' data-role='followDate' hidden><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
$return .= <<<IPSCONTENT
</li>
<li title='
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_how', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followFrequency'>
IPSCONTENT;
if ( $row->_followData['follow_notify_freq'] == 'none' ):
$return .= <<<IPSCONTENT
<i class='fa-regular fa-bell-slash'></i>
<i class='fa-regular fa-bell-slash'></i>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
endif;
@@ -937,9 +908,25 @@ IPSCONTENT;
$val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='cFollowedContent_manage'>
IPSCONTENT;
+24 -4
View File
@@ -1860,7 +1860,7 @@ IPSCONTENT;
if ( !empty( $tags ) OR $tagSource !== NULL ):
$return .= <<<IPSCONTENT
<div class='ipsColumns' data-controller='core.global.editor.customtags' data-tagFieldType='codemirror' data-tagFieldID='elCodemirror_
<div class='ipsColumns ipsCodebox__outer-wrap' data-controller='core.global.editor.customtags' data-tagFieldType='codemirror' data-tagFieldID='elCodemirror_
IPSCONTENT;
if ( $id ):
@@ -1905,7 +1905,7 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div class='i-background_3 i-padding_2' data-role="editor"
<div class='i-background_3 i-padding_2 ipsCodebox__inner-wrap' data-role="editor"
IPSCONTENT;
if ( $preview ):
@@ -9000,7 +9000,17 @@ if ( !empty( $tags ) or !empty( $allOptions['tagSource'] ) ):
$return .= <<<IPSCONTENT
<div
class='ipsColumns'
class='ipsColumns
IPSCONTENT;
if ( @$allOptions["codeMode"] ):
$return .= <<<IPSCONTENT
ipsCodebox__outer-wrap
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
'
data-controller='core.global.editor.customtags'
data-tagFieldType='
IPSCONTENT;
@@ -9041,7 +9051,17 @@ $return .= <<<IPSCONTENT
>
<div class='ipsColumns__primary'>
<div data-role="editor">
<div data-role="editor"
IPSCONTENT;
if ( @$allOptions["codeMode"] ):
$return .= <<<IPSCONTENT
class='ipsCodebox__inner-wrap'
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
IPSCONTENT;
+4 -4
View File
@@ -2064,7 +2064,7 @@ $return .= <<<IPSCONTENT
<link rel='stylesheet' href='
IPSCONTENT;
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/fontawesome/css/all.min.css?v=6.7.1", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/static/fontawesome/css/all.min.css?v=6.7.2", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= <<<IPSCONTENT
'>
@@ -2757,7 +2757,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
if ( str_contains( $js, "interface/iro" ) or str_contains( $js, 'interface/tiptap' ) or str_contains( $js, "interface/pagebuilder" ) or str_contains( $js, 'interface/codehighlighting' ) ):
if ( str_contains( $js, "interface/static/iro" ) or str_contains( $js, 'interface/static/tiptap' ) or str_contains( $js, "interface/static/pagebuilder" ) or str_contains( $js, 'interface/static/codehighlighting' ) ):
$return .= <<<IPSCONTENT
type="module"
IPSCONTENT;
@@ -2768,7 +2768,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
if ( str_contains( $js, "interface/iro" ) ):
if ( str_contains( $js, "interface/static/iro" ) ):
$return .= <<<IPSCONTENT
data-iro-loader
IPSCONTENT;
@@ -2799,7 +2799,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
if ( str_contains( $js, 'interface/tiptap' ) or str_contains( $js, "interface/pagebuilder" ) or str_contains( $js, 'interface/codehighlighting' ) ):
if ( str_contains( $js, 'interface/static/tiptap' ) or str_contains( $js, "interface/static/pagebuilder" ) or str_contains( $js, 'interface/static/codehighlighting' ) ):
$return .= <<<IPSCONTENT
type="module"
IPSCONTENT;
+2 -2
View File
@@ -1697,7 +1697,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" method="post" accept-charset='utf-8' data-ipsForm class="ipsForm ipsForm_fullWidth">
" method="post" accept-charset='utf-8' data-ipsForm class="ipsForm ipsForm--fullWidth">
<input type="hidden" name="mfa_auth" value="1">
<input type="hidden" name="csrfKey" value="
IPSCONTENT;
@@ -1950,7 +1950,7 @@ IPSCONTENT;
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" method="post" accept-charset='utf-8' data-ipsForm class="ipsForm ipsForm_fullWidth">
" method="post" accept-charset='utf-8' data-ipsForm class="ipsForm ipsForm--fullWidth">
<input type="hidden" name="mfa_setup" value="1">
<input type="hidden" name="csrfKey" value="
IPSCONTENT;
+20 -27
View File
@@ -1084,35 +1084,13 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<div class='cFollowedContent_anon'>
<span class='ipsBadge ipsBadge--icon ipsBadge--new
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
ipsHide
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
<div class='i-basis_180 cFollowedContent_info'>
<ul>
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
' data-role='followDate' hidden><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
@@ -1137,7 +1115,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
@@ -1150,10 +1128,25 @@ $val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\
$return .= <<<IPSCONTENT
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='i-basis_200 i-text-align_end cFollowedContent_manage'>
<div class='cFollowedContent_manage'>
IPSCONTENT;
+145 -188
View File
@@ -356,7 +356,6 @@ $return .= \IPS\Theme\Template::htmlspecialchars( $form->error, ENT_QUOTES | ENT
$return .= <<<IPSCONTENT
</div>
<br>
IPSCONTENT;
@@ -436,9 +435,8 @@ endforeach;
$return .= <<<IPSCONTENT
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_50 i-text-align_center'>
<span class='cDownloadsSubmit_step'>
<div class='ipsBox ipsPull i-margin-bottom_block'>
<h3 class='ipsBox__header'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $step, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -447,11 +445,7 @@ IPSCONTENT;
$step++;
$return .= <<<IPSCONTENT
</span>
</div>
<div class='ipsColumns__primary'>
<div class='ipsBox'>
<h3 class='ipsBox__header'>
.
IPSCONTENT;
if ( $category->multiple_files ):
@@ -477,29 +471,29 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</h3>
<div class='i-padding_3'>
<div class='i-padding_3'>
IPSCONTENT;
if ( isset( $form->elements['']['import_files'] ) || isset( $form->elements['']['url_files'] ) ):
$return .= <<<IPSCONTENT
<ul class='ipsList ipsList--inline i-text-align_end'>
<ul class='ipsButtons ipsButtons--end i-margin-bottom_2'>
IPSCONTENT;
if ( isset( $form->elements['']['url_files'] ) ):
$return .= <<<IPSCONTENT
<li>
<a href='#' class='ipsButton ipsButton--soft ipsButton--small' id='elURLFiles' data-ipsMenu data-ipsMenu-closeOnClick='false' data-ipsMenu-appendTo='#elDownloadsSubmit'>
<i class='fa-solid fa-earth-americas'></i>
<li>
<button type="button" class='ipsButton ipsButton--soft ipsButton--small' id='elURLFiles' data-ipsMenu data-ipsMenu-closeOnClick='false' data-ipsMenu-appendTo='#elDownloadsSubmit'>
<i class='fa-solid fa-earth-americas'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'add_files_by_url', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
<i class='fa-solid fa-caret-down'></i>
<span class='ipsNotification
<span class='ipsNotification
IPSCONTENT;
if ( !\count( $form->elements['']['url_files']->value ) ):
@@ -515,41 +509,42 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \count( $form->elements['']['url_files']->value ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
</a>
<div id='elURLFiles_menu' class='ipsMenu ipsMenu_normal ipsHide i-padding_3'>
<ul class='ipsFieldRow--fullWidth'>
{$form->elements['']['url_files']}
</ul>
<hr class='ipsHr'>
<a href='#' class='ipsButton ipsButton--wide ipsButton--primary' data-action='confirmUrls'>
</button>
<div id='elURLFiles_menu' class='ipsMenu ipsMenu_normal i-padding_0 ipsHide'>
<ul class='ipsForm ipsForm--fullWidth'>
{$form->elements['']['url_files']}
<li class="ipsSubmitRow">
<button type="button" class='ipsButton ipsButton--wide ipsButton--primary' data-action='confirmUrls'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'submit_menu_confirm', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</div>
</li>
</button>
</li>
</ul>
</div>
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( isset( $form->elements['']['import_files'] ) ):
$return .= <<<IPSCONTENT
<li>
<a href='#' class='ipsButton ipsButton--soft ipsButton--small' id='elImportFiles' data-ipsMenu data-ipsMenu-closeOnClick='false' data-ipsMenu-appendTo='#elDownloadsSubmit'>
<i class='fa-solid fa-folder'></i>
<li>
<button type="button" class='ipsButton ipsButton--soft ipsButton--small' id='elImportFiles' data-ipsMenu data-ipsMenu-closeOnClick='false' data-ipsMenu-appendTo='#elDownloadsSubmit'>
<i class='fa-solid fa-folder'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'add_files_by_path', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
<i class='fa-solid fa-caret-down'></i>
<span class='ipsNotification
<span class='ipsNotification
IPSCONTENT;
if ( !\count( $form->elements['']['import_files']->value ) ):
@@ -565,60 +560,59 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \count( $form->elements['']['import_files']->value ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
</a>
<div id='elImportFiles_menu' class='ipsMenu ipsMenu_normal ipsHide i-padding_3'>
<ul class='ipsFieldRow--fullWidth'>
{$form->elements['']['import_files']}
</ul>
<hr class='ipsHr'>
<a href='#' class='ipsButton ipsButton--wide ipsButton--primary' data-action='confirmImports'>
</button>
<div id='elImportFiles_menu' class='ipsMenu ipsMenu_normal i-padding_0 ipsHide'>
<ul class='ipsForm ipsForm--fullWidth'>
{$form->elements['']['import_files']}
<li class="ipsSubmitRow">
<button type="button" class='ipsButton ipsButton--wide ipsButton--primary' data-action='confirmImports'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'submit_menu_confirm', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</div>
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div id='elDownloadsSubmit_progress' class='i-position_sticky-top'>
<div class='ipsProgress ipsProgress--animated' >
<div class='ipsProgress__progress' data-progress='0%'></div>
</div>
</button>
</li>
</ul>
</div>
<div id='elDownloadsSubmit_uploader' class=''>
{$form->elements['']['files']->html( $form )}
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div id='elDownloadsSubmit_progress' class="i-margin-bottom_2">
<div class='ipsProgress ipsProgress--animated' >
<div class='ipsProgress__progress' data-progress='0%'></div>
</div>
</div>
<div id='elDownloadsSubmit_uploader'>
{$form->elements['']['files']->html( $form )}
IPSCONTENT;
if ( $category->multiple_files ):
$return .= <<<IPSCONTENT
<button type='button' class='ipsButton ipsButton--soft ipsButton--small ipsHide i-margin-top_3' data-action='uploadMore'>
<button type='button' class='ipsButton ipsButton--soft ipsButton--small ipsHide i-margin-top_3' data-action='uploadMore'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'upload_more_files', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</button>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
</div>
</div>
</div>
@@ -635,11 +629,9 @@ IPSCONTENT;
if ( $category->bitoptions['allowss'] ):
$return .= <<<IPSCONTENT
<div id='elDownloadsSubmit_screenshots'>
<br><br>
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_50 i-text-align_center'>
<span class='cDownloadsSubmit_step'>
<div id='elDownloadsSubmit_screenshots'>
<div class='ipsBox ipsPull i-margin-bottom_block'>
<h3 class='ipsBox__header'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $step, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -648,33 +640,29 @@ IPSCONTENT;
$step++;
$return .= <<<IPSCONTENT
</span>
</div>
<div class='ipsColumns__primary'>
<div class='ipsBox'>
<h3 class='ipsBox__header'>
.
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'add_screenshots', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h3>
<div class='i-padding-inline_3 i-padding-block_2'>
<div class='i-padding_3'>
IPSCONTENT;
if ( isset( $form->elements['']['url_screenshots'] ) ):
$return .= <<<IPSCONTENT
<ul class='ipsList ipsList--inline i-text-align_end'>
<li>
<a href='#' class='ipsButton ipsButton--soft ipsButton--small' id='elURLScreenshots' data-ipsMenu data-ipsMenu-closeOnClick='false' data-ipsMenu-appendTo='#elDownloadsSubmit_screenshots'>
<i class='fa-solid fa-earth-americas'></i>
<ul class='ipsButtons ipsButtons--end i-margin-bottom_2'>
<li>
<button type="button" class='ipsButton ipsButton--soft ipsButton--small' id='elURLScreenshots' data-ipsMenu data-ipsMenu-closeOnClick='false' data-ipsMenu-appendTo='#elDownloadsSubmit_screenshots'>
<i class='fa-solid fa-earth-americas'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'add_screenshots_by_url', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
<i class='fa-solid fa-caret-down'></i>
<span class='ipsNotification
<span class='ipsNotification
IPSCONTENT;
if ( !isset( $form->elements['']['url_screenshots']->value['values'] ) OR !\count( $form->elements['']['url_screenshots']->value['values'] ) ):
@@ -690,47 +678,45 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \count( $form->elements['']['url_screenshots']->value['values'] ?? array() ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
</a>
<div id='elURLScreenshots_menu' class='ipsMenu ipsMenu_wide ipsHide i-padding_3'>
<ul class='ipsFieldRow--fullWidth'>
{$form->elements['']['url_screenshots']}
</ul>
<hr class='ipsHr'>
<a href='#' class='ipsButton ipsButton--wide ipsButton--primary' data-action='confirmScreenshotUrls'>
</button>
<div id='elURLScreenshots_menu' class='ipsMenu ipsMenu_wide ipsHide i-padding_3'>
<ul class='ipsFieldRow--fullWidth'>
{$form->elements['']['url_screenshots']}
</ul>
<hr class='ipsHr'>
<a href='#' class='ipsButton ipsButton--wide ipsButton--primary' data-action='confirmScreenshotUrls'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'submit_menu_confirm', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</div>
</li>
</ul>
</div>
</li>
</ul>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( isset( $form->elements['']['screenshots'] ) ):
$return .= <<<IPSCONTENT
<div id='elDownloadsSubmit_screenshots'>
{$form->elements['']['screenshots']->html( $form )}
</div>
<div id='elDownloadsSubmit_screenshots'>
{$form->elements['']['screenshots']->html( $form )}
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
</div>
</div>
</div>
IPSCONTENT;
@@ -739,10 +725,8 @@ $return .= <<<IPSCONTENT
<div id='elDownloadsSubmit_otherinfo'>
<br><br>
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_50 i-text-align_center'>
<span class='cDownloadsSubmit_step'>
<div class='ipsBox ipsPull i-margin-bottom_block'>
<h3 class='ipsBox__header'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $step, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -751,11 +735,7 @@ IPSCONTENT;
$step++;
$return .= <<<IPSCONTENT
</span>
</div>
<div class='ipsColumns__primary'>
<div class='ipsBox'>
<h3 class='ipsBox__header'>
.
IPSCONTENT;
if ( $newSubmission ):
@@ -781,47 +761,45 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</h3>
<ul class='ipsForm ipsForm--vertical ipsForm--submit-file'>
<ul class='ipsForm ipsForm--vertical ipsForm--submit-file'>
IPSCONTENT;
foreach ( $form->elements as $collection ):
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $collection as $fieldName => $input ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( !\in_array( $fieldName, $nonInfoFields ) ):
$return .= <<<IPSCONTENT
{$input}
{$input}
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</div>
</div>
</ul>
</div>
@@ -830,10 +808,8 @@ IPSCONTENT;
if ( $terms ):
$return .= <<<IPSCONTENT
<br><br>
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_50 i-text-align_center'>
<span class='cDownloadsSubmit_step'>
<div class='ipsBox ipsPull i-margin-bottom_block'>
<h3 class='ipsBox__header'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $step, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -842,22 +818,16 @@ IPSCONTENT;
$step++;
$return .= <<<IPSCONTENT
</span>
</div>
<div class='ipsColumns__primary'>
<div class='ipsBox'>
<h3 class='ipsBox__header'>
.
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'csubmissionterms_placeholder', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h3>
<div class='i-padding_3 ipsRichText'>
{$terms}
</div>
<div class='i-padding_3 ipsRichText'>
{$terms}
</div>
</div>
</div>
IPSCONTENT;
@@ -871,10 +841,8 @@ IPSCONTENT;
elseif ( $terms ):
$return .= <<<IPSCONTENT
<br>
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_50 i-text-align_center'>
<span class='cDownloadsSubmit_step'>
<div class='ipsBox ipsPull i-margin-bottom_block'>
<h3 class='ipsBox__header'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $step, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -883,22 +851,16 @@ IPSCONTENT;
$step++;
$return .= <<<IPSCONTENT
</span>
</div>
<div class='ipsColumns__primary'>
<div class='ipsBox'>
<h3 class='ipsBox__header'>
.
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'csubmissionterms_placeholder', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h3>
<div class='i-padding_3 ipsRichText'>
{$terms}
</div>
<div class='i-padding_3 ipsRichText'>
{$terms}
</div>
</div>
</div>
IPSCONTENT;
@@ -906,92 +868,87 @@ endif;
$return .= <<<IPSCONTENT
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_50'></div>
<div class='ipsColumns__primary'>
<div class='ipsBox i-padding_3 i-text-align_center i-margin-top_3'>
<button type='submit' class='ipsButton ipsButton--primary' data-role='submitForm'>
<div class='ipsBox ipsPull i-padding_2 i-text-align_center'>
<button type='submit' class='ipsButton ipsButton--primary' data-role='submitForm'>
IPSCONTENT;
if ( $bulk ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'continue', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $newSubmission ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $category->multiple_files ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'save_and_submit_files', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'save_and_submit_file', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'save_and_submit_new_version', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</button>
</div>
</div>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'save_and_submit_new_version', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</button>
</div>
</form>
IPSCONTENT;
+1 -1
View File
@@ -2314,7 +2314,7 @@ IPSCONTENT;
elseif ( $file->mustDownloadBeforeReview() ):
$return .= <<<IPSCONTENT
<p class='i-color_soft i-font-weight_600 i-text-align_center i-background_2 i-padding_2'>
<p class='i-color_soft i-font-weight_600 i-text-align_center i-background_2 i-padding_2 i-border-start-start-radius_box i-border-start-end-radius_box'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'no_download_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
+20 -27
View File
@@ -346,35 +346,13 @@ endif;
$return .= <<<IPSCONTENT
</ul>
</div>
<div>
<span class='ipsBadge ipsBadge--icon ipsBadge--new
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
ipsHide
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
<div class='i-basis_180'>
<ul>
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
' data-role='followDate' hidden><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
@@ -399,7 +377,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
@@ -412,10 +390,25 @@ $val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\
$return .= <<<IPSCONTENT
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='i-basis_180 i-text-align_center'>
<div class='cFollowedContent_manage'>
IPSCONTENT;
+15 -13
View File
@@ -319,10 +319,11 @@ IPSCONTENT;
$return = '';
$return .= <<<IPSCONTENT
<div class='ipsComposeArea ipsComposeArea--unavailable'>
<div class='ipsComposeArea_editor'>
<div class="ipsComposeArea_dummy">
<span class='i-color_warning'><i class="fa-solid fa-triangle-exclamation"></i>
<div class="ipsComposeAreaWrapper">
<div class='ipsComposeArea ipsComposeArea--unavailable'>
<div class='ipsComposeArea_editor'>
<div class="ipsComposeArea_dummy">
<span class='i-color_warning'><i class="fa-solid fa-triangle-exclamation"></i>
IPSCONTENT;
$val = "{$lang}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -343,27 +344,27 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
if ( \count( $warnings) ):
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $warnings as $idx => $warning ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $idx === 0 ):
$return .= <<<IPSCONTENT
<br><br>
<a href="
<br><br>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $warning->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -373,24 +374,25 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_warning_details', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
</div>
</div>
+40 -53
View File
@@ -3244,35 +3244,14 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<div>
<span class='ipsBadge ipsBadge--icon ipsBadge--new
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
ipsHide
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
<div class='i-basis_180'>
<ul>
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
' data-role='followDate' hidden><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
@@ -3297,7 +3276,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
@@ -3310,10 +3289,25 @@ $val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\
$return .= <<<IPSCONTENT
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='i-basis_180 i-text-align_center'>
<div class='cFollowedContent_manage'>
IPSCONTENT;
@@ -3579,35 +3573,13 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<div class='cFollowedContent_anon'>
<span class='ipsBadge ipsBadge--icon ipsBadge--new
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
ipsHide
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role='followAnonymous' data-ipsTooltip title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
'><i class='fa-solid fa-eye-slash'></i></span>
</div>
<div class='i-basis_180 cFollowedContent_info'>
<ul>
<ul class="ipsList ipsList--inline i-row-gap_0 i-margin-top_1 i-font-weight_500">
<li title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_when', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='followDate'><i class='fa-regular fa-clock'></i>
' data-role='followDate' hidden><i class='fa-regular fa-clock'></i>
IPSCONTENT;
$val = ( $row->_followData['follow_added'] instanceof \IPS\DateTime ) ? $row->_followData['follow_added'] : \IPS\DateTime::ts( $row->_followData['follow_added'] );$return .= $val->html();
@@ -3632,7 +3604,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='fa-solid fa-bell'></i>
<i class='fa-regular fa-bell'></i>
IPSCONTENT;
@@ -3645,10 +3617,25 @@ $val = "follow_freq_{$row->_followData['follow_notify_freq']}"; $return .= \IPS\
$return .= <<<IPSCONTENT
</li>
<li data-role='followAnonymous'
IPSCONTENT;
if ( !$row->_followData['follow_is_anon'] ):
$return .= <<<IPSCONTENT
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
><i class="fa-regular fa-eye-slash"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'follow_is_anon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
<div class='i-basis_180 i-text-align_center cFollowedContent_manage'>
<div class='cFollowedContent_manage'>
IPSCONTENT;
+30 -24
View File
@@ -1406,7 +1406,7 @@ IPSCONTENT;
$return = '';
$return .= <<<IPSCONTENT
<div class='ipsBox' data-ips-template="invoices">
<div class='ipsBox ipsPull ipsBox--invoicesACP'>
<h2 class='ipsBox__header'>
IPSCONTENT;
@@ -1442,7 +1442,7 @@ endif;
$return .= <<<IPSCONTENT
</h2>
<div class='i-padding_2'>
<div>
{$invoices}
</div>
</div>
@@ -1507,54 +1507,57 @@ foreach ( $rows as $row ):
$return .= <<<IPSCONTENT
<li class='ipsData__item'>
<div class='i-basis_120 i-text-align_center'>
<span class='cNexusCustomerInvoice'>
<div class="i-flex i-flex-wrap_wrap i-align-items_center i-gap_3">
<div class="i-flex_91 i-basis_300 i-flex i-gap_2 i-align-items_center">
<div class='i-flex_00 i-basis_100 i-text-align_center'>
<span class='cNexusCustomerInvoice'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row['i_total'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
{$row['i_status']}
</div>
<div class='ipsData__main'>
<p class='i-link-color_inherit'>
{$row['i_status']}
</div>
<div class='ipsData__main'>
<div class="i-flex i-align-items_center i-gap_3 i-flex-wrap_wrap">
<div class="i-flex_91">
<p class='ipsData__title'>
IPSCONTENT;
if ( $row['_buttons']['view'] ):
$return .= <<<IPSCONTENT
<a href='
<a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row['_buttons']['view']['link'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
{$row['i_title']} <span class='i-color_soft i-font-size_1'>#
<span class='i-color_soft'>#
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row['i_id'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
</span>: {$row['i_title']}
IPSCONTENT;
if ( $row['_buttons']['view'] ):
$return .= <<<IPSCONTENT
</a>
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</p>
<p class='i-font-size_1'>
<span class='i-color_soft'>
</p>
<p class='ipsData__meta'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'invoice_created', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -1564,16 +1567,19 @@ IPSCONTENT;
$val = ( $row['i_date'] instanceof \IPS\DateTime ) ? $row['i_date'] : \IPS\DateTime::ts( $row['i_date'] );$return .= $val->html();
$return .= <<<IPSCONTENT
</span>
</p>
</div>
<div class='i-basis_120 i-text-align_end'>
</p>
</div>
</div>
</div>
</div>
<div class='i-flex_11 i-basis_120 i-text-align_end'>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->controlStrip( $row['_buttons'] );
$return .= <<<IPSCONTENT
</div>
</div>
</li>
+5 -5
View File
@@ -737,27 +737,27 @@ IPSCONTENT;
$return = '';
$return .= <<<IPSCONTENT
<span class="ipsBadge ipsBadge--style
<span class="ipsBadge
IPSCONTENT;
if ( $status == \IPS\nexus\Invoice::STATUS_PAID ):
$return .= <<<IPSCONTENT
4
ipsBadge--positive
IPSCONTENT;
elseif ( $status == \IPS\nexus\Invoice::STATUS_PENDING ):
$return .= <<<IPSCONTENT
1
IPSCONTENT;
elseif ( $status == \IPS\nexus\Invoice::STATUS_CANCELED ):
$return .= <<<IPSCONTENT
5
ipsBadge--locked
IPSCONTENT;
elseif ( $status == \IPS\nexus\Invoice::STATUS_EXPIRED ):
$return .= <<<IPSCONTENT
6
ipsBadge--warning
IPSCONTENT;
endif;
+111 -120
View File
@@ -54,8 +54,8 @@ IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
<div class='i-background_2 i-padding_3'>
<h2 class='ipsTitle ipsTitle--h3'>
<div>
<h2 class='ipsTitle ipsTitle--h3 ipsTitle--padding'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -186,8 +186,8 @@ IPSCONTENT;
$return .= <<<IPSCONTENT
<div class=''>
<div class='i-text-align_center i-padding_3'>
<div class='ipsBox ipsPull ipsBox--checkoutWrapper'>
<div class='i-text-align_center i-padding_3 i-border-bottom_3'>
IPSCONTENT;
@@ -200,8 +200,8 @@ IPSCONTENT;
if ( $checkoutStatus === 'complete' ):
$return .= <<<IPSCONTENT
<i class='i-font-size_6 fa-solid fa-check-circle'></i>
<h1 class='i-font-size_6 i-text-align_center'>
<i class='i-font-size_6 fa-solid fa-check-circle i-margin-bottom_2 i-color_soft'></i>
<h1 class='i-font-size_5 i-font-weight_600 i-color_hard i-text-align_center'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_success', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -213,8 +213,8 @@ IPSCONTENT;
elseif ( $checkoutStatus === 'waiting' ):
$return .= <<<IPSCONTENT
<i class='i-font-size_6 fa-regular fa-clock'></i>
<h1 class='i-font-size_6 i-text-align_center'>
<i class='i-font-size_6 fa-regular fa-clock i-margin-bottom_2 i-color_soft'></i>
<h1 class='i-font-size_5 i-font-weight_600 i-color_hard i-text-align_center'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_waiting', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -226,8 +226,8 @@ IPSCONTENT;
elseif ( $checkoutStatus === 'hold' ):
$return .= <<<IPSCONTENT
<i class='i-font-size_6 fa-regular fa-clock'></i>
<h1 class='i-font-size_6 i-text-align_center'>
<i class='i-font-size_6 fa-regular fa-clock i-margin-bottom_2 i-color_soft'></i>
<h1 class='i-font-size_5 i-font-weight_600 i-color_hard i-text-align_center'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_hold', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -239,8 +239,8 @@ IPSCONTENT;
elseif ( $checkoutStatus === 'pending' ):
$return .= <<<IPSCONTENT
<i class='i-font-size_6 fa-regular fa-clock'></i>
<h1 class='i-font-size_6 i-text-align_center'>
<i class='i-font-size_6 fa-regular fa-clock i-margin-bottom_2 i-color_soft'></i>
<h1 class='i-font-size_5 i-font-weight_600 i-color_hard i-text-align_center'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_pending', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -252,8 +252,8 @@ IPSCONTENT;
elseif ( $checkoutStatus === 'refused' ):
$return .= <<<IPSCONTENT
<i class='i-font-size_6 fa-solid fa-triangle-exclamation'></i>
<h1 class='i-font-size_6 i-text-align_center'>
<i class='i-font-size_6 fa-solid fa-triangle-exclamation i-margin-bottom_2 i-color_soft'></i>
<h1 class='i-font-size_5 i-font-weight_600 i-color_hard i-text-align_center'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'transaction_title_refused', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -271,8 +271,8 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<i class='i-font-size_6 fa-solid fa-cart-shopping'></i>
<h1 class='i-font-size_6 i-text-align_center'>
<i class='i-font-size_6 fa-solid fa-cart-shopping i-margin-bottom_2 i-color_soft'></i>
<h1 class='i-font-size_5 i-font-weight_600 i-color_hard i-text-align_center'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'checkout', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -290,12 +290,12 @@ IPSCONTENT;
if ( \IPS\Widget\Request::i()->isSecure() === TRUE ):
$return .= <<<IPSCONTENT
<i class='fa-solid fa-lock'></i>
<div class="i-margin-top_1 i-font-weight_500 i-color_soft"><i class='fa-solid fa-lock'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'secure_page', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
@@ -304,10 +304,8 @@ $return .= <<<IPSCONTENT
</div>
<section>
<div class='ipsBox i-padding_3' id='elCheckoutContent'>
{$content}
</div>
<section id='elCheckoutContent'>
{$content}
</section>
</div>
IPSCONTENT;
@@ -319,23 +317,24 @@ IPSCONTENT;
$return = '';
$return .= <<<IPSCONTENT
<div class='ipsColumns i-margin-top_3 cNexusCheckout_review' data-controller='nexus.front.checkout.review'>
<div class='ipsColumns ipsColumns--reverse ipsColumns--lines cNexusCheckout_review' data-controller='nexus.front.checkout.review'>
<div class='ipsColumns__primary'>
<div class="i-padding_3">
IPSCONTENT;
if ( $invoice->billaddress ):
$return .= <<<IPSCONTENT
<div class='ipsSpanGrid i-margin-bottom_3'>
<div class='ipsSpanGrid i-margin-bottom_3'>
IPSCONTENT;
if ( $invoice->billaddress ):
$return .= <<<IPSCONTENT
<div class='ipsSpanGrid__6'>
<h2 class='ipsTitle ipsTitle--h3'>
<div class='ipsSpanGrid__6'>
<h2 class='ipsTitle ipsTitle--h3'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'billing_address', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -350,16 +349,16 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'edit', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
)</a></h2>
<div class='i-margin-top_3'>
{$invoice->billaddress->toString('<br>')}
<div class='i-margin-top_3'>
{$invoice->billaddress->toString('<br>')}
IPSCONTENT;
if ( isset( $invoice->billaddress->vat ) and $invoice->billaddress->vat ):
$return .= <<<IPSCONTENT
<br>
<br>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cm_checkout_vat_number', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -369,52 +368,53 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $invoice->billaddress->vat, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $invoice->member->email ):
$return .= <<<IPSCONTENT
<div class='i-color_soft i-margin-bottom_3'>
<i class='fa-solid fa-circle-info'></i>
<div class='i-color_soft'>
<i class='fa-solid fa-circle-info'></i>
IPSCONTENT;
$sprintf = array($invoice->member->email); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'confirmation_sent_to', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
{$couponForm}
<section class='i-background_3 i-margin-top_3'>
<h2 class='ipsBox__header ipsHide'>
<section>
<h2 class='ipsHide'>
IPSCONTENT;
@@ -446,20 +446,22 @@ endif;
$return .= <<<IPSCONTENT
</h2>
<div class='i-padding_3'>
<div>
{$form}
</div>
</section>
</div>
<div class='ipsColumns__secondary i-basis_360 '>
<h2 class='ipsTitle ipsTitle--h3'>
<div class='ipsColumns__secondary i-basis_360'>
<div class="i-padding_3">
<h2 class='ipsTitle ipsTitle--h3'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h2>
</div>
<i-data>
<ul class="ipsData ipsData--table ipsData--order-review i-margin-top_3">
<ul class="ipsData ipsData--table ipsData--order-review">
IPSCONTENT;
@@ -1194,7 +1196,7 @@ endif;
$return .= <<<IPSCONTENT
<div class='i-padding_3 i-background_2'>
<div class='i-padding_2 i-border-top_3'>
IPSCONTENT;
@@ -1220,7 +1222,7 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'do_you_have_coupon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h2>
<div class='ipsSpanGrid i-margin-top_2'>
<div class='i-flex i-gap_1 i-margin-top_2'>
IPSCONTENT;
@@ -1233,7 +1235,7 @@ IPSCONTENT;
foreach ( $collection as $inputName => $input ):
$return .= <<<IPSCONTENT
<div class='ipsSpanGrid__8'>
<div class='i-flex_11'>
{$input->html()}
IPSCONTENT;
@@ -1266,14 +1268,12 @@ IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
<div class='ipsSpanGrid__4'>
<button type='submit' class='ipsButton ipsButton--soft ipsButton--small ipsButton--wide'>
<button type='submit' class='i-flex_00 ipsButton ipsButton--inherit'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'apply_coupon', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</button>
</div>
</div>
</div>
</form>
@@ -1321,15 +1321,15 @@ IPSCONTENT;
if ( \IPS\Login::registrationType() != 'disabled' or ( $usernamePasswordMethods and $buttonMethods ) ):
$return .= <<<IPSCONTENT
<div class='ipsSpanGrid i-margin-top_3' data-role="memberChoice">
<div class='ipsSpanGrid__6 i-padding_3 cNexusCheckout_returning'>
<h2 class="ipsTitle ipsTitle--h3 i-margin-bottom_3">
<div class='ipsFluid i-basis_280 i-gap_lines' data-role="memberChoice">
<div class='cNexusCheckout_returning'>
<h2 class="i-padding_3 ipsTitle ipsTitle--h3">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'returning_member', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h2>
<div class='ipsForm_fullWidth'>
<div class=''>
IPSCONTENT;
@@ -1342,7 +1342,6 @@ IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->message( $loginError, 'error' );
$return .= <<<IPSCONTENT
<br>
IPSCONTENT;
@@ -1353,7 +1352,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $login->url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' class="ipsForm" data-controller="core.global.core.login">
' class="ipsForm ipsForm--fullWidth" data-controller="core.global.core.login">
<input type="hidden" name="csrfKey" value="
IPSCONTENT;
@@ -1404,28 +1403,26 @@ $return .= <<<IPSCONTENT
</form>
</div>
</div>
<div class='ipsSpanGrid__6 i-padding_3'>
<div class="i-background_2 i-padding_3">
IPSCONTENT;
if ( \IPS\Login::registrationType() != 'disabled' ):
$return .= <<<IPSCONTENT
<div class="i-margin-bottom_4">
<div class="i-margin-bottom_3">
<h2 class="ipsTitle ipsTitle--h3">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'new_customers', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h2>
<p>
<p class="i-color_soft i-margin-bottom_3">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'new_customer_blurb', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</p>
</p>
IPSCONTENT;
@@ -1449,7 +1446,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<button data-action='newMember' class='ipsButton ipsButton--primary'>
<button data-action='newMember' class='ipsButton ipsButton--primary ipsButton--wide'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'continue_as_new_member', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -1474,43 +1471,41 @@ IPSCONTENT;
if ( $usernamePasswordMethods and $buttonMethods ):
$return .= <<<IPSCONTENT
<div class='i-background_2 i-padding_2'>
<form accept-charset='utf-8' method='post' action='
<form accept-charset='utf-8' method='post' action='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $login->url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' class="ipsForm" data-controller="core.global.core.login">
<input type="hidden" name="csrfKey" value="
' data-controller="core.global.core.login">
<input type="hidden" name="csrfKey" value="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \IPS\Session::i()->csrfKey, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
<p class='i-font-size_-2 i-text-align_center'><strong>
<p class='i-color_soft i-font-weight_500'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'sign_in_with_these', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</strong></p>
<div class='i-gap_2 i-margin-top_2'>
:</p>
<div class='i-grid i-gap_2 i-text-align_center i-margin-top_2'>
IPSCONTENT;
foreach ( $buttonMethods as $method ):
$return .= <<<IPSCONTENT
<div class='i-text-align_center'>
{$method->button()}
</div>
<div>
{$method->button()}
</div>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</div>
</form>
</div>
</div>
</form>
IPSCONTENT;
@@ -1519,8 +1514,8 @@ $return .= <<<IPSCONTENT
</div>
</div>
<div class="i-padding_3 ipsJS_hide" data-role='newCustomerForm'>
<h2 class='ipsTitle ipsTitle--h3 i-margin-top_3'>
<div class="ipsJS_hide" data-role='newCustomerForm'>
<h2 class='ipsTitle ipsTitle--h3 ipsTitle--padding'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'create_new_account', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -1623,9 +1618,9 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<div class='ipsColumns i-margin-top_3'>
<div class='ipsColumns ipsColumns--reverse ipsColumns--lines ipsColumns--customerInformation'>
<div class='ipsColumns__primary'>
<h2 class='ipsTitle ipsTitle--h3 i-margin-bottom_3'>
<h2 class='ipsTitle ipsTitle--h3 ipsTitle--padding'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'billing_information', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -1633,7 +1628,7 @@ $return .= <<<IPSCONTENT
</h2>
{$informationForm}
</div>
<div class='ipsColumns__secondary i-basis_280'>
<div class='ipsColumns__secondary i-basis_340'>
IPSCONTENT;
@@ -1834,14 +1829,13 @@ endforeach;
$return .= <<<IPSCONTENT
</ul>
<hr class='ipsHr'>
<div class='i-text-align_end i-margin-top_3'>
<div class='ipsSubmitRow'>
<button type='submit' class='ipsButton ipsButton--primary'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'continue_to_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
&nbsp;<i class='fa-solid fa-chevron-right'></i></button>
<i class='fa-solid fa-chevron-right'></i></button>
</div>
</form>
IPSCONTENT;
@@ -1854,16 +1848,14 @@ IPSCONTENT;
$return .= <<<IPSCONTENT
<section class='ipsBox i-margin-top_3'>
<h2 class='ipsBox__header'>
<section class=''>
<div class="i-padding_3 i-border-top_3 i-border-bottom_3 i-flex i-align-items_center i-gap_2">
<h2 class='ipsTitle ipsTitle--h3'><span class="i-color_soft">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_review', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h2>
<div class='i-padding_3'>
<div class='i-flex i-align-items_center i-gap_2'>
<h2 class='ipsTitle ipsTitle--h3'>
:</span>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -1873,13 +1865,13 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $invoice->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</h2>
IPSCONTENT;
if ( \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'nexus', 'clients' ) ) ):
$return .= <<<IPSCONTENT
<a href='
<a href='
IPSCONTENT;
if ( $invoice->guest_data and isset( $invoice->guest_data['guestTransactionKey'] ) ):
@@ -1902,22 +1894,22 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' target="_blank" rel='noopener' class='ipsJS_show ipsButton ipsButton--soft ipsButton--small'>
' target="_blank" rel='noopener' class='ipsJS_show ipsButton ipsButton--inherit ipsButton--small i-margin-start_auto'><i class="fa-solid fa-print"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_invoice_print', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<hr class='ipsHr'>
<div class='ipsSpanGrid i-margin-top_3'>
<div class='ipsSpanGrid__6'>
</div>
<div class='i-padding_3'>
<div class='ipsFluid i-basis_300 i-margin-top_3'>
<div>
IPSCONTENT;
@@ -1969,7 +1961,7 @@ $return .= \IPS\Theme::i()->getTemplate( "clients", "nexus" )->paymentLog( $invo
$return .= <<<IPSCONTENT
</div>
<div class='ipsSpanGrid__6'>
<div>
<h2 class='ipsTitle ipsTitle--h3'>
IPSCONTENT;
@@ -2491,7 +2483,7 @@ IPSCONTENT;
if ( $showSubmitButton ):
$return .= <<<IPSCONTENT
<div class='i-margin-top_3' id="paymentMethodSubmit">
<div class="ipsSubmitRow" id="paymentMethodSubmit">
<button type='submit' class='ipsButton ipsButton--primary ipsButton--wide'>
<i class='fa-solid fa-check-circle'></i>
@@ -2857,30 +2849,31 @@ IPSCONTENT;
$return .= <<<IPSCONTENT
<p class='i-font-size_2 i-text-align_center'>
<div class="i-padding_3 i-background_2 i-border-bottom_3">
<p class="i-color_hard i-font-size_3 i-font-weight_500 i-margin-bottom_1">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_thanks_blurb_no_email', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</p>
<p class='i-font-size_2 i-text-align_center'>
<strong>
</p>
<p>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_wait_blurb', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</strong><br>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'order_wait_blurb2', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</p>
</p>
</div>
<div class='ipsRichText i-background_3 i-padding_3 i-margin-block_2'>
<div class='ipsRichText i-padding_3'>
{$transaction->method->manualPaymentInstructions( $transaction )}
</div>
@@ -2889,14 +2882,12 @@ IPSCONTENT;
if ( \IPS\Member::loggedIn()->member_id ):
$return .= <<<IPSCONTENT
<p class='i-text-align_center'>
<i class='fa-solid fa-circle-info'></i>
<p class='ipsMessage ipsMessage--info i-margin_1'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'track_orders_in_billing', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</p>
</p>
IPSCONTENT;
+4 -4
View File
@@ -465,25 +465,25 @@ $return .= <<<IPSCONTENT
<link rel='stylesheet' href='
IPSCONTENT;
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/fontawesome/css/regular.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/static/fontawesome/css/regular.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= <<<IPSCONTENT
'>
<link rel='stylesheet' href='
IPSCONTENT;
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/fontawesome/css/solid.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/static/fontawesome/css/solid.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= <<<IPSCONTENT
'>
<link rel='stylesheet' href='
IPSCONTENT;
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/fontawesome/css/fontawesome.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/static/fontawesome/css/fontawesome.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= <<<IPSCONTENT
'>
<link rel='stylesheet' href='
IPSCONTENT;
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/fontawesome/css/brands.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/static/fontawesome/css/brands.min.css?v=6.3.0", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= <<<IPSCONTENT
'>
</head>
+58 -64
View File
@@ -6,17 +6,16 @@ class class_nexus_front_store extends \IPS\Theme\Template
$return .= <<<IPSCONTENT
<div class=''>
<div class='i-text-align_center i-padding_3'>
<i class='i-font-size_6 fa-solid fa-cart-shopping'></i>
<h1 class='i-font-size_6 i-text-align_center'>
<div class='ipsBox ipsBox--cart'>
<div class='i-text-align_center i-padding_3 i-border-bottom_3'>
<i class='i-font-size_6 fa-solid fa-cart-shopping i-margin-bottom_2 i-color_soft'></i>
<h1 class='i-font-size_5 i-font-weight_600 i-color_hard i-text-align_center'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'your_cart', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h1>
</div>
<div data-controller='nexus.front.store.cartReview'>
<div data-role="cart">
@@ -49,16 +48,16 @@ IPSCONTENT;
if ( \count( $_SESSION['cart'] ) ):
$return .= <<<IPSCONTENT
<div id='elNexusCart' class='ipsBox'>
<div id='elNexusCart'>
<i-data>
<div class="ipsData ipsData--table ipsData--cart-contents">
<ul class="ipsData ipsData--table ipsData--cart-contents">
IPSCONTENT;
foreach ( $_SESSION['cart'] as $id => $item ):
$return .= <<<IPSCONTENT
<div id='elCartItem_
<li id='elCartItem_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -205,7 +204,7 @@ $return .= <<<IPSCONTENT
</div>
</div>
<div class='i-basis_180'>
<span class='cNexusPrice i-font-size_2'>
<span class='cNexusPrice i-font-size_3'>
IPSCONTENT;
@@ -332,16 +331,17 @@ $return .= <<<IPSCONTENT
</div>
</div>
</div>
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
<hr class='ipsHr'>
<div class='cNexusCart_totals i-text-align_end'>
</ul>
</i-data>
<div class='cNexusCart_totals i-text-align_end'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'cart_subtotal', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -352,51 +352,49 @@ IPSCONTENT;
$return .= new \IPS\nexus\Money( $subtotal, $currency );
$return .= <<<IPSCONTENT
</span>
</div>
</div>
</i-data>
</div>
<ul class="ipsButtons ipsButtons--main i-margin-block_block">
<li>
<a class="ipsButton ipsButton--text" href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=store&controller=cart&do=clear" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "store_cart", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" title="" data-confirm><i class='fa-solid fa-xmark'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'empty_cart', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
<li>
<a class="ipsButton ipsButton--primary" href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=store&controller=cart&do=checkout" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "store_cart", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" title="" data-action="checkout">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'checkout', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
<i class='fa-solid fa-chevron-right'></i></a>
</li>
<li>
<a class="ipsButton ipsButton--inherit" href="
</div>
<ul class="ipsSubmitRow ipsButtons">
<li>
<a class="ipsButton ipsButton--inherit" href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=store", null, "store", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" title=""><i class='fa-solid fa-chevron-left'></i>
"><i class="fa-solid fa-store"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'continue_shopping', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
</ul>
</li>
<li>
<a class="ipsButton ipsButton--text i-margin-end_auto" href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=store&controller=cart&do=clear" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "store_cart", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" data-confirm><i class="fa-regular fa-trash-can"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'empty_cart', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
<li>
<a class="ipsButton ipsButton--primary" href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=store&controller=cart&do=checkout" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "store_cart", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" data-action="checkout"><i class="fa-solid fa-circle-check"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'checkout', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
</ul>
</div>
IPSCONTENT;
@@ -762,20 +760,20 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<div class='i-padding_3'>
<div class='i-background_2 i-padding_3 i-text-align_center i-margin-bottom_3'>
<h3 class='ipsTitle ipsTitle--h3 i-text-align_center i-margin-bottom_2 i-color_positive'><i class='fa-regular fa-check-circle'></i>
<div>
<div class='i-padding_3 i-text-align_center'>
<h3 class='i-font-weight_700 i-font-size_3 i-margin-bottom_2 i-color_positive'><i class='fa-regular fa-check-circle'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'product_added_to_cart', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h3>
<h4 class='i-font-size_2'>
<h4 class='i-font-size_3 i-font-weight_700 i-color_hard'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $package->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</h4>
<p>
<p class="i-color_soft i-font-weight_600">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'quantity', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -786,17 +784,14 @@ $return .= \IPS\Theme\Template::htmlspecialchars( $quantity, ENT_QUOTES | ENT_DI
$return .= <<<IPSCONTENT
</p>
</div>
<ul class='ipsSpanGrid'>
<li class='ipsSpanGrid__6'>
<a href='#' data-action='dialogClose' class='ipsButton ipsButton--wide ipsButton--soft'>
<div class='ipsSubmitRow ipsButtons'>
<button type="button" data-action='dialogClose' class='ipsButton ipsButton--soft'><i class="fa-solid fa-store"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'continue_shopping', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
<li class='ipsSpanGrid__6'>
<a href='
</button>
<a href='
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=nexus&module=store&controller=cart", null, "store_cart", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
@@ -806,14 +801,13 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'review_cart_title', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
" class='ipsButton ipsButton--wide ipsButton--primary'>
" class='ipsButton ipsButton--primary'><i class="fa-solid fa-basket-shopping"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'review_and_checkout', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
</ul>
</div>
IPSCONTENT;