Вход Регистрация
Файл: IPBMafia.ru_IPB_3.4.6_Final_Rus _Nulled/board/Tools/build4release.php
Строк: 359
#!/usr/local/bin/php
<?php

/**
 * <pre>
 * Invision Power Services
 * IP.Board v3.4.6
 * Main public executable wrapper.
 * Set-up and load module to run
 * 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();

$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 IP.Board Shell Get Stuff Ready For Release Tooln--------------------------------------------n" );
        
$this->_print( "What do you wish to do? [l=Rebuild and Export Lang, s=Rebuild and Export Skins, a=Both]nEnter: " );

        
$option = $this->_fetchOption();

        switch( 
$option )
        {
            case 
'l':
                
$this->_doLang();
            break;
            case 
's':
                
$this->_doSkins();
            break;
            case 
'a':
                
$this->_doLang();
                
$this->_doSkins();
            break;
            default:
                
$this->_print( "nIncorrect option" );
                exit();
            break;
        }
    }
    
    
/**
     * Rebuild langs
     */
    
protected function _doSkins()
    {
        
/* INIT */
        
$start    = time();
        
$messages = 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*/
        
        
$this->skinFunctions = new skinImportExport( $this->registry );
        
        
/* This is which skins we want to export for default installations */
        
$skinIDs = array_values( $this->skinFunctions->remapData['export'] );
        
        
//-----------------------------------------
        // Can do .. stuff?
        //-----------------------------------------
        
        
if ( ! is_writable( IPS_ROOT_PATH . 'setup/xml/skins' ) )
        {
            
$this->_print( 'Cannot write to /admin/setup/xml/skins' );
            exit();
        }
        
        
//-----------------------------------------
        // Rebuild stuff
        //-----------------------------------------
        
        
foreach( $skinIDs as $id )
        {
            
$msg        = $this->skinFunctions->rebuildMasterCSS( $id );
            
$messages[] = "<strong>CSS Rebuilt for $id</strong>";
            
$messages   = array_merge( $messages, $msg, $this->skinFunctions->fetchMessages( TRUE ) );
            
$errors     = array_merge( $errors  , $this->skinFunctions->fetchErrorMessages( TRUE ) );
            
            
$msg        = $this->skinFunctions->rebuildMasterFromPHP( $id );
            
$messages[] = "<strong>HTML Rebuilt for $id</strong>";
            
$messages   = array_merge( $messages, $msg, $this->skinFunctions->fetchMessages( TRUE ) );
            
$errors     = array_merge( $errors  , $this->skinFunctions->fetchErrorMessages( TRUE ) );
            
            
$msg        = $this->skinFunctions->rebuildMasterReplacements( $id );
            
$messages[] = "<strong>Replacements Rebuilt for $id</strong>";
            
$messages   = array_merge( $messages, (array)$msg, $this->skinFunctions->fetchMessages( TRUE ) );
            
$errors     = array_merge( $errors  , $this->skinFunctions->fetchErrorMessages( TRUE ) );
        }
        
        
/* Got any errors? */
        
if ( count( $errors ) )
        {
            
$this->_print( 'ERROR: ' . implode( "n *", $errors ) );
            
//exit();
        
}
        
        
$this->skinFunctions->rebuildTreeInformation();
        
$this->skinFunctions->rebuildSkinSetsCache();
        
        
//-----------------------------------------
        // Rebuild skin caches
        //-----------------------------------------
        
        
foreach( $skinIDs as $id )
        {
            
$setData = $this->skinFunctions->fetchSkinData( $id );
            
            
$key = $setData['set_key'];
            
            if ( 
$id > 0 )
            {
                
$this->skinFunctions->rebuildPHPTemplates( $id );
                
$messages[] = "<strong>PHP Templates Recached for $key</strong>";
                
$messages = array_merge( $messages, $this->skinFunctions->fetchMessages( TRUE ) );
                
$errors   = array_merge( $errors  , $this->skinFunctions->fetchErrorMessages( TRUE ) );
            
                
$this->skinFunctions->rebuildCSS( $id );
                
$messages[] = "<strong>CSS Recached for $key</strong>";
                
$messages = array_merge( $messages, $this->skinFunctions->fetchMessages( TRUE ) );
                
$errors   = array_merge( $errors  , $this->skinFunctions->fetchErrorMessages( TRUE ) );
                
                
$this->skinFunctions->rebuildReplacementsCache( $id );
                
$messages[] = "<strong>Replacements Recached for $key</strong>";
                
$messages = array_merge( $messages, $this->skinFunctions->fetchMessages( TRUE ) );
                
$errors   = array_merge( $errors  , $this->skinFunctions->fetchErrorMessages( TRUE ) );
            }
        
            
/* Build and write XML files for replacements and CSS */
            
$replacementsXML = $this->skinFunctions->generateReplacementsXML( $id, FALSE );
            
            @
unlink( IPS_ROOT_PATH . 'setup/xml/skins/replacements_' . $key . '.xml', $replacementsXML );
            
            if ( 
$replacementsXML )
            {
                if ( ! @
file_put_contents( IPS_ROOT_PATH . 'setup/xml/skins/replacements_' . $key . '.xml', $replacementsXML ) )
                {
                    
$errors[] = "Cannot write: " . IPS_ROOT_PATH . 'setup/xml/skins/replacements_' . $key . '.xml';
                }
                else
                {
                    
$messages[] = "Written: " . IPS_ROOT_PATH . 'setup/xml/skins/replacements_' . $key . '.xml';
                }
            }
            
            
/* Export all CSS - Function loops through all skin sets */
            
$this->skinFunctions->exportAllAppCSS( $id );
            
$messages[] = "<strong>App CSS Written For $key</strong>";
            
$messages = array_merge( $messages, $this->skinFunctions->fetchMessages( TRUE ) );
            
$errors   = array_merge( $errors  , $this->skinFunctions->fetchErrorMessages( TRUE ) );

            
/* Export all CSS - Function loops through all skin sets */
            
$this->skinFunctions->exportAllAppTemplates( $id );
            
$messages[] = "<strong>App XML Written For $key</strong>";
            
$messages = array_merge( $messages, $this->skinFunctions->fetchMessages( TRUE ) );
            
$errors   = array_merge( $errors  , $this->skinFunctions->fetchErrorMessages( TRUE ) );
            
            
/* Got any errors? */
            
if ( count( $errors ) )
            {
                
$this->_print( 'ERROR: ' . implode( "n *", $errors ) );
                
//exit();
            
}
        }
        
        
/* Generate skin sets XML */
        
$skinSetXML = $this->skinFunctions->generateMasterSkinSetXML( $skinIDs );
        
        @
unlink( IPS_ROOT_PATH . 'setup/xml/skins/setsData.xml' );
        
        if ( ! @
file_put_contents( IPS_ROOT_PATH . 'setup/xml/skins/setsData.xml', $skinSetXML ) )
        {
            
$errors[] = "Cannot write:: " . IPS_ROOT_PATH . 'setup/xml/skins/setsData.xml';
        }
        else
        {
            
$messages[] = "Written:  " . IPS_ROOT_PATH . 'setup/xml/skins/setsData.xml';
        }
        
        
$this->_print( implode( "n", $messages ) );
        
        
$end = time();
        
$tkn = ( $end - $start) / 60;
        
        
$this->_print( "COMPLETE. Took " . $tkn . "mn" );
    }
    
    
/**
     * Rebuild langs
     */
    
protected function _doLang()
    {
        
/* 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 );
        
        
$start = time();
        
        foreach( 
ipsRegistry::$applications as $app => $app_data )
        {
            
$this->_print("nStarting App: " . $app_data['app_title'] );
            
$_start = time();
            
            
/* Stuff the post array */
            
$_POST['apps'] = array( $app => $app );
            
$msgs = $lang->importFromCacheFiles( FALSE );
            
            
$_end = time();
            
$_tkn = ( $_end - $_start) / 60;
            
            
$this->_print( "nDone. Took " . $_tkn . "mn" . implode( "n", $msgs ) );
        }
        
        
$this->_print( "nAll languages imported" );
        
        foreach( 
ipsRegistry::$applications as $app_dir => $app_data )
        {
            
$this->_print("nExporting XML for App: " . $app_data['app_title'] );
                
            
$this->request['app_dir']    = $app_dir;
            
            
$this->request['type']    = 'admin';
            
$lang->languageExportToXML( 1, 1 );
            
            
$this->request['type']    = 'public';
            
$lang->languageExportToXML( 1, 1 );
        }
        
        
$end = time();
        
$tkn = ( $end - $start) / 60;
        
        
$this->_print( "nCOMPLETE. 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();                 



?>
Онлайн: 2
Реклама