diff options
Diffstat (limited to 'includes')
-rwxr-xr-x | includes/bbcode.php | 10 | ||||
-rwxr-xr-x | includes/parsers.php | 3 | ||||
-rwxr-xr-x | includes/smilies.php | 35 |
3 files changed, 41 insertions, 7 deletions
diff --git a/includes/bbcode.php b/includes/bbcode.php index a7bb247..b83e403 100755 --- a/includes/bbcode.php +++ b/includes/bbcode.php | |||
@@ -58,9 +58,10 @@ class BBCode | |||
58 | $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['thumb'] = '<a href="/images/{CONTENT}"><img src="http://fourisland.com/thumb.php?file=images/{CONTENT}&mode=scale&by=521&side=0" alt="Image" /></a>'; |
59 | $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['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>'; |
60 | $this->bbcodes['thumb3'] = '<a href="/images/{CONTENT}"><img src="http://fourisland.com/thumb.php?file=images/{CONTENT}&mode=scale&by=260&side=0" align="left" style="margin-right: 2em" alt="Image" /></a>'; | 60 | $this->bbcodes['thumb3'] = '<a href="/images/{CONTENT}"><img src="http://fourisland.com/thumb.php?file=images/{CONTENT}&mode=scale&by=260&side=0" align="left" style="margin-right: 2em" alt="Image" /></a>'; |
61 | $this->bbcodes['project'] = '<a href="http://projects.fourisland.com/projects/show/{CONTENT}">{CONTENT}</a>'; | 61 | $this->bbcodes['project'] = '<a href="http://projects.fourisland.com/projects/show/{CONTENT}">{CONTENT}</a>'; |
62 | $this->bbcodes['hr'] = '<hr size="2" color="black" />'; | 62 | $this->bbcodes['hr'] = '<hr size="2" color="black" />'; |
63 | $this->bbcodes2['audio'] = '<p id="audioplayer_{CONTENT}">Click to download: <a href="{PARAM}">{CONTENT}</a></p><script>AudioPlayer.embed("audioplayer_{CONTENT}", {soundFile: "{PARAM}", titles: "{CONTENT}"});</script>'; | 63 | $this->bbcodes2['audio'] = '<p id="audioplayer_{CONTENT}">Click to download: <a href="{PARAM}">{CONTENT}</a></p><script>AudioPlayer.embed("audioplayer_{CONTENT}", {soundFile: "{PARAM}", titles: "{CONTENT}"});</script>'; |
64 | $this->bbcodes['nosmilies'] = '{CONTENT}'; | ||
64 | 65 | ||
65 | $this->init = true; | 66 | $this->init = true; |
66 | } | 67 | } |
@@ -85,11 +86,16 @@ class BBCode | |||
85 | $to_parse = substr_replace($to_parse, $otag, $bbpos, strlen($name) + 2); | 86 | $to_parse = substr_replace($to_parse, $otag, $bbpos, strlen($name) + 2); |
86 | $to_parse = substr_replace($to_parse, $ctag, strpos(substr($to_parse, $bbpos), '[/' . $name . ']') + $bbpos, strlen($name) + 3); | 87 | $to_parse = substr_replace($to_parse, $ctag, strpos(substr($to_parse, $bbpos), '[/' . $name . ']') + $bbpos, strlen($name) + 3); |
87 | 88 | ||
88 | if (strpos($this->bbcodes[$name], '<pre>') !== -1) | 89 | if (strpos($this->bbcodes[$name], '<pre>') !== FALSE) |
89 | { | 90 | { |
90 | $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))); | 91 | $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))); |
91 | } | 92 | } |
92 | 93 | ||
94 | if ($name == 'nosmilies') | ||
95 | { | ||
96 | $to_parse = preg_replace('/\[emoticon\](..)\[\/emoticon\]/', '\1', $to_parse); | ||
97 | } | ||
98 | |||
93 | $value = str_replace('{CONTENT}', '\1', $value); | 99 | $value = str_replace('{CONTENT}', '\1', $value); |
94 | $to_parse = preg_replace('/\[' . $name . ':' . $bbcode_uid . '\](.*)\[\/' . $name . ':' . $bbcode_uid . '\]/', $value, $to_parse); | 100 | $to_parse = preg_replace('/\[' . $name . ':' . $bbcode_uid . '\](.*)\[\/' . $name . ':' . $bbcode_uid . '\]/', $value, $to_parse); |
95 | } | 101 | } |
diff --git a/includes/parsers.php b/includes/parsers.php index 86284af..a57561d 100755 --- a/includes/parsers.php +++ b/includes/parsers.php | |||
@@ -28,8 +28,9 @@ include('includes/smilies.php'); | |||
28 | function parseText($text) | 28 | function parseText($text) |
29 | { | 29 | { |
30 | $text = htmlspecialchars($text); | 30 | $text = htmlspecialchars($text); |
31 | $text = parseSmiliesFirstPass($text); | ||
31 | $text = parseBBCode($text); | 32 | $text = parseBBCode($text); |
32 | $text = parseSmilies($text); | 33 | $text = parseSmiliesSecondPass($text); |
33 | $text = doAprilFoolsDay($text); | 34 | $text = doAprilFoolsDay($text); |
34 | 35 | ||
35 | return $text; | 36 | return $text; |
diff --git a/includes/smilies.php b/includes/smilies.php index f9ffde8..e189ad6 100755 --- a/includes/smilies.php +++ b/includes/smilies.php | |||
@@ -37,7 +37,7 @@ class Smilies | |||
37 | $this->init = true; | 37 | $this->init = true; |
38 | } | 38 | } |
39 | 39 | ||
40 | function parseSmilies($text) | 40 | function parseSmiliesFirstPass($text) |
41 | { | 41 | { |
42 | if (!$this->init) | 42 | if (!$this->init) |
43 | { | 43 | { |
@@ -46,14 +46,29 @@ class Smilies | |||
46 | 46 | ||
47 | foreach ($this->smilies as $name => $value) | 47 | foreach ($this->smilies as $name => $value) |
48 | { | 48 | { |
49 | $text = str_replace($name, '<img src="http://fourisland.com/theme/images/smilies/' . $value . '" alt="' . $name . '" />', $text); | 49 | $text = str_replace($name, '[emoticon]' . $name . '[/emoticon]', $text); |
50 | } | ||
51 | |||
52 | return $text; | ||
53 | } | ||
54 | |||
55 | function parseSmiliesSecondPass($text) | ||
56 | { | ||
57 | if (!$this->init) | ||
58 | { | ||
59 | $this->init(); | ||
60 | } | ||
61 | |||
62 | foreach ($this->smilies as $name => $value) | ||
63 | { | ||
64 | $text = str_replace('[emoticon]' . $name . '[/emoticon]', '<img src="/theme/images/smilies/' . $value . '" alt="' . $name . '" />', $text); | ||
50 | } | 65 | } |
51 | 66 | ||
52 | return $text; | 67 | return $text; |
53 | } | 68 | } |
54 | } | 69 | } |
55 | 70 | ||
56 | function parseSmilies($text) | 71 | function parseSmiliesFirstPass($text) |
57 | { | 72 | { |
58 | global $smilies; | 73 | global $smilies; |
59 | if (!isset($smilies)) | 74 | if (!isset($smilies)) |
@@ -61,7 +76,19 @@ function parseSmilies($text) | |||
61 | $smilies = new Smilies(); | 76 | $smilies = new Smilies(); |
62 | } | 77 | } |
63 | 78 | ||
64 | return $smilies->parseSmilies($text); | 79 | return $smilies->parseSmiliesFirstPass($text); |
65 | } | 80 | } |
66 | 81 | ||
82 | function parseSmiliesSecondPass($text) | ||
83 | { | ||
84 | global $smilies; | ||
85 | if (!isset($smilies)) | ||
86 | { | ||
87 | $smilies = new Smilies(); | ||
88 | } | ||
89 | |||
90 | return $smilies->parseSmiliesSecondPass($text); | ||
91 | } | ||
92 | |||
93 | |||
67 | ?> | 94 | ?> |