Version 5.0.0 beta 2

This commit is contained in:
Neo committed 2025-12-19 16:39:01 -08:00
1 parent 15c7beabc5
commit f61b0da85d
181 files changed
+3182 -1533

No files matched your search

+5 -5
View File
@@ -45,7 +45,7 @@ IPSCONTENT;
if ( isset($value['single_day']) AND $value['single_day'] ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -66,7 +66,7 @@ IPSCONTENT;
if ( isset($value['all_day']) AND $value['all_day'] ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -282,7 +282,7 @@ IPSCONTENT;
if ( !isset( $value['end_time'] ) OR !$value['end_time'] ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -313,7 +313,7 @@ IPSCONTENT;
if ( isset($value['event_repeat']) AND $value['event_repeat'] ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -525,7 +525,7 @@ IPSCONTENT;
if ( ( isset( $value['repeat_freq_on_' . $day['ical'] ] ) AND $value['repeat_freq_on_' . $day['ical'] ] ) ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
+1 -6
View File
@@ -2569,12 +2569,7 @@ IPSCONTENT;
if ( $unlimited === $value ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
aria-checked='false'
checked
IPSCONTENT;
endif;
+3 -3
View File
@@ -72,7 +72,7 @@ IPSCONTENT;
if ( $value ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -346,7 +346,7 @@ IPSCONTENT;
if ( (string) $value == (string) $k or ( isset( $userSuppliedInput ) and !\in_array( $value, array_keys( $options ) ) and $k == $userSuppliedInput ) ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -1004,7 +1004,7 @@ IPSCONTENT;
if ( $unlimited === $value ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
+1 -1
View File
@@ -385,7 +385,7 @@ IPSCONTENT;
if ( -1 === $value ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
+3 -3
View File
@@ -749,14 +749,14 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \IPS\Session::i()->csrfKey, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
<div class='i-flex i-flex-wrap_wrap i-_flex_11 i-gap_2 i-margin-top_3'>
<div class='i-flex i-flex-wrap_wrap i-gap_2 i-margin-top_3'>
IPSCONTENT;
foreach ( $buttonMethods as $method ):
$return .= <<<IPSCONTENT
<div>
<div class="i-flex_11">
{$method->button()}
</div>
@@ -3447,7 +3447,7 @@ IPSCONTENT;
if ( $unlimited === $value ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
+91 -39
View File
@@ -6510,22 +6510,52 @@ IPSCONTENT;
<ul class="ipsColorSchemeChanger" data-controller="core.front.core.colorScheme">
<li data-ipstooltip title="Light mode">
<li data-ipstooltip title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_light_mode', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
">
<button data-ips-prefers-color-scheme="light">
<i class="fa-regular fa-lightbulb"></i>
<span class="ipsInvisible">Light mode</span>
<span class="ipsInvisible">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_light_mode', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span>
</button>
</li>
<li data-ipstooltip title="Dark mode">
<li data-ipstooltip title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_dark_mode', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
">
<button data-ips-prefers-color-scheme="dark">
<i class="fa-regular fa-moon"></i>
<span class="ipsInvisible">Dark mode</span>
<span class="ipsInvisible">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_dark_mode', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span>
</button>
</li>
<li data-ipstooltip title="System preference">
<li data-ipstooltip title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_system', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
">
<button data-ips-prefers-color-scheme="system">
<i class="fa-solid fa-circle-half-stroke"></i>
<span class="ipsInvisible">System preference</span>
<span class="ipsInvisible">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_system', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span>
</button>
</li>
</ul>
@@ -7237,23 +7267,23 @@ IPSCONTENT;
$theme = \IPS\Theme::i();
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( \IPS\Member::loggedIn()->isEditingTheme() and $theme->edit_in_progress ):
$return .= <<<IPSCONTENT
<script>
if (window.self === window.top) {
window.location = '
<script>
if (window.self === window.top) {
window.location = '
IPSCONTENT;
$return .= \IPS\Http\Url::internal( "app=core&module=system&controller=themeeditor", null, "theme_editor", array(), 0 );
$return .= <<<IPSCONTENT
';
}
</script>
}
</script>
IPSCONTENT;
endif;
@@ -7681,7 +7711,7 @@ IPSCONTENT;
if ( !\in_array( 'ipsLayout_minimal', \IPS\Output::i()->bodyClasses ) ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->breadcrumb( 'mobile' );
@@ -8048,7 +8078,7 @@ IPSCONTENT;
if ( !\in_array( 'ipsLayout_minimalNoHome', \IPS\Output::i()->bodyClasses ) ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->breadcrumb( 'bottom' );
@@ -8093,16 +8123,16 @@ IPSCONTENT;
if ( !\in_array( 'ipsLayout_minimalNoHome', \IPS\Output::i()->bodyClasses ) ):
$return .= <<<IPSCONTENT
<div class="ipsFooter">
<aside class="ipsFooter__widgets ipsWidth">
<div class="ipsFooter">
<aside class="ipsFooter__widgets ipsWidth">
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->widgetContainer( 'globalfooter', 'vertical' );
$return .= <<<IPSCONTENT
</aside>
</aside>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/globalTemplate", "footer:before", [ $title,$html,$location ] );
@@ -8113,17 +8143,17 @@ IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/globalTemplate", "footer:inside-start", [ $title,$html,$location ] );
$return .= <<<IPSCONTENT
<div class="ipsWidth">
<div class="ipsFooter__align">
<div class="ipsWidth">
<div class="ipsFooter__align">
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->footer( );
$return .= <<<IPSCONTENT
</div>
</div>
</div>
</div>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/globalTemplate", "footer:inside-end", [ $title,$html,$location ] );
@@ -8134,7 +8164,7 @@ IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/globalTemplate", "footer:after", [ $title,$html,$location ] );
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
@@ -8167,14 +8197,14 @@ IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/global/globalTemplate", "layout:after", [ $title,$html,$location ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $alert = \IPS\Output::i()->alert ):
$return .= <<<IPSCONTENT
{$alert}
{$alert}
IPSCONTENT;
endif;
@@ -9790,7 +9820,7 @@ $return .= <<<IPSCONTENT
</div>
</li>
<li class="ipsFieldRow ipsFieldRow--checkbox">
<input type="checkbox" name="remember_me" id="remember_me_checkbox_popup" value="1" checked aria-checked="true" class="ipsInput ipsInput--toggle">
<input type="checkbox" name="remember_me" id="remember_me_checkbox_popup" value="1" checked class="ipsInput ipsInput--toggle">
<div class="ipsFieldRow__content">
<label class="ipsFieldRow__label" for="remember_me_checkbox_popup">
IPSCONTENT;
@@ -14456,7 +14486,12 @@ IPSCONTENT;
$return .= <<<IPSCONTENT
<div>
<button class="ipsNavPanel__search" aria-controls="ipsSearchDialog" aria-expanded="false" data-ipscontrols type="button"><span class="ipsNavPanel__icon" aria-hidden="true"><i class="fa-ips fa-ips--nav-panel"></i></span>Search</button>
<button class="ipsNavPanel__search" aria-controls="ipsSearchDialog" aria-expanded="false" data-ipscontrols type="button"><span class="ipsNavPanel__icon" aria-hidden="true"><i class="fa-ips fa-ips--nav-panel"></i></span>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'search', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</button>
</div>
</li>
@@ -15341,10 +15376,15 @@ IPSCONTENT;
if ( $text ):
$return .= <<<IPSCONTENT
<a href='
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=discover&controller=tag&tag={$encoded}", null, "tags", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$url = \IPS\Content\Tag::buildTagUrl( $text );
$return .= <<<IPSCONTENT
<a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $url, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' title="
IPSCONTENT;
@@ -16661,31 +16701,43 @@ endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( \is_array( $reactions ) ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $showCount && $size == 'small' && \count( $reactions ) ):
$return .= <<<IPSCONTENT
<span>
<span>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \count( $reactions ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
elseif ( $showCount ):
$return .= <<<IPSCONTENT
<p class='i-text-align_center'>
<p class='i-text-align_center'>
IPSCONTENT;
$pluralize = array( \count( $reactions ) ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'react_total', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
$return .= <<<IPSCONTENT
</p>
</p>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
+11
View File
@@ -5870,6 +5870,12 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( count(\IPS\core\Reports\Types::roots() )>0 ):
$return .= <<<IPSCONTENT
<section class='i-margin-top_3'>
<div class="ipsButtonBar ipsButtonBar--top">
<h2 class="ipsTitle i-font-size_1 i-flex_91 i-align-self_center i-padding-start_2">
@@ -5950,6 +5956,11 @@ $return .= <<<IPSCONTENT
</ul>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<div data-controller="core.front.core.commentsWrapper" data-tabsId='elTabsReport'>
<div class="ipsTabs" id="elTabsReport" data-ipsTabBar data-ipstabbar-contentarea="#elReportComments">
<ul role="tablist">
+3 -3
View File
@@ -3925,7 +3925,7 @@ $return .= <<<IPSCONTENT
</div>
</li>
<li class="ipsFieldRow ipsFieldRow--checkbox">
<input type="checkbox" name="remember_me" id="remember_me_checkbox" value="1" checked aria-checked="true" class="ipsInput ipsInput--toggle">
<input type="checkbox" name="remember_me" id="remember_me_checkbox" value="1" checked class="ipsInput ipsInput--toggle">
<div class="ipsFieldRow__content">
<label class="ipsFieldRow__label" for="remember_me_checkbox">
IPSCONTENT;
@@ -6916,14 +6916,14 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \IPS\Session::i()->csrfKey, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
<div class="i-flex i-flex-wrap_wrap i-_flex_11 i-gap_2 i-margin-top_3">
<div class="i-flex i-flex-wrap_wrap i-gap_2 i-margin-top_3">
IPSCONTENT;
foreach ( $buttonMethods as $method ):
$return .= <<<IPSCONTENT
<div>
<div class="i-flex_11">
{$method->button()}
</div>
+1 -1
View File
@@ -369,7 +369,7 @@ IPSCONTENT;
$htmlsprintf = array($row->author()->link( $row->warningRef(), NULL, \IPS\IPS::classUsesTrait( $row, 'IPS\Content\Anonymous' ) ? $row->isAnonymous() : FALSE )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
$return .= <<<IPSCONTENT
&middot;
IPSCONTENT;
$val = ( $row->__get( $row::$databaseColumnMap['date'] ) instanceof \IPS\DateTime ) ? $row->__get( $row::$databaseColumnMap['date'] ) : \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) );$return .= $val->html();
+49 -9
View File
@@ -1621,7 +1621,12 @@ $return .= <<<IPSCONTENT
<editor-tab-content>
<theme-setting data-setting='light__i-base-h' data-type='number'>
<label for='light__i-base-h__num'>Hue</label>
<label for='light__i-base-h__num'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_hue', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</label>
<input type='number' inputmode='numeric' data-range-output='light__i-base-h' id='light__i-base-h__num' value='
IPSCONTENT;
@@ -1636,7 +1641,12 @@ $return .= <<<IPSCONTENT
' min="0" max="360" data-on-input="changingRangeInput" data-on-change="settingHasBeenChanged">
</theme-setting>
<theme-setting data-setting='light__i-base-c' data-type='number'>
<label for='light__i-base-c__num'>Chroma</label>
<label for='light__i-base-c__num'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_chroma', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</label>
<input type='number' inputmode='numeric' data-range-output='light__i-base-c' id='light__i-base-c__num' value='
IPSCONTENT;
@@ -1651,7 +1661,12 @@ $return .= <<<IPSCONTENT
' min="0" max="100" data-on-input="changingRangeInput" data-on-change="settingHasBeenChanged">
</theme-setting>
<theme-setting data-setting='light__i-base-l' data-type='number'>
<label for='light__i-base-l__num'>Lightness</label>
<label for='light__i-base-l__num'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_lightness', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</label>
<input type='number' inputmode='numeric' data-range-output='light__i-base-l' id='light__i-base-l__num' value='
IPSCONTENT;
@@ -1667,7 +1682,12 @@ $return .= <<<IPSCONTENT
</theme-setting>
<theme-setting data-setting='dark__i-base-h' data-type='number'>
<label for='dark__i-base-h__num'>Hue</label>
<label for='dark__i-base-h__num'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_hue', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</label>
<input type='number' inputmode='numeric' data-range-output='dark__i-base-h' id='dark__i-base-h__num' value='
IPSCONTENT;
@@ -1682,7 +1702,12 @@ $return .= <<<IPSCONTENT
' min="0" max="360" data-on-input="changingRangeInput" data-on-change="settingHasBeenChanged">
</theme-setting>
<theme-setting data-setting='dark__i-base-c' data-type='number'>
<label for='dark__i-base-c__num'>Chroma</label>
<label for='dark__i-base-c__num'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_chroma', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</label>
<input type='number' inputmode='numeric' data-range-output='dark__i-base-c' id='dark__i-base-c__num' value='
IPSCONTENT;
@@ -1697,7 +1722,12 @@ $return .= <<<IPSCONTENT
' min="0" max="100" data-on-input="changingRangeInput" data-on-change="settingHasBeenChanged">
</theme-setting>
<theme-setting data-setting='dark__i-base-l' data-type='number'>
<label for='dark__i-base-l__num'>Lightness</label>
<label for='dark__i-base-l__num'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_lightness', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</label>
<input type='number' inputmode='numeric' data-range-output='dark__i-base-l' id='dark__i-base-l__num' value='
IPSCONTENT;
@@ -1746,11 +1776,21 @@ $return .= <<<IPSCONTENT
</div>
<button type='button' data-revert-custom-css hidden data-on-click="revertCustomCSS">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M75 75L41 41C25.9 25.9 0 36.6 0 57.9L0 168c0 13.3 10.7 24 24 24l110.1 0c21.4 0 32.1-25.9 17-41l-30.8-30.8C155 85.5 203 64 256 64c106 0 192 86 192 192s-86 192-192 192c-40.8 0-78.6-12.7-109.7-34.4c-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6C151.2 495 201.7 512 256 512c141.4 0 256-114.6 256-256S397.4 0 256 0C185.3 0 121.3 28.7 75 75zm181 53c-13.3 0-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1c0-13.3-10.7-24-24-24z"/></svg>
<span>Revert</span>
<span>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_custom_css_revert', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span>
</button>
<button type='button' aria-controls="dialog__customCSS" aria-expanded="false" data-ipscontrols>
<span>Preview</span>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"/></svg>
<span>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_custom_css_done', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span>
</button>
</header>
<ips-code-editor>
+12 -17
View File
@@ -891,7 +891,7 @@ IPSCONTENT;
if ( $value === NULL ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -1569,12 +1569,7 @@ IPSCONTENT;
if ( $unlimited === $value ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
aria-checked='false'
checked
IPSCONTENT;
endif;
@@ -2256,7 +2251,7 @@ IPSCONTENT;
if ( ! $value ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -2538,7 +2533,7 @@ IPSCONTENT;
if ( $unlimited === $value ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -2669,7 +2664,7 @@ IPSCONTENT;
if ( $unlimitedChecked ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -5424,7 +5419,7 @@ IPSCONTENT;
if ( $unlimited == $valueNumber ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
@@ -6052,7 +6047,7 @@ IPSCONTENT;
if ( $checkAlls[ $header ] ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -7524,7 +7519,7 @@ IPSCONTENT;
if ( $unlimited === $value ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -8933,7 +8928,7 @@ IPSCONTENT;
if ( $value === NULL ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -9237,7 +9232,7 @@ IPSCONTENT;
if ( $value === NULL ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -10982,7 +10977,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$extension = mb_strtolower( mb_substr( $screenshot->filename, mb_strrpos( $screenshot->filename, '.' ) + 1 ) );
$extension = mb_strtolower( mb_substr( $screenshot->originalFilename, mb_strrpos( $screenshot->originalFilename, '.' ) + 1 ) );
$return .= <<<IPSCONTENT
@@ -11361,7 +11356,7 @@ IPSCONTENT;
if ( $unlimited == array( $width, $height ) ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
+51 -1
View File
@@ -6,7 +6,7 @@ class class_downloads_admin_nexus extends \IPS\Theme\Template
$return .= <<<IPSCONTENT
<div class='i-background_2 i-padding_3'>
<div class='i-background_2 i-padding_3 i-margin-bottom_2 i-border-radius_box'>
<div class='ipsData__item'>
<a href="$file->url()" class='ipsData__image'>
@@ -221,6 +221,56 @@ $return .= <<<IPSCONTENT
</div>
</div>
</div>
IPSCONTENT;
return $return;
}
function itemResultTemplate( $item ) {
$return = '';
$return .= <<<IPSCONTENT
<div data-itemid="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $item->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" data-role='contentItemRow'>
<strong>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $item->mapped('title'), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</strong>
IPSCONTENT;
if ( $item->container() ):
$return .= <<<IPSCONTENT
<em>
IPSCONTENT;
$sprintf = array($item->container()->_title); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'item_selector_added_to_container', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
$return .= <<<IPSCONTENT
</em>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<br>
<span class='i-color_soft'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $item->author()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span> &middot;
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $item->price(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
return $return;
+44 -128
View File
@@ -1003,136 +1003,61 @@ IPSCONTENT;
$return = '';
$return .= <<<IPSCONTENT
<div class='i-background_2 i-padding_3'>
IPSCONTENT;
if ( $file->container()->bitoptions['topic_screenshot'] and $file->primary_screenshot ):
$return .= <<<IPSCONTENT
<div class='ipsColumns'>
<div class='ipsColumns__secondary i-basis_200 i-text-align_center'>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $file->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
$image = ( $file->primary_screenshot instanceof \IPS\File ) ? (string) $file->primary_screenshot->url : $file->primary_screenshot;
$return .= <<<IPSCONTENT
<img src='
IPSCONTENT;
$return .= \IPS\File::get( "downloads_Screenshots", $image )->url;
$return .= <<<IPSCONTENT
' alt='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $file->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' loading='lazy'>
</a>
<br><br>
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $file->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" class='ipsButton ipsButton--primary ipsButton--wide ipsButton--small'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_file', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</div>
<div class='ipsColumns__primary'>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<h3 class='ipsTitle ipsTitle--h3'>
<h3>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $file->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</h3>
IPSCONTENT;
if ( !$file->container()->bitoptions['topic_screenshot'] or !$file->primary_screenshot ):
if ( $file->desc ):
$return .= <<<IPSCONTENT
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $file->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" class='ipsButton ipsButton--primary ipsButton--wide ipsButton--small'>
IPSCONTENT;
{$file->desc}
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_file', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<hr class='ipsHr'>
<div class='ipsRichText '>
{$file->desc}
</div>
<hr class='ipsHr'>
<i-data>
<ul class='ipsData ipsData--table ipsData--file-submitter'>
<li class='ipsData__item'>
<div class='i-basis_160'>
<strong>
<div class="ipsRichTextBox ipsRichTextBox--alwaysopen">
<div class="ipsRichTextBox__title">
<p>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'file_information', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</p>
</div>
<p>
<strong><span data-ips-font-size="90">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'file_submitter', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</strong>
</div>
<div class='ipsData__main'>
{$file->author()->link( NULL, NULL, $file->isAnonymous() )}
</div>
</li>
<li class='ipsData__item'>
<div class='i-basis_160'>
<strong>
</span></strong> {$file->author()->link( null, null, $file->isAnonymous() )}
</p>
<p>
<strong><span data-ips-font-size="90">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'file_submitted', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</strong>
</div>
<div class='ipsData__main'>
</span></strong>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \IPS\DateTime::ts( $file->submitted )->localeDate(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</div>
</li>
<li class='ipsData__item'>
<div class='i-basis_160'>
<strong>
</p>
<p>
<strong><span data-ips-font-size="90">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'file_cat', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</strong>
</div>
<div class='ipsData__main'>
<a href="
</span></strong> <a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $file->container()->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -1141,50 +1066,41 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $file->container()->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</a>
</div>
</li>
</p>
IPSCONTENT;
foreach ( $file->customFields( TRUE ) as $k => $v ):
$return .= <<<IPSCONTENT
<li class='ipsData__item'>
<div class='i-basis_160'>
<strong>
<p>
<strong><span data-ips-font-size="90">
IPSCONTENT;
$val = "downloads_{$k}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</strong>
</div>
<div class='ipsData__main'>
{$v}
</div>
</li>
</span></strong> {$v}
</p>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</ul>
</i-data>
IPSCONTENT;
if ( $file->container()->bitoptions['topic_screenshot'] and $file->primary_screenshot ):
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<p>
<a href='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $file->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_file', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a>
</p>
IPSCONTENT;
return $return;
+22 -2
View File
@@ -3612,7 +3612,17 @@ $return .= <<<IPSCONTENT
</article>
<aside class="ipsColumns__secondary i-basis_380">
<div class="i-padding_3">
<ul class="ipsButtons i-margin-bottom_4">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "downloads/front/view/view", "downloadButtonList:before", [ $file,$commentsAndReviews,$versionData,$previousVersions,$next,$prev,$cfields ] );
$return .= <<<IPSCONTENT
<ul class="ipsButtons i-margin-bottom_4" data-ips-hook="downloadButtonList">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "downloads/front/view/view", "downloadButtonList:inside-start", [ $file,$commentsAndReviews,$versionData,$previousVersions,$next,$prev,$cfields ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
@@ -3867,7 +3877,17 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "downloads/front/view/view", "downloadButtonList:inside-end", [ $file,$commentsAndReviews,$versionData,$previousVersions,$next,$prev,$cfields ] );
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "downloads/front/view/view", "downloadButtonList:after", [ $file,$commentsAndReviews,$versionData,$previousVersions,$next,$prev,$cfields ] );
$return .= <<<IPSCONTENT
<h2 class="ipsTitle ipsTitle--h4 ipsTitle--margin">
IPSCONTENT;
+2 -30
View File
@@ -2145,6 +2145,8 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<div class="ipsData__extra">
<ul class="ipsData__stats">
IPSCONTENT;
@@ -2495,9 +2497,6 @@ $return .= <<<IPSCONTENT
</small>
</div>
</div>
<ul class="ipsData__stats">
<li>
</ul>
</li>
IPSCONTENT;
@@ -2505,33 +2504,6 @@ IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
<li class="ipsData__item ipsData__item--forum-feed-view-all">
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $forum->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" class="ipsLinkPanel" aria-hidden="true" tabindex="-1"><span>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_all_topics', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span></a>
<div class="ipsData__content">
<div class="ipsData__main">
<span class="ipsCategoryWithFeed__small i-color_hard">
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_all_topics', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
<i class="fa-solid fa-arrow-right-long i-margin-start_icon i-font-size_-2"></i></span>
<span class="ipsCategoryWithFeed__large">
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $forum->_title, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
<i class="fa-solid fa-arrow-right-long i-margin-start_icon i-font-size_-2"></i></span>
</div>
</div>
</li>
IPSCONTENT;
+1 -1
View File
@@ -4445,7 +4445,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
if ( ( $postCount == 1 and ( $topic->showSummaryOnDesktop() === 'post' OR $topic->showSummaryOnMobile() ) ) ):
if ( ( !$featureFirstPost and $postCount == 1 and ( $topic->showSummaryOnDesktop() === 'post' OR $topic->showSummaryOnMobile() ) ) ):
$return .= <<<IPSCONTENT
+2 -2
View File
@@ -6,7 +6,7 @@ class class_nexus_admin_invoices extends \IPS\Theme\Template
$return .= <<<IPSCONTENT
<div class="i-padding_3">
<ul class="ipsButtons ipsButtons--end ipsButtons--generate-invoice">
<ul class="ipsButtons ipsButtons--end ipsButtons--generate-invoice i-margin-bottom_2">
<li>
<a href="#el_addItem_menu" class="ipsButton ipsButton--secondary ipsButton--small" data-ipsMenu id='el_addItem'><i class="fa-solid fa-plus"></i>
IPSCONTENT;
@@ -14,7 +14,7 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'invoice_add_item', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
<i class="fa-solid fa-caret-down"></i></a>
<div id='el_addItem_menu' class='ipsMenu ipsMenu_narrow ipsHide'>
<div id='el_addItem_menu' class='ipsMenu ipsHide'>
<ul>
IPSCONTENT;
+3 -3
View File
@@ -1489,7 +1489,7 @@ IPSCONTENT;
if ( $value === '*' ):
$return .= <<<IPSCONTENT
checked aria-checked='true'
checked
IPSCONTENT;
endif;
@@ -1650,7 +1650,7 @@ IPSCONTENT;
if ( $value === NULL ):
$return .= <<<IPSCONTENT
checked aria-checked="true"
checked
IPSCONTENT;
endif;
@@ -2083,7 +2083,7 @@ IPSCONTENT;
if ( ( $value or $options['lockPrice'] ) and !$term ):
$return .= <<<IPSCONTENT
checked aria-checked="true"
checked
IPSCONTENT;
endif;