Version 5.0.13

This commit is contained in:
Neo committed 2025-12-19 19:04:57 -08:00
1 parent b89858b2ff
commit 5efe744c5f
1407 files changed
+69690 -30177

No files matched your search

+116 -85
View File
@@ -1635,6 +1635,18 @@ $thisUrl = \IPS\Widget\Request::i()->url();
$return .= <<<IPSCONTENT
IPSCONTENT;
$customStart = ( isset( \IPS\Widget\Request::i()->custom_date_start ) and is_numeric( \IPS\Widget\Request::i()->custom_date_start ) ) ? (int) \IPS\Widget\Request::i()->custom_date_start : NULL;
$return .= <<<IPSCONTENT
IPSCONTENT;
$customEnd = ( isset( \IPS\Widget\Request::i()->custom_date_end ) and is_numeric( \IPS\Widget\Request::i()->custom_date_end ) ) ? (int) \IPS\Widget\Request::i()->custom_date_end : NULL;
$return .= <<<IPSCONTENT
<div>
IPSCONTENT;
@@ -1646,7 +1658,7 @@ $return .= <<<IPSCONTENT
<div class="ipsButtonBar__end">
<ul class="ipsDataFilters">
<li>
<a href='#elLeaderboard_app_menu' id="elLeaderboard_app" class='ipsDataFilters__button' data-ipsMenu data-ipsMenu-activeClass="ipsDataFilters__button--active"><span>
<button type="button" id="elLeaderboard_app" popovertarget="elLeaderboard_app_menu" class='ipsDataFilters__button'><span>
IPSCONTENT;
if ( isset( \IPS\Widget\Request::i()->in ) and isset( $areas[ \IPS\Widget\Request::i()->in ] ) ):
@@ -1671,68 +1683,72 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</span><i class="fa-solid fa-caret-down"></i></a>
<ul id="elLeaderboard_app_menu" class="ipsMenu ipsMenu_selectable ipsMenu_normal ipsHide">
<li class="ipsMenu_item
</span><i class="fa-solid fa-caret-down"></i></button>
<i-dropdown popover id="elLeaderboard_app_menu" data-i-dropdown-selectable="radio">
<div class="iDropdown">
<ul class="iDropdown__items">
<li><a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $thisUrl->stripQueryString( 'in' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow"
IPSCONTENT;
if ( ! isset( \IPS\Widget\Request::i()->in ) ):
$return .= <<<IPSCONTENT
ipsMenu_itemChecked
aria-selected="true"
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
"><a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $thisUrl->stripQueryString( 'in' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow">
><i class="iDropdown__input"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'leaderboard_all_apps', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a></li>
IPSCONTENT;
foreach ( $areas as $key => $data ):
$return .= <<<IPSCONTENT
<li class="ipsMenu_item
<li><a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $thisUrl->setQueryString( array( 'in' => $key ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow"
IPSCONTENT;
if ( isset( \IPS\Widget\Request::i()->in ) and \IPS\Widget\Request::i()->in == $key ):
$return .= <<<IPSCONTENT
ipsMenu_itemChecked
aria-selected="true"
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
"><a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $thisUrl->setQueryString( array( 'in' => $key ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow">
><i class="iDropdown__input"></i>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $data[1], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</a></li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</ul>
</div>
</i-dropdown>
</li>
<li>
<a href='#elLeaderboard_time_menu' id="elLeaderboard_time" class='ipsDataFilters__button' data-ipsMenu data-ipsMenu-activeClass="ipsDataFilters__button--active">
<button type="button" id="elLeaderboard_time" popovertarget="elLeaderboard_time_menu" class='ipsDataFilters__button'>
<span>
IPSCONTENT;
if ( isset( \IPS\Widget\Request::i()->custom_date_start ) or isset( \IPS\Widget\Request::i()->custom_date_end ) ):
if ( $customStart or $customEnd ):
$return .= <<<IPSCONTENT
@@ -1773,38 +1789,42 @@ $return .= <<<IPSCONTENT
</span>
<i class="fa-solid fa-caret-down"></i>
</a>
<ul id="elLeaderboard_time_menu" class="ipsMenu ipsMenu_selectable ipsMenu_normal ipsHide">
</button>
<i-dropdown popover id="elLeaderboard_time_menu" data-i-dropdown-selectable="radio" data-role="tableFilterMenu">
<div class="iDropdown">
<ul class="iDropdown__items">
IPSCONTENT;
foreach ( $dates as $human => $timeObject ):
$return .= <<<IPSCONTENT
<li class="ipsMenu_item
<li>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $thisUrl->stripQueryString( array('custom_date_start', 'custom_date_end') )->setQueryString( array( 'time' => $human ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow"
IPSCONTENT;
if ( ( ! isset( \IPS\Widget\Request::i()->time ) and ( ! isset( \IPS\Widget\Request::i()->custom_date_start ) and ! isset( \IPS\Widget\Request::i()->custom_date_end ) ) and $human == 'oldest' ) or ( ! isset( \IPS\Widget\Request::i()->custom_date_start ) and ( isset( \IPS\Widget\Request::i()->time ) and \IPS\Widget\Request::i()->time == $human ) ) ):
if ( ( ! isset( \IPS\Widget\Request::i()->time ) and ( !$customStart and !$customEnd ) and $human == 'oldest' ) or ( !$customStart and ( isset( \IPS\Widget\Request::i()->time ) and \IPS\Widget\Request::i()->time == $human ) ) ):
$return .= <<<IPSCONTENT
ipsMenu_itemChecked
aria-selected="true"
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
">
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $thisUrl->stripQueryString( array('custom_date_start', 'custom_date_end') )->setQueryString( array( 'time' => $human ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow">
>
<i class="iDropdown__input"></i>
<div>
IPSCONTENT;
$val = "leaderboard_time_$human"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
<p class="ipsTruncate_1 i-color_soft">
<div class="iDropdown__minor">
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $timeObject->dayAndMonth(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -1831,60 +1851,64 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</p>
</a>
</li>
</div>
</div>
</a>
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
<li class="ipsMenu_item
<li>
<a href="#" rel="nofollow" data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-content='#elDateForm' data-ipsDialog-title="
IPSCONTENT;
if ( isset( \IPS\Widget\Request::i()->custom_date_start ) or isset( \IPS\Widget\Request::i()->custom_date_end ) ):
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'custom_date', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
ipsMenu_itemChecked
"
IPSCONTENT;
if ( $customStart or $customEnd ):
$return .= <<<IPSCONTENT
aria-selected="true"
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
">
<a href="#" rel="nofollow" data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-content='#elDateForm' data-ipsDialog-title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'custom_date', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
">
>
<i class="iDropdown__input"></i>
<div>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'custom_date', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( isset( \IPS\Widget\Request::i()->custom_date_start ) or isset( \IPS\Widget\Request::i()->custom_date_end ) ):
if ( $customStart or $customEnd ):
$return .= <<<IPSCONTENT
<p class="i-color_soft">
<div class="iDropdown__minor">
IPSCONTENT;
if ( isset( \IPS\Widget\Request::i()->custom_date_start ) ):
if ( $customStart ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$val = ( \IPS\Request::i()->custom_date_start instanceof \IPS\DateTime ) ? \IPS\Request::i()->custom_date_start : \IPS\DateTime::ts( \IPS\Request::i()->custom_date_start );$return .= (string) $val->localeDate();
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( isset( \IPS\Widget\Request::i()->custom_date_end ) ):
if ( $customEnd ):
$return .= <<<IPSCONTENT
-
IPSCONTENT;
@@ -1892,40 +1916,43 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( isset( \IPS\Widget\Request::i()->custom_date_end ) ):
if ( $customEnd ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$val = ( \IPS\Request::i()->custom_date_end instanceof \IPS\DateTime ) ? \IPS\Request::i()->custom_date_end : \IPS\DateTime::ts( \IPS\Request::i()->custom_date_end );$return .= (string) $val->localeDate();
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</p>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</a>
</li>
</ul>
</div>
</a>
</li>
</ul>
</div>
</i-dropdown>
<div class="ipsHide" id="elDateForm">
{$form}
</div>
@@ -2174,51 +2201,55 @@ $return .= <<<IPSCONTENT
<div class='ipsButtonBar__end'>
<ul class="ipsDataFilters">
<li>
<a href="#elFilterByMenu_menu" id="elFilterByMenu" class='ipsDataFilters__button' data-role='tableFilterMenu' data-ipsMenu data-ipsMenu-activeClass="ipsDataFilters--active" data-ipsMenu-selectable="radio"><span data-role="extraHtml">
<button type="button" id="elFilterByMenu" popovertarget="elFilterByMenu_menu" class='ipsDataFilters__button' data-role='tableFilterMenu'><span data-role="extraHtml">
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $filters[ $activeFilter ], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span> <i class="fa-solid fa-caret-down"></i></a>
<ul class='ipsMenu ipsMenu_auto ipsMenu_withStem ipsMenu_selectable ipsHide' data-role="tableFilterMenu" id='elFilterByMenu_menu'>
</span> <i class="fa-solid fa-caret-down"></i></button>
<i-dropdown popover id="elFilterByMenu_menu" data-i-dropdown-selectable="radio">
<div class="iDropdown">
<ul class="iDropdown__items">
IPSCONTENT;
foreach ( $filters as $k => $v ):
$return .= <<<IPSCONTENT
<li data-action="tableFilter" data-ipsMenuValue='
<li>
<a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $url->setQueryString( array( 'filter' => str_replace( array( 'IPS\\', '\\' ), array( '', '_' ), $k ) ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' rel="nofollow" data-action="tableFilter" data-ipsMenuValue='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( str_replace( array( 'IPS\\', '\\' ), array( '', '_' ), $k ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' class='ipsMenu_item
'
IPSCONTENT;
if ( $k === $activeFilter ):
$return .= <<<IPSCONTENT
ipsMenu_itemChecked
aria-selected="true"
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
'>
<a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $url->setQueryString( array( 'filter' => str_replace( array( 'IPS\\', '\\' ), array( '', '_' ), $k ) ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' rel="nofollow">
><i class="iDropdown__input"></i>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $v, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</a>
</li>
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</ul>
</div>
</i-dropdown>
</li>
</ul>
</div>