Version 4.6.0

This commit is contained in:
Neo committed 2025-12-19 05:55:31 -08:00
1 parent f79dcf067a
commit 517a5e1f70
2036 files changed
+110041 -26162

No files matched your search

@@ -43,6 +43,7 @@ class tools extends \IPSUtf8\Dispatcher\Controller
\IPSUtf8\Session::i()->save();
}
\IPSUtf8\Session::i()->updateTableData();
\IPSUtf8\Convert::i()->fixCollation();
$this->manage( "Collation checked and fixed where appropriate" );
+1 -1
View File
@@ -388,7 +388,7 @@ class Db extends \mysqli
* @return \IPSUtf8\Db\Select
*
*/
public function select( $columns=NULL, $table, $where=NULL, $order=NULL, $limit=NULL, $group=NULL, $having=NULL, $flags=0 )
public function select( $columns, $table, $where=NULL, $order=NULL, $limit=NULL, $group=NULL, $having=NULL, $flags=0 )
{
$binds = array();
$query = 'SELECT ';
@@ -113,7 +113,7 @@ EOFHTML;
/**
* Tools page
*/
public static function tools( $isUtf8=false, $msg )
public static function tools( $isUtf8, $msg )
{
$html = <<<EOFHTML
<div class="jumbotron">
@@ -205,7 +205,7 @@ EOFHTML;
/**
* Welcome page
*/
public static function welcome( $isUtf8=false, $status, $percent=false, $controller='browser' )
public static function welcome( $isUtf8, $status, $percent=false, $controller='browser' )
{
$convertClass = ( $controller === 'browser' ) ? '\IPSUtf8\Convert' : '\IPSUtf8\Convert\Archive';
$origUtf8Charset = \IPSUtf8\Db::i('utf8')->getCharset();
-1
View File
@@ -8,7 +8,6 @@
* @since 18 Feb 2013
*/
\define('READ_WRITE_SEPARATION', FALSE);
\define('REPORT_EXCEPTIONS', TRUE);
require_once '../init.php';
\IPS\Dispatcher\Admin::i()->run();
+1 -1
View File
@@ -3,7 +3,7 @@
Nulled by IPBMafia.ru
Buy license at https://www.invisionpower.com/buy/self-hosted
================================================================
IPS 4.5.0 (105100)
IPS 4.6.0 (106107)
=============================[NOTE]=============================
Invision Community End User License Agreement
+4 -2
View File
@@ -15,8 +15,10 @@
<br><br>
<p class="ipsType_normal">{lang="recom_info"}</p>
<ul class="ipsPad ipsType_large ipsList_checks">
{{foreach $requirements['advice'] as $key => $item}}
<li class="{{if $key === 'php'}}ipsMessage ipsMessage_warning{{else}}advisory{{endif}}">{$item}</li>
{{foreach $requirements['advice'] as $items}}
{{foreach $items as $key => $item}}
<li class="{{if $key === 'php'}}ipsMessage ipsMessage_warning{{else}}advisory{{endif}}">{$item}</li>
{{endforeach}}
{{endforeach}}
</ul>
{{endif}}
+5 -4
View File
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<title>Invision Community Update Extractor</title>
<style type='text/css'>@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.ipsProgressBar{width:50%;margin:auto;height:20px;overflow:hidden;background:#9c9c9c;background:-moz-linear-gradient(top,rgba(156,156,156,1) 0,rgba(180,180,180,1) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(156,156,156,1)),color-stop(100%,rgba(180,180,180,1)));background:-webkit-linear-gradient(top,rgba(156,156,156,1) 0,rgba(180,180,180,1) 100%);background:-o-linear-gradient(top,rgba(156,156,156,1) 0,rgba(180,180,180,1) 100%);background:-ms-linear-gradient(top,rgba(156,156,156,1) 0,rgba(180,180,180,1) 100%);background:linear-gradient(to bottom,rgba(156,156,156,1) 0,rgba(180,180,180,1) 100%);border-radius:4px;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.ipsProgressBar_animated .ipsProgressBar_progress{background-color:#5490c0;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px;-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.ipsProgressBar_progress{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,.25);background:#5490c0;position:relative;padding-left:6px}.ipsProgressBar_progress[data-progress]:after{position:absolute;right:5px;top:0;line-height:32px;color:#fff;content:attr(data-progress);display:block;font-weight:700}</style>
<style type='text/css'>body{font-family:BlinkMacSystemFont, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.ipsProgressBar{width:50%;margin:auto;height:26px;overflow:hidden;background:rgb(237, 242, 247);background-image:linear-gradient(to bottom,rgba(23, 126, 201,0.1),rgba(23, 126, 201,0.1));border-radius:4px;}.ipsProgressBar_animated .ipsProgressBar_progress{background-color:rgb(23, 126, 201);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px;animation:progress-bar-stripes 2s linear infinite}.ipsProgressBar_progress{display:flex;align-items:center;width:0;height:100%;font-size:12px;color:#ffffff;text-align:right;background:rgb(23, 126, 201);position:relative;white-space:nowrap;line-height:26px;text-indent:6px;padding-right:2px;}.ipsProgressBar>span:first-child{padding-left:7px;}.ipsProgressBar_progress[data-progress]:after{top:0;color:#fff;content:attr(data-progress);display:block;right:5px;}</style>
</head>
<body style="margin:0">
<?php
@@ -451,7 +451,7 @@ try
echo <<<HTML
<div class="ipsProgressBar ipsProgressBar_animated">
<div class="ipsProgressBar_progress" style="width: 100%;"></div>
<div class="ipsProgressBar_progress" style="width: 100%;" data-progress='100%'></div>
</div>
<script type='text/javascript'>parent.location = parent.location + '&check=1';</script><noscript><a href='index.php' target='_parent'>Click here to continue</a></noscript>
HTML;
@@ -461,7 +461,8 @@ HTML;
else
{
$newI = $i + $extractor::NUMBER_PER_GO;
$percentComplete = round( 100 / $extractor->numberOfFiles() * $newI );
$percentComplete = round( 100 / $extractor->numberOfFiles() * $newI, 2 );
$percentComplete = ( $percentComplete > 100 ) ? 100 : $percentComplete;
$properties = array(
'file' => $_GET['file'],
@@ -473,7 +474,7 @@ HTML;
$url = "extract.php?" . http_build_query( $properties, '', '&' );
echo <<<HTML
<div class="ipsProgressBar ipsProgressBar_animated">
<div class="ipsProgressBar_progress" style="width: {$percentComplete}%;"></div>
<div class="ipsProgressBar_progress" style="width: {$percentComplete}%;" data-progress='{$percentComplete}%'></div>
</div>
<noscript><a href='{$url}' target='_parent'>Click here to continue</a></noscript>
<script type='text/javascript'>window.onload = function(){setTimeout(function(){window.location = '{$url}';}, 50);};</script>
@@ -0,0 +1,4 @@
<ips:template parameters="" />
<div class="ipsPad">
<p class="ipsType_normal">{lang="106000_deprecation"}</p>
</div>
+4 -2
View File
@@ -50,8 +50,10 @@
<br><br>
<p class="ipsType_normal">{lang="hc_recommendations_info"}</p>
<ul class="ipsPad ipsType_large ipsList_checks">
{{foreach $requirements['advice'] as $key => $item}}
<li class="{{if $key === 'php'}}ipsMessage ipsMessage_warning{{else}}advisory{{endif}}">{$item}</li>
{{foreach $requirements['advice'] as $items}}
{{foreach $items as $key => $item}}
<li class="{{if $key === 'php'}}ipsMessage ipsMessage_warning{{else}}advisory{{endif}}">{$item}</li>
{{endforeach}}
{{endforeach}}
</ul>
{{endif}}
+2 -2
View File
@@ -5,9 +5,9 @@
<br />
{{if $exception instanceof \IPS\Db\Exception}}
{{$trace = $exception->getTrace();}}
{{if $trace[3]['function'] == 'installDatabaseUpdates'}}
{{if $trace[2]['function'] == 'installDatabaseUpdates'}}
<small>
{expression="\IPS\ROOT_PATH"}/applications/{$trace[4]['args'][0][1]}/setup/upg_{$trace[3]['args'][0]}/queries.json{{if isset($_SESSION['lastJsonIndex'])}} - query #{$_SESSION['lastJsonIndex']}{{endif}}<br>
{expression="\IPS\ROOT_PATH"}/applications/{$trace[3]['args'][0][1]}/setup/upg_{$trace[2]['args'][0]}/queries.json{{if isset($_SESSION['lastJsonIndex'])}} - query #{$_SESSION['lastJsonIndex']}{{endif}}<br>
<pre>{{if $exception->query}}{$exception->query}{{else}}{$trace[0]['args'][0]}{{endif}}</pre>
</small>
{{else}}
+19 -2
View File
@@ -58,8 +58,8 @@ $lang = array(
'username' => "Display Name",
'email_address' => "Email Address",
'username_or_email' => "Username or Email Address",
'login_err_no_account' => "The email address you entered does not belong to any account. Make sure that it is typed correctly.",
'login_err_bad_password' => "The password you entered is incorrect. Please try again (make sure your caps lock is off).",
'login_err_no_account' => "The {!#[1:display name or password][2:email address or password][3:display name, email address or password]} was incorrect. Please try again (make sure your caps lock is off).",
'login_err_bad_password' => "The {!#[1:display name or password][2:email address or password][3:display name, email address or password]} was incorrect. Please try again (make sure your caps lock is off).",
'login_err_locked_unlock' => "Your account has been locked. Try again in {# [1:minute][?:minutes]}.",
'login_err_locked_nounlock' => "Your account has been locked. Try again later.",
'login_err_no_cookies' => "Your browser does not accept cookies which are required in order to log in.",
@@ -120,6 +120,8 @@ $lang = array(
'requirements_file_system' => "File System",
'requirements_file_writable' => "%s is writable",
'requirements_mysql_timeout' => "Your MySQL %s system variable is currently set to an extremely low value (%s). The default MySQL value is 28800. It is recommended to increase this MySQL system variable to at least 20 in order to prevent potential problems with queries timing out.",
'requirements_mysql_format_advice' => "You have one or more InnoDB tables that are using the `Compact` row format. This may limit the amount of data that can be stored within the table. We recommend changing it to 'Dynamic'. %s If you are not sure how to do this, you should contact your hosting provider or system administrator for assistance.",
'requirements_mysql_ifpt_advice' => "Please make sure that `<a href='https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_file_per_table' target='_blank'>innodb_file_per_table</a>` is enabled.",
'dir_not_provided' => "No directory provided. Please check file storage configurations.",
'dir_does_not_exist' => "%s does not exist.",
'dir_is_not_writable' => "%s cannot be written to. Please adjust the permissions on it or contact your hosting provider for assistance.",
@@ -629,6 +631,7 @@ $lang = array(
/* !Core - 4.5 - Notification Settings */
'105000_admin_reg_customized' => "Reverting Customized Email Template",
'105000_notifications' => "Notification Options",
'notification_method_inline' => "Notification List",
'notification_method_email' => "Email",
@@ -663,5 +666,19 @@ $lang = array(
'notifications__warning_mods_desc' => "These notifications will be sent whenever another moderator issues a warning.",
'notifications__new_file_version' => "File Updates",
'notifications__event_reminder' => "Event Reminders",
/* ! Core - 4.6 Achievements options */
'106000_rule_option' => "Achievements",
'106000_rule_option_desc' => "Please see our <a href='https://invisioncommunity.com/news/product-updates/drum-roll-please…-announcing-achievements-r1227/' target='_blank'>achievements announcement</a> for more information.",
'106000_rule_option_new' => "Use new default ranks",
'106000_rule_option_new_desc' => "Install the new ranks and use the default rules to generate points by posting, following and more.",
'106000_rule_option_old' => "Keep my current ranks",
'106000_rule_option_old_desc' => "Retain current ranks and continue increasing ranks just by posting",
/* 4.6.0 Deprecations */
'106000_deprecated' => "Removed Caching Methods",
'106000_deprecation' => "The following Cache and Datastore methods have been removed in Invision Community 4.6: APC, Wincache, Memcached and XCache.<br>You do not need to do anything as the caching method will be reverted to 'None' after this upgrade.",
);