1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
<?php
/*
444444444
4::::::::4
4:::::::::4
4::::44::::4
4::::4 4::::4 Four Island
4::::4 4::::4
4::::4 4::::4 Written and maintained by Starla Insigna
4::::444444::::444
4::::::::::::::::4 includes/bbcode.php
4444444444:::::444
4::::4 Please do not use, reproduce or steal the
4::::4 contents of this file without explicit
4::::4 permission from Hatkirby.
44::::::44
4::::::::4
4444444444
*/
if (!defined('S_INCLUDE_FILE')) {define('S_INCLUDE_FILE',1);}
require('headerproc.php');
class BBCode
{
var $init = false;
var $bbcodes;
var $bbcodes2;
function init()
{
$this->bbcodes['b'] = '<B>{CONTENT}</B>';
$this->bbcodes['i'] = '<I>{CONTENT}</I>';
$this->bbcodes['u'] = '<U>{CONTENT}</U>';
$this->bbcodes['url'] = '<A HREF="{CONTENT}">{CONTENT}</A>';
$this->bbcodes2['url'] = '<A HREF="{PARAM}">{CONTENT}</A>';
$this->bbcodes['img'] = '<IMG SRC="{CONTENT}" />';
$this->bbcodes2['img'] = '<IMG SRC="{CONTENT}" ALT="{PARAM}" TITLE="{PARAM}" ALIGN="right" />';
$this->bbcodes['big'] = '<BIG>{CONTENT}</BIG>';
$this->bbcodes['small'] = '<SMALL>{CONTENT}</SMALL>';
$this->bbcodes['ul'] = '<UL>{CONTENT}</UL>';
$this->bbcodes['ol'] = '<OL>{CONTENT}</OL>';
$this->bbcodes['li'] = '<LI>{CONTENT}</LI>';
$this->bbcodes['code'] = '<CODE>{CONTENT}</CODE>';
$this->bbcodes['pre'] = '<P><DIV CLASS="autosize"><DIV CLASS="bubble"><DIV CLASS="bquote"><BLOCKQUOTE><DIV><PRE>{CONTENT}</PRE></DIV></BLOCKQUOTE></DIV></DIV></DIV><DIV CLASS="cleardiv"></DIV>';
$this->bbcodes2['blog'] = '<A HREF="/blog/{PARAM}/">{CONTENT}</A>';
$this->bbcodes['ins'] = '<INS>{CONTENT}</INS>';
$this->bbcodes['del'] = '<DEL>{CONTENT}</DEL>';
$this->bbcodes['bquote'] = '<P><DIV CLASS="autosize"><DIV CLASS="bubble"><DIV CLASS="bquote"><BLOCKQUOTE><DIV>{CONTENT}</DIV></BLOCKQUOTE></DIV><CITE><STRONG>Anonymous</STRONG></CITE></DIV></DIV><DIV CLASS="cleardiv"></DIV>';
$this->bbcodes2['bquote'] = '<P><DIV CLASS="autosize"><DIV CLASS="bubble"><DIV CLASS="bquote"><BLOCKQUOTE><DIV>{CONTENT}</DIV></BLOCKQUOTE></DIV><CITE><STRONG>{PARAM}</STRONG></CITE></DIV></DIV><DIV CLASS="cleardiv"></DIV>';
$this->bbcodes2['abbr'] = '<ABBR TITLE="{PARAM}">{CONTENT}</ABBR>';
$this->bbcodes['hidden'] = '<SPAN STYLE="display: none">{CONTENT}</SPAN>';
$this->bbcodes['thumb'] = '<A HREF="/images/{CONTENT}"><IMG SRC="http://fourisland.com/thumb.php?file=images/{CONTENT}&mode=scale&by=521&side=0" /></A>';
$this->bbcodes['thumb2'] = '<A HREF="/images/{CONTENT}"><IMG SRC="http://fourisland.com/thumb.php?file=images/{CONTENT}&mode=scale&by=260&side=0" ALIGN="right" /></A>';
$this->init = true;
}
function parseBBCode($text)
{
if (!$this->init)
{
$this->init();
}
$to_parse = str_replace("\n",'[br]',htmlentities($text));
foreach ($this->bbcodes as $name => $value)
{
while (strpos($to_parse, '[' . $name . ']') !== FALSE)
{
$bbcode_uid = unique_id();
$bbpos = strpos($to_parse, '[' . $name . ']');
$to_parse = substr_replace($to_parse, '[' . $name . ':' . $bbcode_uid . ']', $bbpos, strlen($name) + 2);
$to_parse = substr_replace($to_parse, '[/' . $name . ':' . $bbcode_uid . ']', strpos(substr($to_parse, $bbpos), '[/' . $name . ']') + $bbpos, strlen($name) + 3);
$value = str_replace('{CONTENT}', '\1', $value);
$to_parse = preg_replace('/\[' . $name . ':' . $bbcode_uid . '\](.*)\[\/' . $name . ':' . $bbcode_uid . '\]/', $value, $to_parse);
}
}
foreach ($this->bbcodes2 as $name => $value)
{
while (strpos($to_parse, '[' . $name . '=') !== FALSE)
{
$bbcode_uid = unique_id();
$bbpos = strpos($to_parse, '[' . $name . '=');
$to_parse = substr_replace($to_parse, '[' . $name . ':' . $bbcode_uid . '=', $bbpos, strlen($name) + 2);
$to_parse = substr_replace($to_parse, '[/' . $name . ':' . $bbcode_uid . ']', strpos(substr($to_parse, $bbpos), '[/' . $name . ']') + $bbpos, strlen($name) + 3);
$value = str_replace('{PARAM}', '\1', $value);
$value = str_replace('{CONTENT}', '\2', $value);
$to_parse = preg_replace('/\[' . $name . ':' . $bbcode_uid . '=([^\]]*)\](.*)\[\/' . $name . ':' . $bbcode_uid . '\]/', $value, $to_parse);
}
}
return str_replace('[br]','<BR />',$to_parse);
}
}
function parseBBCode($text)
{
global $bbcode;
if (!isset($bbcode))
{
$bbcode = new BBCode();
}
return $bbcode->parseBBCode($text);
}
?>
|