Version 5.0.0 beta 4

This commit is contained in:
Neo committed 2025-12-19 16:57:00 -08:00
1 parent e86153356a
commit 2f24f9de48
276 files changed
+8614 -6044

No files matched your search

+10
View File
@@ -2028,6 +2028,16 @@ IPSCONTENT;
$commentCount++;
$return .= <<<IPSCONTENT
<a id="findComment-
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
"></a>
<a id="comment-
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
"></a>
{$comment->html()}
IPSCONTENT;
+9 -9
View File
@@ -497,7 +497,7 @@ endif;
$return .= <<<IPSCONTENT
<li>
<ul class="ipsButtonGroup ipsButton--soft ipsButton--icon">
<ul class="ipsButtonGroup">
IPSCONTENT;
@@ -510,12 +510,12 @@ IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=calendar&module=calendar&controller=view&view=overview", null, "calendar", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" class="ipsButtonGroup__button
" class="ipsButton
IPSCONTENT;
if ( \IPS\Widget\Request::i()->view=='overview' ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
@@ -561,12 +561,12 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
" class="ipsButtonGroup__button
" class="ipsButton
IPSCONTENT;
if ( \IPS\Widget\Request::i()->view=='month' ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
@@ -606,12 +606,12 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
" class="ipsButtonGroup__button
" class="ipsButton
IPSCONTENT;
if ( \IPS\Widget\Request::i()->view=='week' ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
@@ -651,12 +651,12 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
" class="ipsButtonGroup__button
" class="ipsButton
IPSCONTENT;
if ( \IPS\Widget\Request::i()->view=='day' ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
+6 -6
View File
@@ -1586,19 +1586,19 @@ IPSCONTENT;
if ( \IPS\Settings::i()->clubs_allow_view_change AND \IPS\Member::loggedIn()->member_id ):
$return .= <<<IPSCONTENT
<ul class="ipsButtonGroup ipsButton--soft">
<ul class="ipsButtonGroup">
<li>
<a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=clubs&controller=directory&view=grid" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "clubs_list", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" class="ipsButtonGroup__button
" class="ipsButton
IPSCONTENT;
if ( $view == 'grid' ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
@@ -1618,12 +1618,12 @@ IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=clubs&controller=directory&view=list" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "clubs_list", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" class="ipsButtonGroup__button
" class="ipsButton
IPSCONTENT;
if ( $view == 'list' ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
@@ -3205,7 +3205,7 @@ IPSCONTENT;
if ( $club->canInvite() ):
$return .= <<<IPSCONTENT
<ul class="ipsButtons ipsButtons--main ipsButtons--margin">
<ul class="ipsButtons ipsButtons--main i-margin-block_block">
<li>
<a class="ipsButton ipsButton--primary" href="
IPSCONTENT;
-496
View File
@@ -3538,502 +3538,6 @@ IPSCONTENT;
<li>
<hr class='ipsHr'>
</li>
IPSCONTENT;
return $return;
}
function statusPopupTemplate( $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='' ) {
$return = '';
$return .= <<<IPSCONTENT
<form accept-charset='utf-8' method="post" action="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $action, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" id='elStatusSubmit'
IPSCONTENT;
if ( $uploadField ):
$return .= <<<IPSCONTENT
enctype="multipart/form-data"
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
<div class="i-padding_3">
<input type="hidden" name="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
_submitted" value="1">
IPSCONTENT;
foreach ( $hiddenValues as $k => $v ):
$return .= <<<IPSCONTENT
<input type="hidden" name="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" value="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $uploadField ):
$return .= <<<IPSCONTENT
<input type="hidden" name="MAX_FILE_SIZE" value="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $uploadField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
<input type="hidden" name="plupload" value="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( md5( mt_rand() ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $elements as $collection ):
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $collection as $input ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $input instanceof \IPS\Helpers\Form\Editor ):
$return .= <<<IPSCONTENT
{$input->html()}
IPSCONTENT;
if ( $input->error ):
$return .= <<<IPSCONTENT
<br>
<span class="i-color_warning">
IPSCONTENT;
$val = "{$input->error}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</div>
<ul class="ipsSubmitRow ipsButtons">
IPSCONTENT;
foreach ( $actionButtons as $button ):
$return .= <<<IPSCONTENT
<li>{$button}</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</form>
IPSCONTENT;
return $return;
}
function statusTemplate( $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='' ) {
$return = '';
$return .= <<<IPSCONTENT
<!-- v5 todo: This template file is no longer used, correct? -->
<style>*{color:#9f2 !important;}</style>
<form accept-charset='utf-8' method="post" action="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $action, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" id='elStatusSubmit'
IPSCONTENT;
if ( $uploadField ):
$return .= <<<IPSCONTENT
enctype="multipart/form-data"
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
<input type="hidden" name="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
_submitted" value="1">
IPSCONTENT;
foreach ( $hiddenValues as $k => $v ):
$return .= <<<IPSCONTENT
<input type="hidden" name="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" value="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $uploadField ):
$return .= <<<IPSCONTENT
<input type="hidden" name="MAX_FILE_SIZE" value="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $uploadField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
<input type="hidden" name="plupload" value="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( md5( mt_rand() ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $elements as $collection ):
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $collection as $input ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $input instanceof \IPS\Helpers\Form\Editor ):
$return .= <<<IPSCONTENT
{$input->html( TRUE )}
IPSCONTENT;
if ( $input->error ):
$return .= <<<IPSCONTENT
<br>
<span class="i-color_warning">
IPSCONTENT;
$val = "{$input->error}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
<ul class='ipsButtons ipsButtons--end ipsButtons--statusTemplate' data-ipsEditor-toolList>
IPSCONTENT;
foreach ( $elements as $collection ):
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $collection as $input ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $input instanceof \IPS\Helpers\Form\Checkbox ):
$return .= <<<IPSCONTENT
<li class='ipsComposeArea_formControl i-color_soft'>
{$input->html()}
<label for="check_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $input->htmlId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
$val = "{$input->name}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</label>
IPSCONTENT;
if ( $input->error ):
$return .= <<<IPSCONTENT
<div class="ipsFieldRow__warning" data-role="commentFormError">
IPSCONTENT;
$val = "{$input->error}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
<li><button class='ipsButton ipsButton--primary' data-action="submitComment">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'status_new', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</button></li>
</ul>
</form>
IPSCONTENT;
return $return;
}
function statusWidgetForm( $id, $action, $elements, $hiddenValues, $actionButtons, $uploadField, $class='' ) {
$return = '';
$return .= <<<IPSCONTENT
<form accept-charset='utf-8' method="post" action="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $action, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" id='elStatusSubmit'
IPSCONTENT;
if ( $uploadField ):
$return .= <<<IPSCONTENT
enctype="multipart/form-data"
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
<input type="hidden" name="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
_submitted" value="1">
IPSCONTENT;
foreach ( $hiddenValues as $k => $v ):
$return .= <<<IPSCONTENT
<input type="hidden" name="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" value="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $uploadField ):
$return .= <<<IPSCONTENT
<input type="hidden" name="MAX_FILE_SIZE" value="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $uploadField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
<input type="hidden" name="plupload" value="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( md5( mt_rand() ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $elements as $collection ):
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $collection as $input ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $input instanceof \IPS\Helpers\Form\Editor ):
$return .= <<<IPSCONTENT
{$input->html()}
IPSCONTENT;
if ( $input->error ):
$return .= <<<IPSCONTENT
<br>
<span class="i-color_warning">
IPSCONTENT;
$val = "{$input->error}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
<div class='i-margin-top_2'>
<button type='submit' class='ipsButton ipsButton--primary ipsButton--wide'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'status_new', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</button>
</div>
</form>
IPSCONTENT;
return $return;
+64 -6
View File
@@ -2173,11 +2173,31 @@ $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/fron
$return .= <<<IPSCONTENT
<p class="ipsPhotoPanel__secondary">
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
">{$comment->dateLine()}</a>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->shareableUrl(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
{$comment->dateLine()}
IPSCONTENT;
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -2836,11 +2856,23 @@ endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->sharemenu( $comment );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -2962,7 +2994,11 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<a id='findComment-
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->$idField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'></a>
<a id='comment-
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->$idField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
@@ -13040,7 +13076,12 @@ $return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars(
$return .= <<<IPSCONTENT
" method="post">
<div class="i-padding_2 i-position_sticky-top i-flex i-gap_1 i-margin-bottom_2">
<input type="search" class="ipsInput ipsInput--text ipsOffCanvas__input" placeholder="Enter search terms.." name="q" autocomplete="off" aria-label="
<input type="search" class="ipsInput ipsInput--text ipsOffCanvas__input" placeholder="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'search_placeholder', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
" name="q" autocomplete="off" aria-label="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'search', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -19174,11 +19215,23 @@ endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->sharemenu( $review );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
@@ -19219,6 +19272,11 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $review->$idField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'></a>
<a id='findReview-
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $review->$idField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'></a>
<article id="elReview_
IPSCONTENT;
@@ -19804,7 +19862,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$url = $comment->item()->url()->setQueryString( array( 'do' => 'find' . \ucfirst( $type ), $type => $comment->$idField ) );
$url = $comment->shareableUrl( $type );
$return .= <<<IPSCONTENT
File diff suppressed because it is too large. Load diff
+68 -108
View File
@@ -1522,7 +1522,7 @@ $return .= <<<IPSCONTENT
🏆
</div>
<div class="i-flex_11">
<h3 class="ipsTitle ipsTitle--h5">
<h3 class="i-font-weight_600 i-color_hard i-font-size_2">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->formatNumber( $member->getReputationDaysWonCount() );
@@ -1761,7 +1761,7 @@ $return .= <<<IPSCONTENT
{$rank->html( 'ipsDimension i-basis_40' )}
</div>
<div class="i-flex_11">
<h3 class="ipsTitle ipsTitle--h5">
<h3 class="i-font-weight_600 i-color_hard i-font-size_2">
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $rank->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -1848,7 +1848,7 @@ $return .= <<<IPSCONTENT
<div>
<div class="i-flex i-align-items_center i-justify-content_space-between i-margin-bottom_2">
<h3 class="ipsTitle ipsTitle--h5">
<h3 class="i-font-weight_600 i-color_hard i-font-size_2">
IPSCONTENT;
@@ -1866,7 +1866,7 @@ IPSCONTENT;
$sprintf = array($member->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'members_badges', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
" class="i-color_soft i-font-size_-2">
" class="i-font-size_-1 i-font-weight_500 i-color_soft">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_all', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -1997,30 +1997,30 @@ if ( \IPS\Settings::i()->warn_on and !$member->inGroup( explode( ',', \IPS\Setti
$return .= <<<IPSCONTENT
<div class="ipsWidget ipsWidget--warnings">
<div class="ipsWidget__content ipsWidget__padding">
<div id="elWarningInfo" class="i-flex i-align-items_center i-gap_2 i-border-radius_box
<div class="ipsWidget__content">
<div class="i-padding_2">
<div id="elWarningInfo" class="i-padding_1">
<h4 class="i-margin-bottom_2 i-font-weight_600 i-font-size_3
IPSCONTENT;
if ( $member->mod_posts || $member->restrict_post || $member->temp_ban ):
$return .= <<<IPSCONTENT
i-background_negative i-color_white
i-color_negative
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
">
<div class="i-flex_11">
<h4 class="ipsTitle ipsTitle--h5
IPSCONTENT;
if ( $member->mod_posts || $member->restrict_post || $member->temp_ban ):
$return .= <<<IPSCONTENT
i-color_white
<i class="fa-solid fa-triangle-exclamation i-margin-end_icon"></i>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
">
IPSCONTENT;
$pluralize = array( $member->warn_level ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'member_warn_level', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
@@ -2037,7 +2037,7 @@ IPSCONTENT;
if ( $member->mod_posts || $member->restrict_post || $member->temp_ban ):
$return .= <<<IPSCONTENT
i-opacity_7
i-color_negative i-font-weight_500
IPSCONTENT;
else:
@@ -2059,28 +2059,13 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<div class="
IPSCONTENT;
if ( $member->mod_posts || $member->restrict_post || $member->temp_ban ):
$return .= <<<IPSCONTENT
i-opacity_7
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
i-color_soft
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
">
<div class="i-font-weight_500 i-color_hard">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'restrictions_applied', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</div>
<ul class="ipsList ipsList--bullets i-margin-top_2">
<ul class="ipsList ipsList--csv">
IPSCONTENT;
@@ -2113,13 +2098,11 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'moderation_modq', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</li>
IPSCONTENT;
@@ -2158,13 +2141,11 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'moderation_nopost', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</li>
IPSCONTENT;
@@ -2203,13 +2184,11 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'moderation_banned', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
</li>
IPSCONTENT;
@@ -2224,21 +2203,6 @@ endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
if ( $member->warn_level > 0 || $member->mod_posts || $member->restrict_post || $member->temp_ban ):
$return .= <<<IPSCONTENT
<div class="i-flex_00 i-font-size_2">
<i class="fa-solid fa-triangle-exclamation i-color_negative"></i>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
@@ -2246,56 +2210,21 @@ IPSCONTENT;
if ( ( \IPS\Member::loggedIn()->canWarn( $member ) || \IPS\Member::loggedIn()->modPermission('can_manage_alerts') || ( \IPS\Member::loggedIn()->modPermission('can_flag_as_spammer') and !$member->modPermission() and !$member->isAdmin() ) ) and $member->member_id != \IPS\Member::loggedIn()->member_id ):
$return .= <<<IPSCONTENT
<div class="i-padding-block_2 i-text-align_center">
<ul class="ipsButtons ipsButtons--fill i-margin-top_1">
IPSCONTENT;
if ( \IPS\Member::loggedIn()->canWarn( $member ) ):
$return .= <<<IPSCONTENT
<li>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $addWarningUrl, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" id="elWarnUserButton" data-ipsdialog data-ipsdialog-title="
IPSCONTENT;
$sprintf = array($member->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_member', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
" class="ipsButton ipsButton--inherit ipsButton--small" title="
IPSCONTENT;
$sprintf = array($member->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_member', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
"><i class="fa-solid fa-triangle-exclamation"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_user', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<ul class="ipsButtons ipsButtons--fill i-padding_1 i-padding-top_0">
IPSCONTENT;
if ( \IPS\Member::loggedIn()->modPermission('can_flag_as_spammer') and $member->member_id != \IPS\Member::loggedIn()->member_id and !$member->modPermission() and !$member->isAdmin() ):
$return .= <<<IPSCONTENT
<li>
<li>
IPSCONTENT;
if ( $member->members_bitoptions['bw_is_spammer'] ):
$return .= <<<IPSCONTENT
<a href="
<a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=moderation&do=flagAsSpammer&id={$member->member_id}&s=0" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "flag_as_spammer", array( $member->members_seo_name ), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
@@ -2316,13 +2245,13 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'spam_unflag', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<a href="
<a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=moderation&do=flagAsSpammer&id={$member->member_id}&s=1" . "&csrfKey=" . \IPS\Session::i()->csrfKey, null, "flag_as_spammer", array( $member->members_seo_name ), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
@@ -2338,21 +2267,20 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'spam_flag', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</li>
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( \IPS\Member::loggedIn()->modPermission('can_manage_alerts') ):
@@ -2369,7 +2297,7 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'alert_send', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
" class="ipsButton ipsButton--secondary ipsButton--small" title="
" class="ipsButton ipsButton--inherit ipsButton--small" title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'alert_send', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -2381,15 +2309,47 @@ $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'a
$return .= <<<IPSCONTENT
</a>
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</ul>
</div>
IPSCONTENT;
if ( \IPS\Member::loggedIn()->canWarn( $member ) ):
$return .= <<<IPSCONTENT
<li>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $addWarningUrl, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" id="elWarnUserButton" data-ipsdialog data-ipsdialog-title="
IPSCONTENT;
$sprintf = array($member->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_member', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
" class="ipsButton ipsButton--secondary ipsButton--wide ipsButton--small" title="
IPSCONTENT;
$sprintf = array($member->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_member', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
"><i class="fa-solid fa-triangle-exclamation"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_user', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
@@ -2403,7 +2363,7 @@ if ( \count( $member->warnings( 1 ) ) ):
$return .= <<<IPSCONTENT
<i-data data-role="recentWarnings">
<ol class="ipsData ipsData--table ipsData--compact ipsData--warnings">
<ol class="ipsData ipsData--table ipsData--compact ipsData--warnings i-border-top_3">
IPSCONTENT;
@@ -2571,7 +2531,7 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'revoke_this_warning', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
" data-ipstooltip data-action="revoke" class="ipsButton ipsButton--small ipsButton--inherit ipsButton--icon" data-ipsdialog data-ipsdialog-title="
" data-ipstooltip data-action="revoke" class="ipsButton ipsButton--small ipsButton--text ipsButton--icon" data-ipsdialog data-ipsdialog-title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'revoke_this_warning', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -2591,13 +2551,13 @@ endforeach;
$return .= <<<IPSCONTENT
</ol>
<p class="i-margin-top_2">
<p class="ipsViewAll">
<a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=warnings&id={$member->member_id}", null, "warn_list", array( $member->members_seo_name ), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" class="ipsButton ipsButton--inherit i-width_100p" title="
" title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'see_all_warnings', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
+1 -1
View File
@@ -2139,7 +2139,7 @@ IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=members&controller=profile&do=content&id={$member->member_id}", "front", "profile_content", array( $member->members_seo_name ), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
' class='ipsButton ipsButton--wide ipsButton--soft'>
' class='ipsButton ipsButton--soft'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'find_content', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
+5 -5
View File
@@ -2331,7 +2331,7 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'stream_auto_updates', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</p>
<ul class="ipsButtonGroup ipsButton--soft">
<ul class="ipsButtonGroup">
<li>
<a href="
IPSCONTENT;
@@ -2342,12 +2342,12 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'stream_condensed', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
" class="ipsButtonGroup__button
" class="ipsButton
IPSCONTENT;
if ( $view == 'condensed' ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
@@ -2369,12 +2369,12 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'stream_expanded', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
" class="ipsButtonGroup__button
" class="ipsButton
IPSCONTENT;
if ( $view == 'expanded' ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
+73 -56
View File
@@ -11937,92 +11937,52 @@ $return .= <<<IPSCONTENT
</a>
</h4>
IPSCONTENT;
if ( $row->note_member ):
$return .= <<<IPSCONTENT
<div class='ipsData__desc ipsRichText ipsTruncate_1'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_member_note', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
: {$row->note_member}
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $row->note_mods and \IPS\Member::loggedIn()->modPermission('mod_see_warn') ):
$return .= <<<IPSCONTENT
<div class='ipsData__desc ipsRichText ipsTruncate_1'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_mod_note', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
: {$row->note_mods}
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<ul class='ipsList ipsList--inline i-margin-top_2'>
<ul class='ipsList ipsList--sep'>
IPSCONTENT;
if ( \IPS\Settings::i()->warnings_acknowledge ):
$return .= <<<IPSCONTENT
<li>
<li>
IPSCONTENT;
if ( $row->acknowledged ):
$return .= <<<IPSCONTENT
<strong class='i-color_positive'><i class='fa-solid fa-check-circle'></i>
<strong class='i-color_positive'><i class='fa-solid fa-check-circle'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warning_acknowledged', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</strong>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<strong class='i-color_soft'><i class='fa-regular fa-circle'></i>
<strong class='i-color_soft'><i class='fa-regular fa-circle'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warning_not_acknowledged', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</strong>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</li>
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<li class='i-color_soft'>
<li class='i-color_soft'>
IPSCONTENT;
$sprintf = array(\IPS\Member::load( $row->moderator )->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warned_by', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
@@ -12033,7 +11993,7 @@ IPSCONTENT;
$val = ( $row->__get( $row::$databaseColumnMap['date'] ) instanceof \IPS\DateTime ) ? $row->__get( $row::$databaseColumnMap['date'] ) : \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) );$return .= $val->html();
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $row->expire_date > 0 ):
@@ -12049,13 +12009,13 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $row->expire_date == 0 ):
$return .= <<<IPSCONTENT
<em><strong>
<em><strong>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warning_no_longer_active', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -12076,13 +12036,70 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</em></strong>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</li>
</ul>
IPSCONTENT;
if ( $row->note_member or ($row->note_mods and \IPS\Member::loggedIn()->modPermission('mod_see_warn')) ):
$return .= <<<IPSCONTENT
<div class='ipsFluid i-margin-top_3'>
IPSCONTENT;
if ( $row->note_member ):
$return .= <<<IPSCONTENT
<div>
<strong class="i-color_hard i-font-weight_500">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_member_note', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
:</strong>
<div class="ipsRichText">{$row->note_member}</div>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $row->note_mods and \IPS\Member::loggedIn()->modPermission('mod_see_warn') ):
$return .= <<<IPSCONTENT
<div>
<strong class="i-color_hard i-font-weight_500">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'warn_mod_note', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
:</strong>
<div class="ipsRichText">{$row->note_mods}</div>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</li>
</div>
IPSCONTENT;
+2 -8
View File
@@ -670,7 +670,7 @@ IPSCONTENT;
return $return;
}
function overview( $items ) {
function overview( $items, $tag ) {
$return = '';
$return .= <<<IPSCONTENT
@@ -691,16 +691,10 @@ if ( \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'co
$return .= <<<IPSCONTENT
<div class="ipsSubmitRow">
IPSCONTENT;
$tag = \IPS\Widget\Request::i()->tag;
$return .= <<<IPSCONTENT
<a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=search&controller=search&tags={$tag}", null, "search", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=search&controller=search&tags={$tag->text}", null, "search", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" class="ipsButton ipsButton--secondary"><span>
IPSCONTENT;
+6
View File
@@ -4572,6 +4572,12 @@ endforeach;
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->tabScrollers( );
$return .= <<<IPSCONTENT
</div>
<section id='el
IPSCONTENT;
+7 -7
View File
@@ -435,7 +435,7 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'image_align', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</label>
<ul class='ipsButtonGroup ipsButton--soft ipsButton--small ipsComposeArea_imageAlign'>
<ul class='ipsButtonGroup ipsButton--small ipsComposeArea_imageAlign'>
<li>
<input type='radio' name='image_align' value='left' id='image_align_left' data-role="imageAlign"
IPSCONTENT;
@@ -448,12 +448,12 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
<label for='image_align_left' class='ipsButtonGroup__button
<label for='image_align_left' class='ipsButton
IPSCONTENT;
if ( $float == 'left' ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
@@ -479,12 +479,12 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
<label for='image_align_none' class='ipsButtonGroup__button
<label for='image_align_none' class='ipsButton
IPSCONTENT;
if ( $float !== 'left' && $float !=='right' ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
@@ -510,12 +510,12 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
<label for='image_align_right' class='ipsButtonGroup__button
<label for='image_align_right' class='ipsButton
IPSCONTENT;
if ( $float == 'right' ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
+18
View File
@@ -1321,6 +1321,24 @@ IPSCONTENT;
$return = '';
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $id === NULL ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$id = md5(uniqid());
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<input type="hidden" name="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $hiddenName, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
+34 -44
View File
@@ -1265,7 +1265,7 @@ endif;
$return .= <<<IPSCONTENT
</ul>
<ul class='ipsButtons ipsButtons--end i-flex_11 i-basis_100p'>
<ul class='ipsButtons ipsButtons--end i-flex_11'>
IPSCONTENT;
@@ -1273,19 +1273,19 @@ if ( $chart->showIntervals ):
$return .= <<<IPSCONTENT
<li data-role="groupingButtons">
<ul class="ipsButtonGroup ipsButton--soft ipsButton--small">
<ul class="ipsButtonGroup ipsButton--small">
IPSCONTENT;
if ( $chart->enableHourly ):
$return .= <<<IPSCONTENT
<li><a class='ipsButtonGroup__button
<li><a class='ipsButton
IPSCONTENT;
if ( $chart->timescale == 'hourly' ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
@@ -1332,12 +1332,12 @@ IPSCONTENT;
foreach ( array( 'daily', 'weekly', 'monthly' ) as $k ):
$return .= <<<IPSCONTENT
<li><a class='ipsButtonGroup__button
<li><a class='ipsButton
IPSCONTENT;
if ( $chart->timescale == $k ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
@@ -1753,19 +1753,13 @@ endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( \count( $chart->availableTypes ) > 1 || $chart instanceof \IPS\Helpers\Chart\Dynamic ):
$return .= <<<IPSCONTENT
<li class=''>
IPSCONTENT;
if ( $chart instanceof \IPS\Helpers\Chart\Dynamic ):
$return .= <<<IPSCONTENT
<a class='ipsButton ipsButton--soft ipsButton--small' href='
<li>
<a class='ipsButton ipsButton--soft ipsButton--small' href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $chart->url->setQueryString(array( "download" => 1 ))->csrf() , ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -1775,31 +1769,33 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'download_as_csv', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-role='downloadChart'><i class="fa-solid fa-download"></i> CSV</a>
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( \count( $chart->availableTypes ) > 1 ):
$return .= <<<IPSCONTENT
<span class="ipsButtonGroup ipsButton--soft ipsButton--small">
<li>
<div class="ipsButtonGroup ipsButton--small">
IPSCONTENT;
foreach ( $chart->availableTypes as $t ):
$return .= <<<IPSCONTENT
<a class='ipsButtonGroup__button
<a class='ipsButton
IPSCONTENT;
if ( $chart->type == $t ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
@@ -1828,75 +1824,69 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
IPSCONTENT;
if ( $t === 'Table' ):
$return .= <<<IPSCONTENT
<i class="fa-solid fa-table"></i>
<i class="fa-solid fa-table"></i>
IPSCONTENT;
elseif ( $t === 'LineChart' ):
$return .= <<<IPSCONTENT
<i class="fa-solid fa-chart-line"></i>
<i class="fa-solid fa-chart-line"></i>
IPSCONTENT;
elseif ( $t == 'AreaChart' ):
$return .= <<<IPSCONTENT
<i class='fa-solid fa-chart-area'></i>
<i class='fa-solid fa-chart-area'></i>
IPSCONTENT;
elseif ( $t === 'ColumnChart' ):
$return .= <<<IPSCONTENT
<i class="fa-solid fa-chart-column"></i>
<i class="fa-solid fa-chart-column"></i>
IPSCONTENT;
elseif ( $t === 'BarChart' ):
$return .= <<<IPSCONTENT
<i class="fa-solid fa-chart-column fa-rotate-90"></i>
<i class="fa-solid fa-chart-column fa-rotate-90"></i>
IPSCONTENT;
elseif ( $t === 'PieChart' ):
$return .= <<<IPSCONTENT
<i class="fa-solid fa-pie-chart"></i>
<i class="fa-solid fa-pie-chart"></i>
IPSCONTENT;
elseif ( $t === 'GeoChart' ):
$return .= <<<IPSCONTENT
<i class="fa-solid fa-earth-americas"></i>
<i class="fa-solid fa-earth-americas"></i>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</a>
</a>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</li>
IPSCONTENT;
+1 -21
View File
@@ -2602,17 +2602,7 @@ if ( $file->canEdit() ):
$return .= <<<IPSCONTENT
<span data-controller="core.front.core.moderation">
IPSCONTENT;
if ( $file->locked() ):
$return .= <<<IPSCONTENT
<i class="fa-solid fa-lock"></i>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<span data-role="editableTitle" title="
<span data-role="editableTitle" title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'click_hold_edit', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -2645,16 +2635,6 @@ $return .= <<<IPSCONTENT
<span>
IPSCONTENT;
if ( $file->locked() ):
$return .= <<<IPSCONTENT
<i class="fa-solid fa-lock"></i>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $file->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -649,6 +649,11 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
<li><a href='
IPSCONTENT;
@@ -664,6 +669,12 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'share_this_comment', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a></li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</menu>
IPSCONTENT;
+23 -3
View File
@@ -143,7 +143,7 @@ IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/forums/forumButtons", "buttons:before", [ $forum ] );
$return .= <<<IPSCONTENT
<ul data-ips-hook="buttons" class="ipsButtons ipsButtons--main ipsButtons--margin">
<ul data-ips-hook="buttons" class="ipsButtons ipsButtons--main i-margin-block_block">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/forums/forumButtons", "buttons:inside-start", [ $forum ] );
@@ -5032,7 +5032,12 @@ $return .= <<<IPSCONTENT
</div>
<div class="ipsData__last-secondary">
<a href="
IPSCONTENT;
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row->url( 'getLastComment' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -5042,6 +5047,11 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'get_last_post', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -5068,7 +5078,17 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
+14 -84
View File
@@ -544,41 +544,6 @@ IPSCONTENT;
$pluralize = array( $count ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'posts_number', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize, 'format' => 'long' ) );
$return .= <<<IPSCONTENT
</li>
IPSCONTENT;
if ( $forum->followerCount ):
$return .= <<<IPSCONTENT
<li data-el="grid-follower-count">
<a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=notifications&do=followers&follow_app=forums&follow_area=forum&follow_id={$forum->_id}", null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'followers_tooltip', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
" data-ipstooltip data-ipsdialog data-ipsdialog-size="narrow" data-ipsdialog-title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'who_follows_this', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
$pluralize = array( $forum->followerCount ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'forum_follower_count', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
$return .= <<<IPSCONTENT
</a>
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -2176,41 +2141,6 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $forum->followerCount ):
$return .= <<<IPSCONTENT
<li data-el="grid-follower-count">
<a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=notifications&do=followers&follow_app=forums&follow_area=forum&follow_id={$forum->_id}", null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'followers_tooltip', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
" data-ipstooltip data-ipsdialog data-ipsdialog-size="narrow" data-ipsdialog-title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'who_follows_this', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
$pluralize = array( $forum->followerCount ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'forum_follower_count', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
$return .= <<<IPSCONTENT
</a>
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -2391,20 +2321,6 @@ $return .= <<<IPSCONTENT
</small>
</div>
<div class="ipsData__extra">
<ul class="ipsData__stats">
<li data-stattype="comments" data-v="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $lastPost['posts'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
<span class="ipsData__stats-label">
IPSCONTENT;
$pluralize = array( $lastPost['posts'] ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'num_comments', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
$return .= <<<IPSCONTENT
</span>
</li>
</ul>
<div class="ipsData__last">
<div class="ipsData__last-text">
<div class="ipsData__last-primary">
@@ -2501,6 +2417,20 @@ $return .= <<<IPSCONTENT
</div>
</div>
</div>
<ul class="ipsData__stats">
<li data-stattype="comments" data-v="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $lastPost['posts'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
<span class="ipsData__stats-label">
IPSCONTENT;
$pluralize = array( $lastPost['posts'] ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'num_comments', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
$return .= <<<IPSCONTENT
</span>
</li>
</ul>
</div>
</div>
</li>
+225 -309
View File
@@ -53,7 +53,8 @@ IPSCONTENT;
if ( $location == 'sidebar' ):
$return .= <<<IPSCONTENT
<div class="ipsWidget cTopicOverview cTopicOverview--sidebar i-flex i-flex-direction_column i-overflow_hidden ipsResponsive_showDesktop"
<div class="ipsWidget cTopicOverviewContainer">
<div class="cTopicOverview cTopicOverview--sidebar ipsResponsive_showDesktop"
IPSCONTENT;
if ( $hasAnyContent ):
@@ -70,7 +71,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<div class="cTopicOverview cTopicOverview--row i-flex
<div class="ipsBox ipsPull cTopicOverviewContainer
IPSCONTENT;
if ( $topic->showSummaryOnDesktop() != 'post' ):
@@ -90,7 +91,8 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
"
">
<div class="cTopicOverview cTopicOverview--main"
IPSCONTENT;
if ( $hasAnyContent ):
@@ -107,225 +109,106 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div class='cTopicOverview__header i-background_1 i-flex_00 i-flex i-flex-wrap_wrap'>
<ul class="iTopicOverview__header i-flex_91 i-padding_3 i-flex i-flex-wrap_wrap i-justify-content_space-around i-gap_3 i-text-align_center">
<li>
<span class="i-color_soft i-font-weight_500 i-display_block">
<div class="cTopicOverview__content">
<ul class='cTopicOverview__item cTopicOverview__item--stats'>
IPSCONTENT;
if ( $topic->posts > 1 ):
$return .= <<<IPSCONTENT
<li>
<span class="i-color_soft i-font-weight_500">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'replies', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span>
<span class="i-color_hard i-font-weight_700 i-display_block i-font-size_3">
<span class="i-color_hard i-font-weight_700 i-font-size_3">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->formatNumberShort( $topic->posts-1 );
$return .= <<<IPSCONTENT
</span>
</li>
<li>
<span class="i-color_soft i-font-weight_500 i-display_block">
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<li>
<span class="i-color_soft i-font-weight_500">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'views', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span>
<span class="i-color_hard i-font-weight_700 i-font-size_3">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->formatNumberShort( $topic->views );
$return .= <<<IPSCONTENT
</span>
</li>
<li>
<span class="i-color_soft i-font-weight_500">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'topicactivity_created', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span>
<span class="i-color_hard i-font-weight_700 i-display_block i-font-size_3">
<span class="i-color_hard i-font-weight_700 i-font-size_3">
IPSCONTENT;
$val = ( $topic->start_date instanceof \IPS\DateTime ) ? $topic->start_date : \IPS\DateTime::ts( $topic->start_date );$return .= $val->html(TRUE, TRUE);
$return .= <<<IPSCONTENT
</span>
</li>
<li>
<span class="i-color_soft i-font-weight_500 i-display_block">
</li>
<li>
<span class="i-color_soft i-font-weight_500">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'last_reply', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span>
<span class="i-color_hard i-font-weight_700 i-display_block i-font-size_3">
<span class="i-color_hard i-font-weight_700 i-font-size_3">
IPSCONTENT;
$val = ( $topic->last_post instanceof \IPS\DateTime ) ? $topic->last_post : \IPS\DateTime::ts( $topic->last_post );$return .= $val->html(TRUE, TRUE);
$return .= <<<IPSCONTENT
</span>
</li>
</ul>
IPSCONTENT;
if ( $location != 'sidebar' ):
$return .= <<<IPSCONTENT
<a href='#' data-action='toggleOverview' class='cTopicOverview__toggle cTopicOverview__toggle--row i-flex_10 i-basis_80 i-color_soft i-font-size_2'><span class="ipsInvisible">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'topicactivity_expand', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span><i class='fa-solid fa-chevron-down'></i></a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
if ( $location !== 'sidebar' ):
$return .= <<<IPSCONTENT
<div class='cTopicOverview__preview i-flex_10' data-role="preview">
<div class='cTopicOverview__previewInner i-padding_3 i-flex i-gap_3 ipsResponsive_hidePhone'>
</li>
</ul>
IPSCONTENT;
if ( $members ):
$return .= <<<IPSCONTENT
<div class='cTopicOverview__section--users i-flex_00'>
<h4 class='cTopicOverview__sectionTitle i-font-size_-1 i-color_hard i-text-transform_uppercase i-font-weight_600'>
<div class='cTopicOverview__item cTopicOverview__item--topPosters'>
<h4 class='cTopicOverview__title'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'topicactivity_topposters', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h4>
<ul class='cTopicOverview__dataList i-flex i-justify-content_space-between i-align-items_center i-gap_3 i-margin-top_1'>
<ul class='cTopicOverview__dataList'>
IPSCONTENT;
foreach ( $members as $data ):
$return .= <<<IPSCONTENT
<li class="cTopicOverview__dataItem i-flex i-justify-content_start i-align-items_center i-gap_2">
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $data['member'], 'tiny' );
$return .= <<<IPSCONTENT
<span>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['count'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $busy ):
$return .= <<<IPSCONTENT
<div class='cTopicOverview__section--popularDays i-flex_00'>
<h4 class='cTopicOverview__sectionTitle i-font-size_-1 i-color_hard i-text-transform_uppercase i-font-weight_600'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'topicactivity_populardays', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h4>
<ul class='cTopicOverview__dataList i-flex i-justify-content_space-between i-align-items_center i-gap_3 i-margin-top_1'>
IPSCONTENT;
foreach ( $busy as $row ):
$return .= <<<IPSCONTENT
<li class='i-flex_10'>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $topic->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $row['commentId'] ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow" class='cTopicOverview__dataItem i-flex i-justify-content_space-between i-align-items_center i-gap_2'>
<span class='i-color_soft'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row['date']->dayAndShortMonth(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
<span class='i-font-weight_500 i-color_hard'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row['count'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
</a>
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div class='cTopicOverview__body i-padding_3 i-gap_3
IPSCONTENT;
if ( $location !== 'sidebar' ):
$return .= <<<IPSCONTENT
ipsHide i-flex i-flex_11 i-flex-direction_column
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
' data-role="overview">
IPSCONTENT;
if ( $members ):
$return .= <<<IPSCONTENT
<div class='cTopicOverview__section--users'>
<h4 class='ipsTitle ipsTitle--hr ipsTitle--h6 i-font-weight_600 i-text-transform_uppercase i-font-size_-2 i-margin-bottom_2'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'topicactivity_topposters', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h4>
<ul class='cTopicOverview__dataList ipsGrid i-basis_140 i-gap_2'>
IPSCONTENT;
foreach ( $members as $data ):
$return .= <<<IPSCONTENT
<li class="ipsPhotoPanel">
<li class="ipsPhotoPanel">
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $data['member'], 'fluid' );
$return .= <<<IPSCONTENT
<div class='ipsPhotoPanel__text'>
<strong class='ipsPhotoPanel__primary'><a href='
<div class='ipsPhotoPanel__text'>
<strong class='ipsPhotoPanel__primary i-color_hard'><a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['member']->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -334,55 +217,55 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['member']->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</a></strong>
<span class='ipsPhotoPanel__secondary'>
<span class='ipsPhotoPanel__secondary'>
IPSCONTENT;
$pluralize = array( $data['count'] ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'topicactivity_number_posts', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
$return .= <<<IPSCONTENT
</span>
</div>
</li>
</div>
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</div>
</ul>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $busy ):
$return .= <<<IPSCONTENT
<div class='cTopicOverview__section--popularDays'>
<h4 class='ipsTitle ipsTitle--hr ipsTitle--h6 i-font-weight_600 i-text-transform_uppercase i-font-size_-2 i-margin-top_4 i-margin-bottom_2'>
<div class='cTopicOverview__item cTopicOverview__item--popularDays'>
<h4 class='cTopicOverview__title'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'topicactivity_populardays', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h4>
<ul class='cTopicOverview__dataList ipsGrid i-basis_140 i-gap_2'>
<ul class='cTopicOverview__dataList'>
IPSCONTENT;
foreach ( $busy as $row ):
$return .= <<<IPSCONTENT
<li>
<a href="
<li>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $topic->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $row['commentId'] ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= \IPS\Theme\Template::htmlspecialchars( $topic->shareableUrl( $row['commentId'] ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow" class='cTopicOverview__dataItem i-flex i-justify-content_start i-align-items_center i-gap_2'>
<span class='i-font-weight_bold'>
" rel="nofollow" class='cTopicOverview__dataItem i-grid i-color_soft'>
<span class='i-font-weight_bold i-color_hard'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row['date']->dayAndShortMonth(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -391,60 +274,52 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row['date']->format('Y'), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
<span class='i-color_soft'>
<span>
IPSCONTENT;
$pluralize = array( $row['count'] ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'topicactivity_number_posts', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
$return .= <<<IPSCONTENT
</span>
</a>
</li>
</a>
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</div>
</ul>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $reacted ):
$return .= <<<IPSCONTENT
<div class='cTopicOverview__section--topPost'>
<h4 class='ipsTitle ipsTitle--hr ipsTitle--h6 i-font-weight_600 i-text-transform_uppercase i-font-size_-2 i-margin-top_4'>
<div class='cTopicOverview__item cTopicOverview__item--popularPosts'>
<h4 class='cTopicOverview__title'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'topicactivity_popularposts', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h4>
<ul class='cTopicOverview__dataList'>
IPSCONTENT;
foreach ( $reacted as $data ):
$return .= <<<IPSCONTENT
<div class='i-position_relative'>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['comment']->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow" class="i-position_cover" aria-hidden='true'><span class='ipsInvisible'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['comment']->author()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span></a>
<div class='ipsPhotoPanel ipsPhotoPanel--tiny i-margin-top_3'>
<span class='ipsUserPhoto'>
<img src='
<li>
<div class='ipsPhotoPanel ipsPhotoPanel--tiny'>
<span class='ipsUserPhoto'>
<img src='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['comment']->author()->photo, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -453,74 +328,73 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['comment']->author()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' loading='lazy'>
</span>
<div class="ipsPhotoPanel__text">
<h5 class='ipsPhotoPanel__primary'>
</span>
<div class="ipsPhotoPanel__text">
<h5 class='ipsPhotoPanel__primary i-color_hard'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['comment']->author()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</h5>
<p class='ipsPhotoPanel__secondary'>
<p class='ipsPhotoPanel__secondary'>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['comment']->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow">
IPSCONTENT;
$val = ( $data['comment']->mapped('date') instanceof \IPS\DateTime ) ? $data['comment']->mapped('date') : \IPS\DateTime::ts( $data['comment']->mapped('date') );$return .= $val->html();
$return .= <<<IPSCONTENT
</p>
</div>
</div>
<p class='i-margin-top_2 ipsRichText ipsTruncate_3'>
</a>
</p>
</div>
</div>
<p class='i-margin-top_2 ipsRichText ipsTruncate_3'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['comment']->truncated(true, 200), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</p>
</div>
</p>
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</div>
</ul>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $helpful ):
$return .= <<<IPSCONTENT
<div class='cTopicOverview__section--topPost'>
<h4 class='ipsTitle ipsTitle--hr ipsTitle--h6 i-font-weight_600 i-text-transform_uppercase i-font-size_-2 i-margin-top_4'>
<div class='cTopicOverview__item cTopicOverview__item--helpfulPosts'>
<h4 class='cTopicOverview__title'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'topicactivity_helpfulposts', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h4>
<ul class='cTopicOverview__dataList'>
IPSCONTENT;
foreach ( $helpful as $data ):
$return .= <<<IPSCONTENT
<div class='i-position_relative'>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['comment']->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow" class="i-position_cover" aria-hidden='true'><span class='ipsInvisible'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['comment']->author()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span></a>
<div class='ipsPhotoPanel ipsPhotoPanel--tiny i-margin-top_3'>
<span class='ipsUserPhoto'>
<img src='
<li>
<div class='ipsPhotoPanel ipsPhotoPanel--tiny'>
<span class='ipsUserPhoto'>
<img src='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['comment']->author()->photo, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -529,57 +403,63 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['comment']->author()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' loading='lazy'>
</span>
<div>
<h5 class='i-font-weight_bold'>
</span>
<div class="ipsPhotoPanel__text">
<h5 class="ipsPhotoPanel__primary i-color_hard">
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['comment']->author()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</h5>
<p class='i-color_soft'>
<p class="ipsPhotoPanel__secondary">
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['comment']->shareableUrl(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow">
IPSCONTENT;
$val = ( $data['comment']->mapped('date') instanceof \IPS\DateTime ) ? $data['comment']->mapped('date') : \IPS\DateTime::ts( $data['comment']->mapped('date') );$return .= $val->html();
$return .= <<<IPSCONTENT
</p>
</div>
</div>
<p class='i-margin-top_2 ipsRichText ipsTruncate_3'>
</a>
</p>
</div>
</div>
<p class='i-margin-top_2 ipsRichText ipsTruncate_3'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data['comment']->truncated(true, 200), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</p>
</div>
</p>
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</div>
</ul>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $images ):
$return .= <<<IPSCONTENT
<div class='cTopicOverview__section--images'>
<h4 class='ipsTitle ipsTitle--hr ipsTitle--h6 i-font-weight_600 i-text-transform_uppercase i-font-size_-2 i-margin-top_4'>
<div class='cTopicOverview__item cTopicOverview__item--images'>
<h4 class='cTopicOverview__title'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'topicactivity_images', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h4>
<div class="i-margin-top_2" data-controller='core.front.core.lightboxedImages'>
<ul class='cTopicOverview__imageGrid ipsGrid i-basis_120 i-gap_1'>
<ul class='cTopicOverview__imageGrid' data-controller='core.front.core.lightboxedImages'>
IPSCONTENT;
@@ -613,7 +493,25 @@ $return .= <<<IPSCONTENT
</ul>
</div>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
if ( $hasAnyContent ):
$return .= <<<IPSCONTENT
<button type="button" data-action='toggleOverview' class='cTopicOverview__toggle'><span class="ipsInvisible">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'topicactivity_expand', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span><i class='fa-solid fa-chevron-down'></i></button>
IPSCONTENT;
@@ -621,46 +519,7 @@ endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
if ( $location !== 'sidebar' and $hasAnyContent ):
$return .= <<<IPSCONTENT
<a href='#' data-action='toggleOverview' class='cTopicOverview__toggle cTopicOverview__toggle--afterStats i-font-size_2 i-color_soft i-padding_3 i-flex i-align-items_center i-justify-content_center'><span class="ipsInvisible">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'topicactivity_expand', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span><i class='fa-solid fa-chevron-down'></i></a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $location == 'sidebar' ):
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
return $return;
@@ -819,11 +678,31 @@ $return .= <<<IPSCONTENT
>
<div class="ipsEntry__post">
<div class="ipsEntry__meta">
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->$idField ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
" class="ipsEntry__date" rel="nofollow">{$comment->dateLine()}</a>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->shareableUrl(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" class="ipsEntry__date" rel="nofollow">
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
{$comment->dateLine()}
IPSCONTENT;
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<!-- Traditional badges -->
IPSCONTENT;
@@ -1611,11 +1490,23 @@ endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->sharemenu( $comment );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
@@ -1727,6 +1618,11 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<a id="findComment-
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->$idField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
"></a>
<div id="comment-
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->$idField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
@@ -2816,11 +2712,31 @@ $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/fr
$return .= <<<IPSCONTENT
<p class="ipsPhotoPanel__secondary">
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->$idField ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
" rel="nofollow">{$comment->dateLine()}</a>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->shareableUrl(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow">
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
{$comment->dateLine()}
IPSCONTENT;
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</p>
</div>
</div>
+54 -2
View File
@@ -1036,7 +1036,7 @@ IPSCONTENT;
if ( \IPS\Widget\Request::i()->controller != 'forums' ):
$return .= <<<IPSCONTENT
<div class="ipsData__category" data-hide-on="minimal"><a href="
<div class="ipsData__category"><a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $topic->container()->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -1194,7 +1194,7 @@ endif;
$return .= <<<IPSCONTENT
</div>
<div class="ipsData__extra" data-hide-on="minimal">
<div class="ipsData__extra">
IPSCONTENT;
@@ -1297,6 +1297,58 @@ $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/fr
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/widgets/topicFeedRow", "latestAuthorPhoto:before", [ $topic,$layout,$isCarousel ] );
$return .= <<<IPSCONTENT
<div class="ipsData__last ipsData__last--author" data-ips-hook="latestAuthorPhoto">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/widgets/topicFeedRow", "latestAuthorPhoto:inside-start", [ $topic,$layout,$isCarousel ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $topic->author(), 'fluid' );
$return .= <<<IPSCONTENT
<div class="ipsData__last-text">
<div class="ipsData__last-primary">
{$topic->author()->link( NULL, NULL, $topic->isAnonymous() )}
</div>
<div class="ipsData__last-secondary">
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $topic->url( 'getLastComment' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'get_last_post', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
$val = ( $topic->mapped('date') instanceof \IPS\DateTime ) ? $topic->mapped('date') : \IPS\DateTime::ts( $topic->mapped('date') );$return .= $val->html();
$return .= <<<IPSCONTENT
</a>
</div>
</div>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/widgets/topicFeedRow", "latestAuthorPhoto:inside-end", [ $topic,$layout,$isCarousel ] );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/widgets/topicFeedRow", "latestAuthorPhoto:after", [ $topic,$layout,$isCarousel ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/widgets/topicFeedRow", "latestUserPhoto:before", [ $topic,$layout,$isCarousel ] );
+5 -5
View File
@@ -2477,19 +2477,19 @@ if ( !$currentCategory ):
$return .= <<<IPSCONTENT
<li>
<ul class="ipsButtonGroup ipsButton--soft">
<ul class="ipsButtonGroup">
<li>
<a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=gallery", null, "gallery", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" class="ipsButtonGroup__button
" class="ipsButton
IPSCONTENT;
if ( !\IPS\Widget\Request::i()->do=='categories' ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
@@ -2509,12 +2509,12 @@ IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=gallery&module=gallery&controller=browse&do=categories", null, "gallery_categories", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" class="ipsButtonGroup__button
" class="ipsButton
IPSCONTENT;
if ( \IPS\Widget\Request::i()->do=='categories' ):
$return .= <<<IPSCONTENT
ipsButtonGroup__button--active
ipsButton--active
IPSCONTENT;
endif;
+57 -3
View File
@@ -412,11 +412,31 @@ $return .= <<<IPSCONTENT
</div>
<p class="ipsPhotoPanel__secondary">
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
">{$comment->dateLine()}</a>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->shareableUrl(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
{$comment->dateLine()}
IPSCONTENT;
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -1032,11 +1052,23 @@ endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->sharemenu( $comment );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
@@ -1149,6 +1181,11 @@ endif;
$return .= <<<IPSCONTENT
<a id='findComment-
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->$idField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'></a>
<a id='comment-
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->$idField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
@@ -4745,11 +4782,23 @@ endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( ! \IPS\Output::i()->reduceLinks() ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->sharemenu( $review );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
@@ -4790,6 +4839,11 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $review->$idField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'></a>
<a id='findReview-
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $review->$idField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'></a>
<article id="elReview_
IPSCONTENT;
+1 -1
View File
@@ -356,7 +356,7 @@ $return .= <<<IPSCONTENT
</div>
</i-data>
</div>
<ul class="ipsButtons ipsButtons--main ipsButtons--margin">
<ul class="ipsButtons ipsButtons--main i-margin-block_block">
<li>
<a class="ipsButton ipsButton--text" href="
IPSCONTENT;