Файл: system/classes/parse.php
Строк: 96
<?php
/*
Appointment: Парсинг данных
File: parse.php
Author: likan
Engine: LIKAN
*/
class parse{
function BBparse($source, $preview = false){
global $config;
$source = preg_replace("#<iframe#i", "<iframe", $source);
$source = preg_replace("#<script#i", "<script", $source);
$source = str_ireplace("{", "{", $source);
$source = str_ireplace("`", "`", $source);
$source = str_ireplace("{theme}", "{theme}", $source);
$source = str_ireplace("[b]", "<b>", str_ireplace("[/b]", "</b>", $source));
$source = str_ireplace("[i]", "<i>", str_ireplace("[/i]", "</i>", $source));
$source = str_ireplace("[u]", "<u>", str_ireplace("[/u]", "</u>", $source));
$source = preg_replace("#[(left|right|center)](.+?)[/\1]#is", "<div align="\1">\2</div>", $source);
$source = preg_replace( "#[quote](.+?)[/quote]#is", "<blockquote>\1</blockquote>", $source );
if(stripos($source, "[video]") !== false || stripos($source, "[photo]") !== false || stripos($source, "[link]") !== false){
$source = preg_replace("#\[video\](.*?)\[/video\]#ies", "$this->BBvideo('\1', '{$preview}')", $source);
$source = preg_replace("#\[photo\](.*?)\[/photo\]#ies", "$this->BBphoto('\1', '{$preview}')", $source);
$source = preg_replace("#\[link\](.*?)\[/link\]#ies", "$this->BBlink('\1')", $source);
}
return $source;
}
function BBvideo($source, $preview = false){
global $config;
$exp = explode('|', $source);
$home_url = $config['home_url'];
if(stripos($source, "{$exp[0]}|{$exp[1]}|{$home_url}") !== false){
if($exp[3])
if($exp[3] > 175)
$width = "width='175'";
else
$width = "width='{$exp[3]}'";
if($exp[4])
if($exp[4] > 131)
$height = "height='131'";
else
$height = "height='{$exp[4]}'";
if($exp[5])
$border = 'notes_videoborder';
if($exp[6])
$blank = 'target="_blank"';
else
$blank = "onClick="videos.show({$exp[1]}, this.href, '/notes/view/{note-id}'); return false"";
if($exp[7] == 1)
$pos = "align="left"";
elseif($exp[7] == 2)
$pos = "align="right"";
else
$pos = "";
if(!$preview){
$link = "<a href="/video{$exp[0]}_{$exp[1]}_sec=notes/id={note-id}" {$blank}>";
$slink = "</a>";
}
$source = "<!--video:{$source}-->{$link}<img src="{$exp[2]}" {$width} {$height} {$pos} class="notes_videopad {$border}" />{$slink}<!--/video-->";
}
return $source;
}
function BBphoto($source, $preview = false){
global $config;
$exp = explode('|', $source);
$home_url = $config['home_url'];
if(stripos($source, "{$exp[0]}|{$exp[1]}|{$home_url}") !== false){
if($exp[3] > 160)
$exp[2] = str_replace('/c_', '/', $exp[2]);
if($exp[4] > 120)
$exp[2] = str_replace('/c_', '/', $exp[2]);
if($exp[3])
if($exp[3] > 740)
$width = "width='740'";
else
$width = "width='{$exp[3]}'";
if($exp[4])
if($exp[4] > 547)
$height = "height='547'";
else
$height = "height='{$exp[4]}'";
if($exp[5])
$border = 'notes_videoborder';
if($exp[6])
$blank = 'target="_blank"';
else
$blank = "onClick="Photo.Show(this.href); return false"";
if($exp[7] == 1)
$pos = "align="left"";
elseif($exp[7] == 2)
$pos = "align="right"";
else
$pos = "";
if($exp[8] AND !$preview AND $exp[0] AND $exp[1]){
$link = "<a href="/photo{$exp[0]}_{$exp[1]}_sec=notes/id={note-id}" {$blank}>";
$elink = "</a>";
} elseif($exp[8]) {
$link = "<a href="{$exp[2]}" target="_blank">";
$elink = "</a>";
} else {
$link = '';
$elink = '';
}
if($exp[0] AND $exp[1])
$source = "<!--photo:{$source}-->{$link}<img class="notes_videopad {$border}" src="{$exp[2]}" {$width} {$height} {$pos} />{$elink}<!--/photo-->";
else
$source = "<!--photo:{$source}-->{$link}<img class="notes_videopad {$border}" src="{$exp[2]}" {$width} {$height} {$pos} />{$elink}<!--/photo-->";
}
return $source;
}
function BBlink($source){
$exp = explode('|', $source);
if($exp[0]){
if(!$exp[1])
$exp[1] = $exp[0];
$exp[0] = str_replace(':', '', $exp[0]);
$source = "<!--link:{$source}--><a href="{$exp[0]}" target="_blank">{$exp[1]}</a><!--/link-->";
}
return $source;
}
function BBdecode($source){
$source = str_ireplace("{", "{", $source);
$source = str_ireplace("`", "`", $source);
$source = str_ireplace("{theme}", "{theme}", $source);
$source = str_ireplace("<b>", "[b]", str_ireplace("</b>", "[/b]", $source));
$source = str_ireplace("<i>", "[i]", str_ireplace("</i>", "[/i]", $source));
$source = str_ireplace("<u>", "[u]", str_ireplace("</u>", "[/u]", $source));
$source = preg_replace("#<div align="(left|right|center)">(.+?)</div>#is", "[\1]\2[/\1]", $source);
$source = preg_replace( "#[quote](.+?)[/quote]#is", "<blockquote>\1</blockquote>", $source );
$source = preg_replace( "#<blockquote>(.+?)</blockquote>#is", "[quote]\1[/quote]", $source );
if(stripos($source, "<!--photo:") !== false || stripos($source, "<!--video:") !== false || stripos($source, "<!--link:") !== false){
$source = preg_replace("#\<!--video:(.*?)\<!--/video-->#ies", "$this->BBdecodeVideo('\1')", $source);
$source = preg_replace("#\<!--photo:(.*?)\<!--/photo-->#ies", "$this->BBdecodePhoto('\1')", $source);
$source = preg_replace("#\<!--link:(.*?)\<!--/link-->#ies", "$this->BBdecodeLink('\1')", $source);
}
return $source;
}
function BBdecodePhoto($source){
$start = explode('-->', $source);
$source = "[photo]{$start[0]}[/photo]";
return $source;
}
function BBdecodeVideo($source){
$start = explode('-->', $source);
$source = "[video]{$start[0]}[/video]";
return $source;
}
function BBdecodeLink($source){
$start = explode('-->', $source);
$source = "[link]{$start[0]}[/link]";
return $source;
}
}
?>