ok, super danke #Mairu werde ich gleich ändern
Hier der fertige Code falls ihn noch jemand braucht :
<?php
# Copyright by Thomas Bowe [Funjoy]
# Support bbcode@phpline.de
# link www.phpline.de
/* Module - Information
* -------------------------------------------------------
* Hier könnt ihr eure Module includieren lassen.
* Wenn Ihr selber Module zum Highlight programmiert
* denkt daran das ihr auch noch das Parsen hier definieren müsst.
* und in der bbcode_config.php Datei müsstet ihr die Option auch noch einstellen.
* um ein Beispiel zu haben schaut euch die Funktion _htmlblock() am besten mal an.
* und in Zeile 308 und Zeile 490 habt ihr ein Beispiel wie ihr die Parsebefehle schreiben könnt.
*/
//> Bitte denkt daran das, dass Modul html.php immer unter dem Modul css.php sein muss.
//> Modul [css.php]
if(file_exists("include/includes/class/highlight/css.php")) {
require_once("include/includes/class/highlight/css.php");
}
//> Modul [html.php]
if(file_exists("include/includes/class/highlight/html.php")) {
require_once("include/includes/class/highlight/html.php");
}
class bbcode {
//> Tags die geparsed werden dürfen.
var $permitted = array();
//> Verschlüsselte codeblocks.
var $codecblocks = array();
//> Badwords!
var $badwords = array();
//> Informationen für die Klasse!
var $info = array();
//> Patter befehle!
var $pattern = array();
//> Replace strings!
var $replace = array();
//> Smilies die in Grafik umgewandelt werden sollen.
var $smileys = array();
//> Cache für Quotes Header!
var $ayCacheQuoteOpen = array();
//> Cache fürQuotes Footer!
var $ayCacheQuoteClose = array();
//> Cache für Quotes Header!
var $ayCacheKtextOpen = array();
//> Cache fürQuotes Footer!
var $ayCacheKtextClose = array();
//> Codeblock verschlüsseln und wieder ausgeben.
function encode_codec($string,$tag,$file=NULL) {
$string = str_replace('\"', '"', $string);
$file = ($file == NULL) ? "":"=".$file;
$crypt = md5(count($this->codecblocks));
$this->codecblocks[$crypt.":".$tag] = $string;
return "[".$tag.$file."]".$crypt."[/".$tag."]";
}
//> Codeblock entschlüsseln und parsen!
function _codeblock($codecid,$file=NULL,$firstline=1) {
$string = $this->codecblocks[$codecid.':code'];
$string = htmlentities($string, ENT_COMPAT, 'ISO-8859-1');
$string = str_replace("\t", ' ', $string);
$string = str_replace(' ', ' ', $string);
$string = str_replace(' ', ' ', $string);
$string = nl2br($string);
return $this->_addcodecontainer($string, 'Code', $file, $firstline);
}
//> htmlblock entschlüsseln und parsen!
function _htmlblock($codecid,$file=NULL,$firstline=1) {
$string = $this->codecblocks[$codecid.':html'];
$string = htmlentities($string, ENT_COMPAT, 'ISO-8859-1');
//> Highlight Modul Funktion checken ob sie existerit.
if(function_exists("highlight_html")) {
$string = highlight_html($string,$this->info['BlockCodeFarbe']);
}
$string = str_replace("\t", ' ', $string);
$string = str_replace(' ', ' ', $string);
$string = str_replace(' ', ' ', $string);
$string = nl2br($string);
return $this->_addcodecontainer($string, 'HTML', $file, $firstline);
}
//> cssblock entschlüsseln und parsen!
function _cssblock($codecid,$file=NULL,$firstline=1) {
$string = $this->codecblocks[$codecid.':css'];
$string = htmlentities($string, ENT_COMPAT, 'ISO-8859-1');
//> Highlight Modul Funktion checken ob sie existerit.
if(function_exists("highlight_css")) {
$string = highlight_css($string);
}
$string = str_replace("\t", ' ', $string);
$string = str_replace(' ', ' ', $string);
$string = str_replace(' ', ' ', $string);
$string = nl2br($string);
return $this->_addcodecontainer($string, 'CSS', $file, $firstline);
}
//> phpblock entschlüsseln und parsen!
function _phpblock($codecid, $file = null, $firstline = 1) {
$string = $this->codecblocks[$codecid . ':php'];
if (strpos($string, '<?php') === false) {
$string = "<?php\n{$string}\n?>";
$remove = true;
} else {
$remove = false;
}
ob_start();
highlight_string($string);
$php = ob_get_contents();
ob_end_clean();
if ($remove) {
$php = str_replace(array('<?php<br />', '<br /></span><span style="color: #0000BB">?></span>'), '', $php);
}
return $this->_addcodecontainer($php, 'Php', $file, $firstline);
}
function _addcodecontainer($code, $type, $file=null, $firstline=1) {
//> Datei pfad mit angegeben?
$file = ($file == NULL) ? "":" von Datei <em>".$this->_shortwords($file)."</em>";
//> Zeilen zählen.
$linescount = substr_count($code, "\n") + $firstline + 1;
if ($type == 'Php') {
$linescount = substr_count($code, "\r") + $firstline + 1;
}
$line = '';
for($no=$firstline;$no < $linescount;$no++) {
$line .= $no.":<br />";
}
//> Hier könnt ihr den Header und Footer für HTML editieren.
$breite = trim($this->info['BlockTabelleBreite']);
$breite = (strpos($breite, '%') !== false) ? '450px' : $breite.'px';
$header = <<<CODEHEAD
<div style="overflow: auto; width: {$breite};">
<table cellspacing="0" cellpadding="0" border="0" style="border: 1px solid {$this->info['BlockRandFarbe']}";" width="100%">
<tr>
<td colspan="2" style="font-size:12px; font-weight:bold; color: {$this->info['BlockSchriftfarbe']};background-color:{$this->info['BlockHintergrundfarbe']};">
{$type}{$file}
</td>
</tr>
<tr style="background-color:{$this->info['BlockHintergrundfarbeIT']}; color:{$this->info['BlockCodeFarbe']};">
<td style="width:20px; padding:0 2px;
border-right:1px solid {$this->info['BlockHintergrundfarbe']}; text-align:right; vertical-align:top;">
<code style="width:20px;">{$line}</code>
</td>
<td style="width:95%; vertical-align:top; padding-left: 5px">
<code>
CODEHEAD;
$footer = '</code></td></tr></table></div>';
return $header . $code . $footer;
}
//> Smilies aus dem Array auslesen.
function _smileys($string) {
if(!is_null($this->smileys) && is_array($this->smileys)) {
if($this->permitted['smileys'] == true) {
$smileystart = '#@'.uniqid('').'@#';
$smileymid = '|#@|'.uniqid('').'|@#|';
$smileyend = '#@'.uniqid('').'@#';
foreach ($this->smileys as $icon => $info) {
list($emo, $url) = explode('#@#-_-_-#@#', $info);
$string = str_replace($icon, $smileystart.$icon.$smileyend, $string);
}
$string = str_replace($smileyend.$smileystart, $smileymid, $string);
$string = preg_replace('%(\S)' . $smileystart . '(.*)' . $smileyend . '%iU', '$1$2', $string);
$string = preg_replace('%(^|\s)(' . $smileystart . ')(.*)(' . $smileyend . ')%iUe', '\'$1\'.\'$2\'.str_replace(\''.$smileymid.'\',\''.$smileyend.$smileystart.'\',\'$3\').\'$4\'', $string);
$string = str_replace($smileymid, '', $string);
foreach ($this->smileys as $icon => $info) {
list($emo, $url) = explode('#@#-_-_-#@#', $info);
$string = str_replace($smileystart.$icon.$smileyend, '<img src="include/images/smiles/'.$url.'" border="0" alt="'.$icon.'" title="'.$emo.'" />', $string);
}
$string = str_replace(array($smileyend, $smileystart), '', $string);
}
return $string;
} else {
return $string;
}
}
// //> Smilies aus dem Array auslesen.
// function _smileys($string) {
// if(!is_null($this->smileys) && is_array($this->smileys)) {
// if($this->permitted['smileys'] == true) {
// foreach ($this->smileys as $icon => $info) {
// list($emo, $url) = explode('#@#-_-_-#@#', $info);
// $string = str_replace($icon,'<img src="include/images/smiles/'.$url.'" border="0" alt="'.$emo.'" title="'.$emo.'" />',$string);
// }
// }
// return $string;
// } else {
// return $string;
// }
// }
//> Badwords Filtern.
function _badwords($string) {
//> Badwords aus der Datenbank laden!
$cfgBBCodeSql = db_query("SELECT fcBadPatter, fcBadReplace FROM prefix_bbcode_badword");
while ($row = db_fetch_object($cfgBBCodeSql) ) {
$pattern[] = '%' . preg_quote($row->fcBadPatter,'%') . '%iU';
$replace[] = $row->fcBadReplace;
}
if(isset($pattern)) {
$string = preg_replace($pattern,$replace,$string);
}
return $string;
}
//> Liste formatieren.
function _list($codecid) {
$string = $this->codecblocks[$codecid.':list'];
$array = explode("[*]",$string);
for($no=1;$no<=(count($array)-1);$no++) {
$li .= "<li>".$this->parse($array[$no])."</li>";
}
return "<ul>".$li."</ul>";
}
//> Auf Maximale Schriftgröße überprüfen.
function _size($size, $string) {
$max = $this->info['SizeMax'];
return '<span style="font-size:' . ($size > $max ? $max : $size) . 'px">' . stripcslashes($string) . '</span>';
}
//> Bilder auf Verkleinern via Javascript überprüfen.
function _img($string, $float='') {
if ($float == 'none' OR $float == 'left' OR $float == 'right') {
$float = 'style="float:'.$float.'; margin: 5px;" ';
} else {
$float = '';
}
$image = '<img src="'.$string.'" alt="" title="" border="0" class="bbcode_image" '.$float.'/>';
return $image;
}
//> Screenshots darstellen.
function _screenshot($string,$float='none') {
if ($float == 'none' OR $float == 'left' OR $float == 'right') {
$float = 'style="float:'.$float.'; margin: 5px;" ';
} else {
$float = '';
}
$image = '<a href="'.$string.'" target="_blank"><img src="'.$string.'" alt="" title="" border="0" width="'.$this->info['ScreenMaxBreite'].'" height="'.$this->info['ScreenMaxHoehe'].'" '.$float.'/></a>';
return $image;
}
//> Urls Filtern um XSS vorzubeugen
function _filterurl($url) {
return str_replace(
array('<','>','(',')','#'),
array('<','>','(',')','#'),
$url
);
}
//> Links darstellen und ggf. kürzen
function _shorturl($string,$caption=null) {
if ($caption == null) { $caption = $string; }
$string = trim($string);
$caption = trim($this->_smileys($caption));
$server = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
if (preg_match('%^((http|ftp|https)://)|^/%i',$string) == 0) { $string = 'http://'.$string; }
if (substr($string,0,1) == '/' OR strpos($string,$server) !== false) {
$target = '_self';
} else {
$target = '_blank';
}
$count = strlen($caption);
if($count >= $this->info['UrlMaxLaenge']) {
$string = "<a href=\"".$string."\" target=\"".$target."\">".$this->_shortcaptions($caption)."</a>";
} else {
$string = "<a href=\"".$string."\" target=\"".$target."\">".$caption."</a>";
}
return $string;
}
//> Linkbeschreibung kürzen
function _shortcaptions($string) {
$words = explode(" ",$string);
foreach($words as $word)
if(strlen($word) > $this->info['WortMaxLaenge'] && !preg_match('%(\[(img|shot)\](.*)\[/(img|shot)\])%i',$word)) {
$maxd2 = sprintf("%00d",($this->info['WortMaxLaenge']/2));
$string = str_replace($word,substr($word,0,$maxd2)."...".substr($word,-$maxd2),$string);
}
return $string;
}
//> Hilfsfunktion für _shortwords
function _checkpatterns($patterns, $word) {
if (!is_array($patterns)) {
return true;
}
foreach ($patterns as $p) {
if (preg_match($p, $word) == 1) {
return false;
}
}
return true;
}
//> Zu lange Wörter kürzen.
function _shortwords($string) {
//> Zeichenkette in einzelne Array elemente zerlegen.
$lines = explode("\n",$string);
//> Patter Befehle die nicht gekürzt werden dürfen !!!
$pattern = array("%^(www)(.[-a-zA-Z0-9@:;\%_\+.~#?&//=]+?)%i",
"%^(http|https|ftp)://{1}[-a-zA-Z0-9@:;\%_\+.~#?&//=]+?%i",
"%(\[(url|img(=(left|right))?|shot(=(left|right))?)\](.*)\[/(url|img|shot)\])|(\[url=(.*)\])%i",
"%\[(code|html|css|php|countdown)(=[^]]+)].*\[/(code|html|css|php|countdown)]%i",
"%(\[flash)?]((http|https|ftp)://[a-z-0-9@:\%_\+.~#\?&/=,;]+)\[/flash]%i",
"%\[list].*\[/list]%");
foreach($lines as $line) {
$words = explode(" ",$line);
foreach($words as $word)
if(strlen($word) > $this->info['WortMaxLaenge'] && $this->_checkpatterns($pattern, $word)) {
//Auskommentiert also Variante mit 'zulanges...Wort' zu gunsten von 'zulanges allesdazwischen Wort' (ohne ...)
//$maxd2 = sprintf("%00d",($this->info['WortMaxLaenge']/2));
$string = wordwrap($string, $this->info['WortMaxLaenge']);
}
}
return $string;
}
//> Geöffnete Ktext- Tags Nummerieren.
function _addKtextOpen($Titel=Null) {
$this->ayCacheKtextOpen[count($this->ayCacheKtextOpen)+1] = true;
$intCountKtext = count($this->ayCacheKtextOpen);
$string = "[ktext:".$intCountKtext."=".$Titel."]";
return $string;
}
//> Geschlossene Ktext- Tags Nummerieren.
function _addKtextClose() {
$this->ayCacheKtextClose[count($this->ayCacheKtextClose)+1] = true;
$intCountKtext = count($this->ayCacheKtextClose);
return "[/ktext:".$intCountKtext."]";
}
//> Ktext- Tags umwandeln..
function _ktext($string) {
$Random = rand(1,10000000);
//> Html- Muster für geöffnete Tags mit Titel.
$HeaderTitel = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"".$this->info['KtextTabelleBreite']."\" align=\"center\">"
."<tr><td><a href=\"javascript:Klapptext('__ID__')\">"
."<img src=\"include/images/icons/plus.gif\" id=\"image___ID__\" border=0 alt=\"Aus/Ein-klappen\" title=\"Aus/Ein-klappen\"> ";
$FooterTitel = "</a></td></tr>"
."<tr><td><div id=\"layer___ID__\" style=\"display:none;border:1px ".$this->info['KtextRandFormat']." ".$this->info['KtextRandFarbe'].";\">";
//> Html- Muster für geschlossene Tags.
$KtextClose = "</div></td></tr></table>\n";
//> Geöffnete Tags umwandeln.
for($c=1;$c <= count($this->ayCacheKtextOpen);$c++) {
if(count($this->ayCacheKtextClose) == count($this->ayCacheKtextOpen)) {
//> Format: [ktext=xxx]
$this->ktext_pattern[] = "%\[ktext:".$c."=([^]]*)\]%siU";
$this->ktext_replace[] = str_replace("__ID__",$c."@".$Random,$HeaderTitel)."\$1".str_replace("__ID__",$c."@".$Random,$FooterTitel);
//> Format: [/ktext]
$this->ktext_pattern[] = "%\[/ktext:".$c."\]%siU";
$this->ktext_replace[] = $KtextClose;
} else {
//> Format: [ktext=xxx]xxx[/ktext]
$this->ktext_pattern[] = "%\[ktext:([0-9]*)=([^]](.*)\[/ktext:([0-9]*)\]%siU";
$this->ktext_replace[] = str_replace("__ID__","\$1@".$Random,$HeaderTitel)."\$2".str_replace("__ID__","\$1@".$Random,$FooterTitel)."\$3".$KtextClose;
}
}
//> Nicht gefundene Paare wieder darstellen.
//> Format: [ktext=xxx]
$this->ktext_pattern[] = "%\[ktext:([0-9]*)=([^[/]*)\]%siU";
$this->ktext_replace[] = "[ktext=\$1]";
//> Format: [/ktext]
$this->ktext_pattern[] = "%\[/ktext:([0-9]*)\]%siU";
$this->ktext_replace[] = "[/ktext]";
//> String parsen
$string = preg_replace($this->ktext_pattern,$this->ktext_replace,$string);
return $string;
}
//> Geöffnete Quote- Tags Nummerieren.
function _addQuoteOpen($User=Null) {
$this->ayCacheQuoteOpen[count($this->ayCacheQuoteOpen)+1] = $User;
$intCountQuote = count($this->ayCacheQuoteOpen);
if($User != NULL) {
$string = "[quote:".$intCountQuote."=".$User."]";
} else {
$string = "[quote:".$intCountQuote."]";
}
return $string;
}
//> Geschlossene Quote- Tags Nummerieren.
function _addQuoteClose() {
$this->ayCacheQuoteClose[count($this->ayCacheQuoteClose)+1] = true;
$intCountQuote = count($this->ayCacheQuoteClose);
return "[/quote:".$intCountQuote."]";
}
//> Quote- Tags umwandeln.
function _quote($string) {
//> überprüfen ob Bod gesetzt ist.
if(strtolower($this->info['QuoteSchriftformatIT']) == "bold") {
$Schriftformat = "font-weight:bold;";
} else {
$Schriftformat = "font-style:".$this->info['QuoteSchriftformatIT'].";";
}
//> Html- Muster für geöffnete Quote- Tags.
$Header = "<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" style=\"BORDER: 1px SOLID ".$this->info['QuoteRandFarbe'].";\" width=\"".$this->info['QuoteTabelleBreite']."\" align=\"center\">"
."<tr><td style=\"font-family:Arial, Helvetica, sans-serif;FONT-SIZE:13px;FONT-WEIGHT:BOLD;COLOR:".$this->info['QuoteSchriftfarbe'].";BACKGROUND-COLOR:".$this->info['QuoteHintergrundfarbe'].";\"> Zitat</td></tr>"
."<tr bgcolor=\"".$this->info['QuoteHintergrundfarbeIT']."\"><td><table align=\"center\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"98%\"><tr><td style=\"".$Schriftformat."FONT-SIZE:10px;COLOR:".$this->info['QuoteSchriftfarbeIT'].";\">";
//> Html- Muster für geöffnete Quote- Tags mit User.
$HeaderUser = "<table cellspacing=\"0\" cellpadding=\"2\" border=\"0\" style=\"BORDER: 1px SOLID ".$this->info['QuoteRandFarbe'].";\" width=\"".$this->info['QuoteTabelleBreite']."\" align=\"center\">"
."<tr><td style=\"font-family:Arial, Helvetica, sans-serif;FONT-SIZE:13px;FONT-WEIGHT:BOLD;COLOR:".$this->info['QuoteSchriftfarbe'].";BACKGROUND-COLOR:".$this->info['QuoteHintergrundfarbe'].";\"> Zitat von ";
$FooterUser = "</td></tr><tr bgcolor=\"".$this->info['QuoteHintergrundfarbeIT']."\"><td><table align=\"center\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"98%\"><tr><td style=\"".$Schriftformat."FONT-SIZE:10px;COLOR:".$this->info['QuoteSchriftfarbeIT'].";\">";
//> Html- Muster für geschlossene Quote- Tags.
$QuoteClose = "</td></tr></table></td></tr></table>";
//> Geöffnete Tags umwandeln.
for($c=1;$c <= count($this->ayCacheQuoteOpen);$c++) {
if(count($this->ayCacheQuoteClose) == count($this->ayCacheQuoteOpen)) {
//> Format: [quote=xxx]
$this->quote_pattern[] = "%\[quote:".$c."=([^[/]*)\]%siU";
$this->quote_replace[] = $HeaderUser."\$1".$FooterUser;
//> Format: [quote]
$this->quote_pattern[] = "%\[quote:".$c."\]%siU";
$this->quote_replace[] = $Header;
//> Format: [/quote]
$this->quote_pattern[] = "%\[/quote:".$c."\]%siU";
$this->quote_replace[] = $QuoteClose;
} else {
//> Format: [quote=xxx]xxx[/quote]
$this->quote_pattern[] = "%\[quote:([0-9]*)=([^[/]*)\[/quote:([0-9]*)\]%siU";
$this->quote_replace[] = $HeaderUser."\$2".$FooterUser."\$3".$QuoteClose;
//> Format: [quote]xxx[/quote]
$this->quote_pattern[] = "%\[quote:([0-9]*)\](.*)\[/quote:\\1\]%siU";
$this->quote_replace[] = $Header."\$2".$QuoteClose;
}
}
//> Nicht gefundene Paare wieder darstellen.
//> Format: [quote=xxx]
$this->quote_pattern[] = "%\[quote:([0-9]*)=([^[/]*)\]%siU";
$this->quote_replace[] = "[quote=\$2]";
//> Format: [quote]
$this->quote_pattern[] = "%\[quote:([0-9])\]%siU";
$this->quote_replace[] = "[quote]";
//> Format: [/quote]
$this->quote_pattern[] = "%\[/quote:([0-9])\]%siU";
$this->quote_replace[] = "[/quote]";
//> String parsen
$string = preg_replace($this->quote_pattern,$this->quote_replace,$string);
return $string;
}
//> Video intergration.
function _video($typ,$id) {
$typ = strtolower($typ);
if($typ == "google") {
$str = "<embed style=\"width:".$this->info['GoogleBreite']."px; height:".$this->info['GoogleHoehe']."px;\" id=\"VideoPlayback\" align=\"middle\" type=\"application/x-shockwave-flash\" src=\"http://video.google.com/googleplayer.swf?docId=".$id."\" allowScriptAccess=\"sameDomain\" quality=\"best\" bgcolor=\"".$this->info['GoogleHintergrundfarbe']."\" scale=\"noScale\" salign=\"TL\" FlashVars=\"playerMode=embedded\"/>";
}
if($typ == "youtube") {
$str = "<object width=\"".$this->info['YoutubeBreite']."\" height=\"".$this->info['YoutubeHoehe']."\"><param name=\"movie\" value=\"http://www.youtube.com/v/".$id."\"></param><embed src=\"http://www.youtube.com/v/".$id."\" type=\"application/x-shockwave-flash\" width=\"".$this->info['YoutubeBreite']."\" height=\"".$this->info['YoutubeHoehe']."\" bgcolor=\"".$this->info['YoutubeHintergrundfarbe']."\"></embed></object>";
}
if($typ == "myvideo") {
$str = "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" width=\"".$this->info['MyvideoBreite']."\" height=\"".$this->info['MyvideoHoehe']."\"><param name=\"movie\" value=\"http://www.myvideo.de/movie/".$id."\"></param><embed src=\"http://www.myvideo.de/movie/".$id."\" width=\"".$this->info['MyvideoBreite']."\" height=\"".$this->info['MyvideoHoehe']."\" type=\"application/x-shockwave-flash\"></embed></object>";
}
if($typ == "gametrailers") {
$str = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="gtembed" width="'.$this->info['YoutubeBreite'].'" height="'.$this->info['YoutubeHoehe'].'"> <param name="allowScriptAccess" value="sameDomain" /> <param name="allowFullScreen" value="true" /> <param name="movie" value="http://www.gametrailers.com/remote_wrap.php?mid='.$id.'"/> <param name="quality" value="high" /> <embed src="http://www.gametrailers.com/remote_wrap.php?mid='.$id.'" swLiveConnect="true" name="gtembed" align="middle" allowScriptAccess="sameDomain" allowFullScreen="true" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="'.$this->info['YoutubeBreite'].'" height="'.$this->info['YoutubeHoehe'].'"></embed> </object>';
}
return $str;
}
//> Countdown berechnen.
function _countdown($date,$time=NULL) {
$date = explode(".",$date);
if ($time != NULL) {
$timechk = explode(':',$time);
if ($timechk[0] <= 23 && $timechk[1] <= 59 && $timechk[2] <= 59) $timechk = TRUE;
else $timechk = FALSE;
}
else $timechk = TRUE;
//> Html Design.
$Header = "<div style=\"width:".$this->info['CountdownTabelleBreite'].";padding:5px;font-family:Verdana;font-size:".$this->info['CountdownSchriftsize']."px;".$Font."color:".$this->info['CountdownSchriftfarbe'].";border:2px dotted ".$this->info['CountdownRandFarbe'].";text-align:center\">";
$Footer = "</div>";
//> Überprüfen ob die angaben stimmen.
if($date[0] <= 31 && $date[1] <= 12 && $date[2] /*>= date("Y")*/ && checkdate($date[1],$date[0],$date[2]) && $timechk) {
if(isset($time)) {
$time = explode(":",$time);
$intStd = $time[0];
$intMin = $time[1];
$intSek = $time[2];
} else {
$intStd = 0;
$intMin = 0;
$intSek = 0;
}
$Timestamp = @mktime($intStd, $intMin, $intSek, $date[1], $date[0], $date[2]);
$Diff = $Timestamp - time();
$Font =($this->info['CountdownSchriftformat'] == "bold") ? "font-wight:bold;":"font-style:".$this->info['CountdownSchriftformat'].";";
if($Diff > 1) {
$Tage = sprintf("%00d",($Diff / 86400));
$Stunden = sprintf("%00d",(($Diff - ($Tage * 86400)) / 3600));
$Minuten = sprintf("%00d",(($Diff - (($Tage * 86400)+($Stunden*3600))) / 60));
$Sekunden = ($Diff - (($Tage * 86400)+($Stunden*3600)+($Minuten*60)));
//> Bei höheren Wert wie 1 als Mehrzahl ausgeben.
$mzTg = ($Tage == 1) ? "":"e";
$mzStd = ($Stunden == 1) ? "":"n";
$mzMin = ($Minuten == 1) ? "":"n";
$mzSek = ($Sekunden == 1) ? "":"n";
//> Datum zusamstellen.
$str = $Header.$Tage." Tag".$mzTg.", ".$Stunden." Stunde".$mzStd.", ".$Minuten." Minute".$mzMin." und ".$Sekunden." Sekunde".$mzSek.$Footer;
} else {
//> Datum zusamstellen wenn Datum unmittelbar bevor steht.
$str = $Header.(is_array($time) ? implode(':',$time) : $time).' '.implode('.',$date)." !!!".$Footer;
}
} else {
/*if($time == NULL) {
$str = "[countdown]".implode('.',$date)."[/countdown]";
} else {
$str = "[countdown=".$time."]".implode('.',$date)."[/countdown]";
}*/
$str = $Header."Der Countdown ist falsch definiert".$Footer;
}
return $str;
}
function _ws($ws) {
return $ws;
}
//> Flash verwerten
function _flash($url, $options){
preg_match_all('%(\w+)=\\\\\'([^\']+)\\\\\'%i', $options, $matches);
$options = $matches[1];
$values = $matches[2];
$width = $this->info['FlashBreite'];
$height = $this->info['FlashHoehe'];
$flashvarsEmb = $flashvarsObj = '';
if (!empty($options)) {
foreach ($options as $key => $option){
$value = $values[$key];
if ($option == 'width') {
if ($value < $width) {
$width = $value;
}
} elseif ($option == 'height') {
if ($value < $height) {
$height = $value;
}
} elseif ($option === 'flashvars' && !empty($value)) {
$encValue = utf8_decode($value);
$flashvarsObj = '<param name="FlashVars" value="' . $encValue . '">';
$flashvarsEmb = 'FlashVars="' . $encValue . '"';
}
}
}
return '<object classid="CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'.$width.'" height="'.$height.'"'.
'codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=7,0,0,0" class="bbcode_flash">'.
'<param name="movie" value="' . $url . '">'.
'<param name="quality" value="high">'.
'<param name="scale" value="exactfit">'.
'<param name="menu" value="true">'.
'<param name="bgcolor" value="'.$this->info['FlashHintergrundfarbe'].'"> '.
'<embed '.$flashvarsEmb.' src="' . $url . '" quality="high" scale="exactfit" menu="false" '.
'bgcolor="'.$this->info['FlashHintergrundfarbe'].'" width="'.$width.'" height="'.$height.'" swLiveConnect="false" '.
'type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">'.
'</embed>'.
'</object>';
}
function parse($string) {
//> Die Blocks werden codiert um sie vor dem restlichen parsen zu schützen.
if($this->permitted['php'] == true) {
$string = preg_replace("%\[php\](.+)\[\/php\]%esiU","\$this->encode_codec('\$1','php')",$string);
$string = preg_replace("%\[php=(.*)\](.+)\[\/php\]%esiU","\$this->encode_codec('\$2','php','\$1')",$string);
}
if($this->permitted['html'] == true) {
$string = preg_replace("%\[html\](.+)\[\/html\]%esiU","\$this->encode_codec('\$1','html')",$string);
$string = preg_replace("%\[html=(.*)\](.+)\[\/html\]%esiU","\$this->encode_codec('\$2','html','\$1')",$string);
}
if($this->permitted['css'] == true) {
$string = preg_replace("%\[css\](.+)\[\/css\]%esiU","\$this->encode_codec('\$1','css')",$string);
$string = preg_replace("%\[css=(.*)\](.+)\[\/css\]%esiU","\$this->encode_codec('\$2','css','\$1')",$string);
}
if($this->permitted['code'] == true) {
$string = preg_replace("%\[code\](.+)\[\/code\]%esiU","\$this->encode_codec('\$1','code')",$string);
$string = preg_replace("%\[code=(.*)\](.+)\[\/code\]%esiU","\$this->encode_codec('\$2','code','\$1')",$string);
}
if($this->permitted['list'] == true) {
$string = preg_replace("%\[list\](.+)\[\/list\]%esiU","\$this->encode_codec('\$1','list')",$string);
}
//> Badwors Filtern.
$string = $this->_badwords($string);
//> BB Code der den Codeblock nicht betrifft.
//> Überprüfen ob die wörter nicht die maximal länge überschrieten.
$string = $this->_shortwords($string);
$string = htmlentities($string, ENT_COMPAT, 'ISO-8859-1');
$string = nl2br($string);
if($this->permitted['url'] == true) {
if($this->permitted['autourl'] == true) {
//> Format: www.xxx.de
$this->pattern[] = "%(( |\n|^)(www.[a-zA-Z\-0-9@:\%_\+.~#?&//=,;]+?))%eUi";
$this->replace[] = "\$this->_ws('\$2').\$this->_shorturl('\$3')";
//> Format: http://www.xxx.de
$this->pattern[] = "%(( |\n|^)((http|https|ftp)://{1}[a-zA-Z\-0-9@:\%_\+.~#?&//=,;]+?))%eUi";
$this->replace[] = "\$this->_ws('\$2').\$this->_shorturl('\$3')";
//> Format xxx@xxx.de
$this->pattern[] = "%(\s|^)([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})%i";
$this->replace[] = "<a href=\"mailto:$2\">$2</a>";
}
//> Format: [url=xxx]xxx[/url]
$this->pattern[] = "%\[url=([^\]]*)\](.+)\[\/url\]%eUis";
$this->replace[] = "\$this->_shorturl('\$1','\$2')";
//> Format: [url]xxx[/url]
$this->pattern[] = "%\[url\](.+)\[\/url\]%esiU";
$this->replace[] = "\$this->_shorturl('\$1')";
}
//> Darf BB Code [MAIL] dekodiert werden?
if($this->permitted['email'] == true) {
//> Format: [mail]xxx@xxx.de[/mail]
$this->pattern[] = "%\[mail\]([_\.0-9a-z-]+\@([0-9a-z\-]+)\.[a-z]{2,3})\[\/mail\]%Uis";
$this->replace[] = "<a href=\"mailto:$1\">$1</a>";
//> Format: [mail=xxx@xxx.de]xxx[/mail]
$this->pattern[] = "%\[mail=([_\.0-9a-z-]+\@([0-9a-z\-]+)\.[a-z]{2,3})\](.+)\[\/mail\]%Uis";
$this->replace[] = "<a href=\"mailto:$1\">$3</a>";
}
//> Darf BB Code [B] dekodiert werden?
if($this->permitted['b'] == true) {
//> Format: [b]xxx[/b]
$this->pattern[] = "%\[b\](.+)\[\/b\]%Uis";
$this->replace[] = "<b>\$1</b>";
}
//> Darf BB Code [I] dekodiert werden?
if($this->permitted['i'] == true) {
//> Format: [i]xxx[/i]
$this->pattern[] = "%\[i\](.+)\[\/i\]%Uis";
$this->replace[] = "<i>\$1</i>";
}
//> Darf BB Code [U] dekodiert werden?
if($this->permitted['u'] == true) {
//> Format: [u]xxx[/u]
$this->pattern[] = "%\[u\](.+)\[\/u\]%Uis";
$this->replace[] = "<u>\$1</u>";
}
//> Darf BB Code [S] dekodiert werden?
if($this->permitted['s'] == true) {
//> Format: [s]xxx[/s]
$this->pattern[] = "%\[s\](.+)\[\/s\]%Uis";
$this->replace[] = "<strike>\$1</strike>";
}
###############################################
//> Darf BB Code [LEFT] dekodiert werden?
if($this->permitted['left'] == true) {
//> Format: [left]xxx[/left]
$this->pattern[] = "%\[left\](.+)\[\/left\]%Uis";
$this->replace[] = "<div align=\"left\">\$1</div>";
}
//> Darf BB Code [CENTER] dekodiert werden?
if($this->permitted['center'] == true) {
//> Format: [center]xxx[/center]
$this->pattern[] = "%\[center\](.+)\[\/center\]%Uis";
$this->replace[] = "<div align=\"center\">\$1</div>";
}
//> Darf BB Code [RIGHT] dekodiert werden?
if($this->permitted['right'] == true) {
//> Format: [right]xxx[/right]
$this->pattern[] = "%\[right\](.+)\[\/right\]%Uis";
$this->replace[] = "<div align=\"right\">\$1</div>";
}
###############################################
//> Darf BB Code [EMPH] dekodiert werden?
if($this->permitted['emph'] == true) {
//> Format: [emph]xxx[/emph]
$this->pattern[] = "%\[emph\](.+)\[\/emph\]%Uis";
$this->replace[] = "<span style=\"background-color:".$this->info['EmphHintergrundfarbe'].";color:".$this->info['EmphSchriftfarbe'].";\">$1</span>";
}
//> Darf BB Code [COLOR] dekodiert werden?
if($this->permitted['color'] == true) {
//> Format: [color=#xxxxxx]xxx[/color]
$this->pattern[] = "%\[color=(#{1}[0-9a-zA-Z]+?)\](.+)\[\/color\]%Uis";
$this->replace[] = "<font color=\"$1\">$2</font>";
}
//> Darf BB Code [SIZE] dekodiert werden?
if($this->permitted['size'] == true) {
//> Format: [size=xx]xxx[/size]
$this->pattern[] = "%\[size=([0-9]+?)\](.+)\[\/size\]%eUis";
$this->replace[] = "\$this->_size('\$1','\$2')";
}
//> Darf BB Code [KTEXT] decodiert werden?
if($this->permitted['ktext'] == true) {
//> Format: [ktext=xxx]
$this->pattern[] = "%\[ktext=([^[/]*)\]%esiU";
$this->replace[] = "\$this->_addKtextOpen('\\1')";
//> Format: [/ktext]
$this->pattern[] = "%\[/ktext\]%esiU";
$this->replace[] = "\$this->_addKtextClose()";
}
//> Darf BB Code [IMG] dekodiert werden?
if($this->permitted['img'] == true) {
//> Format: [img]xxx.de[/img]
$this->pattern[] = "%\[img\]([-a-zA-Z0-9@:\%_\+,.~#?&//=]+?)\[\/img\]%eUi";
$this->replace[] = "\$this->_img('\$1')";
//> Format: [img=left|right]xxx.de[/img]
$this->pattern[] = "%\[img=(left|right)\]([-a-zA-Z0-9@:\%_\+,.~#?&//=]+?)\[\/img\]%eUi";
$this->replace[] = "\$this->_img('\$2','\$1')";
}
//> Darf BB Code [SCREENSHOT] dekodiert werden?
if($this->permitted['screenshot'] == true) {
//> Format: [shot]xxx.de[/screenshot]
$this->pattern[] = "%\[shot\]([-a-zA-Z0-9@:\%_\+.~#?&//=]+?)\[\/shot\]%eUi";
$this->replace[] = "\$this->_screenshot('\$1')";
//> Format: [shot=left|right]xxx.de[/screenshot]
$this->pattern[] = "%\[shot=(left|right)\]([-a-zA-Z0-9@:\%_\+.~#?&//=]+?)\[\/shot\]%eUi";
$this->replace[] = "\$this->_screenshot('\$2','\$1')";
}
//> Farf BB Code [VIDEO] dekodiert werden?
if($this->permitted['video'] == true) {
//> Format: [video=xxx]xxx[/video]
$this->pattern[] = "%\[video=(google|youtube|myvideo|gametrailers)\](.+)\[\/video\]%eUis";
$this->replace[] = "\$this->_video('\$1','\$2')";
}
//> Darf BB Code [COUNTDOWN] dekodiert werden?
if($this->permitted['countdown'] == true) {
//> Format: [countdown=Std:Min:Sek]TT.MM.JJJJ[/countdown]
$this->pattern[] = "%\[countdown=(([0-9]{2}):([0-9]{2}):([0-9]{2}))\](([0-9]{2})\.([0-9]{2})\.([0-9]{4}))\[\/countdown\]%eUis";
$this->replace[] = "\$this->_countdown('\$5','\$1')";
//> Format: [countdown]TT.MM.JJJJ[/countdown]
$this->pattern[] = "%\[countdown\](([0-9]{2})\.([0-9]{2})\.([0-9]{4}))\[\/countdown\]%eUis";
$this->replace[] = "\$this->_countdown('\$1')";
}
###############################################
//> Darf BB Code [QUOTE] dekodiert werden?
if($this->permitted['quote'] == true) {
//> Format: [quote]
$this->pattern[] = "%\[quote\]%esiU";
$this->replace[] = "\$this->_addQuoteOpen()";
//> Format: [quote=xxx]
$this->pattern[] = "%\[quote=([^[/]*)\]%esiU";
$this->replace[] = "\$this->_addQuoteOpen('\\1')";
//> Format: [/quote]
$this->pattern[] = "%\[/quote\]%esiU";
$this->replace[] = "\$this->_addQuoteClose()";
}
//> Darf BB Code [FLASH] dekodiert werden?
if($this->permitted['flash'] == true) {
//> Format: [flash]*[/flash]
$this->pattern[] = "%\[flash(( \w+='[^']+')*)]((http|https|ftp)://[a-z-0-9@:\%_\+.~#\?&/=,;]+)\[/flash]%ie";
$this->replace[] = '$this->_flash("$3", trim("$1"));';
}
//> String parsen
$string = preg_replace($this->pattern,$this->replace,$string);
//> Darf BB Code [QUOTE] dekodiert werden?
if($this->permitted['quote'] == true) {
$string = $this->_quote($string);
}
//> Darf BB Code [KTEXT] decodiert werden?
if($this->permitted['ktext'] == true) {
$string = $this->_ktext($string);
}
//> Smilies Filtern.
$string = $this->_smileys($string);
//> Zum schluss die blöcke die verschlüsselt wurden wieder entschlüsseln und Parsen.
if($this->permitted['php'] == true) {
$string = preg_replace("%\[php\](.+)\[\/php\]%esiU", '$this->_phpblock("$1")', $string);
$string = preg_replace("%\[php=([^;]*);(\d+)\](.+)\[\/php\]%esiU", 'this->_phpblock("$3","$1","$2")', $string);
$string = preg_replace("%\[php=(.*)\](.+)\[\/php\]%esiU", '$this->_phpblock("$2","$1")', $string);
}
if($this->permitted['html'] == true) {
$string = preg_replace("%\[html\](.+)\[\/html\]%esiU","\$this->_htmlblock('\$1')",$string);
$string = preg_replace("%\[html=([^;]*);(\d+)\](.+)\[\/html\]%esiU","\$this->_htmlblock('\$3','\$1','\$2')",$string);
$string = preg_replace("%\[html=(.*)\](.+)\[\/html\]%esiU","\$this->_htmlblock('\$2','\$1')",$string);
}
if($this->permitted['css'] == true) {
$string = preg_replace("%\[css\](.+)\[\/css\]%esiU","\$this->_cssblock('\$1')",$string);
$string = preg_replace("%\[css=([^;]*);(\d+)\](.+)\[\/css\]%esiU","\$this->_cssblock('\$3','\$1','\$2')",$string);
$string = preg_replace("%\[css=(.*)\](.+)\[\/css\]%esiU","\$this->_cssblock('\$2','\$1')",$string);
}
if($this->permitted['code'] == true) {
$string = preg_replace("%\[code\](.+)\[\/code\]%esiU","\$this->_codeblock('\$1')",$string);
$string = preg_replace("%\[code=([^;]*);(\d+)\](.+)\[\/code\]%esiU","\$this->_codeblock('\$3','\$1','\$2')",$string);
$string = preg_replace("%\[code=(.*)\](.+)\[\/code\]%esiU","\$this->_codeblock('\$2','\$1')",$string);
}
if($this->permitted['list'] == true) {
$string = preg_replace("%\[list\](.+)\[\/list\]%esiU","\$this->_list('\$1')",$string);
}
unset($this->pattern);
unset($this->replace);
unset($this->ayCacheQuoteOpen);
unset($this->ayCacheQuoteClose);
unset($this->ayCacheKtextOpen);
unset($this->ayCacheKtextClose);
return $string;
}
}
?>
<?php
# Copyright by Manuel Staechele
# Support www.ilch.de
defined ('main') or die ( 'no direct access' );
//Klasse laden
require_once('include/includes/class/bbcode.php');
require_once('include/includes/bbcode_config.php');
$ILCH_HEADER_ADDITIONS .= "<script type=\"text/javascript\" src=\"include/includes/js/BBCodeGlobal.js\"></script>\n<script type=\"text/javascript\">\nvar bbcodemaximagewidth = {$info['ImgMaxBreite']};\nvar bbcodemaximageheight = {$info['ImgMaxHoehe']};\n</script>";
//Farbliste erstellen
function colorliste ( $ar ) {
$l = '';
foreach($ar as $k => $v) {
$l .= '<td width="10" style="background-color: '.$k.';"><a href="javascript:bbcode_code_insert(\'color\',\''.$k.'\'); hide_color();"><img src="include/images/icons/bbcode/transparent.gif" border="0" height="10" width="10" alt="'.$v.'" title="'.$v.'"></td>';
}
return ($l);
}
function getBBCodeButtons(){
//> Buttons Informationen.
$ButtonSql = db_query("SELECT * FROM prefix_bbcode_buttons WHERE fnButtonNr='1'");
$boolButton = db_fetch_assoc($ButtonSql);
$cfgBBCsql = db_query("SELECT * FROM prefix_bbcode_config WHERE fnConfigNr='1'");
$cfgInfo = db_fetch_assoc($cfgBBCsql);
$BBCodeButtons = '<script type="text/javascript" src="include/includes/js/interface.js"></script>';
//> Schriftfarbeauswahlcontainer
if($boolButton['fnFormatColor'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:hide_color();\"><img id=\"bbcode_color_button\" src=\"include/images/icons/bbcode/bbcode_color.png\" alt=\"Text färben\" title=\"Text färben\" width=\"23\" height=\"22\" border=\"0\"></a> ";
$colorar = array('#FF0000' => 'red','#FFFF00' => 'yellow','#008000' => 'green','#00FF00' => 'lime','#008080' => 'teal','#808000' => 'olive','#0000FF' => 'blue','#00FFFF' => 'aqua', '#000080' => 'navy','#800080' => 'purple','#FF00FF' => 'fuchsia','#800000' => 'maroon','#C0C0C0' => 'grey','#808080' => 'silver','#000000' => 'black','#FFFFFF' => 'white',);
$BBCodeButtons .= '<div style="position:absolute;"><div style="display:none; position:relative; top:-30px; left:100px; width:200px; z-index:100;" id="colorinput">
<table width="100%" class="border" border="0" cellspacing="1" cellpadding="0">
<tr class="Chead" onclick="javascript:hide_color();"><td colspan="16"><b>Farbe wählen</b></td></tr>
<tr class="Cmite" height="15">'.colorliste($colorar).'</tr></table>
</div></div>';
}
//> Fett Button!
if($boolButton['fnFormatB'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_insert('b','Gib hier den Text an der fett formatiert werden soll.')\"><img src=\"include/images/icons/bbcode/bbcode_bold.png\" alt=\"Fett formatieren\" title=\"Fett formatieren\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Kursiv Button!
if($boolButton['fnFormatI'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_insert('i','Gib hier den Text an der kursiv formatiert werden soll.')\"><img src=\"include/images/icons/bbcode/bbcode_italic.png\" alt=\"Kursiv formatieren\" title=\"Kursiv formatieren\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Unterschrieben Button!
if($boolButton['fnFormatU'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_insert('u','Gib hier den Text an der unterstrichen formatiert werden soll.')\"><img src=\"include/images/icons/bbcode/bbcode_underline.png\" alt=\"Unterstrichen formatieren\" title=\"Unterstrichen formatieren\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Durchgestrichener Button!
if($boolButton['fnFormatS'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_insert('s','Gib hier den Text an der durchgestrichen formatiert werden soll..')\"><img src=\"include/images/icons/bbcode/bbcode_strike.png\" alt=\"Durchgestrichen formatieren\" title=\"Durchgestrichen formatieren\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Leerzeichen?
if($boolButton['fnFormatB'] == 1 || $boolButton['fnFormatI'] == 1 || $boolButton['fnFormatU'] == 1 || $boolButton['fnFormatS'] == 1) {
$BBCodeButtons .= " ";
}
//> Links Button!
if($boolButton['fnFormatLeft'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_code_insert('left','0')\"><img src=\"include/images/icons/bbcode/bbcode_left.png\" alt=\"Links ausrichten\" title=\"Links ausrichten\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Zentriert Button!
if($boolButton['fnFormatCenter'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_code_insert('center','0')\"><img src=\"include/images/icons/bbcode/bbcode_center.png\" alt=\"Mittig ausrichten\" title=\"Mittig ausrichten\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Rechts Button!
if($boolButton['fnFormatRight'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_code_insert('right','0')\"><img src=\"include/images/icons/bbcode/bbcode_right.png\" alt=\"Rechts ausrichten\" title=\"Rechts ausrichten\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Leerzeichen?
if($boolButton['fnFormatLeft'] == 1 || $boolButton['fnFormatCenter'] == 1 || $boolButton['fnFormatRight'] == 1) {
$BBCodeButtons .= " ";
}
//> Listen Button!
if($boolButton['fnFormatList'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_insert('list','Gib hier den Text ein der aufgelistet werden soll.\\nUm die liste zu beenden einfach auf Abbrechen klicken.')\"><img src=\"include/images/icons/bbcode/bbcode_list.png\" alt=\"Liste erzeugen\" title=\"Liste erzeugen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Hervorheben Button!
if($boolButton['fnFormatEmph'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_code_insert('emph','0')\"><img src=\"include/images/icons/bbcode/bbcode_emph.png\" alt=\"Text hervorheben\" title=\"Text hervorheben\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Schriftfarbe Button!
if($boolButton['fnFormatColor'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:hide_color();\"><img id=\"bbcode_color_button\" src=\"include/images/icons/bbcode/bbcode_color.png\" alt=\"Text färben\" title=\"Text färben\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Schriftgröße Button!
if($boolButton['fnFormatSize'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_insert_with_value('size','Gib hier den Text an, der in einer anderen Schriftgröße formatiert werden soll.','Gib hier die Größe des textes in Pixel an. \\n Pixellimit liegt bei ".$cfgInfo['fnSizeMax']."px !!!')\"><img src=\"include/images/icons/bbcode/bbcode_size.png\" alt=\"Textgröße verändern\" title=\"Textgröße verändern\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Leerzeichen?
if($boolButton['fnFormatList'] == 1 || $boolButton['fnFormatEmph'] == 1 || $boolButton['fnFormatColor'] == 1 || $boolButton['fnFormatSize'] == 1) {
$BBCodeButtons .= " ";
}
//> Url Button!
if($boolButton['fnFormatUrl'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_insert_with_value('url','Gib hier die Beschreibung für den Link an.','Gib hier die Adresse zu welcher verlinkt werden soll an.')\"><img src=\"include/images/icons/bbcode/bbcode_url.png\" alt=\"Hyperlink einfügen\" title=\"Hyperlink einfügen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> E-Mail Button!
if($boolButton['fnFormatEmail'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_insert_with_value('mail','Gib hier den namen des links an.','Gib hier die eMail - Adresse an.')\"><img src=\"include/images/icons/bbcode/bbcode_email.png\" alt=\"eMail hinzufügen\" title=\"eMail hinzufügen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Leerzeichen?
if($boolButton['fnFormatUrl'] == 1 || $boolButton['fnFormatEmail'] == 1) {
$BBCodeButtons .= " ";
}
//> Bild Button!
if($boolButton['fnFormatImg'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_insert('img','Gib hier die Adresse des Bildes an.\\nHinweise: Die Breite und Höhe des Bildes ist auf ".$cfgInfo['fnImgMaxBreite']."x".$cfgInfo['fnImgMaxHoehe']." eingeschränkt und würde verkleinert dargstellt werden.\\nEs ist möglich ein Bild rechts oder links von anderen Elementen darzustellen, indem man [img=left] oder [img=right] benutzt.')\"><img src=\"include/images/icons/bbcode/bbcode_image.png\" alt=\"Bild einfügen\" title=\"Bild einfügen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Screenshot Button!
if($boolButton['fnFormatScreen'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_insert('shot','Gib hier die Adresse des Screens an.\\nDie Breite und Höhe des Bildes ist auf ".$cfgInfo['fnScreenMaxBreite']."x".$cfgInfo['fnScreenMaxHoehe']." eingeschränkt und wird verkleinert dargstellt.\\nEs ist möglich ein Screenshot rechts oder links von anderen Elementen darzustellen, indem man [shot=left] oder [shot=right] benutzt.')\"><img src=\"include/images/icons/bbcode/bbcode_screenshot.png\" alt=\"Bild einfügen\" title=\"Screen einfügen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Leerzeichen?
if($boolButton['fnFormatImg'] == 1 || $boolButton['fnFormatScreen'] == 1) {
$BBCodeButtons .= " ";
}
//> Quote Button!
if($boolButton['fnFormatQuote'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_code_insert('quote','0')\"><img src=\"include/images/icons/bbcode/bbcode_quote.png\" alt=\"Zitat einfügen\" title=\"Zitat einfügen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Klapptext Button!
if($boolButton['fnFormatKtext'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_insert_with_value('ktext','Gib hier den zu verbergenden Text ein.','Gib hier einen Titel für den Klapptext an.')\"><img src=\"include/images/icons/bbcode/bbcode_ktext.png\" alt=\"Klappfunktion hinzufügen\" title=\"Klappfunktion hinzufügen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Video Button!
if($boolButton['fnFormatVideo'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_insert_with_value_2('video','Gib hier die Video ID vom Anbieter an.','Bitte Anbieter auswählen.\\nAkzeptiert werden: Google, YouTube, MyVideo und GameTrailers')\"><img src=\"include/images/icons/bbcode/bbcode_video.png\" alt=\"Video einfügen\" title=\"Video einfügen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Flash Button!
if($boolButton['fnFormatFlash'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_insert_with_multiple_values('flash',{tag:['Gib hier den Link zur Flashdatei an',''],width:['Gib hier die Breite für die Flashdatei an','400'],height:['Gib hier die Höhe für die Flashdatei an','300'],flashvars:['Gib hier ggf. Flashvars an','']})\"><img src=\"include/images/icons/bbcode/bbcode_flash.png\" alt=\"Flash einfügen\" title=\"Flash einfügen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Countdown Button!
if($boolButton['fnFormatCountdown'] == 1) {
$BBCodeButtons .= "<a href=\"javascript:bbcode_insert_with_value('countdown','Gib hier das Datum an wann das Ereignis beginnt.\\n Format: TT.MM.JJJJ Bsp: 24.12.".date("Y")."','Gib hier eine Zeit an, wann das Ergeinis am Ereignis- Tag beginnt.\\nFormat: Std:Min:Sek Bsp: 20:15:00')\"><img src=\"include/images/icons/bbcode/bbcode_countdown.png\" alt=\"Countdown festlegen\" title=\"Countdown festlegen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
}
//> Leerzeichen?
if($boolButton['fnFormatQuote'] == 1|| $boolButton['fnFormatKtext'] == 1 || $boolButton['fnFormatVideo'] == 1 || $boolButton['fnFormatFlash'] == 1 || $boolButton['fnFormatCountdown'] == 1) {
$BBCodeButtons .= " ";
}
//> Code Dropdown!
if($boolButton['fnFormatCode'] == 1 || $boolButton['fnFormatPhp'] == 1 || $boolButton['fnFormatHtml'] == 1 || $boolButton['fnFormatCss'] == 1) {
$BBCodeButtons .= "<select onChange=\"javascript:bbcode_code_insert_codes(this.value); javascript:this.value='0';\" style=\"font-family:Verdana;font-size:10px; margin-bottom:6px; z-index:0;\" name=\"code\"><option value=\"0\">Code einfügen</option>";
}
if($boolButton['fnFormatPhp'] == 1) {
$BBCodeButtons .= "<option value=\"php\">PHP</option>";
}
if($boolButton['fnFormatHtml'] == 1) {
$BBCodeButtons .= "<option value=\"html\">HTML</option>";
}
if($boolButton['fnFormatCss'] == 1) {
$BBCodeButtons .= "<option value=\"css\">CSS</option>";
}
if($boolButton['fnFormatCode'] == 1) {
$BBCodeButtons .= "<option value=\"code\">Sonstiger Code</option>";
}
if($boolButton['fnFormatCode'] == 1 || $boolButton['fnFormatPhp'] == 1 || $boolButton['fnFormatHtml'] == 1 || $boolButton['fnFormatCss'] == 1) {
$BBCodeButtons .= "</select>";
}
return $BBCodeButtons;
}
function BBcode($s,$maxLength=0,$maxImgWidth=0,$maxImgHeight=0) {
global $permitted,$info,$global_smiles_array;
//> Smilies in array abspeichern.
if(!isset($global_smiles_array)) {
$erg = db_query("SELECT ent, url, emo FROM `prefix_smilies`");
while ($row = db_fetch_object($erg) ) {
$global_smiles_array[$row->ent] = $row->emo.'#@#-_-_-#@#'.$row->url;
}
}
$bbcode = new bbcode();
$bbcode->smileys = $global_smiles_array;
$bbcode->permitted = $permitted;
$bbcode->info = $info;
if ($maxLength != 0) {
$bbcode->info['fnWortMaxLaenge'] = $maxLength;
}
if ($maxImgWidth != 0) {
$bbcode->info['fnImgMaxBreite'] = $maxImgWidth;
}
if ($maxImgHeight != 0) {
$bbcode->info['fnImgMaxBreite'] = $maxImgHeight;
}
return $bbcode->parse($s);
}
?>
Zuletzt modifiziert von MDS am 03.12.2012 - 13:24:50