Version 2.2.0 RC-1

This commit is contained in:
Neo committed 2025-12-19 00:22:37 -08:00
1 parent f73f8bff6d
commit 22f1b963ee
1034 files changed
+178610 -70897

No files matched your search

+57 -116
View File
@@ -2,23 +2,17 @@
/*
+--------------------------------------------------------------------------
| Invision Power Board 2.1.7
| =============================================
| Invision Power Board v<{%dyn.down.var.human.version%}>
| ========================================
| by Matthew Mecham
| (c) 2001 - 2005 Invision Power Services, Inc.
| (c) 2001 - 2004 Invision Power Services
| http://www.invisionpower.com
| =============================================
| ========================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Tuesday 18th of July 2006 05:56:00 PM
| Release: 52f408a29988b02f45b5e6f4ba5af0ae
| Time: <{%dyn.down.var.time%}>
| Release: <{%dyn.down.var.md5%}>
| Email: matt@invisionpower.com
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD IS NOT FREE / OPEN SOURCE!
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
+---------------------------------------------------------------------------
|
| > IPB UPGRADE MODULE:: IPB 2.1.2 -> 2.1.3
@@ -31,19 +25,19 @@
if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Íåêîððåêòíûé àäðåñ</h1>Âû íå èìååòå äîñòóïà ê ýòîìó ôàéëó íàïðÿìóþ. Åñëè âû íåäàâíî îáíîâëÿëè ôîðóì, âû äîëæíû îáíîâèòü âñå ñîîòâåòñòâóþùèå ôàéëû.";
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
exit();
}
class version_upgrade
{
var $this_version = '21009';
var $upgrade_from = '21008';
var $first_step = 'îáíîâèò âàøó áàçó äàííûõ äëÿ âñòàâêè íîâûõ ïîëåé è òàáëèö';
var $first_step = 'update your database to include the new schematic';
var $md5_check = '';
var $base_url = '';
var $mod_to_run = '';
var $error = array();
/*-------------------------------------------------------------------------*/
// CONSTRUCTOR
@@ -95,9 +89,6 @@ class version_upgrade
case 'helpfiles':
$this->upgrade_helpfiles();
break;
case 'skinrevert':
$this->revert_skin_changes();
break;
default:
$this->upgrade_intro();
break;
@@ -120,18 +111,34 @@ class version_upgrade
{
require_once( THIS_PATH . 'upg_' . $this->ipsclass->current_upgrade . '/' . strtolower($this->ipsclass->vars['sql_driver']) . $file );
$this->ipsclass->DB->return_die = 1;
foreach( $SQL as $q )
{
$q = str_replace( "<%time%>", time(), $q );
$this->ipsclass->DB->query( $q );
$cnt++;
if ( $this->ipsclass->DB->error )
{
$this->error[] = $this->ipsclass->DB->error;
}
else
{
$cnt++;
}
}
}
$this->ipsclass->core->redirect( "{$this->base_url}&workact=cal",
"$cnt çàïðîñîâ âûïîëíåíî...." );
if ( count($this->error) )
{
$this->ipsclass->core->show_error( implode( "<br />", $this->error ), "work&workact=cal" );
}
else
{
$this->ipsclass->core->redirect( "{$this->base_url}&workact=cal",
"$cnt queries run...." );
}
}
/*-------------------------------------------------------------------------*/
@@ -148,14 +155,14 @@ class version_upgrade
{
if( $event['event_tz'] )
{
$this->ipsclass->DB->query( "UPDATE ibf_cal_events SET event_tz=0 WHERE event_id='{$event['event_id']}'" );
$this->ipsclass->DB->do_update( "cal_events", array( 'event_tz' => 0 ), "event_id='{$event['event_id']}'" );
$cnt++;
}
}
}
$this->ipsclass->core->redirect( "{$this->base_url}&workact=helpfiles",
"$cnt êàëåíäàðíûõ ñîáûòèé îáíîâëåíî...." );
"$cnt calendar events updated...." );
}
/*-------------------------------------------------------------------------*/
@@ -168,13 +175,14 @@ class version_upgrade
{
$this->ipsclass->template->content .= "
<div class='tableborder'>
<div class='maintitle'>Âû æåëàåòå îáíîâèòü ôàéëû ïîìîùè?</div>
<div class='tdrow1' style='padding:6px'>Íåñêîëüêî ôàéëîâ ïîìîùè áûëè èçìåíåíû îò áîëåå ðàííèõ âåðñèé. Ìû ðåêîìåíäóåì çàïóñòèòü îáíîâëåíèå, òàê êàê äëÿ IPB 2.1.x ñòàðûå ôàéëû ïîìîùè â íåêîòîðûõ ìîìåíòàõ óæå íå òî÷íû.
Åñëè âû óæå èçìåíÿëè ñàìè ôàéëû ïîìîùè, òî èìåéòå ââèäó, ÷òî ïðè çàïóñêå îáíîâëåíèÿ âàøè èçìåíåíèÿ ìîãóò áûòü ïîòåðÿíû.
Ýòîò øàã îáíîâèò ïåðâûå 16 ôàéëîâ ïîìîùè â âàøåé áàçå äàííûõ. Åñëè âû íå èçìåíÿëè ñòàíäàðòíûå ôàéëû ïîìîùè, à äîáàâëÿëè íîâûå, òî îíè íå áóäóò óäàëåíû...
<br /><br /><b>Âû æåëàåòå îáíîâèòü âàøè ôàéëû ïîìîùè?</b>
<div align='left'><blockquote><span style='font-weight:bold;font-size:14px'>&raquo; <a href='{$this->base_url}&workact=helpfiles&do_update=1'>Îáíîâèòü ôàéëû ïîìîùè ...</a><br />
&raquo; <a href='{$this->base_url}&workact=skinrevert'>Ïðîïóñòèòü ýòîò ýòàï ...</a></span></blockquote></div>
<div class='maintitle'>Do you wish to update your help files?</div>
<div class='tdrow1' style='padding:6px'>Some of the help files have changed from previous versions. If you are running a board that has been upgraded from a version prior to 2.1.0, you may optionally wish
to update your help files to reflect changes in the location of certain configuration settings and board features. If you have customized your help files, proceeding with this step WILL overwrite
those changes. This step will update the first 16 help files in your database, and the changes can not be undone. If you have not customized the default help files and/or you would like to update them now,
proceed with this step. Otherwise skip this step.
<br /><br /><b>Do you wish to update your help files at this time?</b>
<div align='left'><blockquote><span style='font-weight:bold;font-size:14px'>&raquo; <a href='{$this->base_url}&workact=helpfiles&do_update=1'>Upgrade Help Files ...</a><br />
&raquo; <a href='index.php?act=done&loginkey={$this->ipsclass->input['loginkey']}&securekey={$this->ipsclass->input['securekey']}&mid={$this->ipsclass->input['mid']}'>Skip This Step ...</a></span></blockquote></div>
";
$this->ipsclass->template->output();
}
@@ -189,105 +197,38 @@ class version_upgrade
{
require_once( THIS_PATH . 'upg_' . $this->ipsclass->current_upgrade . '/' . strtolower($this->ipsclass->vars['sql_driver']) . $file );
$this->ipsclass->DB->return_die = 1;
foreach( $UPDATES as $q )
{
$this->ipsclass->DB->query( $q );
$cnt++;
}
}
$this->ipsclass->core->redirect( "index.php?act=done&loginkey={$this->ipsclass->input['loginkey']}&securekey={$this->ipsclass->input['securekey']}&mid={$this->ipsclass->input['mid']}",
"$cnt ôàéëîâ ïîìîùè îáíîâëåíî...." );
}
}
/*-------------------------------------------------------------------------*/
// Revert Skin Changes
/*-------------------------------------------------------------------------*/
function revert_skin_changes()
{
if(! $this->ipsclass->input['do_update'] )
{
$id = intval($this->ipsclass->input['skinid']) ? intval($this->ipsclass->input['skinid']) : 2;
$default = $this->ipsclass->DB->simple_exec_query( array( 'select' => '*', 'from' => 'skin_sets', 'where' => "set_skin_set_id={$id}" ) );
if( !$default['set_skin_set_id'] )
{
// Didn't find id 2, let's try by name
$default = $this->ipsclass->DB->simple_exec_query( array( 'select' => '*', 'from' => 'skin_sets', 'where' => "set_name='IPB Ñòàíäàðòíûé ñòèëü'" ) );
if( !$default['set_skin_set_id'] )
{
// Didn't find by name either
$default = array();
}
}
if( count( $default ) )
{
$this->ipsclass->template->content .= "
<div class='tableborder'>
<div class='maintitle'>Âû æåëàåòå âîçâðàòèòü ñòèëü â ñòàíäàðòíûé âèä (óáðàâ âñå âàøè èçìåíåíèÿ â íåì)?</div>
<div class='tdrow1' style='padding:6px'>Âî âðåìÿ îáíîâëåíèé ÷àñòî áûâàþò èçìåíåíèÿ â øàáëîíàõ IPB ãëàâíîãî ñòèëÿ, îò êîòîðîãî âàøè ñòèëè óíàñëåäîâàíû. Åñëè øàáëîíû âàøåãî ñòèëÿ íå áûëè èçìåíåíû, îíè ïðîñòî óíàñëåäóþò èçìåíåíèÿ îò øàáëîíîâ ãëàâíîãî ñòèëÿ. Äëÿ &laquo;IPB Ñòàíäàðòíûé ñòèëü&raquo; ýòî ñëó÷èòñÿ àâòîìàòè÷åñêè.<br /><br />
Äðóãèå ñòèëè, êîòîðûå áûëè èìïîðòèðîâàíû âàìè, ìîãóò èìåòü ñâîé ñîáñòâåííûé íàáîð øàáëîíîâ, îíè ìîãóò, âîçìîæíî, áûòü îáíîâëåíû âðó÷íóþ. Åñëè âàøè øàáëîíû ñòèëÿ íå îáíîâëåíû êàê ïîëîæåíî, ìîãóò âîçíèêíóòü ïðîáëåìû... Íàïðèìåð, âû ìîæåòå óâèäåòü javascript îøèáêè, èëè âû íå ñìîæåòå óâèäåòü êàêèå-òî áëîêè, ïîòîìó ÷òî îíè íå áóäóò íàéäåíû â âàøèõ øàáëîíàõ...
<br /><br />
Øàáëîíû âàøåãî Ãëàâíîãî ñòèëÿ áóäóò îáíîâëåíû àâòîìàòè÷åñêè â òå÷åíèå ïðîöåññà îáíîâëåíèÿ, îäíàêî, ÷òîáû ðàáîòàëî âñå íîðìàëüíî íà ñòàíäàðòíîì ñòèëå, ëþáûå èçìåíåíèÿ îáÿçàíû áûòü óäàëåíû. Åñëè âû õîòèòå ñäåëàòü ýòî âðó÷íóþ, âû ìîæåòå ïðîïóñòèòü ýòîò ýòàï, çàòåì ïîñëå îáíîâëåíèÿ çàéòè â àäìèíöåíòð äëÿ óäàëåíèÿ èçìåíåíèé...
Âàì áóäåò íåîáõîäèìî çàéòè â ðåäàêòèðîâàíèå &laquo;IPB 2.1 Ñòàíäàðòíûé ñòèëü&raquo; è âûáðàòü &laquo;Îáðàòèòü âñå èçìåíåíèÿ......&raquo; äëÿ èçìåíåííûõ øàáëîíîâ. Òàêæå, ñèñòåìà îáíîâëåíèÿ ìîæåò ñäåëàòü ýòî çà âàñ.<br /><br />
Èç-çà ðàçëè÷íûõ âîçìîæíîñòåé HTML äëÿ íåñòàíäàðòíûõ ñòèëåé, ñèñòåìà îáíîâëåíèÿ íå ñìîæåò èçìåíèòü ýòè ñòèëè äëÿ âàñ. Ïîñëå òîãî, êàê îáíîâëåíèå áóäåò çàâåðøåíî, ìû ðåêîìåíäóåì âàì çàïóñòèòü óòèëèòó &laquo;Ãåíåðèðîâàòü îò÷åò ñðàâíåíèÿ ñòèëåé...&raquo; â àäìèíöåíòðå äëÿ îïðåäåëåíèÿ èçìåíåíèé, âíåñåííûõ â âàø ñòèëü.
<br /><br /><b>Âû æåëàåòå óäàëèòü âíåñåííûå â ñòèëü èçìåíåíèÿ äëÿ &laquo;{$default['set_name']}&raquo;?</b><br />(<i>Åñëè ýòî íå ñòàíäàðòíûé ñòèëü, ìû ðåêîìåíäóåì âàì ïðîïóñòèòü äàííûé ýòàï è îáíîâèòü âàøè øàáëîíû âðó÷íóþ</i>)
<div align='left'><blockquote><span style='font-weight:bold;font-size:14px'>&raquo; <a href='{$this->base_url}&workact=skinrevert&do_update=1&man={$default['set_skin_set_id']}'>Äà, óäàëèòü âñå èçìåíåíèÿ â ñòèëå ...</a><br />
&raquo; <a href='index.php?act=done&loginkey={$this->ipsclass->input['loginkey']}&securekey={$this->ipsclass->input['securekey']}&mid={$this->ipsclass->input['mid']}'>Íåò, ÿ õî÷ó ïðîïóñòèòü ýòîò ýòàï ...</a></span></blockquote></div>
";
}
else
{
$this->ipsclass->template->content .= "<div class='warnbox'><strong>&laquo;IPB Ñòàíäàðòíûé ñòèëü&raquo; íå íàéäåí</strong><br />
Ýòîò ýòàï ïîçâîëÿåò âàì âîçâðàòèòü &laquo;IPB Ñòàíäàðòíûé ñòèëü&raquo; â ñòàíäàðòíûé âèä (óáðàòü âñå âàøè èçìåíåíèÿ â íåì), ýòî äàñò ãàðàíòèþ íà òî, ÷òî îáíîâëåíèÿ ñòèëåé áóäóò óíàñëåäîâàíû äîëæíûì îáðàçîì. Âàø &laquo;IPB Ñòàíäàðòíûé ñòèëü&raquo; íå áûë íàéäåí.</div>
<br /><br />
<div align='center'><span style='font-weight:bold;font-size:14px'>&raquo; <a href='index.php?act=done&loginkey={$this->ipsclass->input['loginkey']}&securekey={$this->ipsclass->input['securekey']}&mid={$this->ipsclass->input['mid']}'>Äàëåå ...</a></span></div>";
}
$this->ipsclass->template->output();
}
else
{
$man = intval( $this->ipsclass->input['man'] );
$cnt = 0;
$default = $this->ipsclass->DB->simple_exec_query( array( 'select' => '*', 'from' => 'skin_sets', 'where' => "set_skin_set_id=".$man ) );
$this->ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'skin_templates', 'where' => "set_id=".$man ) );
$outer = $this->ipsclass->DB->simple_exec();
if( $this->ipsclass->DB->get_num_rows($outer) )
{
while( $r = $this->ipsclass->DB->fetch_row($outer) )
{
if( $r['set_id'] == 1 )
if ( $this->ipsclass->DB->error )
{
continue;
$this->error[] = $this->ipsclass->DB->error;
}
else
{
$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'skin_templates', 'where' => 'suid='.$r['suid'] ) );
$cnt++;
}
}
}
$next = $this->ipsclass->DB->simple_exec_query( array( 'select' => '*', 'from' => 'skin_sets', 'where' => "set_skin_set_id>".$man, 'orderby' => 'set_skin_set_id ASC', 'limit' => array(0,1) ) );
if( $next['set_skin_set_id'] )
if ( count($this->error) )
{
$this->ipsclass->core->redirect( "index.php?act=work&workact=skinrevert&skinid={$next['set_skin_set_id']}&loginkey={$this->ipsclass->input['loginkey']}&securekey={$this->ipsclass->input['securekey']}&mid={$this->ipsclass->input['mid']}",
"$cnt øàáëîíîâ èç ñòèëÿ '{$default['set_name']}' áûëî âîçâðàùåíî â ñòàíäàðòíûé âèä...." );
$this->ipsclass->core->show_error( implode( "<br />", $this->error ), "done" );
}
else
{
$this->ipsclass->core->redirect( "index.php?act=done&loginkey={$this->ipsclass->input['loginkey']}&securekey={$this->ipsclass->input['securekey']}&mid={$this->ipsclass->input['mid']}",
"$cnt øàáëîíîâ èç ñòèëÿ '{$default['set_name']}' áûëî âîçâðàùåíî â ñòàíäàðòíûé âèä...." );
"$cnt help files updated...." );
}
}
}
}
/*-------------------------------------------------------------------------*/
// INTRO
/*-------------------------------------------------------------------------*/
@@ -296,25 +237,25 @@ class version_upgrade
{
$this->ipsclass->template->content .= "
<div class='tableborder'>
<div class='maintitle'>Äîáðî ïîæàëîâàòü â ñèñòåìó îáíîâëåíèÿ IPB</div>
<div class='tdrow1' style='padding:6px'>Ýòîò ìîäóëü îáíîâèò âàø ôîðóì ñ <b>{$this->ipsclass->versions[$this->upgrade_from]}</b> äî <b>{$this->ipsclass->versions[$this->this_version]}</b>
<br /><br />Ýòîò ïåðâûé ýòàï {$this->first_step}
<div class='maintitle'>Welcome to the IPB Upgrade System</div>
<div class='tdrow1' style='padding:6px'>This upgrade module will upgrade you from <b>{$this->ipsclass->versions[$this->upgrade_from]}</b> to <b>{$this->ipsclass->versions[$this->this_version]}</b>
<br /><br />This first step will {$this->first_step}
<br />
";
if ( ! is_writeable( CACHE_PATH . 'cache/skin_cache' ) )
{
$this->ipsclass->template->content .= "<div class='warnbox'><strong>ÂÍÈÌÀÍÈÅ: Ïàïêà cache/skin_cache íåäîñòóïíà äëÿ çàïèñè</strong><br />
Ïîæàëóéñòà, ïðîâåðüòå CHMOD äëÿ ýòîé ïàïêè. Åñëè âû ïðîèãíîðèðóåòå ýòî ïðåäóïðåæäåíèå, òî ôàéëû ñòèëåé
ìîãóò íåêîððåêòíî óñòàíîâèòüñÿ.</div>";
$this->ipsclass->template->content .= "<div class='warnbox'><strong>WARNING: cache/skin_cache is not writeable</strong><br />
Please check the CHMOD value on this folder before continuing. Failure to do so could mean that
your skin files will not be installed correctly.</div>";
}
else
{
$this->ipsclass->template->content .= "<div align='center'><span style='font-weight:bold;font-size:14px'>&raquo; <a href='{$this->base_url}&workact=sql'>Äàëåå ...</a></span></div>
$this->ipsclass->template->content .= "<div align='center'><span style='font-weight:bold;font-size:14px'>&raquo; <a href='{$this->base_url}&workact=sql'>Proceed ...</a></span></div>
</div>
</div>
<br />
<div align='center'>Ïîñëå ýòîãî ìîäóëÿ áóäåò çàïóùåíî: {$this->mod_to_run}</div>";
<div align='center'>Modules to run after this module: {$this->mod_to_run}</div>";
}
$this->ipsclass->template->output();