Mercurial > owls
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Includes/Bbcodeparser.inc.php Sun Dec 03 22:32:13 2006 +0100 @@ -0,0 +1,94 @@ +<?php + +/** + * + * BB-Code-Parser + * + * by Meillo r e t u r n s + * + */ + + + function parse_quote1($textinput,$level = 1) { // ohne Quelle + $pattern = '#\[quote\](((?R)|(.*))*)\[/quote\]#isUe'; + $replacement = "'<br />[nl]<span class=\"quote0\">Zitat:</span>[nl]<div class=\"quote1\">[nl]'.parse_quote1('$1', + ". ($level + 1) ." + ).'[nl]</div>[nl]'"; + return preg_replace($pattern, $replacement, $textinput); + } + function parse_quote2($textinput,$level = 1) { // mit Quelle + $pattern = '#\[quote\=(.*)\](((?R)|(.*))*)\[/quote\]#isUe'; + $replacement = "'<br />[nl]<span class=\"quote0\">Zitat: ($1)</span>[nl]<div class=\"quote2\">[nl]'.parse_quote2('$2', + ". ($level + 1) ." + ).'[nl]</div>[nl]'"; + return preg_replace($pattern, $replacement, $textinput); + } + + function smilies($text) { + $smilieDir = 'Pics/Smilies/'; // path to smilies + + $smilies = array( ':-)' => 'Smile.gif', + ':)' => 'Smile.gif', + ';-)' => 'Wink.gif', + ';)' => 'Wink.gif', + ':-D' => 'Biggrin.gif', + ':D' => 'Biggrin.gif', + ':-(' => 'Sad.gif', + ':(' => 'Sad.gif', + ':-P' => 'Lick.gif', + ':P' => 'Lick.gif', + ':o' => 'Talk.gif', + ':-S' => 'Dontknow.gif', + ':dontknow:' => 'Dontknow.gif', + ':-@' => 'Angry.gif', + ':cool:' => 'Cool.gif', + '(H)' => 'Cool.gif', + '%-)' => 'Crosseyed.gif', + '%-(' => 'Crosseyed.gif', + ':rolleyes:' => 'Rolleyes.gif', + ':eek:' => 'Shocked.gif'); + while(list($key, $val) = each($smilies)) { + $text = str_replace($key,'[img]'.$smilieDir.$val.'[/img]',$text); + } + return $text; + } + + + function bbcode($text, $smilies = 0, $images = 0) { + + // smilies + if ($smilies == 1) { + $text = smilies($text); + } + + // new-lines + $text = preg_replace("#(\r\n)|(\r)#", "\n", $text); + $text = str_replace("\n", '<br />[nl]', htmlentities($text)); + + // bold + $text = preg_replace("#\[b\](.*?)\[/b\]#i", "<strong>$1</strong>", $text); + // italic + $text = preg_replace("#\[i\](.*?)\[/i\]#i", "<i>$1</i>", $text); + // links + $text = preg_replace("#\[url\](.*)\[/url\]#iU", "<a href=\"$1\">$1</a>", $text); + $text = preg_replace("#\[url=(.*)\](.*)\[/url\]#iU", "<a href=\"$1\">$2</a>", $text); + // lists + //$text = preg_replace("#\[list\]\<br /\>(.*)\[/list\]#iU", "<ul>$1</ul>", $text); + //$text = preg_replace("#\[\*\](.*)\<br \/\>#iU", "<li>$1</li>", $text); + // quotes + $text = parse_quote1($text); + $text = parse_quote2($text); + // images + if ($images == 1) { + $text = preg_replace("#\[img\](.*?)\[/img\]#i", "<img src=\"$1\" alt=\"<[Bild]>\" />", $text); + } + + // remove backslashes + $text = preg_replace("#\\\#is", "", $text); + // new-lines + $text = str_replace('[nl]', "\n", $text); + + return $text; + } + +?> \ No newline at end of file