annotate Includes/Bbcodeparser.inc.php @ 0:3021ce32ee14 owls-0.5

begin of using hg for owls
author "Meillo r e t u r n s <meillo@marmaro.de>"
date Sun, 03 Dec 2006 22:32:13 +0100
parents
children ab74e95a8040
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 /**
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
4 *
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
5 * BB-Code-Parser
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 * by Meillo r e t u r n s
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
8 *
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
9 */
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
10
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
11
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
12 function parse_quote1($textinput,$level = 1) { // ohne Quelle
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
13 $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
14 $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
15 ". ($level + 1) ."
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
16 ).'[nl]</div>[nl]'";
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
17 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
18 }
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
19 function parse_quote2($textinput,$level = 1) { // mit Quelle
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
20 $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
21 $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
22 ". ($level + 1) ."
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
23 ).'[nl]</div>[nl]'";
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
24 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
25 }
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
26
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
27 function smilies($text) {
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
28 $smilieDir = 'Pics/Smilies/'; // path to smilies
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
29
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
30 $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
31 ':)' => 'Smile.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
32 ';-)' => 'Wink.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
33 ';)' => 'Wink.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
34 ':-D' => 'Biggrin.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
35 ':D' => 'Biggrin.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
36 ':-(' => 'Sad.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
37 ':(' => 'Sad.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
38 ':-P' => 'Lick.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
39 ':P' => 'Lick.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
40 ':o' => 'Talk.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
41 ':-S' => 'Dontknow.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
42 ':dontknow:' => 'Dontknow.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
43 ':-@' => 'Angry.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
44 ':cool:' => 'Cool.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
45 '(H)' => 'Cool.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
46 '%-)' => 'Crosseyed.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
47 '%-(' => 'Crosseyed.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
48 ':rolleyes:' => 'Rolleyes.gif',
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
49 ':eek:' => 'Shocked.gif');
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
50 while(list($key, $val) = each($smilies)) {
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
51 $text = str_replace($key,'[img]'.$smilieDir.$val.'[/img]',$text);
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
52 }
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
53 return $text;
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
54 }
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
55
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
56
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
57 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
58
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
59 // smilies
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
60 if ($smilies == 1) {
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
61 $text = smilies($text);
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
62 }
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
63
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
64 // new-lines
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
65 $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
66 $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
67
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
68 // bold
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
69 $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
70 // italic
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
71 $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
72 // links
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
73 $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
74 $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
75 // lists
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
76 //$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
77 //$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
78 // quotes
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
79 $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
80 $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
81 // images
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
82 if ($images == 1) {
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
83 $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
84 }
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
85
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
86 // remove backslashes
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
87 $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
88 // new-lines
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
89 $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
90
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
91 return $text;
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
3021ce32ee14 begin of using hg for owls
"Meillo r e t u r n s <meillo@marmaro.de>"
parents:
diff changeset
94 ?>