Вход Регистрация
Файл: IPBMafia.ru_IPB_3.4.6_Final_Rus _Nulled/board/upload/admin/sources/classes/text/parser/legacy.php
Строк: 160
<?php

/**
 * <pre>
 * Invision Power Services
 * IP.Board v3.4.6
 * Text Parsing: LEGACY CR..STUFF
 * Last Updated: $Date: 2012-06-08 09:28:02 +0100 (Fri, 08 Jun 2012) $
 * </pre>
 *
 * @author         $Author: mmecham $
 * @copyright    (c) 2001 - 2012 Invision Power Services, Inc.
 * @license        http://www.invisionpower.com/company/standards.php#license
 * @package        IP.Board
 * @link        http://www.invisionpower.com
 * @since        9th March 2005 11:03
 * @version        $Revision: 10894 $
 *
 * Revised in 3.4 by Matt Mecham
 * Refactored into a text parsing module
 *
 */

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();
}

class 
class_text_parser_legacy extends classes_text_parser
{
    
    
/**
     * Constructor
     *
     * @access    public
     * @param    object        Registry object
     * @return    @e void
     */
    
public function __construct()
    {
        return 
parent::__construct();
    }
    
    
/**
     * Takes data from the editor (HTML) and makes it BBCode
     * @param string $content
     */
    
public function postEditor( $content )
    { 
        
$content = $this->_postPurifyCodeBoxes( $content );
        
        
/* Restore preserved newlines */
        
$content = str_replace( "<!-preserve.newline-->", "n", $content );
        
        if ( 
self::$Perms['parseHtml'] !== true )
        {
            
$content = $this->HtmlToBBCode( $content );
        }
    
        return 
$content;
    }
    
    
/**
     * Takes stuff given and makes it all lovely for the editor
     * @param string $content
     */
    
public function preEditor( $content )
    {
        
$content = $this->_postPurifyCodeBoxes( $content );
        
        
/* Restore preserved newlines */
        
$content = str_replace( "<!-preserve.newline-->", "n", $content );
        
        
$content = $this->BBCodeToHtml( $content );
        
        
/* Fix up old PRE tags */
        
$content = preg_replace( '#<pre class=(["'])prettyprint#', '<pre class=1_prettyXprint', $content );
        
        
return $content;
    }
    
    
/**
     * Additional methods for preDbParse
     */
    
public function preDbParse( $content )
    {
        
$content = $this->_postPurifyCodeBoxes( $content );
        
        return 
$content;
    }

    
/**
     * Check and make safe embedded codes (removes mark-up HTML purify might have added)
     * @param array $matches
     */
    
protected function _postPurifyCodeBoxes( $content )
    {
        
/* Fetch paired opening and closing tags */
        
$data = $this->getTagPositions( $content, 'CODE', array( '[', ']') );

        if ( 
is_array( $data ) && count( $data ) )
        {
            foreach( 
$data['open'] as $id => $val )
            {
                
$o = $data['open'][ $id ];
                
$c = $data['close'][ $id ] - $o;
    
                
$slice = substr( $content, $o, $c );
                    
                
$_origLen = strlen( $slice );
                
                
$slice = IPSText::stripTags( $slice, '<pre>,<br>' );
                
$slice = str_replace( "<br />" , "n", $slice );
                
$slice = str_replace( "n"     , "<!-preserve.newline-->", $slice );
                
                
$slice = preg_replace( '#(https|http|ftp)://#' , '1&#58;//', $slice );
                
                
$content = substr_replace( $content, $slice, $o, $c );
                
                
$_newLen  = strlen( $slice );
    
                if ( 
$_newLen != $_origLen )
                {
                    
/* Bump up next */
                    
foreach( $data['open'] as $_id => $_val )
                    {
                        
$_o = $data['open'][ $_id ];
    
                        
/* Ascii face alert */
                        
if ( $_o > $o )
                        {
                            
$data['open'][ $_id ]  += ( $_newLen - $_origLen );
                            
$data['close'][ $_id ] += ( $_newLen - $_origLen );
                        }
                    }
                }
            }
        }
        
        
        return 
$content;
    }
    
}
Онлайн: 1
Реклама