Version 3.4.6

This commit is contained in:
Neo committed 2025-12-19 00:40:53 -08:00
1 parent e4478369d8
commit b45ea0dffb
1568 files changed
+155104 -161665

No files matched your search

@@ -7,7 +7,7 @@
* $Author: bfarber $
* @since -
* $LastChangedDate: 2011-07-20 20:19:22 -0400 (Wed, 20 Jul 2011) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 9296 $
*/
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Member property updater (AJAX)
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Core Sessions
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -28,7 +28,7 @@ if ( ! defined( 'IN_IPB' ) )
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Item Marking
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -2,7 +2,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Core registered caches, redirect resets and bitwise settings
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -1,335 +1,237 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* Dashboard Notifications
* Last Updated: $Date
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/company/standards.php#license
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @version $Rev: 12238 $
*/
if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
exit();
}
/**
* Main loader class
*/
class dashboardNotifications__core
{
/**
* Registry Object Shortcuts
*
* @var object
*/
public $settings;
public $lang;
public $cache;
public $caches;
public $DB;
public function __construct()
{
$this->settings = ipsRegistry::fetchSettings();
$this->lang = ipsRegistry::getClass('class_localization');
$this->caches =& ipsRegistry::cache()->fetchCaches();
$this->cache = ipsRegistry::cache();
$this->DB = ipsRegistry::DB();
}
public function get()
{
/* INIT */
$entries = array();
if( ! $this->settings['ipb_reg_number'] )
{
$entries[] = array( $this->lang->words['lc_title_nokey'], sprintf( $this->lang->words['lc_msg_nokey'], "{$this->settings['base_url']}module=tools&amp;section=licensekey" ) );
}
else
{
/* Is the Spam Service Working? */
if ( $this->settings['spam_service_enabled'] )
{
$GOT_SPAM_ERROR = false;
/* Are we entitled to it? */
$licenseData = $this->cache->getCache( 'licenseData' );
if ( is_array( $licenseData['ipbMain'] ) && count( $licenseData['ipbMain'] ) )
{
foreach ( $licenseData['ipbMain'] as $data )
{
if ( $data['name'] == 'Spam Monitoring Service' && $data['status'] != 'Ok' )
{
$disableLink = $this->settings['base_url'] . "app=core&amp;module=settings&amp;section=settings&amp;do=findsetting&amp;key=spamservice";
if ( is_numeric( $data['_expires'] ) && time() > $data['_expires'] )
{
$entries[] = array( $this->lang->words['spam_service_error'], sprintf( $this->lang->words['spam_service_expired'], $disableLink ) );
}
else
{
$entries[] = array( $this->lang->words['spam_service_error'], sprintf( $this->lang->words['spam_service_unavailable'], $disableLink ) );
}
$GOT_SPAM_ERROR = true;
break;
}
}
}
if ( ! $GOT_SPAM_ERROR )
{
/* Get last 5 logs, and if all 5 are errors, show message */
$_errors = 0;
$_entries = 0;
$_lastError = '';
$this->DB->build( array( 'select' => 'log_code, log_msg', 'from' => 'spam_service_log', 'order' => 'id DESC', 'limit' => 5 ) );
$this->DB->execute();
while( $_r = $this->DB->fetch() )
{
$_entries++;
if( $_r['log_code'] === '0' )
{
$_errors++;
if( !$_lastError )
{
$_lastError = $_r['log_msg'];
}
}
}
if( $_entries > 0 && $_errors == $_entries )
{
$entries[] = array( $this->lang->words['spam_service_error'], sprintf( $this->lang->words['spam_service_error_msg'], $_lastError ) );
}
}
}
/* If it's disabled, are we entitiled to it? */
else
{
$licenseData = $this->cache->getCache( 'licenseData' );
if ( is_array( $licenseData['ipbMain'] ) && count( $licenseData['ipbMain'] ) )
{
foreach ( $licenseData['ipbMain'] as $data )
{
if ( $data['name'] == 'Spam Monitoring Service' && $data['status'] == 'Ok' )
{
$entries[] = array( $this->lang->words['spam_service_disabled'], $this->lang->words['spam_service_disabled_msg'] );
break;
}
}
}
}
}
/* FURL cache OOD? */
if ( is_file( FURL_CACHE_PATH ) )
{
$mtime = intval( @filemtime( FURL_CACHE_PATH ) );
/* Check mtimes on extensions.. */
foreach( ipsRegistry::$applications as $app_dir => $application )
{
$furltemplatesfile = IPSLib::getAppDir( $app_dir );
if(IPB_USE_ONLY_ID_FURL && is_file( $furltemplatesfile.'/extensions/furlTemplatesID.php'))
{
$furltemplatesfile.='/extensions/furlTemplatesID.php';
}
else
{
$furltemplatesfile.='/extensions/furlTemplates.php';
}
if ( is_file( $furltemplatesfile ) )
{
$_mtime = intval( @filemtime( $furltemplatesfile ) );
if ( $_mtime > $mtime )
{
$entries[] = array( $this->lang->words['furlcache_outofdate'], sprintf( $this->lang->words['furlcache_outofdate_desc'], $application['app_title'] ) . "<a href='" . $this->settings['base_url'] . "app=core&amp;module=applications&amp;section=applications&amp;do=seoRebuild'>{$this->lang->words['rebuild_furl_cache']}</a>" );
break;
}
}
}
}
/* Sphinx cache OOD? */
if ( $this->settings['search_method'] == 'sphinx' )
{
$mtime = intval( $this->cache->getCache('sphinx_config') );
/* Check mtimes on extensions.. */
foreach( ipsRegistry::$applications as $app_dir => $application )
{
if ( is_file( IPSLib::getAppDir( $app_dir ) . '/extensions/sphinxTemplate.php' ) )
{
$_mtime = intval( @filemtime( IPSLib::getAppDir( $app_dir ) . '/extensions/sphinxTemplate.php' ) );
if ( !$mtime OR $_mtime > $mtime )
{
$entries[] = array( $this->lang->words['sphinxconfig_outofdate'], $this->lang->words['sphinxconfig_outofdate_desc'] . ' ' . "<a href='" . $this->settings['base_url'] . "app=core&amp;module=applications&amp;section=applications&amp;do=applications_overview'>{$this->lang->words['rebuild_sphinx_config']}</a>" );
break;
}
}
}
}
/* Minify on but /cache/tmp not writeable? */
if ( !empty( $this->settings['_use_minify'] ) )
{
$entries[] = array( $this->lang->words['minifywrite_head'], $this->lang->words['minifynot_writeable'] );
}
/* Installer Check */
if( @is_file( IPS_ROOT_PATH . 'install/index.php' ) )
{
if ( ! @is_file( DOC_IPS_ROOT_PATH . 'cache/installer_lock.php' ) )
{
$this->lang->words['cp_unlocked_warning'] = sprintf( $this->lang->words['cp_unlocked_warning'], CP_DIRECTORY );
$entries[] = array( $this->lang->words['cp_unlockedinstaller'], $this->lang->words['cp_unlocked_warning'] );
}
}
/* Unfinished Upgrade */
require_once( IPS_ROOT_PATH . '/setup/sources/base/setup.php' );/*noLibHook*/
$versions = IPSSetUp::fetchAppVersionNumbers( 'core' );
if( $versions['current'][0] != $versions['latest'][0] )
{
$this->lang->words['cp_upgrade_warning'] = sprintf( $this->lang->words['cp_upgrade_warning'], $versions['current'][1], $versions['latest'][1], $this->settings['base_acp_url'] );
$entries[] = array( $this->lang->words['cp_unfinishedupgrade'], $this->lang->words['cp_upgrade_warning'] );
}
/**
* PHP Version Check
*
* @todo Remove this for 4.0? Installer/upgrader already do check for this anyway...
*/
if( PHP_VERSION < '5.2.0' )
{
$entries[] = array( sprintf( $this->lang->words['cp_yourphpversion'], PHP_VERSION ), $this->lang->words['cp_php_warning'] );
}
/* Outgoing email address specified */
if ( !$this->settings['email_out'] OR !$this->settings['email_in'] )
{
$entries[] = array( $this->lang->words['cp_missingemail'], "{$this->lang->words['cp_missingemail1']}<br /><br />{$this->lang->words['_raquo']} <a href='" . $this->settings['base_url'] . "&amp;module=settings&amp;section=settings&amp;do=findsetting&amp;key=email'>{$this->lang->words['cp_missingemail2']}</a>" );
}
/* Board Offline Check */
if ( $this->settings['board_offline'] )
{
$entries[] = array( $this->lang->words['cp_boardoffline'], "{$this->lang->words['cp_boardoffline1']}<br /><br />{$this->lang->words['_raquo']} <a href='" . $this->settings['base_url'] . "&amp;module=settings&amp;section=settings&amp;do=findsetting&amp;key=boardoffline'>{$this->lang->words['cp_boardoffline2']}</a>" );
}
/* Fulltext Check */
if( $this->settings['search_method'] == 'traditional' AND !$this->settings['use_fulltext'] AND !$this->settings['hide_ftext_note'] )
{
$entries[] = array( $this->lang->words['fulltext_off'], "{$this->lang->words['fulltext_turnon']}<br /><br />{$this->lang->words['_raquo']} <a href='" . $this->settings['base_url'] . "&amp;module=settings&amp;section=settings&amp;do=findsetting&amp;key=searchsetup'>{$this->lang->words['fulltext_find']}</a>" );
}
/* Make sure the profile directory is writable */
if( ! is_dir( $this->settings['upload_dir'] . '/profile/' ) || ! is_writable( $this->settings['upload_dir'] . '/profile/' ) )
{
$entries[] = array( $this->lang->words['cp_profilephotoerr_title'], sprintf( $this->lang->words['cp_profilephotoerr_msg'], $this->settings['upload_dir'] . '/profile/' ) );
}
/* Check for upgrade finish folder */
if( is_dir( IPS_ROOT_PATH . 'upgradeFinish/' ) )
{
$entries[] = array( $this->lang->words['cp_upgradefinishfolder'], sprintf( $this->lang->words['cp_upgradefinishfolder_msg'], IPS_ROOT_PATH . 'upgradeFinish/' ) );
}
/* Check to see if GD is intalled */
if(! extension_loaded( 'gd' ) || ! function_exists( 'gd_info' ) )
{
$entries[] = array( $this->lang->words['cp_gdnotinstalled_title'], $this->lang->words['cp_gdnotinstalled_msg'] );
}
/* Performance mode check */
$perfMode = $this->cache->getCache('performanceCache');
if( is_array( $perfMode ) && count( $perfMode ) )
{
$entries[] = array( $this->lang->words['cp_perfmodeon_title'], $this->lang->words['cp_perfmodeon_msg'] );
}
/* Suhosin check */
if( extension_loaded( 'suhosin' ) )
{
$_postMaxVars = @ini_get('suhosin.post.max_vars');
$_reqMaxVars = @ini_get('suhosin.request.max_vars');
$_getMaxLen = @ini_get('suhosin.get.max_value_length');
$_postMaxLen = @ini_get('suhosin.post.max_value_length');
$_reqMaxLen = @ini_get('suhosin.request.max_value_length');
$_reqMaxVar = @ini_get('suhosin.request.max_varname_length');
if( $_postMaxVars < 4096 )
{
$entries[] = array( $this->lang->words['suhosin_notification'], sprintf( $this->lang->words['suhosin_badvalue1'], $_postMaxVars ) );
}
if( $_reqMaxVars < 4096 )
{
$entries[] = array( $this->lang->words['suhosin_notification'], sprintf( $this->lang->words['suhosin_badvalue2'], $_reqMaxVars ) );
}
if( $_getMaxLen < 2000 )
{
$entries[] = array( $this->lang->words['suhosin_notification'], sprintf( $this->lang->words['suhosin_badvalue6'], $_getMaxLen ) );
}
if( $_postMaxLen < 1000000 )
{
$entries[] = array( $this->lang->words['suhosin_notification'], sprintf( $this->lang->words['suhosin_badvalue3'], $_postMaxLen ) );
}
if( $_reqMaxLen < 1000000 )
{
$entries[] = array( $this->lang->words['suhosin_notification'], sprintf( $this->lang->words['suhosin_badvalue4'], $_reqMaxLen ) );
}
if( $_reqMaxVar < 350 )
{
$entries[] = array( $this->lang->words['suhosin_notification'], sprintf( $this->lang->words['suhosin_badvalue5'], $_reqMaxVar ) );
}
}
/* SQL error check */
/*if ( is_file( IPS_CACHE_PATH . 'cache/sql_error_latest.cgi' ) )
{
$unix = @filemtime( IPS_CACHE_PATH . 'cache/sql_error_latest.cgi' );
if ( $unix )
{
$mtime = gmdate( 'd-j-Y', $unix );
$now = gmdate( 'd-j-Y', time() );
if ( $mtime == $now )
{
// Display a message
}
}
}*/
return $entries;
}
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.6
* Dashboard Notifications
* Last Updated: $Date
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/company/standards.php#license
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @version $Rev: 12238 $
*/
if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
exit();
}
/**
* Main loader class
*/
class dashboardNotifications__core
{
/**
* Registry Object Shortcuts
*
* @var object
*/
public $settings;
public $lang;
public $cache;
public $caches;
public $DB;
public function __construct()
{
$this->settings = ipsRegistry::fetchSettings();
$this->lang = ipsRegistry::getClass('class_localization');
$this->caches =& ipsRegistry::cache()->fetchCaches();
$this->cache = ipsRegistry::cache();
$this->DB = ipsRegistry::DB();
}
public function get()
{
/* INIT */
$entries = array();
/* FURL cache OOD? */
if ( is_file( FURL_CACHE_PATH ) )
{
$mtime = intval( @filemtime( FURL_CACHE_PATH ) );
/* Check mtimes on extensions.. */
foreach( ipsRegistry::$applications as $app_dir => $application )
{
if ( is_file( IPSLib::getAppDir( $app_dir ) . '/extensions/furlTemplates.php' ) )
{
$_mtime = intval( @filemtime( IPSLib::getAppDir( $app_dir ) . '/extensions/furlTemplates.php' ) );
if ( $_mtime > $mtime )
{
$entries[] = array( $this->lang->words['furlcache_outofdate'], sprintf( $this->lang->words['furlcache_outofdate_desc'], $application['app_title'] ) . "<a href='" . $this->settings['base_url'] . "app=core&amp;module=applications&amp;section=applications&amp;do=seoRebuild'>{$this->lang->words['rebuild_furl_cache']}</a>" );
break;
}
}
}
}
/* Sphinx cache OOD? */
if ( $this->settings['search_method'] == 'sphinx' )
{
$mtime = intval( $this->cache->getCache('sphinx_config') );
/* Check mtimes on extensions.. */
foreach( ipsRegistry::$applications as $app_dir => $application )
{
if ( is_file( IPSLib::getAppDir( $app_dir ) . '/extensions/sphinxTemplate.php' ) )
{
$_mtime = intval( @filemtime( IPSLib::getAppDir( $app_dir ) . '/extensions/sphinxTemplate.php' ) );
if ( !$mtime OR $_mtime > $mtime )
{
$entries[] = array( $this->lang->words['sphinxconfig_outofdate'], $this->lang->words['sphinxconfig_outofdate_desc'] . ' ' . "<a href='" . $this->settings['base_url'] . "app=core&amp;module=applications&amp;section=applications&amp;do=applications_overview'>{$this->lang->words['rebuild_sphinx_config']}</a>" );
break;
}
}
}
}
/* Minify on but /cache/tmp not writeable? */
if ( !empty( $this->settings['_use_minify'] ) )
{
$entries[] = array( $this->lang->words['minifywrite_head'], $this->lang->words['minifynot_writeable'] );
}
/* Installer Check */
if( @is_file( IPS_ROOT_PATH . 'install/index.php' ) )
{
if ( ! @is_file( DOC_IPS_ROOT_PATH . 'cache/installer_lock.php' ) )
{
$this->lang->words['cp_unlocked_warning'] = sprintf( $this->lang->words['cp_unlocked_warning'], CP_DIRECTORY );
$entries[] = array( $this->lang->words['cp_unlockedinstaller'], $this->lang->words['cp_unlocked_warning'] );
}
}
/* Unfinished Upgrade */
require_once( IPS_ROOT_PATH . '/setup/sources/base/setup.php' );/*noLibHook*/
$versions = IPSSetUp::fetchAppVersionNumbers( 'core' );
if( $versions['current'][0] != $versions['latest'][0] )
{
$this->lang->words['cp_upgrade_warning'] = sprintf( $this->lang->words['cp_upgrade_warning'], $versions['current'][1], $versions['latest'][1], $this->settings['base_acp_url'] );
$entries[] = array( $this->lang->words['cp_unfinishedupgrade'], $this->lang->words['cp_upgrade_warning'] );
}
/**
* PHP Version Check
*
* @todo Remove this for 4.0? Installer/upgrader already do check for this anyway...
*/
if( PHP_VERSION < '5.2.0' )
{
$entries[] = array( sprintf( $this->lang->words['cp_yourphpversion'], PHP_VERSION ), $this->lang->words['cp_php_warning'] );
}
/* Outgoing email address specified */
if ( !$this->settings['email_out'] OR !$this->settings['email_in'] )
{
$entries[] = array( $this->lang->words['cp_missingemail'], "{$this->lang->words['cp_missingemail1']}<br /><br />{$this->lang->words['_raquo']} <a href='" . $this->settings['base_url'] . "&amp;module=settings&amp;section=settings&amp;do=findsetting&amp;key=email'>{$this->lang->words['cp_missingemail2']}</a>" );
}
/* Board Offline Check */
if ( $this->settings['board_offline'] )
{
$entries[] = array( $this->lang->words['cp_boardoffline'], "{$this->lang->words['cp_boardoffline1']}<br /><br />{$this->lang->words['_raquo']} <a href='" . $this->settings['base_url'] . "&amp;module=settings&amp;section=settings&amp;do=findsetting&amp;key=boardoffline'>{$this->lang->words['cp_boardoffline2']}</a>" );
}
/* Fulltext Check */
if( $this->settings['search_method'] == 'traditional' AND !$this->settings['use_fulltext'] AND !$this->settings['hide_ftext_note'] )
{
$entries[] = array( $this->lang->words['fulltext_off'], "{$this->lang->words['fulltext_turnon']}<br /><br />{$this->lang->words['_raquo']} <a href='" . $this->settings['base_url'] . "&amp;module=settings&amp;section=settings&amp;do=findsetting&amp;key=searchsetup'>{$this->lang->words['fulltext_find']}</a>" );
}
/* Make sure the profile directory is writable */
if( ! is_dir( $this->settings['upload_dir'] . '/profile/' ) || ! is_writable( $this->settings['upload_dir'] . '/profile/' ) )
{
$entries[] = array( $this->lang->words['cp_profilephotoerr_title'], sprintf( $this->lang->words['cp_profilephotoerr_msg'], $this->settings['upload_dir'] . '/profile/' ) );
}
/* Check for upgrade finish folder */
if( is_dir( IPS_ROOT_PATH . 'upgradeFinish/' ) )
{
$entries[] = array( $this->lang->words['cp_upgradefinishfolder'], sprintf( $this->lang->words['cp_upgradefinishfolder_msg'], IPS_ROOT_PATH . 'upgradeFinish/' ) );
}
/* Check to see if GD is intalled */
if(! extension_loaded( 'gd' ) || ! function_exists( 'gd_info' ) )
{
$entries[] = array( $this->lang->words['cp_gdnotinstalled_title'], $this->lang->words['cp_gdnotinstalled_msg'] );
}
/* Performance mode check */
$perfMode = $this->cache->getCache('performanceCache');
if( is_array( $perfMode ) && count( $perfMode ) )
{
$entries[] = array( $this->lang->words['cp_perfmodeon_title'], $this->lang->words['cp_perfmodeon_msg'] );
}
/* Suhosin check */
if( extension_loaded( 'suhosin' ) )
{
$_postMaxVars = @ini_get('suhosin.post.max_vars');
$_reqMaxVars = @ini_get('suhosin.request.max_vars');
$_getMaxLen = @ini_get('suhosin.get.max_value_length');
$_postMaxLen = @ini_get('suhosin.post.max_value_length');
$_reqMaxLen = @ini_get('suhosin.request.max_value_length');
$_reqMaxVar = @ini_get('suhosin.request.max_varname_length');
if( $_postMaxVars < 4096 )
{
$entries[] = array( $this->lang->words['suhosin_notification'], sprintf( $this->lang->words['suhosin_badvalue1'], $_postMaxVars ) );
}
if( $_reqMaxVars < 4096 )
{
$entries[] = array( $this->lang->words['suhosin_notification'], sprintf( $this->lang->words['suhosin_badvalue2'], $_reqMaxVars ) );
}
if( $_getMaxLen < 2000 )
{
$entries[] = array( $this->lang->words['suhosin_notification'], sprintf( $this->lang->words['suhosin_badvalue6'], $_getMaxLen ) );
}
if( $_postMaxLen < 1000000 )
{
$entries[] = array( $this->lang->words['suhosin_notification'], sprintf( $this->lang->words['suhosin_badvalue3'], $_postMaxLen ) );
}
if( $_reqMaxLen < 1000000 )
{
$entries[] = array( $this->lang->words['suhosin_notification'], sprintf( $this->lang->words['suhosin_badvalue4'], $_reqMaxLen ) );
}
if( $_reqMaxVar < 350 )
{
$entries[] = array( $this->lang->words['suhosin_notification'], sprintf( $this->lang->words['suhosin_badvalue5'], $_reqMaxVar ) );
}
}
/* SQL error check */
/*if ( is_file( IPS_CACHE_PATH . 'cache/sql_error_latest.cgi' ) )
{
$unix = @filemtime( IPS_CACHE_PATH . 'cache/sql_error_latest.cgi' );
if ( $unix )
{
$mtime = gmdate( 'd-j-Y', $unix );
$now = gmdate( 'd-j-Y', time() );
if ( $mtime == $now )
{
// Display a message
}
}
}*/
return $entries;
}
}
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* BBCode Management : Determines if bbcode can be used in this section
* Last Updated: $LastChangedDate: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -7,7 +7,7 @@
* $Author: mark $
* @since 24 July 2012
* $LastChangedDate: 2012-06-20 10:50:23 +0100 (Wed, 20 Jun 2012) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 10952 $
*/
@@ -33,6 +33,6 @@ class enhancements_core_facebook
$this->title = $registry->getClass('class_localization')->words['enhancements_facebook'];
$this->description = $registry->getClass('class_localization')->words['enhancements_facebook_desc'];
$this->enabled = ipsRegistry::$settings['fbc_enable'];
$this->message = '<a href="http://external.ipslink.com/ipboard30/landing/?p=facebook" target="_blank">' . ipsRegistry::getClass('class_localization')->words['enhancements_facebook_help'] . '</a>';
$this->message = '<a href="http://anonym.to/?http://external.ipslink.com/ipboard30/landing/?p=facebook" target="_blank">' . ipsRegistry::getClass('class_localization')->words['enhancements_facebook_help'] . '</a>';
}
}
@@ -7,7 +7,7 @@
* $Author: mark $
* @since 24 July 2012
* $LastChangedDate: 2012-06-20 10:50:23 +0100 (Wed, 20 Jun 2012) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 10952 $
*/
@@ -7,7 +7,7 @@
* $Author: mark $
* @since 24 July 2012
* $LastChangedDate: 2012-06-20 10:50:23 +0100 (Wed, 20 Jun 2012) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 10952 $
*/
@@ -7,7 +7,7 @@
* $Author: mark $
* @since 24 July 2012
* $LastChangedDate: 2012-06-20 10:50:23 +0100 (Wed, 20 Jun 2012) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 10952 $
*/
@@ -90,9 +90,9 @@ class enhancements_core_ipscdn
ipsRegistry::getClass('output')->showError( sprintf( ipsRegistry::getClass('class_localization')->words['enhancements_ipscdn_error_nokey'], ipsRegistry::getClass('output')->buildUrl('app=core&module=tools&section=licensekey', 'admin') ) );
}
$classToLoad = IPSLib::loadLibrary( IPS_KERNEL_PATH . 'classFileManagement.php', 'classFileManagement' );
/* $classToLoad = IPSLib::loadLibrary( IPS_KERNEL_PATH . 'classFileManagement.php', 'classFileManagement' );
$file = new $classToLoad();
$return = NULL;
$ping = $file->getFileContents( "http://license.invisionpower.com/?a=cdn&key=" . ipsRegistry::$settings['ipb_reg_number'] ); */
if ( $json = @json_decode( $ping, TRUE ) )
{
@@ -7,7 +7,7 @@
* $Author: mark $
* @since 24 July 2012
* $LastChangedDate: 2012-06-20 10:50:23 +0100 (Wed, 20 Jun 2012) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 10952 $
*/
@@ -33,6 +33,6 @@ class enhancements_core_twitter
$this->title = $registry->getClass('class_localization')->words['enhancements_twitter'];
$this->description = $registry->getClass('class_localization')->words['enhancements_twitter_desc'];
$this->enabled = ipsRegistry::$settings['tc_enabled'];
$this->message = '<a href="http://external.ipslink.com/ipboard30/landing/?p=twitter" target="_blank">' . ipsRegistry::getClass('class_localization')->words['enhancements_twitter_help'] . '</a>';
$this->message = '<a href="http://anonym.to/?http://external.ipslink.com/ipboard30/landing/?p=twitter" target="_blank">' . ipsRegistry::getClass('class_localization')->words['enhancements_twitter_help'] . '</a>';
}
}
@@ -7,7 +7,7 @@
* $Author: mark $
* @since 24 July 2012
* $LastChangedDate: 2012-06-20 10:50:23 +0100 (Wed, 20 Jun 2012) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 10952 $
*/
@@ -99,9 +99,9 @@ class enhancements_core_viglink
}
}
require_once IPS_KERNEL_PATH . 'classFileManagement.php';
/* require_once IPS_KERNEL_PATH . 'classFileManagement.php';
$cfm = new classFileManagement();
$return = NULL;
$return = $cfm->getFileContents( "http://license.invisionpower.com/viglink/?subId=" . urlencode( $subId ) ); */
if ( $return and $json = @json_decode( $return, TRUE ) and $json['SUCCESS'] == TRUE )
{
return $json;
@@ -7,7 +7,7 @@
* $Author: mark $
* @since 24 July 2012
* $LastChangedDate: 2012-06-20 10:50:23 +0100 (Wed, 20 Jun 2012) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 10952 $
*/
@@ -2,7 +2,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Sets up SEO templates
* Last Updated: $Date: 2013-03-12 09:54:04 -0400 (Tue, 12 Mar 2013) $
* </pre>
@@ -52,18 +52,6 @@ $_SEOTEMPLATES = array(
'in' => array( 'regex' => "#/register(/|$|\?)#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'register' ) ) ) ),
'section=lostpass' => array( 'app' => 'core',
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=global(&amp;|&)section=lostpass(&amp;|&|$)#i', 'lostpass/$3' ),
'in' => array( 'regex' => "#/lostpass(/|$|\?)#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'lostpass' ) ) ) ),
'section=login' => array( 'app' => 'core',
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=global(&amp;|&)section=login(&amp;|&|$)#i', 'login/$3' ),
'in' => array( 'regex' => "#/login(/|$|\?)#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'login' ) ) ) ),
'tags' => array( 'app' => 'core',
'isPagesMode' => true,
'allowRedirect' => 0,
@@ -96,7 +84,7 @@ $_SEOTEMPLATES = array(
'section=rss2' => array( 'app' => 'core',
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=global(&amp;|&)section=rss(&amp;|&)type=(\w+?)(&amp;|&)id=(\w+?)$#i', 'rss/$4/$6-#{__title__}/' ),
'in' => array( 'regex' => "#/rss/(\w+?)/(\w+?)(?:-|/|$)#i",
'in' => array( 'regex' => "#/rss/(\w+?)/(\w+?)-#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'rss' ), array( 'type', '$1' ), array( 'id', '$2' ) ) ) ),
# Changed section=rss2 id matching to use \w for more flexibility
@@ -1,106 +0,0 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* Sets up SEO templates
* Last Updated: $Date: 2013-03-12 09:54:04 -0400 (Tue, 12 Mar 2013) $
* </pre>
*
* @author $Author: mmecham $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/company/standards.php#license
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @since 20th February 2002
* @version $Rev: 12072 $
*
*/
if ( ! defined( 'IN_IPB' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
exit();
}
/**
* SEO templates
*
* 'allowRedirect' is a flag to tell IP.Board whether to check the incoming link and if not formatted correctly, redirect the correct one
*
* OUT FORMAT REGEX:
* First array element is a regex to run to see if we've a match for the URL
* The second array element is the template to use the results of the parenthesis capture
*
* Special variable #{__title__} is replaced with the $title data passed to output->formatUrl( $url, $title)
*
* IMPORTANT: Remember that when these regex are used, the output has not been fully parsed so you will get:
* showuser={$data['member_id']} NOT showuser=1 so do not try and match numerics only!
*
* IN FORMAT REGEX
*
* This allows the registry to piece back together a URL based on the template regex
* So, for example: "/user/(\d+?)/", 'matches' => array( array( 'showuser' => '$1' ) )tells IP.Board to populate 'showuser' with the result
* of the parenthesis capture #1
*/
$_SEOTEMPLATES = array(
'section=register' => array( 'app' => 'core',
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=global(&amp;|&)section=register(&amp;|&|$)#i', 'register/$3' ),
'in' => array( 'regex' => "#/register(/|$|\?)#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'register' ) ) ) ),
'section=lostpass' => array( 'app' => 'core',
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=global(&amp;|&)section=lostpass(&amp;|&|$)#i', 'lostpass/$3' ),
'in' => array( 'regex' => "#/lostpass(/|$|\?)#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'lostpass' ) ) ) ),
'section=login' => array( 'app' => 'core',
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=global(&amp;|&)section=login(&amp;|&|$)#i', 'login/$3' ),
'in' => array( 'regex' => "#/login(/|$|\?)#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'login' ) ) ) ),
'tags' => array( 'app' => 'core',
'isPagesMode' => true,
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=search(&amp;|&)do=search(&amp;|&)search_tags=(\S+?)(&amp;|&)search_app=(\S+?)(&amp;|&|$)#i', 'tags/$6/$4/$7' ),
'in' => array( 'regex' => "#/tags/(\S+?)/(\S+?)/#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'search' ), array( 'do', 'search' ), array( 'search_tags', '$2' ), array( 'search_app', '$1' ) ) ) ),
'privacy' => array( 'app' => 'core',
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=global(&amp;|&)section=privacy(&amp;|&|$)#i', 'privacypolicy/$4/' ),
'in' => array( 'regex' => "#/privacypolicy/#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'privacy' ) ) ) ),
'likeunsubscribe' => array( 'app' => 'core',
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=global(&amp;|&)section=like(&amp;|&)do=unsubscribe(&amp;|&)key=(\S+?)(&amp;|&|$)#i', 'unsubscribe/$5/' ),
'in' => array( 'regex' => "#/unsubscribe/(\S+?)/$#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'like' ), array( 'do', 'unsubscribe' ), array( 'key', '$1' ) ) ) ),
'findcomment' => array( 'app' => 'core',
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=global(&amp;|&)section=comments(&amp;|&)do=findComment(&amp;|&)fromApp=(\S+?)(&amp;|&)parentId=(\d+?)(&amp;|&)commentId=(\d+?)(&amp;|&|$)#i', 'findComment/$5/$7-$9' ),
'in' => array( 'regex' => "#/findComment/(\S+?-\S+?)/(\d+?)-(\d+?)$#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'comments' ), array( 'do', 'findComment' ), array( 'fromApp', '$1' ), array( 'parentId', '$2' ), array( 'commentId', '$3' ) ) ) ),
'section=rss' => array( 'app' => 'core',
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=global(&amp;|&)section=rss(&amp;|&)type=(\w+?)$#i', 'rss/$4/' ),
'in' => array( 'regex' => "#/rss/(\w+?)/$#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'rss' ), array( 'type', '$1' ) ) ) ),
'section=rss2' => array( 'app' => 'core',
'allowRedirect' => 0,
'out' => array( '#app=core(&amp;|&)module=global(&amp;|&)section=rss(&amp;|&)type=(\w+?)(&amp;|&)id=(\w+?)$#i', 'rss/$4/$6/' ),
'in' => array( 'regex' => "#/rss/(\w+?)/(\w+?)(?:-|/|$)#i",
'matches' => array( array( 'app', 'core' ), array( 'module', 'global' ), array( 'section', 'rss' ), array( 'type', '$1' ), array( 'id', '$2' ) ) ) ),
# Changed section=rss2 id matching to use \w for more flexibility
);
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -6,7 +6,7 @@
* $License: http://www.invisionpower.com/company/standards.php#license$
* $Author: mark $
* $LastChangedDate: 2011-12-08 16:43:34 +0000 (Thu, 08 Dec 2011) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 9971 $
*/
@@ -6,9 +6,9 @@
* $License: http://www.invisionpower.com/company/standards.php#license$
* $Author: AndyMillne $
* @since 3/8/2011
* $LastChangedDate: 2013-03-12 15:04:05 -0400 (Tue, 12 Mar 2013) $
* @version v3.4.5
* $Revision: 12074 $
* $LastChangedDate: 2013-10-14 15:30:19 -0400 (Mon, 14 Oct 2013) $
* @version v3.4.6
* $Revision: 12376 $
*/
if ( ! defined( 'IN_IPB' ) )
@@ -52,7 +52,7 @@ class navigation_core
*
* @return @e void
*/
public function __construct()
public function __construct()
{
$this->registry = ipsRegistry::instance();
$this->DB = $this->registry->DB();
@@ -71,13 +71,13 @@ class navigation_core
* @return @e string
*/
public function getTabName()
{
{
return $this->lang->words['quicknav_comm_link'];
}
/**
* Returns navigation data
*
*
* @return @e array array( array( 0 => array( 'title' => 'x', 'url' => 'x' ) ) );
*/
public function getNavigationData()
@@ -93,7 +93,11 @@ class navigation_core
}
$links[] = array( 'title' => $this->lang->words['registered_users_link'], 'url' => $this->registry->output->buildSEOUrl( 'app=members&amp;module=list', 'public', 'false', 'members_list' ) );
$links[] = array( 'title' => $this->lang->words['status_updates_link'] , 'url' => $this->registry->output->buildSEOUrl( 'app=members&amp;module=profile&amp;section=status', 'public', 'false', 'members_status_all' ) );
if( $this->settings['su_enabled'] )
{
$links[] = array( 'title' => $this->lang->words['status_updates_link'] , 'url' => $this->registry->output->buildSEOUrl( 'app=members&amp;module=profile&amp;section=status', 'public', 'false', 'members_status_all' ) );
}
/* Add to blocks */
$blocks[] = array( 'title' => '', 'links' => $links );
@@ -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.invisionpower.com/">IP.Board</a>
IP.Board
</body>
</html>
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Define the core notification types
* Last Updated: $Date: 2013-05-21 20:51:17 -0400 (Tue, 21 May 2013) $
* </pre>
@@ -2,7 +2,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Report Center :: Default plugin
* Last Updated: $LastChangedDate: 2012-12-10 11:06:25 -0500 (Mon, 10 Dec 2012) $
* </pre>
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -2,7 +2,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* RSS output plugin :: report center
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Config file
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -2,7 +2,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Basic Forum Search
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Returns HTML for the form (optional class, not required)
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Formats forum search results
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -6,7 +6,7 @@
* $Author: mmecham $
* @since 3/8/2011
* $LastChangedDate: 2013-04-03 08:07:11 -0400 (Wed, 03 Apr 2013) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 12145 $
*/
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Sphinx template file
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -74,7 +74,7 @@ index <!--SPHINX_CONF_PREFIX-->core_tags_search_main
mlock = 0
morphology = none
min_word_len = 2
charset_type = utf-8
charset_type = sbcs
html_strip = 0
#infix_fields = tag_text
#min_infix_len = 3
File diff suppressed because it is too large. Load diff
@@ -7,7 +7,7 @@
* $Author: bfarber $ (Original: Mark)
* @since -
* $LastChangedDate: 2013-05-01 17:35:09 -0400 (Wed, 01 May 2013) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 12211 $
*/
+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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -20,7 +20,7 @@ ACPHomepage = {
{
if ( $('members_display_name').value == "" )
{
alert("Нужно ввести имя пользователя!");
alert("You must enter a username!");
return false;
}
+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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
+8 -8
View File
@@ -85,11 +85,11 @@ function IPBCSS()
}
else
{
alert( "Похоже у нас проблемы: " + t.responseText );
alert( "Ooops. Something went wrong. Does this help?: " + t.responseText );
}
},
onException: function( f,e ){ alert( "Исключение: " + e ); },
onFailure: function( t ){ alert( "Ошибка: " + t.responseText ); }
onException: function( f,e ){ alert( "Exception: " + e ); },
onFailure: function( t ){ alert( "Failure: " + t.responseText ); }
} );
};
@@ -143,7 +143,7 @@ function IPBCSS()
}
else
{
alert( "Похоже у нас проблемы: " + t.responseText );
alert( "Ooops. Something went wrong. Does this help?: " + t.responseText );
}
},
onException: function( f,e ){ alert( "Exception: " + e ); },
@@ -159,14 +159,14 @@ function IPBCSS()
/* Make sure we're mean it... */
if ( $('tplate_cssRow_' + css_id ).hasClassName( 'tplateRow_new') )
{
if ( ! confirm( "Удалить CSS файл ?\nФайл будет удален из ВСЕХ стилей!" ) )
if ( ! confirm( "REMOVE CSS file?\n This will remove this template bit in ALL skins!" ) )
{
return false;
}
}
else
{
if ( ! confirm( "Отменить изменения в CSS файле ?\nВсе изменения будут утеряны!" ) )
if ( ! confirm( "Revert CSS file?\n All changes WILL be lost!" ) )
{
return false;
}
@@ -202,7 +202,7 @@ function IPBCSS()
}
else
{
alert( "Похоже у нас проблемы: " + t.responseText );
alert( "Ooops. Something went wrong. Does this help?: " + t.responseText );
}
},
onException: function( f,e ){ alert( "Exception: " + e ); },
@@ -239,7 +239,7 @@ function IPBCSS()
}
else
{
alert( "Похоже у нас проблемы: " + t.responseText );
alert( "Ooops. Something went wrong. Does this help?: " + t.responseText );
}
},
onException: function( f,e ){ alert( "Exception: " + e ); },
@@ -217,14 +217,14 @@ function IPBTemplateDiff()
*/
this.timeOutAjax = function( t )
{
if ( confirm( "Нет ответа от сервера.\nХотите подождать?" ) )
if ( confirm( "No response from the webserver.\nDo you wish to continue waiting?" ) )
{
return true;
}
else
{
t.transport.abort();
alert( "Запрос отменен" );
alert( "Request Cancelled" );
}
};
@@ -265,7 +265,7 @@ function IPBTemplateDiff()
if ( json['error'] )
{
alert( "Ошибка: " . json['error'] );
alert( "An error occurred: " . json['error'] );
return false;
}
@@ -166,7 +166,7 @@ function IPBTemplateSandR()
else
{
$('replaceButton').disabled = false;
$('replaceButton').value = "Заменить выбранные";
$('replaceButton').value = "Replace Selected";
}
}
}
@@ -103,7 +103,7 @@ function IPBTemplates()
}
else
{
alert( "Ошибка: " + t.responseText );
alert( "Ooops. Something went wrong. Does this help?: " + t.responseText );
}
},
onException: function( f,e ){ alert( "Exception: " + e ); },
@@ -169,7 +169,7 @@ function IPBTemplates()
}
else
{
alert( "Ошибка: " + t.responseText );
alert( "Ooops. Something went wrong. Does this help?: " + t.responseText );
}
},
onException: function( f,e ){ alert( "Exception: " + e ); },
@@ -222,7 +222,7 @@ function IPBTemplates()
if ( json['errors'] )
{
/* Something inline would be very nice here.. rather than this ugly alert */
alert("Ошибка: " + json['errors'] );
alert("Error:: " + json['errors'] );
}
else
{
@@ -232,7 +232,7 @@ function IPBTemplates()
}
else
{
alert( "Ошибка: " + t.responseText );
alert( "Ooops. Something went wrong. Does this help?: " + t.responseText );
}
},
onException: function( f,e ){ alert( "Exception: " + e ); },
@@ -248,14 +248,14 @@ function IPBTemplates()
/* Make sure we're mean it... */
if ( $('tplate_templaterow_' + template_id ).hasClassName( 'tplateRow_new') )
{
if ( ! confirm( "Удалить шаблон?\n Произойдет удаление шаблона из ВСЕХ стилей!" ) )
if ( ! confirm( "REMOVE template bit?\n This will remove this template bit in ALL skins!" ) )
{
return false;
}
}
else
{
if ( ! confirm( "Откатить изменения?\n Все изменения БУДУТ УТРАЧЕНЫ!" ) )
if ( ! confirm( "Revert template bit?\n All changes WILL be lost!" ) )
{
return false;
}
@@ -301,7 +301,7 @@ function IPBTemplates()
}
else
{
alert( "Ошибка: " + t.responseText );
alert( "Ooops. Something went wrong. Does this help?: " + t.responseText );
}
},
onException: function( f,e ){ alert( "Exception: " + e ); },
@@ -338,7 +338,7 @@ function IPBTemplates()
}
else
{
alert( "Ошибка: " + t.responseText );
alert( "Ooops. Something went wrong. Does this help?: " + t.responseText );
}
},
onException: function( f,e ){ alert( "Exception: " + e ); },
@@ -7,7 +7,7 @@
* $Author: bfarber $
* @since 7th August 2012
* $LastChangedDate: 2011-03-10 21:00:38 +0000 (Thu, 10 Mar 2011) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 8021 $
*/
@@ -2,7 +2,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Template comparison
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* AJAX Functions For applications/core/js/ipb3CSS.js file
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -2,7 +2,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Handles Admin ajax functions for IP.Board Text Editor
* Author: Matt "Matt Mecham" Mecham
* Last Updated: $LastChangedDate: 2012-05-29 14:05:10 +0100 (Tue, 29 May 2012) $
@@ -1,115 +1,115 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* Login handler abstraction : AJAX Find Names functions
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/company/standards.php#license
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @since Tuesday 1st March 2005 (11:52)
* @version $Revision: 10721 $
* @see public_core_ajax_findnames
*
*/
if ( ! defined( 'IN_ACP' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
exit();
}
class admin_core_ajax_findnames extends ipsAjaxCommand
{
/**
* Class entry point
*
* @param object Registry reference
* @return @e void [Outputs to screen]
*/
public function doExecute( ipsRegistry $registry )
{
switch( $this->request['do'] )
{
case 'get-member-names':
$this->_getMemberNames();
break;
}
}
/**
* Returns possible matches for the string input
*
* @return @e void Outputs to screen
*/
protected function _getMemberNames()
{
//-----------------------------------------
// INIT
//-----------------------------------------
$name = IPSText::convertUnicode( $this->convertAndMakeSafe( $this->request['name'], 0 ), true );
$name = IPSText::convertCharsets( $name, 'utf-8', IPS_DOC_CHAR_SET );
//-----------------------------------------
// Check length
//-----------------------------------------
if ( IPSText::mbstrlen( $name ) < 3 )
{
$this->returnJsonError( 'requestTooShort' );
}
//-----------------------------------------
// Try query...
//-----------------------------------------
$this->DB->build( array( 'select' => 'm.members_display_name, m.name, m.member_id, m.member_group_id',
'from' => array( 'members' => 'm' ),
'where' => "m.members_l_display_name LIKE '" . $this->DB->addSlashes( mb_strtolower( $name ) ) . "%'",
'order' => $this->DB->buildLength( 'm.members_display_name' ) . ' ASC',
'limit' => array( 0, 15 ),
'add_join' => array( array( 'select' => 'p.*',
'from' => array( 'profile_portal' => 'p' ),
'where' => 'p.pp_member_id=m.member_id',
'type' => 'left' ) ) ) );
$this->DB->execute();
//-----------------------------------------
// Got any results?
//-----------------------------------------
if ( ! $this->DB->getTotalRows() )
{
$this->returnJsonArray( array( ) );
}
$return = array();
while( $r = $this->DB->fetch() )
{
if( !$r['members_display_name'] )
{
continue;
}
$photo = IPSMember::buildProfilePhoto( $r );
$group = IPSMember::makeNameFormatted( '' , $r['member_group_id'] );
$return[ $r['member_id'] ] = array( 'name' => $r['members_display_name'],
'showas'=> '<strong>' . $r['members_display_name'] . '</strong> (' . $group . ')',
'img' => $photo['pp_mini_photo'],
'img_w' => $photo['pp_mini_width'],
'img_h' => $photo['pp_mini_height']
);
}
$this->returnJsonArray( $return );
}
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.6
* Login handler abstraction : AJAX Find Names functions
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
*
* @author $Author: bfarber $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/company/standards.php#license
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @since Tuesday 1st March 2005 (11:52)
* @version $Revision: 10721 $
* @see public_core_ajax_findnames
*
*/
if ( ! defined( 'IN_ACP' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files.";
exit();
}
class admin_core_ajax_findnames extends ipsAjaxCommand
{
/**
* Class entry point
*
* @param object Registry reference
* @return @e void [Outputs to screen]
*/
public function doExecute( ipsRegistry $registry )
{
switch( $this->request['do'] )
{
case 'get-member-names':
$this->_getMemberNames();
break;
}
}
/**
* Returns possible matches for the string input
*
* @return @e void Outputs to screen
*/
protected function _getMemberNames()
{
//-----------------------------------------
// INIT
//-----------------------------------------
$name = IPSText::convertUnicode( $this->convertAndMakeSafe( $this->request['name'], 0 ), true );
$name = IPSText::convertCharsets( $name, 'utf-8', IPS_DOC_CHAR_SET );
//-----------------------------------------
// Check length
//-----------------------------------------
if ( IPSText::mbstrlen( $name ) < 3 )
{
$this->returnJsonError( 'requestTooShort' );
}
//-----------------------------------------
// Try query...
//-----------------------------------------
$this->DB->build( array( 'select' => 'm.members_display_name, m.name, m.member_id, m.member_group_id',
'from' => array( 'members' => 'm' ),
'where' => "m.members_l_display_name LIKE '" . $this->DB->addSlashes( strtolower( $name ) ) . "%'",
'order' => $this->DB->buildLength( 'm.members_display_name' ) . ' ASC',
'limit' => array( 0, 15 ),
'add_join' => array( array( 'select' => 'p.*',
'from' => array( 'profile_portal' => 'p' ),
'where' => 'p.pp_member_id=m.member_id',
'type' => 'left' ) ) ) );
$this->DB->execute();
//-----------------------------------------
// Got any results?
//-----------------------------------------
if ( ! $this->DB->getTotalRows() )
{
$this->returnJsonArray( array( ) );
}
$return = array();
while( $r = $this->DB->fetch() )
{
if( !$r['members_display_name'] )
{
continue;
}
$photo = IPSMember::buildProfilePhoto( $r );
$group = IPSMember::makeNameFormatted( '' , $r['member_group_id'] );
$return[ $r['member_id'] ] = array( 'name' => $r['members_display_name'],
'showas'=> '<strong>' . $r['members_display_name'] . '</strong> (' . $group . ')',
'img' => $photo['pp_mini_photo'],
'img_w' => $photo['pp_mini_width'],
'img_h' => $photo['pp_mini_height']
);
}
$this->returnJsonArray( $return );
}
}
@@ -2,7 +2,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Hooks (AJAX)
* Last Updated: $Date: 2013-02-15 17:36:04 -0500 (Fri, 15 Feb 2013) $
* </pre>
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
File diff suppressed because it is too large. Load diff
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* AJAX Functions For applications/core/js/ipb3CSS.js file
* Last Updated: $Date: 2012-05-24 16:20:59 -0400 (Thu, 24 May 2012) $
* </pre>
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* AJAX Functions For applications/core/js/ipb3CSS.js file
* Last Updated: $Date: 2011-05-05 12:03:47 +0100 (Thu, 05 May 2011) $
* </pre>
@@ -7,7 +7,7 @@
* $Author: bfarber $
* @since 8th Feb 2011
* $LastChangedDate: 2011-03-10 16:00:38 -0500 (Thu, 10 Mar 2011) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 8021 $
*/
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* AJAX Functions For applications/core/js/ipb3Templates.js file
* Last Updated: $Date: 2012-11-30 10:02:12 -0500 (Fri, 30 Nov 2012) $
* </pre>
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* AJAX Functions For applications/core/js/ipb3Templates.js file
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* AJAX Functions For applications/core/js/ipb3Templates.js file
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* AJAX Functions For applications/core/js/ipb3CSS.js file
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -7,7 +7,7 @@
* $Author: bfarber $
* @since 15 January 2007
* $LastChangedDate: 2013-05-07 22:02:49 -0400 (Tue, 07 May 2013) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 12236 $
*/
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Blog Application
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -37,6 +37,6 @@ class admin_core_applications_blog extends ipsCommand
{
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'purchase_app' );
$this->registry->output->showInsideIframe("http://external.ipslink.com/ipboard30/landing/?p=blog");
$this->registry->output->showInsideIframe("http://anonym.to/?http://external.ipslink.com/ipboard30/landing/?p=blog");
}
}
@@ -2,7 +2,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Blog Application
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -34,6 +34,6 @@ class admin_core_applications_ccs extends ipsCommand
{
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'purchase_app' );
$this->registry->output->showInsideIframe("http://www.invisionpower.com/products/content/");
$this->registry->output->showInsideIframe("http://anonym.to/?http://www.invisionpower.com/products/content/");
}
}
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Download Manager Application
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -7,7 +7,7 @@
* $Author: ips_terabyte $
* @since 20th February 2002
* $LastChangedDate: 2011-05-05 12:40:49 -0400 (Thu, 05 May 2011) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 8655 $
*/
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Download Manager Application
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -37,6 +37,6 @@ class admin_core_applications_downloads extends ipsCommand
{
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'purchase_app' );
$this->registry->output->showInsideIframe("http://www.invisionpower.com/products/downloads/");
$this->registry->output->showInsideIframe("http://anonym.to/?http://www.invisionpower.com/products/downloads/");
}
}
@@ -7,7 +7,7 @@
* $Author: mark $
* @since 24 July 2012
* $LastChangedDate: 2012-06-20 10:50:23 +0100 (Wed, 20 Jun 2012) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 10952 $
*/
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Gallery Application
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -37,6 +37,6 @@ class admin_core_applications_gallery extends ipsCommand
{
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'purchase_app' );
$this->registry->output->showInsideIframe("http://www.invisionpower.com/products/gallery/");
$this->registry->output->showInsideIframe("http://anonym.to/?http://www.invisionpower.com/products/gallery/");
}
}
File diff suppressed because it is too large. Load diff
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -2,7 +2,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Nexus Application
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -34,6 +34,6 @@ class admin_core_applications_nexus extends ipsCommand
{
$this->registry->getClass('class_permissions')->checkPermissionAutoMsg( 'purchase_app' );
$this->registry->output->showInsideIframe("http://www.invisionpower.com/products/nexus/");
$this->registry->output->showInsideIframe("http://anonym.to/?http://www.invisionpower.com/products/nexus/");
}
}
File diff suppressed because it is too large. Load diff
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -2,10 +2,10 @@
<menu>
<tabitems>
<item>
<title>Управление Приложениями</title>
<title>Manage Applications &amp; Modules</title>
<subitems>
<subitem>
<subitemtitle>Управление Приложениями</subitemtitle>
<subitemtitle>Manage Applications &amp; Modules</subitemtitle>
<subitemlang>manage_apps_modules</subitemlang>
<subsection>applications</subsection>
<subitemurl>do=applications_overview</subitemurl>
@@ -15,10 +15,10 @@
</subitems>
</item>
<item>
<title>Управление Хуками</title>
<title>Manage Hooks</title>
<subitems>
<subitem>
<subitemtitle>Управление Хуками</subitemtitle>
<subitemtitle>Manage Hooks</subitemtitle>
<subitemlang>manage_hooks</subitemlang>
<subsection>hooks</subsection>
<subitemurl>do=hooks_overview</subitemurl>
@@ -28,10 +28,10 @@
</subitems>
</item>
<item>
<title>Расширения</title>
<title>Community Enhancements</title>
<subitems>
<subitem>
<subitemtitle>Расширения</subitemtitle>
<subitemtitle>Community Enhancements</subitemtitle>
<subitemlang>community_enhancements</subitemlang>
<subsection>enhancements</subsection>
<subitemurl></subitemurl>
@@ -1,72 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<permissions>
<group>
<grouptitle>Управление приложениями</grouptitle>
<grouptitle>Manage Applications</grouptitle>
<grouplang>core_manage_apps</grouplang>
<items>
<item>
<key>app_manage</key>
<string>Может изменять/добавлять приложения?</string>
<string>Can manage applications?</string>
</item>
<item>
<key>app_delete</key>
<string>Может удалять приложения?</string>
<string>Can delete applications?</string>
</item>
<item>
<key>app_install</key>
<string>Может устанавливать новые приложения?</string>
<string>Can install new applications?</string>
</item>
<item>
<key>build_sphinx</key>
<string>Может создавать sphinx.conf? ВНИМАНИЕ: будут доступны данные для соединения с базой данных</string>
<string>Can build sphinx.conf? WARNING: Exposes database login details</string>
</item>
</items>
</group>
<group>
<grouptitle>Управление модулями</grouptitle>
<grouptitle>Manage Modules</grouptitle>
<grouplang>core_manage_modules</grouplang>
<items>
<item>
<key>module_manage</key>
<string>Может изменять/добавлять модули?</string>
<string>Can edit/add application modules?</string>
</item>
<item>
<key>module_delete</key>
<string>Может удалять модули приложений?</string>
<string>Can delete application modules?</string>
</item>
</items>
</group>
<group>
<grouptitle>Покупка приложений</grouptitle>
<grouptitle>Purchase Applications</grouptitle>
<grouplang>core_purchase_app</grouplang>
<items>
<item>
<key>purchase_app</key>
<string>Может просматривать страницу с платными приложениями?</string>
<string>Can view pages to purchase additional applications?</string>
</item>
</items>
</group>
<group>
<grouptitle>Управление хуками</grouptitle>
<grouptitle>Manage Hooks</grouptitle>
<grouplang>core_manage_hooks</grouplang>
<items>
<item>
<key>hooks_manage</key>
<string>Может добавлять/изменять хуки?</string>
<string>Can manage hooks?</string>
</item>
<item>
<key>hooks_delete</key>
<string>Может удалять хуки?</string>
<string>Can remove hooks?</string>
</item>
</items>
</group>
<group>
<grouptitle>Расширения для Сообщества</grouptitle>
<grouptitle>Community Enhancements</grouptitle>
<grouplang>core_community_enhancements</grouplang>
<items>
<item>
<key>enhancements_manage</key>
<string>Может управлять расширениями?</string>
<string>Can manage community enhancements?</string>
</item>
</items>
</group>
@@ -2,7 +2,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Attachment Poster
* Last Updated: $Date: 2012-05-21 21:37:50 +0100 (Mon, 21 May 2012) $
* </pre>
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -7,7 +7,7 @@
* $Author: ips_terabyte $
* @since 20th February 2002
* $LastChangedDate: 2011-05-05 12:40:49 -0400 (Thu, 05 May 2011) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 8655 $
*/
File diff suppressed because it is too large. Load diff
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -2,10 +2,10 @@
<menu>
<tabitems>
<item>
<title>Обзор Системы</title>
<title>Overview</title>
<subitems>
<subitem>
<subitemtitle>Обзор Системы</subitemtitle>
<subitemtitle>Overview</subitemtitle>
<subitemlang>diag_overview</subitemlang>
<subsection>diagnostics</subsection>
<subitemurl></subitemurl>
@@ -15,10 +15,10 @@
</subitems>
</item>
<item>
<title>Проверка Пробелов</title>
<title>Whitespace Checker</title>
<subitems>
<subitem>
<subitemtitle>Проверка Пробелов</subitemtitle>
<subitemtitle>Whitespace Checker</subitemtitle>
<subitemlang>whitespace_checker</subitemlang>
<subsection>diagnostics</subsection>
<subitemurl>do=whitespace</subitemurl>
@@ -28,10 +28,10 @@
</subitems>
</item>
<item>
<title>Проверка Ограничений ФС</title>
<title>Permissions Checker</title>
<subitems>
<subitem>
<subitemtitle>Проверка Ограничений ФС</subitemtitle>
<subitemtitle>Permissions Checker</subitemtitle>
<subitemlang>permissions_checker</subitemlang>
<subsection>diagnostics</subsection>
<subitemurl>do=filepermissions</subitemurl>
@@ -41,10 +41,10 @@
</subitems>
</item>
<item>
<title>Проверка Соединений</title>
<title>Connection Checker</title>
<subitems>
<subitem>
<subitemtitle>Проверка Соединений</subitemtitle>
<subitemtitle>Connection Checker</subitemtitle>
<subitemlang>connection_checker</subitemlang>
<subsection>diagnostics</subsection>
<subitemurl>do=connections</subitemurl>
@@ -54,10 +54,10 @@
</subitems>
</item>
<item>
<title>Прверка БД</title>
<title>Database Checker</title>
<subitems>
<subitem>
<subitemtitle>Проверка БД</subitemtitle>
<subitemtitle>Database Checker</subitemtitle>
<subitemlang>db_checker</subitemlang>
<subsection>diagnostics</subsection>
<subitemurl>do=dbchecker</subitemurl>
@@ -67,10 +67,10 @@
</subitems>
</item>
<item>
<title>Проверка Индексов БД</title>
<title>Database Index Checker</title>
<subitems>
<subitem>
<subitemtitle>Проверка Индексов БД</subitemtitle>
<subitemtitle>Database Index Checker</subitemtitle>
<subitemlang>dbi_checker</subitemlang>
<subsection>diagnostics</subsection>
<subitemurl>do=dbindex</subitemurl>
@@ -80,10 +80,10 @@
</subitems>
</item>
<item>
<title>Тест Email</title>
<title>Email Tester</title>
<subitems>
<subitem>
<subitemtitle>Тест Email</subitemtitle>
<subitemtitle>Email Tester</subitemtitle>
<subitemlang>email_checker</subitemlang>
<subsection>diagnostics</subsection>
<subitemurl>do=email</subitemurl>
@@ -1,32 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<permissions>
<group>
<grouptitle>Инструменты диагностики</grouptitle>
<grouptitle>Diagnostic Tools</grouptitle>
<grouplang>core_diag_tools</grouplang>
<items>
<item>
<key>index_checker</key>
<string>Может проверять индексы таблиц базы? Внимание: позволяет выполнять запросы к базе.</string>
<string>Can use the database index checker? Warning: Allows ability to run database queries indirectly.</string>
</item>
<item>
<key>database_checker</key>
<string>Может использовать проверку базы данных? Внимание: позволяет выполнять запросы к базе.</string>
<string>Can use the database checker? Warning: Allows ability to run database queries indirectly.</string>
</item>
<item>
<key>whitespace_checker</key>
<string>Может проверять файлы на лишние пробелы?</string>
<string>Can use the whitespace checker?</string>
</item>
<item>
<key>connection_checker</key>
<string>Может использовать проверку сетевых соединений?</string>
<string>Can use the connection checker?</string>
</item>
<item>
<key>permission_checker</key>
<string>Может проверять файлы и директории на правильность расстановки прав доступа?</string>
<string>Can use the permissions checker?</string>
</item>
<item>
<key>email_checker</key>
<string>Может проверять работу почты?</string>
<string>Can use the email tester?</string>
</item>
</items>
</group>
@@ -7,7 +7,7 @@
* $Author: ips_terabyte $
* @since 20th February 2002
* $LastChangedDate: 2011-05-05 12:40:49 -0400 (Thu, 05 May 2011) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 8655 $
*/
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Quick help - shows popups with help information
* Last Updated: $Date: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -115,28 +115,28 @@ class admin_core_help_quickhelp extends ipsCommand
switch( $id )
{
case 'docs':
$url = "http://external.ipslink.com/ipboard30/landing/?p=docs-ipb";
$url = "http://anonym.to/?http://external.ipslink.com/ipboard30/landing/?p=docs-ipb";
break;
case 'resources':
$url = "http://external.ipslink.com/ipboard30/landing/?p=resources";
$url = "http://anonym.to/?http://external.ipslink.com/ipboard30/landing/?p=resources";
break;
case 'contact':
$url = "http://external.ipslink.com/ipboard30/landing/?p=contact";
$url = "http://anonym.to/?http://external.ipslink.com/ipboard30/landing/?p=contact";
break;
case 'features':
$url = "http://external.ipslink.com/ipboard30/landing/?p=suggestfeatures";
$url = "http://anonym.to/?http://external.ipslink.com/ipboard30/landing/?p=suggestfeatures";
break;
case 'bugs':
$url = "http://external.ipslink.com/ipboard30/landing/?p=bugs";
$url = "http://anonym.to/?http://external.ipslink.com/ipboard30/landing/?p=bugs";
break;
default:
case 'support':
$url = "http://external.ipslink.com/ipboard30/landing/?p=support";
$url = "http://anonym.to/?http://external.ipslink.com/ipboard30/landing/?p=support";
break;
}
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -1,77 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<menu>
<tabitems>
<item>
<title>Документация</title>
<subitems>
<subitem>
<subitemtitle>Документация</subitemtitle>
<subitemlang>help_documentation</subitemlang>
<subsection>quickhelp</subsection>
<subitemurl>do=redirect&amp;id=docs</subitemurl>
<subisredirect>1</subisredirect>
</subitem>
</subitems>
</item>
<item>
<title>Техническая поддержка</title>
<subitems>
<subitem>
<subitemtitle>Техническая поддержка</subitemtitle>
<subitemlang>help_support</subitemlang>
<subsection>quickhelp</subsection>
<subitemurl>do=redirect&amp;id=support</subitemurl>
<subisredirect>1</subisredirect>
</subitem>
</subitems>
</item>
<item>
<title>Дополнительные Ресурсы</title>
<subitems>
<subitem>
<subitemtitle>Дополнительные Ресурсы</subitemtitle>
<subitemlang>help_resources</subitemlang>
<subsection>quickhelp</subsection>
<subitemurl>do=redirect&amp;id=resources</subitemurl>
<subisredirect>1</subisredirect>
</subitem>
</subitems>
</item>
<item>
<title>Контактная Информация</title>
<subitems>
<subitem>
<subitemtitle>Контактная Информация</subitemtitle>
<subitemlang>help_contact</subitemlang>
<subsection>quickhelp</subsection>
<subitemurl>do=redirect&amp;id=contact</subitemurl>
<subisredirect>1</subisredirect>
</subitem>
</subitems>
</item>
<item>
<title>Запрос Функций</title>
<subitems>
<subitem>
<subitemtitle>Запрос Функций</subitemtitle>
<subitemlang>help_features</subitemlang>
<subsection>quickhelp</subsection>
<subitemurl>do=redirect&amp;id=features</subitemurl>
<subisredirect>1</subisredirect>
</subitem>
</subitems>
</item>
<item>
<title>Сообщить об Ошибке</title>
<subitems>
<subitem>
<subitemtitle>Сообщить об Ошибке</subitemtitle>
<subitemlang>help_bugs</subitemlang>
<subsection>quickhelp</subsection>
<subitemurl>do=redirect&amp;id=bugs</subitemurl>
<subisredirect>1</subisredirect>
</subitem>
</subitems>
</item>
</tabitems>
<?xml version="1.0" encoding="UTF-8"?>
<menu>
<tabitems>
<item>
<title>Documentation</title>
<subitems>
<subitem>
<subitemtitle>Documentation</subitemtitle>
<subitemlang>help_documentation</subitemlang>
<subsection>quickhelp</subsection>
<subitemurl>do=redirect&amp;id=docs</subitemurl>
<subisredirect>1</subisredirect>
</subitem>
</subitems>
</item>
<item>
<title>Technical Support</title>
<subitems>
<subitem>
<subitemtitle>Technical Support</subitemtitle>
<subitemlang>help_support</subitemlang>
<subsection>quickhelp</subsection>
<subitemurl>do=redirect&amp;id=support</subitemurl>
<subisredirect>1</subisredirect>
</subitem>
</subitems>
</item>
<item>
<title>Additional Resources</title>
<subitems>
<subitem>
<subitemtitle>Additional Resources</subitemtitle>
<subitemlang>help_resources</subitemlang>
<subsection>quickhelp</subsection>
<subitemurl>do=redirect&amp;id=resources</subitemurl>
<subisredirect>1</subisredirect>
</subitem>
</subitems>
</item>
<item>
<title>IPS Contact Information</title>
<subitems>
<subitem>
<subitemtitle>IPS Contact Information</subitemtitle>
<subitemlang>help_contact</subitemlang>
<subsection>quickhelp</subsection>
<subitemurl>do=redirect&amp;id=contact</subitemurl>
<subisredirect>1</subisredirect>
</subitem>
</subitems>
</item>
<item>
<title>Feature Requests</title>
<subitems>
<subitem>
<subitemtitle>Feature Requests</subitemtitle>
<subitemlang>help_features</subitemlang>
<subsection>quickhelp</subsection>
<subitemurl>do=redirect&amp;id=features</subitemurl>
<subisredirect>1</subisredirect>
</subitem>
</subitems>
</item>
<item>
<title>Report a Bug</title>
<subitems>
<subitem>
<subitemtitle>Report a Bug</subitemtitle>
<subitemlang>help_bugs</subitemlang>
<subsection>quickhelp</subsection>
<subitemurl>do=redirect&amp;id=bugs</subitemurl>
<subisredirect>1</subisredirect>
</subitem>
</subitems>
</item>
</tabitems>
</menu>
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -7,7 +7,7 @@
* $Author: ips_terabyte $
* @since 20th February 2002
* $LastChangedDate: 2011-05-05 12:40:49 -0400 (Thu, 05 May 2011) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 8655 $
*/
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
File diff suppressed because it is too large. Load diff
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -2,10 +2,10 @@
<menu>
<tabitems>
<item>
<title>Языки Системы</title>
<title>Manage Languages</title>
<subitems>
<subitem>
<subitemtitle>Языки Системы</subitemtitle>
<subitemtitle>Manage Languages</subitemtitle>
<subitemlang>languages</subitemlang>
<subsection>manage_languages</subsection>
<subitemurl></subitemurl>
@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<permissions>
<group>
<grouptitle>Управление языками</grouptitle>
<grouptitle>Manage Languages</grouptitle>
<grouplang>core_languages</grouplang>
<items>
<item>
<key>lang_words</key>
<string>Может добавлять/изменять слова?</string>
<string>Can add/edit the language bit texts?</string>
</item>
<item>
<key>lang_packs</key>
<string>Может добавлять/изменять языковые наборы?</string>
<string>Can add/edit language packs?</string>
</item>
<item>
<key>lang_pack_info</key>
<string>Может изменять настройки и информацию языковых наборов?</string>
<string>Can alter the language pack properties and information?</string>
</item>
</items>
</group>
@@ -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.invisionpower.com">IP.Board</a>
IP.Board
</body>
</html>
@@ -1,452 +1,452 @@
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* ACP Login/Logout Routines
* Last Updated: $Date: 2013-03-20 10:14:51 -0400 (Wed, 20 Mar 2013) $
* </pre>
*
* @author $Author: mmecham $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/company/standards.php#license
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @since Tuesday 17th August 2004
* @version $Revision: 12094 $
*/
if ( ! defined( 'IN_ACP' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'.";
exit();
}
class admin_core_login_manualResolver extends ipsCommand
{
/**
* HTML Skin object
*
* @var object
*/
protected $html;
/**#@+
* Registry objects
*
* @var object
*/
public $registry;
public $DB;
public $settings;
public $request;
public $lang;
public $member;
public $memberData;
/**#@-*/
/**
* Login handler object
*
* @var object
*/
protected $han_login;
/**
* Initiate login handler
*
* @return @e void
*/
public function initHanLogin()
{
$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/handlers/han_login.php', 'han_login' );
$this->han_login = new $classToLoad( $this->registry );
$this->han_login->is_admin_auth = 1;
$this->han_login->init();
}
/**
* Class entry point
*
* @param object Registry reference
* @param string Validation message
* @return @e void [Outputs to screen/redirects]
*/
public function doExecute( ipsRegistry $registry, $validationMessage='' )
{
/* Make object */
$this->registry = $registry;
$this->DB = $this->registry->DB();
$this->settings =& $this->registry->fetchSettings();
$this->request =& $this->registry->fetchRequest();
$this->member = $this->registry->member();
$this->memberData =& $this->registry->member()->fetchMemberData();
$this->lang = $this->registry->getClass('class_localization');
$this->registry->getClass('class_localization')->loadLanguageFile( array( 'admin_login' ), 'core' );
$this->initHanLogin();
//-----------------------------------------
// What to do?
//-----------------------------------------
switch( $this->request['do'] )
{
case 'login':
default:
$this->loginForm();
break;
case 'login-complete':
$this->loginComplete();
break;
case 'login-out':
$this->loginOut();
break;
}
}
/**
* Check and verify the login was successful
*
* @return @e void
*/
public function loginComplete()
{
/* Fetch sessions API */
$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/session/api.php', 'session_api' );
$publicApi = new $classToLoad( $this->registry );
//-----------------------------------------
// Check form details.
//-----------------------------------------
$username = '';
$email = '';
//-----------------------------------------
// Is this a username or email address?
//-----------------------------------------
$_type = $this->han_login->emailOrUsername();
switch( $_type )
{
case 1:
$username = $this->request['username'];
break;
case 2:
$email = $this->request['username'];
break;
case 3:
$username = $this->request['username'];
$email = $this->request['username'];
break;
}
//-----------------------------------------
// Check auth
//-----------------------------------------
$this->han_login->loginAuthenticate( $username, $email, trim($this->request['password']) );
//-----------------------------------------
// Check return code...
//-----------------------------------------
$mem = $this->han_login->member_data;
if ( ( ! $mem['member_id'] ) or ( $this->han_login->return_code == 'NO_USER' ) )
{
$this->_writeToLog( $this->request['username'], 'fail' );
$this->loginForm( $this->lang->words['bad_email_password'] );
}
if ( $this->han_login->return_code == 'NO_ACCESS' )
{
$this->_writeToLog( $this->request['username'], 'fail' );
$this->loginForm( $this->lang->words['no_acp_access'] );
}
else if ( $this->han_login->return_code != 'SUCCESS' )
{
$this->_writeToLog( $this->request['username'], 'fail' );
$this->loginForm( $this->lang->words['bad_email_password'] );
}
//-----------------------------------------
// And sort secondary groups...
//-----------------------------------------
$mem = $this->member->setUpSecondaryGroups( $mem );
//-----------------------------------------
// Check access...
//-----------------------------------------
if ( $mem['g_access_cp'] != 1 )
{
$this->_writeToLog( $this->request['username'], 'fail' );
$this->loginForm( $this->lang->words['no_acp_access'] );
}
else
{
//-----------------------------------------
// Fix up query string...
//-----------------------------------------
$extra_query = "";
if ( $_POST['qstring'] )
{
$extra_query = stripslashes( htmlspecialchars( $_POST['qstring'] ) );
$extra_query = str_replace( $this->settings['_original_base_url'] , "" , $extra_query );
$extra_query = str_ireplace( "?index." . $this->settings['php_ext'] , "" , $extra_query );
$extra_query = ltrim( $extra_query, '?' );
$extra_query = preg_replace( '!adsess=(\w){32}!' , "" , $extra_query );
$extra_query = str_replace( "adsess=x" , "" , $extra_query );
$extra_query = str_replace( array( 'old_&', 'old_&amp;' ) , "" , $extra_query );
$extra_query = preg_replace( '!s=(\w){32}!' , "" , $extra_query );
$extra_query = str_replace( "module=login" , "" , $extra_query );
$extra_query = str_replace( "do=login-complete" , "" , $extra_query );
$extra_query = str_replace( "/admin" , "" , $extra_query );
$extra_query = str_replace( '&amp;' , '&', $extra_query );
$extra_query = preg_replace( "#&{1,}#" , "&", $extra_query );
$extra_query = preg_replace( "#messageinabottleacp=(.*?)$#" , "" , $extra_query );
}
//-----------------------------------------
// Insert session
//-----------------------------------------
$sess_id = md5( uniqid( microtime() ) );
$this->DB->delete( 'core_sys_cp_sessions', 'session_member_id=' . $mem['member_id'] );
/* Grab user agent */
$uAgent = array();
$this->DB->insert( 'core_sys_cp_sessions', array( 'session_id' => $sess_id,
'session_ip_address' => $this->member->ip_address,
'session_member_name' => $mem['members_display_name'],
'session_member_id' => $mem['member_id'],
'session_member_login_key' => $mem['member_login_key'],
'session_location' => 'index',
'session_log_in_time' => time(),
'session_running_time' => time(),
'session_app_data' => serialize( $uAgent ),
'session_url' => '' ) );
$this->request['adsess'] = $sess_id;
/* Log them in public side if not already */
$publicApi->logGuestInAsMember( $mem['member_id'] );
//-----------------------------------------
// Redirect...
//-----------------------------------------
if ( $extra_query )
{
$url = $this->settings['_original_base_url'] . '/' . CP_DIRECTORY . '/index.php?adsess=' . $sess_id . '&' . $extra_query;
}
else
{
/* Load main page? */
require_once( IPS_ROOT_PATH . 'sources/classes/admin/bookmarks.php' );
$bookmarks = new classes_admin_bookmarks();
$bookmarks->setMember( $mem['member_id'] );
$home = $bookmarks->getHomeUrl();
if ( $home !== false )
{
$url = $this->settings['_original_base_url'] . '/' . CP_DIRECTORY . '/index.php?adsess=' . $sess_id . '&' . $home;
}
else
{
$url = $this->settings['_original_base_url'] . '/' . CP_DIRECTORY . '/index.php?adsess=' . $sess_id;
}
}
$this->_writeToLog( $this->request['username'], 'ok' );
ipsRegistry::getClass('output')->global_message = '';
ipsRegistry::getClass('output')->silentRedirect( $url );
}
}
/**
* Log the user out
*
* @return @e void
*/
public function loginOut()
{
//-----------------------------------------
// Do it..
//-----------------------------------------
$this->DB->delete( 'core_sys_cp_sessions', "session_id='" . $this->request['adsess'] . "'" );
//-----------------------------------------
// Redirect...
//-----------------------------------------
ipsRegistry::getClass('output')->silentRedirect( $this->settings['_admin_link'] );
}
/**
* Log the user out
*
* @param string Message to show on the form
* @return @e void
*/
public function loginForm( $message='' )
{
//-----------------------------------------
// Hang on, do we need the upgrader?
//-----------------------------------------
if ( !IN_DEV AND ( !defined('SKIP_UPGRADE_CHECK') OR !SKIP_UPGRADE_CHECK ) )
{
require_once( IPS_ROOT_PATH . 'setup/sources/base/setup.php' );/*noLibHook*/
foreach( ipsRegistry::$applications as $app_dir => $app )
{
$_a = ( $app_dir == 'forums' or $app_dir == 'members' ) ? 'core' : $app_dir;
$numbers = IPSSetUp::fetchAppVersionNumbers( $_a );
if ( $numbers['latest'][0] and $numbers['latest'][0] > $numbers['current'][0] )
{
$this->registry->output->silentRedirect( $this->settings['base_acp_url'] . '/upgrade/index.php?_acpRedirect=1' );
return;
}
}
}
//-----------------------------------------
// INIT
//-----------------------------------------
$message = $message ? $message : $this->member->sessionClass()->getMessage();
//-------------------------------------------------------
// Remove all out of date sessions, like a good boy. Woof.
//-------------------------------------------------------
$cut_off_stamp = time() - 60*60*2;
$this->DB->delete( 'core_sys_cp_sessions', "session_running_time < {$cut_off_stamp}" );
//------------------------------------------------------
// Start form
//------------------------------------------------------
$qs = str_replace( '&amp;' , '&' , IPSText::parseCleanValue( urldecode( my_getenv( 'QUERY_STRING' ) ) ) );
$qs = str_replace( 'adsess=' , 'old_adsess=' , $qs );
$qs = str_replace( 'module=menu', '' , $qs );
$additional_data = $this->han_login->additionalFormHTML();
$replace = false;
$data = array();
if( !is_null($additional_data) AND is_array($additional_data) AND count($additional_data) )
{
$replace = $additional_data[0];
$data = $additional_data[1];
}
$uses_name = false;
$uses_email = false;
foreach( ipsRegistry::cache()->getCache('login_methods') as $method )
{
$login_methods[ $method['login_folder_name'] ] = $method['login_folder_name'];
if( $method['login_user_id'] == 'username' or $method['login_user_id'] == 'either' )
{
$uses_name = true;
}
if( $method['login_user_id'] == 'email' or $method['login_user_id'] == 'either' )
{
$uses_email = true;
}
}
if( $uses_name AND $uses_email )
{
$this->lang->words['gl_signinname'] = $this->lang->words['enter_name_and_email'];
}
else if( $uses_email )
{
$this->lang->words['gl_signinname'] = $this->lang->words['enter_useremail'];
}
else
{
$this->lang->words['gl_signinname'] = $this->lang->words['enter_username'];
}
ipsRegistry::getClass('output')->html_title = $this->lang->words['ipb_login'];
ipsRegistry::getClass('output')->html_main = ipsRegistry::getClass('output')->global_template->log_in_form( $qs, $message, $replace == 'replace' ? true : false, $data );
ipsRegistry::getClass('output')->html_main = str_replace( '<%TITLE%>' , ipsRegistry::getClass('output')->html_title, ipsRegistry::getClass('output')->html_main );
@header("Content-type: text/html;charset={$this->settings['gb_char_set']}");
print ipsRegistry::getClass('output')->html_main;
exit();
}
/**
* Write to the admin log in loggy ma log
*
* @param string Username
* @param string ok/fail flag
* @return @e void
* @note This is private so that a hacker couldn't get into ACP, upload a new hook that lets them clear the log, and then clear the login log
*/
private function _writeToLog( $username='', $flag='fail' )
{
//-----------------------------------------
// INIT
//-----------------------------------------
$username = $username ? $username : $this->request['username'];
$flag = ( $flag == 'ok' ) ? 1 : 0;
$admin_post_details = array();
//-----------------------------------------
// Generate POST / GET details
//-----------------------------------------
foreach( $_GET as $k => $v )
{
$admin_post_details['get'][ $k ] = $v;
}
foreach( $_POST as $k => $v )
{
if ( $k == 'password' AND IPSText::mbstrlen( $v ) > 1 )
{
$v = $v ? ( (IPSText::mbstrlen( $v ) - 1) > 0 ? str_repeat( '*', IPSText::mbstrlen( $v ) - 1 ) : '' ) . substr( $v, -1, 1 ) : '';
}
$admin_post_details['post'][ $k ] = $v;
}
//-----------------------------------------
// Write to disk...
//-----------------------------------------
$this->DB->insert( 'admin_login_logs', array( 'admin_ip_address' => $this->member->ip_address,
'admin_username' => $username,
'admin_time' => time(),
'admin_success' => $flag,
'admin_post_details' => serialize( $admin_post_details ) ) );
}
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.6
* ACP Login/Logout Routines
* Last Updated: $Date: 2013-03-20 10:14:51 -0400 (Wed, 20 Mar 2013) $
* </pre>
*
* @author $Author: mmecham $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/company/standards.php#license
* @package IP.Board
* @subpackage Core
* @link http://www.invisionpower.com
* @since Tuesday 17th August 2004
* @version $Revision: 12094 $
*/
if ( ! defined( 'IN_ACP' ) )
{
print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'.";
exit();
}
class admin_core_login_manualResolver extends ipsCommand
{
/**
* HTML Skin object
*
* @var object
*/
protected $html;
/**#@+
* Registry objects
*
* @var object
*/
public $registry;
public $DB;
public $settings;
public $request;
public $lang;
public $member;
public $memberData;
/**#@-*/
/**
* Login handler object
*
* @var object
*/
protected $han_login;
/**
* Initiate login handler
*
* @return @e void
*/
public function initHanLogin()
{
$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/handlers/han_login.php', 'han_login' );
$this->han_login = new $classToLoad( $this->registry );
$this->han_login->is_admin_auth = 1;
$this->han_login->init();
}
/**
* Class entry point
*
* @param object Registry reference
* @param string Validation message
* @return @e void [Outputs to screen/redirects]
*/
public function doExecute( ipsRegistry $registry, $validationMessage='' )
{
/* Make object */
$this->registry = $registry;
$this->DB = $this->registry->DB();
$this->settings =& $this->registry->fetchSettings();
$this->request =& $this->registry->fetchRequest();
$this->member = $this->registry->member();
$this->memberData =& $this->registry->member()->fetchMemberData();
$this->lang = $this->registry->getClass('class_localization');
$this->registry->getClass('class_localization')->loadLanguageFile( array( 'admin_login' ), 'core' );
$this->initHanLogin();
//-----------------------------------------
// What to do?
//-----------------------------------------
switch( $this->request['do'] )
{
case 'login':
default:
$this->loginForm();
break;
case 'login-complete':
$this->loginComplete();
break;
case 'login-out':
$this->loginOut();
break;
}
}
/**
* Check and verify the login was successful
*
* @return @e void
*/
public function loginComplete()
{
/* Fetch sessions API */
$classToLoad = IPSLib::loadLibrary( IPS_ROOT_PATH . 'sources/classes/session/api.php', 'session_api' );
$publicApi = new $classToLoad( $this->registry );
//-----------------------------------------
// Check form details.
//-----------------------------------------
$username = '';
$email = '';
//-----------------------------------------
// Is this a username or email address?
//-----------------------------------------
$_type = $this->han_login->emailOrUsername();
switch( $_type )
{
case 1:
$username = $this->request['username'];
break;
case 2:
$email = $this->request['username'];
break;
case 3:
$username = $this->request['username'];
$email = $this->request['username'];
break;
}
//-----------------------------------------
// Check auth
//-----------------------------------------
$this->han_login->loginAuthenticate( $username, $email, trim($this->request['password']) );
//-----------------------------------------
// Check return code...
//-----------------------------------------
$mem = $this->han_login->member_data;
if ( ( ! $mem['member_id'] ) or ( $this->han_login->return_code == 'NO_USER' ) )
{
$this->_writeToLog( $this->request['username'], 'fail' );
$this->loginForm( $this->lang->words['bad_email_password'] );
}
if ( $this->han_login->return_code == 'NO_ACCESS' )
{
$this->_writeToLog( $this->request['username'], 'fail' );
$this->loginForm( $this->lang->words['no_acp_access'] );
}
else if ( $this->han_login->return_code != 'SUCCESS' )
{
$this->_writeToLog( $this->request['username'], 'fail' );
$this->loginForm( $this->lang->words['bad_email_password'] );
}
//-----------------------------------------
// And sort secondary groups...
//-----------------------------------------
$mem = $this->member->setUpSecondaryGroups( $mem );
//-----------------------------------------
// Check access...
//-----------------------------------------
if ( $mem['g_access_cp'] != 1 )
{
$this->_writeToLog( $this->request['username'], 'fail' );
$this->loginForm( $this->lang->words['no_acp_access'] );
}
else
{
//-----------------------------------------
// Fix up query string...
//-----------------------------------------
$extra_query = "";
if ( $_POST['qstring'] )
{
$extra_query = stripslashes( htmlspecialchars( $_POST['qstring'] ) );
$extra_query = str_replace( $this->settings['_original_base_url'] , "" , $extra_query );
$extra_query = str_ireplace( "?index." . $this->settings['php_ext'] , "" , $extra_query );
$extra_query = ltrim( $extra_query, '?' );
$extra_query = preg_replace( '!adsess=(\w){32}!' , "" , $extra_query );
$extra_query = str_replace( "adsess=x" , "" , $extra_query );
$extra_query = str_replace( array( 'old_&', 'old_&amp;' ) , "" , $extra_query );
$extra_query = preg_replace( '!s=(\w){32}!' , "" , $extra_query );
$extra_query = str_replace( "module=login" , "" , $extra_query );
$extra_query = str_replace( "do=login-complete" , "" , $extra_query );
$extra_query = str_replace( "/admin" , "" , $extra_query );
$extra_query = str_replace( '&amp;' , '&', $extra_query );
$extra_query = preg_replace( "#&{1,}#" , "&", $extra_query );
$extra_query = preg_replace( "#messageinabottleacp=(.*?)$#" , "" , $extra_query );
}
//-----------------------------------------
// Insert session
//-----------------------------------------
$sess_id = md5( uniqid( microtime() ) );
$this->DB->delete( 'core_sys_cp_sessions', 'session_member_id=' . $mem['member_id'] );
/* Grab user agent */
$uAgent = array();
$this->DB->insert( 'core_sys_cp_sessions', array( 'session_id' => $sess_id,
'session_ip_address' => $this->member->ip_address,
'session_member_name' => $mem['members_display_name'],
'session_member_id' => $mem['member_id'],
'session_member_login_key' => $mem['member_login_key'],
'session_location' => 'index',
'session_log_in_time' => time(),
'session_running_time' => time(),
'session_app_data' => serialize( $uAgent ),
'session_url' => '' ) );
$this->request['adsess'] = $sess_id;
/* Log them in public side if not already */
$publicApi->logGuestInAsMember( $mem['member_id'] );
//-----------------------------------------
// Redirect...
//-----------------------------------------
if ( $extra_query )
{
$url = $this->settings['_original_base_url'] . '/' . CP_DIRECTORY . '/index.php?adsess=' . $sess_id . '&' . $extra_query;
}
else
{
/* Load main page? */
require_once( IPS_ROOT_PATH . 'sources/classes/admin/bookmarks.php' );
$bookmarks = new classes_admin_bookmarks();
$bookmarks->setMember( $mem['member_id'] );
$home = $bookmarks->getHomeUrl();
if ( $home !== false )
{
$url = $this->settings['_original_base_url'] . '/' . CP_DIRECTORY . '/index.php?adsess=' . $sess_id . '&' . $home;
}
else
{
$url = $this->settings['_original_base_url'] . '/' . CP_DIRECTORY . '/index.php?adsess=' . $sess_id;
}
}
$this->_writeToLog( $this->request['username'], 'ok' );
ipsRegistry::getClass('output')->global_message = '';
ipsRegistry::getClass('output')->silentRedirect( $url );
}
}
/**
* Log the user out
*
* @return @e void
*/
public function loginOut()
{
//-----------------------------------------
// Do it..
//-----------------------------------------
$this->DB->delete( 'core_sys_cp_sessions', "session_id='" . $this->request['adsess'] . "'" );
//-----------------------------------------
// Redirect...
//-----------------------------------------
ipsRegistry::getClass('output')->silentRedirect( $this->settings['_admin_link'] );
}
/**
* Log the user out
*
* @param string Message to show on the form
* @return @e void
*/
public function loginForm( $message='' )
{
//-----------------------------------------
// Hang on, do we need the upgrader?
//-----------------------------------------
if ( !IN_DEV AND ( !defined('SKIP_UPGRADE_CHECK') OR !SKIP_UPGRADE_CHECK ) )
{
require_once( IPS_ROOT_PATH . 'setup/sources/base/setup.php' );/*noLibHook*/
foreach( ipsRegistry::$applications as $app_dir => $app )
{
$_a = ( $app_dir == 'forums' or $app_dir == 'members' ) ? 'core' : $app_dir;
$numbers = IPSSetUp::fetchAppVersionNumbers( $_a );
if ( $numbers['latest'][0] and $numbers['latest'][0] > $numbers['current'][0] )
{
$this->registry->output->silentRedirect( $this->settings['base_acp_url'] . '/upgrade/index.php?_acpRedirect=1' );
return;
}
}
}
//-----------------------------------------
// INIT
//-----------------------------------------
$message = $message ? $message : $this->member->sessionClass()->getMessage();
//-------------------------------------------------------
// Remove all out of date sessions, like a good boy. Woof.
//-------------------------------------------------------
$cut_off_stamp = time() - 60*60*2;
$this->DB->delete( 'core_sys_cp_sessions', "session_running_time < {$cut_off_stamp}" );
//------------------------------------------------------
// Start form
//------------------------------------------------------
$qs = str_replace( '&amp;' , '&' , IPSText::parseCleanValue( urldecode( my_getenv( 'QUERY_STRING' ) ) ) );
$qs = str_replace( 'adsess=' , 'old_adsess=' , $qs );
$qs = str_replace( 'module=menu', '' , $qs );
$additional_data = $this->han_login->additionalFormHTML();
$replace = false;
$data = array();
if( !is_null($additional_data) AND is_array($additional_data) AND count($additional_data) )
{
$replace = $additional_data[0];
$data = $additional_data[1];
}
$uses_name = false;
$uses_email = false;
foreach( ipsRegistry::cache()->getCache('login_methods') as $method )
{
$login_methods[ $method['login_folder_name'] ] = $method['login_folder_name'];
if( $method['login_user_id'] == 'username' or $method['login_user_id'] == 'either' )
{
$uses_name = true;
}
if( $method['login_user_id'] == 'email' or $method['login_user_id'] == 'either' )
{
$uses_email = true;
}
}
if( $uses_name AND $uses_email )
{
$this->lang->words['gl_signinname'] = $this->lang->words['enter_name_and_email'];
}
else if( $uses_email )
{
$this->lang->words['gl_signinname'] = $this->lang->words['enter_useremail'];
}
else
{
$this->lang->words['gl_signinname'] = $this->lang->words['enter_username'];
}
ipsRegistry::getClass('output')->html_title = $this->lang->words['ipb_login'];
ipsRegistry::getClass('output')->html_main = ipsRegistry::getClass('output')->global_template->log_in_form( $qs, $message, $replace == 'replace' ? true : false, $data );
ipsRegistry::getClass('output')->html_main = str_replace( '<%TITLE%>' , ipsRegistry::getClass('output')->html_title, ipsRegistry::getClass('output')->html_main );
@header("Content-type: text/html");
print ipsRegistry::getClass('output')->html_main;
exit();
}
/**
* Write to the admin log in loggy ma log
*
* @param string Username
* @param string ok/fail flag
* @return @e void
* @note This is private so that a hacker couldn't get into ACP, upload a new hook that lets them clear the log, and then clear the login log
*/
private function _writeToLog( $username='', $flag='fail' )
{
//-----------------------------------------
// INIT
//-----------------------------------------
$username = $username ? $username : $this->request['username'];
$flag = ( $flag == 'ok' ) ? 1 : 0;
$admin_post_details = array();
//-----------------------------------------
// Generate POST / GET details
//-----------------------------------------
foreach( $_GET as $k => $v )
{
$admin_post_details['get'][ $k ] = $v;
}
foreach( $_POST as $k => $v )
{
if ( $k == 'password' AND IPSText::mbstrlen( $v ) > 1 )
{
$v = $v ? ( (IPSText::mbstrlen( $v ) - 1) > 0 ? str_repeat( '*', IPSText::mbstrlen( $v ) - 1 ) : '' ) . substr( $v, -1, 1 ) : '';
}
$admin_post_details['post'][ $k ] = $v;
}
//-----------------------------------------
// Write to disk...
//-----------------------------------------
$this->DB->insert( 'admin_login_logs', array( 'admin_ip_address' => $this->member->ip_address,
'admin_username' => $username,
'admin_time' => time(),
'admin_success' => $flag,
'admin_post_details' => serialize( $admin_post_details ) ) );
}
}
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Admin logs
* Last Updated: $LastChangedDate: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -7,7 +7,7 @@
* $Author: mark $
* @since 20th February 2002
* $LastChangedDate: 2012-04-02 11:17:19 -0400 (Mon, 02 Apr 2012) $
* @version v3.4.5
* @version v3.4.6
* $Revision: 10537 $
*/
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Email error logs
* Last Updated: $LastChangedDate: 2012-05-10 16:10:13 -0400 (Thu, 10 May 2012) $
* </pre>
@@ -3,7 +3,7 @@
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.5
* IP.Board v3.4.6
* Error logs
* Last Updated: $LastChangedDate: 2013-02-01 20:54:48 -0500 (Fri, 01 Feb 2013) $
* </pre>
Loaded 100 of 1568 files, more files were not shown because too many files have changed in this diff. Show more