Вход Регистрация
Файл: protected/extensions/bbCode.php
Строк: 22
<?php
/*
 * BB-коды
 */

class bbCode
{
    
/*
     * Массив с кодами
     */
    
protected static function getPatterns ()
    {
        return array(
            
'#[b](.+)[/b]#uisU',
            
'#[i](.+)[/i]#uisU',
            
'#[u](.+)[/u]#uisU',
            
'#[s](.+)[/s]#uisU',
            
'#[url=(http://|https://|ftp://)(S+)](.+)[/url]#uisU',
            
'#[color=([a-z0-9#]+)](.+)[/color]#uisU',
            
//'#[quote=(.+)](.+)[/quote]#uis',
            //'#[code=([a-z]+)](.+)[/code]#uisU',
            //'',
            //'',
            //'',
    
);
    }

    
/*
     * Массив с html
     */
    
protected static function getHtml ()
    {
        return array(
            
'<b>\1</b>',
            
'<i>\1</i>',
            
'<u>\1</u>',
            
'<s>\1</s>',
            
'<a href="\1\2">\3</a>',
            
'<span style="color: \1;">\2</span>',
            
//'<div class="quote_login">\1 пишет:</div><div class="quote_content">\2</div>',
            //'',
            //'',
            //'',
        
);
    }

    
/*
     * Описания
     */
    
public static $about = array (
        
'[b]жирный текст[/b]',
        
'[i]курсив[/i]',
        
'[u]подчеркнутый текст[/u]',
        
'[s]зачеркнутый текст[/s]',
        
'[url=http://ссылка]Название ссылки[/url]',
        
'[color=red]Цветной текст[/color]',
        
//'[quote=Логин]Текст[/quote]',
        //'',
        //'',
        //'',
        //'',
    
);

    
/*
     * Подсветка кода.
     */
    
protected static function _highlighte ($matches)
    {
        
$highlighter = new CTextHighlighter ();
        
$highlighter->language $matches[1];
        return 
$highlighter->highlight ($matches[2]);
    }



    
/*
     * Форматирование исходного текста и замена кодов html
     */
    
public static function Format ($str)
    {
        
/*
        // Подсветка синтаксиса
        if (!Yii::app ()->user->isGuest) $str = preg_replace_callback ('#[code=([a-z]+)](.+)[/code]#uisU', "self::_highlighte", htmlspecialchars_decode ($str));
         */
        // bb Коды
        
$str preg_replace (self::getPatterns (), self::getHtml (), $str);

        return 
$str;
        
    }
}
Онлайн: 0
Реклама