'',
'[/small]' => '',
'[big]' => '',
'[/big]' => '',
'[green]' => '',
'[/green]' => '',
'[red]' => '',
'[/red]' => '',
'[blue]' => '',
'[/blue]' => '',
'[b]' => '',
'[/b]' => '',
'[i]' => '',
'[/i]' => '',
'[u]' => '',
'[/u]' => '',
'[s]' => '',
'[/s]' => '',
'[quote]' => '',
'[/quote]' => '',
'[c]' => '',
'[/c]' => '',
'[*]' => '',
'[/*]' => ''
'[img]' => '',
'[/img]' => ''
);
return strtr($var, $replace);
}
/*
-----------------------------------------------------------------
Подсветка кода
-----------------------------------------------------------------
*/
private static function highlight_code($var)
{
if (!function_exists('process_code')) {
function process_code($php)
{
$php = strtr($php, array('
' => '', '\\' => 'slash_JOHNCMS'));
$php = html_entity_decode(trim($php), ENT_QUOTES, 'UTF-8');
$php = substr($php, 0, 2) != "" ? "" : $php;
$php = highlight_string(stripslashes($php), true);
$php = strtr($php, array('slash_JOHNCMS' => '\', ':' => ':', '[' => '['));
return '
' . $php . '
';
}
}
return preg_replace(array('#\[php\](.+?)\[\/php\]#se'), array("''.process_code('$1').''"), str_replace("]\n", "]", $var));
}
/*
-----------------------------------------------------------------
Обработка URL
-----------------------------------------------------------------
*/
private static function highlight_url($var)
{
if (!function_exists('process_url')) {
function process_url($url)
{
if (!isset($url[3])) {
$tmp = parse_url($url[1]);
if ('http://' . $tmp['host'] == core::$system_set['homeurl'] || isset(core::$user_set['direct_url']) && core::$user_set['direct_url']) {
return '' . $url[2] . '';
} else {
return '' . $url[2] . '';
}
} else {
$tmp = parse_url($url[3]);
$url[3] = str_replace(':', ':', $url[3]);
if ('http://' . $tmp['host'] == core::$system_set['homeurl'] || isset(core::$user_set['direct_url']) && core::$user_set['direct_url']) {
return '' . $url[3] . '';
} else {
return '' . $url[3] . '';
}
}
}
}
return preg_replace_callback('~\\[url=(https?://.+?)\\](.+?)\\[/url\\]|(https?://(www.)?[0-9a-z\.-]+\.[0-9a-z]{2,6}[0-9a-zA-Z/\?\.\~&_=/%-:#]*)~', 'process_url', $var);
}
/*
-----------------------------------------------------------------
Обработка bbCode
-----------------------------------------------------------------
*/
private static function highlight_bb($var)
{
// Список поиска
$search = array(
'#\[b](.+?)\[/b]#is', // Жирный
'#\[i](.+?)\[/i]#is', // Курсив
'#\[u](.+?)\[/u]#is', // Подчеркнутый
'#\[s](.+?)\[/s]#is', // Зачеркнутый
'#\[small](.+?)\[/small]#is', // Маленький шрифт
'#\[big](.+?)\[/big]#is', // Большой шрифт
'#\[red](.+?)\[/red]#is', // Красный
'#\[green](.+?)\[/green]#is', // Зеленый
'#\[blue](.+?)\[/blue]#is', // Синий
'!\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)](.+?)\[/color]!is', // Цвет шрифта
'!\[bg=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)](.+?)\[/bg]!is', // Цвет фона
'#\[(quote|c)](.+?)\[/(quote|c)]#is', // Цитата
'#\[\*](.+?)\[/\*]#is' // Список
'#\[img](.+?)\[/img]#is' // IMG
);
// Список замены
$replace = array(
'$1', // Жирный
'$1', // Курсив
'$1', // Подчеркнутый
'$1', // Зачеркнутый
'$1', // Маленький шрифт
'$1', // Большой шрифт
'$1', // Красный
'$1', // Зеленый
'$1', // Синий
'$2', // Цвет шрифта
'$2', // Цвет фона
'$2', // Цитата
'$1' // Список
'
' // IMG
);
return preg_replace($search, $replace, $var);
}
/*
-----------------------------------------------------------------
Панель кнопок bbCode (для компьютеров)
-----------------------------------------------------------------
*/
public static function auto_bb($form, $field)
{
if (self::$is_mobile) {
return false;
}
$colors = array(
'ffffff', 'bcbcbc', '708090', '6c6c6c', '454545',
'fcc9c9', 'fe8c8c', 'fe5e5e', 'fd5b36', 'f82e00',
'ffe1c6', 'ffc998', 'fcad66', 'ff9331', 'ff810f',
'd8ffe0', '92f9a7', '34ff5d', 'b2fb82', '89f641',
'b7e9ec', '56e5ed', '21cad3', '03939b', '039b80',
'cac8e9', '9690ea', '6a60ec', '4866e7', '173bd3',
'f3cafb', 'e287f4', 'c238dd', 'a476af', 'b53dd2'
);
$i = 1;
$font_color = '';
$bg_color = '';
foreach ($colors as $value) {
$font_color .= '';
$bg_color .= '';
if (!($i % sqrt(count($colors)))){
$font_color .= '
';
$bg_color .= '
';
}
++$i;
}
$font_color .= '
';
$bg_color .= '
';
$smileys = !empty(self::$user_data['smileys']) ? unserialize(self::$user_data['smileys']) : '';
if (!empty($smileys)) {
$res_sm = '';
$bb_smileys = '' . self::$lng['edit_list'] . '
';
foreach ($smileys as $value)
$res_sm .= ':' . $value . ': ';
$bb_smileys .= functions::smileys($res_sm, self::$user_data['rights'] >= 1 ? 1 : 0);
} else {
$bb_smileys = '' . self::$lng['add_smileys'] . '';
}
$out = '
' . $font_color . '
' . $bg_color . '
';
if (self::$user_id) {
$out .= '
' . $bb_smileys . '
';
}
return $out . '
';
}
}