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

/*
+---------------------------------------------------------------------------
|   IP.Board v3.4.6
|   ========================================
|   by Matthew Mecham
|   (c) 2008 Invision Power Services
|   http://www.invisionpower.com
|   ========================================
+---------------------------------------------------------------------------
|   Invision Power Board IS NOT FREE SOFTWARE!
+---------------------------------------------------------------------------
|   http://www.invisionpower.com/
|   > $Id: 10039 2011-12-20 19:49:28Z mmecham $
|   > $Revision: 10039 $
|   > $Date: 2011-12-20 14:49:28 -0500 (Tue, 20 Dec 2011) $
+---------------------------------------------------------------------------
*/
@set_time_limit3600 );

/**
* Main public executable wrapper.
*
* Set-up and load module to run
*
* @package    IP.Board
* @author   Matt Mecham
* @version    3.0
*/

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*/

$reg ipsRegistry::instance();
$reg->init();

$moo = new moo$reg );

class 
moo
{
    private 
$processed 0;
    private 
$parser;
    private 
$oldparser;
    private 
$start     0;
    private 
$end       0;
    
    const 
TOPICS_PER_GO 100;
    
    function 
__constructipsRegistry $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->memberData = array();
        
        switch( 
$this->request['do'] )
        {
            case 
'media':
                
$this->media();
            break;
            default:
                
$this->splash();
            break;
        }
    }
    
    function 
show$content$url='' )
    {
        if ( 
$url )
        {
            
$firstBit 'http://' $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'];
            
$refresh "<meta http-equiv='refresh' content='0; url={$firstBit}?{$url}'>";
        }
        
        if ( 
is_array$content ) )
        {
            
$content implode"<br />"$content );
        }
        
        
$html = <<<EOF
        <html>
            <head>
                <title>3.4.x Post Repair</title>
                
$refresh
            </head>
            <body>
                
$content
            </body>
        </html>            
EOF;

        print 
$html; exit();
    }
    
    
/**
     * SPLASH
     */
    
function splash()
    {
        
$txt '';
        
        
$html = <<<EOF
        <strong>Please select a tool</strong>
        <br />
{$txt}
        <a href="?do=media">Fix MEDIA (Youtube, etc)</a>
EOF;
    
        
$this->show$html );
    }
    
    
/**
     * Fix up media stuffs
     */
    
function media()
    {
        
$this->DB->build( array( 'select' => '*',
                                 
'from'   => 'posts',
                                 
'where'  => "post LIKE '%<object%'" ) );
                                 
        
$o $this->DB->execute();
        
        while( 
$row $this->DB->fetch$o ) )
        {
            
$original $row['post'];
            
            
preg_match_all'#<object(.+?)</object>#i'$row['post'], $matchesPREG_SET_ORDER );
            
            foreach( 
$matches as $val )
            {
                
preg_match'#http(?:s)?://(?:www.)?youtube.com/v/([dw-_]{4,})(&S+?)?#'$row['post'], $matches );
            
                if ( 
$matches[1] )
                {
                    
$row['post'] = str_replace$val[0], '[media]http://youtube.com/watch?v=' $matches[1] . '[/media]'$row['post'] );
                }
            } 
            
            if ( 
$row['post'] && $row['pid'] && ( $original != $row['post'] ) )
            {
                
$this->DB->update'posts', array( 'post' => $row['post'] ), 'pid=' intval$row['pid'] ) );
                
                
$output .= "Fixed Post Id: " $row['pid'] . '<br />';
            }
        }
        
        
$this->show"<h2>Complete</h2>" $output );
    }
}

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