Version 3.2.3

This commit is contained in:
Neo committed 2025-12-19 00:34:03 -08:00
1 parent ae5c01cc78
commit 78706903a2
2641 files changed
+228363 -201264

No files matched your search

+1 -1
View File
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Installer: EULA file
* Last Updated: $LastChangedDate: 2010-06-16 11:21:04 -0400 (Wed, 16 Jun 2010) $
* Last Updated: $LastChangedDate: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author $Author: mark $
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 6541 $
* @link http://hatynka.in
* @version $Rev: 8644 $
*
*/
@@ -24,7 +24,7 @@ class install_address extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Installer: ADMIN file
* Last Updated: $LastChangedDate: 2010-01-15 10:18:44 -0500 (Fri, 15 Jan 2010) $
* Last Updated: $LastChangedDate: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author $Author: bfarber $
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 5713 $
* @link http://hatynka.in
* @version $Rev: 8644 $
*
*/
@@ -24,7 +24,7 @@ class install_admin extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Installer: EULA file
* Last Updated: $LastChangedDate: 2010-04-09 21:23:51 -0400 (Fri, 09 Apr 2010) $
* Last Updated: $LastChangedDate: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author $Author: bfarber $
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 6094 $
* @link http://hatynka.in
* @version $Rev: 8644 $
*
*/
@@ -24,7 +24,7 @@ class install_apps extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
@@ -101,7 +101,7 @@ class install_apps extends ipsCommand
// Get it!
//-----------------------------------------
if ( ! file_exists( IPS_ROOT_PATH . $_pBit . '/' . $file . '/xml/information.xml' ) )
if ( ! is_file( IPS_ROOT_PATH . $_pBit . '/' . $file . '/xml/information.xml' ) )
{
continue;
}
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Installer: EULA file
* Last Updated: $LastChangedDate: 2010-05-03 19:34:02 -0400 (Mon, 03 May 2010) $
* Last Updated: $LastChangedDate: 2011-09-16 15:32:18 -0400 (Fri, 16 Sep 2011) $
* </pre>
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 6205 $
* @link http://hatynka.in
* @version $Rev: 9503 $
*
*/
@@ -24,7 +24,7 @@ class install_db extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
@@ -43,11 +43,28 @@ class install_db extends ipsCommand
}
else
{
//-----------------------------------------
// Quick basic check for extensions
//-----------------------------------------
if( strtolower(IPSSetUp::getSavedData('sql_driver')) == 'mysql' )
{
if( !function_exists('mysqli_connect') AND !function_exists('mysql_connect') )
{
$this->registry->output->setTitle( "Databases: Error" );
$this->registry->output->setNextAction( 'db&do=check' );
$this->registry->output->addWarning( "You do not have the mysql or mysqli PHP extension installed. You must install one of these PHP extensions before you can continue." );
$this->registry->output->addContent( $this->fetchContent() );
$this->registry->output->sendOutput();
return;
}
}
//-----------------------------------------
// Load DB driver..
//-----------------------------------------
require_once( IPS_KERNEL_PATH . 'classDb' . ucwords( IPSSetUp::getSavedData('sql_driver') ) . '.php' );
require_once( IPS_KERNEL_PATH . 'classDb' . ucwords( IPSSetUp::getSavedData('sql_driver') ) . '.php' );/*noLibHook*/
$classname = "db_driver_".IPSSetUp::getSavedData('sql_driver');
@@ -63,9 +80,9 @@ class install_db extends ipsCommand
// Any "extra" configs required for this driver?
//--------------------------------------------------
if ( file_exists( IPS_ROOT_PATH . 'setup/sql/'.IPSSetUp::getSavedData('sql_driver').'_install.php' ) )
if ( is_file( IPS_ROOT_PATH . 'setup/sql/'.IPSSetUp::getSavedData('sql_driver').'_install.php' ) )
{
require_once( IPS_ROOT_PATH . 'setup/sql/'.IPSSetUp::getSavedData('sql_driver').'_install.php' );
require_once( IPS_ROOT_PATH . 'setup/sql/'.IPSSetUp::getSavedData('sql_driver').'_install.php' );/*noLibHook*/
$extra_install = new install_extra( $this->registry );
@@ -251,9 +268,9 @@ class install_db extends ipsCommand
$content = ( $check === FALSE ) ? $this->registry->output->template()->page_db() : $this->registry->output->template()->page_dbOverride();
/* Driver extras? */
if ( file_exists( IPS_ROOT_PATH . 'setup/sql/'.IPSSetUp::getSavedData('sql_driver').'_install.php' ) )
if ( is_file( IPS_ROOT_PATH . 'setup/sql/'.IPSSetUp::getSavedData('sql_driver').'_install.php' ) )
{
require_once( IPS_ROOT_PATH . 'setup/sql/'.IPSSetUp::getSavedData('sql_driver').'_install.php' );
require_once( IPS_ROOT_PATH . 'setup/sql/'.IPSSetUp::getSavedData('sql_driver').'_install.php' );/*noLibHook*/
$extra_install = new install_extra( $this->registry );
$content = str_replace( '<!--{EXTRA.SQL}-->', $extra_install->install_form_extra(), $content );
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Installer: EULA file
* Last Updated: $LastChangedDate: 2010-01-15 10:18:44 -0500 (Fri, 15 Jan 2010) $
* Last Updated: $LastChangedDate: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author $Author: bfarber $
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 5713 $
* @link http://hatynka.in
* @version $Rev: 8644 $
*
*/
@@ -24,7 +24,7 @@ class install_done extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Installer: EULA file
* Last Updated: $LastChangedDate: 2010-01-15 10:18:44 -0500 (Fri, 15 Jan 2010) $
* Last Updated: $LastChangedDate: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author $Author: bfarber $
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 5713 $
* @link http://hatynka.in
* @version $Rev: 8644 $
*
*/
@@ -24,7 +24,7 @@ class install_eula extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Installer: Index file
* Last Updated: $LastChangedDate: 2010-09-15 17:14:23 -0400 (Wed, 15 Sep 2010) $
* Last Updated: $LastChangedDate: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author $Author: terabyte $
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 6881 $
* @link http://hatynka.in
* @version $Rev: 8644 $
*
*/
@@ -24,7 +24,7 @@ class install_index extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
@@ -36,7 +36,7 @@ class install_index extends ipsCommand
/* Test Extensions */
$INSTALLDATA = array();
include( IPS_ROOT_PATH . 'setup/xml/requiredextensions.php' );
include( IPS_ROOT_PATH . 'setup/xml/requiredextensions.php' );/*noLibHook*/
if ( is_array( $INSTALLDATA ) && count( $INSTALLDATA ) )
{
@@ -69,7 +69,7 @@ class install_index extends ipsCommand
}
/* Check for conf_global.dist.php */
if ( file_exists( DOC_IPS_ROOT_PATH . 'conf_global.dist.php') AND ! file_exists( DOC_IPS_ROOT_PATH.'conf_global.php') )
if ( is_file( DOC_IPS_ROOT_PATH . 'conf_global.dist.php') AND ! is_file( DOC_IPS_ROOT_PATH.'conf_global.php') )
{
if ( ! @rename( DOC_IPS_ROOT_PATH.'conf_global.dist.php', DOC_IPS_ROOT_PATH.'conf_global.php' ) )
{
@@ -85,7 +85,7 @@ class install_index extends ipsCommand
$filesOK = FALSE;
/* Fetch core writeable files */
require_once( IPS_KERNEL_PATH . 'classXML.php' );
require_once( IPS_KERNEL_PATH . 'classXML.php' );/*noLibHook*/
$xml = new classXML( IPSSetUp::charSet );
try
@@ -104,7 +104,7 @@ class install_index extends ipsCommand
{
if ( $data['dir'] )
{
if ( ! @mkdir( $_path, 0777, TRUE ) )
if ( ! @mkdir( $_path, IPS_FOLDER_PERMISSION, TRUE ) )
{
$this->registry->output->addError( 'Директория "' . $data['path'] . '" не существует, создайте ее' );
}
@@ -117,7 +117,7 @@ class install_index extends ipsCommand
if ( ! is_writeable( $_path ) )
{
if ( ! @chmod( $_path, 0777 ) )
if ( ! @chmod( $_path, is_dir( $_path ) ? IPS_FOLDER_PERMISSION : IPS_FILE_PERMISSION ) )
{
if ( is_dir( $_path ) )
{
@@ -156,4 +156,4 @@ class install_index extends ipsCommand
$this->registry->output->addContent( $this->registry->output->template()->page_requirements( $filesOK, $extensionsOK, $extensionData ) );
$this->registry->output->sendOutput();
}
}
}
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Installer: EULA file
* Last Updated: $LastChangedDate: 2010-10-25 11:09:26 -0400 (Mon, 25 Oct 2010) $
* Last Updated: $LastChangedDate: 2011-09-26 16:02:02 -0400 (Mon, 26 Sep 2011) $
* </pre>
*
* @author $Author: mmecham $
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 7035 $
* @link http://hatynka.in
* @version $Rev: 9551 $
*
*/
@@ -52,7 +52,7 @@ class install_install extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
@@ -178,7 +178,7 @@ class install_install extends ipsCommand
// Check that it wrote
//-----------------------------------
if ( ! file_exists( IPSSetUp::getSavedData('install_dir') . '/conf_global.php' ) )
if ( ! is_file( IPSSetUp::getSavedData('install_dir') . '/conf_global.php' ) )
{
$this->registry->output->setTitle( "Установка: Ошибка" );
$this->registry->output->setNextAction( 'install&do=sql' );
@@ -191,9 +191,9 @@ class install_install extends ipsCommand
}
else
{
unset($INFO);
$INFO = array();
require( IPSSetUp::getSavedData('install_dir') . '/conf_global.php' );
require( IPSSetUp::getSavedData('install_dir') . '/conf_global.php' );/*noLibHook*/
if( ! $INFO['sql_driver'] )
{
@@ -231,10 +231,10 @@ class install_install extends ipsCommand
// Tables
//-----------------------------------------
if ( file_exists( $_FILE . '_tables.php' ) )
if ( is_file( $_FILE . '_tables.php' ) )
{
$TABLE = array();
include( $_FILE . '_tables.php' );
include( $_FILE . '_tables.php' );/*noLibHook*/
if ( is_array( $TABLE ) and count( $TABLE ) )
{
@@ -273,10 +273,10 @@ class install_install extends ipsCommand
if ( $this->DB->checkFulltextSupport() )
{
if ( file_exists( $_FILE . '_fulltext.php' ) )
if ( is_file( $_FILE . '_fulltext.php' ) )
{
$INDEX = array();
include( $_FILE . '_fulltext.php' );
include( $_FILE . '_fulltext.php' );/*noLibHook*/
$output[] = $next['title'] . ": Создание индексов";
@@ -317,10 +317,10 @@ class install_install extends ipsCommand
// INSERTS
//-----------------------------------------
if ( file_exists( $_FILE . '_inserts.php' ) )
if ( is_file( $_FILE . '_inserts.php' ) )
{
$INSERT = array();
include( $_FILE . '_inserts.php' );
include( $_FILE . '_inserts.php' );/*noLibHook*/
if ( is_array($INSERT) && count($INSERT) )
{
@@ -363,7 +363,7 @@ class install_install extends ipsCommand
if ( $next['key'] == 'core' )
{
$output[] = "Inserting groups information...";
$output[] = "Добавление информации о группах...";
$xml = new classXML( IPSSetUp::charSet );
if ( $extra_install AND method_exists( $extra_install, 'before_inserts_run' ) )
@@ -393,7 +393,7 @@ class install_install extends ipsCommand
$output = ( is_array( $output ) AND count( $output ) ) ? $output : array( 0 => $next['title'] . ": Наполнение таблиц завершено" );
$this->_finishStep( $output, "Install: SQL", 'install&do=sql&previous=' . $next['key'] );
$this->_finishStep( $output, "Установка: SQL", 'install&do=sql&previous=' . $next['key'] );
}
else
{
@@ -443,7 +443,7 @@ class install_install extends ipsCommand
$path = IPSLib::getAppDir( $next['key'] ) . '/setup/versions/install';
$id = ( $id < 1 ) ? 1 : $id;
if ( file_exists( $path . '/sql/' .$next['key'] . '_' . strtolower( IPSSetUp::getSavedData('sql_driver') ) . '_sql_' . $id .'.php' ) )
if ( is_file( $path . '/sql/' .$next['key'] . '_' . strtolower( IPSSetUp::getSavedData('sql_driver') ) . '_sql_' . $id .'.php' ) )
{
/* Set up DB driver */
$extra_install = $this->_setUpDBDriver( FALSE );
@@ -548,9 +548,9 @@ class install_install extends ipsCommand
$long_version = '10000';
$_versions = array();
if ( file_exists( $_PATH . 'versions.xml' ) )
if ( is_file( $_PATH . 'versions.xml' ) )
{
require_once( IPS_KERNEL_PATH . 'classXML.php' );
require_once( IPS_KERNEL_PATH . 'classXML.php' );/*noLibHook*/
$xml = new classXML( IPSSetUp::charSet );
$xml->load( $_PATH . 'versions.xml' );
@@ -569,7 +569,7 @@ class install_install extends ipsCommand
$long_version = $_this_version['long'];
}
if ( file_exists( $_PATH . 'information.xml' ) )
if ( is_file( $_PATH . 'information.xml' ) )
{
//-----------------------------------------
// Adjust the table?
@@ -590,22 +590,25 @@ class install_install extends ipsCommand
// Insert...
//-----------------------------------------
$this->DB->insert( 'core_applications', array( 'app_title' => $appData['name'],
'app_public_title' => ( $appData['public_name'] ) ? $appData['public_name'] : '', // Allow blank in case it's an admin-only app
'app_description' => $appData['description'],
'app_author' => $appData['author'],
'app_hide_tab' => intval($appData['hide_tab']),
'app_version' => $version,
'app_long_version' => $long_version,
'app_directory' => $next['key'],
'app_added' => time(),
'app_position' => $num,
'app_protected' => $_protected,
'app_location' => IPSLib::extractAppLocationKey( $next['key'] ),
'app_enabled' => ( $appData['disabledatinstall'] ) ? 0 : 1 ) );
$this->DB->insert( 'core_applications', array( 'app_title' => $appData['name'],
'app_public_title' => ( $appData['public_name'] ) ? $appData['public_name'] : '', // Allow blank in case it's an admin-only app
'app_description' => $appData['description'],
'app_author' => $appData['author'],
'app_hide_tab' => intval($appData['hide_tab']),
'app_version' => $version,
'app_long_version' => $long_version,
'app_directory' => $next['key'],
'app_added' => time(),
'app_position' => $num,
'app_protected' => $_protected,
'app_location' => IPSLib::extractAppLocationKey( $next['key'] ),
'app_enabled' => $appData['disabledatinstall'] ? 0 : 1,
'app_website' => $appData['website'],
'app_update_check' => $appData['update_check'],
'app_global_caches' => $appData['global_caches'],
) );
$this->DB->insert( 'upgrade_history', array(
'upgrade_version_id' => $long_version,
$this->DB->insert( 'upgrade_history', array('upgrade_version_id' => $long_version,
'upgrade_version_human' => $version,
'upgrade_date' => 0,
'upgrade_mid' => 0,
@@ -644,7 +647,7 @@ class install_install extends ipsCommand
/**
* Install Modules
*
* @return void
* @return @e void
*/
public function install_modules()
{
@@ -751,7 +754,7 @@ class install_install extends ipsCommand
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/xml/';
$knownSettings = array();
if ( file_exists( $_PATH . $next['key'] . '_settings.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_settings.xml' ) )
{
//-----------------------------------------
// Adjust the table?
@@ -766,8 +769,8 @@ class install_install extends ipsCommand
// Continue
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/tools/settings.php' );
$settings = new admin_core_tools_settings();
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/settings/settings.php' );/*noLibHook*/
$settings = new admin_core_settings_settings();
$settings->makeRegistryShortcuts( $this->registry );
$this->request['app_dir'] = $next['key'];
@@ -787,9 +790,9 @@ class install_install extends ipsCommand
}
/* Fetch known settings */
if ( file_exists( IPSLib::getAppDir( $next['key'] ) . '/setup/versions/install/knownSettings.php' ) )
if ( is_file( IPSLib::getAppDir( $next['key'] ) . '/setup/versions/install/knownSettings.php' ) )
{
require( IPSLib::getAppDir( $next['key'] ) . '/setup/versions/install/knownSettings.php' );
require( IPSLib::getAppDir( $next['key'] ) . '/setup/versions/install/knownSettings.php' );/*noLibHook*/
}
$this->request['app_dir'] = $next['key'];
@@ -857,7 +860,7 @@ class install_install extends ipsCommand
$output[] = "Добавление шаблонов стилей";
require_once( IPS_KERNEL_PATH . 'classXML.php' );
require_once( IPS_KERNEL_PATH . 'classXML.php' );/*noLibHook*/
$xml = new classXML( IPSSetUp::charSet );
//-----------------------------------------
@@ -870,7 +873,7 @@ class install_install extends ipsCommand
}
/* Skin Set Data */
$xml->load( IPS_PUBLIC_PATH . 'resources/skins/setsData.xml' );
$xml->load( IPS_ROOT_PATH . 'setup/xml/skins/setsData.xml' );
foreach( $xml->fetchElements( 'set' ) as $xmlelement )
{
@@ -893,9 +896,9 @@ class install_install extends ipsCommand
}
/* Load skin classes */
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinFunctions.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinCaching.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinImportExport.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinFunctions.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinCaching.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinImportExport.php' );/*noLibHook*/
$skinFunctions = new skinImportExport( $this->registry );
@@ -929,7 +932,7 @@ class install_install extends ipsCommand
$output[] = $next['title'] . ": Добавлены шаблоны {$skinData['set_name']}";
if ( file_exists( $_PATH . $next['key'] . '_' . $skinKey . '_templates.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_' . $skinKey . '_templates.xml' ) )
{
//-----------------------------------------
// Adjust the table?
@@ -958,7 +961,7 @@ class install_install extends ipsCommand
}
}
if ( file_exists( $_PATH . $next['key'] . '_' . $skinKey . '_css.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_' . $skinKey . '_css.xml' ) )
{
//-----------------------------------------
// Adjust the table?
@@ -1005,7 +1008,7 @@ class install_install extends ipsCommand
foreach( $skinSets as $skinKey => $skinData )
{
/* Replacements */
$skinFunctions->importReplacementsXMLArchive( file_get_contents( IPS_PUBLIC_PATH . 'resources/skins/replacements_' . $skinKey . '.xml' ), $skinKey );
$skinFunctions->importReplacementsXMLArchive( file_get_contents( IPS_ROOT_PATH . 'setup/xml/skins/replacements_' . $skinKey . '.xml' ), $skinKey );
}
$skinFunctions->rebuildSkinSetsCache();
@@ -1048,7 +1051,7 @@ class install_install extends ipsCommand
$output[] = $next['title'] . ": Добавление задач";
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/xml/';
if ( file_exists( $_PATH . $next['key'] . '_tasks.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_tasks.xml' ) )
{
//-----------------------------------------
// Adjust the table?
@@ -1063,7 +1066,7 @@ class install_install extends ipsCommand
// Continue
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/system/taskmanager.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/system/taskmanager.php' );/*noLibHook*/
$tasks = new admin_core_system_taskmanager();
$tasks->makeRegistryShortcuts( $this->registry );
@@ -1132,7 +1135,7 @@ class install_install extends ipsCommand
// Get the language stuff
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/languages/manage_languages.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/languages/manage_languages.php' );/*noLibHook*/
$lang = new admin_core_languages_manage_languages();
$lang->makeRegistryShortcuts( $this->registry );
@@ -1224,7 +1227,7 @@ class install_install extends ipsCommand
// Get the language stuff
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/languages/manage_languages.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/languages/manage_languages.php' );/*noLibHook*/
$lang = new admin_core_languages_manage_languages();
$lang->makeRegistryShortcuts( $this->registry );
@@ -1312,7 +1315,7 @@ class install_install extends ipsCommand
$output[] = $next['title'] . ": Добавление BB-кодов";
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/xml/';
if ( file_exists( $_PATH . $next['key'] . '_bbcode.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_bbcode.xml' ) )
{
//-----------------------------------------
// Adjust the table?
@@ -1327,11 +1330,16 @@ class install_install extends ipsCommand
// Continue
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/posts/bbcode.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/posts/bbcode.php' );/*noLibHook*/
$bbcode = new admin_core_posts_bbcode();
$bbcode->makeRegistryShortcuts( $this->registry );
$bbcode->bbcodeImportDo( file_get_contents( $_PATH . $next['key'] . '_bbcode.xml' ) );
$_contents = file_get_contents( $_PATH . $next['key'] . '_bbcode.xml' );
if( $_contents )
{
$bbcode->bbcodeImportDo( $_contents );
}
//-----------------------------------------
// Adjust the table?
@@ -1346,7 +1354,7 @@ class install_install extends ipsCommand
$output[] = $next['title'] . ": Добавление медиа тегов";
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/xml/';
if ( file_exists( $_PATH . $next['key'] . '_mediatag.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_mediatag.xml' ) )
{
//-----------------------------------------
// Adjust the table?
@@ -1361,7 +1369,7 @@ class install_install extends ipsCommand
// Continue
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/posts/media.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/posts/media.php' );/*noLibHook*/
$bbcode = new admin_core_posts_media();
$bbcode->makeRegistryShortcuts( $this->registry );
@@ -1417,7 +1425,7 @@ class install_install extends ipsCommand
/* Set up DB driver */
$extra_install = $this->_setUpDBDriver( FALSE );
require_once( IPS_KERNEL_PATH . 'classXML.php' );
require_once( IPS_KERNEL_PATH . 'classXML.php' );/*noLibHook*/
$xml = new classXML( IPSSetUp::charSet );
//-----------------------------------------
@@ -1429,7 +1437,7 @@ class install_install extends ipsCommand
$output[] = $next['title'] . ": Добавление разделов помощи";
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/xml/';
if ( file_exists( $_PATH . $next['key'] . '_help.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_help.xml' ) )
{
//-----------------------------------------
// Adjust the table?
@@ -1444,7 +1452,7 @@ class install_install extends ipsCommand
// Do it..
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/tools/help.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/tools/help.php' );/*noLibHook*/
$help = new admin_core_tools_help();
$help->makeRegistryShortcuts( $this->registry );
@@ -1511,7 +1519,7 @@ class install_install extends ipsCommand
$output[] = $next['title'] . ": Добавление модификаций";
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/xml/';
if ( file_exists( $_PATH . 'hooks.xml' ) )
if ( is_file( $_PATH . 'hooks.xml' ) )
{
//-----------------------------------------
// Adjust the table?
@@ -1526,7 +1534,7 @@ class install_install extends ipsCommand
// Continue
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/applications/hooks.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/applications/hooks.php' );/*noLibHook*/
$hooks = new admin_core_applications_hooks();
$hooks->makeRegistryShortcuts( $this->registry );
@@ -1552,7 +1560,7 @@ class install_install extends ipsCommand
}
else
{
require_once( IPS_KERNEL_PATH . 'classXML.php' );
require_once( IPS_KERNEL_PATH . 'classXML.php' );/*noLibHook*/
//-----------------------------------------
// ****** LOG IN MODULES
@@ -1607,7 +1615,7 @@ class install_install extends ipsCommand
$q = $extra_install->before_inserts_run( 'useragents' );
}
require_once( IPS_ROOT_PATH . 'sources/classes/useragents/userAgentFunctions.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/useragents/userAgentFunctions.php' );/*noLibHook*/
$userAgentFunctions = new userAgentFunctions( $this->registry );
$userAgentFunctions->rebuildMasterUserAgents();
@@ -1652,7 +1660,7 @@ class install_install extends ipsCommand
if( IPSLib::appIsInstalled('calendar') )
{
require_once( IPSLib::getAppDir('calendar') . '/modules_admin/calendar/calendars.php' );
require_once( IPSLib::getAppDir('calendar') . '/modules_admin/calendar/calendars.php' );/*noLibHook*/
$cal = new admin_calendar_calendar_calendars();
$cal->makeRegistryShortcuts( $this->registry );
@@ -1714,7 +1722,7 @@ class install_install extends ipsCommand
//-----------------------------------------
# Grab cache master file
require_once( IPS_ROOT_PATH . 'extensions/coreVariables.php' );
require_once( IPS_ROOT_PATH . 'extensions/coreVariables.php' );/*noLibHook*/
/* Add handle */
$_tmp = new coreVariables();
@@ -1755,6 +1763,41 @@ class install_install extends ipsCommand
ipsRegistry::cache()->setCache( 'systemvars', $cache, array( 'array' => 1 ) );
//-------------------------------------------------------------
// License Key
//-------------------------------------------------------------
if( ipsRegistry::$settings['ipb_reg_number'] )
{
$output[] = "Обновление информации о ключе лицензии...";
require_once( IPS_KERNEL_PATH . 'classFileManagement.php' );/*noLibHook*/
$this->classFileManagement = new classFileManagement();
/* Query the api */
$response = $this->classFileManagement->getFileContents( "http://myipb.in/license.php?lk=" . ipsRegistry::$settings['ipb_reg_number'] . "&url=" . ipsRegistry::$settings['board_url'] . "&flush=1" );
/* Get License Data */
$licenseData = json_decode( $response, true );
/* Copyright Removal? */
if ( $licenseData['cr'] )
{
IPSLib::updateSettings( array( 'ipb_copy_number' => $licenseData['cr'], 'ips_cp_purchase' => 1 ) );
}
elseif ( $this->settings['ips_cp_purchase'] )
{
IPSLib::updateSettings( array( 'ips_cp_purchase' => 0 ) );
}
/* Save to cache */
$licenseData['_cached_date'] = time();
$licenseData['key']['_expires'] = $licenseData['key']['_expires'] ? $licenseData['key']['_expires'] : 9999999999;
$licenseData['key']['expires'] = $licenseData['key']['expires'] ? $licenseData['key']['expires'] : 9999999999;
ipsRegistry::cache()->setCache( 'licenseData', $licenseData, array( 'array' => 1 ) );
}
//-------------------------------------------------------------
// Stats
//-------------------------------------------------------------
@@ -1787,9 +1830,9 @@ class install_install extends ipsCommand
//-----------------------------------------
/* Load skin classes */
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinFunctions.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinCaching.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinImportExport.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinFunctions.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinCaching.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinImportExport.php' );/*noLibHook*/
$skinFunctions = new skinImportExport( $this->registry );
@@ -1847,10 +1890,11 @@ class install_install extends ipsCommand
$output[] = "Кеш стиля обновлен";
/* Rebuild FURL cache */
/* Rebuild FURL & GLOBAL caches */
try
{
IPSLib::cacheFurlTemplates();
IPSLib::cacheGlobalCaches();
}
catch( Exception $error )
{
@@ -1865,7 +1909,7 @@ class install_install extends ipsCommand
{
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/extensions/';
if ( file_exists( $_PATH . 'coreVariables.php' ) )
if ( is_file( $_PATH . 'coreVariables.php' ) )
{
//-----------------------------------------
// Adjust the table?
@@ -1877,7 +1921,7 @@ class install_install extends ipsCommand
}
# Grab cache master file
require_once( $_PATH . 'coreVariables.php' );
require_once( $_PATH . 'coreVariables.php' );/*noLibHook*/
if ( is_array( $CACHE ) )
{
@@ -1924,7 +1968,7 @@ class install_install extends ipsCommand
*
* @access private
* @param bool Whether the DB driver returns with an error or not
* @return void
* @return @e void
*/
private function _setUpDBDriver( $returnDie=TRUE )
{
@@ -1934,9 +1978,9 @@ class install_install extends ipsCommand
// Any "extra" configs required for this driver?
//--------------------------------------------------
if ( file_exists( IPS_ROOT_PATH .'setup/sql/' . strtolower( IPSSetUp::getSavedData('sql_driver') ) . '_install.php' ) )
if ( is_file( IPS_ROOT_PATH .'setup/sql/' . strtolower( IPSSetUp::getSavedData('sql_driver') ) . '_install.php' ) )
{
require_once( IPS_ROOT_PATH .'setup/sql/' . strtolower( IPSSetUp::getSavedData('sql_driver') ) . '_install.php' );
require_once( IPS_ROOT_PATH .'setup/sql/' . strtolower( IPSSetUp::getSavedData('sql_driver') ) . '_install.php' );/*noLibHook*/
$extra_install = new install_extra( $this->registry );
}
@@ -1966,7 +2010,7 @@ class install_install extends ipsCommand
* @param string output
* @param string title
* @param string next step
* @return void
* @return @e void
*/
private function _finishStep( $output, $title, $nextStep )
{
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Installer: License Key
* Last Updated: $LastChangedDate: 2010-06-16 11:21:04 -0400 (Wed, 16 Jun 2010) $
* Last Updated: $LastChangedDate: 2011-08-30 20:24:16 -0400 (Tue, 30 Aug 2011) $
* </pre>
*
* @author $Author: mark $
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 6541 $
* @link http://hatynka.in
* @version $Rev: 9434 $
*
*/
@@ -24,20 +24,24 @@ class install_license extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
$lcheck = '';
if ( $this->request['do'] == 'check' )
{
$lcheck = $this->check();
if ( $lcheck === TRUE )
{
$this->registry->autoLoadNextAction( 'db' );
return;
}
}
$this->registry->output->setTitle( "Ключ лицензии" );
$this->registry->output->setNextAction( "license&do=check" );
$this->registry->output->addContent( $this->registry->output->template()->page_license( $lcheck ) );
$this->registry->output->sendOutput();
}
@@ -49,6 +53,22 @@ class install_license extends ipsCommand
*/
private function check()
{
return true;
$this->request['lkey'] = trim( $this->request['lkey'] );
// License key is optional
if( ! $this->request['lkey'] )
{
return true;
}
$url = IPSSetup::getSavedData( 'install_url' );
require_once( IPS_KERNEL_PATH . 'classFileManagement.php' );
$query = new classFileManagement();
$query->use_sockets = 1;
$response = $query->getFileContents( "http://myipb.in/license.php?api=activateKey&lk={$this->request['lkey']}&domain=".urlencode($url) );
$response = json_decode( $response, true );
IPSSetup::setSavedData( 'lkey', $this->request['lkey'] );
return TRUE;
}
}
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Installer: EULA file
* Last Updated: $LastChangedDate: 2010-10-19 11:43:08 -0400 (Tue, 19 Oct 2010) $
* Last Updated: $LastChangedDate: 2011-05-24 22:52:26 -0400 (Tue, 24 May 2011) $
* </pre>
*
* @author $Author: mark $
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 6996 $
* @link http://hatynka.in
* @version $Rev: 8886 $
*
*/
@@ -24,7 +24,7 @@ class upgrade_apps extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
@@ -95,10 +95,10 @@ class upgrade_apps extends ipsCommand
{
foreach( $data as $num )
{
if ( file_exists( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' ) )
if ( is_file( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' ) )
{
$_class = 'version_class_' . $num;
require_once( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' );
$_class = 'version_class_' . $app . '_' . $num;
require_once( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' );/*noLibHook*/
$_tmp = new $_class( $this->registry );
@@ -138,7 +138,7 @@ class upgrade_apps extends ipsCommand
/* Check Directory */
if ( ! is_array( $_POST['apps'] ) OR ! count( $_POST['apps'] ) )
{
$this->registry->output->addError( 'Необходмо выбрать приложения для обновления.' );
$this->registry->output->addWarning( 'Необходмо выбрать приложения для обновления.' );
}
else
{
@@ -148,8 +148,7 @@ class upgrade_apps extends ipsCommand
$_POST['apps']['forums'] = 1;
$_POST['apps']['members'] = 1;
$_POST['apps']['calendar'] = 1;
$_POST['apps']['portal'] = 1;
//$_POST['apps']['subscriptions'] = 1;
$_POST['apps']['chat'] = 1;
}
else
{
@@ -189,10 +188,10 @@ class upgrade_apps extends ipsCommand
{
foreach( $appClasses as $app => $data )
{
if ( file_exists( IPSLib::getAppDir( $app ) . '/setup/upgradeCheck.php' ) )
if ( is_file( IPSLib::getAppDir( $app ) . '/setup/upgradeCheck.php' ) )
{
$_class = $app . '_upgradeCheck';
require_once( IPSLib::getAppDir( $app ) . '/setup/upgradeCheck.php' );
require_once( IPSLib::getAppDir( $app ) . '/setup/upgradeCheck.php' );/*noLibHook*/
$requirements_class = new $_class();
if ( method_exists( $requirements_class, 'checkForProblems' ) )
@@ -208,10 +207,10 @@ class upgrade_apps extends ipsCommand
foreach( $data as $num )
{
if ( file_exists( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' ) )
if ( is_file( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' ) )
{
$_class = 'version_class_' . $num;
require_once( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' );
$_class = 'version_class_' . $app . '_' . $num;
require_once( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' );/*noLibHook*/
$_tmp = new $_class( $this->registry );
@@ -269,7 +268,7 @@ class upgrade_apps extends ipsCommand
// Get it!
//-----------------------------------------
if ( ! file_exists( IPS_ROOT_PATH . $_pBit . '/' . $file . '/xml/information.xml' ) )
if ( ! is_file( IPS_ROOT_PATH . $_pBit . '/' . $file . '/xml/information.xml' ) )
{
continue;
}
@@ -337,12 +336,14 @@ class upgrade_apps extends ipsCommand
{
foreach( $appClasses as $app => $data )
{
$notices[ $app ] = array();
foreach( $data as $num )
{
if ( file_exists( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' ) )
if ( is_file( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' ) )
{
$_class = 'version_class_' . $num;
require_once( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' );
$_class = 'version_class_' . $app . '_' . $num;
require_once( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' );/*noLibHook*/
$_tmp = new $_class( $this->registry );
@@ -352,7 +353,7 @@ class upgrade_apps extends ipsCommand
if ( $_t )
{
$notices[ $app ] = $_t;
$notices[ $app ] = array_merge( $_t, $notices[ $app ] );
}
}
}
@@ -364,8 +365,7 @@ class upgrade_apps extends ipsCommand
if ( IPSSetUp::is300plus() !== TRUE )
{
unset( $apps['ips']['calendar'] );
unset( $apps['ips']['portal'] );
unset( $apps['other']['subscriptions'] );
unset( $apps['ips']['chat'] );
}
/* Page Output */
@@ -5,10 +5,9 @@
* Upgrader: Database Convertion
*
* @author Tony
* @copyright (c) 2009 IBResource.ru
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package Invision Power Board
* @link http://www.invisionpower.com
* @link http://hatynka.in
*
*/
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Installer: DONE file
* Last Updated: $LastChangedDate: 2010-04-09 21:23:51 -0400 (Fri, 09 Apr 2010) $
* Last Updated: $LastChangedDate: 2011-05-24 15:40:20 -0400 (Tue, 24 May 2011) $
* </pre>
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 6094 $
* @link http://hatynka.in
* @version $Rev: 8884 $
*
*/
@@ -24,7 +24,7 @@ class upgrade_done extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
@@ -59,10 +59,10 @@ class upgrade_done extends ipsCommand
{
foreach( $data as $num )
{
if ( file_exists( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' ) )
if ( is_file( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' ) )
{
$_class = 'version_class_' . $num;
require_once( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' );
$_class = 'version_class_' . $app . '_' . $num;
require_once( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' );/*noLibHook*/
$_tmp = new $_class( $this->registry );
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Upgrader: Index file - Shows log in page
* Last Updated: $LastChangedDate: 2010-07-07 11:51:43 -0400 (Wed, 07 Jul 2010) $
* Last Updated: $LastChangedDate: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author $Author: matt $
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 6613 $
* @link http://hatynka.in
* @version $Rev: 8644 $
*
*/
@@ -23,7 +23,7 @@ class upgrade_index extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Installer: License Key
* Last Updated: $LastChangedDate: 2010-08-03 04:16:45 -0400 (Tue, 03 Aug 2010) $
* Last Updated: $LastChangedDate: 2011-05-26 15:04:51 -0400 (Thu, 26 May 2011) $
* </pre>
*
* @author $Author: mark $
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 6720 $
* @link http://hatynka.in
* @version $Rev: 8903 $
*
*/
@@ -24,7 +24,7 @@ class upgrade_license extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
@@ -35,15 +35,28 @@ class upgrade_license extends ipsCommand
return;
}
if ( $this->request['do'] == 'check' )
{
$lcheck = $this->check();
if ( $lcheck === TRUE )
{
$this->registry->autoLoadNextAction( 'upgrade' );
return;
}
}
else
{
$lcheck = $this->check( TRUE );
if ( $lcheck === TRUE )
{
$this->registry->autoLoadNextAction( 'upgrade' );
return;
}
}
$this->registry->output->setTitle( "Ключ лицензии" );
$this->registry->output->setNextAction( "license&do=check" );
$this->registry->output->addContent( $this->registry->output->template()->page_license( $lcheck ) );
$this->registry->output->sendOutput();
}
@@ -53,8 +66,23 @@ class upgrade_license extends ipsCommand
* @access public
* @return bool
*/
private function check()
private function check( $init=FALSE )
{
return true;
$this->request['lkey'] = ( $init ) ? ipsRegistry::$settings['ipb_reg_number'] : trim( $this->request['lkey'] );
if ( !$this->request['lkey'] and !$init )
{
return true;
}
$url = ipsRegistry::$settings['board_url'] ? ipsRegistry::$settings['board_url'] : ipsRegistry::$settings['base_url'];
require_once( IPS_KERNEL_PATH . 'classFileManagement.php' );/*noLibHook*/
$query = new classFileManagement();
$query->use_sockets = 1;
$response = $query->getFileContents( "http://myipb.in/license.php?api=activateKey&lk={$this->request['lkey']}&domain=".urlencode($url) );
$response = json_decode( $response, true );
IPSLib::updateSettings( array( 'ipb_reg_number' => $this->request['lkey'] ) );
return TRUE;
}
}
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Upgrader: Index file - Shows log in page
* Last Updated: $LastChangedDate: 2010-09-15 17:14:23 -0400 (Wed, 15 Sep 2010) $
* Last Updated: $LastChangedDate: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author $Author: terabyte $
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 6881 $
* @link http://hatynka.in
* @version $Rev: 8644 $
*
*/
@@ -23,7 +23,7 @@ class upgrade_overview extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
@@ -42,7 +42,7 @@ class upgrade_overview extends ipsCommand
/* Test Extensions */
$INSTALLDATA = array();
include( IPS_ROOT_PATH . 'setup/xml/requiredextensions.php' );
include( IPS_ROOT_PATH . 'setup/xml/requiredextensions.php' );/*noLibHook*/
if ( is_array( $INSTALLDATA ) && count( $INSTALLDATA ) )
{
@@ -80,7 +80,7 @@ class upgrade_overview extends ipsCommand
$filesOK = FALSE;
/* Fetch core writeable files */
require_once( IPS_KERNEL_PATH . 'classXML.php' );
require_once( IPS_KERNEL_PATH . 'classXML.php' );/*noLibHook*/
$xml = new classXML( IPSSetUp::charSet );
try
@@ -99,7 +99,7 @@ class upgrade_overview extends ipsCommand
{
if ( $data['dir'] )
{
if ( ! @mkdir( $_path, 0777, TRUE ) )
if ( ! @mkdir( $_path, IPS_FOLDER_PERMISSION, TRUE ) )
{
$this->registry->output->addError( 'Директория не существует: "' . $data['path'] . '". Пожалуйста, создайте ее' );
}
@@ -122,7 +122,7 @@ class upgrade_overview extends ipsCommand
continue;
}
if ( ! @chmod( $_path, 0777 ) )
if ( ! @chmod( $_path, is_dir( $_path ) ? IPS_FOLDER_PERMISSION : IPS_FILE_PERMISSION ) )
{
if ( is_dir( $_path ) )
{
@@ -2,17 +2,17 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Installer: Upgrader core file
* Last Updated: $LastChangedDate: 2010-09-15 17:14:23 -0400 (Wed, 15 Sep 2010) $
* Last Updated: $LastChangedDate: 2011-09-27 21:33:45 -0400 (Tue, 27 Sep 2011) $
* </pre>
*
* @author $Author: terabyte $
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 6881 $
* @link http://hatynka.in
* @version $Rev: 9556 $
*
*/
@@ -83,7 +83,7 @@ class upgrade_upgrade extends ipsCommand
*
* @access public
* @param object Registry object
* @return void
* @return @e void
*/
public function doExecute( ipsRegistry $registry )
{
@@ -262,9 +262,9 @@ class upgrade_upgrade extends ipsCommand
$file = IPSLib::getAppDir( $this->_currentApp ) . '/setup/versions/upg_' . $this->_uipLong . '/' . $this->_dbDriver . '_updates.php';
/* Get file */
if ( file_exists( $file ) )
if ( is_file( $file ) )
{
require( $file );
require( $file );/*noLibHook*/
if ( is_array( $SQL ) AND count( $SQL ) > 0 )
{
@@ -284,7 +284,7 @@ class upgrade_upgrade extends ipsCommand
{
if ( preg_match( "/^create table(.+?)/i", $q ) )
{
$q = preg_replace( "/^(.+?)\);$/is", "\\1) TYPE={$this->settings['mysql_tbl_type']};", $q );
$q = preg_replace( "/^(.+?)\);$/is", "\\1) ENGINE={$this->settings['mysql_tbl_type']};", $q );
}
}
@@ -386,11 +386,11 @@ class upgrade_upgrade extends ipsCommand
$fileLegacy = IPSLib::getAppDir( $this->_currentApp ) . '/setup/versions/upg_' . $this->_uipLong . '/version_upgrade_' . $this->_dbDriver . '.php';
/* Got any file? */
if ( file_exists( $fileNewer ) )
if ( is_file( $fileNewer ) )
{
$file = $fileNewer;
}
else if ( file_exists( $fileLegacy ) )
else if ( is_file( $fileLegacy ) )
{
$file = $fileLegacy;
}
@@ -398,7 +398,7 @@ class upgrade_upgrade extends ipsCommand
/* Do we have a file? */
if ( $file )
{
require_once( $file );
require_once( $file );/*noLibHook*/
$upgrade = new version_upgrade();
$result = $upgrade->doExecute( $this->registry );
@@ -454,7 +454,9 @@ class upgrade_upgrade extends ipsCommand
$_in = ( $this->_currentApp == 'core' ) ? "'core', 'forums', 'members'" : "'" . $this->_currentApp . "'";
$this->DB->update( 'core_applications', array( 'app_long_version' => $this->_uipLong,
'app_version' => $this->_uipHuman ), 'app_directory IN (' . $_in . ')' );
'app_version' => $this->_uipHuman,
'app_website' => $this->_appData['website'],
'app_update_check' => $this->_appData['update_check'] ), 'app_directory IN (' . $_in . ')' );
}
else
{
@@ -507,7 +509,9 @@ class upgrade_upgrade extends ipsCommand
$_in = ( $this->_currentApp == 'core' ) ? "'core', 'forums', 'members'" : "'" . $this->_currentApp . "'";
$this->DB->update( 'core_applications', array( 'app_long_version' => $this->_uipLong,
'app_version' => $this->_uipHuman ), 'app_directory IN (' . $_in . ')' );
'app_version' => $this->_uipHuman,
'app_website' => $this->_appData['website'],
'app_update_check' => $this->_appData['update_check'] ), 'app_directory IN (' . $_in . ')' );
}
else
{
@@ -612,9 +616,9 @@ class upgrade_upgrade extends ipsCommand
$output[] = $next['title'] . ": Обновление модулей";
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/xml/';
if ( file_exists( $_PATH . $next['key'] . '_modules.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_modules.xml' ) )
{
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/applications/applications.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/applications/applications.php' );/*noLibHook*/
$apps = new admin_core_applications_applications();
$apps->makeRegistryShortcuts( $this->registry );
@@ -668,14 +672,14 @@ class upgrade_upgrade extends ipsCommand
$output[] = $next['title'] . ": Обновление настроек";
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/xml/';
if ( file_exists( $_PATH . $next['key'] . '_settings.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_settings.xml' ) )
{
//-----------------------------------------
// Continue
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/tools/settings.php' );
$settings = new admin_core_tools_settings();
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/settings/settings.php' );/*noLibHook*/
$settings = new admin_core_settings_settings();
$settings->makeRegistryShortcuts( $this->registry );
$this->request['app_dir'] = $next['key'];
@@ -696,9 +700,9 @@ class upgrade_upgrade extends ipsCommand
/* Fetch known settings */
$knownSettings = array();
if ( file_exists( IPSLib::getAppDir( $next['key'] ) . '/setup/versions/install/knownSettings.php' ) )
if ( is_file( IPSLib::getAppDir( $next['key'] ) . '/setup/versions/install/knownSettings.php' ) )
{
require( IPSLib::getAppDir( $next['key'] ) . '/setup/versions/install/knownSettings.php' );
require( IPSLib::getAppDir( $next['key'] ) . '/setup/versions/install/knownSettings.php' );/*noLibHook*/
}
$settings->importAllSettings( 1, 1, $knownSettings );
@@ -737,9 +741,9 @@ class upgrade_upgrade extends ipsCommand
$previous = $_REQUEST['previous'];
if ( file_exists( IPS_ROOT_PATH .'setup/sql/' . strtolower( $this->registry->dbFunctions()->getDriverType() ) . '_install.php' ) )
if ( is_file( IPS_ROOT_PATH .'setup/sql/' . strtolower( $this->registry->dbFunctions()->getDriverType() ) . '_install.php' ) )
{
require_once( IPS_ROOT_PATH .'setup/sql/' . strtolower( $this->registry->dbFunctions()->getDriverType() ) . '_install.php' );
require_once( IPS_ROOT_PATH .'setup/sql/' . strtolower( $this->registry->dbFunctions()->getDriverType() ) . '_install.php' );/*noLibHook*/
$extra_install = new install_extra( $this->registry );
}
@@ -762,7 +766,7 @@ class upgrade_upgrade extends ipsCommand
$output[] = "Добавление шаблонов";
require_once( IPS_KERNEL_PATH . 'classXML.php' );
require_once( IPS_KERNEL_PATH . 'classXML.php' );/*noLibHook*/
$xml = new classXML( IPSSetUp::charSet );
//-----------------------------------------
@@ -775,7 +779,7 @@ class upgrade_upgrade extends ipsCommand
}
/* Skin Set Data */
$xml->load( IPS_PUBLIC_PATH . 'resources/skins/setsData.xml' );
$xml->load( IPS_ROOT_PATH . 'setup/xml/skins/setsData.xml' );
foreach( $xml->fetchElements( 'set' ) as $xmlelement )
{
@@ -795,9 +799,9 @@ class upgrade_upgrade extends ipsCommand
}
/* Load skin classes */
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinFunctions.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinCaching.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinImportExport.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinFunctions.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinCaching.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinImportExport.php' );/*noLibHook*/
$skinFunctions = new skinImportExport( $this->registry );
@@ -831,7 +835,7 @@ class upgrade_upgrade extends ipsCommand
$output[] = $next['title'] . ": Обновление шаблонов {$skinData['set_name']}";
if ( file_exists( $_PATH . $next['key'] . '_' . $skinKey . '_templates.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_' . $skinKey . '_templates.xml' ) )
{
//-----------------------------------------
// Install
@@ -842,7 +846,7 @@ class upgrade_upgrade extends ipsCommand
$output[] = $next['title'] . ": " . intval( $return['insertCount'] ) . " шаблонов добавлено";
}
if ( file_exists( $_PATH . $next['key'] . '_' . $skinKey . '_css.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_' . $skinKey . '_css.xml' ) )
{
//-----------------------------------------
// Install
@@ -871,12 +875,14 @@ class upgrade_upgrade extends ipsCommand
foreach( $skinSets as $skinKey => $skinData )
{
/* Replacements */
if ( file_exists( IPS_PUBLIC_PATH . 'resources/skins/replacements_' . $skinKey . '.xml' ) )
if ( is_file( IPS_ROOT_PATH . 'setup/xml/skins/replacements_' . $skinKey . '.xml' ) )
{
$skinFunctions->importReplacementsXMLArchive( file_get_contents( IPS_PUBLIC_PATH . 'resources/skins/replacements_' . $skinKey . '.xml' ), $skinKey );
$skinFunctions->importReplacementsXMLArchive( file_get_contents( IPS_ROOT_PATH . 'setup/xml/skins/replacements_' . $skinKey . '.xml' ), $skinKey );
}
}
$skinFunctions->rebuildMobileSkinUserAgentsFromSetDataXml();
$skinFunctions->rebuildSkinSetsCache();
$output[] = "Все шаблоны обновлены";
@@ -914,13 +920,13 @@ class upgrade_upgrade extends ipsCommand
$output[] = $next['title'] . ": Обновление задач";
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/xml/';
if ( file_exists( $_PATH . $next['key'] . '_tasks.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_tasks.xml' ) )
{
//-----------------------------------------
// Continue
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/system/taskmanager.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/system/taskmanager.php' );/*noLibHook*/
$tasks = new admin_core_system_taskmanager();
$tasks->makeRegistryShortcuts( $this->registry );
@@ -977,7 +983,7 @@ class upgrade_upgrade extends ipsCommand
// Get the language stuff
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/languages/manage_languages.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/languages/manage_languages.php' );/*noLibHook*/
$lang = new admin_core_languages_manage_languages();
$lang->makeRegistryShortcuts( $this->registry );
@@ -1054,7 +1060,7 @@ class upgrade_upgrade extends ipsCommand
// Get the language stuff
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/languages/manage_languages.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/languages/manage_languages.php' );/*noLibHook*/
$lang = new admin_core_languages_manage_languages();
$lang->makeRegistryShortcuts( $this->registry );
@@ -1076,7 +1082,7 @@ class upgrade_upgrade extends ipsCommand
//-----------------------------------------
$this->request['file_location'] = $_PATH . $f->getFileName();
$lang->imprtFromXML( true, true, true, $next['key'], false, 1 );
$lang->imprtFromXML( true, true, true, $next['key'], true, 1 );
}
}
} catch ( Exception $e ) {}
@@ -1127,29 +1133,34 @@ class upgrade_upgrade extends ipsCommand
$output[] = $next['title'] . ": Обновление BB-кодов";
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/xml/';
if ( file_exists( $_PATH . $next['key'] . '_bbcode.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_bbcode.xml' ) )
{
//-----------------------------------------
// Continue
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/posts/bbcode.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/posts/bbcode.php' );/*noLibHook*/
$bbcode = new admin_core_posts_bbcode();
$bbcode->makeRegistryShortcuts( $this->registry );
$bbcode->bbcodeImportDo( file_get_contents( $_PATH . $next['key'] . '_bbcode.xml' ) );
$_contents = file_get_contents( $_PATH . $next['key'] . '_bbcode.xml' );
if( $_contents )
{
$bbcode->bbcodeImportDo( $_contents );
}
}
$output[] = $next['title'] . ": Обновление медиа тегов";
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/xml/';
if ( file_exists( $_PATH . $next['key'] . '_mediatag.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_mediatag.xml' ) )
{
//-----------------------------------------
// Continue
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/posts/media.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/posts/media.php' );/*noLibHook*/
$bbcode = new admin_core_posts_media();
$bbcode->makeRegistryShortcuts( $this->registry );
@@ -1193,7 +1204,7 @@ class upgrade_upgrade extends ipsCommand
$next = IPSSetUp::fetchNextApplication( $previous, '{app}_help.xml', $this->settings['gb_char_set'] );
require_once( IPS_KERNEL_PATH . 'classXML.php' );
require_once( IPS_KERNEL_PATH . 'classXML.php' );/*noLibHook*/
$xml = new classXML( IPSSetUp::charSet );
//-----------------------------------------
@@ -1202,15 +1213,17 @@ class upgrade_upgrade extends ipsCommand
if ( $next['key'] )
{
$output[] = $next['title'] . ": Обновление разделов помощи";
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/xml/';
$output[] = $next['title'] . ": Upgrading Public Help...";
if ( file_exists( $_PATH . $next['key'] . '_help.xml' ) )
if ( is_file( $_PATH . $next['key'] . '_help.xml' ) )
{
//-----------------------------------------
// Do it..
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/tools/help.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/tools/help.php' );/*noLibHook*/
$help = new admin_core_tools_help();
$help->makeRegistryShortcuts( $this->registry );
@@ -1267,13 +1280,13 @@ class upgrade_upgrade extends ipsCommand
$output[] = $next['title'] . ": Обновление модификаций";
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/xml/';
if ( file_exists( $_PATH . 'hooks.xml' ) )
if ( is_file( $_PATH . 'hooks.xml' ) )
{
//-----------------------------------------
// Continue
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/applications/hooks.php' );
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/applications/hooks.php' );/*noLibHook*/
$hooks = new admin_core_applications_hooks();
$hooks->makeRegistryShortcuts( $this->registry );
@@ -1290,32 +1303,17 @@ class upgrade_upgrade extends ipsCommand
}
else
{
//-----------------------------------------
// ****** USER AGENTS
//-----------------------------------------
$output[] = "Добавление user-agent`ов по-умолчанию";
require_once( IPS_ROOT_PATH . 'sources/classes/useragents/userAgentFunctions.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/useragents/userAgentFunctions.php' );/*noLibHook*/
$userAgentFunctions = new userAgentFunctions( $this->registry );
$userAgentFunctions->rebuildMasterUserAgents();
//-----------------------------------------
// Build Calendar RSS
//-----------------------------------------
if( IPSLib::appIsInstalled('calendar') )
{
require_once( IPSLib::getAppDir('calendar') . '/modules_admin/calendar/calendars.php' );
$cal = new admin_calendar_calendar_calendars();
$cal->makeRegistryShortcuts( $this->registry );
$output[] = "Обновление RSS календаря";
$cal->calendarRSSCache();
}
//-----------------------------------------
// Next...
//-----------------------------------------
@@ -1353,11 +1351,11 @@ class upgrade_upgrade extends ipsCommand
{
$_PATH = IPSLib::getAppDir( $next['key'] ) . '/extensions/';
if ( file_exists( $_PATH . 'coreVariables.php' ) )
if ( is_file( $_PATH . 'coreVariables.php' ) )
{
# Grab cache master file
$CACHE = array();
require_once( $_PATH . 'coreVariables.php' );
require_once( $_PATH . 'coreVariables.php' );/*noLibHook*/
if ( is_array( $CACHE ) && count( $CACHE ) )
{
@@ -1396,7 +1394,7 @@ class upgrade_upgrade extends ipsCommand
//-----------------------------------------
# Grab cache master file
require_once( IPS_ROOT_PATH . 'extensions/coreVariables.php' );
require_once( IPS_ROOT_PATH . 'extensions/coreVariables.php' );/*noLibHook*/
/* Add handle */
$_tmp = new coreVariables();
@@ -1427,12 +1425,49 @@ class upgrade_upgrade extends ipsCommand
//-------------------------------------------------------------
$output[] = "Обновление кеша системных переменных";
$cache = array( 'mail_queue' => 0,
'task_next_run' => time() + 3600 );
$cache = ipsRegistry::cache()->getCache( 'systemvars' );
$cache['task_next_run'] = time() + 3600;
$cache['mail_queue'] = 0;
ipsRegistry::cache()->setCache( 'systemvars', $cache, array( 'array' => 1 ) );
//-------------------------------------------------------------
// License Key
//-------------------------------------------------------------
if( ipsRegistry::$settings['ipb_reg_number'] )
{
$output[] = "Обновление данных о лицензии...";
require_once( IPS_KERNEL_PATH . 'classFileManagement.php' );/*noLibHook*/
$this->classFileManagement = new classFileManagement();
/* Query the api */
$response = $this->classFileManagement->getFileContents( "http://myipb.in/license.php?lk=" . ipsRegistry::$settings['ipb_reg_number'] . "&url=" . ipsRegistry::$settings['board_url'] . "&flush=1" );
/* Get License Data */
$licenseData = json_decode( $response, true );
/* Copyright Removal? */
if ( $licenseData['cr'] )
{
IPSLib::updateSettings( array( 'ipb_copy_number' => $licenseData['cr'], 'ips_cp_purchase' => 1 ) );
}
elseif ( $this->settings['ips_cp_purchase'] )
{
IPSLib::updateSettings( array( 'ips_cp_purchase' => 0 ) );
}
/* Save to cache */
$licenseData['_cached_date'] = time();
$licenseData['key']['_expires'] = $licenseData['key']['_expires'] ? $licenseData['key']['_expires'] : 9999999999;
$licenseData['key']['expires'] = $licenseData['key']['expires'] ? $licenseData['key']['expires'] : 9999999999;
ipsRegistry::cache()->setCache( 'licenseData', $licenseData, array( 'array' => 1 ) );
}
$output[] = "Весь кеш обновлен";
$this->_finishStep( $output, "Обновление: Кеш", 'upgrade&do=templatecache' );
@@ -1468,9 +1503,9 @@ class upgrade_upgrade extends ipsCommand
//-----------------------------------------
/* Load skin classes */
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinFunctions.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinCaching.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinImportExport.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinFunctions.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinCaching.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinImportExport.php' );/*noLibHook*/
$skinFunctions = new skinImportExport( $this->registry );
@@ -1519,10 +1554,11 @@ class upgrade_upgrade extends ipsCommand
$skinFunctions->rebuildSkinSetsCache();
/* Rebuild FURL cache */
/* Rebuild FURL & GLOBAL caches */
try
{
IPSLib::cacheFurlTemplates();
IPSLib::cacheGlobalCaches();
}
catch( Exception $error )
{
@@ -1551,7 +1587,7 @@ class upgrade_upgrade extends ipsCommand
* @param string output
* @param string title
* @param string next step
* @return void
* @return @e void
*/
private function _finishStep( $output, $title, $nextStep )
{
+123
View File
@@ -0,0 +1,123 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.2.3
* Installer CLI Script
* Last Updated: $LastChangedDate: 2011-09-22 09:37:11 -0400 (Thu, 22 Sep 2011) $
* </pre>
*
* @author $Author: mark $
* @copyright © 2011 Invision Power Services, Inc.
* @license This is NULLED!
* @package IP.Board
* @link http://hatynka.in
* @version $Rev: 9537 $
*
*/
/**
* USAGE:
* php install.php [APPS] [DIRECTORY] [URL] [LICENSE_KEY] [MYSQL_HOST] [MYSQL_DATABASE] [MYSQL_USER] [MYSQL_PASS] [ACP_USER] [ACP_PASS] [ACP_EMAIL]
*/
//-----------------------------------------
// Checks
//-----------------------------------------
if ( !isset( $_SERVER['argv'] ) )
{
exit;
}
if ( file_exists( "../../../cache/installer_lock.php" ) )
{
exit;
}
//-----------------------------------------
// Init
//-----------------------------------------
error_reporting( ~E_NOTICE );
date_default_timezone_set( 'UTC' );
function my_getenv( $k ) { return $_SERVER[ $k ]; }
define( 'IPS_ROOT_PATH', "../../" );
define( 'DOC_IPS_ROOT_PATH', "../../../" );
define( 'IPS_KERNEL_PATH', "../../../ips_kernel/" );
define( 'IPB_VERSION', 0 );
define( 'IPB_LONG_VERSION', 0 );
define( 'IPS_IS_UPGRADER', FALSE );
define( 'IN_IPB', TRUE );
define( 'IN_ACP', TRUE );
define( 'PUBLIC_DIRECTORY', 'public' );
require_once( IPS_ROOT_PATH . 'setup/sources/base/ipsRegistry_setup.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'setup/sources/base/ipsController_setup.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'setup/sources/classes/output/output.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'setup/cli/output.php' );/*noLibHook*/
$steps = array(
1 => 'sql',
'sql_steps',
'applications',
'modules',
'settings',
'templates',
'tasks',
'languages',
'clientlanguages',
'bbcode',
'acphelp',
'other',
'caches'
);
ipsRegistry::init();
$registry = ipsRegistry::instance();
//-----------------------------------------
// Set Configuration
//-----------------------------------------
IPSSetUp::setSavedData('install_apps', $_SERVER['argv'][1] );
IPSSetUp::setSavedData('install_dir', $_SERVER['argv'][2] );
IPSSetUp::setSavedData('install_url', $_SERVER['argv'][3] );
IPSSetUp::setSavedData('lkey', $_SERVER['argv'][4] );
IPSSetUp::setSavedData('sql_driver', 'mysql' );
IPSSetUp::setSavedData('db_host', $_SERVER['argv'][5] );
IPSSetUp::setSavedData('db_name', $_SERVER['argv'][6] );
IPSSetUp::setSavedData('db_user', $_SERVER['argv'][7] );
IPSSetUp::setSavedData('db_pass', $_SERVER['argv'][8] );
IPSSetUp::setSavedData('db_pre' ,'' );
IPSSetUp::setSavedData('admin_user', $_SERVER['argv'][9] );
IPSSetUp::setSavedData('admin_pass', $_SERVER['argv'][10] );
IPSSetUp::setSavedData('admin_email', $_SERVER['argv'][11] );
/* Write it */
IPSInstall::writeConfiguration();
//-----------------------------------------
// Install
//-----------------------------------------
require_once( IPS_ROOT_PATH . 'setup/applications/install/sections/install.php' );/*noLibHook*/
$controller = new install_install();
$output = new CLIOutput( $steps, $controller );
$registry->setClass( 'output', $output );
$controller->makeRegistryShortcuts( $registry );
$output->setNextAction( 'do=sql' );
$output->sendOutput();
//-----------------------------------------
// Finished
//-----------------------------------------
file_get_contents( "http://myipb.in/license.php?a=activate&key={$_SERVER['argv'][4]}&url={$_SERVER['argv'][3]}&mod=install" );
file_put_contents( "../../../cache/installer_lock.php", "AUTOINSTALLED" );
echo "OK";
exit;
+65
View File
@@ -0,0 +1,65 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.2.3
* Setup CLI Script Overrider
* Last Updated: $LastChangedDate: 2011-09-22 09:37:11 -0400 (Thu, 22 Sep 2011) $
* </pre>
*
* @author $Author: mark $
* @copyright © 2011 Invision Power Services, Inc.
* @license This is NULLED!
* @package IP.Board
* @link http://hatynka.in
* @version $Rev: 9537 $
*
*/
class CLIOutput extends output
{
public $currentStep = 1;
public function __construct( $steps, $controller )
{
$this->steps = $steps;
$this->controller = $controller;
parent::__construct( ipsRegistry::instance(), FALSE );
}
public function setNextAction( $next )
{
$next = str_replace( '&amp;', '&', $next );
if ( substr( $next, 0, 8 ) == 'install&' )
{
$next = substr( $next, 8 );
}
$this->next = $next;
}
public function sendOutput( $saveData=TRUE )
{
if ( $this->next != 'done' )
{
parse_str( $this->next, $vars );
$_REQUEST = $vars;
$this->controller->request = $vars;
$this->controller->doExecute( ipsRegistry::instance() );
}
}
public function template()
{
return new CLIOutputTemplate();
}
}
class CLIOutputTemplate
{
public function __call( $name, $arguments )
{
return '';
}
}
+1 -1
View File
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
+1 -1
View File
@@ -6,6 +6,6 @@
You have reached this Page in error, please use
your back button to return to Invision Board.
<hr>
<a href="http://www.invisionboard.com/">Invision Power Board</a>
<a href="http://www.invisionpower.com">Invision Power Board</a>
</body>
</html>
+1 -1
View File
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
+2 -2
View File
@@ -208,12 +208,12 @@ TABLE {
.package {
clear:both;
height: 417px;
height: 577px;
}
.content_wrap {
width: 70%;
height: 320px;
height: 480px;
float: right;
margin: 6px 6px 4px 0px;
padding: 10px;
+1 -1
View File
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
+11 -13
View File
@@ -3,20 +3,20 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Static SETUP Classes for IP.Board 3
*
* These classes are not required as objects.
* Last Updated: $Date: 2010-05-05 09:11:48 -0400 (Wed, 05 May 2010) $
* Last Updated: $Date: 2011-07-11 18:25:07 -0400 (Mon, 11 Jul 2011) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 1st December 2008
* @version $Revision: 6221 $
* @version $Revision: 9199 $
*
*/
@@ -31,7 +31,7 @@ class IPSInstall
* Create admin account
*
* @access public
* @return void
* @return @e void
*/
static public function createAdminAccount()
{
@@ -58,8 +58,6 @@ class IPSInstall
'last_activity' => time(),
'ip_address' => my_getenv('REMOTE_ADDR'),
'view_sigs' => 1,
'view_img' => 1,
'view_avs' => 1,
'restrict_post' => 0,
'msg_show_notification' => 1,
'msg_count_total' => 0,
@@ -67,9 +65,9 @@ class IPSInstall
'coppa_user' => 0,
'language' => IPSLib::getDefaultLanguage(),
'members_auto_dst' => 1,
'members_editor_choice' => ipsRegistry::$settings['ips_default_editor'] ? ipsRegistry::$settings['ips_default_editor'] : 'std',
'members_editor_choice' => 'rte',
'member_uploader' => 'flash',
'allow_admin_mails' => 0,
'hide_email' => 1,
'members_pass_hash' => $passhash,
'members_pass_salt' => $salt,
'has_blog' => '',
@@ -84,7 +82,7 @@ class IPSInstall
);
/* Insert: MEMBERS */
ipsRegistry::DB()->force_data_type = array( 'name' => 'string', 'members_display_name' => 'string', 'members_l_username' => 'string', 'members_l_display_name' => 'string' );
ipsRegistry::DB()->setDataType( array( 'name', 'members_display_name', 'members_l_username', 'members_l_display_name' ), 'string' );
ipsRegistry::DB()->insert( 'members', $member );
@@ -92,7 +90,6 @@ class IPSInstall
$member['member_id'] = $member_id;
/* Insert into the custom profile fields DB */
ipsRegistry::DB()->force_data_type = array();
ipsRegistry::DB()->insert( 'pfields_content', array( 'member_id' => $member_id ) );
/* Insert into pp */
@@ -101,7 +98,8 @@ class IPSInstall
'pp_setting_count_friends' => 1,
'signature' => '',
'pconversation_filters' => '',
'pp_setting_count_comments' => 1 ) );
'pp_setting_count_comments' => 1,
'pp_setting_count_visitors' => 1 ) );
}
/**
@@ -3,18 +3,18 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* ipsController for setup
* Last Updated: $Date: 2010-09-15 17:14:23 -0400 (Wed, 15 Sep 2010) $
* Last Updated: $Date: 2011-09-22 09:37:11 -0400 (Thu, 22 Sep 2011) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 1st December 2008
* @version $Revision: 6881 $
* @version $Revision: 9537 $
*
*/
@@ -50,7 +50,7 @@ class ipsController
* Make us a singleton please
*
* @access private
* @return void
* @return @e void
*/
private function __construct() { }
@@ -58,7 +58,7 @@ class ipsController
* Public facing function to run the controller
*
* @access public
* @return void
* @return @e void
*/
static public function run()
{
@@ -71,7 +71,7 @@ class ipsController
* Initialize ipsRegistry and this class
*
* @access protected
* @return void
* @return @e void
*/
protected function init()
{
@@ -83,7 +83,7 @@ class ipsController
* Handle the incoming request using the command resolver
*
* @access protected
* @return void
* @return @e void
*/
protected function handleRequest()
{
@@ -131,7 +131,7 @@ class ipsController_CommandResolver
* Constructor
*
* @access public
* @return void
* @return @e void
*/
public function __construct()
{
@@ -158,7 +158,7 @@ class ipsController_CommandResolver
/* Got a section? */
if ( ! $section )
{
if ( file_exists( $filepath . 'index.php' ) )
if ( is_file( $filepath . 'index.php' ) )
{
$section = 'index';
}
@@ -166,14 +166,14 @@ class ipsController_CommandResolver
$classname = IPS_APP_COMPONENT . '_' . $section;
if ( file_exists( $filepath . 'manualResolver.php' ) )
if ( is_file( $filepath . 'manualResolver.php' ) )
{
require_once( $filepath . 'manualResolver.php' );
require_once( $filepath . 'manualResolver.php' );/*noLibHook*/
$classname = IPS_APP_COMPONENT . '_' . $module . '_manualResolver';
}
else if ( file_exists( $filepath . $section . '.php' ) )
else if ( is_file( $filepath . $section . '.php' ) )
{
require_once( $filepath . $section . '.php' );
require_once( $filepath . $section . '.php' );/*noLibHook*/
}
if ( class_exists( $classname ) )
@@ -207,17 +207,19 @@ abstract class ipsCommand
protected $registry;
protected $DB;
protected $settings;
protected $request;
public $request;
protected $lang;
protected $member;
protected $memberData;
protected $cache;
protected $caches;
/**#@-*/
/**
* Constructor override
*
* @access public
* @return void
* @return @e void
*/
final public function __construct()
{
@@ -228,7 +230,7 @@ abstract class ipsCommand
*
* @access public
* @param object ipsRegistry reference
* @return void
* @return @e void
*/
public function makeRegistryShortcuts( ipsRegistry $registry )
{
@@ -248,7 +250,7 @@ abstract class ipsCommand
*
* @access public
* @param object ipsRegistry reference
* @return void
* @return @e void
*/
public function execute( ipsRegistry $registry )
{
@@ -261,7 +263,7 @@ abstract class ipsCommand
*
* @access protected
* @param object ipsRegistry reference
* @return void
* @return @e void
*/
protected abstract function doExecute( ipsRegistry $registry );
}
@@ -274,7 +276,7 @@ class ipsCommand_default extends ipsCommand
*
* @access public
* @param object ipsRegistry reference
* @return void
* @return @e void
*/
protected function doExecute( ipsRegistry $registry )
{
@@ -285,7 +287,7 @@ class ipsCommand_default extends ipsCommand
// Uh oh, this is a big one.. (no forums app)
//-----------------------------------------
if ( ! file_exists( $filepath ) )
if ( ! is_file( $filepath ) )
{
print "Не найден файл команд " . ipsRegistry::$current_module;
exit();
@@ -3,18 +3,18 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Registry class for setup
* Last Updated: $Date: 2010-09-15 17:14:23 -0400 (Wed, 15 Sep 2010) $
* Last Updated: $Date: 2011-08-26 11:38:16 -0400 (Fri, 26 Aug 2011) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 1st December 2008
* @version $Revision: 6881 $
* @version $Revision: 9420 $
*
*/
@@ -171,7 +171,7 @@ class ipsRegistry
* Custom destructor
*
* @access public
* @return void
* @return @e void
*/
static public function __myDestruct()
{
@@ -188,7 +188,7 @@ class ipsRegistry
* Initiate the registry
*
* @access public
* @return void
* @return @e void
*/
public static function init()
{
@@ -198,15 +198,19 @@ class ipsRegistry
}
self::$initiated = TRUE;
/* Log current upgrade step */
self::logUpgradeStep();
/* Load static classes */
require IPS_ROOT_PATH . "sources/base/core.php";
require IPS_ROOT_PATH . "setup/sources/base/setup.php";
require( IPS_ROOT_PATH . "sources/base/core.php" );/*noLibHook*/
require( IPS_ROOT_PATH . "sources/base/ipsMember.php" );/*noLibHook*/
require( IPS_ROOT_PATH . "setup/sources/base/setup.php" );/*noLibHook*/
/* Load conf global and set up DB */
if ( IPS_IS_UPGRADER )
{
if ( ! file_exists( DOC_IPS_ROOT_PATH . "conf_global.php" ) )
if ( ! is_file( DOC_IPS_ROOT_PATH . "conf_global.php" ) )
{
print "Файл " . DOC_IPS_ROOT_PATH . "conf_global.php не найден!";
exit();
@@ -236,7 +240,7 @@ class ipsRegistry
define( 'IPS_CACHE_PATH', DOC_IPS_ROOT_PATH );
}
require IPS_ROOT_PATH . "setup/sources/base/install.php";
require IPS_ROOT_PATH . "setup/sources/base/install.php";/*noLibHook*/
}
/* Input set up... */
@@ -299,7 +303,7 @@ class ipsRegistry
$file = '1xx.php';
}
require_once( IPS_ROOT_PATH . 'setup/sources/legacy/' . $file );
require_once( IPS_ROOT_PATH . 'setup/sources/legacy/' . $file );/*noLibHook*/
self::instance()->setClass( 'legacy', new upgradeLegacy( self::instance() ) );
}
@@ -310,7 +314,7 @@ class ipsRegistry
IPSSetUp::thawSavedData();
/* Gather other classes */
require_once( IPS_ROOT_PATH . 'setup/sources/classes/output/output.php' );
require_once( IPS_ROOT_PATH . 'setup/sources/classes/output/output.php' );/*noLibHook*/
self::instance()->setClass( 'output', new output( self::instance(), TRUE ) );
@@ -339,7 +343,7 @@ class ipsRegistry
else
{
# Installer locked?
if ( file_exists( DOC_IPS_ROOT_PATH . 'cache/installer_lock.php' ) )
if ( is_file( DOC_IPS_ROOT_PATH . 'cache/installer_lock.php' ) )
{
self::getClass('output')->setTitle( "Установка: Ошибка" );
self::getClass('output')->setNextAction( '' );
@@ -349,20 +353,33 @@ class ipsRegistry
}
}
}
/**
* Log the step we are in the upgrade routine
*/
static public function logUpgradeStep()
{
$_log = date('r') . "\n";
$_log .= $_SERVER['REQUEST_URI'] . "\n";
$_filename = "UPGRADE_LOG_" . date('d_m_Y') . '.cgi';
file_put_contents( DOC_IPS_ROOT_PATH . 'cache/' . $_filename, $_log, FILE_APPEND );
}
/**
* Load conf_global
*
* @access public
* @return void
* @return @e void
*/
static public function loadConfGlobal()
{
/* Load config file */
if ( file_exists( DOC_IPS_ROOT_PATH . "conf_global.php" ) )
if ( is_file( DOC_IPS_ROOT_PATH . 'conf_global.php' ) )
{
$INFO = array();
require DOC_IPS_ROOT_PATH . "conf_global.php";
require( DOC_IPS_ROOT_PATH . 'conf_global.php' );/*noLibHook*/
if ( is_array( $INFO ) && count( $INFO ) )
{
@@ -378,7 +395,7 @@ class ipsRegistry
* Set database handle
*
* @access public
* @return void
* @return @e void
*/
static public function setDBHandle()
{
@@ -391,7 +408,7 @@ class ipsRegistry
*
* @access public
* @param string Section key
* @return void
* @return @e void
*/
static public function autoLoadNextAction( $section )
{
@@ -400,7 +417,7 @@ class ipsRegistry
$_class = IPS_APP_COMPONENT . '_' . $section;
require_once( IPS_ROOT_PATH . 'setup/applications/' . IPS_APP_COMPONENT . '/sections/' . $section . '.php' );
require_once( IPS_ROOT_PATH . 'setup/applications/' . IPS_APP_COMPONENT . '/sections/' . $section . '.php' );/*noLibHook*/
$action = new $_class();
$action->makeRegistryShortcuts( self::instance() );
$action->doExecute( self::instance() );
@@ -416,7 +433,7 @@ class ipsRegistry
static public function readGlobalConfig()
{
/* Fetch core writeable files */
require_once( IPS_KERNEL_PATH . 'classXML.php' );
require_once( IPS_KERNEL_PATH . 'classXML.php' );/*noLibHook*/
$xml = new classXML( IPSSetUp::charSet );
try
@@ -480,18 +497,50 @@ class ipsRegistry
return isset( self::$_config[ $key ] ) ? self::$_config[ $key ] : FALSE;
}
/**
* Grab the app class file
*
* @param string $app Application to check for app class
* @return mixed Null if invalid or no app passed, otherwise app class object
*/
public static function getAppClass( $app='' )
{
if( !$app OR !is_string($app) )
{
return null;
}
# Load app class
if ( ! isset( self::$app_class[ $app ] ) )
{
self::$app_class[ $app ] = null;
$_file = IPSLib::getAppDir( $app ) . '/app_class_' . $app . '.php';
$_name = 'app_class_' . $app;
if ( is_file( $_file ) )
{
$classToLoad = IPSLib::loadLibrary( $_file, $_name, $app );
self::$app_class[ $app ] = new $classToLoad( self::instance() );
}
}
return self::$app_class[ $app ];
}
/**
* Loads application's core variables (if required)
*
* @access public
* @param string App key (dir.. that's directory, not duuhr)
* @return void
* @return @e void
*/
static public function _loadCoreVariables()
{
if ( ! is_object( self::$_masterCoreVariables['__CLASS__'] ) )
{
require_once( IPS_ROOT_PATH . 'extensions/coreVariables.php' );
require_once( IPS_ROOT_PATH . 'extensions/coreVariables.php' );/*noLibHook*/
/* Add handle */
self::$_masterCoreVariables['__CLASS__'] = new coreVariables();
@@ -542,15 +591,15 @@ class ipsRegistry
*
* @access private
* @param string App key (dir.. that's directory, not duuhr)
* @return void
* @return @e void
*/
static private function _loadAppCoreVariables( $appDir )
{
if ( ! isset( self::$_coreVariables[ $appDir ] ) )
{
if( file_exists( IPSLib::getAppDir( $appDir ) . '/extensions/coreVariables.php' ) )
if( is_file( IPSLib::getAppDir( $appDir ) . '/extensions/coreVariables.php' ) )
{
require( IPSLib::getAppDir( $appDir ) . '/extensions/coreVariables.php' );
require( IPSLib::getAppDir( $appDir ) . '/extensions/coreVariables.php' );/*noLibHook*/
/* Add caches */
self::$_coreVariables[ $appDir ]['cache'] = is_array( $CACHE ) ? $CACHE : array();
@@ -589,7 +638,7 @@ class ipsRegistry
* @access public
* @param string Key
* @param object Value
* @return void
* @return @e void
*/
static public function setClass( $key='', $value='' )
{
@@ -632,24 +681,24 @@ class ipsRegistry
throw new Exception( "$key не является объектом" );
break;
case 'class_captcha':
require_once( IPS_KERNEL_PATH . 'classCaptcha.php' );
require_once( IPS_KERNEL_PATH . 'classCaptcha.php' );/*noLibHook*/
self::$classes['class_captcha'] = new classCaptcha( self::instance() );
break;
case 'templateEngine':
require_once( IPS_KERNEL_PATH . 'classTemplateEngine.php' );
require_once( IPS_KERNEL_PATH . 'classTemplateEngine.php' );/*noLibHook*/
self::$classes['templateEngine'] = new classTemplate( IPS_ROOT_PATH . 'sources/template_plugins' );
break;
case 'class_localization':
require_once( IPS_ROOT_PATH . 'sources/classes/class_localization.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/class_localization.php' );/*noLibHook*/
self::$classes['class_localization'] = new class_localization( self::instance() );
break;
case 'permissions':
require_once( IPS_ROOT_PATH . 'sources/classes/class_public_permissions.php' );
require_once( IPS_ROOT_PATH . 'sources/classes/class_public_permissions.php' );/*noLibHook*/
self::$classes['permissions'] = new classPublicPermissions( self::instance() );
break;
/* Yes I know this is forums app and not global, but it's still called so much this is a good idea */
case 'class_forums':
require_once( IPSLib::getAppDir( 'forums' ) . "/sources/classes/forums/class_forums.php" );
require_once( IPSLib::getAppDir( 'forums' ) . "/sources/classes/forums/class_forums.php" );/*noLibHook*/
self::$classes['class_forums'] = new class_forums( self::instance() );
self::$classes['class_forums']->strip_invisible = true;
self::$classes['class_forums']->forumsInit();
@@ -846,7 +895,7 @@ class ipsRegistry
* Check to see if we are initialized
*
* @access protected
* @return void
* @return @e void
*/
protected function checkForInit()
{
@@ -861,7 +910,7 @@ class ipsRegistry
/**
* Set up request redirect stuff
*
* @return void
* @return @e void
* @author MattMecham
* @access protected
*/
@@ -879,7 +928,7 @@ class ipsRegistry
/**
* Set up settings
*
* @return void
* @return @e void
* @author MattMecham
* @access protected
*/
@@ -957,7 +1006,7 @@ class ipsRegistry
/**
* Check caches
*
* @return void
* @return @e void
* @author MattMecham
* @access protected
*/
@@ -1000,13 +1049,49 @@ class ipsRegistry
}
}
}
$app_cache = self::$handles['caches']->getCache('app_cache');
//-----------------------------------------
// Build app data and APP specific load requests
//-----------------------------------------
if( is_array($app_cache) AND count($app_cache) )
{
foreach( $app_cache as $_app_dir => $_app_data )
{
if ( !IPS_IS_TASK AND ( IPS_AREA == 'public' && ! $_app_data['app_public_title'] ) )
{
continue;
}
$_app_data['app_public_title'] = ( $_app_data['app_public_title'] ) ? $_app_data['app_public_title'] : $_app_data['app_title'];
self::$applications[ $_app_dir ] = $_app_data;
}
}
/* Sort by position */
uasort( self::$applications, 'ipsRegistry::_appPositionSort' );
}
/**
* Sort by position
*
* @return integer
*/
protected static function _appPositionSort( $a, $b )
{
$a['app_position'] = ( isset( $a['app_position'] ) ) ? $a['app_position'] : 0;
$b['app_position'] = ( isset( $b['app_position'] ) ) ? $b['app_position'] : 0;
return ( $a['app_position'] > $b['app_position'] ) ? +1 : -1;
}
}
/**
* ips_base_Registry
*
**/
*/
abstract class ips_base_Registry
{
/**
@@ -1014,7 +1099,7 @@ abstract class ips_base_Registry
*
* @access protected
* @var array
**/
*/
protected $data_store = array();
/**
@@ -1025,7 +1110,7 @@ abstract class ips_base_Registry
* @access public
* @param mixed $key
* @return mixed
**/
*/
protected function get( $key )
{
if( isset( $this->data_store[ $key ] ) )
@@ -1047,7 +1132,7 @@ abstract class ips_base_Registry
* @param mixed $key
* @param mixed $val
* @return mixed
**/
*/
protected function set( $key, $val )
{
$this->data_store[ $key ] = $val;
@@ -1187,7 +1272,7 @@ class ips_DBRegistry extends ips_base_Registry
* @access public
* @param object $db_driver DB instance
* @param string $key Key of the db connection to check
* @return void
* @return @e void
*/
static function setDB( $db_driver, $key='' )
@@ -1200,7 +1285,7 @@ class ips_DBRegistry extends ips_base_Registry
/* Fix up settings */
if ( ! class_exists( 'dbMain' ) )
{
require_once ( IPS_KERNEL_PATH . 'classDb' . ucwords($db_driver) . ".php" );
require_once ( IPS_KERNEL_PATH . 'classDb' . ucwords($db_driver) . ".php" );/*noLibHook*/
}
$classname = "db_driver_" . $db_driver;
@@ -1290,7 +1375,7 @@ class ips_DBRegistry extends ips_base_Registry
IPSDebug::addMessage( "* Checking for query cache file: " . $file );
if ( file_exists( $file ) )
if ( is_file( $file ) )
{
self::getDB( $key )->loadCacheFile( $file, $class, TRUE );
return TRUE;
@@ -1409,7 +1494,7 @@ class ips_CacheRegistry extends ips_base_Registry
* Initialize class
*
* @access private
* @return void
* @return @e void
*/
private function init()
{
@@ -1423,8 +1508,8 @@ class ips_CacheRegistry extends ips_base_Registry
if( function_exists('eaccelerator_get') AND ipsRegistry::$settings['use_eaccelerator'] == 1 )
{
require IPS_KERNEL_PATH.'interfaces/interfaceCache.php';
require IPS_KERNEL_PATH.'classCacheEaccelerator.php';
require IPS_KERNEL_PATH.'interfaces/interfaceCache.php';/*noLibHook*/
require IPS_KERNEL_PATH.'classCacheEaccelerator.php';/*noLibHook*/
self::$cacheLib = new classCacheEaccelerator( ipsRegistry::$settings['board_url'] );
}
@@ -1434,8 +1519,8 @@ class ips_CacheRegistry extends ips_base_Registry
else if( function_exists('memcache_connect') AND ipsRegistry::$settings['use_memcache'] == 1 )
{
require IPS_KERNEL_PATH.'interfaces/interfaceCache.php';
require IPS_KERNEL_PATH.'classCacheMemcache.php';
require IPS_KERNEL_PATH.'interfaces/interfaceCache.php';/*noLibHook*/
require IPS_KERNEL_PATH.'classCacheMemcache.php';/*noLibHook*/
self::$cacheLib = new classCacheMemcache( ipsRegistry::$settings['board_url'], ipsRegistry::$settings );
}
@@ -1445,8 +1530,8 @@ class ips_CacheRegistry extends ips_base_Registry
else if( function_exists('xcache_get') AND ipsRegistry::$settings['use_xcache'] == 1 )
{
require IPS_KERNEL_PATH.'interfaces/interfaceCache.php';
require IPS_KERNEL_PATH.'classCacheXcache.php';
require IPS_KERNEL_PATH.'interfaces/interfaceCache.php';/*noLibHook*/
require IPS_KERNEL_PATH.'classCacheXcache.php';/*noLibHook*/
self::$cacheLib = new classCacheXcache( ipsRegistry::$settings['board_url'] );
}
@@ -1456,8 +1541,8 @@ class ips_CacheRegistry extends ips_base_Registry
else if( function_exists('apc_fetch') AND ipsRegistry::$settings['use_apc'] == 1 )
{
require IPS_KERNEL_PATH.'interfaces/interfaceCache.php';
require IPS_KERNEL_PATH.'classCacheApc.php';
require IPS_KERNEL_PATH.'interfaces/interfaceCache.php';/*noLibHook*/
require IPS_KERNEL_PATH.'classCacheApc.php';/*noLibHook*/
self::$cacheLib = new classCacheApc( ipsRegistry::$settings['board_url'] );
}
@@ -1467,8 +1552,8 @@ class ips_CacheRegistry extends ips_base_Registry
else if( ipsRegistry::$settings['use_diskcache'] == 1 )
{
require IPS_KERNEL_PATH.'interfaces/interfaceCache.php';
require IPS_KERNEL_PATH.'classCacheDiskcache.php';
require IPS_KERNEL_PATH.'interfaces/interfaceCache.php';/*noLibHook*/
require IPS_KERNEL_PATH.'classCacheDiskcache.php';/*noLibHook*/
self::$cacheLib = new classCacheDiskcache( ipsRegistry::$settings['board_url'] );
}
@@ -1617,7 +1702,7 @@ class ips_CacheRegistry extends ips_base_Registry
}
else
{
if ( strstr( $temp_cache[$key], "a:" ) )
if ( is_string($temp_cache[$key]) AND strstr( $temp_cache[$key], "a:" ) !== false )
{
self::instance()->data_store[ $key ] = unserialize( $temp_cache[$key] );
}
@@ -1700,7 +1785,7 @@ class ips_CacheRegistry extends ips_base_Registry
* @access protected
* @param string Cache Key
* @param mixed Cache value (typically an array)
* @return void
* @return @e void
*/
protected function cacheSet( $key, $val )
{
@@ -1738,7 +1823,7 @@ class ips_CacheRegistry extends ips_base_Registry
}
}
ipsRegistry::DB()->no_escape_fields['cs_key'] = 1;
ipsRegistry::DB()->preventAddSlashes( array( 'cs_key' => 1 ) );
if ( $this->save_options['donow'] )
{
@@ -1803,16 +1888,22 @@ class ips_CacheRegistry extends ips_base_Registry
{
if ( ! in_array( $key, array_keys( self::instance()->data_store ) ) )
{
if ( IPS_IS_UPGRADER )
{
self::_loadCaches( array( $key ) );
}
$cache = self::instance()->data_store[ $key ];
}
else
{
$cache = self::instance()->get( $key );
$cache = self::instance()->data_store[ $key ];
}
return $cache;
}
/**
* Fetch all the caches as a reference
*
@@ -1830,7 +1921,7 @@ class ips_CacheRegistry extends ips_base_Registry
* @access public
* @param string Cache key
* @param mixed Cache value
* @return void
* @return @e void
*/
static public function updateCacheWithoutSaving( $key, $value )
{
@@ -1877,86 +1968,81 @@ class ips_CacheRegistry extends ips_base_Registry
* @access public
* @param string Cache key
* @param string Application
* @return void
* @return @e void
*/
static public function rebuildCache( $key, $app='' )
{
$app = IPSText::alphanumericalClean( $app );
/* INIT */
$app = IPSText::alphanumericalClean( $app );
$_caches = array();
if( $app )
{
if ( $app == 'global' )
{
$CACHE = ipsRegistry::_fetchCoreVariables( 'cache' );
$_caches = ipsRegistry::_fetchCoreVariables( 'cache' );
}
else
{
$CACHE = ipsRegistry::_fetchAppCoreVariables( $app, 'cache' );
}
if ( $CACHE[ $key ] )
{
$file_to_check = $CACHE[ $key ]['recache_file'];
if ( $file_to_check AND is_file($file_to_check) AND file_exists( $file_to_check ) )
/* isset there is needed to prevent issues on applications installation */
if( isset( ipsRegistry::$applications[$app] ) && !IPSLib::appIsInstalled($app) )
{
$_class = $CACHE[ $key ]['recache_class'];
$_func = $CACHE[ $key ]['recache_function'];
require_once( $file_to_check );
if( class_exists( $_class ) )
{
$recache = new $_class( ipsRegistry::instance() );
if( method_exists( $recache, 'makeRegistryShortcuts' ) )
{
$recache->makeRegistryShortcuts( ipsRegistry::instance() );
}
$recache->$_func();
}
return;
}
$_caches = ipsRegistry::_fetchAppCoreVariables( $app, 'cache' );
}
}
else
{
try
/* Get all caches from all apps */
$_caches = ipsRegistry::_fetchCoreVariables( 'cache' );
foreach( ipsRegistry::$applications as $appDir => $appData )
{
foreach( new DirectoryIterator( IPS_ROOT_PATH . 'applications' ) as $application )
$CACHE = ipsRegistry::_fetchAppCoreVariables( $appDir, 'cache' );
if ( is_array( $CACHE ) )
{
if( $application->isDir() AND !$application->isDot() )
{
$CACHE = ipsRegistry::_fetchAppCoreVariables( IPS_APP_COMPONENT, 'cache' );
if ( is_array( $CACHE ) )
{
if ( $CACHE[ $key ] )
{
$file_to_check = $CACHE[ $key ]['recache_file'];
if ( $file_to_check AND file_exists( $file_to_check ) )
{
$_class = $CACHE[ $key ]['recache_class'];
$_func = $CACHE[ $key ]['recache_function'];
require_once( $file_to_check );
$recache = new $_class( ipsRegistry::instance() );
if( method_exists( $recache, 'makeRegistryShortcuts' ) )
{
$recache->makeRegistryShortcuts( ipsRegistry::instance() );
}
$recache->$_func();
}
break;
}
}
}
$_caches = array_merge( $_caches, $CACHE );
}
} catch ( Exception $e ) {}
}
}
/* Rebuild the cache, if found */
if( isset( $_caches[ $key ] ) )
{
$file_to_check = $_caches[ $key ]['recache_file'];
if ( $file_to_check AND is_file( $file_to_check ) )
{
$_func = $_caches[ $key ]['recache_function'];
/* Hackish way to check for action overloader */
if ( strpos( $file_to_check, '/modules_' ) !== FALSE )
{
$_class = IPSLib::loadActionOverloader( $file_to_check, $_caches[ $key ]['recache_class'] );
}
elseif ( $app )
{
$_class = IPSLib::loadLibrary( $file_to_check, $_caches[ $key ]['recache_class'], ($app == 'global') ? 'core' : $app );
}
/* Fallback */
if ( !$_class )
{
$_class = $_caches[ $key ]['recache_class'];
}
$recache = new $_class( ipsRegistry::instance() );
if( method_exists( $recache, 'makeRegistryShortcuts' ) )
{
$recache->makeRegistryShortcuts( ipsRegistry::instance() );
}
$recache->$_func();
}
}
}
}
@@ -2171,7 +2257,7 @@ class ips_MemberRegistry extends ips_base_Registry
* Destructor
*
* @access public
* @return void
* @return @e void
*/
public function __myDestruct()
{
@@ -2181,7 +2267,7 @@ class ips_MemberRegistry extends ips_base_Registry
* Our singleton INIT function
*
* @access protected
* @return void
* @return @e void
*/
protected static function init()
{
@@ -2195,12 +2281,7 @@ class ips_MemberRegistry extends ips_base_Registry
{
foreach( array_reverse( explode( ',', my_getenv('HTTP_X_FORWARDED_FOR') ) ) as $x_f )
{
$x_f = trim($x_f);
if ( preg_match( '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $x_f ) )
{
$addrs[] = $x_f;
}
$addrs[] = trim($x_f);
}
$addrs[] = my_getenv('HTTP_CLIENT_IP');
@@ -2216,16 +2297,24 @@ class ips_MemberRegistry extends ips_base_Registry
foreach ( $addrs as $ip )
{
if ( $ip )
//-----------------------------------------
// IP v4
//-----------------------------------------
if ( IPSLib::validateIPv4( $ip ) )
{
preg_match( "/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/", $ip, $match );
self::instance()->ip_address = $match[1].'.'.$match[2].'.'.$match[3].'.'.$match[4];
if ( self::instance()->ip_address AND self::instance()->ip_address != '...' )
{
break;
}
self::instance()->ip_address = $ip;
break;
}
//-----------------------------------------
// IP v6
//-----------------------------------------
else if ( IPSLib::validateIPv6( $ip ) )
{
self::instance()->ip_address = $ip;
break;
}
}
@@ -2233,7 +2322,7 @@ class ips_MemberRegistry extends ips_base_Registry
// Make sure we take a valid IP address
//-----------------------------------------
if ( ( ! self::instance()->ip_address OR self::instance()->ip_address == '...' ) AND ! isset( $_SERVER['SHELL'] ) AND $_SERVER['SESSIONNAME'] != 'Console' )
if ( !self::instance()->ip_address AND ! isset( $_SERVER['SHELL'] ) AND $_SERVER['SESSIONNAME'] != 'Console' )
{
print "Невозможно определить ваш IPv4 адрес";
exit();
@@ -2241,7 +2330,7 @@ class ips_MemberRegistry extends ips_base_Registry
if ( IPS_IS_UPGRADER )
{
require_once( IPS_ROOT_PATH . "setup/sources/classes/session/sessions.php" );
require_once( IPS_ROOT_PATH . "setup/sources/classes/session/sessions.php" );/*noLibHook*/
self::$session_class = new sessions();
}
@@ -2281,7 +2370,7 @@ class ips_MemberRegistry extends ips_base_Registry
* @access public
* @param string Key
* @param mixed Value
* @return void
* @return @e void
*/
static public function setProperty( $key, $value )
{
@@ -2300,11 +2389,10 @@ class ips_MemberRegistry extends ips_base_Registry
}
/**
* Set the current member
* Set current member to the member ID specified
*
* @access public
* @param int Member ID
* @return void
* @param integer Member ID
* @return @e void
*/
static public function setMember( $member_id )
{
@@ -2322,8 +2410,10 @@ class ips_MemberRegistry extends ips_base_Registry
if ( $member_id )
{
self::instance()->data_store = IPSMember::load( $member_id, 'extendedProfile,customFields,groups,itemMarkingStorage' );
}
if ( self::instance()->data_store['member_id'] )
/* Got a member ID? */
if ( !empty($member_id) && self::instance()->data_store['member_id'] )
{
self::setUpMember();
@@ -2334,22 +2424,11 @@ class ips_MemberRegistry extends ips_base_Registry
{
self::instance()->data_store = IPSMember::setUpGuest();
self::instance()->perm_id = ( isset(self::instance()->data_store['org_perm_id']) AND self::instance()->data_store['org_perm_id'] ) ? self::instance()->data_store['org_perm_id'] : self::instance()->data_store['g_perm_id'];
self::instance()->perm_id_array = explode( ",", self::instance()->perm_id );
# Form hash
self::instance()->form_hash = md5("этой строчки здесь нет");
}
}
else
{
self::instance()->data_store = IPSMember::setUpGuest();
self::instance()->perm_id = ( isset(self::instance()->data_store['org_perm_id']) AND self::instance()->data_store['org_perm_id'] ) ? self::instance()->data_store['org_perm_id'] : self::instance()->data_store['g_perm_id'];
self::instance()->perm_id_array = explode( ",", self::instance()->perm_id );
self::instance()->perm_id = !empty(self::instance()->data_store['org_perm_id']) ? self::instance()->data_store['org_perm_id'] : self::instance()->data_store['g_perm_id'];
self::instance()->perm_id_array = explode( ',', self::instance()->perm_id );
# Form hash
self::instance()->form_hash = md5("этой строчки здесь нет");
self::instance()->form_hash = md5("this is only here to prevent it breaking on guests");
}
//-----------------------------------------
@@ -2469,7 +2548,7 @@ class ips_MemberRegistry extends ips_base_Registry
* Set up a member
*
* @access private
* @return void
* @return @e void
*/
static public function setUpMember()
{
@@ -2494,4 +2573,4 @@ class ips_MemberRegistry extends ips_base_Registry
self::instance()->perm_id = ( isset(self::instance()->data_store['org_perm_id']) AND self::instance()->data_store['org_perm_id'] ) ? self::instance()->data_store['org_perm_id'] : self::instance()->data_store['g_perm_id'];
self::instance()->perm_id_array = explode( ",", self::instance()->perm_id );
}
}
}
+153 -107
View File
@@ -3,20 +3,20 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Static SETUP Classes for IP.Board 3
*
* These classes are not required as objects.
* Last Updated: $Date: 2010-11-15 11:39:10 -0500 (Mon, 15 Nov 2010) $
* Last Updated: $Date: 2011-10-12 12:19:44 -0400 (Wed, 12 Oct 2011) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 1st December 2008
* @version $Revision: 7185 $
* @version $Revision: 9605 $
*
*/
@@ -41,14 +41,7 @@ class IPSSetUp
* @var string
*/
const minDb_mysql = '4.1.0';
/**
* Min MSSQL Version
*
* @var string
*/
const minDb_mssql = '10.0.0';
/**
* Min PHP Version
*
@@ -62,15 +55,7 @@ class IPSSetUp
* @var string
*/
const prefDb_mysql = '5.0.0';
/**
* Min MSSQL Version
*
* @var string
*/
const prefDb_mssql = '10.0.0';
/**
* Doc Char Set
*
@@ -130,13 +115,51 @@ class IPSSetUp
*/
static public function is200plus()
{
//-----------------------------------------
// Check for cached value first
//-----------------------------------------
if( defined('MAX_UPGRADE_VERSION_ID') )
{
if( MAX_UPGRADE_VERSION_ID < 20000 )
{
return FALSE;
}
else
{
return TRUE;
}
}
if ( ipsRegistry::DB()->checkForField( 'upgrade_id', 'upgrade_history' ) )
{
/* Now, this table is created in the first step between 1.3 and 2.0, so check for contents */
$test = ipsRegistry::DB()->buildAndFetch( array( 'select' => 'MAX(upgrade_version_id) as max',
'from' => 'upgrade_history' ) );
if ( $test['max'] < 20000 )
if( $test['max'] )
{
$key = $test['max'];
}
else
{
if ( self::is130plus() === TRUE )
{
$key = '10003';
}
else if ( self::is120plus() === TRUE )
{
$key = '10002';
}
else
{
$key = '10001';
}
}
define( 'MAX_UPGRADE_VERSION_ID', $key );
if ( $key < 20000 )
{
return FALSE;
}
@@ -300,10 +323,10 @@ class IPSSetUp
{
foreach( $data as $num )
{
if ( file_exists( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' ) )
if ( is_file( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' ) )
{
$_class = 'version_class_' . $num;
require_once( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' );
$_class = 'version_class_' . $app . '_' . $num;
require_once( IPSLib::getAppDir( $app ) . '/setup/versions/upg_' . $num . '/version_class.php' );/*noLibHook*/
$_tmp = new $_class( ipsRegistry::instance() );
@@ -458,7 +481,7 @@ class IPSSetUp
/* Try and write the file */
if ( $sqlData AND @file_put_contents( $fileName, str_replace( "\n\n", "\n", $sqlData ) ) )
{
@chmod( $fileName, 0777 );
@chmod( $fileName, IPS_FILE_PERMISSION );
return $fileName;
}
else
@@ -498,6 +521,7 @@ class IPSSetUp
* @access public
* @param string SQL Query
* @param string SQL Prefix
* @todo We're not using MSSQL anymore, we should remove those preg_replace at some point or do we leave them if someone else writes MSSQL drivers?
*/
static public function addPrefixToQuery( $query, $prefix )
{
@@ -506,7 +530,9 @@ class IPSSetUp
/* Remove default ibf_ from < 3.0.0 files */
if ( strstr( $query, 'ibf' ) )
{
$query = preg_replace("/\sibf_(\S+?)([\s\.,]|$)/", " \\1\\2", $query);
// This strips the prefix (if it's ibf_) even when we manually add it. I checked and none of the previous upgrade routines have 'ibf_' hardcoded in them
// so we need to not strip it automatically here otherwise anyone with ibf_ prefix will have issues.
//$query = preg_replace("/\sibf_(\S+?)([\s\.,]|$)/", " \\1\\2", $query);
}
$query = preg_replace( "#^CREATE TABLE(?:\s+?)?(\S+)#is" , "CREATE TABLE " . $prefix."\\1 ", $query );
@@ -515,6 +541,7 @@ class IPSSetUp
$query = preg_replace( "#^TRUNCATE TABLE(?:\s+?)?(\S+)(\s+?)?#i", "TRUNCATE TABLE ". $prefix."\\1 ", $query );
$query = preg_replace( "#^DELETE FROM(?:\s+?)?(\S+)(\s+?)?#i" , "DELETE FROM " . $prefix."\\1 ", $query );
$query = preg_replace( "#^INSERT INTO(?:\s+?)?(\S+)\s+?#i" , "INSERT INTO " . $prefix."\\1 ", $query );
//$query = preg_replace( "#^INSERT IGNORE INTO(?:\s+?)?(\S+)\s+?#i", "INSERT IGNORE INTO " . $prefix."\\1 ", $query );
$query = preg_replace( "#^UPDATE(?:\s+?)?(\S+)\s+?#i" , "UPDATE " . $prefix."\\1 ", $query );
$query = preg_replace( "#^REPLACE INTO(?:\s+?)?(\S+)\s+?#i" , "REPLACE INTO " . $prefix."\\1 ", $query );
$query = preg_replace( "#^ALTER TABLE(?:\s+?)?(\S+)\s+?#i" , "ALTER TABLE " . $prefix."\\1 ", $query );
@@ -607,7 +634,7 @@ class IPSSetUp
if ( $tmp > $from AND $tmp <= $to )
{
if ( file_exists( IPSLib::getAppDir( $app ) . '/setup/versions/' . $file . '/version_class.php' ) )
if ( is_file( IPSLib::getAppDir( $app ) . '/setup/versions/' . $file . '/version_class.php' ) )
{
$classes[] = $tmp;
}
@@ -653,6 +680,7 @@ class IPSSetUp
$DBVersions = self::fetchDbAppVersions( $app );
$tmp = $DBVersions;
$key = array_pop( $tmp );
$coreApps = array( 'calendar', 'core' );
if ( ! $key OR ! count( $DBVersions ) )
{
@@ -664,13 +692,19 @@ class IPSSetUp
$key = intval( $_version['app_long_version'] );
}
else
else if( in_array( $app, $coreApps ) )
{
if ( ipsRegistry::DB()->checkForField( 'upgrade_id', 'upgrade_history' ) )
if( defined('MAX_UPGRADE_VERSION_ID') )
{
$key = MAX_UPGRADE_VERSION_ID;
}
else if ( ipsRegistry::DB()->checkForField( 'upgrade_id', 'upgrade_history' ) )
{
/* Now, this table is created in the first step between 1.3 and 2.0, so check for contents */
$test = ipsRegistry::DB()->buildAndFetch( array( 'select' => 'MAX(upgrade_version_id) as max', 'from' => 'upgrade_history' ) );
define( 'MAX_UPGRADE_VERSION_ID', $test['max'] );
$key = ( $test['max'] ) ? $test['max'] : '10003';
}
else if ( self::is130plus() === TRUE )
@@ -686,69 +720,72 @@ class IPSSetUp
$key = '10001';
}
}
/* Blog Version Check */
if( $app == 'blog' )
if ( !$key )
{
if ( ipsRegistry::DB()->checkForField( 'blog_upgrade_id', 'blog_upgrade_history' ) )
/* Blog Version Check */
if( $app == 'blog' )
{
$test = ipsRegistry::DB()->buildAndFetch( array( 'select' => 'MAX(blog_version_id) as max', 'from' => 'blog_upgrade_history' ) );
$key = ( $test['max'] ) ? $test['max'] : $key;
if ( ipsRegistry::DB()->checkForField( 'blog_upgrade_id', 'blog_upgrade_history' ) )
{
$test = ipsRegistry::DB()->buildAndFetch( array( 'select' => 'MAX(blog_version_id) as max', 'from' => 'blog_upgrade_history' ) );
$key = ( $test['max'] ) ? $test['max'] : $key;
}
else
{
$key = 0;
}
}
else
/* Gallery Version Check */
else if( $app == 'gallery' )
{
$key = 0;
if ( ipsRegistry::DB()->checkForField( 'gallery_upgrade_id', 'gallery_upgrade_history' ) )
{
$test = ipsRegistry::DB()->buildAndFetch( array( 'select' => 'MAX(gallery_version_id) as max', 'from' => 'gallery_upgrade_history' ) );
$key = ( $test['max'] ) ? $test['max'] : $key;
}
else
{
$key = 0;
}
}
}
/* Gallery Version Check */
else if( $app == 'gallery' )
{
if ( ipsRegistry::DB()->checkForField( 'gallery_upgrade_id', 'gallery_upgrade_history' ) )
else if( $app == 'downloads' )
{
$test = ipsRegistry::DB()->buildAndFetch( array( 'select' => 'MAX(gallery_version_id) as max', 'from' => 'gallery_upgrade_history' ) );
$key = ( $test['max'] ) ? $test['max'] : $key;
if ( ipsRegistry::DB()->checkForField( 'idm_upgrade_id', 'idm_upgrade_history' ) )
{
$test = ipsRegistry::DB()->buildAndFetch( array( 'select' => 'MAX(idm_version_id) as max', 'from' => 'idm_upgrade_history' ) );
$key = ( $test['max'] ) ? $test['max'] : $key;
}
else
{
$key = 0;
}
}
else
else if( $app == 'ipchat' )
{
$key = 0;
if ( ipsRegistry::DB()->checkForTable( 'chat_log_archive' ) )
{
$_a = array_keys( $XMLVersions );
$a = array_shift( $_a );
$key = ( $a ) ? $a : '11005';
}
else
{
$key = 0;
}
}
}
else if( $app == 'downloads' )
{
if ( ipsRegistry::DB()->checkForField( 'idm_upgrade_id', 'idm_upgrade_history' ) )
else if( $app == 'ccs' )
{
$test = ipsRegistry::DB()->buildAndFetch( array( 'select' => 'MAX(idm_version_id) as max', 'from' => 'idm_upgrade_history' ) );
$key = ( $test['max'] ) ? $test['max'] : $key;
}
else
{
$key = 0;
}
}
else if( $app == 'ipchat' )
{
if ( ipsRegistry::DB()->checkForTable( 'chat_log_archive' ) )
{
$_a = array_keys( $XMLVersions );
$a = array_shift( $_a );
$key = ( $a ) ? $a : '11005';
}
else
{
$key = 0;
}
}
else if( $app == 'ccs' )
{
if ( ipsRegistry::DB()->checkForTable( 'ccs_pages' ) )
{
$_a = array_keys( $XMLVersions );
$a = array_shift( $_a );
$key = ( $a ) ? $a : '20006';
}
else
{
$key = 0;
if ( ipsRegistry::DB()->checkForTable( 'ccs_pages' ) )
{
$_a = array_keys( $XMLVersions );
$a = array_shift( $_a );
$key = ( $a ) ? $a : '20006';
}
else
{
$key = 0;
}
}
}
}
@@ -911,12 +948,12 @@ class IPSSetUp
$versions = array();
/* Fetch core writeable files */
require_once( IPS_KERNEL_PATH . 'classXML.php' );
require_once( IPS_KERNEL_PATH . 'classXML.php' );/*noLibHook*/
$xml = new classXML( IPSSetUp::charSet );
try
{
if( !file_exists( IPSLib::getAppDir( $app ) . '/xml/versions.xml' ) )
if( !is_file( IPSLib::getAppDir( $app ) . '/xml/versions.xml' ) )
{
return false;
}
@@ -991,7 +1028,7 @@ class IPSSetUp
{
$_xmlFileSearch = str_replace( '{app}', $_app, $xmlFileSearch );
if ( ! file_exists( IPSLib::getAppDir( $_app ) . '/xml/' . $_xmlFileSearch ) )
if ( ! is_file( IPSLib::getAppDir( $_app ) . '/xml/' . $_xmlFileSearch ) )
{
continue;
}
@@ -1039,9 +1076,9 @@ class IPSSetUp
/**
* Custom error checker routine...
*/
if( file_exists( IPSLib::getAppDir( $app ) . '/setup/versions/install/installCheck.php' ) )
if( is_file( IPSLib::getAppDir( $app ) . '/setup/versions/install/installCheck.php' ) )
{
require_once( IPSLib::getAppDir( $app ) . '/setup/versions/install/installCheck.php' );
require_once( IPSLib::getAppDir( $app ) . '/setup/versions/install/installCheck.php' );/*noLibHook*/
$checkerClass = $app . '_installCheck';
if( class_exists($checkerClass) )
@@ -1052,13 +1089,13 @@ class IPSSetUp
}
/* Got a file? */
if ( ! file_exists( $file ) )
if ( ! is_file( $file ) )
{
return $info;
}
/* Fetch app writeable files */
require_once( IPS_KERNEL_PATH . 'classXML.php' );
require_once( IPS_KERNEL_PATH . 'classXML.php' );/*noLibHook*/
$xml = new classXML( IPSSetUp::charSet );
try
@@ -1077,7 +1114,7 @@ class IPSSetUp
{
if ( $data['dir'] )
{
if ( ! @mkdir( $_path, 0777, TRUE ) )
if ( ! @mkdir( $_path, IPS_FOLDER_PERMISSION, TRUE ) )
{
$info['notexist'][] = $_path;
}
@@ -1089,7 +1126,7 @@ class IPSSetUp
}
else if ( ! is_writeable( $_path ) )
{
if ( ! @chmod( $_path, 0777 ) )
if ( ! @chmod( $_path, is_dir( $_path ) ? IPS_FOLDER_PERMISSION : IPS_FILE_PERMISSION ) )
{
$info['notwrite'][] = $_path;
}
@@ -1120,21 +1157,22 @@ class IPSSetUp
$info = array();
/* Fetch core writeable files */
require_once( IPS_KERNEL_PATH . 'classXML.php' );
require_once( IPS_KERNEL_PATH . 'classXML.php' );/*noLibHook*/
$xml = new classXML( $charset ? $charset : IPSSetUp::charSet );
try
{
if( file_exists( IPSLib::getAppDir( $app ) . '/xml/information.xml' ) )
if( is_file( IPSLib::getAppDir( $app ) . '/xml/information.xml' ) )
{
$xml->load( IPSLib::getAppDir( $app ) . '/xml/information.xml' );
/* Fetch general information */
foreach( $xml->fetchElements( 'data' ) as $xmlelement )
{
$data = $xml->fetchElementsFromRecord( $xmlelement );
$info['name'] = $data['name'];
//TERANOTE: remove this code below after making sure it doesn't cause issues the new way
/*$data = $xml->fetchElementsFromRecord( $xmlelement );
$info['name'] = $data['name'];
$info['title'] = $data['name'];
$info['author'] = $data['author'];
$info['description'] = $data['description'];
@@ -1142,7 +1180,15 @@ class IPSSetUp
$info['disabledatinstall'] = ( $data['disabledatinstall'] ) ? 1 : 0;
$info['key'] = $app;
$info['ipskey'] = $data['ipskey'];
$info['hide_tab'] = $data['hide_tab'];
$info['hide_tab'] = $data['hide_tab'];*/
$info = $xml->fetchElementsFromRecord( $xmlelement );
/* Sort some things */
$info['title'] = $info['name'];
$info['disabledatinstall'] = intval($info['disabledatinstall']);
$info['hide_tab'] = intval($info['hide_tab']);
$info['key'] = $app;
}
/* Fetch template information */
@@ -1181,7 +1227,7 @@ class IPSSetUp
// No modules?
//-----------------------------------------
if( !file_exists( IPSLib::getAppDir( $app ) . '/xml/' . $app . '_modules.xml' ) )
if( !is_file( IPSLib::getAppDir( $app ) . '/xml/' . $app . '_modules.xml' ) )
{
return array();
}
@@ -1191,7 +1237,7 @@ class IPSSetUp
try
{
require_once( IPS_KERNEL_PATH . 'classXML.php' );
require_once( IPS_KERNEL_PATH . 'classXML.php' );/*noLibHook*/
$xml = new classXML( $charset ? $charset : IPSSetUp::charSet );
$xml->load( IPSLib::getAppDir( $app ) . '/xml/' . $app . '_modules.xml' );
@@ -1251,7 +1297,7 @@ class IPSSetUp
* @access public
* @param string Key
* @param string Value
* @return void
* @return @e void
*/
static function setSavedData( $key, $value )
{
@@ -1293,7 +1339,7 @@ class IPSSetUp
*
* @access public
* @param string Raw data for thawing
* @return void
* @return @e void
*/
static function thawSavedData( $data='' )
{
@@ -1329,9 +1375,9 @@ class IPSSetUp
}
else
{
if ( file_exists( DOC_IPS_ROOT_PATH . 'conf_global.php' ) )
if ( is_file( DOC_IPS_ROOT_PATH . 'conf_global.php' ) )
{
require( DOC_IPS_ROOT_PATH . 'conf_global.php' );
require( DOC_IPS_ROOT_PATH . 'conf_global.php' );/*noLibHook*/
return trim( $VAR );
}
}
@@ -1344,7 +1390,7 @@ class IPSSetUp
*
* @access private
* @param string Encoded data to write
* @return void
* @return @e void
*/
private static function _writeFreezerCache( $data )
{
@@ -1354,7 +1400,7 @@ class IPSSetUp
}
else
{
if ( file_exists( DOC_IPS_ROOT_PATH . 'conf_global.php' ) AND is_writeable( DOC_IPS_ROOT_PATH . 'conf_global.php' ) )
if ( is_file( DOC_IPS_ROOT_PATH . 'conf_global.php' ) AND is_writeable( DOC_IPS_ROOT_PATH . 'conf_global.php' ) )
{
$_data = file_get_contents( DOC_IPS_ROOT_PATH . 'conf_global.php' );
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -2,18 +2,18 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Installer output methods
* Last Updated: $Date: 2010-09-15 17:14:23 -0400 (Wed, 15 Sep 2010) $
* Last Updated: $Date: 2011-07-22 12:01:28 -0400 (Fri, 22 Jul 2011) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 1st December 2008
* @version $Revision: 6881 $
* @version $Revision: 9305 $
*
*/
@@ -186,7 +186,7 @@ class output
* @access public
* @param object ipsRegistry reference
* @param bool Whether to init
* @return void
* @return @e void
*/
public function __construct( ipsRegistry $registry, $init=FALSE )
{
@@ -203,14 +203,14 @@ class output
if ( $init === TRUE )
{
/* Load 'template' */
require_once( IPS_ROOT_PATH . 'setup/templates/skin_setup.php' );
require_once( IPS_ROOT_PATH . 'setup/templates/skin_setup.php' );/*noLibHook*/
$this->template = new skin_setup( $registry );
/* Images URL */
$this->imageUrl = '../setup/public/images';
$this->imageUrl = '../setup/' . PUBLIC_DIRECTORY . '/images';
/* Fetch sequence data */
require_once( IPS_KERNEL_PATH . 'classXML.php' );
require_once( IPS_KERNEL_PATH . 'classXML.php' );/*noLibHook*/
$xml = new classXML( IPSSetUp::charSet );
$file = ( IPS_IS_UPGRADER ) ? IPS_ROOT_PATH . 'setup/xml/upgrade_sequence.xml' : IPS_ROOT_PATH . 'setup/xml/sequence.xml';
@@ -240,7 +240,7 @@ class output
/* Set up URLs */
$this->settings['base_url'] = ( $this->settings['base_url'] ) ? $this->settings['base_url'] : IPSSetUp::getSavedData('install_url');
$this->settings['img_url_no_dir'] = $this->settings['base_url'] . '/public/style_images/';
$this->settings['img_url_no_dir'] = $this->settings['base_url'] . '/' . PUBLIC_DIRECTORY . '/style_images/';
/* Set Current Page */
$this->currentPage = ( $this->request['section'] ) ? $this->request['section'] : 'index';
@@ -303,13 +303,36 @@ class output
}
}
}
/**
* Keeps upgrader happy
*/
public function buildSEOUrl( $url, $type, $title, $template )
{
}
public function isLargeTouchDevice()
{
return false;
}
public function isSmallTouchDevice()
{
return false;
}
public function getReplacement()
{
}
/**
* Add an message string
*
* @access public
* @param string Message
* @return void
* @return @e void
*/
public function addMessage( $string )
{
@@ -321,7 +344,7 @@ class output
*
* @access public
* @param string Error
* @return void
* @return @e void
*/
public function addError( $string )
{
@@ -333,7 +356,7 @@ class output
*
* @access public
* @param string Warning
* @return void
* @return @e void
*/
public function addWarning( $string )
{
@@ -368,7 +391,7 @@ class output
* @access public
* @param string content to add
* @param boolean Prepend isntead of append
* @return void
* @return @e void
*/
public function addContent( $content, $prepend=false )
{
@@ -388,7 +411,7 @@ class output
* @access public
* @param string Current Human version
* @param string App key
* @return void
* @return @e void
*/
public function setVersionAndApp( $version, $app )
{
@@ -402,7 +425,7 @@ class output
* @access public
* @param mixed Current step
* @param int Total steps
* @return void
* @return @e void
*/
public function setInstallStep( $current, $total )
{
@@ -414,7 +437,7 @@ class output
*
* @access public
* @param boolean TRUE = hide button, FALSE = show button
* @return void
* @return @e void
*/
public function setHideButton( $hide=FALSE )
{
@@ -426,7 +449,7 @@ class output
*
* @access public
* @param string action URL
* @return void
* @return @e void
*/
public function setNextAction( $url )
{
@@ -438,7 +461,7 @@ class output
*
* @access public
* @param string Page title
* @return void
* @return @e void
*/
public function setTitle( $title )
{
@@ -453,7 +476,7 @@ class output
* @param string Nav URL
* @param string SEO title
* @param string SEO template
* @return void
* @return @e void
*/
public function addNavigation( $title, $url, $seoTitle='', $seoTemplate='' )
{
@@ -465,7 +488,7 @@ class output
*
* @access public
* @param bool Error yes/no
* @return void
* @return @e void
*/
public function setError( $boolean )
{
@@ -490,7 +513,6 @@ class output
* @access public
* @param string
* @return string
* @todo [Future] Remove the legacy remapping in 3.1. We will assume posts have been rebuilt by then.
*/
public function replaceMacros( $text )
{
@@ -504,19 +526,13 @@ class output
$text = str_replace( "{style_image_url}" , $this->settings['img_url'] , $text );
$text = str_replace( "{style_images_url}" , $this->settings['img_url'] , $text );
//-----------------------------------------
// Fix legacy emoticon/avatar/images links
//-----------------------------------------
$text = preg_replace( "#img\s+?src=([\"'])(?:{$this->settings['board_url']}[^\"']+?)?(?<!public%2F)style_(images|avatars|emoticons)([^\"']+?)[\"'](.+?)?".">#is", "img src=\\1".$this->settings['public_dir']."style_\\2\\3\\1\\4>", $text );
//-----------------------------------------
// Fix up IPB image url
//-----------------------------------------
if ( $this->settings['ipb_img_url'] )
{
$text = preg_replace( "#img\s+?src=[\"']public/style_(images|avatars|emoticons)(.+?)[\"'](.+?)?".">#is", "img src=\"".$this->settings['ipb_img_url']."public/style_\\1\\2\"\\3>", $text );
$text = preg_replace( "#img\s+?src=[\"']" . PUBLIC_DIRECTORY . "/style_(images|avatars|emoticons)(.+?)[\"'](.+?)?".">#is", "img src=\"" . $this->settings['ipb_img_url'] . PUBLIC_DIRECTORY . "/style_\\1\\2\"\\3>", $text );
}
@@ -528,7 +544,7 @@ class output
*
* @access public
* @param boolean TRUE - freeze data, FALSE, do not.
* @return void Nothin'
* @return @e void Nothin'
*/
public function sendOutput( $saveData=TRUE )
{
@@ -596,45 +612,50 @@ class output
* @param string SEO Title
* @return string HTML to browser and exits
*/
public function redirectScreen( $text="", $url="", $seoTitle="" )
public function redirectScreen( $text="", $url="", $seoTitle="", $seoTemplate='' )
{
//-----------------------------------------
// INIT
//-----------------------------------------
$this->_sendOutputSetUp( 'redirect' );
//-----------------------------------------
// Forcing silent redirects?
//-----------------------------------------
if ( $this->settings['ipb_remove_redirect_pages'] == 1 )
/* Use new inline notifications */
if ( ! defined('IPS_FORCE_HTML_REDIRECT') OR ! IPS_FORCE_HTML_REDIRECT )
{
$this->silentRedirect( $url );
$_SESSION['ips_InlineMessage'] = $text;
$this->silentRedirect($url, $seoTitle, false, $seoTemplate );
}
//-----------------------------------------
// Gather output
//-----------------------------------------
$output = $this->outputFormatClass->fetchOutput( $this->_html, $this->_title, $this->_navigation, $this->_documentHeadItems, $this->_jsLoader, array( 'url' => $url, 'text' => $text, 'seoTitle' => $seoTitle ) );
//-----------------------------------------
// Check for SQL Debug
//-----------------------------------------
$this->_checkSQLDebug();
//-----------------------------------------
// Print it...
//-----------------------------------------
$this->outputFormatClass->printHeader();
print $output;
$this->outputFormatClass->finishUp();
else
{
//-----------------------------------------
// INIT
//-----------------------------------------
$this->_sendOutputSetUp( 'redirect' );
//-----------------------------------------
// Gather output
//-----------------------------------------
$output = $this->outputFormatClass->fetchOutput( $this->_html, $this->_title, $this->_navigation, $this->_documentHeadItems, $this->_jsLoader, array( 'url' => $url, 'text' => $text, 'seoTitle' => $seoTitle, 'seoTemplate' => $seoTemplate ) );
$output = $this->templateHooks( $output );
//-----------------------------------------
// Check for SQL Debug
//-----------------------------------------
$this->_checkSQLDebug();
//-----------------------------------------
// Print it...
//-----------------------------------------
$this->outputFormatClass->printHeader();
/* Remove unused hook comments */
$output = preg_replace( '#<!--hook\.([^\>]+?)-->#', '', $output );
print $output;
$this->outputFormatClass->finishUp();
}
exit;
}
@@ -657,7 +678,7 @@ class output
* @access public
* @param string Type of data to add: css, js, raw, rss, rsd, etc
* @param string Data to add
* @return void
* @return @e void
*/
public function addToDocumentHead( $type, $data )
{
@@ -675,10 +696,10 @@ class output
{
$remapData = array();
if ( file_exists( DOC_IPS_ROOT_PATH . 'cache/skin_cache/masterMap.php' ) )
if ( is_file( DOC_IPS_ROOT_PATH . 'cache/skin_cache/masterMap.php' ) )
{
$REMAP = array();
require( DOC_IPS_ROOT_PATH . 'cache/skin_cache/masterMap.php' );
require( DOC_IPS_ROOT_PATH . 'cache/skin_cache/masterMap.php' );/*noLibHook*/
if ( is_array( $REMAP ) && count( $REMAP ) )
{
@@ -689,12 +710,9 @@ class output
{
if ( preg_match( "#^[a-zA-Z]#", $id ) )
{
if ( is_array( $REMAP['masterKeys'] ) )
if ( is_array( $REMAP['masterKeys'] ) AND in_array( $id, $REMAP['masterKeys'] ) )
{
if ( in_array( $id, $REMAP['masterKeys'] ) )
{
$_skin = array( 'set_id' => $id );
}
$_skin = array( 'set_id' => $id );
}
else
{
@@ -715,12 +733,9 @@ class output
/* IN DEV default */
if ( preg_match( "#^[a-zA-Z]#", $REMAP['inDevDefault'] ) )
{
if ( is_array( $REMAP['masterKeys'] ) )
if ( is_array( $REMAP['masterKeys'] ) AND in_array( $REMAP['inDevDefault'], $REMAP['masterKeys'] ) )
{
if ( in_array( $REMAP['inDevDefault'], $REMAP['masterKeys'] ) )
{
$_skin = array( 'set_id' => $REMAP['inDevDefault'] );
}
$_skin = array( 'set_id' => $REMAP['inDevDefault'] );
}
else
{
@@ -737,18 +752,18 @@ class output
/* Master keys */
$remapData['masterKeys'] = $REMAP['masterKeys'];
/* Images */
$remapData['images'] = $REMAP['images'];
/* IN DEV export */
foreach( $REMAP['export'] as $id => $key )
{
if ( preg_match( "#^[a-zA-Z]#", $key ) )
{
if ( is_array( $REMAP['masterKeys'] ) )
if ( is_array( $REMAP['masterKeys'] ) AND in_array( $key, $REMAP['masterKeys'] ) )
{
if ( in_array( $key, $REMAP['masterKeys'] ) )
{
$_skin = array( 'set_id' => $key );
}
$_skin = array( 'set_id' => $key );
}
else
{
@@ -767,12 +782,12 @@ class output
}
else
{
$remapData = array( 'templates' => array( 0 => 'master_skin' ),
'css' => array( 0 => 'master_css' ),
'inDevDefault' => 0 );
$remapData = array( 'templates' => array( 'root' => 'master_skin' ),
'css' => array( 'root' => 'master_css' ),
'inDevDefault' => 'root'
);
}
return $remapData;
}
@@ -808,5 +823,13 @@ class output
return array();
}
/**
* Dummy method to prevent error in recache routines
*
* @return void
*/
public function getTemplate( $file )
{
return null;
}
}
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -2,18 +2,18 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Setup sessions class
* Last Updated: $Date: 2010-07-14 05:39:08 -0400 (Wed, 14 Jul 2010) $
* Last Updated: $Date: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 1st December 2008
* @version $Revision: 6647 $
* @version $Revision: 8644 $
*
*/
@@ -75,7 +75,7 @@ class sessions extends ips_MemberRegistry
* Authorize
*
* @access public
* @return void
* @return @e void
*/
public function __construct()
{
+1 -1
View File
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
+8 -8
View File
@@ -2,18 +2,18 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Version Specific Upgrade Functions
* Last Updated: $Date: 2010-10-01 20:18:21 -0400 (Fri, 01 Oct 2010) $
* Last Updated: $Date: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 1st December 2008
* @version $Revision: 6937 $
* @version $Revision: 8644 $
*
*/
@@ -31,7 +31,7 @@ class upgradeLegacy
* Constructor
*
* @access public
* @return void
* @return @e void
*/
public function __construct( ipsRegistry $registry )
{
@@ -44,7 +44,7 @@ class upgradeLegacy
$this->caches =& $this->registry->cache()->fetchCaches();
//* Make sure tables exist that won't in pre 3.0 versions */
if ( file_exists( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' ) )
if ( is_file( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' ) )
{
/* Init vars */
$UPGRADE_HISTORY_TABLE = '';
@@ -53,7 +53,7 @@ class upgradeLegacy
$UPGRADE_CSS_PREVIOUS = '';
$UPGRADE_TEMPLATE_PREVIOUS = '';
require( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' );
require( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' );/*noLibHook*/
$prefix = $this->registry->dbFunctions()->getPrefix();
+8 -8
View File
@@ -2,18 +2,18 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Version Specific Upgrade Functions
* Last Updated: $Date: 2010-10-01 20:18:21 -0400 (Fri, 01 Oct 2010) $
* Last Updated: $Date: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 1st December 2008
* @version $Revision: 6937 $
* @version $Revision: 8644 $
*
*/
@@ -31,7 +31,7 @@ class upgradeLegacy
* Constructor
*
* @access public
* @return void
* @return @e void
*/
public function __construct( ipsRegistry $registry )
{
@@ -44,7 +44,7 @@ class upgradeLegacy
$this->caches =& $this->registry->cache()->fetchCaches();
/* Make sure tables exist that won't in pre 3.0 versions */
if ( file_exists( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' ) )
if ( is_file( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' ) )
{
/* Init vars */
$UPGRADE_TABLE_FIELD = '';
@@ -52,7 +52,7 @@ class upgradeLegacy
$UPGRADE_CSS_PREVIOUS = '';
$UPGRADE_TEMPLATE_PREVIOUS = '';
require( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' );
require( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' );/*noLibHook*/
$prefix = $this->registry->dbFunctions()->getPrefix();
+10 -10
View File
@@ -2,18 +2,18 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Version Specific Upgrade Functions
* Last Updated: $Date: 2010-09-15 17:14:23 -0400 (Wed, 15 Sep 2010) $
* Last Updated: $Date: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 1st December 2008
* @version $Revision: 6881 $
* @version $Revision: 8644 $
*
*/
@@ -31,7 +31,7 @@ class upgradeLegacy
* Constructor
*
* @access public
* @return void
* @return @e void
*/
public function __construct( ipsRegistry $registry )
{
@@ -44,7 +44,7 @@ class upgradeLegacy
$this->caches =& $this->registry->cache()->fetchCaches();
/* Make sure tables exist that won't in pre 3.0 versions */
if ( file_exists( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' ) )
if ( is_file( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' ) )
{
/* Init vars */
$UPGRADE_TABLE_FIELD = '';
@@ -52,7 +52,7 @@ class upgradeLegacy
$UPGRADE_CSS_PREVIOUS = '';
$UPGRADE_TEMPLATE_PREVIOUS = '';
require( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' );
require( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' );/*noLibHook*/
$prefix = $this->registry->dbFunctions()->getPrefix();
@@ -154,7 +154,7 @@ class upgradeLegacy
*/
public function authenticateLogIn( $username, $password )
{
require_once( IPS_ROOT_PATH . 'sources/handlers/han_login.php' );
require_once( IPS_ROOT_PATH . 'sources/handlers/han_login.php' );/*noLibHook*/
$han_login = new han_login( $this->registry );
$han_login->is_admin_auth = 1;
$han_login->init();
@@ -209,7 +209,7 @@ class upgradeLegacy
*/
public function fetchLogInForm()
{
require_once( IPS_ROOT_PATH . 'sources/handlers/han_login.php' );
require_once( IPS_ROOT_PATH . 'sources/handlers/han_login.php' );/*noLibHook*/
$han_login = new han_login( $this->registry );
$han_login->is_admin_auth = 1;
$han_login->init();
+1 -1
View File
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
+1 -1
View File
@@ -6,6 +6,6 @@
You have reached this Page in error, please use
your back button to return to Invision Board.
<hr>
<a href="http://www.invisionboard.com/">Invision Power Board</a>
<a href="http://www.invisionpower.com">Invision Power Board</a>
</body>
</html>
+5 -5
View File
@@ -3,18 +3,18 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* SQL for upgrader
* Last Updated: $Date: 2010-04-14 07:25:45 -0400 (Wed, 14 Apr 2010) $
* Last Updated: $Date: 2010-12-17 08:03:58 -0500 (Fri, 17 Dec 2010) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 1st December 2008
* @version $Revision: 6108 $
* @version $Revision: 7446 $
*
*/
+13 -13
View File
@@ -3,18 +3,18 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* SQL installation methods
* Last Updated: $Date: 2010-01-15 10:18:44 -0500 (Fri, 15 Jan 2010) $
* Last Updated: $Date: 2011-05-05 07:03:47 -0400 (Thu, 05 May 2011) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 1st December 2008
* @version $Revision: 5713 $
* @version $Revision: 8644 $
*
*/
@@ -49,7 +49,7 @@ class install_extra
*
* @access public
* @param object Registry reference
* @return void
* @return @e void
*/
public function __construct( ipsRegistry $registry )
{
@@ -65,7 +65,7 @@ class install_extra
*
* @access public
* @param object Registry reference
* @return void
* @return @e void
*/
public function setDbPrefix( $prefix='' )
{
@@ -95,7 +95,7 @@ class install_extra
*
* @access public
* @param string Type of inserts to run
* @return void
* @return @e void
*/
public function before_inserts_run( $type )
{
@@ -129,7 +129,7 @@ class install_extra
*
* @access public
* @param string Type of inserts to run
* @return void
* @return @e void
*/
public function after_inserts_run( $type )
{
@@ -172,7 +172,7 @@ class install_extra
if ( $this->prefix )
{
$query = preg_replace( "#^CREATE TABLE(?:\s+?)?(\S+?)#s", "CREATE TABLE " . $this->prefix."\\1", $query );
$query = preg_replace( "#^(CREATE TABLE\s+(?:IF NOT EXISTS\s+)?)(\S+?)#s", "\\1 " . $this->prefix."\\2", $query );
$query = preg_replace( "#^INSERT INTO(?:\s+?)?(\S+?)#s" , "INSERT INTO " . $this->prefix."\\1" , $query );
$query = preg_replace( "#^REPLACE INTO(?:\s+?)?(\S+?)#s", "REPLACE INTO " . $this->prefix."\\1", $query );
$query = preg_replace( "#^ALTER TABLE(?:\s+?)?(\S+?)#s" , "ALTER TABLE " . $this->prefix."\\1" , $query );
@@ -202,7 +202,7 @@ class install_extra
if ( $this->prefix )
{
$query = preg_replace( "#^CREATE TABLE(?:\s+?)?(\S+?)#s", "CREATE TABLE " . $this->prefix."\\1", $query );
$query = preg_replace( "#^(CREATE TABLE\s+(?:IF NOT EXISTS\s+)?)(\S+?)#s", "\\1 " . $this->prefix."\\2", $query );
$query = preg_replace( "#^INSERT INTO(?:\s+?)?(\S+?)#s" , "INSERT INTO " . $this->prefix."\\1" , $query );
$query = preg_replace( "#^REPLACE INTO(?:\s+?)?(\S+?)#s", "REPLACE INTO " . $this->prefix."\\1", $query );
$query = preg_replace( "#^ALTER TABLE(?:\s+?)?(\S+?)#s" , "ALTER TABLE " . $this->prefix."\\1" , $query );
@@ -230,7 +230,7 @@ class install_extra
if ( $this->prefix )
{
$query = preg_replace( "#^CREATE TABLE(?:\s+?)?(\S+?)#s", "CREATE TABLE " . $this->prefix."\\1", $query );
$query = preg_replace( "#^(CREATE TABLE\s+(?:IF NOT EXISTS\s+)?)(\S+?)#s", "\\1 " . $this->prefix."\\2", $query );
$query = preg_replace( "#^INSERT INTO(?:\s+?)?(\S+?)#s" , "INSERT INTO " . $this->prefix."\\1" , $query );
$query = preg_replace( "#^REPLACE INTO(?:\s+?)?(\S+?)#s", "REPLACE INTO " . $this->prefix."\\1", $query );
$query = preg_replace( "#^ALTER TABLE(?:\s+?)?(\S+?)#s" , "ALTER TABLE " . $this->prefix."\\1" , $query );
@@ -262,7 +262,7 @@ class install_extra
* Save additional info from install form
*
* @access public
* @return void
* @return @e void
*/
public function install_form_process()
{
+1 -1
View File
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
+124 -43
View File
@@ -2,18 +2,18 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Setup skin file
* Last Updated: $Date: 2010-09-13 05:53:37 -0400 (Mon, 13 Sep 2010) $
* Last Updated: $Date: 2011-09-27 21:33:45 -0400 (Tue, 27 Sep 2011) $
* </pre>
*
* @author $Author: terabyte $
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since Friday 19th May 2006 17:33
* @version $Revision: 6854 $
* @version $Revision: 9556 $
*/
class skin_setup extends output
@@ -28,7 +28,7 @@ class skin_setup extends output
* Prevent our main destructor being called by this class
*
* @access public
* @return void
* @return @e void
*/
public function __destruct()
{
@@ -83,13 +83,49 @@ EOF;
$IPBHTML .= <<<EOF
<h3>Полезные ссылки</h3>
<ul id='links'>
<li><img src='{$this->registry->output->imageUrl}/link.gif' align='absmiddle' /> <a href='http://bestcms.ws'>BESTCMS.WS - Форум вебмастеров!</a></li>
<li><img src='{$this->registry->output->imageUrl}/link.gif' align='absmiddle' /> <a href='http://myipb.in/docs-ipb'>Документация</a></li>
<li><img src='{$this->registry->output->imageUrl}/link.gif' align='absmiddle' /> <a href='http://hatynka.in'>Форум Hatynka.in</a></li>
</ul>
EOF;
return $IPBHTML;
}
/**
* Show the page to manually run log query, with option to prune and run instead
*
* @access public
* @return string HTML
*/
public function upgrade_manual_queries_logs( $queries, $id=1, $TABLE='' ) {
$IPBHTML = "";
//--starthtml--//
$IPBHTML .= <<<EOF
<h3>Пожалуйста выполните следующие запросы прежде чем продолжить</h3>
<div class='message unspecified'>
Вы можете <a href='index.php?app=upgrade&amp;section=upgrade&amp;s={$this->request['s']}&amp;do=appclass&amp;workact=logs{$id}&amp;pruneAndRun=1'>нажать здесь</a> чтобы очистить таблицу-журнал '{$TABLE}' и мастер сам внесет изменения в структуру
<br />
<b>ИЛИ</b>
<br />
Запустите следующие запросы сами:
<textarea style="width:100%; height: 300px">
EOF;
if ( $queries )
{
$IPBHTML .= "\n" . $queries;
}
$IPBHTML .= <<<EOF
</textarea>
</div>
EOF;
return $IPBHTML;
}
/**
* Show the install start page
*
@@ -199,8 +235,8 @@ EOF;
}
$IPBHTML .= <<<EOF
<strong style='font-weight:bold; font-size:14px'>{$data['app']['name']} {$data['long']}</strong>
{$data['out']}
<strong style='font-weight:bold; font-size:15px'>{$data['app']['name']} {$data['long']}</strong>
{$data['out']}<br />
EOF;
}
}
@@ -316,13 +352,13 @@ EOF;
// for them so it's irrelevant
//-----------------------------------------
$img = file_exists( IPSLib::getAppDir( $key ) . '/skin_cp/appIcon.png' ) ? $this->settings['base_url'] . '/' . CP_DIRECTORY . '/applications_addon/' . $type . '/' . $key . '/skin_cp/appIcon.png' : "../skin_cp/_newimages/applications/{$key}.png";
$img = is_file( IPSLib::getAppDir( $key ) . '/skin_cp/appIcon.png' ) ? $this->settings['base_url'] . '/' . CP_DIRECTORY . '/applications_addon/' . $type . '/' . $key . '/skin_cp/appIcon.png' : "../skin_cp/images/applications/{$key}.png";
$IPBHTML .= <<<EOF
<table style='width: 100%; border: 0px; padding:0px' cellspacing='0'>
<tr>
<td width='7%' valign='top' style='padding:4px'>
<input type='checkbox' name='apps[{$key}]' value='1' $_checked style="$_style" />
<input type='checkbox' name='apps[{$key}]' value='1' {$_checked} style="{$_style}" />
</td>
<td width='1%' valign='top' style='padding:4px'>
<img src='{$img}' />
@@ -336,7 +372,7 @@ $IPBHTML .= <<<EOF
</tr>
</table>
EOF;
if ( isset( $notices[ $key ] ) )
if ( count( $notices[ $key ] ) )
{
$IPBHTML .= "<div class='warning'><ul>";
foreach ( $notices[ $key ] as $n )
@@ -627,7 +663,7 @@ $IPBHTML = "";
$IPBHTML .= <<<EOF
<div class='message error'>
$msg
{$msg}
</div>
EOF;
@@ -679,12 +715,13 @@ $IPBHTML .= <<<EOF
<br />
<span class='done_text'>Установка завершена!</span><Br /><Br />
Поздравляем, <a href='../../index.php'>{$_productName}</a> Nulled by BESTCMS.WS установлен и готов к использованию! Ниже приведено
Поздравляем, <a href='../../index.php'>{$_productName}</a> установлен и готов к использованию! Ниже приведено
несколько полезных ссылок.<br /><br /><br />
$extra
{$extra}
<h3>Полезные ссылки</h3>
<ul id='links'>
<li><img src='{$this->registry->output->imageUrl}/link.gif' align='absmiddle' /> <a href='http://bestcms.ws'>BESTCMS.WS - Форум вебмастеров!</a></li>
<li><img src='{$this->registry->output->imageUrl}/link.gif' align='absmiddle' /> <a href='http://myipb.in/docs-ipb'>Документация</a></li>
<li><img src='{$this->registry->output->imageUrl}/link.gif' align='absmiddle' /> <a href='http://hatynka.in'>Форум Hatynka.in</a></li>
</ul>
EOF;
@@ -846,10 +883,10 @@ $IPBHTML = "";
//--starthtml--//
/* 'lil hack here */
if ( file_exists( DOC_IPS_ROOT_PATH . "conf_global.php" ) )
if ( is_file( DOC_IPS_ROOT_PATH . "conf_global.php" ) )
{
$INFO = array();
require DOC_IPS_ROOT_PATH . "conf_global.php";
require( DOC_IPS_ROOT_PATH . 'conf_global.php' );/*noLibHook*/
if ( is_array( $INFO ) && count($INFO) )
{
@@ -937,7 +974,7 @@ $IPBHTML .= <<<EOF
<tr>
<td width='30%' class='title'>SQL драйвер:</td>
<td width='70%' class='content'>
<select name='sql_driver' class='sql_form'>$_drivers</select>
<select name='sql_driver' class='sql_form'>{$_drivers}</select>
</td>
</tr>
</table>
@@ -981,7 +1018,7 @@ $IPBHTML .= <<<EOF
<div class='eula'>
$_eula
{$_eula}
</div>
<input type='checkbox' name='eula' id='eula'> <strong><label for='eula'>Я согласен с Пользовательским Соглашением</label></strong>
@@ -996,6 +1033,43 @@ return $IPBHTML;
* @access public
* @return string HTML
*/
public function page_license( $error ) {
$IPBHTML = "";
//--starthtml--//
if ( $error )
{
$IPBHTML .= <<<EOF
<div class='message error'>{$error}</div>
EOF;
}
$IPBHTML .= <<<EOF
<br />
<fieldset>
<legend>Ключ лицензии</legend>
<table style='width: 100%; border: 0px; padding:0px' cellspacing='0'>
<tr>
<td class='title'><b>Ключ</b></td>
<td width='70%' class='content'><input type='text' class='sql_form' name='lkey' value='{$this->request['lkey']}'></td>
</tr>
<tr>
<td colspan='2'><span style='color: gray'>Ввод ключа лицензии <span style='font-weight:bold'>не обязателен</span> для продолжения установки. Вы можете ввести его позже.</span></td>
</tr>
</table>
</fieldset>
<br />
<div class='message unspecific note'>
Ключ - это любая комбинация символов.
</div>
EOF;
return $IPBHTML;
}
/**
* Show the address info page
@@ -1083,13 +1157,13 @@ EOF;
// for them so it's irrelevant
//-----------------------------------------
$img = file_exists( IPSLib::getAppDir( $key ) . '/skin_cp/appIcon.png' ) ? '../applications_addon/' . $type . '/' . $key . '/skin_cp/appIcon.png' : "../skin_cp/_newimages/applications/{$key}.png";
$img = is_file( IPSLib::getAppDir( $key ) . '/skin_cp/appIcon.png' ) ? '../applications_addon/' . $type . '/' . $key . '/skin_cp/appIcon.png' : "../skin_cp/images/applications/{$key}.png";
$IPBHTML .= <<<EOF
<table style='width: 100%; border: 0px; padding:0px' cellspacing='0'>
<tr>
<td width='5%' class='title'>
<input type='checkbox' name='apps[{$key}]' value='1' $_checked style="$_style" />
<input type='checkbox' name='apps[{$key}]' value='1' {$_checked} style="{$_style}" />
</td>
<td width='1%' valign='top' style='padding:4px'>
<img src='{$img}' />
@@ -1149,6 +1223,24 @@ $IPBHTML .= <<<EOF
<div>
Добро пожаловать в систему установки. Мастер установки проведет вас через весь процесс {$text}.
</div>
EOF;
if( $text == 'upgrade' )
{
$IPBHTML .= <<<EOF
<div class='message unspecific note'>
If you are not comfortable performing the upgrade yourself, please stop now and submit a technical support ticket so that our technicians can perform the upgrade for you.
<br /><br />
You should be certain that you have a complete database backup before proceeding. By continuing, you are certifying that you have saved a database backup.
</div>
<br />
EOF;
}
$IPBHTML .= <<<EOF
<div class='message unspecific note'>
Если вам нужна помощь по работе с мастером установки, то обратитесь к <b>документации</b>.
</div>
</div>
<br />
<div class='message unspecified'>
@@ -1316,11 +1408,12 @@ $IPBHTML .= <<<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: $title</title>
<title>Установщик IPS: {$title}</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type='text/css' media='all'>
@import url('{$_cssPath}/install.css');
</style>
</style>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<p>&nbsp;</p>
@@ -1340,7 +1433,7 @@ EOF;
if ( ! IPS_IS_UPGRADER )
{
$IPBHTML .= <<<EOF
<p><a href='http://myipb.in/installation-guide' target='_blank'><b>Руководство по установке</b></a> &gt;</p>
EOF;
}
@@ -1397,7 +1490,7 @@ EOF;
foreach( $messages as $msg )
{
$IPBHTML .= "<p>$msg</p>\n";
$IPBHTML .= "<p>{$msg}</p>\n";
}
$IPBHTML.= <<<EOF
@@ -1414,12 +1507,12 @@ EOF;
foreach( $errors as $msg )
{
$IPBHTML .= "<p>Ошибка: $msg</p>\n";
$IPBHTML .= "<p>Ошибка: {$msg}</p>\n";
}
foreach( $warnings as $msg )
{
$IPBHTML .= "<p>Предупреждение: $msg</p>\n";
$IPBHTML .= "<p>Предупреждение: {$msg}</p>\n";
}
@@ -1526,7 +1619,7 @@ $errors = $this->registry->output->fetchWarnings();
$HTML = <<<EOF
<script type='text/javascript'>
//<![CDATA[
setTimeout("form_redirect()",2000);
setTimeout("form_redirect()",100);
function form_redirect()
{
@@ -1597,21 +1690,9 @@ $IPBHTML = <<<EOF
<b>Воспользоваться инструкциями по перекодированию базы данных через SSH</b>
</div>
<div class='message unspecific'>
<a href='http://wiki.iblink.ru/sources/db/mysqlcharsetconversion'>Ознакомиться с инструкциями по перекодированию базы форума</a>
</div>
<div>
<br />
<b>Заказать услугу по конвертации базы форума в нашем <a href="http://external.iblink.ru/clientarea">клиент-центре</a>.
</b>
<br /><br />
После того как ваша база будет в правильной кодировке, повторно запустите скрипт обновления.
</div>
</div>
EOF;
return $IPBHTML;
}
}
}
-31
View File
@@ -5,7 +5,6 @@
<atype_extension>aiff</atype_extension>
<atype_mimetype>audio/x-aiff</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/quicktime.gif</atype_img>
</attachtype>
@@ -13,7 +12,6 @@
<atype_extension>bmp</atype_extension>
<atype_mimetype>image/x-MS-bmp</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/gif.gif</atype_img>
</attachtype>
@@ -21,7 +19,6 @@
<atype_extension>css</atype_extension>
<atype_mimetype>unknown/unknown</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/script.gif</atype_img>
</attachtype>
@@ -29,7 +26,6 @@
<atype_extension>doc</atype_extension>
<atype_mimetype>application/msword</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/doc.gif</atype_img>
</attachtype>
@@ -37,7 +33,6 @@
<atype_extension>gif</atype_extension>
<atype_mimetype>image/gif</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>1</atype_photo>
<atype_img>style_extra/mime_types/gif.gif</atype_img>
</attachtype>
@@ -45,7 +40,6 @@
<atype_extension>gz</atype_extension>
<atype_mimetype>application/x-gzip</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/zip.gif</atype_img>
</attachtype>
@@ -53,7 +47,6 @@
<atype_extension>hqx</atype_extension>
<atype_mimetype>application/mac-binhex40</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/stuffit.gif</atype_img>
</attachtype>
@@ -61,7 +54,6 @@
<atype_extension>htm</atype_extension>
<atype_mimetype>unknown/unknown</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/html.gif</atype_img>
</attachtype>
@@ -69,7 +61,6 @@
<atype_extension>html</atype_extension>
<atype_mimetype>unknown/unknown</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/html.gif</atype_img>
</attachtype>
@@ -77,7 +68,6 @@
<atype_extension>ico</atype_extension>
<atype_mimetype>image/ico</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/gif.gif</atype_img>
</attachtype>
@@ -85,7 +75,6 @@
<atype_extension>jpeg</atype_extension>
<atype_mimetype>image/jpeg</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>1</atype_photo>
<atype_img>style_extra/mime_types/gif.gif</atype_img>
</attachtype>
@@ -93,7 +82,6 @@
<atype_extension>jpg</atype_extension>
<atype_mimetype>image/jpeg</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>1</atype_photo>
<atype_img>style_extra/mime_types/gif.gif</atype_img>
</attachtype>
@@ -101,7 +89,6 @@
<atype_extension>mov</atype_extension>
<atype_mimetype>video/quicktime</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/quicktime.gif</atype_img>
</attachtype>
@@ -109,7 +96,6 @@
<atype_extension>mp3</atype_extension>
<atype_mimetype>audio/x-mpeg</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/music.gif</atype_img>
</attachtype>
@@ -117,7 +103,6 @@
<atype_extension>mpg</atype_extension>
<atype_mimetype>video/mpeg</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/quicktime.gif</atype_img>
</attachtype>
@@ -125,7 +110,6 @@
<atype_extension>pdf</atype_extension>
<atype_mimetype>application/pdf</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/pdf.gif</atype_img>
</attachtype>
@@ -133,7 +117,6 @@
<atype_extension>php</atype_extension>
<atype_mimetype>unknown/unknown</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/php.gif</atype_img>
</attachtype>
@@ -141,7 +124,6 @@
<atype_extension>png</atype_extension>
<atype_mimetype>image/png</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>1</atype_photo>
<atype_img>style_extra/mime_types/gif.gif</atype_img>
</attachtype>
@@ -149,7 +131,6 @@
<atype_extension>ppt</atype_extension>
<atype_mimetype>application/powerpoint</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/ppt.gif</atype_img>
</attachtype>
@@ -157,7 +138,6 @@
<atype_extension>ps</atype_extension>
<atype_mimetype>application/postscript</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/eps.gif</atype_img>
</attachtype>
@@ -165,7 +145,6 @@
<atype_extension>ram</atype_extension>
<atype_mimetype>audio/x-pn-realaudio</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/real_audio.gif</atype_img>
</attachtype>
@@ -173,7 +152,6 @@
<atype_extension>rtf</atype_extension>
<atype_mimetype>unknown/unknown</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/rtf.gif</atype_img>
</attachtype>
@@ -181,7 +159,6 @@
<atype_extension>swf</atype_extension>
<atype_mimetype>application/x-shockwave-flash</atype_mimetype>
<atype_post>0</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/quicktime.gif</atype_img>
</attachtype>
@@ -189,7 +166,6 @@
<atype_extension>tar</atype_extension>
<atype_mimetype>application/x-tar</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/zip.gif</atype_img>
</attachtype>
@@ -197,7 +173,6 @@
<atype_extension>tiff</atype_extension>
<atype_mimetype>image/tiff</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/quicktime.gif</atype_img>
</attachtype>
@@ -205,7 +180,6 @@
<atype_extension>txt</atype_extension>
<atype_mimetype>unknown/unknown</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/txt.gif</atype_img>
</attachtype>
@@ -213,7 +187,6 @@
<atype_extension>viv</atype_extension>
<atype_mimetype>video/vivo</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/win_player.gif</atype_img>
</attachtype>
@@ -221,7 +194,6 @@
<atype_extension>wav</atype_extension>
<atype_mimetype>audio/x-wav</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/music.gif</atype_img>
</attachtype>
@@ -229,7 +201,6 @@
<atype_extension>wmv</atype_extension>
<atype_mimetype>video/x-ms-wmv</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/win_player.gif</atype_img>
</attachtype>
@@ -237,7 +208,6 @@
<atype_extension>xml</atype_extension>
<atype_mimetype>unknown/unknown</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/script.gif</atype_img>
</attachtype>
@@ -245,7 +215,6 @@
<atype_extension>zip</atype_extension>
<atype_mimetype>application/zip</atype_mimetype>
<atype_post>1</atype_post>
<atype_photo>0</atype_photo>
<atype_img>style_extra/mime_types/zip.gif</atype_img>
</attachtype>
</attachtypesgroup>
+4 -4
View File
@@ -2,15 +2,15 @@
<installdata>
<package>
<name>Invision Power Board</name>
<version>3.1</version>
<versionlong>31000</versionlong>
<version>3.2</version>
<versionlong>32000</versionlong>
<build>1134742970</build>
<license>Invision Power Services, Inc.
Invision Power Board Software
End User License Agreement (Version 3.x)
LICENSE
Invision Power Services (IPS) grants you a non-exclusive license to use the Software on one installation to be accessable by one URL (web address) subject to the provisions in all sections of this Agreement.
Invision Power Services (IPS) grants you a non-exclusive license to use the Software on one installation to be accessible by one URL (web address) subject to the provisions in all sections of this Agreement.
TERM
Invision Power Board is offered under unique licensing. License terms are defined at the time of purchase and may or may not include technical support. License terms expire after a six month initial term. At the end of this term, the current installed copy of the software may continue to be used under the terms of this Agreement. Unless renewed under the terms of the license purchased at the end of six months, IPS will not provide technical support or upgrades to the software.
@@ -58,6 +58,6 @@ GOVERNING LAW
This Agreement shall be governed by the Laws of the Commonwealth of Virginia and the Laws of the United States of America. Any action in regard to this Agreement or arising out of its terms and conditions shall be instituted and litigated in the Circuit Court of Bedford County. Each of the parties consents to jurisdiction in such Court and agrees that service of process as provided by the states and rules of civil procedures of the Commonwealth of Virginia shall be sufficient.
MANUFACTURER
Invision Power Services, Inc., PO Box 2365, Forest, VA 24551. For questions, write to the above address, email info@invisionpower.com, or call +1 804-200-5695.</license>
Invision Power Services, Inc., PO Box 2365, Forest, VA 24551. For questions, write to the above address or call +1 804-200-5695.</license>
</package>
</installdata>
-18
View File
@@ -7,7 +7,6 @@
<g_mem_info>1</g_mem_info>
<g_other_topics>1</g_other_topics>
<g_use_search>1</g_use_search>
<g_email_friend>0</g_email_friend>
<g_edit_profile>0</g_edit_profile>
<g_post_new_topics>0</g_post_new_topics>
<g_reply_own_topics>0</g_reply_own_topics>
@@ -28,7 +27,6 @@
<g_avoid_flood>0</g_avoid_flood>
<g_icon></g_icon>
<g_attach_max>0</g_attach_max>
<g_avatar_upload>0</g_avatar_upload>
<prefix></prefix>
<suffix></suffix>
<g_max_messages>50</g_max_messages>
@@ -42,7 +40,6 @@
<g_photo_max_vars>50:150:150</g_photo_max_vars>
<g_dohtml>0</g_dohtml>
<g_edit_topic>0</g_edit_topic>
<g_email_limit>10:15</g_email_limit>
<g_bypass_badwords>0</g_bypass_badwords>
<g_can_msg_attach>0</g_can_msg_attach>
<g_attach_per_post>0</g_attach_per_post>
@@ -73,7 +70,6 @@
<g_mem_info>1</g_mem_info>
<g_other_topics>1</g_other_topics>
<g_use_search>1</g_use_search>
<g_email_friend>0</g_email_friend>
<g_edit_profile>0</g_edit_profile>
<g_post_new_topics>1</g_post_new_topics>
<g_reply_own_topics>1</g_reply_own_topics>
@@ -94,7 +90,6 @@
<g_avoid_flood>0</g_avoid_flood>
<g_icon></g_icon>
<g_attach_max>-1</g_attach_max>
<g_avatar_upload>0</g_avatar_upload>
<prefix></prefix>
<suffix></suffix>
<g_max_messages>50</g_max_messages>
@@ -108,7 +103,6 @@
<g_photo_max_vars>50:150:150</g_photo_max_vars>
<g_dohtml>0</g_dohtml>
<g_edit_topic>0</g_edit_topic>
<g_email_limit>10:15</g_email_limit>
<g_bypass_badwords>0</g_bypass_badwords>
<g_can_msg_attach>0</g_can_msg_attach>
<g_attach_per_post>0</g_attach_per_post>
@@ -138,7 +132,6 @@
<g_mem_info>1</g_mem_info>
<g_other_topics>1</g_other_topics>
<g_use_search>1</g_use_search>
<g_email_friend>1</g_email_friend>
<g_edit_profile>1</g_edit_profile>
<g_post_new_topics>1</g_post_new_topics>
<g_reply_own_topics>1</g_reply_own_topics>
@@ -159,7 +152,6 @@
<g_avoid_flood>0</g_avoid_flood>
<g_icon></g_icon>
<g_attach_max>500</g_attach_max>
<g_avatar_upload>1</g_avatar_upload>
<prefix></prefix>
<suffix></suffix>
<g_max_messages>50</g_max_messages>
@@ -173,7 +165,6 @@
<g_photo_max_vars>50:150:150</g_photo_max_vars>
<g_dohtml>0</g_dohtml>
<g_edit_topic>1</g_edit_topic>
<g_email_limit>10:15</g_email_limit>
<g_bypass_badwords>0</g_bypass_badwords>
<g_can_msg_attach>0</g_can_msg_attach>
<g_attach_per_post>0</g_attach_per_post>
@@ -203,7 +194,6 @@
<g_mem_info>1</g_mem_info>
<g_other_topics>1</g_other_topics>
<g_use_search>1</g_use_search>
<g_email_friend>1</g_email_friend>
<g_edit_profile>1</g_edit_profile>
<g_post_new_topics>1</g_post_new_topics>
<g_reply_own_topics>1</g_reply_own_topics>
@@ -224,7 +214,6 @@
<g_avoid_flood>1</g_avoid_flood>
<g_icon>public/style_extra/team_icons/admin.png</g_icon>
<g_attach_max>0</g_attach_max>
<g_avatar_upload>1</g_avatar_upload>
<prefix><![CDATA[<span style='color:red;'>]]></prefix>
<suffix><![CDATA[</span>]]></suffix>
<g_max_messages>50</g_max_messages>
@@ -238,7 +227,6 @@
<g_photo_max_vars>500:170:240</g_photo_max_vars>
<g_dohtml>1</g_dohtml>
<g_edit_topic>1</g_edit_topic>
<g_email_limit>10000:0</g_email_limit>
<g_bypass_badwords>1</g_bypass_badwords>
<g_can_msg_attach>1</g_can_msg_attach>
<g_attach_per_post>0</g_attach_per_post>
@@ -268,7 +256,6 @@
<g_mem_info>0</g_mem_info>
<g_other_topics>0</g_other_topics>
<g_use_search>0</g_use_search>
<g_email_friend>0</g_email_friend>
<g_edit_profile>0</g_edit_profile>
<g_post_new_topics>0</g_post_new_topics>
<g_reply_own_topics>0</g_reply_own_topics>
@@ -289,7 +276,6 @@
<g_avoid_flood>0</g_avoid_flood>
<g_icon></g_icon>
<g_attach_max>0</g_attach_max>
<g_avatar_upload>0</g_avatar_upload>
<prefix></prefix>
<suffix></suffix>
<g_max_messages>50</g_max_messages>
@@ -303,7 +289,6 @@
<g_photo_max_vars>50:150:150</g_photo_max_vars>
<g_dohtml>0</g_dohtml>
<g_edit_topic>0</g_edit_topic>
<g_email_limit>10:15</g_email_limit>
<g_bypass_badwords>0</g_bypass_badwords>
<g_can_msg_attach>0</g_can_msg_attach>
<g_attach_per_post>0</g_attach_per_post>
@@ -333,7 +318,6 @@
<g_mem_info>1</g_mem_info>
<g_other_topics>1</g_other_topics>
<g_use_search>1</g_use_search>
<g_email_friend>1</g_email_friend>
<g_edit_profile>1</g_edit_profile>
<g_post_new_topics>1</g_post_new_topics>
<g_reply_own_topics>1</g_reply_own_topics>
@@ -354,7 +338,6 @@
<g_avoid_flood>0</g_avoid_flood>
<g_icon>public/style_extra/team_icons/staff.png</g_icon>
<g_attach_max>500</g_attach_max>
<g_avatar_upload>1</g_avatar_upload>
<prefix></prefix>
<suffix></suffix>
<g_max_messages>50</g_max_messages>
@@ -368,7 +351,6 @@
<g_photo_max_vars>50:150:150</g_photo_max_vars>
<g_dohtml>0</g_dohtml>
<g_edit_topic>1</g_edit_topic>
<g_email_limit>10:15</g_email_limit>
<g_bypass_badwords>0</g_bypass_badwords>
<g_can_msg_attach>0</g_can_msg_attach>
<g_attach_per_post>0</g_attach_per_post>
+1 -1
View File
@@ -5,6 +5,6 @@
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionboard.com/">IP.Board</a>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -2,18 +2,18 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.1.4
* IP.Board v3.2.3
* Some required extensions to check for
* Last Updated: $Date: 2010-07-20 12:57:40 -0400 (Tue, 20 Jul 2010) $
* Last Updated: $Date: 2010-12-17 08:03:58 -0500 (Fri, 17 Dec 2010) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/community/board/license.html
* @license This is NULLED!
* @package IP.Board
* @link http://www.invisionpower.com
* @link http://hatynka.in
* @since 1st December 2008
* @version $Revision: 6682 $
* @version $Revision: 7446 $
*
*/
+5
View File
@@ -20,6 +20,11 @@
<menu>Адреса</menu>
<position>3</position>
</action>
<action>
<file>license</file>
<menu>Лицензия</menu>
<position>4</position>
</action>
<action>
<file>db</file>
<menu>Данные БД</menu>
+10
View File
@@ -0,0 +1,10 @@
<html>
<head><title>IP.Board - Bulletin Board System</title></head>
<body>
<h1>403: IP.Board -&gt; Forbidden</h1>
<hr>
You have reached this page in error, please use your back button to return to the forum.
<hr>
<a href="http://www.invisionpower.com">IP.Board</a>
</body>
</html>
@@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<replacements>
<replacement>
<replacement_key>f_read</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/f_read.png' alt='{lang:macro__readf}' title='{lang:macro__readf}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>mobile</replacement_master_key>
</replacement>
<replacement>
<replacement_key>f_redirect</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/f_redirect.png' alt='{lang:macro__redirect}' title='{lang:macro__redirect}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>mobile</replacement_master_key>
</replacement>
<replacement>
<replacement_key>f_unread</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/f_unread.png' alt='{lang:macro__unreadf}' title='{lang:macro__markread}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>mobile</replacement_master_key>
</replacement>
<replacement>
<replacement_key>msg_deleted</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/cross.png' title='{lang:macro__deletedmsg}' alt='*' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>mobile</replacement_master_key>
</replacement>
<replacement>
<replacement_key>msg_icon</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/pm_nonew.png' title='{lang:macro__nonewmsg}' alt='*' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>mobile</replacement_master_key>
</replacement>
<replacement>
<replacement_key>msg_icon_new</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/pm_new.png' title='{lang:macro__newmsg}' alt='*' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>mobile</replacement_master_key>
</replacement>
<replacement>
<replacement_key>openid_small</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/openid.gif' alt='{lang:macro__openidicon}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>mobile</replacement_master_key>
</replacement>
<replacement>
<replacement_key>snapback</replacement_key>
<replacement_content><![CDATA[&nbsp;]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>mobile</replacement_master_key>
</replacement>
<replacement>
<replacement_key>t_announcement</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/t_announcement.png' alt='{lang:announce_row}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>mobile</replacement_master_key>
</replacement>
<replacement>
<replacement_key>t_closed</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/t_locked.png' alt='{lang:pm_locked}' /><br />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>mobile</replacement_master_key>
</replacement>
<replacement>
<replacement_key>t_moved</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/t_moved.png' alt='{lang:pm_moved}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>mobile</replacement_master_key>
</replacement>
<replacement>
<replacement_key>t_read_dot</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/t_read_dot.png' alt='{lang:you_posted_here}' title='{lang:you_posted_here}' /><br />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>mobile</replacement_master_key>
</replacement>
<replacement>
<replacement_key>t_unread</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/t_unread.png' alt='{lang:pm_open_new}' /><br />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>mobile</replacement_master_key>
</replacement>
<replacement>
<replacement_key>t_unread_dot</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/t_unread_dot.png' alt='{lang:you_posted_here}' /><br />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>mobile</replacement_master_key>
</replacement>
</replacements>
@@ -0,0 +1,543 @@
<?xml version="1.0" encoding="utf-8"?>
<replacements>
<replacement>
<replacement_key>add_folder</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/folder_add.png' alt='{lang:add_folder}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>add_friend</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/user_add.png' alt='{lang:add_friend}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>add_poll_choice</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/add.png' alt='+' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>add_poll_question</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/add.png' alt='+' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_add_entry</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/book_add.png' alt='+' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_banish</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/layout_delete.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_blocks</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/layout_add.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_blog</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/blog.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_category</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/folder.png' alt='-' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_comments</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/comments.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_comments_new</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/comments_new.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_editor</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/blog_editor.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_group</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/blog_group.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_header</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/layout_header.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_link</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/book_open.png' alt='{lang:view_blog}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_locked</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/lock.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_option</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/option.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_owner</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/blog_owner.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_privateclub</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/blog_privateclub.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_rss_import</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/rss-import.png' alt='' title='{lang:entry_imported_from_rss}' data-tooltip='{lang:entry_imported_from_rss}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>blog_theme</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/blog/palette.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>close_poll_form</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/accept.png' alt='x' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>compose_icon</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/note_add.png' alt='{lang:macro__compose}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>display_name</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/display_name.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>dropdown</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/dropdown.png' alt='+' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>edit_folder</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/folder_edit.png' alt='{lang:edit_folders}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>find_icon</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/magnifier.png' alt='{lang:macro__compose}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>find_topics_link</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/page_topic_magnify.png' alt='{lang:find_topics}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>folder_delete</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/delete.png' alt='{lang:delete_folder_title}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>folder_drafts</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/folder.png' alt='{lang:macro__folder}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>folder_empty</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/bin.png' alt='{lang:empty_folder_title}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>folder_finished</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/folder.png' alt='{lang:macro__folder}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>folder_generic</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/folder.png' alt='{lang:macro__folder}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>folder_myconvo</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/email_go.png' alt='{lang:macro__myconvo}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>folder_new</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/folder_page.png' alt='{lang:macro__new}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>f_cat_read</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/f_cat_read.png' alt='{lang:macro__readcat}' title='{lang:macro__readcat}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>f_cat_unread</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/f_cat_unread.png' alt='{lang:macro__unreadcat}' title='{lang:macro__markread}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>f_nav_sep</replacement_key>
<replacement_content>{lang:_rarr}</replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>f_newpost</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/new_post.png' alt='' title='{lang:first_unread_post}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>f_pass_read</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/f_pass_read.png' alt='{lang:macro__readpw}' title='{lang:macro__readpw}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>f_pass_unread</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/f_pass_unread.png' alt='{lang:macro__unreadpw}' title='{lang:macro__markread}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>f_read</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/f_read.png' alt='{lang:macro__readf}' title='{lang:macro__readf}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>f_redirect</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/f_redirect.png' alt='{lang:macro__redirect}' title='{lang:macro__redirect}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>f_unread</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/f_unread.png' alt='{lang:macro__unreadf}' title='{lang:macro__markread}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>galery_album_edit</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/folder_edit.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>gallery_album_delete</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/delete.png' alt='-' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>gallery_image</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/gallery/image_add.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>gallery_link</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/picture.png' alt='{lang:view_gallery}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>gallery_slideshow</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/gallery/pictures.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>generic_cog</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/cog.png' alt='+' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>lim_facebook</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/loginmethods/facebook.png' alt='{lang:lim_facebook}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>lim_openid</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/loginmethods/openid.png' alt='{lang:lim_openid}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>lim_twitter</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/loginmethods/twitter.png' alt='{lang:lim_twitter}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>lim_windows</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/loginmethods/windows.png' alt='{lang:lim_windows}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>lim_vkontakte</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/loginmethods/vkontakte.png' alt='{lang:lim_vkontakte}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>live_large</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/live.gif' alt='{lang:macro__liveicon}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>live_small</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/live.gif' alt='{lang:macro__liveicon}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>lock_icon</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/lock.png' alt='{lang:pm_locked}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>logo_img</replacement_key>
<replacement_content>{style_image_url}/logo.png</replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>mini_rate_off</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/bullet_star_off.png' alt='-' class='mini_rate' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>mini_rate_on</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/bullet_star.png' alt='*' class='mini_rate' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>openid_large</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/openid_logo.png' alt='{lang:macro__openidlogo}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>openid_small</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/openid.gif' alt='{lang:macro__openidicon}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>pip_pip</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/bullet_black.png' alt='{lang:macro__pip}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>popular_post</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/star_big.png' alt='*' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>post_attach_link</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/attachicon.gif' alt='{lang:macro__attachment}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>rate_off</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/star_off.png' alt='-' class='rate_img' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>rate_on</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/star.png' alt='*' class='rate_img' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>remove_friend</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/user_delete.png' alt='{lang:remove_friend}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>remove_poll_choice</replacement_key>
<replacement_content><![CDATA[<span class='cancel' title='{lang:remove_choice}'>&times;</span>]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>remove_poll_question</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/cross.png' alt='-' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>report_green_alert</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/reports/post_alert_3.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>report_red_alert</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/reports/post_alert_1.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>rep_down</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/rep_down.png' alt='-' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>rep_up</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/rep_up.png' alt='+' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>send_msg</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/email_open.png' alt='{lang:pm_this_member}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>signin_icon</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/key.png' alt='{lang:macro__signin}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>snapback</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/snapback.png' alt='{lang:macro__view_post}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>sort_down</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/bullet_arrow_down.png' alt='V' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>sort_up</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/bullet_arrow_up.png' alt='^' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>spammer_off</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/spammer_off.png' alt='{lang:spm_off}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>spammer_on</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/spammer_on.png' alt='{lang:spm_on}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>topic_popup</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/topicpreview.png' alt='' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>t_announcement</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/t_announcement.png' alt='{lang:announce_row}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>t_closed</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/t_locked.png' alt='{lang:pm_locked}' /><br />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>t_moved</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/t_moved.png' alt='{lang:pm_moved}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>t_read_dot</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/t_read_dot.png' alt='{lang:you_posted_here}' title='{lang:you_posted_here}' /><br />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>t_unread</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/t_unread.png' alt='{lang:pm_open_new}' /><br />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>t_unread_dot</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/t_unread_dot.png' alt='{lang:you_posted_here}' /><br />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
<replacement>
<replacement_key>your_vote</replacement_key>
<replacement_content><![CDATA[<img src='{style_image_url}/bullet_star_rated.png' alt='{lang:macro__voted}' />]]></replacement_content>
<replacement_set_id>0</replacement_set_id>
<replacement_master_key>root</replacement_master_key>
</replacement>
</replacements>
+47
View File
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<skinsets>
<set>
<set_id>1</set_id>
<set_name>IP.Board</set_name>
<set_key>default</set_key>
<set_parent_id>0</set_parent_id>
<set_parent_array>a:0:{}</set_parent_array>
<set_child_array>a:0:{}</set_child_array>
<set_permissions>*</set_permissions>
<set_is_default>1</set_is_default>
<set_author_name>Invision Power Services, Inc</set_author_name>
<set_author_url>http://www.invisionpower.com</set_author_url>
<set_image_dir>master</set_image_dir>
<set_emo_dir>default</set_emo_dir>
<set_css_inline>1</set_css_inline>
<set_css_groups><![CDATA[a:26:{s:5:"1.254";a:2:{s:9:"css_group";s:15:"calendar_select";s:12:"css_position";s:1:"1";}s:5:"1.270";a:2:{s:9:"css_group";s:6:"ipblog";s:12:"css_position";s:1:"1";}s:5:"2.271";a:2:{s:9:"css_group";s:12:"ipblog.print";s:12:"css_position";s:1:"2";}s:5:"1.255";a:2:{s:9:"css_group";s:12:"ipb_calendar";s:12:"css_position";s:1:"1";}s:5:"1.256";a:2:{s:9:"css_group";s:12:"ipb_ckeditor";s:12:"css_position";s:1:"1";}s:5:"1.257";a:2:{s:9:"css_group";s:10:"ipb_common";s:12:"css_position";s:1:"1";}s:5:"1.258";a:2:{s:9:"css_group";s:10:"ipb_editor";s:12:"css_position";s:1:"1";}s:5:"0.259";a:2:{s:9:"css_group";s:8:"ipb_help";s:12:"css_position";s:1:"0";}s:5:"0.260";a:2:{s:9:"css_group";s:6:"ipb_ie";s:12:"css_position";s:1:"0";}s:5:"1.261";a:2:{s:9:"css_group";s:18:"ipb_login_register";s:12:"css_position";s:1:"1";}s:5:"1.262";a:2:{s:9:"css_group";s:13:"ipb_messenger";s:12:"css_position";s:1:"1";}s:5:"1.263";a:2:{s:9:"css_group";s:9:"ipb_mlist";s:12:"css_position";s:1:"1";}s:5:"1.264";a:2:{s:9:"css_group";s:16:"ipb_photo_editor";s:12:"css_position";s:1:"1";}s:5:"1.265";a:2:{s:9:"css_group";s:9:"ipb_print";s:12:"css_position";s:1:"1";}s:5:"1.266";a:2:{s:9:"css_group";s:11:"ipb_profile";s:12:"css_position";s:1:"1";}s:5:"2.267";a:2:{s:9:"css_group";s:10:"ipb_search";s:12:"css_position";s:1:"2";}s:5:"1.268";a:2:{s:9:"css_group";s:10:"ipb_styles";s:12:"css_position";s:1:"1";}s:5:"1.269";a:2:{s:9:"css_group";s:7:"ipb_ucp";s:12:"css_position";s:1:"1";}s:5:"1.272";a:2:{s:9:"css_group";s:6:"ipchat";s:12:"css_position";s:1:"1";}s:5:"1.273";a:2:{s:9:"css_group";s:9:"ipcontent";s:12:"css_position";s:1:"1";}s:5:"2.274";a:2:{s:9:"css_group";s:15:"ipcontent_print";s:12:"css_position";s:1:"2";}s:5:"1.275";a:2:{s:9:"css_group";s:11:"ipdownloads";s:12:"css_position";s:1:"1";}s:5:"1.276";a:2:{s:9:"css_group";s:9:"ipgallery";s:12:"css_position";s:1:"1";}s:5:"1.277";a:2:{s:9:"css_group";s:18:"ipgallery_lightbox";s:12:"css_position";s:1:"1";}s:5:"1.278";a:2:{s:9:"css_group";s:19:"ipgallery_slideshow";s:12:"css_position";s:1:"1";}s:5:"1.279";a:2:{s:9:"css_group";s:7:"ipnexus";s:12:"css_position";s:1:"1";}}]]></set_css_groups>
<set_added>1318601693</set_added>
<set_updated>1318601693</set_updated>
<set_output_format>html</set_output_format>
<set_locked_uagent/>
<set_hide_from_list>0</set_hide_from_list>
<set_master_key>root</set_master_key>
</set>
<set>
<set_id>2</set_id>
<set_name>IP.Board Mobile</set_name>
<set_key>mobile</set_key>
<set_parent_id>0</set_parent_id>
<set_parent_array>a:0:{}</set_parent_array>
<set_child_array>a:0:{}</set_child_array>
<set_permissions>*</set_permissions>
<set_is_default>1</set_is_default>
<set_author_name>Invision Power Services, Inc</set_author_name>
<set_author_url>http://www.invisionpower.com</set_author_url>
<set_image_dir>mobile</set_image_dir>
<set_emo_dir>default</set_emo_dir>
<set_css_inline>1</set_css_inline>
<set_css_groups><![CDATA[a:9:{s:5:"1.280";a:2:{s:9:"css_group";s:15:"calendar_select";s:12:"css_position";s:1:"1";}s:5:"1.286";a:2:{s:9:"css_group";s:6:"ipblog";s:12:"css_position";s:1:"1";}s:5:"1.281";a:2:{s:9:"css_group";s:10:"ipb_editor";s:12:"css_position";s:1:"1";}s:5:"0.282";a:2:{s:9:"css_group";s:6:"ipb_ie";s:12:"css_position";s:1:"0";}s:5:"1.283";a:2:{s:9:"css_group";s:9:"ipb_print";s:12:"css_position";s:1:"1";}s:5:"0.284";a:2:{s:9:"css_group";s:7:"ipb_rtl";s:12:"css_position";s:1:"0";}s:5:"1.285";a:2:{s:9:"css_group";s:10:"ipb_styles";s:12:"css_position";s:1:"1";}s:5:"1.287";a:2:{s:9:"css_group";s:11:"ipdownloads";s:12:"css_position";s:1:"1";}s:5:"1.288";a:2:{s:9:"css_group";s:9:"ipgallery";s:12:"css_position";s:1:"1";}}]]></set_css_groups>
<set_added>1318601693</set_added>
<set_updated>1318601693</set_updated>
<set_output_format>html</set_output_format>
<set_locked_uagent><![CDATA[a:2:{s:6:"groups";a:0:{}s:7:"uagents";a:10:{s:10:"blackberry";s:0:"";s:6:"iphone";s:0:"";s:9:"ipodtouch";s:0:"";s:12:"sonyericsson";s:0:"";s:5:"nokia";s:0:"";s:8:"motorola";s:0:"";s:7:"samsung";s:0:"";s:3:"htc";s:0:"";s:2:"lg";s:0:"";s:4:"palm";s:0:"";}}]]></set_locked_uagent>
<set_hide_from_list>0</set_hide_from_list>
<set_master_key>mobile</set_master_key>
</set>
</skinsets>
@@ -20,6 +20,11 @@
<menu>Приложения</menu>
<position>4</position>
</action>
<action>
<file>license</file>
<menu>Лицензия</menu>
<position>5</position>
</action>
<action>
<file>upgrade</file>
<menu>Обновление</menu>