Viewing file: inc_bbcode.php (11.76 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) | (GPLv2)
or write to the Free Software Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA02110-1301, USA.
********************************************************************************/
if (stristr(htmlentities($_SERVER['PHP_SELF']), 'inc_bbcode.php')) {
die("Error: This file cannot be opened directly! | ");
}
//BBCode - Forum - News - Articles - Guides
function bb2html($string,$smiles=1) {
if (memRunHooks('BBCode',array(&$string))) {
$patterns = array(
'`\[b\](.+?)\[/b\]`is',
'`\[i\](.+?)\[/i\]`is',
'`\[u\](.+?)\[/u\]`is',
'`\[strike\](.+?)\[/strike\]`is',
'`\[color=#([0-9a-zA-Z]{3,6})\](.+?)\[/color\]`is',
'`\[email\](.+?)\[/email\]`is',
//'`\[img\](.+?)\[/img\]`is',
'`\[url=([a-z0-9]+://)([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)\](.*?)\[/url\]`si',
'`\[url\]([a-z0-9]+?://){1}([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)\[/url\]`si',
'`\[url\]((www|ftp)\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)\[/url\]`si',
'`\[flash=([0-9]+),([0-9]+)\](.+?)\[/flash\]`is',
'`\[youtube=([0-9]+),([0-9]+)\](.+?)\[/youtube\]`is',
'`\[quote\](.+?)\[/quote\]`is',
'`\[size=([0-9]+)\](.+?)\[/size\]`is',
'`\[left\](.+?)\[/left\]`is',
'`\[center\](.+?)\[/center\]`is',
'`\[right\](.+?)\[/right\]`is',
'`\[embed=([0-9]+),([0-9]+)\](.+?)\[/embed\]`is'
);
$replaces = array(
'\\1',
'\\1',
'\\1',
'\\1',
'\2',
'\1',
//' ',
'\6',
'\1\2',
'\1',
'',
'',
'',
'\2',
'\1 ',
'\1 ',
'\1 ',
''
);
//===========================================
//IMG
//===========================================
$max_width = 400;
$max_height = 400;
preg_match_all("`\[img\](.+?)\[/img\]`is",$string,$outstr,PREG_SET_ORDER);
foreach($outstr as $image) {
$info = @getimagesize($image[1]);
if($info[0]>$max_width OR $info[1]>$max_height) {
$string = str_replace($image[0],' Image resized ( Original file: '.$info[0].'x'.$info[1].') ', $string);
} else {
$string = str_replace($image[0],' ',$string);
}
}
//===========================================
//CODE
//===========================================
//Extract [code]...[/code]
preg_match_all('`\[code\](.+?)\[/code\]`is',$string,$outstr,PREG_PATTERN_ORDER);
$numcodes = count($outstr[0]);
$string_cleaned = $string;
for ($a=0;$a<=$numcodes;$a++) {
$string_cleaned = preg_replace('`\[code\](.+?)\[/code\]`is','___CODE_'.$a.'___',$string_cleaned,1);
}
//Convert BBCode
$string_cleaned = nl2br(preg_replace($patterns,$replaces,$string_cleaned));
$string_cleaned = urlToLink($string_cleaned);
//Break long links
//$string_cleaned = preg_replace('#\(.+?)\#ise',"''.stripslashes(breakLongLinks('\$2')).''",$string_cleaned);
//Restore [code]...[/code]
$string = $string_cleaned;
for ($a=0;$a<$numcodes;$a++) {
$outstr[1][$a] = str_replace("'","'",$outstr[1][$a]);
$string = preg_replace('#(___CODE_)('.$a.')(___)#ise',"'code | 400? \'400px\': \'auto\' );\">'.highlightcode(\$outstr[1][$a]).' |
'",$string,1);
}
memRunHooks('BBCodeEnd',array(&$string));
}
return ($smiles==1) ? bb2smile($string) : $string ;
}
function minibb2html($string,$smiles=1) {
if (memRunHooks('BBCodeMini',array(&$string))) {
$patterns = array(
'`\[b\](.+?)\[/b\]`is',
'`\[i\](.+?)\[/i\]`is',
'`\[u\](.+?)\[/u\]`is',
'`\[strike\](.+?)\[/strike\]`is',
'`\[color=#([0-9a-zA-Z]{6})\](.+?)\[/color\]`is',
'`\[email\](.+?)\[/email\]`is',
'`\[url=([a-z0-9]+://)([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)\](.*?)\[/url\]`si',
'`\[url\]([a-z0-9]+?://){1}([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)\[/url\]`si',
'`\[url\]((www|ftp)\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)\[/url\]`si',
'`\[size=([0-9]+)\](.+?)\[/size\]`is'
);
$replaces = array(
'\\1',
'\\1',
'\\1',
'\\1',
'\2',
'\1',
'\6',
'\1\2',
'\1',
'\2'
);
//Convert BBCode
$string = nl2br(preg_replace($patterns,$replaces,$string));
$string = urlToLink($string);
memRunHooks('BBCodeMiniEnd',array(&$string));
}
return ($smiles==1) ? bb2smile($string) : $string ;
}
//BBSmiles - Forum
function bb2smile($string) {
global $dblink;
$result = $dblink->get_list("SELECT * FROM memht_smiles");
foreach ($result as $row) {
$title = outCode($row['title']);
$img = outCode($row['img']);
$code = outCode($row['code']);
$string = str_replace($code, " ", $string);
}
return $string;
}
function smileBox($form,$element,$columns=0,$totnum=16) {
global $dblink;
//Columns argument deprecated
$sbcontent = "";
$result = $dblink->get_list("SELECT * FROM memht_smiles LIMIT $totnum");
foreach ($result as $row) {
$sbtitle = outCode($row['title']);
$sbimg = outCode($row['img']);
$sbcode = outCode($row['code']);
$sbcontent .= "  \n";
}
$sbcontent .= " \n";
$sbcontent .= " \n";
echo $sbcontent;
}
function bbcodeToolbar($form,$element,$style="public") {
$content = "";
switch ($style) {
case "mini":
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
break;
case "public":
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
$content .= " ";
break;
}
echo $content;
}
?> |