<?php
///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////   MISOFT 2018 V. 1.0.0.0    ///////////////////////////////////
///////////////////////////////////  OFSITE - www.misoft.store  ///////////////////////////////////
/////////////////////////////////// MAIL - support@misoft.store ///////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////

function parce_bb_code( $text, $mode ) {
    ///define( 'ROOT', 'http://' . $_SERVER['HTTP_HOST'] );
	
	#Делаем первоначальное экранирование на наличие спец символов и вредосного кода в тексте.
	$text = strip_tags( $text );
	$text = str_replace( '"', '', $text );
    $text = str_replace( "'", '', $text );
    $text = preg_replace( "#\[(\/?)(b|i|u|s|sup|sub|p|li|ul)\s*\]#is", "<$1$2>", $text );
    $text = preg_replace( "#(\r\n|\n|\r)#is", "<br />", $text );
    $text = preg_replace( "#\[list=(1|a|I)\](.+?)\[/list\]#is", "<ol type=\"\\1\">\\2</ol>", $text );
    
	if ( preg_match( "/\<[a-z0-9A-Z]+\>\<\/[a-z0-9A-Z]+\>/", $text ) ) {
        exit();
    }
	
	#Почта (новое сообщение/ответ)
	if ( $mode == 'msg' ) {
		#Меняем бб теги видео, на ХТМЛ тег видео
		$text = preg_replace( "#\[video\](.+?)\[/video\]#is", "<div class=\"div_centralizator\"><div class=\"bbvideo\" data-url=\"\\1\" style=\"width: 430px; height: 262px; margin: 2px 0; display: inline-block; background: #000; color: #fff; overflow: hidden; vertical-align: bottom;\"><div style=\"height: 100%;\"><script>if (typeof bbmedia == \"undefined\") { bbmedia = true; var e = document.createElement(\"script\"); e.async = true; e.src = \"/theme/js/bbmedia.js\"; var s = document.getElementsByTagName(\"script\")[0]; s.parentNode.insertBefore(e, s); }</script><a style=\"color: #000; text-decoration: none;\" href=\"http://phpbbex.com/\" target=\"_blank\">phpBB</a> </div></div></div>", $text );
		
		#Меняем бб теги ссылки на ХТМЛ тег ссылки
		$text = preg_replace( "#\[a\](.+?)\[/a\]#is", "<a href=\"\\1\" target=\"_blank\" class=\"a_box\">\\1</a>", $text );
		
		#Меняем бб теги изображения на ХТМЛ тег изображения
		$text = preg_replace( "#\[images\](.+?)\[/images\]#is", "<div class=\"div_centralizator\"><img src=\"\\1\" style=\"max-width: 500px;\" /></div>", $text );
		
		$text = get_url( $text );
        if ( preg_match( "#\[\:(.+?)\:\]#is", $text, $outsmile ) ) {
            if ( !is_numeric( $outsmile[1] ) or $outsmile[1] < 1 or $outsmile[1] > 123 ) {
                $text = preg_replace( "#\[\:(.+?)\:\]#is", "", $text );
            } else {
                $text = preg_replace( "#\[\:(\d+)\:\]#is", '<img src="/theme/images/smile/$1.gif" />', $text );
            }
        }
    }
	
	#Чат (новое сообщение/ответ)
	if ( $mode == 'chat' ) {
		#Меняем бб теги видео, на ХТМЛ тег видео
		$text = preg_replace( "#\[video\](.+?)\[/video\]#is", "<div class=\"div_centralizator\"><div class=\"bbvideo\" data-url=\"\\1\" style=\"width: 430px; height: 262px; margin: 2px 0; display: inline-block; background: #000; color: #fff; overflow: hidden; vertical-align: bottom;\"><div style=\"height: 100%;\"><script>if (typeof bbmedia == \"undefined\") { bbmedia = true; var e = document.createElement(\"script\"); e.async = true; e.src = \"/theme/js/bbmedia.js\"; var s = document.getElementsByTagName(\"script\")[0]; s.parentNode.insertBefore(e, s); }</script><a style=\"color: #000; text-decoration: none;\" href=\"http://phpbbex.com/\" target=\"_blank\">phpBB</a> </div></div></div>", $text );
		
		#Меняем бб теги ссылки на ХТМЛ тег ссылки
		$text = preg_replace( "#\[a\](.+?)\[/a\]#is", "<a href=\"\\1\" target=\"_blank\" class=\"a_box\">\\1</a>", $text );
		
		#Меняем бб теги изображения на ХТМЛ тег изображения
		$text = preg_replace( "#\[images\](.+?)\[/images\]#is", "<div class=\"div_centralizator\"><img src=\"\\1\" style=\"max-width: 420px;\" /></div>", $text );
		
		$text = get_url( $text );
        if ( preg_match( "#\[\:(.+?)\:\]#is", $text, $outsmile ) ) {
            if ( !is_numeric( $outsmile[1] ) or $outsmile[1] < 1 or $outsmile[1] > 123 ) {
                $text = preg_replace( "#\[\:(.+?)\:\]#is", "", $text );
            } else {
                $text = preg_replace( "#\[\:(\d+)\:\]#is", '<img src="/theme/images/smile/$1.gif" />', $text );
            }
        }
    }
    
	#Меняем бб теги видео, на ХТМЛ тег видео
	$text = preg_replace( "#\[video\](.+?)\[/video\]#is", "<div class=\"div_centralizator\"><div class=\"bbvideo\" data-url=\"\\1\" style=\"width: 580px; height: 353px; margin: 2px 0; display: inline-block; background: #000; color: #fff; overflow: hidden; vertical-align: bottom;\"><div style=\"height: 100%;\"><script>if (typeof bbmedia == \"undefined\") { bbmedia = true; var e = document.createElement(\"script\"); e.async = true; e.src = \"/theme/js/bbmedia.js\"; var s = document.getElementsByTagName(\"script\")[0]; s.parentNode.insertBefore(e, s); }</script><a style=\"color: #000; text-decoration: none;\" href=\"http://phpbbex.com/\" target=\"_blank\">phpBB</a> </div></div></div>", $text );
    
	#Меняем бб теги ссылки на ХТМЛ тег ссылки
	$text = preg_replace( "#\[a\](.+?)\[/a\]#is", "<a href=\"\\1\" target=\"_blank\" class=\"a_box\">\\1</a>", $text );
	
	#Меняем бб теги изображения на ХТМЛ тег изображения
	$text = preg_replace( "#\[images\](.+?)\[/images\]#is", "<div class=\"div_centralizator\"><img src=\"\\1\" style=\"max-width: 636px;\" /></div>", $text );
    
    #Общий вариант (только смайлы)
	if ( $mode == 'all' ) {
		$text = get_url( $text );
        if ( preg_match( "#\[\:(.+?)\:\]#is", $text, $outsmile ) ) {
            if ( !is_numeric( $outsmile[1] ) or $outsmile[1] < 1 or $outsmile[1] > 123 ) {
                $text = preg_replace( "#\[\:(.+?)\:\]#is", "", $text );
            } else {
                $text = preg_replace( "#\[\:(\d+)\:\]#is", '<img src="/theme/images/smile/$1.gif" />', $text );
            }
        }
    }
	
	#Форумный вариант (и смайлы, и цитаты)
    if ( $mode == 'forum' ) {
        $text = preg_replace( "#\[quotet\](.+?)\[/quotet\]#is", "<div class=\"forum_quote\" style=\"margin-top: 11px;\">\\1</div>", $text );
        
        $text = get_url( $text );
        if ( preg_match( "#\[\:(.+?)\:\]#is", $text, $outsmile ) ) {
            if ( !is_numeric( $outsmile[1] ) or $outsmile[1] < 1 or $outsmile[1] > 123 ) {
                $text = preg_replace( "#\[\:(.+?)\:\]#is", "", $text );
            } else {
                $text = preg_replace( "#\[\:(\d+)\:\]#is", '<img src="/theme/images/smile/$1.gif" />', $text );
            }
        }
    }
    return trim( $text );
}

#Обратное трансформирование текста с хтмл в бб код. (нужно для отображения сохраненых форм с бб, или вывода сообщения там где нужен только текст а не хтмл, например в заголовках)
function parce_html_code( $text ) {
    $text = preg_replace( "#<(\/?)(b|i|u|s|sup|sub|p|li|ul)\s*>#is", "[$1$2]", $text );
    $text = preg_replace( "#<br \/>#is", "\n", $text );
    $text = preg_replace( "#<ol type=\"(1|a|I)\"\>(.+?)<\/ol>#is", "[list=$1]$2[/list]", $text );
    $text = preg_replace( "#<a href=\"(.+?)\" target=\"_blank\" class\=\"a_box\">(.+?)<\/a>#is", "[a]$1[/a]", $text );
    $text = preg_replace( "#<img src=\"/theme/images/smile/(.+?).gif\" \/>#is", "[:$1:] ", $text );
    $text = preg_replace( "#<div class=\"div_centralizator\"><img src=\"(.+?)\" style=\"max-width: 500px;\" \/></div>#is", "$1 ", $text );
    $text = preg_replace( "#<div class=\"div_centralizator\"><img src=\"(.+?)\" style=\"max-width: 636px;\" \/></div>#is", "$1 ", $text );
	
	
    ///$text = preg_replace( "#<div class=\"div_centralizator\"><div class=\"bbvideo\" data-url=\"(.+?)\" style=\"width: 430px; height: 262px; margin: 2px 0; display: inline-block; background: #000; color: #fff; overflow: hidden; vertical-align: bottom;\"><div style=\"height: 100%;\"><script>if (typeof bbmedia == \"undefined\") { bbmedia = true; var e = document.createElement(\"script\"); e.async = true; e.src = \"/theme/js/bbmedia.js\"; var s = document.getElementsByTagName(\"script\")[0]; s.parentNode.insertBefore(e, s); }<\/script><a style=\"color: #000; text-decoration: none;\" href=\"http://phpbbex.com\" target=\"_blank\">phpBB<\/a> <\/div><\/div><\/div>#is", "$1 ", $text );
    return $text;
}

?>