Version 5.0.6

This commit is contained in:
Neo committed 2025-12-19 18:55:49 -08:00
1 parent a3a4a9ccbd
commit b89858b2ff
1214 files changed
+92828 -14859

No files matched your search

+115 -103
View File
@@ -12,11 +12,37 @@ IPSCONTENT;
if ( $title ):
$return .= <<<IPSCONTENT
<h3 class="ipsWidget__header">
<div class="ipsWidget__header">
<h3>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</h3>
IPSCONTENT;
if ( $isCarousel ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$carouselID = 'widget-achievements_' . mt_rand();
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->carouselNavigation( $carouselID );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
@@ -29,7 +55,31 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $layout, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
ipsData--achievements'>
ipsData--achievements
IPSCONTENT;
if ( $isCarousel ):
$return .= <<<IPSCONTENT
ipsData--carousel
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
'
IPSCONTENT;
if ( $isCarousel ):
$return .= <<<IPSCONTENT
id='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $carouselID, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' tabindex="0"
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
IPSCONTENT;
@@ -37,27 +87,29 @@ foreach ( $result as $row ):
$return .= <<<IPSCONTENT
<li class='ipsData__item'>
<div class='ipsData__image'>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $row['member'], 'fluid', '', '' );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
if ( $row['type'] === 'badge' ):
$return .= <<<IPSCONTENT
<div class='ipsData__icon'>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $row['member'], 'fluid', '', '' );
$return .= <<<IPSCONTENT
</div>
<div class="ipsData__content">
<div class='ipsData__main'>
<div class='ipsData__title'><h4>
<div class="i-flex i-gap_2">
<div class="i-flex_11">
<div class='ipsData__title'><h4>
IPSCONTENT;
$htmlsprintf = array($row['member']->link(), $row['badge']->_title); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'block_achievements_earned_badge', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
$return .= <<<IPSCONTENT
</h4></div>
IPSCONTENT;
if ( ! empty( $row['badge']->awardDescription ) ):
@@ -72,44 +124,44 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<p class="ipsData__meta">
<p class="ipsData__meta">
IPSCONTENT;
$val = ( $row['date'] instanceof \IPS\DateTime ) ? $row['date'] : \IPS\DateTime::ts( $row['date'] );$return .= $val->html();
$val = ( $row['date'] instanceof \IPS\DateTime ) ? $row['date'] : \IPS\DateTime::ts( $row['date'] );$return .= $val->html(useTitle: true);
$return .= <<<IPSCONTENT
</p>
</div>
<div class='i-flex_00 cAchievementsWidget__badge'>{$row['badge']->html('')}</div>
</div>
</div>
</div>
<div class='cAchievementsWidget__badge'>{$row['badge']->html('')}</div>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<div class='ipsData__icon'>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $row['member'], 'fluid', '', '' );
$return .= <<<IPSCONTENT
</div>
<div class="ipsData__content">
<div class='ipsData__main'>
<div class='ipsData__title'><h4>
<div class="i-flex i-gap_2">
<div class="i-flex_11">
<div class='ipsData__title'><h4>
IPSCONTENT;
$htmlsprintf = array($row['member']->link(), $row['rank']->_title); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'block_achievements_earned_rank', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
$return .= <<<IPSCONTENT
</h4></div>
<p class="ipsData__meta">
<p class="ipsData__meta">
IPSCONTENT;
$val = ( $row['date'] instanceof \IPS\DateTime ) ? $row['date'] : \IPS\DateTime::ts( $row['date'] );$return .= $val->html();
$val = ( $row['date'] instanceof \IPS\DateTime ) ? $row['date'] : \IPS\DateTime::ts( $row['date'] );$return .= $val->html(useTitle: true);
$return .= <<<IPSCONTENT
</p>
</div>
<div class='i-flex_00 cAchievementsWidget__badge'>{$row['rank']->html('')}</div>
</div>
</div>
</div>
<div class='cAchievementsWidget__badge'>{$row['rank']->html('')}</div>
IPSCONTENT;
@@ -135,7 +187,7 @@ IPSCONTENT;
$return = '';
$return .= <<<IPSCONTENT
<div data-controller='core.front.core.onlineUsersWidget' style="border-radius:inherit">
<div style="border-radius:inherit">
<h3 class='ipsWidget__header'>
IPSCONTENT;
@@ -167,33 +219,11 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( isset($orientation) and $orientation == 'horizontal' ):
$return .= <<<IPSCONTENT
<span class='ipsWidget__header-secondary' data-memberCount="
<span class='ipsWidget__header-secondary i-color_soft' data-memberCount="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $memberCount, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
$pluralize = array( $memberCount ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'block_user_online_info', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<span class='ipsWidget__header-secondary i-color_soft' data-memberCount="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $memberCount, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" data-ipstooltip title='
" data-ipsTooltip title='
IPSCONTENT;
$pluralize = array( $memberCount ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'block_user_online_info', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
@@ -203,12 +233,6 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $memberCount, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</h3>
<div class='ipsWidget__content ipsWidget__padding'>
<ul class='ipsList ipsList--csv'>
@@ -813,7 +837,12 @@ IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( \IPS\Application::appIsEnabled('cms') ):
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -827,6 +856,12 @@ IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "widgets", "core", 'front' )->blockGroup( $customBlocks, $customTitle, $favorites, true );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
return $return;
@@ -859,38 +894,26 @@ endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( ! $config['border'] ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$block = \IPS\Widget\Request::i()->blockID;
$return .= <<<IPSCONTENT
.ipsBox[data-blockid="
.ipsBox[data-blockid="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $block, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
"] {
border-width: 0;
box-shadow: none;
}
.ipsWidget[data-blockid="
border-width: 0;
box-shadow: none;
}
.ipsWidget[data-blockid="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $block, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
"] {
background: transparent !important;
}
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
background: transparent !important;
}
</style>
IPSCONTENT;
@@ -940,20 +963,10 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div class="
<div class="ipsWidget__customStyles
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $config['class'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( ! empty($config['border']) ):
$return .= <<<IPSCONTENT
ipsBox
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -3001,7 +3014,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$val = ( $item->object()->mapped('date') instanceof \IPS\DateTime ) ? $item->object()->mapped('date') : \IPS\DateTime::ts( $item->object()->mapped('date') );$return .= $val->html();
$val = ( $item->object()->mapped('date') instanceof \IPS\DateTime ) ? $item->object()->mapped('date') : \IPS\DateTime::ts( $item->object()->mapped('date') );$return .= $val->html(useTitle: true);
$return .= <<<IPSCONTENT
</div>
@@ -3034,7 +3047,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$val = ( $item->added instanceof \IPS\DateTime ) ? $item->added : \IPS\DateTime::ts( $item->added );$return .= $val->html();
$val = ( $item->added instanceof \IPS\DateTime ) ? $item->added : \IPS\DateTime::ts( $item->added );$return .= $val->html(useTitle: true);
$return .= <<<IPSCONTENT
</div>
@@ -3525,7 +3538,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$val = ( $item->mapped('last_comment') instanceof \IPS\DateTime ) ? $item->mapped('last_comment') : \IPS\DateTime::ts( $item->mapped('last_comment') );$return .= $val->html();
$val = ( $item->mapped('last_comment') instanceof \IPS\DateTime ) ? $item->mapped('last_comment') : \IPS\DateTime::ts( $item->mapped('last_comment') );$return .= $val->html(useTitle: true);
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -3535,7 +3548,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$val = ( $item->mapped('date') instanceof \IPS\DateTime ) ? $item->mapped('date') : \IPS\DateTime::ts( $item->mapped('date') );$return .= $val->html();
$val = ( $item->mapped('date') instanceof \IPS\DateTime ) ? $item->mapped('date') : \IPS\DateTime::ts( $item->mapped('date') );$return .= $val->html(useTitle: true);
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -3910,7 +3923,7 @@ $return .= <<<IPSCONTENT
'>
IPSCONTENT;
$val = ( $indexData['index_date_created'] instanceof \IPS\DateTime ) ? $indexData['index_date_created'] : \IPS\DateTime::ts( $indexData['index_date_created'] );$return .= $val->html();
$val = ( $indexData['index_date_created'] instanceof \IPS\DateTime ) ? $indexData['index_date_created'] : \IPS\DateTime::ts( $indexData['index_date_created'] );$return .= $val->html(useTitle: true);
$return .= <<<IPSCONTENT
</a>
</li>
@@ -4102,21 +4115,20 @@ endif;
$return .= <<<IPSCONTENT
</h4>
</div>
IPSCONTENT;
if ( $containerTitle ):
$return .= <<<IPSCONTENT
<div class='ipsStreamItem__summary'>
<div class='ipsStreamItem__summary'>
IPSCONTENT;
if ( $indexData['index_title'] ):
$return .= <<<IPSCONTENT
<span data-ipsTooltip title='
<span data-ipsTooltip title='
IPSCONTENT;
$val = "{$itemClass::$title}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -4126,13 +4138,13 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $itemClass::$icon, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'></i></span>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<span data-ipsTooltip title='
<span data-ipsTooltip title='
IPSCONTENT;
$val = "{$indexData['index_class']::$title}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -4142,13 +4154,13 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $indexData['index_class']::$icon, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'></i></span>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $summaryLanguage, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -4157,14 +4169,14 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $containerUrl, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>{$containerTitle}</a>
</div>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
@@ -4227,7 +4239,7 @@ $return .= <<<IPSCONTENT
'>
IPSCONTENT;
$val = ( $indexData['index_date_created'] instanceof \IPS\DateTime ) ? $indexData['index_date_created'] : \IPS\DateTime::ts( $indexData['index_date_created'] );$return .= $val->html();
$val = ( $indexData['index_date_created'] instanceof \IPS\DateTime ) ? $indexData['index_date_created'] : \IPS\DateTime::ts( $indexData['index_date_created'] );$return .= $val->html(useTitle: true);
$return .= <<<IPSCONTENT
</a>
</li>
@@ -5061,7 +5073,7 @@ IPSCONTENT;
$return = '';
$return .= <<<IPSCONTENT
<div data-controller='core.front.core.onlineUsersWidget' style="border-radius:inherit">
<div style="border-radius:inherit">
<h3 class='ipsWidget__header'>
<span>