owls

annotate Includes/Bbcodeparser.inc.php @ 2:ab74e95a8040

added display of broken nodes; Header and Footer in Owls.php now; added logos
author "Meillo r e t u r n s <meillo@marmaro.de>"
date Thu, 07 Dec 2006 21:04:30 +0100
parents 3021ce32ee14
children 2672cd855fa2
rev   line source
meillo@0 1 <?php
meillo@0 2
meillo@0 3 /**
meillo@0 4 *
meillo@0 5 * BB-Code-Parser
meillo@0 6 *
meillo@0 7 * by Meillo r e t u r n s
meillo@0 8 *
meillo@0 9 */
meillo@0 10
meillo@0 11
meillo@2 12 define('SMILIE_DIR', 'Smilies/'); // path to smilies
meillo@2 13
meillo@2 14
meillo@2 15
meillo@2 16
meillo@0 17 function parse_quote1($textinput,$level = 1) { // ohne Quelle
meillo@0 18 $pattern = '#\[quote\](((?R)|(.*))*)\[/quote\]#isUe';
meillo@0 19 $replacement = "'<br />[nl]<span class=\"quote0\">Zitat:</span>[nl]<div class=\"quote1\">[nl]'.parse_quote1('$1',
meillo@0 20 ". ($level + 1) ."
meillo@0 21 ).'[nl]</div>[nl]'";
meillo@0 22 return preg_replace($pattern, $replacement, $textinput);
meillo@0 23 }
meillo@0 24 function parse_quote2($textinput,$level = 1) { // mit Quelle
meillo@0 25 $pattern = '#\[quote\=(.*)\](((?R)|(.*))*)\[/quote\]#isUe';
meillo@0 26 $replacement = "'<br />[nl]<span class=\"quote0\">Zitat: ($1)</span>[nl]<div class=\"quote2\">[nl]'.parse_quote2('$2',
meillo@0 27 ". ($level + 1) ."
meillo@0 28 ).'[nl]</div>[nl]'";
meillo@0 29 return preg_replace($pattern, $replacement, $textinput);
meillo@0 30 }
meillo@0 31
meillo@0 32 function smilies($text) {
meillo@0 33 $smilies = array( ':-)' => 'Smile.gif',
meillo@0 34 ':)' => 'Smile.gif',
meillo@0 35 ';-)' => 'Wink.gif',
meillo@0 36 ';)' => 'Wink.gif',
meillo@0 37 ':-D' => 'Biggrin.gif',
meillo@0 38 ':D' => 'Biggrin.gif',
meillo@0 39 ':-(' => 'Sad.gif',
meillo@0 40 ':(' => 'Sad.gif',
meillo@0 41 ':-P' => 'Lick.gif',
meillo@0 42 ':P' => 'Lick.gif',
meillo@0 43 ':o' => 'Talk.gif',
meillo@0 44 ':-S' => 'Dontknow.gif',
meillo@0 45 ':dontknow:' => 'Dontknow.gif',
meillo@0 46 ':-@' => 'Angry.gif',
meillo@2 47 ':cool:' => 'Cool.gif',
meillo@2 48 'B-)' => 'Cool.gif',
meillo@0 49 '%-)' => 'Crosseyed.gif',
meillo@0 50 '%-(' => 'Crosseyed.gif',
meillo@0 51 ':rolleyes:' => 'Rolleyes.gif',
meillo@0 52 ':eek:' => 'Shocked.gif');
meillo@0 53 while(list($key, $val) = each($smilies)) {
meillo@2 54 $text = str_replace($key,'[img]'. SMILIE_DIR . $val .'[/img]', $text);
meillo@0 55 }
meillo@0 56 return $text;
meillo@0 57 }
meillo@0 58
meillo@0 59
meillo@0 60 function bbcode($text, $smilies = 0, $images = 0) {
meillo@0 61
meillo@0 62 // smilies
meillo@0 63 if ($smilies == 1) {
meillo@0 64 $text = smilies($text);
meillo@0 65 }
meillo@0 66
meillo@0 67 // new-lines
meillo@0 68 $text = preg_replace("#(\r\n)|(\r)#", "\n", $text);
meillo@0 69 $text = str_replace("\n", '<br />[nl]', htmlentities($text));
meillo@0 70
meillo@0 71 // bold
meillo@0 72 $text = preg_replace("#\[b\](.*?)\[/b\]#i", "<strong>$1</strong>", $text);
meillo@0 73 // italic
meillo@0 74 $text = preg_replace("#\[i\](.*?)\[/i\]#i", "<i>$1</i>", $text);
meillo@0 75 // links
meillo@0 76 $text = preg_replace("#\[url\](.*)\[/url\]#iU", "<a href=\"$1\">$1</a>", $text);
meillo@0 77 $text = preg_replace("#\[url=(.*)\](.*)\[/url\]#iU", "<a href=\"$1\">$2</a>", $text);
meillo@0 78 // lists
meillo@0 79 //$text = preg_replace("#\[list\]\<br /\>(.*)\[/list\]#iU", "<ul>$1</ul>", $text);
meillo@0 80 //$text = preg_replace("#\[\*\](.*)\<br \/\>#iU", "<li>$1</li>", $text);
meillo@0 81 // quotes
meillo@0 82 $text = parse_quote1($text);
meillo@0 83 $text = parse_quote2($text);
meillo@0 84 // images
meillo@0 85 if ($images == 1) {
meillo@0 86 $text = preg_replace("#\[img\](.*?)\[/img\]#i", "<img src=\"$1\" alt=\"&lt;[Bild]&gt;\" />", $text);
meillo@0 87 }
meillo@0 88
meillo@0 89 // remove backslashes
meillo@0 90 $text = preg_replace("#\\\#is", "", $text);
meillo@0 91 // new-lines
meillo@0 92 $text = str_replace('[nl]', "\n", $text);
meillo@0 93
meillo@0 94 return $text;
meillo@0 95 }
meillo@0 96
meillo@0 97 ?>