Вход Регистрация
Файл: IPBMafia.ru_IPB_3.4.6_Final_Rus _Nulled/board/Tools/_postUpdateRebuild.php
Строк: 229
<?php

/**
 * <pre>
 * Invision Power Services
 * IP.Board v3.4.6
 * Main public executable wrapper.
 * Set-up and load module to run
 * Last Updated: $Date: 2011-03-31 11:17:44 +0100 (Thu, 31 Mar 2011) $
 * </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: 8229 $
 *
 */

define( 'IPB_THIS_SCRIPT', 'admin' );

if ( 
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->_doLang();
        
$this->_doSkins();
    }
    
    
/**
     * Rebuild langs
     */
    
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 );
        
        
        
/* Grab skin data */
        
$this->DB->build( array( 'select' => '*',
                                 
'from'   => 'skin_collections' ) );

        
$this->DB->execute();

        while( 
$row = $this->DB->fetch() )
        {
            
/* Bit of jiggery pokery... */
            
if ( $row['set_key'] == 'default' )
            {
                
$row['set_key'] = 'root';
                
$row['set_id']  = 0;
            }

            
$skinSets[ $row['set_key'] ] = $row;
        }

        
/* Templates */
        
foreach( ipsRegistry::$applications as $appDir => $appData )
        {
            foreach( 
$skinSets as $skinKey => $skinData )
            {
                
$_PATH    = IPSLib::getAppDir( $appDir ) .  '/xml/';

                
$output[] = "Upgrading {$skinData['set_name']} for $appDir templates...";

                if ( 
is_file( $_PATH . $appDir . '_' . $skinKey . '_templates.xml' ) )
                {
                    
//-----------------------------------------
                    // Install
                    //-----------------------------------------

                    
$return = $skinFunctions->importTemplateAppXML( $appDir, $skinKey, $skinData['set_id'], TRUE );

                    
$output[] = intval( $return['insertCount'] ) . " added, " . intval( $return['updateCount'] ) . " templates updated";
                }

                if ( 
is_file( $_PATH . $appDir . '_' . $skinKey . '_css.xml' ) )
                {
                    
//-----------------------------------------
                    // Install
                    //-----------------------------------------

                    
$return = $skinFunctions->importCSSAppXML( $appDir, $skinKey, $skinData['set_id'] );

                    
$output[] = intval( $return['insertCount'] ) . " {$skinData['set_name']} CSS files inserted";
                }
            }
         }
    
        
/* Replacements */
        
foreach( $skinSets as $skinKey => $skinData )
        {
            if ( 
is_file( IPS_ROOT_PATH . 'setup/xml/skins/replacements_' . $skinKey . '.xml' ) )
            {
                
$skinFunctions->importReplacementsXMLArchive( file_get_contents( IPS_ROOT_PATH . 'setup/xml/skins/replacements_' . $skinKey . '.xml' ), $skinKey );
                
                
$output[] = $skinKey . " replacements rebuilt";
            }
        }
    
        
/* reset ID */
        //$skinSets['root']['set_id'] = 1;
        
        /* Recache */
        
foreach( $skinSets as $skinKey => $skinData )
        {
            
$skinFunctions->rebuildPHPTemplates( $skinData['set_id'] );

            if ( 
$skinFunctions->fetchErrorMessages() !== FALSE )
            {
                
$output[] = implode( "<br />", $skinFunctions->fetchErrorMessages() );
            }

            
$skinFunctions->rebuildCSS( $skinData['set_id'] );

            if ( 
$skinFunctions->fetchErrorMessages() !== FALSE )
            {
                
$output[] = implode( "<br />", $skinFunctions->fetchErrorMessages() );
            }

            
$skinFunctions->rebuildReplacementsCache( $skinData['set_id'] );

            if ( 
$skinFunctions->fetchErrorMessages() !== FALSE )
            {
                
$output[] = implode( "<br />", $skinFunctions->fetchErrorMessages() );
            }
            
            
$output[] = $skinKey . " recached";
        }
        
        
/* recache other */
        
$skinFunctions->rebuildSkinSetsCache();
        
        
$this->_print( implode( "n", $output ) );
        
        
$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 )
        {
            
$output[] = "Upgrading ADMIN languages...";
            
$_PATH    = IPSLib::getAppDir( $app ) .  '/xml/';

            
/* Loop through the xml directory and look for lang packs */
            
try
            {
                foreach( new 
DirectoryIterator( $_PATH ) as $f )
                {
                    if( 
preg_match( "#(admin|public)_(.+?)_language_pack.xml#", $f->getFileName() ) )
                    {
                        
//-----------------------------------------
                        // Import and cache
                        //-----------------------------------------
                        
                        
$output[] = "Importing " . $f->getFileName();
                        
                        
$this->request['file_location'] = $_PATH . $f->getFileName();
                        
$lang->imprtFromXML( true, true, true, $app );
                    }
                }
            } catch ( 
Exception $e ) {}
        }
        
        
$this->_print( implode( "n", $output ) );
        
$this->_print( "nAll languages imported and recached" );
        
        
$end = time();
        
$tkn = ( $end - $start) / 60;
        
        
$this->_print( "COMPLETE. Took " . $tkn . "mn" );
    }
    
    
    
/**
     * Out to stdout
     */
    
protected function _print( $message, $newline="n" )
    {
        print 
nl2br( preg_replace( "#n{1,}#", "n", $message ) );
    }
}

exit();                 



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