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

+153 -90
View File
@@ -170,7 +170,7 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'create_new_topic', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
" rel="nofollow noindex"><i class="fa-regular fa-pen-to-square"></i><span>
" rel="nofollow noindex"><i class="fa-solid fa-pen-to-square"></i><span>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'start_new_topic', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -193,7 +193,7 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'start_new_topic_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
" rel="nofollow noindex"><i class="fa-regular fa-pen-to-square"></i><span>
" rel="nofollow noindex"><i class="fa-solid fa-pen-to-square"></i><span>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'start_new_topic', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -264,11 +264,26 @@ IPSCONTENT;
if ( $forum->feature_color ):
$return .= <<<IPSCONTENT
<style>:root{--i-featured:
<style>
:root{
--i-featured:
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $forum->feature_color, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
}</style>
;
}
@supports (color: hsl(from var(--i) h s 30%)) and (color: oklch(from red l c h)){
:root{
--i-color_featured: oklch(from
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $forum->feature_color, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
var(--if-light, min(l, .45)) var(--if-dark, max(l, .8)) c h);
}
}
</style>
IPSCONTENT;
endif;
@@ -960,14 +975,15 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'awaiting_an_answer', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</p>
<ol class="ipsData ipsData--compact ipsData ipsData--question-list" id="elTopicList">
<i-data>
<ol class="ipsData ipsData--compact ipsData ipsData--question-list" id="elTopicList">
IPSCONTENT;
foreach ( $newQuestions as $question ):
$return .= <<<IPSCONTENT
<li class="ipsData__item"
<li class="ipsData__item"
IPSCONTENT;
if ( $question->unread() ):
@@ -978,17 +994,17 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
<div class='i-basis_50'>
<span class='ipsUserPhoto ipsUserPhoto--mini'>
<img src="
<div class='i-basis_50'>
<span class='ipsUserPhoto ipsUserPhoto--mini'>
<img src="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $question->author()->photo, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" alt='' loading='lazy'>
</span>
</div>
<div class="ipsData__main">
<h4 class="ipsData__title">
</span>
</div>
<div class="ipsData__main">
<h4 class="ipsData__title">
IPSCONTENT;
if ( $question->unread() ):
@@ -1007,25 +1023,26 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $question->title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</a></h4>
<ul class="ipsData__meta ipsList ipsList--inline i-color_soft">
<li>
<ul class="ipsData__meta ipsList ipsList--inline i-color_soft">
<li>
IPSCONTENT;
$htmlsprintf = array($question->author()->link( NULL, NULL, $question->isAnonymous() ), \IPS\DateTime::ts( $question->start_date )->html( false )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'ask_byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
$return .= <<<IPSCONTENT
</li>
</ul>
</div>
</li>
</li>
</ul>
</div>
</li>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ol>
</ol>
</i-data>
</div>
</div>
IPSCONTENT;
@@ -1709,7 +1726,7 @@ IPSCONTENT;
if ( \IPS\Member::loggedIn()->getLayoutValue('forums_topic') == 'snippet' ):
$return .= <<<IPSCONTENT
ipsData--snippet-topic-list
ipsData--snippet ipsData--snippet-topic-list
IPSCONTENT;
else:
@@ -2393,7 +2410,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$val = ( $tabData[1]->mapped('date') instanceof \IPS\DateTime ) ? $tabData[1]->mapped('date') : \IPS\DateTime::ts( $tabData[1]->mapped('date') );$return .= $val->html();
$val = ( $tabData[1]->mapped('date') instanceof \IPS\DateTime ) ? $tabData[1]->mapped('date') : \IPS\DateTime::ts( $tabData[1]->mapped('date') );$return .= $val->html(useTitle: true);
$return .= <<<IPSCONTENT
@@ -2570,7 +2587,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$rowCount=1; $adShown=0;
$rowCount=0;
$return .= <<<IPSCONTENT
@@ -2582,17 +2599,11 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
if ( $advertisement = \IPS\core\Advertisement::loadByLocation( 'ad_forum_listing', $rowCount, $adShown ) ):
if ( $advertisement = \IPS\core\Advertisement::loadByLocation( 'ad_forum_listing', $rowCount ) ):
$return .= <<<IPSCONTENT
<li class="ipsData__item ipsData__item--advertisement">
{$advertisement}
IPSCONTENT;
$adShown++;
$return .= <<<IPSCONTENT
</li>
IPSCONTENT;
@@ -3039,10 +3050,16 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
if ( \IPS\Member::loggedIn()->member_id and $row->unread() ):
if ( \IPS\Member::loggedIn()->member_id ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $row->unread() or \in_array( $row->$idField, $table->contentPostedIn ) ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/forums/topicRow", "topicIcon:before", [ $table,$headers,$rows ] );
@@ -3064,8 +3081,28 @@ $return .= <<<IPSCONTENT
" aria-label="
IPSCONTENT;
if ( $row->unread() ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'first_unread_post', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'participated_in_content', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
" data-ipstooltip data-ips-hook="topicIcon">
IPSCONTENT;
@@ -3077,6 +3114,12 @@ IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/forums/topicRow", "topicIcon:after", [ $table,$headers,$rows ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -3116,31 +3159,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row->url( "getPrefComment" ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" title="
IPSCONTENT;
if ( $row->mapped('title') ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row->mapped('title'), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'content_deleted', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
"
IPSCONTENT;
if ( $row->canEdit() ):
@@ -3155,7 +3174,7 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
"
IPSCONTENT;
if ( $row->tableHoverUrl and $row->canView() ):
@@ -3264,7 +3283,7 @@ $return .= <<<IPSCONTENT
">
IPSCONTENT;
$val = ( $row->mapped('date') instanceof \IPS\DateTime ) ? $row->mapped('date') : \IPS\DateTime::ts( $row->mapped('date') );$return .= $val->html();
$val = ( $row->mapped('date') instanceof \IPS\DateTime ) ? $row->mapped('date') : \IPS\DateTime::ts( $row->mapped('date') );$return .= $val->html(useTitle: true);
$return .= <<<IPSCONTENT
</a>
@@ -3578,7 +3597,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$val = ( $row->mapped('last_comment') instanceof \IPS\DateTime ) ? $row->mapped('last_comment') : \IPS\DateTime::ts( $row->mapped('last_comment') );$return .= $val->html();
$val = ( $row->mapped('last_comment') instanceof \IPS\DateTime ) ? $row->mapped('last_comment') : \IPS\DateTime::ts( $row->mapped('last_comment') );$return .= $val->html(useTitle: true);
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -3588,7 +3607,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$val = ( $row->mapped('date') instanceof \IPS\DateTime ) ? $row->mapped('date') : \IPS\DateTime::ts( $row->mapped('date') );$return .= $val->html();
$val = ( $row->mapped('date') instanceof \IPS\DateTime ) ? $row->mapped('date') : \IPS\DateTime::ts( $row->mapped('date') );$return .= $val->html(useTitle: true);
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -3751,7 +3770,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$rowCount=1; $adShown=0;
$rowCount=0;
$return .= <<<IPSCONTENT
@@ -3763,17 +3782,11 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
if ( $advertisement = \IPS\core\Advertisement::loadByLocation( 'ad_forum_listing', $rowCount, $adShown ) ):
if ( $advertisement = \IPS\core\Advertisement::loadByLocation( 'ad_forum_listing', $rowCount ) ):
$return .= <<<IPSCONTENT
<li class="ipsData__item ipsData__item--advertisement">
{$advertisement}
IPSCONTENT;
$adShown++;
$return .= <<<IPSCONTENT
</li>
IPSCONTENT;
@@ -4131,7 +4144,7 @@ $return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/fr
$return .= <<<IPSCONTENT
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row->url( 'getNewComment' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= \IPS\Theme\Template::htmlspecialchars( $row->url( "getNewComment" ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" class="ipsIndicator
IPSCONTENT;
@@ -4165,7 +4178,12 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<span class="ipsIndicator ipsIndicator--read
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/forums/topicRowSnippet", "unreadIcon:before", [ $table,$headers,$rows ] );
$return .= <<<IPSCONTENT
<span class="ipsIndicator ipsIndicator--read
IPSCONTENT;
if ( \in_array( $row->$idField, $table->contentPostedIn ) ):
@@ -4175,7 +4193,17 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
" aria-hidden="true"></span>
" aria-hidden="true" data-ips-hook="unreadIcon">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/forums/topicRowSnippet", "unreadIcon:inside-end", [ $table,$headers,$rows ] );
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/forums/topicRowSnippet", "unreadIcon:after", [ $table,$headers,$rows ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -4389,7 +4417,7 @@ endif;
$return .= <<<IPSCONTENT
</div>
<div class="ipsData__meta i-font-weight_500"><!-- <a href="
<div class="ipsData__meta"><!-- <a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row->container()->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -4621,34 +4649,69 @@ IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/forums/topicRowSnippet", "latestPoster:inside-start", [ $table,$headers,$rows ] );
$return .= <<<IPSCONTENT
<div class="ipsData__last-text">
<div class="ipsData__last-primary">
IPSCONTENT;
if ( $row->mapped('num_comments') and $row->mapped( 'num_comments') > 1 ):
if ( $row->mapped('num_comments') ):
$return .= <<<IPSCONTENT
{$row->lastCommenter()->link()}
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $row->lastCommenter(), 'fluid' );
else:
$return .= <<<IPSCONTENT
<div class="ipsData__last-text">
<div class="ipsData__last-primary">
IPSCONTENT;
$htmlsprintf = array($row->lastCommenter()->link(), $row->url( 'getLastComment' ), \IPS\DateTime::ts( $row->mapped('last_comment') )->html( false )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'topic_snippet_last_reply', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
$return .= <<<IPSCONTENT
</div>
</div>
{$row->author()->link()}
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<div class="ipsData__last-secondary">
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $row->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;
if ( $row->mapped('last_comment') ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$val = ( $row->mapped('last_comment') instanceof \IPS\DateTime ) ? $row->mapped('last_comment') : \IPS\DateTime::ts( $row->mapped('last_comment') );$return .= $val->html(useTitle: true);
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$val = ( $row->mapped('date') instanceof \IPS\DateTime ) ? $row->mapped('date') : \IPS\DateTime::ts( $row->mapped('date') );$return .= $val->html(useTitle: true);
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</a>
</div>
</div>
IPSCONTENT;