'', '[/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' // 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 = ' b i u s s quote cod url color
' . $font_color . '
color
' . $bg_color . '
'; if (self::$user_id) { $out .= ' sm
' . $bb_smileys . '
'; } return $out . '
'; } }