Файл: IPBMafia.ru_IPB_3.4.6_Final_Rus _Nulled/board/Tools/buildInDev.php
Строк: 268
#!/usr/local/bin/php
<?php
/**
* <pre>
* Invision Power Services
* IP.Board v3.4.6
* Rebuilds stuff from XML
* Last Updated: $Date: 2012-06-06 15:26:34 -0400 (Wed, 06 Jun 2012) $
* </pre>
*
* @author $Author: ips_terabyte $
* @copyright (c) 2001 - 2009 Invision Power Services, Inc.
* @license http://www.invisionpower.com/company/standards.php#license
* @package IP.Board
* @link http://www.invisionpower.com
* @version $Rev: 10878 $
*
*/
define( 'IPS_IS_SHELL', TRUE );
define( 'IPB_THIS_SCRIPT', 'admin' );
if ( is_file( './initdata.php' ) )
{
require_once( './initdata.php' );/*noLibHook*/
}
elseif ( is_file( '../initdata.php' ) )
{
require_once( '../initdata.php' );/*noLibHook*/
}
else
{
require_once( 'initdata.php' );/*noLibHook*/
}
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );/*noLibHook*/
$reg = ipsRegistry::instance();
$reg->init();
/* Ensure it's CLI */
$cli = php_sapi_name() === 'cli';
if ( ! $cli )
{
print "<html><head><title>Warning</title></head>n";
print "<body style='text-align:center'>n";
print "This script is meant to be run via command line<br />n";
print "More information:<br />n";
print "<a href="http://www.google.com/search?hl=en&q=php+cli+windows" target="_blank">http://www.google.com/search?hl=en&q=php+cli+windows</a><br />n";
print "This script will not run through a webserver.<br />n";
print "</body></html>n";
exit();
}
print "n ";
print "n (_) _ __ ____ ";
print "n | || '_ / ___' ";
print "n | || |_) | __. ";
print "n | || .__/.___ ";
print "n |_||_| |_______/ nn";
$moo = new moo( $reg );
class moo
{
function __construct( ipsRegistry $registry )
{
$this->registry = $registry;
$this->DB = $this->registry->DB();
$this->settings =& $this->registry->fetchSettings();
$this->request =& $this->registry->fetchRequest();
$this->cache = $this->registry->cache();
$this->caches =& $this->registry->cache()->fetchCaches();
$this->stdin = fopen('php://stdin', 'r');
$this->_print( "--------------------------------------------nWelcome to the IN_DEV build tool" );
$this->_print( "This tool will create the required directories and files to run in IN_DEVn--------------------------------------------n" );
/* Is IN_DEV on? */
if ( ! IN_DEV )
{
$this->_print( "IN_DEV is not on. Please edit 'conf_global.php' and add: define( 'IN_DEV', 1 );" );
exit();
}
/* Can we write into require folders? */
$req = array( 'cache', 'cache/skin_cache', 'cache/lang_cache', 'cache/lang_cache/1', PUBLIC_DIRECTORY . '/style_css' );/*noLibHook*/
$stop = false;
foreach( $req as $r )
{
if ( ! is_dir( DOC_IPS_ROOT_PATH . $r ) )
{
$this->_print( "Cannot locate: $r - please CHMOD appropriately and re-run" );
$stop = true;
}
if ( ! is_writable( DOC_IPS_ROOT_PATH . $r ) )
{
$this->_print( "Cannot write to: $r - please CHMOD appropriately and re-run" );
$stop = true;
}
}
if ( $stop )
{
exit();
}
$this->_print( "Hit Any Key To Continue: " );
$option = $this->_fetchOption();
/* Export all skins required */
$this->_doSkins();
/* Export all language bits */
$this->_doLang();
}
/**
* Rebuild skins
*/
protected function _doSkins()
{
/* INIT */
$start = time();
$output = array();
$errors = array();
/* Grab class */
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinFunctions.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinCaching.php' );/*noLibHook*/
require_once( IPS_ROOT_PATH . 'sources/classes/skins/skinImportExport.php' );/*noLibHook*/
$skinFunctions = new skinImportExport( $this->registry );
/* Fetch master dirs */
$master = $skinFunctions->fetchMasterKeys();
if ( ! count( $master ) )
{
$this->_print( "Could not locate any master skin keys" );
exit();
}
/* PHP */
foreach( $master as $m )
{
$path = ( $m == 'root' ) ? IPS_CACHE_PATH . 'cache/skin_cache/master_skin' : IPS_CACHE_PATH . 'cache/skin_cache/master_skin_' . $m;
$path = ( $m == 'xmlskin' ) ? IPS_CACHE_PATH . 'cache/skin_cache/master_skin_xml' : $path;
if ( is_dir( $path ) )
{
$this->_print( "$path already exists..." );
continue;
}
if ( ! mkdir( $path, IPS_FOLDER_PERMISSION ) )
{
$this->_print( "Could not create $path" );
exit();
}
else
{
@chmod( $path, IPS_FOLDER_PERMISSION );
$this->_print( "$path created..." );
}
}
/* CSS */
foreach( $master as $m )
{
$path = ( $m == 'root' ) ? DOC_IPS_ROOT_PATH . PUBLIC_DIRECTORY . '/style_css/master_css' : DOC_IPS_ROOT_PATH . PUBLIC_DIRECTORY . '/style_css/master_css_' . $m;
$path = ( $m == 'xmlskin' ) ? DOC_IPS_ROOT_PATH . PUBLIC_DIRECTORY . '/style_css/master_css_xml' : $path;
if ( is_dir( $path ) )
{
$this->_print( "$path already exists..." );
continue;
}
if ( ! mkdir( $path, IPS_FOLDER_PERMISSION ) )
{
$this->_print( "Could not create $path" );
exit();
}
else
{
@chmod( $path, IPS_FOLDER_PERMISSION );
$this->_print( "$path created..." );
}
}
/* Now create master dirs for PHP */
foreach( $master as $m )
{
$dir = ( $m == 'root' ) ? 'master_skin' : 'master_skin_' . $m;
$dir = ( $m == 'xmlskin' ) ? 'master_skin_xml' : $dir;
$skinFunctions->writeMasterSkin( $m, $dir );
$this->_print( "PHP templates written for $m" );
}
/* Now create master dirs for CSS */
foreach( $master as $m )
{
$dir = ( $m == 'root' ) ? 'master_css' :'master_css_' . $m;
$dir = ( $m == 'xmlskin' ) ? 'master_css_xml' : $dir;
$skinFunctions->writeMasterSkinCss( $m, $dir );
$this->_print( "CSS written for $m" );
}
/* Now create master dirs for replacements */
foreach( $master as $m )
{
$dir = ( $m == 'root' ) ? 'master_skin' : 'master_skin_' . $m;
$dir = ( $m == 'xmlskin' ) ? 'master_skin_xml' : $dir;
$skinFunctions->writeMasterSkinReplacements( $m, $dir );
$this->_print( "Replacements written for $m" );
}
$end = time();
$tkn = ( $end - $start) / 60;
$this->_print( "COMPLETE. Took " . $tkn . "mn" );
}
/**
* Rebuild langs
*/
protected function _doLang()
{
/* INIT */
$start = time();
/* Grab class */
require_once( IPS_ROOT_PATH . 'applications/core/modules_admin/languages/manage_languages.php' );/*noLibHook*/
$lang = new admin_core_languages_manage_languages( $this->registry );
$lang->makeRegistryShortcuts( $this->registry );
$lang->cacheToDisk( 'master' );
$end = time();
$tkn = ( $end - $start) / 60;
$this->_print( "Master languages written" );
$this->_print( "COMPLETE. Took " . $tkn . "mn" );
}
/**
* Out to stdout
*/
protected function _print( $message, $newline="n" )
{
$stdout = fopen('php://stdout', 'w');
fwrite( $stdout, $message . $newline );
fclose( $stdout );
}
/* Fetch option
*
*/
protected function _fetchOption()
{
return trim( fgets( $this->stdin ) );
}
}
exit();
?>