Version 2.2.2
This commit is contained in:
1 parent
22f1b963ee
commit
a3bb603c96
858 files changed
+479463
-188140
No files matched your search
@@ -1,4 +1,30 @@
|
||||
<?php
|
||||
/*
|
||||
+--------------------------------------------------------------------------
|
||||
| Invision Power Board 2.2.2
|
||||
| Invision Power Board INSTALLER
|
||||
| ========================================
|
||||
| by Matthew Mecham
|
||||
| (c) 2001 - 2005 Invision Power Services, Inc.
|
||||
| http://www.invisionpower.com
|
||||
| =============================================
|
||||
| Web: http://www.invisionboard.com
|
||||
| http://www.ibresource.ru/products/invisionpowerboard/
|
||||
| Time: Monday 05th of March 2007 10:10:55 PM
|
||||
| Release: e3790216629e5a2aaf37070b32237f06
|
||||
| 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
|
||||
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
|
||||
+----------------------------------------------------------------------------
|
||||
| Action controller for done page
|
||||
+----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
* Invision Power Board
|
||||
* Action controller for done page
|
||||
|
||||
@@ -1,4 +1,30 @@
|
||||
<?php
|
||||
/*
|
||||
+--------------------------------------------------------------------------
|
||||
| Invision Power Board 2.2.2
|
||||
| Invision Power Board INSTALLER
|
||||
| ========================================
|
||||
| by Matthew Mecham
|
||||
| (c) 2001 - 2005 Invision Power Services, Inc.
|
||||
| http://www.invisionpower.com
|
||||
| =============================================
|
||||
| Web: http://www.invisionboard.com
|
||||
| http://www.ibresource.ru/products/invisionpowerboard/
|
||||
| Time: Monday 05th of March 2007 10:10:55 PM
|
||||
| Release: e3790216629e5a2aaf37070b32237f06
|
||||
| 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
|
||||
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
|
||||
+----------------------------------------------------------------------------
|
||||
| Action controller for EULA page
|
||||
+----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
* Invision Power Board
|
||||
* Action controller for EULA page
|
||||
@@ -15,6 +41,11 @@ class action_eula
|
||||
|
||||
function run()
|
||||
{
|
||||
if( isset($this->install->ipsclass->input['mysql_codepage']) AND $this->install->ipsclass->input['mysql_codepage'] != 'none' )
|
||||
{
|
||||
$this->install->saved_data['mysql_codepage'] = $this->install->ipsclass->input['mysql_codepage'];
|
||||
}
|
||||
|
||||
/* Page Output */
|
||||
$this->install->template->append( $this->install->template->eula_page( nl2br($this->install->product_license) ) );
|
||||
$this->install->template->next_action = '?p=install';
|
||||
|
||||
+1008
-887
File diff suppressed because it is too large.
Load diff
@@ -11,6 +11,24 @@ class action_login
|
||||
function action_login( & $install )
|
||||
{
|
||||
$this->install =& $install;
|
||||
|
||||
$this->install->ipsclass->login_type = 'username';
|
||||
|
||||
if( $this->install->ipsclass->DB->field_exists( "conf_id", "conf_settings" ) )
|
||||
{
|
||||
$this->install->ipsclass->DB->build_query( array( 'select' => '*', 'from' => 'conf_settings', 'where' => "conf_key IN('ipbli_usertype','converge_login_method')", 'order' => 'conf_key ASC' ) );
|
||||
$this->install->ipsclass->DB->exec_query();
|
||||
|
||||
while( $r = $this->install->ipsclass->DB->fetch_row() )
|
||||
{
|
||||
$r['conf_value'] = $r['conf_value'] ? $r['conf_value'] : $r['conf_default'];
|
||||
|
||||
if( $r['conf_value'] )
|
||||
{
|
||||
$this->install->ipsclass->login_type = $r['conf_value'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function run()
|
||||
|
||||
@@ -11,6 +11,24 @@ class action_overview
|
||||
function action_overview( & $install )
|
||||
{
|
||||
$this->install =& $install;
|
||||
|
||||
$this->install->ipsclass->login_type = 'username';
|
||||
|
||||
if( $this->install->ipsclass->DB->field_exists( "conf_id", "conf_settings" ) )
|
||||
{
|
||||
$this->install->ipsclass->DB->build_query( array( 'select' => '*', 'from' => 'conf_settings', 'where' => "conf_key IN('ipbli_usertype','converge_login_method')", 'order' => 'conf_key ASC' ) );
|
||||
$this->install->ipsclass->DB->exec_query();
|
||||
|
||||
while( $r = $this->install->ipsclass->DB->fetch_row() )
|
||||
{
|
||||
$r['conf_value'] = $r['conf_value'] ? $r['conf_value'] : $r['conf_default'];
|
||||
|
||||
if( $r['conf_value'] )
|
||||
{
|
||||
$this->install->ipsclass->login_type = $r['conf_value'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function run()
|
||||
@@ -22,109 +40,118 @@ class action_overview
|
||||
|
||||
if ( empty($this->install->ipsclass->input['username']) )
|
||||
{
|
||||
$this->install->template->append( $this->install->template->login_page( "You must enter a username before proceeding" ) );
|
||||
$this->install->template->append( $this->install->template->login_page( "Íåîáõîäèìî óêàçàòü èìÿ ïîëüçîâàòåëÿ" ) );
|
||||
$this->install->template->next_action = '?p=overview';
|
||||
return;
|
||||
}
|
||||
|
||||
$this->install->ipsclass->input['username'] = str_replace( '|', '|', $this->install->ipsclass->input['username'] );
|
||||
|
||||
if ( empty($this->install->ipsclass->input['password']) )
|
||||
{
|
||||
$this->install->template->append( $this->install->template->login_page( "You must enter a password before proceeding" ) );
|
||||
$this->install->template->append( $this->install->template->login_page( "Íåîáõîäèìî óêàçàòü ïàðîëü" ) );
|
||||
$this->install->template->next_action = '?p=overview';
|
||||
return;
|
||||
}
|
||||
|
||||
//----------------------------------
|
||||
// Attempt to get the details from the
|
||||
// DB
|
||||
//----------------------------------
|
||||
|
||||
$this->install->ipsclass->DB->query("SELECT m.*, g.* FROM ibf_members m LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup) WHERE LOWER(name)='".strtolower($this->install->ipsclass->input['username'])."'");
|
||||
$mem = $this->install->ipsclass->DB->fetch_row();
|
||||
//----------------------------------
|
||||
// Attempt to get the details from the
|
||||
// DB
|
||||
//----------------------------------
|
||||
|
||||
if( $this->install->ipsclass->login_type == 'username' )
|
||||
{
|
||||
$this->install->ipsclass->DB->query("SELECT m.*, g.* FROM ibf_members m LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup) WHERE LOWER(name)='".strtolower($this->install->ipsclass->input['username'])."'");
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->install->ipsclass->DB->query("SELECT m.*, g.* FROM ibf_members m LEFT JOIN ibf_groups g ON (g.g_id=m.mgroup) WHERE LOWER(email)='".strtolower($this->install->ipsclass->input['username'])."'");
|
||||
}
|
||||
|
||||
$mem = $this->install->ipsclass->DB->fetch_row();
|
||||
|
||||
//----------------------------------
|
||||
// Get perms
|
||||
//----------------------------------
|
||||
if ( empty($mem['id']) )
|
||||
{
|
||||
$this->install->template->append( $this->install->template->login_page( "Could not find a record matching that username, please check the spelling" ) );
|
||||
$this->install->template->next_action = '?p=overview';
|
||||
return;
|
||||
}
|
||||
|
||||
//----------------------------------
|
||||
// Load converge member
|
||||
//----------------------------------
|
||||
|
||||
if( !$this->install->ipsclass->DB->field_exists( 'converge_id', 'members_converge' ) OR
|
||||
( isset($this->install->saved_data['vid']) AND $this->install->saved_data['vid'] < 10003 ) )
|
||||
{
|
||||
$pass = md5( $this->install->ipsclass->input['password'] );
|
||||
|
||||
if ( $pass != $mem['password'] AND $pass != $mem['legacy_password'] )
|
||||
{
|
||||
$this->install->template->append( $this->install->template->login_page( "The password you entered is not correct" ) );
|
||||
$this->install->template->next_action = '?p=overview';
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($mem['g_access_cp'] != 1)
|
||||
{
|
||||
$this->install->template->append( $this->install->template->login_page( "You do not have access to the administrative CP" ) );
|
||||
$this->install->template->next_action = '?p=overview';
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->install->ipsclass->member = $mem;
|
||||
$this->install->saved_data['loginkey'] = $mem['password'] ? md5($mem['password']) : md5($mem['legacy_password']);
|
||||
$this->install->saved_data['securekey'] = $this->install->ipsclass->return_md5_check();
|
||||
$this->install->saved_data['mid'] = $mem['id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->install->ipsclass->converge->converge_load_member($mem['email']);
|
||||
|
||||
if ( ! $this->install->ipsclass->converge->member['converge_id'] )
|
||||
{
|
||||
$this->install->template->append( $this->install->template->login_page( "Could not find a record matching that username, please check the spelling" ) );
|
||||
$this->install->template->next_action = '?p=overview';
|
||||
return;
|
||||
}
|
||||
//----------------------------------
|
||||
// Get perms
|
||||
//----------------------------------
|
||||
if ( empty($mem['id']) )
|
||||
{
|
||||
$this->install->template->append( $this->install->template->login_page( "Ïîëüçîâàòåëü ñ óêàçàííûìè èìåíåì íå ñóùåñòâóåò â ñèñòåìå" ) );
|
||||
$this->install->template->next_action = '?p=overview';
|
||||
return;
|
||||
}
|
||||
|
||||
//----------------------------------
|
||||
// Load converge member
|
||||
//----------------------------------
|
||||
|
||||
if( !$this->install->ipsclass->DB->field_exists( 'converge_id', 'members_converge' ) OR
|
||||
( isset($this->install->saved_data['vid']) AND $this->install->saved_data['vid'] < 10003 ) )
|
||||
{
|
||||
$pass = md5( $this->install->ipsclass->input['password'] );
|
||||
|
||||
if ( $pass != $mem['password'] AND $pass != $mem['legacy_password'] )
|
||||
{
|
||||
$this->install->template->append( $this->install->template->login_page( "Ââåäåííûé ïàðîëü íåâåðåí" ) );
|
||||
$this->install->template->next_action = '?p=overview';
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($mem['g_access_cp'] != 1)
|
||||
{
|
||||
$this->install->template->append( $this->install->template->login_page( "Âû íå îáëàäàåòå ïðàâàìè àäìèíèñòðàòîðà" ) );
|
||||
$this->install->template->next_action = '?p=overview';
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->install->ipsclass->member = $mem;
|
||||
$this->install->saved_data['loginkey'] = $mem['password'] ? md5($mem['password']) : md5($mem['legacy_password']);
|
||||
$this->install->saved_data['securekey'] = $this->install->ipsclass->return_md5_check();
|
||||
$this->install->saved_data['mid'] = $mem['id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->install->ipsclass->converge->converge_load_member($mem['email']);
|
||||
|
||||
if ( ! $this->install->ipsclass->converge->member['converge_id'] )
|
||||
{
|
||||
$this->install->template->append( $this->install->template->login_page( "Ïîëüçîâàòåëü ñ óêàçàííûìè email íå ñóùåñòâóåò â ñèñòåìå" ) );
|
||||
$this->install->template->next_action = '?p=overview';
|
||||
return;
|
||||
}
|
||||
|
||||
//----------------------------------
|
||||
// Check converge pass
|
||||
//----------------------------------
|
||||
//----------------------------------
|
||||
// Check converge pass
|
||||
//----------------------------------
|
||||
|
||||
$pass = md5( $this->install->ipsclass->input['password'] );
|
||||
|
||||
if ( $this->install->ipsclass->converge->converge_authenticate_member( $pass ) != TRUE )
|
||||
{
|
||||
$this->install->template->append( $this->install->template->login_page( "The password you entered is not correct" ) );
|
||||
$this->install->template->next_action = '?p=overview';
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($mem['g_access_cp'] != 1)
|
||||
{
|
||||
$this->install->template->append( $this->install->template->login_page( "You do not have access to the administrative CP" ) );
|
||||
$this->install->template->next_action = '?p=overview';
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->install->ipsclass->member = $mem;
|
||||
$this->install->saved_data['loginkey'] = $mem['member_login_key'];
|
||||
$this->install->saved_data['securekey'] = $this->install->ipsclass->return_md5_check();
|
||||
$this->install->saved_data['mid'] = $mem['id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$pass = md5( $this->install->ipsclass->input['password'] );
|
||||
|
||||
if ( $this->install->ipsclass->converge->converge_authenticate_member( $pass ) != TRUE )
|
||||
{
|
||||
$this->install->template->append( $this->install->template->login_page( "Ââåäåííûé ïàðîëü íåâåðåí" ) );
|
||||
$this->install->template->next_action = '?p=overview';
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($mem['g_access_cp'] != 1)
|
||||
{
|
||||
$this->install->template->append( $this->install->template->login_page( "Âû íå îáëàäàåòå ïðàâàìè àäìèíèñòðàòîðà" ) );
|
||||
$this->install->template->next_action = '?p=overview';
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->install->ipsclass->member = $mem;
|
||||
$this->install->saved_data['loginkey'] = $mem['member_login_key'];
|
||||
$this->install->saved_data['securekey'] = $this->install->ipsclass->return_md5_check();
|
||||
$this->install->saved_data['mid'] = $mem['id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$this->install->get_version_latest();
|
||||
@@ -132,19 +159,19 @@ class action_overview
|
||||
$error = array();
|
||||
if ( ! $this->install->last_poss_id )
|
||||
{
|
||||
$error[] = "An error has occured, we are unable to determine the current version or if there are any required upgrade files left to run";
|
||||
$error[] = "Íå óäàëîñü îïðåäåëèòü ïîñëåäíþþ äîñòóïíóþ âåðñèþ ïðîäóêòà.";
|
||||
}
|
||||
if ( count($this->install->versions) == 0 )
|
||||
{
|
||||
$error[] = "Could not locate the required upgrade script: 'upg_{$this->install->last_poss_id}/version_history.php'";
|
||||
$error[] = "Íå óäàëîñü íàéòè ñêðèïò äëÿ îáíîâëåíèÿ: 'upg_{$this->install->last_poss_id}/version_history.php'";
|
||||
}
|
||||
if ( ! $this->install->current_version )
|
||||
{
|
||||
$error[] = "An error has occured, we are unable to determine the current version or if there are any required upgrade files left to run";
|
||||
$error[] = "Íå óäàëîñü îïðåäåëèòü âåðñèþ óñòàíîâëåííîãî ïðîäóêòà";
|
||||
}
|
||||
if ( $this->install->last_poss_id <= $this->install->current_version )
|
||||
if ( $this->install->last_poss_id AND $this->install->last_poss_id <= $this->install->current_version )
|
||||
{
|
||||
$error[] = "Your installation is up to date; no upgrade required";
|
||||
$error[] = "Ó âàñ óñòàíîâëåíà ïîñëåäíÿÿ äîñòóïíàÿ âåðñèÿ ïðîäóêòà. Îáíîâëåíèå íå òðåáóåòñÿ.";
|
||||
}
|
||||
|
||||
$checkfiles = array( ROOT_PATH ."resources/ipb_templates.xml",
|
||||
@@ -181,7 +208,7 @@ class action_overview
|
||||
{
|
||||
if ( ! file_exists($cf) )
|
||||
{
|
||||
$error[] = "Cannot locate the file '$cf'.";
|
||||
$error[] = "Ìàñòåð íå ñìîã íàéòè íåîáõîäèìûé äëÿ ðàáîòû ôàéë '$cf'.";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,7 +216,7 @@ class action_overview
|
||||
{
|
||||
if ( ! is_writeable($cf) )
|
||||
{
|
||||
$error[] = "Cannot write to the file or folder '$cf'. Please CHMOD to 0777.";
|
||||
$error[] = "Ðåñóðñ (ôàéë èëè äèðåêòîðèÿ) '$cf' íå äîñòóïåí äëÿ çàïèñè. Ïîæàëóéñòà èçìåíèòå CHMOD íà 0777.";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -201,7 +228,7 @@ class action_overview
|
||||
return;
|
||||
}
|
||||
|
||||
$current_version = $this->install->current_version == '00000' ? 'not installed' : $this->install->versions[ $this->install->current_version ];
|
||||
$current_version = $this->install->current_version == '00000' ? 'íå óñòàíîâëåí' : $this->install->versions[ $this->install->current_version ];
|
||||
|
||||
if ( $this->install->current_version == '00000' )
|
||||
{
|
||||
@@ -209,14 +236,14 @@ class action_overview
|
||||
}
|
||||
else
|
||||
{
|
||||
$summary .= "Upgrade from ".$this->install->versions[ $this->install->current_version ]." to ".$this->install->versions[ $this->install->last_poss_id ];
|
||||
$summary .= "îáíîâëåíèå ".$this->install->versions[ $this->install->current_version ]." äî âåðñèè ".$this->install->versions[ $this->install->last_poss_id ];
|
||||
}
|
||||
|
||||
//-----------------------------------------
|
||||
// Time check...
|
||||
//-----------------------------------------
|
||||
|
||||
$summary .= "<br /><br /><strong>Checking 'resources' directory files</strong>";
|
||||
$summary .= "<br /><br /><strong>Ïðîâåðêà âàëèäíîñòè ðåñóðñ-ôàéëîâ</strong>";
|
||||
$_flag = 0;
|
||||
|
||||
foreach ( $timecheck as $cf )
|
||||
@@ -226,19 +253,35 @@ class action_overview
|
||||
if ( $time_to_check AND $_time AND ( ( $time_to_check - (86400 * 7) ) > $_time ) )
|
||||
{
|
||||
$_flag = 1;
|
||||
$summary .= "<div style='color:red'>·" . str_replace( ROOT_PATH, '', $cf ) . ' may be out of date</div>';
|
||||
$summary .= "<div style='color:red'>·" . str_replace( ROOT_PATH, '', $cf ) . ' ìîæåò áûòü óñòàðåâøèì</div>';
|
||||
}
|
||||
}
|
||||
|
||||
if ( $_flag )
|
||||
{
|
||||
$summary .= "<br /><div>Please check the above files to make sure they have been uploaded from the ".$this->install->versions[ $this->install->last_poss_id ]." download";
|
||||
$summary .= "<br /><div>Ïîæàëóéñòà óáåäèòåñü, ÷òî ôàéëû èç ñïèñêà çàêà÷àíû èç äèñòðèáóòèâà ".$this->install->versions[ $this->install->last_poss_id ]." âåðñèè";
|
||||
}
|
||||
else
|
||||
{
|
||||
$summary .= "<div style='color:green'>All files checked OK</div>";
|
||||
$summary .= "<div style='color:green'>Âñå ðåñóðñ-ôàéëû âàëèäíû</div>";
|
||||
}
|
||||
|
||||
if ( $cp = $this->install->get_db_codepage() )
|
||||
{
|
||||
$summary .= "
|
||||
<br />
|
||||
<strong>Êîäèðîâêà òàáëèö â MySQL</strong>
|
||||
<table width='100%' cellspacing='0' cellpadding='0' align='left' border='0'>
|
||||
<tr>
|
||||
<td class='title'><div style='color:gray; font-weight:normal;'>Íå èçìåíÿéòå, åñëè íå óâåðåíû.</div></td>
|
||||
<td class='content'><input type='text' name='mysql_codepage' class='sql_form' value='" . $cp . "'></td>
|
||||
</tr>
|
||||
</table>";
|
||||
|
||||
} else {
|
||||
$summary .= "<input type='hidden' name='mysql_codepage' value='none'>";
|
||||
}
|
||||
|
||||
/* Page Output */
|
||||
$this->install->template->append( $this->install->template->overview_page( $current_version, $summary ) );
|
||||
$this->install->template->next_action = '?p=eula';
|
||||
|
||||
@@ -1,4 +1,30 @@
|
||||
<?php
|
||||
/*
|
||||
+--------------------------------------------------------------------------
|
||||
| Invision Power Board 2.2.2
|
||||
| Invision Power Board INSTALLER
|
||||
| ========================================
|
||||
| by Matthew Mecham
|
||||
| (c) 2001 - 2005 Invision Power Services, Inc.
|
||||
| http://www.invisionpower.com
|
||||
| =============================================
|
||||
| Web: http://www.invisionboard.com
|
||||
| http://www.ibresource.ru/products/invisionpowerboard/
|
||||
| Time: Monday 05th of March 2007 10:10:55 PM
|
||||
| Release: e3790216629e5a2aaf37070b32237f06
|
||||
| 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
|
||||
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
|
||||
+----------------------------------------------------------------------------
|
||||
| Invision Installer Framework
|
||||
+----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
* Invision Power Board
|
||||
* Invision Installer Framework
|
||||
@@ -105,7 +131,7 @@ class class_installer
|
||||
|
||||
if ( PHP_VERSION < $this->version_php_min )
|
||||
{
|
||||
$errors[] = 'Your PHP installation is too old to run this product, please upgrade before continuing.';
|
||||
$errors[] = 'Âåðñèÿ PHP, óñòàíîâëåííàÿ íà âàøåì ñåðâåðå, íå óäîâëåòâîðÿåò ñèñòåìíûì òðåáîâàíèÿì ïðîäóêòà. Äëÿ ïðîäîëæåíèÿ óñòàíîâêè íåîáõîäèìî îáíîâèòü PHP.';
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -121,7 +147,7 @@ class class_installer
|
||||
{
|
||||
if( ! ( is_dir( $_d) && is_readable( $_d ) ) )
|
||||
{
|
||||
$errors[] = 'A required directory could not be located: "' . $_d . '"';
|
||||
$errors[] = 'Íå âîçìîæíî íàéòè òðåáóåìóþ äèðåêòîðèþ: "' . $_d . '"';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -132,7 +158,7 @@ class class_installer
|
||||
{
|
||||
if( ! ( file_exists( $_f) && is_readable( $_f ) ) )
|
||||
{
|
||||
$errors[] = 'A required file could not be located: "' . $_f . '"';
|
||||
$errors[] = 'Íå âîçìîæíî íàéòè òðåáóåìûé ôàéë: "' . $_f . '"';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -146,7 +172,7 @@ class class_installer
|
||||
{
|
||||
if( ! is_writeable( $_d ) )
|
||||
{
|
||||
$errors[] = 'Can not write to directory: "' . $_d . '", please CHMOD to 777';
|
||||
$errors[] = 'Äèðåêòîðèÿ: "' . str_replace( INS_DOC_ROOT_PATH, '', $_d ) . '" íå äîñòóïíà äëÿ çàïèñè, ïîæàëóéñòà èçìåíèòå ïðàâà äîñòóïà (CHMOD) íà 777';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,7 +180,7 @@ class class_installer
|
||||
{
|
||||
if( ! is_writeable( $_f ) )
|
||||
{
|
||||
$errors[] = 'Can not write to file: "' . $_f . '", please CHMOD to 777';
|
||||
$errors[] = 'Ôàéë: "' . str_replace( INS_DOC_ROOT_PATH, '', $_f ) . '" íå äîñòóïåí äëÿ çàïèñè, ïîæàëóéñòà èçìåíèòå ïðàâà äîñòóïà (CHMOD) íà 777';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -177,11 +203,11 @@ class class_installer
|
||||
$config = $xml->xml_parse_document( $config );
|
||||
|
||||
// Set Info
|
||||
$this->product_name = $xml->xml_array['installdata']['package']['name']['VALUE'];
|
||||
$this->product_license = $xml->xml_array['installdata']['package']['license']['VALUE'];
|
||||
$this->product_version = $xml->xml_array['installdata']['package']['version']['VALUE'];
|
||||
$this->product_long_version = $xml->xml_array['installdata']['package']['versionlong']['VALUE'];
|
||||
$this->build_id = $xml->xml_array['installdata']['package']['build']['VALUE'];
|
||||
$this->product_name = $this->ipsclass->txt_convert_charsets($xml->xml_array['installdata']['package']['name']['VALUE'], 'UTF-8');
|
||||
$this->product_license = $this->ipsclass->txt_convert_charsets($xml->xml_array['installdata']['package']['license']['VALUE'], 'UTF-8');
|
||||
$this->product_version = $this->ipsclass->txt_convert_charsets($xml->xml_array['installdata']['package']['version']['VALUE'], 'UTF-8');
|
||||
$this->product_long_version = $this->ipsclass->txt_convert_charsets($xml->xml_array['installdata']['package']['versionlong']['VALUE'], 'UTF-8');
|
||||
$this->build_id = $this->ipsclass->txt_convert_charsets($xml->xml_array['installdata']['package']['build']['VALUE'], 'UTF-8');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -199,6 +225,22 @@ class class_installer
|
||||
@fclose( $fh );
|
||||
}
|
||||
|
||||
/**
|
||||
* class_installer::read_file
|
||||
*
|
||||
* Simple method for reading a file
|
||||
*
|
||||
* @param string $name Full name, including path, of file to read
|
||||
* @return string $content file's body
|
||||
*/
|
||||
function read_file( $name )
|
||||
{
|
||||
$fh = @fopen( $name, "r" );
|
||||
$content = @fread( $fh, filesize( $name ) );
|
||||
@fclose( $fh );
|
||||
|
||||
return $content;
|
||||
}
|
||||
/**
|
||||
* class_installer::create_admin_converge
|
||||
*
|
||||
@@ -238,7 +280,7 @@ class class_installer
|
||||
/* Open directory */
|
||||
$dh = @opendir( $path );
|
||||
|
||||
while( $f = @readdir( $dh ) )
|
||||
while( false !== ( $f = @readdir( $dh ) ) )
|
||||
{
|
||||
if( $f != '.' && $f != '..' )
|
||||
{
|
||||
@@ -346,7 +388,11 @@ class class_installer
|
||||
{
|
||||
if( !md5($member['legacy_password']) == $this->loginkey )
|
||||
{
|
||||
$member = array();
|
||||
$this->ipsclass->DB->query( "SELECT m.*, g.* FROM ibf_members m
|
||||
LEFT JOIN ibf_groups g ON ( m.mgroup=g.g_id )
|
||||
WHERE m.member_login_key='{$this->loginkey}' and m.id='{$this->member_id}'" );
|
||||
|
||||
$member = $this->ipsclass->DB->fetch_row();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
* the full path
|
||||
* @since 2.0.0.2005-01-01
|
||||
*/
|
||||
define( 'INS_ROOT_PATH', str_replace( "//", "/", str_replace( "/core", "", str_replace( "\\", "/", dirname( __FILE__ ) ) ) ) . "/" );
|
||||
define( 'INS_ROOT_PATH', str_replace( "//", "/", preg_replace( "#/core$#is", "", str_replace( "\\", "/", dirname( __FILE__ ) ) ) ) . "/" );
|
||||
|
||||
/**
|
||||
* DOC ROOT PATH
|
||||
|
||||
@@ -1,720 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
+--------------------------------------------------------------------------
|
||||
| Invision Power Board v<{%dyn.down.var.human.version%}>
|
||||
| ========================================
|
||||
| by Matthew Mecham
|
||||
| (c) 2001 - 2004 Invision Power Services
|
||||
| http://www.invisionpower.com
|
||||
| ========================================
|
||||
| Web: http://www.invisionboard.com
|
||||
| Time: <{%dyn.down.var.time%}>
|
||||
| Release: <{%dyn.down.var.md5%}>
|
||||
| Email: matt@invisionpower.com
|
||||
| Licence Info: http://www.invisionboard.com/?license
|
||||
+---------------------------------------------------------------------------
|
||||
|
|
||||
| > IPB UPGRADE LOADER
|
||||
| > Script written by Matt Mecham
|
||||
| > Date started: 21st April 2004
|
||||
| > Interesting fact: Radiohead rock (still)
|
||||
+--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
if ( ! defined( 'IN_IPB' ) )
|
||||
{
|
||||
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 core_functions
|
||||
{
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// CONSTRUCTOR
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
function core_functions()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// FINISH _EVERYTHING_
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
function upgrade_complete()
|
||||
{
|
||||
$this->ipsclass->template->content .= "
|
||||
<div class='tableborder'>
|
||||
<div class='maintitle'>IPB Upgrade Complete!</div>
|
||||
<div class='tdrow1' style='padding:6px'>You have now been upgraded!
|
||||
<br /><br />
|
||||
You may want to disable permissions on the script 'upgrade/index.php' to increase security or rename the 'upgrade' directory.
|
||||
</div>
|
||||
</div>
|
||||
";
|
||||
|
||||
$this->ipsclass->template->output();
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// Continue with error
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
function show_error( $msg, $nextact )
|
||||
{
|
||||
$this->ipsclass->template->content .= "
|
||||
<div class='tableborder'>
|
||||
<div class='maintitle'>Error!</div>
|
||||
<div class='tdrow1' style='padding:6px'>The following database error(s) were returned:</b>
|
||||
<br /><br />$msg
|
||||
<div align='center'><span style='font-weight:bold;font-size:14px'>» <a href='index.php?act={$nextact}&loginkey={$this->ipsclass->input['loginkey']}&securekey={$this->ipsclass->input['securekey']}&mid={$this->ipsclass->input['mid']}'>Continue regardless?</a></span></div>
|
||||
</div>
|
||||
</div>
|
||||
";
|
||||
|
||||
$this->ipsclass->template->output();
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// REBUILD TEMPLATES
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
function rebuild_templates_cache()
|
||||
{
|
||||
//-----------------------------------
|
||||
// Get ACP library
|
||||
//-----------------------------------
|
||||
|
||||
require_once( ROOT_PATH.'sources/lib/admin_cache_functions.php' );
|
||||
$acp = new admin_cache_functions();
|
||||
$acp->ipsclass =& $this->ipsclass;
|
||||
|
||||
$justdone = intval($this->ipsclass->input['justdone']);
|
||||
$justdone = $justdone ? $justdone : 1;
|
||||
|
||||
//-----------------------------------
|
||||
// Get skins
|
||||
//-----------------------------------
|
||||
|
||||
$this->ipsclass->DB->simple_construct( array( 'select' => '*',
|
||||
'from' => 'skin_sets',
|
||||
'where' => 'set_skin_set_id > '.$justdone,
|
||||
'order' => 'set_skin_set_id',
|
||||
'limit' => array( 0, 1 )
|
||||
) );
|
||||
|
||||
$this->ipsclass->DB->simple_exec();
|
||||
|
||||
//-----------------------------------
|
||||
// Got a biggun?
|
||||
//-----------------------------------
|
||||
|
||||
$r = $this->ipsclass->DB->fetch_row();
|
||||
|
||||
if ( $r['set_skin_set_id'] )
|
||||
{
|
||||
$acp->_rebuild_all_caches( array($r['set_skin_set_id']) );
|
||||
|
||||
$extra = implode( "<br />", $acp->messages );
|
||||
|
||||
$this->ipsclass->core->redirect( "index.php?act=templatescache&justdone={$r['set_skin_set_id']}&loginkey={$this->ipsclass->input['loginkey']}&securekey={$this->ipsclass->input['securekey']}&mid={$this->ipsclass->input['mid']}", "Rebuild cache for skin set {$r['set_name']}<br />{$extra}<br />Proceeding to the next skin..." );
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->ipsclass->core->redirect( "index.php?act=finish&loginkey={$this->ipsclass->input['loginkey']}&securekey={$this->ipsclass->input['securekey']}&mid={$this->ipsclass->input['mid']}", "No more skins to rebuild..." );
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// REBUILD TEMPLATES
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
function rebuild_templates()
|
||||
{
|
||||
//-----------------------------------
|
||||
// Get XML
|
||||
//-----------------------------------
|
||||
|
||||
require_once( KERNEL_PATH.'class_xml.php' );
|
||||
|
||||
$xml = new class_xml();
|
||||
$xml->lite_parser = 1;
|
||||
|
||||
//-----------------------------------
|
||||
// Get XML file (TEMPLATES)
|
||||
//-----------------------------------
|
||||
|
||||
$xmlfile = ROOT_PATH.'ipb_templates.xml';
|
||||
|
||||
$setting_content = implode( "", file($xmlfile) );
|
||||
|
||||
//-------------------------------
|
||||
// Unpack the datafile (TEMPLATES)
|
||||
//-------------------------------
|
||||
|
||||
$xml->xml_parse_document( $setting_content );
|
||||
|
||||
//-------------------------------
|
||||
// (TEMPLATES)
|
||||
//-------------------------------
|
||||
|
||||
if ( ! is_array( $xml->xml_array['templateexport']['templategroup']['template'] ) )
|
||||
{
|
||||
install_error("Error with ipb_templates.xml - could not process XML properly");
|
||||
}
|
||||
|
||||
foreach( $xml->xml_array['templateexport']['templategroup']['template'] as $id => $entry )
|
||||
{
|
||||
|
||||
$row = $this->ipsclass->DB->simple_exec_query( array( 'select' => 'suid',
|
||||
'from' => 'skin_templates',
|
||||
'where' => "group_name='{$entry[ 'group_name' ]['VALUE']}' AND func_name='{$entry[ 'func_name' ]['VALUE']}' and set_id=1"
|
||||
) );
|
||||
|
||||
if ( $row['suid'] )
|
||||
{
|
||||
$this->ipsclass->DB->do_update( 'skin_templates', array( 'func_data' => $entry[ 'func_data' ]['VALUE'],
|
||||
'section_content' => $entry[ 'section_content' ]['VALUE'],
|
||||
'updated' => time()
|
||||
)
|
||||
, 'suid='.$row['suid'] );
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->ipsclass->DB->do_insert( 'skin_templates', array( 'func_data' => $entry[ 'func_data' ]['VALUE'],
|
||||
'func_name' => $entry[ 'func_name' ]['VALUE'],
|
||||
'section_content' => $entry[ 'section_content' ]['VALUE'],
|
||||
'group_name' => $entry[ 'group_name' ]['VALUE'],
|
||||
'updated' => time(),
|
||||
'set_id' => 1
|
||||
) );
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------
|
||||
// Boink..
|
||||
//-----------------------------------
|
||||
|
||||
$this->ipsclass->core->redirect( "index.php?act=templatescache&loginkey={$this->ipsclass->input['loginkey']}&securekey={$this->ipsclass->input['securekey']}&mid={$this->ipsclass->input['mid']}", "Master templates rebuilt, proceeding to recache templates..." );
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// REBUILD CACHES
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
function rebuild_caches()
|
||||
{
|
||||
//-------------------------------------------------------------
|
||||
// BBCODE
|
||||
//-------------------------------------------------------------
|
||||
|
||||
$this->ipsclass->cache['bbcode'] = array();
|
||||
|
||||
$this->ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'custom_bbcode' ) );
|
||||
$bbcode = $this->ipsclass->DB->simple_exec();
|
||||
|
||||
while ( $r = $this->ipsclass->DB->fetch_row($bbcode) )
|
||||
{
|
||||
$this->ipsclass->cache['bbcode'][] = $r;
|
||||
}
|
||||
|
||||
$this->ipsclass->update_cache( array( 'name' => 'bbcode', 'array' => 1, 'deletefirst' => 1 ) );
|
||||
|
||||
//-------------------------------------------------------------
|
||||
// Forum cache
|
||||
//-------------------------------------------------------------
|
||||
|
||||
$this->ipsclass->update_forum_cache();
|
||||
|
||||
//-------------------------------------------------------------
|
||||
// Group Cache
|
||||
//-------------------------------------------------------------
|
||||
|
||||
$this->ipsclass->cache['group_cache'] = array();
|
||||
|
||||
$this->ipsclass->DB->simple_construct( array( 'select' => "*",
|
||||
'from' => 'groups'
|
||||
) );
|
||||
|
||||
$this->ipsclass->DB->simple_exec();
|
||||
|
||||
while ( $i = $this->ipsclass->DB->fetch_row() )
|
||||
{
|
||||
$this->ipsclass->cache['group_cache'][ $i['g_id'] ] = $i;
|
||||
}
|
||||
|
||||
$this->ipsclass->update_cache( array( 'name' => 'group_cache', 'array' => 1, 'deletefirst' => 1 ) );
|
||||
|
||||
//-------------------------------------------------------------
|
||||
// Systemvars
|
||||
//-------------------------------------------------------------
|
||||
|
||||
$this->ipsclass->cache['systemvars'] = array();
|
||||
|
||||
$result = $this->ipsclass->DB->simple_exec_query( array( 'select' => 'count(*) as cnt', 'from' => 'mail_queue' ) );
|
||||
|
||||
$this->ipsclass->cache['systemvars']['mail_queue'] = intval( $result['cnt'] );
|
||||
$this->ipsclass->cache['systemvars']['task_next_run'] = time() + 3600;
|
||||
|
||||
$this->ipsclass->update_cache( array( 'name' => 'systemvars', 'array' => 1, 'deletefirst' => 1 ) );
|
||||
|
||||
//-----------------------------------------
|
||||
// Moderators
|
||||
//-----------------------------------------
|
||||
|
||||
$this->ipsclass->cache['moderators'] = array();
|
||||
|
||||
require_once( ROOT_PATH.'sources/action_admin/moderator.php' );
|
||||
$mod = new ad_moderator();
|
||||
$mod->ipsclass =& $this->ipsclass;
|
||||
|
||||
$mod->rebuild_moderator_cache();
|
||||
|
||||
//-----------------------------------------
|
||||
// Cal events / Birthdays
|
||||
//-----------------------------------------
|
||||
|
||||
require_once( ROOT_PATH . 'sources/action_admin/calendars.php' );
|
||||
$calendars = new ad_calendars();
|
||||
$calendars->ipsclass =& $this->ipsclass;
|
||||
|
||||
$calendars->calendar_rebuildcache( 0 );
|
||||
|
||||
//-------------------------------------------------------------
|
||||
// Ranks
|
||||
//-------------------------------------------------------------
|
||||
|
||||
$this->ipsclass->cache['ranks'] = array();
|
||||
|
||||
$this->ipsclass->DB->simple_construct( array( 'select' => 'id, title, pips, posts',
|
||||
'from' => 'titles',
|
||||
'order' => "posts DESC",
|
||||
) );
|
||||
|
||||
$this->ipsclass->DB->simple_exec();
|
||||
|
||||
while ($i = $this->ipsclass->DB->fetch_row())
|
||||
{
|
||||
$this->ipsclass->cache['ranks'][ $i['id'] ] = array(
|
||||
'TITLE' => $i['title'],
|
||||
'PIPS' => $i['pips'],
|
||||
'POSTS' => $i['posts'],
|
||||
);
|
||||
}
|
||||
|
||||
$this->ipsclass->update_cache( array( 'name' => 'ranks', 'array' => 1, 'deletefirst' => 1 ) );
|
||||
|
||||
|
||||
//-------------------------------------------------------------
|
||||
// SETTINGS
|
||||
//-------------------------------------------------------------
|
||||
|
||||
require_once( ROOT_PATH . 'sources/action_admin/settings.php' );
|
||||
$settings = new ad_settings();
|
||||
$settings->ipsclass =& $this->ipsclass;
|
||||
|
||||
$settings->setting_rebuildcache();
|
||||
|
||||
//-------------------------------------------------------------
|
||||
// EMOTICONS
|
||||
//-------------------------------------------------------------
|
||||
|
||||
require_once( ROOT_PATH . 'sources/action_admin/emoticons.php' );
|
||||
$emoticons = new ad_emoticons();
|
||||
$emoticons->ipsclass =& $this->ipsclass;
|
||||
|
||||
$emoticons->emoticon_rebuildcache();
|
||||
|
||||
//-------------------------------------------------------------
|
||||
// LANGUAGES
|
||||
//-------------------------------------------------------------
|
||||
|
||||
$this->ipsclass->cache['languages'] = array();
|
||||
|
||||
$this->ipsclass->DB->simple_construct( array( 'select' => 'ldir,lname', 'from' => 'languages' ) );
|
||||
$this->ipsclass->DB->simple_exec();
|
||||
|
||||
while ( $r = $this->ipsclass->DB->fetch_row() )
|
||||
{
|
||||
$this->ipsclass->cache['languages'][] = $r;
|
||||
}
|
||||
|
||||
$this->ipsclass->update_cache( array( 'name' => 'languages', 'array' => 1, 'deletefirst' => 1 ) );
|
||||
|
||||
//-------------------------------------------------------------
|
||||
// ATTACHMENT TYPES
|
||||
//-------------------------------------------------------------
|
||||
|
||||
$this->ipsclass->cache['attachtypes'] = array();
|
||||
|
||||
$this->ipsclass->DB->simple_construct( array( 'select' => 'atype_extension,atype_mimetype,atype_post,atype_photo,atype_img', 'from' => 'attachments_type', 'where' => "atype_photo=1 OR atype_post=1" ) );
|
||||
$this->ipsclass->DB->simple_exec();
|
||||
|
||||
while ( $r = $this->ipsclass->DB->fetch_row() )
|
||||
{
|
||||
$this->ipsclass->cache['attachtypes'][ $r['atype_extension'] ] = $r;
|
||||
}
|
||||
|
||||
$this->ipsclass->update_cache( array( 'name' => 'attachtypes', 'array' => 1, 'deletefirst' => 1 ) );
|
||||
|
||||
$this->ipsclass->core->redirect( "index.php?act=templates&loginkey={$this->ipsclass->input['loginkey']}&securekey={$this->ipsclass->input['securekey']}&mid={$this->ipsclass->input['mid']}", "Caches rebuilt, proceeding to rebuild templates..." );
|
||||
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// MODULE RUN - Look for next, or finish up...
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
function module_complete()
|
||||
{
|
||||
$message = array();
|
||||
|
||||
//--------------------------------
|
||||
// Upgrade templates
|
||||
//--------------------------------
|
||||
|
||||
if ( @file_exists( THIS_PATH.'upg_'.$this->ipsclass->current_upgrade.'/components.php' ) )
|
||||
{
|
||||
require_once( THIS_PATH.'upg_'.$this->ipsclass->current_upgrade.'/components.php' );
|
||||
|
||||
$this->ipsclass->DB->do_update( 'skin_sets', array( 'set_css' => $CSS,
|
||||
'set_cache_css' => $CSS,
|
||||
'set_wrapper' => $WRAPPER,
|
||||
'set_cache_wrapper' => $WRAPPER,
|
||||
), 'set_skin_set_id=1' );
|
||||
|
||||
$message[] = "Template components updated...";
|
||||
}
|
||||
|
||||
//--------------------------------
|
||||
// ACP Perms
|
||||
//--------------------------------
|
||||
|
||||
if ( @file_exists( THIS_PATH.'upg_'.$this->ipsclass->current_upgrade.'/ipb_acpperms.xml' ) )
|
||||
{
|
||||
//-------------------------------
|
||||
// Load module...
|
||||
//-------------------------------
|
||||
|
||||
require_once( ROOT_PATH . 'sources/action_admin/acppermissions.php' );
|
||||
$settings = new ad_acppermissions();
|
||||
$settings->ipsclass =& $this->ipsclass;
|
||||
|
||||
//-------------------------------
|
||||
// Set location
|
||||
//-------------------------------
|
||||
|
||||
$this->ipsclass->input['file_location'] = UPGRADE_DIR.'/upg_'.$this->ipsclass->current_upgrade.'/ipb_acpperms.xml';
|
||||
|
||||
//-------------------------------
|
||||
// Run it
|
||||
//-------------------------------
|
||||
|
||||
$settings->acpperms_xml_import( 1 );
|
||||
|
||||
$message[] = $this->ipsclass->main_msg;
|
||||
}
|
||||
|
||||
//--------------------------------
|
||||
// Settings
|
||||
//--------------------------------
|
||||
|
||||
if ( @file_exists( THIS_PATH.'upg_'.$this->ipsclass->current_upgrade.'/ipb_settings_partial.xml' ) )
|
||||
{
|
||||
//-------------------------------
|
||||
// Load module...
|
||||
//-------------------------------
|
||||
|
||||
require_once( ROOT_PATH . 'sources/action_admin/settings.php' );
|
||||
$settings = new ad_settings();
|
||||
$settings->ipsclass =& $this->ipsclass;
|
||||
|
||||
//-------------------------------
|
||||
// Set location
|
||||
//-------------------------------
|
||||
|
||||
$this->ipsclass->input['file_location'] = UPGRADE_DIR.'/upg_'.$this->ipsclass->current_upgrade.'/ipb_settings_partial.xml';
|
||||
|
||||
//-------------------------------
|
||||
// Run it
|
||||
//-------------------------------
|
||||
|
||||
$settings->settings_do_import( 1 );
|
||||
|
||||
$message[] = $this->ipsclass->main_msg;
|
||||
}
|
||||
|
||||
//------------------------------------------
|
||||
// Update DB
|
||||
//------------------------------------------
|
||||
|
||||
$this->ipsclass->DB->do_insert( 'upgrade_history', array( 'upgrade_version_id' => $this->ipsclass->current_upgrade,
|
||||
'upgrade_version_human' => $this->ipsclass->versions[ $this->ipsclass->current_upgrade ],
|
||||
'upgrade_date' => time(),
|
||||
'upgrade_mid' => $this->ipsclass->input['mid']
|
||||
) );
|
||||
|
||||
//------------------------------------------
|
||||
// Anymore to run?
|
||||
//------------------------------------------
|
||||
|
||||
if ( $this->ipsclass->last_poss_id != $this->ipsclass->current_upgrade )
|
||||
{
|
||||
$this->ipsclass->core->redirect( "index.php?act=work&loginkey={$this->ipsclass->input['loginkey']}&securekey={$this->ipsclass->input['securekey']}&mid={$this->ipsclass->input['mid']}",
|
||||
implode( "<br />", $message ) . "<br />Upgrade module complete, moving on to the next upgrade module...." );
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->ipsclass->template->content .= "
|
||||
<div class='tableborder'>
|
||||
<div class='maintitle'>IPB Upgrade Complete</div>
|
||||
<div class='tdrow1' style='padding:6px'>".implode( "<br />", $message ) . "<br />
|
||||
You have now been upgraded from {$this->ipsclass->versions[$this->ipsclass->current_version]} to {$this->ipsclass->versions[$this->ipsclass->current_upgrade]}
|
||||
<br /><br />
|
||||
The next few final steps will check for updated settings and recache your cached data (forums, groups, moderators, etc) and rebuild your master templates to ensure
|
||||
that all the template additions and modifications are updated.
|
||||
<br /><br />
|
||||
<div align='center'><span style='font-weight:bold;font-size:14px'>» <a href='index.php?act=recache&loginkey={$this->ipsclass->input['loginkey']}&securekey={$this->ipsclass->input['securekey']}&mid={$this->ipsclass->input['mid']}'>Proceed...</a></span></div>
|
||||
</div>
|
||||
</div>
|
||||
";
|
||||
|
||||
$this->ipsclass->template->output();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// Redirect
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
function redirect($url, $text, $time=2)
|
||||
{
|
||||
$this->ipsclass->template->content .= "<meta http-equiv='refresh' content=\"{$time}; url={$url}\">
|
||||
<div class='tableborder'>
|
||||
<div class='maintitle'>Redirecting</div>
|
||||
<div class='tdrow1' style='padding:8px'>
|
||||
<div style='font-size:12px'>$text
|
||||
<br />
|
||||
<br />
|
||||
<center><a href='{$url}'>Click here if not redirected...</a></center>
|
||||
</div>
|
||||
</div>
|
||||
</div>";
|
||||
|
||||
$this->ipsclass->template->output("Redirecting...");
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// SHOW LOG IN SCREEN
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
function login_screen($msg='')
|
||||
{
|
||||
$alert = "";
|
||||
|
||||
if ( ! file_exists( ROOT_PATH.'ipb_templates.xml' ) )
|
||||
{
|
||||
$alert .= "<div class='warnbox'><b>Cannot locate XML templates</b><br />This should be located in 'ipb_templates.xml' please ensure this file is uploaded (recreating the file structure if needed) before continuing.
|
||||
<br /><strong>Failure to upload this file will mean that your templates will not be updated.</strong></div>";
|
||||
}
|
||||
|
||||
if ( ! is_writeable( CACHE_PATH . 'cache/skin_cache' ) )
|
||||
{
|
||||
$alert .= "<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>";
|
||||
}
|
||||
|
||||
if ( $alert )
|
||||
{
|
||||
$this->ipsclass->template->content .= "{$alert}";
|
||||
$this->ipsclass->template->output("WARNING");
|
||||
exit();
|
||||
}
|
||||
|
||||
if ( $msg != "" )
|
||||
{
|
||||
$msg = "<div class='warnbox'>$msg</div><br />";
|
||||
}
|
||||
|
||||
$this->ipsclass->template->content .= "
|
||||
<form action='index.php?act=login' method='post' name='theAdminForm'>
|
||||
{$msg}
|
||||
<div>
|
||||
<strong>You must log in with your forums administrative log in details to access the upgrade system.
|
||||
<br />Upgrading from {$this->ipsclass->versions[$this->ipsclass->current_version]} to {$this->ipsclass->versions[$this->ipsclass->current_upgrade]}</strong>
|
||||
</div>
|
||||
<br />
|
||||
<div class='tableborder'>
|
||||
<div class='maintitle'>Verification Required - Please Log In</div>
|
||||
<table width='100%' cellspacing='0' cellpadding='5' align='center' border='0'>
|
||||
<tr>
|
||||
<td class='tdrow1' width='40%' valign='middle'>Your Forums Username:</td>
|
||||
<td class='tdrow2' width='60%' valign='middle'><input type='text' style='width:100%' name='username' value=''></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='tdrow1' width='40%' valign='middle'>Your Forums Password:</td>
|
||||
<td class='tdrow2' width='60%' valign='middle'><input type='password' style='width:100%' name='password' value=''></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='pformstrip' colspan='2'><div align='center'><input type='submit' value='Log in' id='button' accesskey='s'></div></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</form>";
|
||||
|
||||
$this->ipsclass->template->output("Log In");
|
||||
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// Authorise da membah
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
function get_member()
|
||||
{
|
||||
$member = array( 'id' => 0 );
|
||||
|
||||
$this->ipsclass->loginkey = $this->check_md5( isset($this->ipsclass->input['loginkey']) ? $this->ipsclass->input['loginkey'] : '' );
|
||||
$this->ipsclass->securekey = $this->check_md5( isset($this->ipsclass->input['securekey']) ? $this->ipsclass->input['securekey'] : '' );
|
||||
$this->ipsclass->member_id = trim(intval( isset($this->ipsclass->input['mid']) ? $this->ipsclass->input['mid'] : 0 ) );
|
||||
|
||||
if ( ! $this->ipsclass->loginkey or ! $this->ipsclass->securekey )
|
||||
{
|
||||
return $member;
|
||||
}
|
||||
|
||||
$this->ipsclass->DB->build_query( array( 'select' => 'm.*,g.*',
|
||||
'from' => array( 'members' => 'm' ),
|
||||
'where' => "m.member_login_key='{$this->ipsclass->loginkey}' and m.id='{$this->ipsclass->member_id}'",
|
||||
'limit' => array( 0, 1 ),
|
||||
'add_join' => array( 1 => array( 'type' => 'left',
|
||||
'from' => array( 'groups' => 'g' ),
|
||||
'where' => 'g.g_id=m.mgroup',
|
||||
) )
|
||||
) );
|
||||
$this->ipsclass->DB->exec_query();
|
||||
|
||||
$member = $this->ipsclass->DB->fetch_row();
|
||||
|
||||
return $member;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// Get the current version and the next version to upgrade to..
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
function get_version_latest()
|
||||
{
|
||||
$this->ipsclass->current_version = '';
|
||||
$this->ipsclass->current_upgrade = '';
|
||||
|
||||
//------------------------------------------
|
||||
// Copy & pop DB array and get next
|
||||
// upgrade script
|
||||
//------------------------------------------
|
||||
|
||||
$tmp = $this->ipsclass->db_contents;
|
||||
|
||||
$this->ipsclass->current_version = array_pop( $tmp );
|
||||
|
||||
//------------------------------------------
|
||||
// Get the next upgrade script
|
||||
//------------------------------------------
|
||||
|
||||
ksort( $this->ipsclass->dir_contents );
|
||||
|
||||
foreach( $this->ipsclass->dir_contents as $i => $a )
|
||||
{
|
||||
if ( $a > $this->ipsclass->current_version )
|
||||
{
|
||||
if ( ! $this->ipsclass->current_upgrade )
|
||||
{
|
||||
$this->ipsclass->current_upgrade = $a;
|
||||
}
|
||||
|
||||
$this->ipsclass->modules_to_run[] = $this->ipsclass->versions[ $a ];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// GET INFO FROM THE DERTABASTIC
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
function get_db_structure()
|
||||
{
|
||||
$vers = array();
|
||||
|
||||
$this->ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'upgrade_history', 'order' => 'upgrade_version_id ASC' ) );
|
||||
$this->ipsclass->DB->simple_exec();
|
||||
|
||||
while( $r = $this->ipsclass->DB->fetch_row() )
|
||||
{
|
||||
$vers[ $r['upgrade_version_id'] ] = $r['upgrade_version_id'];
|
||||
}
|
||||
|
||||
return $vers;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// Get dir structure..
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
function get_dir_structure()
|
||||
{
|
||||
$return = array();
|
||||
|
||||
//------------------------------------------
|
||||
// Get the folder names
|
||||
//------------------------------------------
|
||||
|
||||
$dh = opendir( THIS_PATH );
|
||||
|
||||
while ( $file = readdir( $dh ) )
|
||||
{
|
||||
if ( is_dir( THIS_PATH."/".$file ) )
|
||||
{
|
||||
if ( $file != "." && $file != ".." )
|
||||
{
|
||||
if ( strstr( $file, 'upg_' ) )
|
||||
{
|
||||
$tmp = str_replace( "upg_", "", $file );
|
||||
$return[ $tmp ] = $tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
closedir( $dh );
|
||||
|
||||
sort($return);
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
// Check to see if its a 'real' MD5
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
function check_md5($t)
|
||||
{
|
||||
$t = preg_replace( "#[^a-z0-9]#", "", trim($t) );
|
||||
|
||||
if ( strlen($t) != 32 )
|
||||
{
|
||||
return '';
|
||||
}
|
||||
else
|
||||
{
|
||||
return $t;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
@@ -57,11 +57,11 @@ class install_template
|
||||
|
||||
foreach( $_pages as $position => $data )
|
||||
{
|
||||
$this->install_pages[ $data['file'] ] = $data['menu'];
|
||||
$this->install_pages[ $data['file'] ] = $this->ipsclass->txt_convert_charsets( $data['menu'], 'UTF-8' );
|
||||
}
|
||||
}
|
||||
|
||||
$this->install_pages['done'] = 'Finish';
|
||||
$this->install_pages['done'] = 'Çàâåðøåíèå';
|
||||
|
||||
/* Set Current Page */
|
||||
$this->page_current = ( $this->ipsclass->input['p'] ) ? $this->ipsclass->input['p'] : 'login';
|
||||
@@ -146,7 +146,8 @@ echo <<<EOF
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>IPS Upgrader</title>
|
||||
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
|
||||
<title>Ìàñòåð îáíîâëåíèÿ ïðîäóêòîâ Invision Power Services </title>
|
||||
<style type='text/css' media='all'>
|
||||
@import url('install.css');
|
||||
</style>
|
||||
@@ -168,7 +169,7 @@ echo <<<EOF
|
||||
<div id='ipswrapper'>
|
||||
<div class='main_shell'>
|
||||
|
||||
<h1><img src='images/package_icon.gif' align='absmiddle' /> Welcome to the IPB Upgrader</h1>
|
||||
<h1><img src='images/package_icon.gif' align='absmiddle' /> Èíñòðóìåíò îáíîâëåíèÿ Invision Power Services</h1>
|
||||
<div class='content_shell'>
|
||||
<div class='package'>
|
||||
<div>
|
||||
@@ -195,7 +196,7 @@ echo <<<EOF
|
||||
</div>
|
||||
|
||||
<div style='vertical-align: middle'>
|
||||
<h2>{$this->product_name} Upgrade</h2>
|
||||
<h2>Îáíîâëåíèå {$this->product_name}</h2>
|
||||
<!--<strong>{$this->product_version}</strong>-->
|
||||
</div>
|
||||
</div>
|
||||
@@ -210,7 +211,7 @@ echo <<<EOF
|
||||
<div class='hr'></div>
|
||||
<div style='padding-top: 17px; padding-right: 15px; padding-left: 15px'>
|
||||
<div style='float: left'>
|
||||
<input type='button' class='nav_button' value='Cancel Upgrade' onclick="window.location='index.php';return false;">
|
||||
<input type='button' class='nav_button' value='Ïðåêðàòèòü îáíîâëåíèå' onclick="window.location='index.php';return false;">
|
||||
</div>
|
||||
|
||||
<div style='float: right'>
|
||||
@@ -221,19 +222,19 @@ if( ! $this->hide_next )
|
||||
if( $this->next_action == 'disabled' )
|
||||
{
|
||||
echo <<<EOF
|
||||
<input type='submit' class='nav_button' value='Upgrade can not continue...' disabled='disabled'>
|
||||
<input type='submit' class='nav_button' value='Îáíîâëåíèå íå çàâåðøåíî...' disabled='disabled'>
|
||||
EOF;
|
||||
}
|
||||
else if( $this->in_error == 1 )
|
||||
{
|
||||
echo <<<EOF
|
||||
<input type='submit' class='nav_button' value='Continue regardless?'>
|
||||
<input type='submit' class='nav_button' value='Âñå ðàâíî ïðîäîëæèòü'>
|
||||
EOF;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo <<<EOF
|
||||
<input type='submit' class='nav_button' value='Next >'>
|
||||
<input type='submit' class='nav_button' value='Äàëüøå >'>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
@@ -247,7 +248,7 @@ echo <<<EOF
|
||||
EOF;
|
||||
echo date("Y");
|
||||
echo <<<EOF
|
||||
Invision Power Services, Inc.
|
||||
Invision Power Services, Inc. & IBResource, LTD
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -267,6 +268,7 @@ EOF;
|
||||
// ------------------------------------------------------------
|
||||
function login_page( $msg='' )
|
||||
{
|
||||
$output = "";
|
||||
if ( $msg )
|
||||
{
|
||||
$extra = "<div class='warning'>
|
||||
@@ -276,31 +278,49 @@ EOF;
|
||||
}
|
||||
|
||||
|
||||
return <<<EOF
|
||||
$output .= <<<EOF
|
||||
<br />
|
||||
<div>
|
||||
<div style='float: left; margin-right: 7px; margin-left: 5px;'>
|
||||
<img src='images/wizard.gif' align='absmiddle' />
|
||||
</div>
|
||||
<div>
|
||||
Welcome to the upgrade routine for {$this->product_name}. This wizard will guide you through the upgrade process.
|
||||
Âàñ ïðèâåòñòâóåò ìàñòåð îáíîâëåíèÿ {$this->product_name}. Îí ïîìîæåò âàì îáíîâèòü óñòàíîâëåííûé ïðîäóêò äî ïîñëåäíåé âåðñèè.
|
||||
</div>
|
||||
</div>
|
||||
<br/>{$extra}
|
||||
<h3>Verification Required - Please Log In</h3>
|
||||
You must log in with your forums administrative log in details to access the upgrade system.<br />
|
||||
<h3>Îáÿçàòåëüíàÿ ïðîâåðêà — àâòîðèçàöèÿ</h3>
|
||||
Äëÿ ðàáîòû ñ ìàñòåðîì âàì íåîáõîäèìî âîéòè â ñèñòåìó ïîä ó÷åòíîé çàïèñüþ ñ ïðàâàìè àäìèíèñòðàòîðà.<br />
|
||||
<br />
|
||||
<table width='100%' cellspacing='0' cellpadding='5' align='center' border='0'>
|
||||
<tr>
|
||||
<td width='40%' valign='middle'>Your Forum Username:</td>
|
||||
<td width='40%' valign='middle'>Âàø
|
||||
EOF;
|
||||
|
||||
if( $this->ipsclass->login_type == 'username' )
|
||||
{
|
||||
$output .= <<<EOF
|
||||
ëîãèí
|
||||
EOF;
|
||||
}
|
||||
else
|
||||
{
|
||||
$output .= <<<EOF
|
||||
e-mail
|
||||
EOF;
|
||||
}
|
||||
$output .= <<<EOF
|
||||
:</td>
|
||||
<td width='60%' valign='middle'><input type='text' style='width:100%' name='username' value='' class='sql_form'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width='40%' valign='middle'>Your Forum Password:</td>
|
||||
<td width='40%' valign='middle'>Âàø ïàðîëü:</td>
|
||||
<td width='60%' valign='middle'><input type='password' style='width:100%' name='password' value='' class='sql_form'></td>
|
||||
</tr>
|
||||
</table>
|
||||
EOF;
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------
|
||||
@@ -315,14 +335,15 @@ return <<<EOF
|
||||
<img src='images/wizard.gif' align='absmiddle' />
|
||||
</div>
|
||||
<div>
|
||||
Welcome to the upgrader for {$this->product_name}. This wizard will guide you through the upgrade process.
|
||||
Âàñ ïðèâåòñòâóåò ìàñòåð îáíîâëåíèÿ {$this->product_name}. Îí ïîìîæåò âàì îáíîâèòü óñòàíîâëåííûé ïðîäóêò äî ïîñëåäíåé âåðñèè.
|
||||
</div>
|
||||
</div>
|
||||
<br/>
|
||||
<h3>Upgrade summary</h3>
|
||||
Current version: $current_version.<br />
|
||||
This script will: $summary<br />
|
||||
<h3>Èíôîðìàöèÿ</h3>
|
||||
Òåêóùàÿ âåðñèÿ: $current_version.<br />
|
||||
Ìàñòåð îñóùåñòâèò $summary<br />
|
||||
<br />
|
||||
|
||||
EOF;
|
||||
}
|
||||
|
||||
@@ -343,7 +364,7 @@ check_eula = function()
|
||||
}
|
||||
else
|
||||
{
|
||||
alert( 'You must agree to the license before continuing' );
|
||||
alert( 'Âû äîëæíû ïðèíÿòü ïîëüçîâàòåëüñêîå ñîãëàøåíèå, ïðåæäå ÷åì ïðîäîëæèòü îáíîâëåíèå' );
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -352,13 +373,13 @@ document.getElementById( 'install-form' ).onsubmit = check_eula;
|
||||
|
||||
</script>
|
||||
|
||||
Please read and agree to the End User License Agreement before continuing.<br /><br />
|
||||
Ïîæàëóéñòà ïðî÷èòàéòå è ïðèìèòå ïîëüçîâàòåëüñêîå ñîãëàøåíèå.<br /><br />
|
||||
|
||||
|
||||
<div class='eula'>
|
||||
$eula
|
||||
</div>
|
||||
<input type='checkbox' name='eula' id='eula'><strong> I agree to the license agreement</strong>
|
||||
<input type='checkbox' name='eula' id='eula'><strong> ß ïðèíèìàþ</strong>
|
||||
|
||||
|
||||
EOF;
|
||||
@@ -368,23 +389,35 @@ EOF;
|
||||
// ------------------------------------------------------------
|
||||
// Install Page Splash Template
|
||||
// ------------------------------------------------------------
|
||||
function install_page()
|
||||
function install_page( $show_manual=0 )
|
||||
{
|
||||
return <<<EOF
|
||||
$output = "";
|
||||
|
||||
$output = <<<EOF
|
||||
<br />
|
||||
The upgrader is now ready to complete the upgrade of your {$this->product_name}. Click <strong>Start</strong> to
|
||||
begin the automatic process!<br /><br />
|
||||
Ìàñòåð ñîáðàë âñå äàííûå è ãîòîâ íà÷àòü îáíîâëåíèå {$this->product_name}. Íàæìèòå <strong>Çàïóñòèòü îáíîâëåíèå</strong> äëÿ çàïóñêà àâòîìàòè÷åñêîãî ïðîöåññà îáíîâëåíèÿ ïðîäóêòà!<br /><br />
|
||||
<ul id='links'>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <input type='checkbox' name='helpfile' id='helpfile' value='1' checked='checked' /> Update my help files if changes are found</li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <input type='checkbox' name='man' id='man' value='1' /> Show me manual upgrade steps for SQL queries to prevent timeouts</li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <input type='checkbox' name='helpfile' id='helpfile' value='1' checked='checked' /> Îáíîâèòü ðàçäåëû ïîìîùè, åñëè áóäóò íàéäåíû ðàçëè÷èÿ.</li>
|
||||
EOF;
|
||||
|
||||
if( $show_manual == 1 )
|
||||
{
|
||||
$output .= <<<EOF
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <input type='checkbox' name='man' id='man' value='1' /> Ïîêàçûâàòü SQL çàïðîñû äëÿ ðó÷íîãî îáíîâëåíèÿ (äëÿ áîëüøèõ ôîðóìîâ). <b>Âíèìàíèå:</b> âàì áóäåò íåîáõîäèìî âûïîëíèòü âñå SQL çàïðîñû, âûâîäèìûå ìàñòåðîì, â mysql shell (êîììàíäíîé ñòðîêå). Åñëè âû ïëîõî ïðåäñòàâëÿåòå ñåáå ÷òî ýòî, ïîæàëóéñòà îáðàòèòåñü â <a href="http://www.ibresource.ru/clientarea/" target="blank">íàøó ñëóæáó ïîääåðæêè</a>.</li>
|
||||
EOF;
|
||||
}
|
||||
|
||||
$output .= <<<EOF
|
||||
</ul>
|
||||
|
||||
<br /><br />
|
||||
|
||||
<div style='float: right'>
|
||||
<input type='submit' class='nav_button' value='Start upgrade...'>
|
||||
<input type='submit' class='nav_button' value='Çàïóñòèòü îáíîâëåíèå...'>
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------
|
||||
@@ -417,7 +450,7 @@ $HTML .= <<<EOF
|
||||
</ul>
|
||||
<br />
|
||||
<div style='float: right'>
|
||||
<input type='submit' class='nav_button' value='Click here if not forwarded' />
|
||||
<input type='submit' class='nav_button' value='Íàæìèòå ñþäà, åñëè âàñ íå ïåðåìåñòèëî àâòîìàòè÷åñêè' />
|
||||
</div>
|
||||
EOF;
|
||||
|
||||
@@ -454,20 +487,20 @@ EOF;
|
||||
function install_template_skinrevert( $skin_name="" )
|
||||
{
|
||||
$HTML = <<<EOF
|
||||
<br /><h3><b>Revert skin changes?</b></h3><br />
|
||||
During upgrades, there are often changes to the skin templates to fix bugs or add new features.<br /><br />
|
||||
If you do not revert changes you have made to your skin templates, you will not see the changes we have made, however if you have modified
|
||||
your skin templates reverting the skin changes will cause you to <i><b>lose</b></i> the customizations you have made.<br /><br />
|
||||
If you have not made many customizations to your skins, it is recommended that you choose to revert your skin changes.<br /><br />
|
||||
If you have custom skins installed, or have heavily modified your skin templates, it is recommended that you use the skin difference tool
|
||||
available in your admin control panel after the upgrade is complete to apply new changes to your templates instead.<br /><br />
|
||||
<br /><h3><b>Óäàëåíèå èçìåíåíèé â ñòèëÿõ</b></h3><br />
|
||||
Âî âðåìÿ îáíîâëåíèÿ ÷àñòî âîçíèêàåò íåîáõîäèìîñòü âíîñèòü èçìåíåíèÿ â øàáëîíû ñòèëÿ ÷òîáû èñïðàâèòü îøèáêè è äîáàâèòü íîâûå âîçìîæíîñòè.<br /><br />
|
||||
Åñëè âû íå çàõîòèòå óäàëÿòü èçìåíåíèÿ â øàáëîíàõ ñòèëÿ, ìàñòåð îáíîâëåíèÿ íå ñìîæåò âíåñòè èçìåíåíèÿ. Îäíàêî åñëè âû óäàëèòå èçìåíåíèÿ â ñòèëÿõ
|
||||
âû <i><b>ïîòåðÿåòå</b></i> âñþ ïðîäåëàííóþ ðàáîòó ïî èçìåíåíèþ ñòàíäàðòíîãî ñòèëÿ.<br /><br />
|
||||
Ïî-ýòîìó ìû ðåêîììåíäóåì âàì óäàëÿòü èçìåíåíèÿ â ñòèëå òîëüêî â òîì ñëó÷àå, åñëè èçìåíåíèé áûëî ìàëî. Åñëè æå ó âàñ ñîáñòâåííûé ñòèëü èëè áîëüøîå êîëè÷åñòâî
|
||||
èçìåíåíèé â øàáëîíàõ îò ìîäèôèêàöèé ìû ðåêîììåíäóåì îòêëþ÷èòü îïöèþ óäàëåíèÿ èçìåíåíèé è âîñïîëüçîâàòüñÿ èíñòðóìåíòîì ñðàâíåíèÿ ñòèëåé äëÿ äîáàâëåíèÿ èçìåíåíèé
|
||||
â ðó÷íóþ.<br /><br />
|
||||
|
||||
<h3>Do you wish to revert changes made to '<b>{$skin_name}</b>'?</h3>
|
||||
<h3>Âû æåëàåòå óäàëèòü èçìåíåíèÿ â øàáëîíàõ ñòèëÿ «<b>{$skin_name}</b>»?</h3>
|
||||
<ul id='links'>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <input type='radio' name='do' value='all' /> Revert changes to all of my skins</li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <input type='radio' name='do' value='1' /> Revert changes to '{$skin_name}'</li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <input type='radio' name='do' value='none' /> Do not revert changes to any of my skins</li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <input type='radio' name='do' value='0' /> Do not revert changes to '{$skin_name}'</li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <input type='radio' name='do' value='all' /> Óäàëèòü èçìåíåíèÿ â øàáëîíàõ âñåõ ñòèëåé</li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <input type='radio' name='do' value='1' /> Óäàëèòü èçìåíåíèÿ â øàáëîíàõ ñòèëÿ «{$skin_name}»</li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <input type='radio' name='do' value='none' /> Íå óäàëÿòü èçìåíåíèÿ â øàáëîíàõ âñåõ ñòèëåé</li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <input type='radio' name='do' value='0' /> Íå óäàëÿòü èçìåíåíèÿ â øàáëîíàõ ñòèëÿ «{$skin_name}»</li>
|
||||
</ul>
|
||||
EOF;
|
||||
|
||||
@@ -481,14 +514,18 @@ EOF;
|
||||
{
|
||||
$HTML .= <<<EOF
|
||||
<br />
|
||||
<img src='images/install_done.gif' align='absmiddle' /> <span class='done_text'>Upgrade complete!</span><br /><br />
|
||||
Congratulations, your <a href='$url'>{$this->product_name}</a> is now up to date and ready to use! Below are some
|
||||
links you may find useful.<br /><br /><br />
|
||||
<h3>Useful Links</h3>
|
||||
<img src='images/install_done.gif' align='absmiddle' /> <span class='done_text'>Îáíîâëåíèå çàâåðøåíî!</span><br /><br />
|
||||
Ïîçäðàâëÿåì, îáíîâëåíèå <a href='$url'>{$this->product_name}</a> çàâåðøåíî!<br /><br />
|
||||
Âû ñåé÷àñ äîëæíû çàéòè â àäìèíöåíòð è çàïóñòèòü óòèëèòû «Îáíîâëåíèå ñîäåðæèìîãî ñîîáùåíèé» è «Îáíîâëåíèå èíôîðìàöèè î ïðèêðåïëåííûõ ôàéëàõ» â ìåíþ ÍÀÑÒÐÎÉÊÈ -> Ïåðåñ÷åò è îáíîâëåíèå.
|
||||
Ïî æåëàíèþ âû òàêæå ìîæåòå çàïóñòèòü óòèëèòû ìåæäó 2.1 è 2.2 â ðàçäåëå «Èíñòðóìåíòû î÷èñòêè».
|
||||
<br /><br />Íèæå ïðèâåäåíû íåñêîëüêî ïîëåçíûõ ññûëîê, êîòîðûå ïîìîãóò â âàøåé ðàáîòå.<br /><br /><br />
|
||||
<h3>Ïîëåçíûå ññûëêè</h3>
|
||||
<ul id='links'>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <a href='http://www.invisionpower.com/landing/?p=clientarea'>Client area</a></li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <a href='http://www.invisionpower.com/landing/?p=docs-ipd'>Documentation</a></li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <a href='http://www.invisionpower.com/landing/?p=forums'>IPS Company Forum</a></li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <a href='http://external.iblink.ru/clientarea'>Êëèåíò-öåíòð</a></li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <a href='http://external.iblink.ru/docs-ipb'>Äîêóìåíòàöèÿ</a></li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <a href='http://www.ibresource.ru/forums/'>Ôîðóìû êîìïàíèè</a></li>
|
||||
<li><img src='images/link.gif' align='absmiddle' /> <a href='http://external.iblink.ru/wiki'>Invison Power Book</a></li>
|
||||
587 <li><img src='images/link.gif' align='absmiddle' /> <a href='http://external.ipslink.com/ipboard22/landing/?p=forums'>Ôîðóìû êîìïàíèè IPS</a></li>
|
||||
</ul>
|
||||
EOF;
|
||||
return $HTML;
|
||||
|
||||
Reference in new issue
Block a user