Version 3.1.4

This commit is contained in:
Neo committed 2025-12-19 00:32:22 -08:00
1 parent 1d4720f3e2
commit ae5c01cc78
2563 files changed
+283048 -240689

No files matched your search

@@ -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.invisionboard.com/">IP.Board</a>
</body>
</html>
+20 -10
View File
@@ -1,20 +1,22 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.0.5
* IP.Board v3.1.4
* Static SETUP Classes for IP.Board 3
*
* These classes are not required as objects.
* Last Updated: $Date: 2009-05-20 07:39:47 -0400 (Wed, 20 May 2009) $
* Last Updated: $Date: 2010-05-05 09:11:48 -0400 (Wed, 05 May 2010) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @link http://www.iinvisionpower.com
* @license http://www.invisionpower.com/community/board/license.html
* @package IP.Board
* @link http://www.invisionpower.com
* @since 1st December 2008
* @version $Revision: 4672 $
* @version $Revision: 6221 $
*
*/
@@ -56,7 +58,6 @@ class IPSInstall
'last_activity' => time(),
'ip_address' => my_getenv('REMOTE_ADDR'),
'view_sigs' => 1,
'email_pm' => 1,
'view_img' => 1,
'view_avs' => 1,
'restrict_post' => 0,
@@ -66,11 +67,20 @@ class IPSInstall
'coppa_user' => 0,
'language' => IPSLib::getDefaultLanguage(),
'members_auto_dst' => 1,
'members_editor_choice' => ipsRegistry::$settings['ips_default_editor'],
'members_editor_choice' => ipsRegistry::$settings['ips_default_editor'] ? ipsRegistry::$settings['ips_default_editor'] : 'std',
'allow_admin_mails' => 0,
'hide_email' => 1,
'members_pass_hash' => $passhash,
'members_pass_salt' => $salt,
'has_blog' => '',
'fb_token' => '',
'identity_url' => '',
'ignored_users' => '',
'members_cache' => '',
'failed_logins' => '',
'bday_day' => 0,
'bday_month' => 0,
'bday_year' => 0
);
/* Insert: MEMBERS */
@@ -83,7 +93,7 @@ class IPSInstall
/* Insert into the custom profile fields DB */
ipsRegistry::DB()->force_data_type = array();
ipsRegistry::DB()->insert( 'pfields_content', array( 'member_id' => $member_id, 'updated' => time() ) );
ipsRegistry::DB()->insert( 'pfields_content', array( 'member_id' => $member_id ) );
/* Insert into pp */
ipsRegistry::DB()->insert( 'profile_portal', array(
@@ -124,7 +134,7 @@ class IPSInstall
'sql_user' => IPSSetUp::getSavedData('db_user'),
'sql_pass' => IPSSetUp::getSavedData('db_pass'),
'sql_tbl_prefix' => IPSSetUp::getSavedData('db_pre'),
'sql_debug' => 1,
'sql_debug' => 0,
'sql_charset' => 'utf8',
'board_start' => time(),
@@ -1,18 +1,20 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.0.5
* IP.Board v3.1.4
* ipsController for setup
* Last Updated: $Date: 2009-05-15 09:34:37 -0400 (Fri, 15 May 2009) $
* Last Updated: $Date: 2010-09-15 17:14:23 -0400 (Wed, 15 Sep 2010) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @link http://www.iinvisionpower.com
* @license http://www.invisionpower.com/community/board/license.html
* @package IP.Board
* @link http://www.invisionpower.com
* @since 1st December 2008
* @version $Revision: 4656 $
* @version $Revision: 6881 $
*
*/
@@ -23,7 +25,8 @@
*
* @author Matt Mecham
* @since Wednesday 14th May 2008
* @package Invision Power Board
* @package IP.Board
* @ignore
*/
class ipsController
{
@@ -96,7 +99,7 @@ class ipsController
*
* @author Matt Mecham
* @since Wednesday 14th May 2008
* @package Invision Power Board
* @package IP.Board
*/
class ipsController_CommandResolver
{
@@ -148,8 +151,9 @@ class ipsController_CommandResolver
*/
public function getCommand( ipsRegistry $registry )
{
$section = ipsRegistry::$current_section;
$filepath = ( IPS_IS_UPGRADER ) ? IPS_ROOT_PATH . 'setup/applications/upgrade/sections/' : IPS_ROOT_PATH . 'setup/applications/install/sections/';
$module = ipsRegistry::$current_module;
$section = ipsRegistry::$current_section;
$filepath = ( IPS_IS_UPGRADER ) ? IPS_ROOT_PATH . 'setup/applications/upgrade/sections/' : IPS_ROOT_PATH . 'setup/applications/install/sections/';
/* Got a section? */
if ( ! $section )
@@ -182,7 +186,7 @@ class ipsController_CommandResolver
}
else
{
throw new Exception( "$section в модуле $module не существует!" );
throw new Exception( "{$section} в модуле {$module} не существует!" );
}
}
@@ -207,6 +211,7 @@ abstract class ipsCommand
protected $lang;
protected $member;
protected $cache;
/**#@-*/
/**
* Constructor override
@@ -1,21 +1,28 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.0.5
* IP.Board v3.1.4
* Registry class for setup
* Last Updated: $Date: 2009-11-19 11:58:45 -0500 (Thu, 19 Nov 2009) $
* Last Updated: $Date: 2010-09-15 17:14:23 -0400 (Wed, 15 Sep 2010) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @link http://www.iinvisionpower.com
* @license http://www.invisionpower.com/community/board/license.html
* @package IP.Board
* @link http://www.invisionpower.com
* @since 1st December 2008
* @version $Revision: 5443 $
* @version $Revision: 6881 $
*
*/
/**
* ipsRegistry class for install/upgrade
* @package IP.Board
* @ignore
*/
class ipsRegistry
{
/**
@@ -354,9 +361,10 @@ class ipsRegistry
/* Load config file */
if ( file_exists( DOC_IPS_ROOT_PATH . "conf_global.php" ) )
{
$INFO = array();
require DOC_IPS_ROOT_PATH . "conf_global.php";
if ( is_array( $INFO ) )
if ( is_array( $INFO ) && count( $INFO ) )
{
foreach( $INFO as $key => $val )
{
@@ -431,13 +439,24 @@ class ipsRegistry
}
/**
* Dummy function to keep other code quiet
* Grabs apps bitwise array
*
* @access public
* @param string $appDir
* @return string Core variables
*/
static public function fetchBitWiseOptions()
static public function fetchBitWiseOptions( $appDir )
{
return FALSE;
if ( $appDir == 'global' )
{
return self::_fetchCoreVariables( 'bitwise' );
}
else
{
return self::_fetchAppCoreVariables( $appDir, 'bitwise' );
}
}
/**
* Fetch global config data as array
*
@@ -1837,7 +1856,21 @@ class ips_CacheRegistry extends ips_base_Registry
self::instance()->save_options = $options;
return self::instance()->cacheSet( $key, $value );
}
/**
* Store into cache library
*
* @access public
* @param string Key
* @param mixed Item to cache
* @param int Time to live
* @return mixed
*/
static public function putWithCacheLib( $key, $value, $ttl=0 )
{
return true;
}
/**
* Rebuild a cache
*
+382 -52
View File
@@ -1,20 +1,22 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.0.5
* IP.Board v3.1.4
* Static SETUP Classes for IP.Board 3
*
* These classes are not required as objects.
* Last Updated: $Date: 2009-10-13 17:40:38 -0400 (Tue, 13 Oct 2009) $
* Last Updated: $Date: 2010-11-15 11:39:10 -0500 (Mon, 15 Nov 2010) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @link http://www.iinvisionpower.com
* @license http://www.invisionpower.com/community/board/license.html
* @package IP.Board
* @link http://www.invisionpower.com
* @since 1st December 2008
* @version $Revision: 5228 $
* @version $Revision: 7185 $
*
*/
@@ -166,7 +168,279 @@ class IPSSetUp
return FALSE;
}
}
/**
* Check for previous sessions.
* Checks to see if there's an unfinished upgrade.
*
* @access public
*/
static public function checkForPreviousSessions()
{
$session = ipsRegistry::DB()->buildAndFetch( array( 'select' => '*',
'from' => 'upgrade_sessions',
'where' => 'session_section != \'done\' AND session_section != \'apps\' AND session_id !=\'' . addslashes( ipsRegistry::$request['s'] ) . '\'',
'order' => 'session_current_time DESC',
'limit' => array( 0, 1 ) ) );
/* Expand some stuff */
$session['_session_post'] = unserialize( $session['session_post'] );
$session['_session_get'] = unserialize( $session['session_get'] );
$session['_session_data'] = unserialize( $session['session_data'] );
if ( $session['_session_post']['_sd'] )
{
$session['_sd'] = unserialize( urldecode( $session['_session_post']['_sd'] ) );
}
return ( $session ) ? $session : array();
}
/**
* Removes previous session
*
* @param array
* @access public
*/
static public function removePreviousSession()
{
/* Delete all previous sessions */
ipsRegistry::DB()->delete( 'upgrade_sessions', 'session_id != \'' . ipsRegistry::$request['s'] . '\'' );
}
/**
* Check for previous sessions.
* Checks to see if there's an unfinished upgrade.
*
* @param array
* @access public
*/
static public function restorePreviousSession( $session )
{
/* Delete all previous sessions */
ipsRegistry::DB()->delete( 'upgrade_sessions', 'session_id != \'' . ipsRegistry::$request['s'] . '\'' );
/* Update the session */
ipsRegistry::DB()->update( 'upgrade_sessions', array( 'session_current_time' => time(),
'session_section' => $session['session_section'],
'session_post' => serialize( $session['_session_post'] ),
'session_get' => serialize( $session['_session_get'] ) ), 'session_id=\'' . ipsRegistry::$request['s'] . '\'' );
/* Set correct app */
$_GET['app'] = 'upgrade';
$_POST['app'] = 'upgrade';
ipsRegistry::$request['app'] = 'upgrade';
ipsRegistry::$current_section = 'upgrade';
/* Set correct section */
$_GET['section'] = $session['_session_get']['section'];
$_POST['section'] = $session['_session_get']['section'];
ipsRegistry::$request['section'] = $session['_session_get']['section'];
ipsRegistry::$current_section = $session['_session_get']['section'];
/* Set up the correct do */
$_GET['do'] = $session['_session_get']['do'];
$_POST['do'] = $session['_session_get']['do'];
ipsRegistry::$request['do'] = $session['_session_get']['do'];
/* Set up the correct previous */
$_GET['previous'] = $session['_session_get']['previous'];
$_POST['previous'] = $session['_session_get']['previous'];
ipsRegistry::$request['previous'] = $session['_session_get']['previous'];
/* Set up SD */
$_POST['_sd'] = $session['_sd'];
ipsRegistry::$request['_sd'] = $session['_sd'];
/* App dir, etc */
ipsRegistry::$request['appdir'] = $session['_sd']['appdir'];
ipsRegistry::$request['man'] = $session['_sd']['man'];
ipsRegistry::$request['helpfile'] = $session['_sd']['helpfile'];
$apps = explode( ',', $session['_sd']['install_apps'] );
$toSave = array();
$vNums = array();
/* set saved data */
if ( count( $session['_sd'] ) )
{
foreach( $session['_sd'] as $k => $v )
{
if ( $k )
{
IPSSetUp::setSavedData( $k, $v );
}
}
}
if ( is_array( $apps ) and count( $apps ) )
{
/* Grab data */
foreach( $apps as $app )
{
/* Grab version numbers */
$numbers = IPSSetUp::fetchAppVersionNumbers( $app );
/* Grab all numbers */
$nums[ $app ] = IPSSetUp::fetchXmlAppVersions( $app );
/* Grab app data */
$appData[ $app ] = IPSSetUp::fetchXmlAppInformation( $app );
$appClasses[ $app ] = IPSSetUp::fetchVersionClasses( $app, $numbers['current'][0], $numbers['latest'][0] );
/* Store starting vnums */
$vNums[ $app ] = $numbers['current'][0];
}
/* Got anything? */
if ( count( $appClasses ) )
{
foreach( $appClasses as $app => $data )
{
foreach( $data as $num )
{
if ( file_exists( 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' );
$_tmp = new $_class( ipsRegistry::instance() );
if ( method_exists( $_tmp, 'preInstallOptionsSave' ) )
{
$_t = $_tmp->preInstallOptionsSave();
if ( is_array( $_t ) AND count( $_t ) )
{
$toSave[ $app ][ $num ] = $_t;
}
}
}
}
}
/* Save it */
if ( count( $toSave ) )
{
IPSSetUp::setSavedData('custom_options', $toSave );
}
if ( count( $vNums ) )
{
IPSSetUp::setSavedData('version_numbers', $vNums );
}
}
/* Freeze data */
IPSSetUp::freezeSavedData();
/* Thaw it */
IPSSetUp::thawSavedData();
}
/* Re run our controller */
ipsController::run();
}
/**
* Update previous template data
*
* @access public
* @param string Current Human version ID
* @param int Current Long Version ID
* @param string App key (aka app_dir)
*/
static public function resetPreviousTemplates( $uipLong, $uipHuman, $app )
{
# For now, if not core, skip
if ( $app != 'core' )
{
return;
}
# < 3.1.0 won't have this, so just skip
if ( ipsRegistry::DB()->checkForField( 'template_master_key', 'skin_templates' ) )
{
ipsRegistry::DB()->delete( 'skin_templates_previous' );
ipsRegistry::DB()->delete( 'skin_css_previous' );
ipsRegistry::DB()->build( array( 'select' => '*',
'from' => 'skin_templates',
'where' => 'template_master_key != \'\'' ) );
$o = ipsRegistry::DB()->execute();
while( $row = ipsRegistry::DB()->fetch( $o ) )
{
ipsRegistry::DB()->insert( 'skin_templates_previous', array( 'p_template_group' => $row['template_group'],
'p_template_content' => $row['template_content'],
'p_template_name' => $row['template_name'],
'p_template_data' => $row['template_data'],
'p_template_master_key' => $row['template_master_key'],
'p_template_long_version' => $uipLong,
'p_template_human_version' => $uipHuman ) );
}
ipsRegistry::DB()->build( array( 'select' => '*',
'from' => 'skin_css',
'where' => 'css_master_key != \'\'' ) );
$o = ipsRegistry::DB()->execute();
while( $row = ipsRegistry::DB()->fetch( $o ) )
{
ipsRegistry::DB()->insert( 'skin_css_previous', array( 'p_css_group' => $row['css_group'],
'p_css_content' => $row['css_content'],
'p_css_app' => $row['css_app'],
'p_css_attributes' => $row['css_attributes'],
'p_css_modules' => $row['css_modules'],
'p_css_master_key' => $row['css_master_key'],
'p_css_long_version' => $uipLong,
'p_css_human_version' => $uipHuman ) );
}
}
# If this is 3.0.x, save the templates
else if ( ipsRegistry::DB()->checkForTable( 'skin_collections' ) )
{
ipsRegistry::DB()->build( array( 'select' => '*',
'from' => 'skin_templates',
'where' => 'template_set_id=0' ) );
$o = ipsRegistry::DB()->execute();
while( $row = ipsRegistry::DB()->fetch( $o ) )
{
ipsRegistry::DB()->insert( 'skin_templates_previous', array( 'p_template_group' => $row['template_group'],
'p_template_content' => $row['template_content'],
'p_template_name' => $row['template_name'],
'p_template_data' => $row['template_data'],
'p_template_master_key' => 'root',
'p_template_long_version' => $uipLong,
'p_template_human_version' => $uipHuman ) );
}
ipsRegistry::DB()->build( array( 'select' => '*',
'from' => 'skin_css',
'where' => 'css_set_id=0' ) );
$o = ipsRegistry::DB()->execute();
while( $row = ipsRegistry::DB()->fetch( $o ) )
{
ipsRegistry::DB()->insert( 'skin_css_previous', array( 'p_css_group' => $row['css_group'],
'p_css_content' => $row['css_content'],
'p_css_app' => $row['css_app'],
'p_css_attributes' => $row['css_attributes'],
'p_css_modules' => $row['css_modules'],
'p_css_master_key' => 'root',
'p_css_long_version' => $uipLong,
'p_css_human_version' => $uipHuman ) );
}
}
}
/**
* Create a MySQL source file for larger boards
*
@@ -254,6 +528,13 @@ class IPSSetUp
$query = preg_replace( "#(\s|'|\")PK_(\S+)#", " \\1" . $prefix."PK_\\2", $query );
$query = preg_replace( "#(\s|'|\")ftcatalog(\s|'|\")#", " \\1" . $prefix."ftcatalog\\2", $query );
$query = preg_replace( "#^SET IDENTITY_INSERT (?:\s+?)?(\S+)\s+?#i" , "SET IDENTITY_INSERT " . $prefix."\\1 ", $query );
$query = preg_replace( "#(\S+)(.*)IDENTITY PK_(\S+) PRIMARY KEY#", "\\1\\2IDENTITY " . $prefix."PK_\\3 PRIMARY KEY", $query );
$query = preg_replace( "#(\S+)(.*)IDENTITY CONSTRAINT PK_(\S+) PRIMARY KEY#", "\\1\\2IDENTITY CONSTRAINT " . $prefix."PK_\\3 PRIMARY KEY", $query );
$query = preg_replace( "#^CREATE INDEX (\S+) ON (\S+) #", "CREATE INDEX \\1 ON " . $prefix."\\2 " , $query );
$query = preg_replace( "#^CREATE UNIQUE INDEX (\S+) ON (\S+) #", "CREATE UNIQUE INDEX \\1 ON " . $prefix."\\2 " , $query );
$query = preg_replace( "# PK_(\S+)#", " " . $prefix."PK_\\1", $query );
}
return $query;
@@ -271,14 +552,16 @@ class IPSSetUp
{
$file_name = DOC_IPS_ROOT_PATH . 'cache/sql_upgrade_log_'.date('m_d_y').'.cgi';
$_error_string = "\n===================================================";
$_error_string .= "\n Дата: ". date( 'r' );
$_error_string .= "\n IP адрес: " . $_SERVER['REMOTE_ADDR'];
$_error_string .= "\n Приложение " . $app;
$_error_string .= "\n Версия: " . $version;
$_error_string .= "\n Шаг: " . ipsRegistry::$request['do'];
$_error_string .= "\n Действие: " . ipsRegistry::$request['workact'];
$_error_string .= "\n\n\n ".$message;
$_error_string = "===================================================";
$_error_string .= "\nDate: ". date( 'r' );
$_error_string .= "\nIP Address: " . $_SERVER['REMOTE_ADDR'];
$_error_string .= "\nApplication " . $app;
$_error_string .= "\nVersion Folder: " . $version;
$_error_string .= "\nCurrent Sub Step: " . ipsRegistry::$request['do'];
$_error_string .= "\nCurrent workact: " . ipsRegistry::$request['workact'];
$_error_string .= "\n---------------------------------------------------";
$_error_string .= "\n".$message . "\n";
if ( $fh = @fopen( $file_name, "a" ) )
{
@@ -308,28 +591,31 @@ class IPSSetUp
}
/* Search for files... */
$dh = opendir( IPSLib::getAppDir( $app ) . '/setup/versions' );
while ( false !== ( $file = readdir( $dh ) ) )
{
if ( is_dir( IPSLib::getAppDir( $app ) . '/setup/versions/' . $file ) )
{
if ( $file != "." && $file != ".." && $file != 'install' )
if( is_dir( IPSLib::getAppDir( $app ) . '/setup/versions' ) )
{
$dh = opendir( IPSLib::getAppDir( $app ) . '/setup/versions' );
while ( false !== ( $file = readdir( $dh ) ) )
{
if ( is_dir( IPSLib::getAppDir( $app ) . '/setup/versions/' . $file ) )
{
if ( strstr( $file, 'upg_' ) )
if ( $file != "." && $file != ".." && $file != 'install' )
{
$tmp = intval( str_replace( "upg_", "", $file ) );
if ( $tmp > $from AND $tmp <= $to )
if ( strstr( $file, 'upg_' ) )
{
if ( file_exists( IPSLib::getAppDir( $app ) . '/setup/versions/' . $file . '/version_class.php' ) )
$tmp = intval( str_replace( "upg_", "", $file ) );
if ( $tmp > $from AND $tmp <= $to )
{
$classes[] = $tmp;
if ( file_exists( IPSLib::getAppDir( $app ) . '/setup/versions/' . $file . '/version_class.php' ) )
{
$classes[] = $tmp;
}
}
}
}
}
}
}
}
return $classes;
@@ -338,7 +624,8 @@ class IPSSetUp
/**
* Fetch current and next app versions
*
* @access public Application Directory
* @access public
* @param string Application Directory
* @return array array( 'current' => array( 000000, '1.0.0 Beta1' ), 'next' => array( 000000, '1.0.0 Beta1' ), 'latest' => array( 000000, '1.0.0 Beta1' ) )
*/
static public function fetchAppVersionNumbers( $app )
@@ -350,12 +637,16 @@ class IPSSetUp
/* Latest version */
$XMLVersions = self::fetchXmlAppVersions( $app );
$tmp = $XMLVersions;
krsort( $tmp );
foreach( $tmp as $long => $human )
if( is_array($tmp) AND count($tmp) )
{
$return['latest'] = array( $long, $human );
break;
krsort( $tmp );
foreach( $tmp as $long => $human )
{
$return['latest'] = array( $long, $human );
break;
}
}
/* Current Version */
@@ -434,6 +725,32 @@ class IPSSetUp
$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;
}
}
}
$return['current'] = ( $key ) ? array( $key, $XMLVersions[ $key ] ) : array( 0, 'install' );
@@ -441,12 +758,15 @@ class IPSSetUp
/* Next version */
$nextKey = 0;
foreach( $XMLVersions as $long => $human )
if( is_array($XMLVersions) AND count($XMLVersions) )
{
if ( $long > $return['current'][0] )
foreach( $XMLVersions as $long => $human )
{
$nextKey = $long;
break;
if ( $long > $return['current'][0] )
{
$nextKey = $long;
break;
}
}
}
@@ -493,7 +813,8 @@ class IPSSetUp
/**
* Fetch app DB versions
*
* @access public Application Directory
* @access public
* @param string Application Directory
* @return array
*/
static public function fetchDbAppVersions( $app )
@@ -595,6 +916,11 @@ class IPSSetUp
try
{
if( !file_exists( IPSLib::getAppDir( $app ) . '/xml/versions.xml' ) )
{
return false;
}
$xml->load( IPSLib::getAppDir( $app ) . '/xml/versions.xml' );
/* Fetch general information */
@@ -639,9 +965,10 @@ class IPSSetUp
* @access public
* @param string Previous application
* @param string XML file to search for. If supplied, function will return next app that has the XML file. Use {app} for $app ({app}_settings.xml)
* @param string Charset (used post-install)
* @return mixed
*/
static public function fetchNextApplication( $previous='', $xmlFileSearch='' )
static public function fetchNextApplication( $previous='', $xmlFileSearch='', $charset='' )
{
//-----------------------------------------
// INIT
@@ -690,7 +1017,7 @@ class IPSSetUp
if ( $return )
{
return self::fetchXmlAppInformation( $return );
return self::fetchXmlAppInformation( $return, $charset );
}
return FALSE;
@@ -784,16 +1111,17 @@ class IPSSetUp
*
* @access public
* @param string Application Directory
* @param string Character set (used for ACP)
* @return array ..of data
*/
static public function fetchXmlAppInformation( $app )
static public function fetchXmlAppInformation( $app, $charset='' )
{
/* INIT */
$info = array();
/* Fetch core writeable files */
require_once( IPS_KERNEL_PATH . 'classXML.php' );
$xml = new classXML( IPSSetUp::charSet );
$xml = new classXML( $charset ? $charset : IPSSetUp::charSet );
try
{
@@ -844,9 +1172,10 @@ class IPSSetUp
*
* @access public
* @param string Application Directory
* @param string Charset (post install)
* @return array ..of data
*/
static public function fetchXmlAppModules( $app )
static public function fetchXmlAppModules( $app, $charset='' )
{
//-----------------------------------------
// No modules?
@@ -860,14 +1189,10 @@ class IPSSetUp
/* INIT */
$modules = array();
/* Fetch core writeable files */
require_once( IPS_KERNEL_PATH . 'classXML.php' );
$xml = new classXML( IPSSetUp::charSet );
try
{
require_once( IPS_KERNEL_PATH . 'classXML.php' );
$xml = new classXML( IPSSetUp::charSet );
$xml = new classXML( $charset ? $charset : IPSSetUp::charSet );
$xml->load( IPSLib::getAppDir( $app ) . '/xml/' . $app . '_modules.xml' );
@@ -880,6 +1205,11 @@ class IPSSetUp
{
unset($data['sys_module_id']);
}
/* Remove fields removed from 3.1.3+ to avoid driver errors */
unset($data['sys_module_parent']);
unset($data['sys_module_tables']);
unset($data['sys_module_hooks']);
$modules[ $data['sys_module_key'] . intval($data['sys_module_admin']) ] = $data;
}
@@ -946,7 +1276,7 @@ class IPSSetUp
static function freezeSavedData()
{
/* Encode */
$data = urlencode( serialize( self::$_savedData ) );
$data = base64_encode( serialize( self::$_savedData ) );
/* Write to our cache file */
if ( is_array( self::$_savedData ) )
@@ -979,7 +1309,7 @@ class IPSSetUp
}
}
self::$_savedData = unserialize( urldecode( $data ) );
self::$_savedData = unserialize( base64_decode( $data ) );
}
/**
@@ -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.invisionboard.com/">IP.Board</a>
</body>
</html>
@@ -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.invisionboard.com/">IP.Board</a>
</body>
</html>
@@ -1,17 +1,19 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.0.5
* IP.Board v3.1.4
* Installer output methods
* Last Updated: $Date: 2009-11-19 11:58:45 -0500 (Thu, 19 Nov 2009) $
* Last Updated: $Date: 2010-09-15 17:14:23 -0400 (Wed, 15 Sep 2010) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @link http://www.iinvisionpower.com
* @license http://www.invisionpower.com/community/board/license.html
* @package IP.Board
* @link http://www.invisionpower.com
* @since 1st December 2008
* @version $Revision: 5443 $
* @version $Revision: 6881 $
*
*/
@@ -27,8 +29,9 @@ if ( ! defined( 'IN_IPB' ) )
* Class for managing skins, templates and printing output
*
* @author Matt Mecham
* @package Invision Power Board
* @package IP.Board
* @version 3.0.0
* @ignore
*/
class output
{
@@ -44,6 +47,7 @@ class output
public $request;
public $member;
public $cache;
/**#@-*/
/**
* URLs array
@@ -523,7 +527,7 @@ class output
* Main output function
*
* @access public
* @access boolean TRUE - freeze data, FALSE, do not.
* @param boolean TRUE - freeze data, FALSE, do not.
* @return void Nothin'
*/
public function sendOutput( $saveData=TRUE )
@@ -561,9 +565,15 @@ class output
// Header
//-----------------------------------------
if ( isset( $_SERVER['SERVER_PROTOCOL'] ) AND strstr( $_SERVER['SERVER_PROTOCOL'], '/1.0' ) )
{
header( "HTTP/1.0 200 OK" );
}
else
{
header( "HTTP/1.1 200 OK" );
//header( "Content-type: text/html;charset={$this->settings['gb_char_set']}" );
}
header( "Content-type: text/html;charset=utf-8" );
header( "Cache-Control: no-cache, must-revalidate, max-age=0" );
header( "Expires: 0" );
@@ -665,11 +675,12 @@ class output
{
$remapData = array();
if ( IN_DEV and file_exists( DOC_IPS_ROOT_PATH . 'cache/skin_cache/masterMap.php' ) )
if ( file_exists( DOC_IPS_ROOT_PATH . 'cache/skin_cache/masterMap.php' ) )
{
$REMAP = array();
require( DOC_IPS_ROOT_PATH . 'cache/skin_cache/masterMap.php' );
if ( is_array( $REMAP ) )
if ( is_array( $REMAP ) && count( $REMAP ) )
{
/* Master skins */
foreach( array( 'templates', 'css' ) as $type )
@@ -678,9 +689,19 @@ class output
{
if ( preg_match( "#^[a-zA-Z]#", $id ) )
{
/* we're using a key */
$_skin = $this->_fetchSkinByKey( $id );
if ( is_array( $REMAP['masterKeys'] ) )
{
if ( in_array( $id, $REMAP['masterKeys'] ) )
{
$_skin = array( 'set_id' => $id );
}
}
else
{
/* we're using a key */
$_skin = $this->_fetchSkinByKey( $id );
}
$remapData[ $type ][ $_skin['set_id'] ] = $dir;
}
else
@@ -690,26 +711,51 @@ class output
}
}
}
/* IN DEV default */
if ( preg_match( "#^[a-zA-Z]#", $REMAP['inDevDefault'] ) )
{
$_skin = $this->_fetchSkinByKey( $REMAP['inDevDefault'] );
if ( is_array( $REMAP['masterKeys'] ) )
{
if ( in_array( $REMAP['inDevDefault'], $REMAP['masterKeys'] ) )
{
$_skin = array( 'set_id' => $REMAP['inDevDefault'] );
}
}
else
{
/* we're using a key */
$_skin = $this->_fetchSkinByKey( $REMAP['inDevDefault'] );
}
$remapData['inDevDefault'] = $_skin['set_id'];
}
else
{
$remapData['inDevDefault'] = $REMAP['inDevDefault'];
}
/* Master keys */
$remapData['masterKeys'] = $REMAP['masterKeys'];
/* IN DEV export */
foreach( $REMAP['export'] as $id => $key )
{
if ( preg_match( "#^[a-zA-Z]#", $key ) )
{
$_skin = $this->_fetchSkinByKey( $key );
if ( is_array( $REMAP['masterKeys'] ) )
{
if ( in_array( $key, $REMAP['masterKeys'] ) )
{
$_skin = array( 'set_id' => $key );
}
}
else
{
/* we're using a key */
$_skin = $this->_fetchSkinByKey( $id );
}
$remapData['export'][ $id ] = $_skin['set_id'];
}
else
@@ -726,6 +772,7 @@ class output
'inDevDefault' => 0 );
}
return $remapData;
}
@@ -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.invisionboard.com/">IP.Board</a>
</body>
</html>
@@ -1,17 +1,19 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.0.5
* IP.Board v3.1.4
* Setup sessions class
* Last Updated: $Date: 2009-08-07 07:52:33 -0400 (Fri, 07 Aug 2009) $
* Last Updated: $Date: 2010-07-14 05:39:08 -0400 (Wed, 14 Jul 2010) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @link http://www.iinvisionpower.com
* @license http://www.invisionpower.com/community/board/license.html
* @package IP.Board
* @link http://www.invisionpower.com
* @since 1st December 2008
* @version $Revision: 4999 $
* @version $Revision: 6647 $
*
*/
@@ -23,6 +25,10 @@ if ( ! defined( 'IN_IPB' ) )
define( 'IPB_UPGRADER_IP_MATCH', FALSE );
/**
* Sessions class for setup
* @ignore
*/
class sessions extends ips_MemberRegistry
{
/**
@@ -115,7 +121,7 @@ class sessions extends ips_MemberRegistry
/* Member exists? */
if ( ! self::instance()->data_store['email'] )
{
return $this->_response( 0, 'Неверный ID пользователя' );
return $this->_response( 0, 'Неверный Email пользователя' );
}
else
{
@@ -197,7 +203,7 @@ class sessions extends ips_MemberRegistry
if ( $member['member_id'] AND $authKey )
{
$this->DB->delete( 'upgrade_sessions', 'session_current_time < ' . $_bash );
$this->DB->delete( 'upgrade_sessions', 'session_current_time < ' . $_bash . ' AND session_section=\'done\'' );
$this->DB->insert( 'upgrade_sessions', array( 'session_id' => $_s,
'session_member_id' => $member['member_id'],
'session_member_key' => $authKey,
+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.invisionboard.com/">IP.Board</a>
</body>
</html>
+32 -7
View File
@@ -1,17 +1,19 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.0.5
* IP.Board v3.1.4
* Version Specific Upgrade Functions
* Last Updated: $Date: 2009-01-05 22:21:54 +0000 (Mon, 05 Jan 2009) $
* Last Updated: $Date: 2010-10-01 20:18:21 -0400 (Fri, 01 Oct 2010) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @link http://www.iinvisionpower.com
* @license http://www.invisionpower.com/community/board/license.html
* @package IP.Board
* @link http://www.invisionpower.com
* @since 1st December 2008
* @version $Revision: 3572 $
* @version $Revision: 6937 $
*
*/
@@ -44,6 +46,13 @@ class upgradeLegacy
//* 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' ) )
{
/* Init vars */
$UPGRADE_HISTORY_TABLE = '';
$UPGRADE_TABLE_FIELD = '';
$UPGRADE_SESSION_TABLE = '';
$UPGRADE_CSS_PREVIOUS = '';
$UPGRADE_TEMPLATE_PREVIOUS = '';
require( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' );
$prefix = $this->registry->dbFunctions()->getPrefix();
@@ -71,6 +80,22 @@ class upgradeLegacy
$this->DB->query( IPSSetUp::addPrefixToQuery( $UPGRADE_SESSION_TABLE, $prefix ) );
}
}
if ( ! $this->DB->checkForTable( 'skin_css_previous' ) )
{
if ( $UPGRADE_CSS_PREVIOUS )
{
$this->DB->query( IPSSetUp::addPrefixToQuery( $UPGRADE_CSS_PREVIOUS, $prefix ) );
}
}
if ( ! $this->DB->checkForTable( 'skin_templates_previous' ) )
{
if ( $UPGRADE_TEMPLATE_PREVIOUS )
{
$this->DB->query( IPSSetUp::addPrefixToQuery( $UPGRADE_TEMPLATE_PREVIOUS, $prefix ) );
}
}
}
}
@@ -150,7 +175,7 @@ class upgradeLegacy
/* Attempt to load member */
$this->DB->build( array( 'select' => 'm.*',
'from' => array( 'members' => 'm' ),
'where' => 'LOWER(m.name)=\'' . mb_strtolower( $username ) . '\'',
'where' => $this->DB->buildLower('m.name') . "='" . mb_strtolower( $username ) . "'",
'add_join' => array( array( 'select' => 'g.*',
'from' => array( 'groups' => 'g' ),
'where' => 'g.g_id=m.mgroup' ) ) ) );
+31 -7
View File
@@ -1,17 +1,19 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.0.5
* IP.Board v3.1.4
* Version Specific Upgrade Functions
* Last Updated: $Date: 2009-01-05 22:21:54 +0000 (Mon, 05 Jan 2009) $
* Last Updated: $Date: 2010-10-01 20:18:21 -0400 (Fri, 01 Oct 2010) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @link http://www.iinvisionpower.com
* @license http://www.invisionpower.com/community/board/license.html
* @package IP.Board
* @link http://www.invisionpower.com
* @since 1st December 2008
* @version $Revision: 3572 $
* @version $Revision: 6937 $
*
*/
@@ -44,6 +46,12 @@ class upgradeLegacy
/* 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' ) )
{
/* Init vars */
$UPGRADE_TABLE_FIELD = '';
$UPGRADE_SESSION_TABLE = '';
$UPGRADE_CSS_PREVIOUS = '';
$UPGRADE_TEMPLATE_PREVIOUS = '';
require( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' );
$prefix = $this->registry->dbFunctions()->getPrefix();
@@ -63,6 +71,22 @@ class upgradeLegacy
$this->DB->query( IPSSetUp::addPrefixToQuery( $UPGRADE_SESSION_TABLE, $prefix ) );
}
}
if ( ! $this->DB->checkForTable( 'skin_css_previous' ) )
{
if ( $UPGRADE_CSS_PREVIOUS )
{
$this->DB->query( IPSSetUp::addPrefixToQuery( $UPGRADE_CSS_PREVIOUS, $prefix ) );
}
}
if ( ! $this->DB->checkForTable( 'skin_templates_previous' ) )
{
if ( $UPGRADE_TEMPLATE_PREVIOUS )
{
$this->DB->query( IPSSetUp::addPrefixToQuery( $UPGRADE_TEMPLATE_PREVIOUS, $prefix ) );
}
}
}
}
@@ -156,7 +180,7 @@ class upgradeLegacy
{
/* Log in type */
$loginType = $this->_fetchLogInType();
$where = ( $loginType == 'username' ) ? 'LOWER(m.name)=\'' . mb_strtolower( $username ) . '\'' : 'm.email=\'' . mb_strtolower( $username ) . '\'';
$where = ( $loginType == 'username' ) ? $this->DB->buildLower('m.name'). "='" . mb_strtolower( $username ) . "'" : "m.email='" . mb_strtolower( $username ) . "'";
/* Attempt to load member */
$this->DB->build( array( 'select' => 'm.*',
+30 -6
View File
@@ -1,17 +1,19 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.0.5
* IP.Board v3.1.4
* Version Specific Upgrade Functions
* Last Updated: $Date: 2009-01-05 22:21:54 +0000 (Mon, 05 Jan 2009) $
* Last Updated: $Date: 2010-09-15 17:14:23 -0400 (Wed, 15 Sep 2010) $
* </pre>
*
* @author Matt Mecham
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.iinvisionpower.com/community/board/license.html
* @package Invision Power Board
* @link http://www.iinvisionpower.com
* @license http://www.invisionpower.com/community/board/license.html
* @package IP.Board
* @link http://www.invisionpower.com
* @since 1st December 2008
* @version $Revision: 3572 $
* @version $Revision: 6881 $
*
*/
@@ -44,6 +46,12 @@ class upgradeLegacy
/* 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' ) )
{
/* Init vars */
$UPGRADE_TABLE_FIELD = '';
$UPGRADE_SESSION_TABLE = '';
$UPGRADE_CSS_PREVIOUS = '';
$UPGRADE_TEMPLATE_PREVIOUS = '';
require( IPS_ROOT_PATH . 'setup/sql/ipb3_' . strtolower( ipsRegistry::$settings['sql_driver'] ) . '.php' );
$prefix = $this->registry->dbFunctions()->getPrefix();
@@ -63,6 +71,22 @@ class upgradeLegacy
$this->DB->query( IPSSetUp::addPrefixToQuery( $UPGRADE_SESSION_TABLE, $prefix ) );
}
}
if ( ! $this->DB->checkForTable( 'skin_css_previous' ) )
{
if ( $UPGRADE_CSS_PREVIOUS )
{
$this->DB->query( IPSSetUp::addPrefixToQuery( $UPGRADE_CSS_PREVIOUS, $prefix ) );
}
}
if ( ! $this->DB->checkForTable( 'skin_templates_previous' ) )
{
if ( $UPGRADE_TEMPLATE_PREVIOUS )
{
$this->DB->query( IPSSetUp::addPrefixToQuery( $UPGRADE_TEMPLATE_PREVIOUS, $prefix ) );
}
}
}
}
@@ -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.invisionboard.com/">IP.Board</a>
</body>
</html>