Version 4.3.0

This commit is contained in:
Neo committed 2025-12-19 05:47:12 -08:00
1 parent 96997ddd8e
commit fe1acf984a
1349 files changed
+116159 -67711

No files matched your search

@@ -43,7 +43,7 @@ class _settings extends \IPS\Dispatcher\Controller
}
$activeTab = \IPS\Request::i()->tab ?: 'settings';
$activeTabContents = call_user_func( array( $this, 'manage' . ucfirst( $activeTab ) ) );
$activeTabContents = call_user_func( array( $this, 'manage' . mb_ucfirst( $activeTab ) ) );
if( \IPS\Request::i()->isAjax() and !isset( \IPS\Request::i()->ajaxValidate ) )
{
@@ -437,12 +437,19 @@ class _settings extends \IPS\Dispatcher\Controller
}
/* Do we need to unarchive some? */
$whereClause = \IPS\Db::i()->compileWhereClause( \IPS\Application::load('forums')->archiveWhere( $rules ) );
$_whereClause = array( 'topic_archive_status=? AND !( ' . $whereClause['clause'] . ')' );
$_whereClause[] = \IPS\forums\Topic::ARCHIVE_DONE;
foreach ( $whereClause['binds'] as $bind )
if( $values['archive_on'] )
{
$_whereClause[] = $bind;
$whereClause = \IPS\Db::i()->compileWhereClause( \IPS\Application::load('forums')->archiveWhere( $rules ) );
$_whereClause = array( 'topic_archive_status=? AND !( ' . $whereClause['clause'] . ')' );
$_whereClause[] = \IPS\forums\Topic::ARCHIVE_DONE;
foreach ( $whereClause['binds'] as $bind )
{
$_whereClause[] = $bind;
}
}
else
{
$_whereClause = array( 'topic_archive_status NOT IN(' . \IPS\forums\Topic::ARCHIVE_NOT . ',' . \IPS\forums\Topic::ARCHIVE_EXCLUDE . ')' );
}
/* Make sure the unarchive task is enabled - it will disable itself if there is no work to do */
@@ -461,7 +468,7 @@ class _settings extends \IPS\Dispatcher\Controller
/* Log and redirect */
\IPS\Session::i()->log( 'acplogs__archive_settings' );
if ( \IPS\Db::i()->select( 'COUNT(*)', 'forums_topics', $values['archive_on'] ? $_whereClause : array( 'topic_archive_status=?', \IPS\forums\Topic::ARCHIVE_DONE ) )->first() )
if ( \IPS\Db::i()->select( 'COUNT(*)', 'forums_topics', $_whereClause )->first() )
{
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=forums&module=forums&controller=settings&do=unarchive' ) );
}
@@ -590,10 +597,19 @@ class _settings extends \IPS\Dispatcher\Controller
} ) );
$form->addHeader('topic_settings');
$popularNowMaximum = 14400000;
$form->add( new \IPS\Helpers\Form\Custom( 'forums_popular_now', json_decode( \IPS\Settings::i()->forums_popular_now, TRUE ), FALSE, array(
'getHtml' => function( $obj )
'getHtml' => function( $obj ) use ( $popularNowMaximum )
{
return \IPS\Theme::i()->getTemplate('settings')->popularNow( $obj->name, $obj->value );
return \IPS\Theme::i()->getTemplate('settings')->popularNow( $obj->name, $obj->value, $popularNowMaximum );
},
/* If popular now time is greater than 10,000 days */
'validate' => function( $obj ) use ( $popularNowMaximum )
{
if( $obj->value['minutes'] > $popularNowMaximum )
{
throw new \LengthException( \IPS\Member::loggedIn()->language()->addToStack('form_number_max', FALSE, array( 'sprintf' => array( $popularNowMaximum ) ) ) );
}
}
) ) );
$form->add( new \IPS\Helpers\Form\Number( 'forums_posts_per_page', \IPS\Settings::i()->forums_posts_per_page , TRUE, array( 'min' => 2, 'max' => 250 ) ) );