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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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=\"&lt;[Bild]&gt;\" />", $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 ?>