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

+124 -99
View File
@@ -364,7 +364,7 @@ endif;
$return .= <<<IPSCONTENT
</h1>
</header>
<div class='ipsBox'>
<div class='ipsBox ipsBox--tableContainer'>
{$table}
</div>
IPSCONTENT;
@@ -1457,7 +1457,7 @@ $return .= <<<IPSCONTENT
"
IPSCONTENT;
if ( $row->unread() ):
if ( \IPS\IPS::classUsesTrait( $row, 'IPS\Content\ReadMarkers' ) and $row->unread() ):
$return .= <<<IPSCONTENT
data-ips-unread
IPSCONTENT;
@@ -1496,7 +1496,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
if ( $row->unread() ):
if ( \IPS\IPS::classUsesTrait( $row, 'IPS\Content\ReadMarkers' ) and $row->unread() ):
$return .= <<<IPSCONTENT
@@ -1575,7 +1575,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
if ( \IPS\IPS::classUsesTrait( $row, 'IPS\Content\Tags' ) AND $row->prefix() ):
if ( \IPS\IPS::classUsesTrait( $row, 'IPS\Content\Taggable' ) AND $row->prefix() ):
$return .= <<<IPSCONTENT
@@ -1723,7 +1723,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
if ( \IPS\IPS::classUsesTrait( $row, 'IPS\Content\Tags' ) AND $row->tags() AND \count( $row->tags() ) ):
if ( \IPS\IPS::classUsesTrait( $row, 'IPS\Content\Taggable' ) AND $row->tags() AND \count( $row->tags() ) ):
$return .= <<<IPSCONTENT
@@ -2161,34 +2161,46 @@ IPSCONTENT;
if ( isset($table->sortOptions) ):
$return .= <<<IPSCONTENT
<a href="#elSortByMenu_menu" class="ipsDataFilters__button" id="elSortByMenu_
<button class='ipsDataFilters__button' id="elSortByMenu_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->uniqueId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" data-role="sortButton" data-ipsMenu data-ipsMenu-activeClass="ipsDataFilters__button--active" data-ipsMenu-selectable="radio"><span>
" type="button" popovertarget="elSortByMenu_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->uniqueId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
_menu" data-role="sortButton">
<span>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'sort_by', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span><i class="fa-solid fa-caret-down"></i></a>
<ul class="ipsMenu ipsMenu_auto ipsMenu_withStem ipsMenu_selectable ipsHide" id="elSortByMenu_
</span><i class="fa-solid fa-caret-down"></i>
</button>
<i-dropdown id="elSortByMenu_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->uniqueId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
_menu">
_menu" popover data-i-dropdown-selectable="radio">
<div class="iDropdown">
<ul class="iDropdown__items">
IPSCONTENT;
$custom = TRUE;
$return .= <<<IPSCONTENT
IPSCONTENT;
foreach ( $table->sortOptions as $k => $col ):
$return .= <<<IPSCONTENT
<li class="ipsMenu_item
<li><a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->baseUrl->setQueryString( array( 'filter' => $table->filter, 'sortby' => $col, 'sortdirection' => $table->getSortDirection( $k ) ) )->setPage( 'page', 1 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow"
IPSCONTENT;
if ( $col === $table->getSortByColumn() ):
@@ -2198,12 +2210,12 @@ IPSCONTENT;
$custom = FALSE;
$return .= <<<IPSCONTENT
ipsMenu_itemChecked
aria-selected="true"
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
" data-ipsMenuValue="
data-ipsMenuValue="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $col, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -2211,40 +2223,26 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->getSortDirection( $k ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'><a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->baseUrl->setQueryString( array( 'filter' => $table->filter, 'sortby' => $col, 'sortdirection' => $table->getSortDirection( $k ) ) )->setPage( 'page', 1 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" rel="nofollow">
'><i class="iDropdown__input"></i>
IPSCONTENT;
$val = "{$table->langPrefix}sort_{$k}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a></li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $table->advancedSearch ):
$return .= <<<IPSCONTENT
<li class="ipsMenu_item
IPSCONTENT;
if ( $custom ):
$return .= <<<IPSCONTENT
ipsMenu_itemChecked
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
" data-noSelect="true">
<a href='
<li>
<a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->baseUrl->setQueryString( array( 'advancedSearchForm' => '1', 'filter' => $table->filter, 'sortby' => $table->sortBy, 'sortdirection' => $table->sortDirection ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -2253,20 +2251,32 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'custom_sort', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' rel="nofollow">
' rel="nofollow"
IPSCONTENT;
if ( $custom ):
$return .= <<<IPSCONTENT
aria-selected="true"
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
data-i-dropdown-noselect><i class="iDropdown__input"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'custom', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
</li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</ul>
</ul>
</div>
</i-dropdown>
IPSCONTENT;
@@ -2308,86 +2318,93 @@ if ( !empty( $table->filters ) ):
$return .= <<<IPSCONTENT
<li>
<a href="#elFilterByMenu_
<button class='ipsDataFilters__button' id="elFilterByMenu_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->uniqueId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
_menu" class="ipsDataFilters__button" data-role="tableFilterMenu" id="elFilterByMenu_
" type="button" popovertarget="elFilterByMenu_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->uniqueId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" data-ipsMenu data-ipsMenu-activeClass="ipsDataFilters__button--active" data-ipsMenu-selectable="radio"><span>
_menu" data-role="tableFilterMenu">
<span>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'filter_by', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span><i class="fa-solid fa-caret-down"></i></a>
<ul class='ipsMenu ipsMenu_auto ipsMenu_withStem ipsMenu_selectable ipsHide' id='elFilterByMenu_
</span><i class="fa-solid fa-caret-down"></i>
</button>
<i-dropdown id="elFilterByMenu_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->uniqueId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
_menu'>
<li data-action="tableFilter" data-ipsMenuValue='' class='ipsMenu_item
_menu" popover data-i-dropdown-selectable="radio">
<div class="iDropdown">
<ul class="iDropdown__items">
<li>
<a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->baseUrl->setQueryString( array( 'filter' => '', 'sortby' => $table->sortBy, 'sortdirection' => $table->sortDirection ) )->setPage( 'page', 1 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' rel="nofollow" data-ipsMenuValue=''
IPSCONTENT;
if ( !$table->filter ):
$return .= <<<IPSCONTENT
ipsMenu_itemChecked
aria-selected="true"
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
'>
<a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->baseUrl->setQueryString( array( 'filter' => '', 'sortby' => $table->sortBy, 'sortdirection' => $table->sortDirection ) )->setPage( 'page', 1 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' rel="nofollow">
><i class="iDropdown__input"></i>
IPSCONTENT;
$val = "{$table->langPrefix}all"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
</li>
<li><hr></li>
IPSCONTENT;
foreach ( $table->filters as $k => $q ):
$return .= <<<IPSCONTENT
<li data-action="tableFilter" data-ipsMenuValue='
<li>
<a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->baseUrl->setQueryString( array( 'filter' => $k, 'sortby' => $table->sortBy, 'sortdirection' => $table->sortDirection ) )->setPage( 'page', 1 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' rel="nofollow" data-ipsMenuValue='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $k, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' class='ipsMenu_item
'
IPSCONTENT;
if ( $k === $table->filter ):
$return .= <<<IPSCONTENT
ipsMenu_itemChecked
aria-selected="true"
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
'>
<a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->baseUrl->setQueryString( array( 'filter' => $k, 'sortby' => $table->sortBy, 'sortdirection' => $table->sortDirection ) )->setPage( 'page', 1 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' rel="nofollow">
><i class="iDropdown__input"></i>
IPSCONTENT;
$val = "{$table->langPrefix}{$k}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</li>
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</ul>
</div>
</i-dropdown>
</li>
IPSCONTENT;
@@ -2402,11 +2419,15 @@ if ( $table->canModerate() AND $table->showFilters ):
$return .= <<<IPSCONTENT
<li>
<a class="ipsDataFilters__button ipsJS_show" href="#elCheck_menu" id="elCheck_
<button class='ipsDataFilters__button' id="elCheck_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->uniqueId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" title='
" type="button" popovertarget="elCheck_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->uniqueId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
_menu" title='
IPSCONTENT;
$val = "{$table->langPrefix}select_rows_tooltip"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -2415,88 +2436,92 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->uniqueId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" data-ipsMenu data-ipsMenu-activeClass="ipsDataFilters__button--active">
">
<span class="cAutoCheckIcon"><i class="fa-regular fa-square"></i></span><i class="fa-solid fa-caret-down"></i>
<span class='ipsNotification' data-role='autoCheckCount'>0</span>
</a>
<ul class="ipsMenu ipsMenu_auto ipsMenu_withStem ipsHide" id="elCheck_
</button>
<i-dropdown id="elCheck_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $table->uniqueId, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
_menu">
<li class="ipsMenu_title">
_menu" popover data-i-dropdown-selectable="radio">
<div class="iDropdown">
<ul class="iDropdown__items">
<li class="iDropdown__title">
IPSCONTENT;
$val = "{$table->langPrefix}select_rows"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</li>
<li class="ipsMenu_item" data-ipsMenuValue="all"><a href="#">
<li><button type="button" data-ipsMenuValue="all"><i class="iDropdown__input"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'all', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a></li>
<li class="ipsMenu_item" data-ipsMenuValue="none"><a href="#">
</button></li>
<li><button type="button" data-ipsMenuValue="none"><i class="iDropdown__input"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'none', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a></li>
</button></li>
IPSCONTENT;
if ( \count($table->getFilters()) ):
$return .= <<<IPSCONTENT
<li class="ipsMenu_sep"><hr></li>
<li><hr></li>
IPSCONTENT;
foreach ( $table->getFilters() as $filter ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $filter ):
$return .= <<<IPSCONTENT
<li class="ipsMenu_item" data-ipsMenuValue="
<li><button type="button" data-ipsMenuValue="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $filter, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
"><a href="#">
"><i class="iDropdown__input"></i>
IPSCONTENT;
$val = "{$filter}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a></li>
</button></li>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<li class="ipsMenu_sep"><hr></li>
<li><hr></li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</ul>
</ul>
</div>
</i-dropdown>
</li>
IPSCONTENT;