Mercurial > owls
annotate Includes/Bbcodeparser.inc.php @ 10:144bc36a6c27
moved login form from nav to top of content
added last modified date
author | meillo@marmaro.de |
---|---|
date | Sun, 27 May 2007 02:13:46 +0200 (2007-05-27) |
parents | 2672cd855fa2 |
children |
rev | line source |
---|---|
0
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
1 <?php |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
2 /** |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
3 * BB-Code-Parser |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
4 * |
8
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
5 * @author Meillo r e t u r n s <meillo@marmaro.de> |
0
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
6 */ |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
7 |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
8 |
8
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
9 /// path to smilies |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
10 define('SMILIE_DIR', 'Smilies/'); |
2
ab74e95a8040
added display of broken nodes; Header and Footer in Owls.php now; added logos
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
0
diff
changeset
|
11 |
ab74e95a8040
added display of broken nodes; Header and Footer in Owls.php now; added logos
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
0
diff
changeset
|
12 |
ab74e95a8040
added display of broken nodes; Header and Footer in Owls.php now; added logos
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
0
diff
changeset
|
13 |
8
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
14 /** |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
15 * parses recursive quotes without a source mentioned |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
16 * |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
17 * @param $textinput the bbcode-text |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
18 * @param $level number of levels to go inside |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
19 * @return HTML-text |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
20 */ |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
21 function parse_quote1($textinput,$level = 1) { |
0
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
22 $pattern = '#\[quote\](((?R)|(.*))*)\[/quote\]#isUe'; |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
23 $replacement = "'<br />[nl]<span class=\"quote0\">Zitat:</span>[nl]<div class=\"quote1\">[nl]'.parse_quote1('$1', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
24 ". ($level + 1) ." |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
25 ).'[nl]</div>[nl]'"; |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
26 return preg_replace($pattern, $replacement, $textinput); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
27 } |
8
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
28 |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
29 /** |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
30 * parses recursive quotes with a source mentioned |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
31 * |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
32 * @param $textinput the bbcode-text |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
33 * @param $level number of levels to go inside |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
34 * @return HTML-text |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
35 */ |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
36 function parse_quote2($textinput,$level = 1) { |
0
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
37 $pattern = '#\[quote\=(.*)\](((?R)|(.*))*)\[/quote\]#isUe'; |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
38 $replacement = "'<br />[nl]<span class=\"quote0\">Zitat: ($1)</span>[nl]<div class=\"quote2\">[nl]'.parse_quote2('$2', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
39 ". ($level + 1) ." |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
40 ).'[nl]</div>[nl]'"; |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
41 return preg_replace($pattern, $replacement, $textinput); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
42 } |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
43 |
8
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
44 /** |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
45 * replaces smilies |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
46 * |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
47 * @param $text text with ASCII-smilies |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
48 * @return text with [img]-smilies |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
49 */ |
0
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
50 function smilies($text) { |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
51 $smilies = array( ':-)' => 'Smile.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
52 ':)' => 'Smile.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
53 ';-)' => 'Wink.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
54 ';)' => 'Wink.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
55 ':-D' => 'Biggrin.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
56 ':D' => 'Biggrin.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
57 ':-(' => 'Sad.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
58 ':(' => 'Sad.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
59 ':-P' => 'Lick.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
60 ':P' => 'Lick.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
61 ':o' => 'Talk.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
62 ':-S' => 'Dontknow.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
63 ':dontknow:' => 'Dontknow.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
64 ':-@' => 'Angry.gif', |
2
ab74e95a8040
added display of broken nodes; Header and Footer in Owls.php now; added logos
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
0
diff
changeset
|
65 ':cool:' => 'Cool.gif', |
ab74e95a8040
added display of broken nodes; Header and Footer in Owls.php now; added logos
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
0
diff
changeset
|
66 'B-)' => 'Cool.gif', |
0
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
67 '%-)' => 'Crosseyed.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
68 '%-(' => 'Crosseyed.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
69 ':rolleyes:' => 'Rolleyes.gif', |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
70 ':eek:' => 'Shocked.gif'); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
71 while(list($key, $val) = each($smilies)) { |
2
ab74e95a8040
added display of broken nodes; Header and Footer in Owls.php now; added logos
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
0
diff
changeset
|
72 $text = str_replace($key,'[img]'. SMILIE_DIR . $val .'[/img]', $text); |
0
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
73 } |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
74 return $text; |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
75 } |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
76 |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
77 |
8
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
78 /** |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
79 * turns bbcode in HTML |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
80 * |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
81 * @param $text the text with bbcode inside |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
82 * @param $smilies set to 1 causes smilies to be replaced with pics |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
83 * @param $images set to 1 causes images to be displayed ([img]-tag) |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
84 * @return text with HTML-code |
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
85 */ |
0
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
86 function bbcode($text, $smilies = 0, $images = 0) { |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
87 |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
88 // smilies |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
89 if ($smilies == 1) { |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
90 $text = smilies($text); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
91 } |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
92 |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
93 // new-lines |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
94 $text = preg_replace("#(\r\n)|(\r)#", "\n", $text); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
95 $text = str_replace("\n", '<br />[nl]', htmlentities($text)); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
96 |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
97 // bold |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
98 $text = preg_replace("#\[b\](.*?)\[/b\]#i", "<strong>$1</strong>", $text); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
99 // italic |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
100 $text = preg_replace("#\[i\](.*?)\[/i\]#i", "<i>$1</i>", $text); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
101 // links |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
102 $text = preg_replace("#\[url\](.*)\[/url\]#iU", "<a href=\"$1\">$1</a>", $text); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
103 $text = preg_replace("#\[url=(.*)\](.*)\[/url\]#iU", "<a href=\"$1\">$2</a>", $text); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
104 // lists |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
105 //$text = preg_replace("#\[list\]\<br /\>(.*)\[/list\]#iU", "<ul>$1</ul>", $text); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
106 //$text = preg_replace("#\[\*\](.*)\<br \/\>#iU", "<li>$1</li>", $text); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
107 // quotes |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
108 $text = parse_quote1($text); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
109 $text = parse_quote2($text); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
110 // images |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
111 if ($images == 1) { |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
112 $text = preg_replace("#\[img\](.*?)\[/img\]#i", "<img src=\"$1\" alt=\"<[Bild]>\" />", $text); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
113 } |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
114 |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
115 // remove backslashes |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
116 $text = preg_replace("#\\\#is", "", $text); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
117 // new-lines |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
118 $text = str_replace('[nl]', "\n", $text); |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
119 |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
120 return $text; |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
121 } |
3021ce32ee14
begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff
changeset
|
122 |
8
2672cd855fa2
added further doxygen-comments
Meillo r e t u r n s <meillo@marmaro.de>
parents:
2
diff
changeset
|
123 ?> |