Version 5.0.0 beta 9

This commit is contained in:
Neo committed 2025-12-19 17:47:00 -08:00
1 parent 214f649f1d
commit 56979f8ee8
202 files changed
+4403 -1123

No files matched your search

+10
View File
@@ -3961,6 +3961,16 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'club_remove_invitation', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a></li>
<li class="ipsMenu_item"><a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $club->url()->setQueryString( array( 'do' => 'resendInvite', 'member' => $member['core_members']['member_id'] ) )->csrf(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" data-confirm>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'club_resend_invitation', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a></li>
IPSCONTENT;
+19 -15
View File
@@ -1792,65 +1792,68 @@ IPSCONTENT;
elseif ( $modQueued ):
$return .= <<<IPSCONTENT
<div class="ipsMessage ipsMessage--warning">
<h4 class='i-font-weight_600'>
<div class="ipsMessage ipsMessage--warning i-margin-bottom_2">
<div class="i-flex i-justify-content_space-between i-align-items_center i-flex-wrap_wrap i-gap_1">
<div class="i-flex_91">
<h4 class='i-font-weight_600'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'mod_queue_message', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</h4>
IPSCONTENT;
$warnings = \IPS\Member::loggedIn()->warnings( 1, NULL, 'mq' );
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( \count( $warnings ) and \IPS\Member::loggedIn()->mod_posts > time() ):
$return .= <<<IPSCONTENT
<p class="i-color_soft">
<p class="i-color_soft">
IPSCONTENT;
if ( \count( $warnings ) ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'this_will_be_moderated', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
$sprintf = array(\IPS\DateTime::ts( \IPS\Member::loggedIn()->mod_posts )->relative()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'restriction_ends', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
</p>
</p>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div class='ipsButtons'>
</div>
<div class='ipsButtons'>
IPSCONTENT;
foreach ( $warnings as $idx => $warning ):
$return .= <<<IPSCONTENT
<a href="
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $warning->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -1860,12 +1863,13 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_warning_details', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</div>
</div>
</div>
+20 -7
View File
@@ -1805,15 +1805,15 @@ IPSCONTENT;
return $return;
}
function cachingLog( $log ) {
function cachingLog( $cacheLog ) {
$return = '';
$return .= <<<IPSCONTENT
<div id="elCachingLog">
IPSCONTENT;
foreach ( $log as $i => $log ):
foreach ( $cacheLog as $i => $log ):
$return .= <<<IPSCONTENT
@@ -1881,6 +1881,19 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( count( array_keys( $cacheLog, $log ) ) > 1 ):
$return .= <<<IPSCONTENT
<i class="fa fa-exclamation-triangle cCachingLogMethod_delete" title="Possible Duplicate"></i>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<span class="cCachingLogMethod">Redis</span>
<span class="cCachingLogKey">
IPSCONTENT;
@@ -7090,7 +7103,7 @@ IPSCONTENT;
if ( !$licenseData = \IPS\IPS::licenseKey() or !isset($licenseData['products']['copyright']) or !$licenseData['products']['copyright'] ):
$return .= <<<IPSCONTENT
<a rel="nofollow" title="Invision Community" href="https://www.invisioncommunity.com/">Powered by Invision Community</a>
<a rel="nofollow" title="Invision Community" href="https://www.invisioncommunity.com/">Powered by <span translate="no">Invision Community</span></a>
IPSCONTENT;
endif;
@@ -22472,7 +22485,7 @@ IPSCONTENT;
$sprintf = array($member->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_user_profile', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
" class="ipsUsername">
" class="ipsUsername" translate="no">
IPSCONTENT;
if ( $groupFormatting && $member->group['prefix'] ):
@@ -22501,7 +22514,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<span class="ipsUsername" translate="no">
IPSCONTENT;
if ( $groupFormatting && $member->group['prefix'] ):
@@ -22525,7 +22538,7 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
endif;
+36 -1
View File
@@ -1,7 +1,42 @@
<?php
namespace IPS\Theme;
class class_core_front_sharelinks extends \IPS\Theme\Template
{ function email( $url, $title ) {
{ function bluesky( $url, $title ) {
$return = '';
$return .= <<<IPSCONTENT
<a href="https://bsky.app/intent/compose?text=
IPSCONTENT;
if ( $title ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
%20-%20
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" class="ipsShareLink ipsShareLink--bluesky" target="_blank" data-role="shareLink" title='
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'bluesky_text', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
' data-ipsTooltip rel='nofollow noopener'>
<i class="fa-brands fa-bluesky"></i>
</a>
IPSCONTENT;
return $return;
}
function email( $url, $title ) {
$return = '';
$return .= <<<IPSCONTENT
+2 -1
View File
@@ -5539,7 +5539,7 @@ $return .= <<<IPSCONTENT
<p>
IPSCONTENT;
$sprintf = array(\IPS\Member::loggedIn()->email); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'reg_confirm_email_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'reg_confirm_email_desc', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</p>
<p>
@@ -5927,6 +5927,7 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \IPS\Session::i()->csrfKey, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
<input type="hidden" name="mergeAccount" value="1">
IPSCONTENT;
+23 -23
View File
@@ -8474,18 +8474,17 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $val, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
<div class="i-cursor_move" data-action='stackDrag'>
<span class="ipsField_stackDrag ipsDrag ipsJS_show">
<i class='fa-solid fa-bars ipsDrag_dragHandle'></i>
</span>
<div data-ipsStack-wrapper class="i-padding_2">
<span class='ipsField_stackDrag ipsDrag' data-action='stackDrag'>
<i class='fa-solid fa-bars ipsDrag_dragHandle'></i>
</span>
<div data-ipsStack-wrapper>
IPSCONTENT;
if ( $options['checkboxes'] ):
$return .= <<<IPSCONTENT
<input type="checkbox" name="
<input type="checkbox" name="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -8512,7 +8511,7 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" class="ipsInput ipsInput--toggle">
<label for="elCheckbox_
<label for="elCheckbox_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -8521,31 +8520,30 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
$val = "{$options['checkboxes']}{$id}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</label>
</label>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<div data-action='stackDrag'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $val, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
</li>
@@ -9449,13 +9447,15 @@ IPSCONTENT;
if ( $textarea ):
$return .= <<<IPSCONTENT
<div class="ipsFieldRow__languages">
IPSCONTENT;
foreach ( $languages as $lang ):
$return .= <<<IPSCONTENT
<span class="
<div>
<div class="ipsFieldRow__language"><span class="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $lang->_icon, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -9478,9 +9478,8 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<br>
<br>
<textarea name="
</div>
<textarea name="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -9516,14 +9515,15 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</textarea><br>
<br>
</textarea>
</div>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
+1 -1
View File
@@ -2064,7 +2064,7 @@ $return .= <<<IPSCONTENT
<link rel='stylesheet' href='
IPSCONTENT;
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/fontawesome/css/all.min.css?v=6.5.1", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= str_replace( array( 'http://', 'https://' ), '//', htmlspecialchars( \IPS\Http\Url::internal( "applications/core/interface/fontawesome/css/all.min.css?v=6.7.1", "none", "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE ) );
$return .= <<<IPSCONTENT
'>
+18 -2
View File
@@ -3121,7 +3121,7 @@ $pluralize = array( $file->screenshots()->getInnerIterator()->count() ); $return
$return .= <<<IPSCONTENT
</h2>
<div class="">
<ul class="ipsCarousel ipsCarousel--images ipsCarousel--downloads-file-screenshots i-gap_2 i-padding_2" id="downloads-file-screenshots" tabindex="0">
<ul class="ipsCarousel ipsCarousel--images ipsCarousel--downloads-file-screenshots" id="downloads-file-screenshots" tabindex="0">
IPSCONTENT;
@@ -3135,6 +3135,12 @@ foreach ( $file->screenshots( 1 ) as $id => $screenshot ):
$return .= <<<IPSCONTENT
<li>
IPSCONTENT;
$dimensions = $screenshot->getImageDimensions();
$return .= <<<IPSCONTENT
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $fullScreenshots[ $id ]->url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
@@ -3148,7 +3154,17 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $screenshot->url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" alt="" loading="lazy">
" alt="" width="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $dimensions[0], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" height="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $dimensions[1], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" loading="lazy">
</a>
</li>
+12
View File
@@ -181,6 +181,12 @@ $return .= <<<IPSCONTENT
</li>
</ul>
IPSCONTENT;
if ( $members OR $busy OR $reacted OR $images OR $helpful ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $members ):
@@ -494,6 +500,12 @@ $return .= <<<IPSCONTENT
</ul>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;