Обучение/Помощь новичкам | не пашут бб. коды
<?php
/**
* @package JohnCMS
* @link http://johncms.com
* @copyright Copyright (C) 2008-2011 JohnCMS Community
* @license LICENSE.txt (see attached file)
* @version VERSION.txt (see attached file)
* @author http://johncms.com/about
*/
defined('_IN_JOHNCMS') or die('Restricted access');
class bbcode extends core
{
/*
-----------------------------------------------------------------
Обработка тэгов и ссылок
-----------------------------------------------------------------
*/
public static function tags($var)
{
$var = self::parse_time($var); // Обработка тэга времени
$var = self::highlight_code($var); // Подсветка кода
$var = self::highlight_url($var); // Обработка ссылок
$var = self::highlight_bb($var); // Обработка ссылок
$var = self::OLD_highlight_url($var); // Обработка ссылок в BBcode
return $var;
}
/*
-----------------------------------------------------------------
Обработка времени
-----------------------------------------------------------------
*/
private static function parse_time($var)
{
if (!function_exists('process_time')) {
function process_time($time)
{
$shift = (core::$system_set['timeshift'] + core::$user_set['timeshift']) * 3600;
if($out = strtotime($time)){
return date("d.m.Y / H:i", $out + $shift);
} else {
return false;
}
}
}
return preg_replace(array('#\[time\](.+?)\[\/time\]#se'), array("''.process_time('$1').''"), $var);
}
/*
-----------------------------------------------------------------
Парсинг ссылок
-----------------------------------------------------------------
За основу взята доработанная функция от форума phpBB 3.x.x
-----------------------------------------------------------------
*/
public static function highlight_url($text)
{
if (!function_exists('url_callback')) {
function url_callback($type, $whitespace, $url, $relative_url)
{
$orig_url = $url;
$orig_relative = $relative_url;
$url = htmlspecialchars_decode($url);
$relative_url = htmlspecialchars_decode($relative_url);
$text = '';
$chars = array('<', '>', '"');
$split = false;
foreach ($chars as $char) {
$next_split = strpos($url, $char);
if ($next_split !== false) {
$split = ($split !== false) ? min($split, $next_split) : $next_split;
}
}
if ($split !== false) {
$url = substr($url, 0, $split);
$relative_url = '';
} else if ($relative_url) {
$split = false;
foreach ($chars as $char) {
$next_split = strpos($relative_url, $char);
if ($next_split !== false) {
$split = ($split !== false) ? min($split, $next_split) : $next_split;
}
}
if ($split !== false) {
$relative_url = substr($relative_url, 0, $split);
}
}
$last_char = ($relative_url) ? $relative_url[strlen($relative_url) - 1] : $url[strlen($url) - 1];
switch ($last_char)
{
case '.':
case '?':
case '!':
case ':':
case ',':
$append = $last_char;
if ($relative_url) $relative_url = substr($relative_url, 0, -1);
else $url = substr($url, 0, -1);
break;
default:
$append = '';
break;
}
$short_url = (mb_strlen($url) > 40) ? mb_substr($url, 0, 30) . ' ... ' . mb_substr($url, -5) : $url;
switch ($type)
{
case 1:
$relative_url = preg_replace('/[&?]sid=[0-9a-f]{32}$/', '', preg_replace('/([&?])sid=[0-9a-f]{32}&/', '$1', $relative_url));
$url = $url . '/' . $relative_url;
$text = $relative_url;
if (!$relative_url) {
return $whitespace . $orig_url . '/' . $orig_relative;
}
break;
case 2:
$text = $short_url;
if (!isset(core::$user_set['direct_url']) || !core::$user_set['direct_url']) {
$url = core::$system_set['homeurl'] . '/go.php?url=' . rawurlencode($url);
}
break;
case 3:
$url = 'http://' . $url;
$text = $short_url;
if (!isset(core::$user_set['direct_url']) || !core::$user_set['direct_url']) {
$url = core::$system_set['homeurl'] . '/go.php?url=' . rawurlencode($url);
}
break;
case 4:
$text = $short_url;
$url = 'mailto:' . $url;
break;
}
$url = htmlspecialchars($url);
$text = htmlspecialchars($text);
/**
* @package JohnCMS
* @link http://johncms.com
* @copyright Copyright (C) 2008-2011 JohnCMS Community
* @license LICENSE.txt (see attached file)
* @version VERSION.txt (see attached file)
* @author http://johncms.com/about
*/
defined('_IN_JOHNCMS') or die('Restricted access');
class bbcode extends core
{
/*
-----------------------------------------------------------------
Обработка тэгов и ссылок
-----------------------------------------------------------------
*/
public static function tags($var)
{
$var = self::parse_time($var); // Обработка тэга времени
$var = self::highlight_code($var); // Подсветка кода
$var = self::highlight_url($var); // Обработка ссылок
$var = self::highlight_bb($var); // Обработка ссылок
$var = self::OLD_highlight_url($var); // Обработка ссылок в BBcode
return $var;
}
/*
-----------------------------------------------------------------
Обработка времени
-----------------------------------------------------------------
*/
private static function parse_time($var)
{
if (!function_exists('process_time')) {
function process_time($time)
{
$shift = (core::$system_set['timeshift'] + core::$user_set['timeshift']) * 3600;
if($out = strtotime($time)){
return date("d.m.Y / H:i", $out + $shift);
} else {
return false;
}
}
}
return preg_replace(array('#\[time\](.+?)\[\/time\]#se'), array("''.process_time('$1').''"), $var);
}
/*
-----------------------------------------------------------------
Парсинг ссылок
-----------------------------------------------------------------
За основу взята доработанная функция от форума phpBB 3.x.x
-----------------------------------------------------------------
*/
public static function highlight_url($text)
{
if (!function_exists('url_callback')) {
function url_callback($type, $whitespace, $url, $relative_url)
{
$orig_url = $url;
$orig_relative = $relative_url;
$url = htmlspecialchars_decode($url);
$relative_url = htmlspecialchars_decode($relative_url);
$text = '';
$chars = array('<', '>', '"');
$split = false;
foreach ($chars as $char) {
$next_split = strpos($url, $char);
if ($next_split !== false) {
$split = ($split !== false) ? min($split, $next_split) : $next_split;
}
}
if ($split !== false) {
$url = substr($url, 0, $split);
$relative_url = '';
} else if ($relative_url) {
$split = false;
foreach ($chars as $char) {
$next_split = strpos($relative_url, $char);
if ($next_split !== false) {
$split = ($split !== false) ? min($split, $next_split) : $next_split;
}
}
if ($split !== false) {
$relative_url = substr($relative_url, 0, $split);
}
}
$last_char = ($relative_url) ? $relative_url[strlen($relative_url) - 1] : $url[strlen($url) - 1];
switch ($last_char)
{
case '.':
case '?':
case '!':
case ':':
case ',':
$append = $last_char;
if ($relative_url) $relative_url = substr($relative_url, 0, -1);
else $url = substr($url, 0, -1);
break;
default:
$append = '';
break;
}
$short_url = (mb_strlen($url) > 40) ? mb_substr($url, 0, 30) . ' ... ' . mb_substr($url, -5) : $url;
switch ($type)
{
case 1:
$relative_url = preg_replace('/[&?]sid=[0-9a-f]{32}$/', '', preg_replace('/([&?])sid=[0-9a-f]{32}&/', '$1', $relative_url));
$url = $url . '/' . $relative_url;
$text = $relative_url;
if (!$relative_url) {
return $whitespace . $orig_url . '/' . $orig_relative;
}
break;
case 2:
$text = $short_url;
if (!isset(core::$user_set['direct_url']) || !core::$user_set['direct_url']) {
$url = core::$system_set['homeurl'] . '/go.php?url=' . rawurlencode($url);
}
break;
case 3:
$url = 'http://' . $url;
$text = $short_url;
if (!isset(core::$user_set['direct_url']) || !core::$user_set['direct_url']) {
$url = core::$system_set['homeurl'] . '/go.php?url=' . rawurlencode($url);
}
break;
case 4:
$text = $short_url;
$url = 'mailto:' . $url;
break;
}
$url = htmlspecialchars($url);
$text = htmlspecialchars($text);
прошли вы на мат вопрос решен
272139546 (28.03.2015 в 19:48)
Litput (28.03.2015 в 19:46)
272139546 (28.03.2015 в 19:44)
ты тупой или лыжи не едут
пиши понятливей
уходи с вапа и не возвращайся. мой тебе совет.
ты чё дурак это же золотая середина
Litput (28.03.2015 в 19:46)
272139546 (28.03.2015 в 19:44)
ты тупой или лыжи не едут
пиши понятливей
уходи с вапа и не возвращайся. мой тебе совет.
ты чё дурак это же золотая середина
с такими знаниями ты без школьних обедов останешься, тк дохода не будет
DELETED
28 марта 2015, в 19:59
Delete
Роджер (28.03.2015 в 19:26)
272139546 (28.03.2015 в 19:25)
какой код
убил :D
272139546 (28.03.2015 в 19:25)
какой код
убил :D
офф
Роджер (28.03.2015 в 19:59)
Litput , - автору в анкету
Litput , - автору в анкету
офф