diff options
Diffstat (limited to 'includes/bbcode.php')
-rwxr-xr-x | includes/bbcode.php | 66 |
1 files changed, 38 insertions, 28 deletions
diff --git a/includes/bbcode.php b/includes/bbcode.php index af0b1a4..b116e7a 100755 --- a/includes/bbcode.php +++ b/includes/bbcode.php | |||
@@ -30,30 +30,33 @@ class BBCode | |||
30 | 30 | ||
31 | function init() | 31 | function init() |
32 | { | 32 | { |
33 | $this->bbcodes['b'] = '<B>{CONTENT}</B>'; | 33 | $this->bbcodes['b'] = '<strong>{CONTENT}</strong>'; |
34 | $this->bbcodes['i'] = '<I>{CONTENT}</I>'; | 34 | $this->bbcodes['i'] = '<em>{CONTENT}</em>'; |
35 | $this->bbcodes['u'] = '<U>{CONTENT}</U>'; | 35 | $this->bbcodes['u'] = '<u>{CONTENT}</u>'; |
36 | $this->bbcodes['url'] = '<A HREF="{CONTENT}">{CONTENT}</A>'; | 36 | $this->bbcodes['url'] = '<a href="{CONTENT}">{CONTENT}</a>'; |
37 | $this->bbcodes2['url'] = '<A HREF="{PARAM}">{CONTENT}</A>'; | 37 | $this->bbcodes2['url'] = '<a href="{PARAM}">{CONTENT}</a>'; |
38 | $this->bbcodes['img'] = '<IMG SRC="{CONTENT}" ALT="Image">'; | 38 | $this->bbcodes['img'] = '<img src="{CONTENT}" alt="Image" />'; |
39 | $this->bbcodes2['img'] = '<IMG SRC="{CONTENT}" ALT="{PARAM}" TITLE="{PARAM}">'; | 39 | $this->bbcodes2['img'] = '<img src="{CONTENT}" alt="{PARAM}" title="{PARAM}" />'; |
40 | $this->bbcodes['big'] = '<BIG>{CONTENT}</BIG>'; | 40 | $this->bbcodes['big'] = '<big>{CONTENT}</big>'; |
41 | $this->bbcodes['small'] = '<SMALL>{CONTENT}</SMALL>'; | 41 | $this->bbcodes['small'] = '<small>{CONTENT}</small>'; |
42 | $this->bbcodes['ul'] = '<UL>{CONTENT}</UL>'; | 42 | $this->bbcodes['ul'] = '<ul>{CONTENT}</ul>'; |
43 | $this->bbcodes['ol'] = '<OL>{CONTENT}</OL>'; | 43 | $this->bbcodes['ol'] = '<ol>{CONTENT}</ol>'; |
44 | $this->bbcodes['li'] = '<LI>{CONTENT}</LI>'; | 44 | $this->bbcodes['li'] = '<li>{CONTENT}</li>'; |
45 | $this->bbcodes['code'] = '<CODE>{CONTENT}</CODE>'; | 45 | $this->bbcodes['code'] = '<code>{CONTENT}</code>'; |
46 | $this->bbcodes['pre'] = '<P><DIV CLASS="autosize"><DIV CLASS="bubble"><DIV CLASS="bquote"><BLOCKQUOTE><DIV><CODE>{CONTENT}</CODE></DIV></BLOCKQUOTE></DIV></DIV></DIV><DIV CLASS="cleardiv"></DIV>'; | 46 | $this->bbcodes['pre'] = '<pre><code>{CONTENT}</code></pre>'; |
47 | $this->bbcodes2['blog'] = '<A HREF="/blog/{PARAM}/">{CONTENT}</A>'; | 47 | $this->bbcodes['pref'] = '<pre>{CONTENT}</pre>'; |
48 | $this->bbcodes2['quote'] = '<A HREF="/quotes/{PARAM}.php">{CONTENT}</A>'; | 48 | $this->bbcodes2['blog'] = '<a href="/blog/{PARAM}/">{CONTENT}</a>'; |
49 | $this->bbcodes['ins'] = '<INS>{CONTENT}</INS>'; | 49 | $this->bbcodes['quote'] = '<a href="/quotes/{CONTENT}.php">#{CONTENT}</a>'; |
50 | $this->bbcodes['del'] = '<DEL>{CONTENT}</DEL>'; | 50 | $this->bbcodes2['quote'] = '<a href="/quotes/{PARAM}.php">{CONTENT}</a>'; |
51 | $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>'; | 51 | $this->bbcodes['ins'] = '<ins>{CONTENT}</ins>'; |
52 | $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>'; | 52 | $this->bbcodes['del'] = '<del>{CONTENT}</del>'; |
53 | $this->bbcodes2['abbr'] = '<ABBR TITLE="{PARAM}">{CONTENT}</ABBR>'; | 53 | $this->bbcodes['bquote'] = '<div class="bquote module unrounded"><blockquote>{CONTENT}</blockquote></div><cite><strong>Anonymous</strong></cite><div class="cleardiv"></div>'; |
54 | $this->bbcodes['hidden'] = '<SPAN STYLE="display: none">{CONTENT}</SPAN>'; | 54 | $this->bbcodes2['bquote'] = '<div class="bquote module unrounded"><blockquote>{CONTENT}</blockquote></div><cite><strong>{PARAM}</strong></cite><div class="cleardiv"></div>'; |
55 | $this->bbcodes['thumb'] = '<A HREF="/images/{CONTENT}"><IMG SRC="http://fourisland.com/thumb.php?file=images/{CONTENT}&mode=scale&by=521&side=0" ALT="Image"></A>'; | 55 | $this->bbcodes2['abbr'] = '<abbr title="{PARAM}">{CONTENT}</abbr>'; |
56 | $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" ALT="Image"></A>'; | 56 | $this->bbcodes['hidden'] = '<span style="display: none">{CONTENT}</span>'; |
57 | $this->bbcodes['thumb'] = '<a href="/images/{CONTENT}"><img src="http://fourisland.com/thumb.php?file=images/{CONTENT}&mode=scale&by=521&side=0" alt="Image" /></a>'; | ||
58 | $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" alt="Image" /></a>'; | ||
59 | $this->bbcodes['project'] = '<a href="http://projects.fourisland.com/projects/show/{CONTENT}">{CONTENT}</a>'; | ||
57 | 60 | ||
58 | $this->init = true; | 61 | $this->init = true; |
59 | } | 62 | } |
@@ -73,8 +76,15 @@ class BBCode | |||
73 | { | 76 | { |
74 | $bbcode_uid = unique_id(); | 77 | $bbcode_uid = unique_id(); |
75 | $bbpos = strpos($to_parse, '[' . $name . ']'); | 78 | $bbpos = strpos($to_parse, '[' . $name . ']'); |
76 | $to_parse = substr_replace($to_parse, '[' . $name . ':' . $bbcode_uid . ']', $bbpos, strlen($name) + 2); | 79 | $otag = '[' . $name . ':' . $bbcode_uid . ']'; |
77 | $to_parse = substr_replace($to_parse, '[/' . $name . ':' . $bbcode_uid . ']', strpos(substr($to_parse, $bbpos), '[/' . $name . ']') + $bbpos, strlen($name) + 3); | 80 | $ctag = '[/' . $name . ':' . $bbcode_uid . ']'; |
81 | $to_parse = substr_replace($to_parse, $otag, $bbpos, strlen($name) + 2); | ||
82 | $to_parse = substr_replace($to_parse, $ctag, strpos(substr($to_parse, $bbpos), '[/' . $name . ']') + $bbpos, strlen($name) + 3); | ||
83 | |||
84 | if (strpos($this->bbcodes[$name], '<pre>') !== -1) | ||
85 | { | ||
86 | $to_parse = substr_replace($to_parse, str_replace('[br]', '', substr($to_parse, strpos($to_parse, $otag) + strlen($otag), strpos($to_parse, $ctag) - (strpos($to_parse, $otag) + strlen($otag)))), strpos($to_parse, $otag) + strlen($otag), strpos($to_parse, $ctag) - (strpos($to_parse, $otag) + strlen($otag))); | ||
87 | } | ||
78 | 88 | ||
79 | $value = str_replace('{CONTENT}', '\1', $value); | 89 | $value = str_replace('{CONTENT}', '\1', $value); |
80 | $to_parse = preg_replace('/\[' . $name . ':' . $bbcode_uid . '\](.*)\[\/' . $name . ':' . $bbcode_uid . '\]/', $value, $to_parse); | 90 | $to_parse = preg_replace('/\[' . $name . ':' . $bbcode_uid . '\](.*)\[\/' . $name . ':' . $bbcode_uid . '\]/', $value, $to_parse); |
@@ -96,13 +106,13 @@ class BBCode | |||
96 | } | 106 | } |
97 | } | 107 | } |
98 | 108 | ||
99 | return str_replace('[br]','<BR>',$to_parse); | 109 | return str_replace('[br]','<br />',$to_parse); |
100 | } | 110 | } |
101 | } | 111 | } |
102 | 112 | ||
103 | function parseBBCode($text) | 113 | function parseBBCode($text) |
104 | { | 114 | { |
105 | global $bbcode; | 115 | static $bbcode; |
106 | if (!isset($bbcode)) | 116 | if (!isset($bbcode)) |
107 | { | 117 | { |
108 | $bbcode = new BBCode(); | 118 | $bbcode = new BBCode(); |