BBCode-Button für Shoutbox V3.2.2

Eingetragen von Outi77 am Mi, 22. Okt 2014 - 15:03


Voraussetzungen:
  • 1. Installierte BBCode2.0_11P
  • 2. Installierte Shoutbox V3.2.2


Änderungen an folgenden Dateien, um die BBCode-Button auch in der Shoutbox nutzen zu können:

  • 1. include/includes/func/bbcode.php
    -function getBBCodeButtons() kopieren und unter dieser einfügen

    -eingefügte function umbenennen in getBBCodeButtons_shbox()

    -nicht benötigte Button ( zB alle außer fett, kursiv, unterstrichen) löschen

    -javascript-Funktionen der behaltene Button erweitern (Funktions-Name) mit _shbox
    Bsp: javascript:bbcode_insert_shbox

    -Verweis für neue Shoutbox-javascript-Funktionen setzen
    *flg. Zeile ändern:
    $BBCodeButtons = '<script type="text/javascript" src="include/includes/js/interface.js"></script>';

    in
    $BBCodeButtons = '<script type="text/javascript" src="include/includes/js/shbox/shbox.js"></script>';


    -neuen Button für Smileys einfügen (entsprechende png in include/images/icons/bbcode...zb bbcode_smilies.png
    *flg. Zeilen unter den letzten behaltenen Button einfügen:
    //> Smiley Button!
    if($boolButton['fnFormatSmilies'] == 1) {
           $BBCodeButtons .= "<a href=\"javascript:moreSmiliesshbox();\"><img src=\"include/images/icons/bbcode/bbcode_smilies.png\" alt=\"Bild einf&uuml;gen\" title=\"Bild einf&uuml;gen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
    }
  • 2. include/includes/js/shbox/shbox.js
    -sämtliche bbcode_-functions aus der include/includes/js/interface.js kopieren und in der shbox.js oben einfügen

    -diese umbenennen, Funktionsnamen mit _shbox erweitern

    -Funktions-Aufrufe innerhalb dieser Funktionen ebenfalls anpassen

    -sämtliche vorkommende Zeilen
    var formular = document.forms[bbcode_textarea[0]].elements[bbcode_textarea[1]];

    ersetzen durch
    var formular = document.forms['shbox'].elements['xtxt'];
  • 3. include/includes/class/tpl.php
    -neue function getBBCodeButtons_shbox() initialisieren
    *flg. Zeile direkt unter
    $this->keys['__BBCodeButtons__'] = getBBCodeButtons();  //BBCode2.0 Buttons
    einfügen:
    $this->keys['__BBCodeButtons_shbox__'] = getBBCodeButtons_shbox();  //BBCode2.0 Buttons Shoutbox
  • 4. include/templates/shbox.htm
    -BBCode-Buttons ins Template einbinden
    *flg. Zeile zB. unter der Textarea (sowohl für eingeloggt als auch für Gäste) einfügen
    {__BBCodeButtons_shbox__}


    -Form-Namen auf shbox ändern, Name der Textarea auf xtxt (falls nicht schon so vorhanden)
  • 5. include/includes/js/shbox/shboxfunc.php
    -Ausblenden der voreingestellten Auswahl an Smileys und dem Link für mehr Smileys
    (kein Muss, aber sinnvoll)
    Zeilen 209-218 löschen (einkommentieren)
    // if ($i< $conf['smiliesspalte'])
    // {
    //   if($i%$zeilen == 0 AND $i <> 0)
    //   {
    //   $a .= '<br /><br />';
    //   }
    // $a .= '<a href="javascript:putt(\''.addslashes($row->ent).'\')" onmouseout="hideTooltip()" onmouseover="showTooltip(event,\''.$row->emo.'\');return false">';
    // $a .= '<img style="margin: 2px;" src="include/images/smiles/'.$row->url.'" border="0"></a>';
    // }
    // $i++;

    Zeilen 221-224 löschen (einkommentieren)
    //   if ($i> $conf['smiliesspalte'])
    //   {
    //   $a .= '<br /><br /><center><a href="javascript:moreSmiliesshbox();">'.$lang['more'].'</a></center>';
    //   }


    -Verhindern der Wort-Teilung der Linkbeschreibung
    Zeile 157 löschen (einkommentieren)
    //$text = preg_replace('/([^\s]{'.$conf['textzeile'].'})(?=[^\s])/',"$1\n", $text);
  • 6. include/boxes/shbox.php
    -Tags, die benötigt werden (zB [url] und [/url] für Link-Button) aus dem Tag-Array entfernen
    $tags = array('[img]','[IMG]','[/img]','[/IMG]','[COLOR]','[/COLOR]','[color]','[/color]');


Zusammenfassung:
<?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>';
		
		//> 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 .= "&nbsp;";
		}

		//> 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> ";
		}
		
		//> Block Button!
		if($boolButton['fnFormatBlock'] == 1) {
			$BBCodeButtons .= "<a href=\"javascript:bbcode_code_insert('block','0')\"><img src=\"include/images/icons/bbcode/bbcode_block.png\" alt=\"Blocksatz ausrichten\" title=\"Blocksatz ausrichten\" width=\"23\" height=\"22\" border=\"0\"></a> ";
		}

		//> Leerzeichen?
		if($boolButton['fnFormatLeft'] == 1 || $boolButton['fnFormatCenter'] == 1 || $boolButton['fnFormatRight'] == 1 || $boolButton['fnFormatBlock'] == 1) {
			$BBCodeButtons .= "&nbsp;";
		}

		//> 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) {
        }
		
		//> 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&auml;rben\" title=\"Text f&auml;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>';
		}

		//> 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&ouml;ße formatiert werden soll.','Gib hier die Gr&ouml;&szlig;e des textes in Pixel an. \\n Pixellimit liegt bei ".$cfgInfo['fnSizeMax']."px !!!')\"><img src=\"include/images/icons/bbcode/bbcode_size.png\" alt=\"Textgr&ouml;&szlig;e ver&auml;ndern\" title=\"Textgr&ouml;&szlig;e ver&auml;ndern\" width=\"23\" height=\"22\" border=\"0\"></a> ";
		}

		//> Leerzeichen?
		if($boolButton['fnFormatList'] == 1 || $boolButton['fnFormatEmph'] == 1 || $boolButton['fnFormatColor'] == 1 || $boolButton['fnFormatSize'] == 1) {
			$BBCodeButtons .= "&nbsp;";
		}

		//> 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&uuml;gen\" title=\"Hyperlink einf&uuml;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&uuml;gen\" title=\"eMail hinzuf&uuml;gen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
		}

		//> Leerzeichen?
		if($boolButton['fnFormatUrl'] == 1 || $boolButton['fnFormatEmail'] == 1) {
			$BBCodeButtons .= "&nbsp;";
		}

		//> 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&ouml;he des Bildes ist auf ".$cfgInfo['fnImgMaxBreite']."x".$cfgInfo['fnImgMaxHoehe']." eingeschr&auml;nkt und w&uuml;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&uuml;gen\" title=\"Bild einf&uuml;gen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
		}
		
		//> Bild hochladen!
		global $allgAr;
		if($allgAr['forum_usergallery'] == 1 && loggedin() && $boolButton['fnFormatImgUpl'] == 1 ) {
			$BBCodeButtons .= "<a href=\"javascript:usergalleryupl();\" title=\"Bild in Usergallery hochladen und einf&uuml;gen\"><img src=\"include/images/icons/bbcode/bbcode_imageupl.png\" alt=\"Bild hochladen\" 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&ouml;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&uuml;gen\" title=\"Screen einf&uuml;gen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
		}

		//> Leerzeichen?
		if($boolButton['fnFormatImg'] == 1 || $boolButton['fnFormatScreen'] == 1) {
			$BBCodeButtons .= "&nbsp;";
		}

		//> 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&uuml;gen\" title=\"Zitat einf&uuml;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&uuml;r den Klapptext an.')\"><img src=\"include/images/icons/bbcode/bbcode_ktext.png\" alt=\"Klappfunktion hinzuf&uuml;gen\" title=\"Klappfunktion hinzuf&uuml;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&auml;hlen.\\nAkzeptiert werden: Google, YouTube, MyVideo und GameTrailers')\"><img src=\"include/images/icons/bbcode/bbcode_video.png\" alt=\"Video einf&uuml;gen\" title=\"Video einf&uuml;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']})\"><img src=\"include/images/icons/bbcode/bbcode_flash.png\" alt=\"Flash einf&uuml;gen\" title=\"Flash einf&uuml;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 .= "&nbsp;";
		}

		//> 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&uuml;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 getBBCodeButtons_shbox(){
    $abf = db_query('SELECT * FROM `prefix_shbox_config` WHERE id="1"');
    $conf = db_fetch_assoc($abf);
    $linkcolor = $conf['linkcolor'];
    
    //> 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/shbox/shbox.js"></script>';

    //> Fett Button!
    if($boolButton['fnFormatB'] == 1) {
            $BBCodeButtons .= "<a href=\"javascript:bbcode_insert_shbox('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_shbox('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> ";
    }

    //> Unterstrichen Button!
    if($boolButton['fnFormatU'] == 1) {
            $BBCodeButtons .= "<a href=\"javascript:bbcode_insert_shbox('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> ";
    }

    //> Url Button!
    if($boolButton['fnFormatUrl'] == 1) {
            $BBCodeButtons .= "<a href=\"javascript:bbcode_insert_with_value_shbox('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&uuml;gen\" title=\"Hyperlink einf&uuml;gen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
    }

    //> Smiley Button!
    if($boolButton['fnFormatSmilies'] == 1) {
            $BBCodeButtons .= "<a href=\"javascript:moreSmiliesshbox();\"><img src=\"include/images/icons/bbcode/bbcode_smilies.png\" alt=\"Bild einf&uuml;gen\" title=\"Bild einf&uuml;gen\" width=\"23\" height=\"22\" border=\"0\"></a> ";
    }

    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);
}
?>

// ShBox3.2 (c)2006-2009 by NF-PROJEKT
// Geänderte Kopie vom Orginalen bbcode.js : Copyright by: Manuel Staechele

	var tagOpen = '[';
	var tagClos = ']';
	var tagEnde = '/';


function bbcode_insert_into_textarea_shbox(text){
	//var formular = document.forms[bbcode_textarea[0]].elements[bbcode_textarea[1]];
        var formular = document.forms['shbox'].elements['xtxt'];
	formular.focus();

	// Nachschauen, an welche Position cursor gesetzt werden soll
	if (bbcode_insert_into_textarea_shbox.arguments.length != 1) {
		var pos = bbcode_insert_into_textarea_shbox.arguments[1];
	} else {
		var pos = -1;
	}

	// Für UserAgent IE.
	if(typeof document.selection != 'undefined')  {
	 	// Einfügen der Tags.
		var range = document.selection.createRange();

		if(text != null && text !='') {
			range.text = text;
			range.select();
			/* Anpassen der Cursorposition */
    		range = document.selection.createRange();
   	  		if (pos == -1) {
   	  			range.moveStart('character', 0);//text.length);
   	  		} else {
				range.move('character', (text.length * -1) + pos);
			}

			range.select();
		}
	// Für UserAgents die auf Gecko basieren.
	} else if(typeof formular.selectionStart != 'undefined') {
	 	// Einfügen der Tags
		var start = formular.selectionStart;
    	var end = formular.selectionEnd;

		if(text != null && text !='') {
			formular.value = formular.value.substr(0, start) + text + formular.value.substr(end);
			/* Anpassen der Cursorposition */
    		var pos = start + (pos == -1 ? text.length : pos);

			formular.selectionStart = pos;
    		formular.selectionEnd = pos;
		}
	}
}

function bbcode_get_selection_shbox(){
	//var formular = document.forms[bbcode_textarea[0]].elements[bbcode_textarea[1]];
        var formular = document.forms['shbox'].elements['xtxt'];
	formular.focus();
	var text;
	// Für UserAgent IE.
	if(typeof document.selection !='undefined')  {
	 	// Einfügen der Tags.
		var range = document.selection.createRange();
		text = range.text;
	// Für UserAgents die auf Gecko basieren.
	} else if(typeof formular.selectionStart != 'undefined') {
	 	// Einfügen der Tags
		var start = formular.selectionStart;
    	var end = formular.selectionEnd;
    	text = formular.value.substring(start, end);
    }
    return text;
}

// BB-Code ins Textarea einfügen.
function bbcode_insert_shbox(tag, boxtext) {
	//var formular = document.forms[bbcode_textarea[0]].elements[bbcode_textarea[1]];
        var formular = document.forms['shbox'].elements['xtxt'];
	formular.focus();

	// Tags Definieren
	var begin_tag = "["+tag+"]";
	var end_tag = "[/"+tag+"]";
	var list_x = '';
	var list_text = '';
    var prompt_box;

	var selection = bbcode_get_selection_shbox();

	// Box ausgeben mit Anforderung.
	if(tag == 'list') {
		if(selection == null || selection =='') {
			while ( list_x != null ) {
  				list_x = prompt (boxtext);
  				if ( list_x != null ) {
    					list_text = list_text + "[*]" + list_x + "\n";
  				}
			}
			if ( list_text != '' ) {
 				prompt_box = list_text;
			}
		} else {
			while ( list_x != null ) {
 				list_x = prompt (boxtext,selection);
 				if ( list_x != null ) {
   					list_text = list_text + "[*]" + list_x + "\n";
 				}
			}

			if ( list_text != '' ) {
 				prompt_box = list_text;
			}
		}
	} else {
		if(selection == null || selection == '') {
			prompt_box = prompt(boxtext, "");
		} else {
			bbcode_insert_into_textarea_shbox(begin_tag + selection + end_tag);
			return;
		}
	}
	if (prompt_box == null || prompt_box == '') {
		prompt_box = '';
		var pos = tag.length + 2;
	} else {
		var pos = -1;
	}
	bbcode_insert_into_textarea_shbox(begin_tag + prompt_box + end_tag, pos);
}

// BBCode mit Werte Einfügen.
function bbcode_insert_with_value_shbox(tag, boxtext1, boxtext2) {
	var default_text;
	var selection = bbcode_get_selection_shbox();
	var prompt_text1;
	var prompt_text2;
	var prompt_box;
	var pos = -1;

	// Alternativen Text für die Box ausgeben.
	if(tag == 'url') {
		default_text = "http://";
	} else if(tag == 'size') {
		default_text = "12"; 
	} else {
		default_text ="";  
	}

	// Box ausgeben mit Anforderung.
	if(selection == null || selection =='') {
		prompt_text1 = prompt(boxtext1, "");
	} else {
		prompt_text1 = prompt(boxtext1, selection);
	}

	// Ausgabe der 2ten Box.
	prompt_text2 = prompt(boxtext2, default_text);

	// Überprüfen ob prompt_text1 nicht Leer ist. Wenn True dann Format [XXX=XXX]XXX[/XXX]
	if(prompt_text1 != null && prompt_text1 !='') {
		if(prompt_text2 != null && prompt_text2 !='') {
			prompt_box = "["+tag+"="+prompt_text2+"]"+prompt_text1+"[/"+tag+"]";
		}
	// Wenn promptText1 Leer ist dann Format [XXX]XXX[/XXX] (Aber nur bei Gewünschten Tags)
	} else if(tag == 'url' || tag == 'email') {
		if(prompt_text2 != null && prompt_text2 !='') {
			prompt_box = "["+tag+"]"+prompt_text2+"[/"+tag+"]";
		} else {
			prompt_box = "["+tag+"][/"+tag+"]";
			pos = tag.length + 2;
		}
	}

	if (prompt_box == null) {
		prompt_box = '';
		pos = tag.length + 2;
	}
	bbcode_insert_into_textarea_shbox(prompt_box, pos);
}

// BBCode mit vielen Werten einfügen
/* options = {tag:[question, default],  <-- tag:['Pfad zu ...', '']
	option1:[question, default],    <-- Bsp width:['Geben sie die Höhe an', 300]
	option2:[question, default],
	}
*/
function bbcode_insert_with_multiple_values_shbox(tag, options){
	var text = '['+tag;
	var endtext = '';
	for (var i in options) {
		if (i == 'tag') {
			var endtext = prompt(options[i][0], options[i][1]) + '[/' + tag + ']';
		} else {
			var prompt_text = prompt(options[i][0], options[i][1]);
			if (prompt_text.length > 0) {
				text = text + ' ' + i + '=\'' + prompt_text + '\'';
			}
		}
	}
	bbcode_insert_into_textarea_shbox(text + ']' + endtext);
}

// BBCode mit Werte Einfügen (andere Art).
function bbcode_insert_with_value_2_shbox(tag, boxtext1, boxtext2) {

	var default_text;

	// Alternativen Text für die Box ausgeben.
	if(tag == 'video') {
		default_text = "YouTube";
	} else {
		default_text ="";
	}

	var prompt_text1;
	var prompt_text2;
	var prompt_box;

	// Box ausgeben mit Anforderung.
	prompt_text2 = prompt(boxtext2, default_text);

	var selection = bbcode_get_selection_shbox();

	// Ausgabe der 2ten Box.
	if(selection == null || selection == '') {
		prompt_text1 = prompt(boxtext1, "");
	} else {
		prompt_text1 = prompt(boxtext1, selection);
	}

	// Überprüfen ob prompt_text1 nicht Leer ist. Wenn True dann Format [XXX=XXX]XXX[/XXX]
	if(prompt_text1 != null && prompt_text1 !='') {
		if(prompt_text2 != null && prompt_text2 !='') {
			prompt_box = "["+tag+"="+prompt_text2+"]"+prompt_text1+"[/"+tag+"]";
		}
	// Wenn promptText1 Leer ist dann Format [XXX]XXX[/XXX] (Aber nur bei Gewünschten Tags)
	} else if(tag == 'url' || tag == 'email') {
		if(prompt_text2 != null && prompt_text2 !='') {
			prompt_box = "["+tag+"]"+prompt_text2+"[/"+tag+"]";
		}
	}

	// Wenn insText nicht Leer ist dann Tags Einfügen.
	if(prompt_box != null && prompt_box !='') {
		bbcode_insert_into_textarea_shbox(prompt_box);
	}
}

// Simples einfügen der Tags :-)
function bbcode_code_insert_shbox(tag, color) {
    
    // Tags Definieren
	if(color == "0"){
		var begin_tag = "["+tag+"]";
		var end_tag = "[/"+tag+"]";
		if (document.form.code != undefined) {
			document.form.code.options['0'].selected = true; // selectiert immer <Code einfügen>
		}
	} else if (tag == "code" || tag == "php" || tag == "html" || tag == "css") {
		var prompt_text1 = prompt("Format: dateiname;5  (Im Beispiel ist die Startzeile 5)\nSie können hier nun einen Dateinamen und eine Startzeile mit angeben,\nwobei die Startzeile optional ist und auch das komplette Feld leer gelassen werden kann.)","");
		if (prompt_text1 != "" && prompt_text1 != null) {
			var begin_tag = "["+tag+"="+prompt_text1+"]";
		} else {
			var begin_tag = "["+tag+"]";
		}
		var end_tag = "[/"+tag+"]";
	} else {
		var begin_tag = "["+tag+"="+color+"]";
		var end_tag = "[/"+tag+"]";
	}
	var selection = bbcode_get_selection_shbox();
	if (selection.length != undefined && selection.length != 0) {
		var pos = -1;
	} else {
		var pos = begin_tag.length;
	}
	bbcode_insert_into_textarea_shbox(begin_tag + selection + end_tag, pos);
}

function bbcode_code_insert_codes_shbox(tag) {
	if (tag != "0") {
		bbcode_code_insert_shbox(tag,'1');
	}
}

/////////////////////////////////////////////////////////////////////////////////////////////////
  
function smilies(name) {
  aTag = tagOpen + name + tagClos;
  eTag = tagOpen + tagEnde + name + tagClos;
  smilies_insert ( aTag, eTag );
}

function smilies_insert(aTag,eTag) {
  
  var input = document.forms['sform'].elements['xtxt'];
  input.focus();
  /* für Internet Explorer */
  if(typeof document.selection != 'undefined') {
    /* Einfügen des formatierungscodes */
    var range = document.selection.createRange();
    var insText = range.text;
    range.text = aTag + insText + eTag;
    /* Anpassen der Cursorposition */
    range = document.selection.createRange();
    if (insText.length == 0) {
      range.move('character', -eTag.length);
    } else {
      range.moveStart('character', aTag.length + insText.length + eTag.length);      
    }
    range.select();
  }
  /* für neuere auf Gecko basierende Browser */
  else if(typeof input.selectionStart != 'undefined')
  {
    /* Einfügen des formatierungscodes */
    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);
    input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
    /* Anpassen der Cursorposition */
    var pos;
    if (insText.length == 0) {
      pos = start + aTag.length;
    } else {
      pos = start + aTag.length + insText.length + eTag.length;
    }
    input.selectionStart = pos;
    input.selectionEnd = pos;
  }
  /* für die übrigen Browser */
  else
  {
    /* Abfrage der Einfügeposition */
    var pos = input.value.length;
    
    /* Einfügen des formatierungscodes */
    var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
    input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
  }
}

function smilies_liste () {
  var x = '';
  var l = '';
  while ( x != null ) {
    x = prompt ("Um die Liste zu beenden 'Abbrechen' eingeben");
    if ( x != null ) {
      l = l + "[*]" + x + "\n";
    }
  }
  if ( l != '' ) {
    l = "[list]\n" + l + "[/list]"; 
    smilies_insert ( l, '' );
  }
}

function  putt ( towrite ) {
  smilies_insert ( towrite, '' );
}

function check() {
	if ( sform.xtxt.value == '' ) {
	  alert ( 'Bis jetzt wurde wohl noch nichts eingegeben, also schnell nachholen!' );
	  return false;
	} else {
	  if ( sform.pageName.value == '' ) {
	    alert ( 'Bitte gib noch schnell einen Namen ein!' );
	    return false;
	  } else {
	    return true;
	  }
	}
  
}


	var dhtmlgoodies_tooltip = false;
	var dhtmlgoodies_tooltipShadow = false;
	var dhtmlgoodies_shadowSize = 4;
	var dhtmlgoodies_tooltipMaxWidth = 200;
	var dhtmlgoodies_tooltipMinWidth = 100;
	var dhtmlgoodies_iframe = false;
	var tooltip_is_msie = (navigator.userAgent.indexOf('MSIE')>=0 && navigator.userAgent.indexOf('opera')==-1 && document.all)?true:false;
	function showTooltip(e,tooltipTxt)
	{
        var bodyWidth = Math.max(document.body.clientWidth,document.documentElement.clientWidth) - 20;
                    if(!dhtmlgoodies_tooltip){
			dhtmlgoodies_tooltip = document.createElement('DIV');
			dhtmlgoodies_tooltip.id = 'dhtmlgoodies_tooltip';
			dhtmlgoodies_tooltipShadow = document.createElement('DIV');
			dhtmlgoodies_tooltipShadow.id = 'dhtmlgoodies_tooltipShadow';
			document.body.appendChild(dhtmlgoodies_tooltip);
			document.body.appendChild(dhtmlgoodies_tooltipShadow);

			if(tooltip_is_msie){
				dhtmlgoodies_iframe = document.createElement('IFRAME');
				dhtmlgoodies_iframe.frameborder='5';
				dhtmlgoodies_iframe.style.backgroundColor='#FFFFFF';
				dhtmlgoodies_iframe.src = '#';
				dhtmlgoodies_iframe.style.zIndex = 100;
				dhtmlgoodies_iframe.style.position = 'absolute';
				document.body.appendChild(dhtmlgoodies_iframe);
			}
		}

		   dhtmlgoodies_tooltip.style.display='block';
 	           dhtmlgoodies_tooltipShadow.style.display='block';
if(tooltip_is_msie)dhtmlgoodies_iframe.style.display='block';

		var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
		if(navigator.userAgent.toLowerCase().indexOf('safari')>=0)st=0;
		var leftPos = e.clientX + 10;

		dhtmlgoodies_tooltip.style.width = null;	// Reset style width if it's set
		dhtmlgoodies_tooltip.innerHTML = tooltipTxt;
		dhtmlgoodies_tooltip.style.left = leftPos + 'px';
		dhtmlgoodies_tooltip.style.top = e.clientY + 10 + st + 'px';


		dhtmlgoodies_tooltipShadow.style.left =  leftPos + dhtmlgoodies_shadowSize + 'px';
		dhtmlgoodies_tooltipShadow.style.top = e.clientY + 10 + st + dhtmlgoodies_shadowSize + 'px';

		if(dhtmlgoodies_tooltip.offsetWidth>dhtmlgoodies_tooltipMaxWidth){	/* Exceeding max width of tooltip ? */
			dhtmlgoodies_tooltip.style.width = dhtmlgoodies_tooltipMaxWidth + 'px';
		}

		var tooltipWidth = dhtmlgoodies_tooltip.offsetWidth;
		if(tooltipWidth<dhtmlgoodies_tooltipMinWidth)tooltipWidth = dhtmlgoodies_tooltipMinWidth;


		dhtmlgoodies_tooltip.style.width = tooltipWidth + 'px';
		dhtmlgoodies_tooltipShadow.style.width = dhtmlgoodies_tooltip.offsetWidth + 'px';
		dhtmlgoodies_tooltipShadow.style.height = dhtmlgoodies_tooltip.offsetHeight + 'px';

		if((leftPos + tooltipWidth)>bodyWidth){
			dhtmlgoodies_tooltip.style.left = (dhtmlgoodies_tooltipShadow.style.left.replace('px','') - ((leftPos + tooltipWidth)-bodyWidth)) + 'px';
			dhtmlgoodies_tooltipShadow.style.left = (dhtmlgoodies_tooltipShadow.style.left.replace('px','') - ((leftPos + tooltipWidth)-bodyWidth) + dhtmlgoodies_shadowSize) + 'px';
		}

		if(tooltip_is_msie){
			dhtmlgoodies_iframe.style.left = dhtmlgoodies_tooltip.style.left;
			dhtmlgoodies_iframe.style.top = dhtmlgoodies_tooltip.style.top;
			dhtmlgoodies_iframe.style.width = dhtmlgoodies_tooltip.offsetWidth + 'px';
			dhtmlgoodies_iframe.style.height = dhtmlgoodies_tooltip.offsetHeight + 'px';

		}

	}

	function hideTooltip()
	{
		dhtmlgoodies_tooltip.style.display='none';
		dhtmlgoodies_tooltipShadow.style.display='none';
		if(tooltip_is_msie)dhtmlgoodies_iframe.style.display='none';
	}

//ShBox V3.2.0
//getXMLHTTP
function AjaxShBox() {
  var result = false;
  if( typeof XMLHttpRequest != "undefined" ) {
    result = new XMLHttpRequest();
  } else {
    try {
        result = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            result = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (ie) {}
    }
  }
  if (typeof netscape != 'undefined' && typeof netscape.security !=
      'undefined') {
      try {
          netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
      }
      catch (e) {
      }
  }
	return result;
}

 //Fetch entries of the shoutbox
function fetch(){
	var timestamp = new Date().getTime();
	xmlget = AjaxShBox();
	//xmlget.overrideMimeType('text/xml; charset=ISO-8859-1');
	xmlget.open("GET", "index.php?shbox=fetch");
	xmlget.onreadystatechange = function(){
		if ( xmlget.readyState == 4 && xmlget.responseText) {
				if( document.getElementById("shoutbox").innerHTML != xmlget.responseText){
					var eintraege = xmlget.responseText.split("||||");
					var show = "";
					for(var i = 0; i < eintraege.length; i++){
						var things = eintraege[i].split("|||");
						if(things[0]!="" && things[1]!="" && things[2]!=""){
						show = show+'<span>'+things[0]+'</span><br />';
						}
					}
					document.getElementById("shoutbox").innerHTML = show;
				}
		}
	}
	xmlget.send(null);
	return true;
}

<?php
#   Copyright by Manuel Staechele
#   Support www.ilch.de


defined ('main') or die ( 'no direct access' );

class tpl
{
	var $parts;
	var $keys;
	var $lists;
	var $lang;
    var $ort;

	function tpl ($file, $ort = 0) {

		$this->parts = array();
		$this->keys  = array();
		$this->lists = array();
		$this->lang  = array();
        $this->ort   = $ort;
        $this->keys['__BBCodeButtons__'] = getBBCodeButtons();  //BBCode2.0 Buttons
        $this->keys['__BBCodeButtons_shbox__'] = getBBCodeButtons_shbox();  //BBCode2.0 Buttons Shoutbox

		# file bearbeiten, weil file auch ohne .htm angegeben werden kann.
    if ( ($ort != 3) AND (substr ( $file, -4 ) != '.htm') ) {
      $file .= '.htm';
    }

    # ort 0 = include/templates, ort 1 = include/admin/templates
    # bei ort 0 wird ausserdem gecheckt ob das template
    # evtl. im ordner include/design/DESIGN/templates liegt.
    # ort = 2 das template kommt von der design classe der pfad ist ab include
    # ort = 3 das template ist schon in der Variable $file geladen
    $design = $this->get_design ();
    if ( $this->ort == 0 ) {
      if ( file_exists ('include/designs/'.$design.'/templates/'.$file) ) {
				$file = 'include/designs/'.$design.'/templates/'.$file;
      } else {
        $file = 'include/templates/'.$file;
      }
    } elseif ( $this->ort == 1 ) {
      $file = 'include/admin/templates/'.$file;
    } elseif ( $this->ort == 2 ) {
      $file = 'include/'.$file;
    }elseif ( $this->ort == 3 ) {
      $inhalt = $file;
    }

	  if ($ort != 3){
      $inhalt = implode("", file($file) );
		}

		global $lang;
		$this->lang = $lang;
		$inhalt = $this->replace_lang($inhalt);

		$inhalt = $this->replace_list($inhalt);
		$this->parts = explode ( '{EXPLODE}', $inhalt );
	}


	function get_design () {
	  if ( file_exists('include/designs/'.$_SESSION['authgfx'].'/index.htm')) {
		  return ( $_SESSION['authgfx'] );
		} elseif ( file_exists('include/designs/ilchClan/index.htm')) {
		  return ( 'ilchClan' );
		} else {
		  $od = opendir('include/designs');
			while ( $f = readdir($od) ) {
			  if ( file_exists('include/designs/'.$f.'/index.htm')) {
				  return ( $f );
				  break;
				}
			}
			closedir($od);
		}
	}

	function replace_lang ( $var ) {
		$lang_zwischenspeicher = array();
		preg_match_all ("/\{_lang_([^\{\}]+)\}/" , $var , $lang_zwischenspeicher);
    foreach ( $lang_zwischenspeicher[1] as $v ) {
      if (empty($this->lang[$v])) { $this->lang[$v] = str_replace('_', '', $v); }
      $var = str_replace('{_lang_'.$v.'}',$this->lang[$v],$var);
    }
		return ( $var );
	}

	function replace_list ( $var ) {
		$zwischenspeicher = array();
		preg_match_all ("/\{_list_([^\{\}]+)\}/" , $var , $zwischenspeicher);
    foreach ( $zwischenspeicher[1] as $v ) {
			list ( $key , $val ) = explode('@',$v);
		  $this->lists[$key] = $val;
			$var = str_replace('{_list_'.$v.'}','{'.$key.'}',$var);
    }
		return ( $var );
	}

	function list_get ( $key , $ar ) {
	  $zwischenspeicher = $this->lists[$key];
	  krsort($ar);
    foreach ( $ar as $k => $v ) {
		  $i = $k + 1;
		  $zwischenspeicher = str_replace('%'.$i,$v,$zwischenspeicher);
		}
		return ($zwischenspeicher);
	}

	function list_exists ( $key ) {
	  if ( isset ( $this->lists[$key] ) ) {
		  return ( true );
		} else {
		  return ( false );
		}
	}

	function list_out ( $key , $ar ) {
	  echo $this->list_get ( $key , $ar );
	}

	function set ($k , $v) {
		#$this->keys[$k] = unescape($v);
		$this->keys[$k] = $v;
	}

	function set_ar ($ar) {
		foreach ($ar as $k => $v) {
		  #$this->keys[$k] = unescape($v);
			$this->keys[$k] = $v;
		}
	}

	function set_ar_out ( $ar , $pos ) {
	  $this->set_ar($ar);
		$this->out($pos);
	}

	function set_out ( $k , $v , $pos ) {
	  $this->set($k , $v);
		$this->out($pos);
	}

	function set_ar_get ( $ar , $pos ) {
	  $this->set_ar($ar);
		return ($this->get($pos));
	}

	function set_get ( $k , $v , $pos ) {
	  $this->set($k , $v);
		return ( $this->get($pos));
	}

	function del ($k) {
	  unset ($this->keys[$k]);
	}

	function del_ar ($ar) {
	  foreach ($ar as $k => $v) {
		  unset ($this->keys[$k]);
		}
	}

  function parse_if_do ($tr) {
    if ($tr[1] == 'SESSION_AUTHRIGHT') {
        $this->keys[$tr[1]] = $_SESSION['authright'];
    }
    if (isset($this->keys[$tr[1]])
      AND (
           ($tr[2] == '==' AND $this->keys[$tr[1]] == $tr[3])
        OR (($tr[2] == '!=' OR $tr[2] == '<>') AND $this->keys[$tr[1]] != $tr[3])
        OR ($tr[2] == '<=' AND $this->keys[$tr[1]] <= $tr[3])
        OR ($tr[2] == '>=' AND $this->keys[$tr[1]] >= $tr[3])
        OR ($tr[2] == '<' AND $this->keys[$tr[1]] < $tr[3])
        OR ($tr[2] == '>' AND $this->keys[$tr[1]] > $tr[3])
      )

    ) {
      return ($tr[4]);
    } elseif (isset($this->keys[$tr[1]]) AND isset($tr[6])){
      return ($tr[6]);
    }
    return ('');
  }

  function parse_if ($pos) {
    $toout = $this->parts[$pos];

    $toout = preg_replace_callback ("/\{_if_\{([^\}]+)\}(==|!=|<>|<|>|<=|>=)'([^']+)'\}(.*)(\{_else_\}(.*))?\{\/_endif\}/Us", array(&$this, 'parse_if_do') , $toout);

    return ($toout);
  }

	function get ($pos) {
	  $toout = $this->parse_if($pos);

    mt_srand((double)microtime()*1000000);
    $z = '##@@'.mt_rand().'@@##';

    foreach ($this->keys as $k => $v) {
      $toout = str_replace('{'.$k.'}','{'.$z.$k.'}',$toout);
    }

    foreach ($this->keys as $k => $v) {
      $toout = str_replace( '{'.$z.$k.'}' , $v , $toout );
		}
		return ($toout);
	}

	function out ($pos) {
	  echo $this->get ($pos);
	}


  /*
  @ Diese Funktion war mal eingebaut
  ich denke aber wenn jemand die seite
  suchmaschienen optimieren will, dann
  sollte er schon soviel ahnung haben es selber
  hinzubekommen. diese funktion kann aber dabei helfen!

  ... ansonsten wird es von mir sicher mal einen mod
  geben der die aufgabe uebernimmt!

  diese funktion kann nicht einfach freigeschaltet (auskommentiert) werden
  sie hat dann ueberhaupt keine auswirkung ;)...

  function giveback ($c) {
    global $allgAr;
    # diese funktion gibt den inhalt aus.
    # damit kann der inhalt nochmal nachbereitet werden.
    # pruefen ob alle ?... durch ....htm ersetzt werden sollen
    # wenn ja tun und return c ;-)
    if ( $allgAr['replace_template_to_html'] == 1 AND ($this->ort == 0 OR $this->ort == 2) ) {
      $c = preg_replace ('%href=\"\?([^\"]+)\"%Uis',"href=\"index.php?\\1\"",$c);
      $c = preg_replace ('%href=\"index.php\?([-0-9A-Z]+)#([a-zA-Z0-9]+)\">%Uis',"href=\"\\1.html#\\2\">",$c);
      $c = preg_replace ('%href=\"index.php\?([-0-9A-Z]+)\">%Uis',"href=\"\\1.html\">",$c);

      $c = preg_replace ('%action=\"\?([^\"]+)\"%Uis',"action=\"index.php?\\1\"",$c);
      $c = preg_replace ('%URL=\?([^\"]+)\"%Uis',"URL=index.php?\\1\"",$c);

    }
    return ( $c );
  }

  */
}


?>

<!--
Script     => ShBox 3.2.1 => V1  &copy by NF-Projekt
Entwickler => WDS NachtWolf / B.Masmann
Seite/Sup. => http://www.nf-projekt.de /
              http://www.wds-wolfsdragoner.de /
         and  http://www.ilch.de
Kontakt    => Webmaster@nf-projekt.de
 -->

<table width="{TABELLEW}%" height="{TABELLEH}" border="0" bgcolor="{TCOLOR}" cellspacing="0" cellpadding="10">
    <tr> 
        <td align="center"> 
            <form action="" method="POST" name="shbox">
                <input type="hidden" name="xdate" value="{DATE}">
                <input type="hidden" name="xip" value="{IPS}">
                <input type="hidden" name="xname" value="{USER}">
                <center>
                    <a href="?user-8" onmouseout="hideTooltip()" onmouseover="showTooltip(event,'Dein Name : {USER} {IP}');return false"><b>{AVATAR}</b></a>
                    {HR}
                    {SMILIES}
                    <br />
                    <textarea name="xtxt" rows="{TXTROWS}" cols="{TXTCOLS}" style="background-color:{TXTCOLOR};overflow:hidden" wrap="virtual"></textarea>
                    {__BBCodeButtons_shbox__}
                    <input type="submit" name="subshbox" value="Wech" style="margin-top:5px; " />
                </center>
            </form>
        </td>
    </tr>
</table>
{EXPLODE}
<!--
Script     => ShBox 3.2.1 => V1  &copy by NF-Projekt
Entwickler => WDS NachtWolf / B.Masmann
Seite/Sup. => http://www.nf-projekt.de /
              http://www.wds-wolfsdragoner.de /
         and  http://www.ilch.de
Kontakt    => Webmaster@nf-projekt.de
 -->

<table width="{TABELLEW}" height="{TABELLEH}" border="0" bgcolor="{TCOLOR}" cellspacing="0" cellpadding="10">
    <tr> 
        <td align="center"> 
            <form action="" method="POST" name="shbox">
                <input type="hidden" name="xdate" value="{DATE}">
                <input type="hidden" name="xip" value="{IPS}">
                <center>
                    {GAST}
                    {HR}
                    {SMILIES}
                    <br />
                    <textarea name="xtxt" rows="{TXTROWS}" cols="{TXTCOLS}" style="background-color:{TXTCOLOR};overflow:hidden" wrap="virtual"></textarea>
                    {__BBCodeButtons_shbox__}
                    {SPAM} <br />
                    <input type="submit" name="subshbox" value="Wech" style="margin-top:5px; " />
                </center>
            </form>
        </td>
    </tr>
</table>

<?php
/*
Script     => ShBox 3.2.2 =>V1  &copy by NF-Projekt
Entwickler => WDS NachtWolf / B.Masmann
Seite/Sup. => http://www.nf-projekt.de /
              http://www.wds-wolfsdragoner.de /
         and  http://www.ilch.de
Kontakt    => Webmaster@nf-projekt.de
*/
defined ('main') or die ( 'no direct access' );

#
##
###
#### ShBox Text ####
function shbox_text($text,$name) {

$abf = db_query('SELECT * FROM `prefix_shbox_config` WHERE id="1"');
$conf = db_fetch_assoc($abf);

$abfU = 'SELECT * FROM prefix_user WHERE name = "'.$name.'"';
$ergU = db_query($abfU);
$rowU = db_fetch_assoc($ergU);

if ($conf['admintext'] == AUS)
{ //1
    if ($conf['gasttext'] == AUS)
    { //2
    echo '<span style="color:'.$conf['textcolor'].';">'.$text.'</span>';
    }//2
    else
    {//3
      if ($rowU['recht'] < -0)
      {//4
      echo '<span style="color:'.$conf['textcolor'].';">'.$text.'</span>';
      }//4
      else
      {//5
      echo '<span style="color:'.$conf['gasttextcolor'].';">'.$text.'</span>';
      }//5
    }//3
}//1
elseif ($conf['admintext'] == AN)
{//6
       if ($conf['gasttext'] == AN)
       {//7
          if ($rowU['recht'] == -9)
          {//8
          echo '<span style="color:'.$conf['admintextcolor'].';">'.$text.'</span>';
          }//8
          elseif ($rowU['recht'] < -0)
          {//9
          echo '<span style="color:'.$conf['textcolor'].';">'.$text.'</span>';
          }//9
          else
          {//10
          echo '<span style="color:'.$conf['gasttextcolor'].';">'.$text.'</span>';
          }//10
       }//7
       else
       {//11
       if ($rowU['recht'] == -9)
          {//12
          echo '<span style="color:'.$conf['admintextcolor'].';">'.$text.'</span>';
          }//12
          else
          {//13
          echo '<span style="color:'.$conf['textcolor'].';">'.$text.'</span>';
          }//13
       }//11
}//6

}

#
##
###
#### ShBox Name ####
function shbox_name($name,$datum) {

$abf = db_query('SELECT * FROM `prefix_shbox_config` WHERE id="1"');
$conf = db_fetch_assoc($abf);

$abfU = 'SELECT * FROM prefix_user WHERE name = "'.$name.'"';
$ergU = db_query($abfU);
$rowU = db_fetch_assoc($ergU);

if ($conf['admincolor'] == AUS)
{ //1
    if ($conf['gastcolor'] == AUS)
    { //2
    echo '<span style="color:'.$conf['namecolor'].';"> '.$datum.' '.utf8_encode($name).' </span></a>';
    }//2
    else
    {//3
      if ($rowU['recht'] < -0)
      {//4
      echo '<span style="color:'.$conf['namecolor'].';"> '.$datum.' '.utf8_encode($name).' </span></a>';
      }//4
      else
      {//5
      echo '<span style="color:'.$conf['gastnamecolor'].';"> '.$datum.' '.utf8_encode($name).' </span></a>';
      }//5
    }//3
}//1
elseif ($conf['admincolor'] == AN)
{//6
       if ($conf['gastcolor'] == AN)
       {//7
          if ($rowU['recht'] == -9)
          {//8
          echo '<span style="color:'.$conf['adminnamecolor'].';"> '.$datum.' '.utf8_encode($name).' </span></a>';
          }//8
          elseif ($rowU['recht'] < -0)
          {//9
          echo '<span style="color:'.$conf['namecolor'].';"> '.$datum.' '.utf8_encode($name).' </span></a>';
          }//9
          else
          {//10
          echo '<span style="color:'.$conf['gastnamecolor'].';"> '.$datum.' '.utf8_encode($name).' </span></a>';
          }//10
       }//7
       else
       {//11
       if ($rowU['recht'] == -9)
          {//12
          echo '<span style="color:'.$conf['adminnamecolor'].';"> '.$datum.' '.utf8_encode($name).' </span></a>';
          }//12
          else
          {//13
          echo '<span style="color:'.$conf['namecolor'].';"> '.$datum.' '.utf8_encode($name).' </span></a>';
          }//13
       }//11
}//6

}

#
##
###
#### ShBox Ausgabe ####
function shbox() {

$abf = db_query('SELECT * FROM `prefix_shbox_config` WHERE id="1"');
$conf = db_fetch_assoc($abf);

$hr = '<hr style="height:0px;border:solid '.$conf['hrcolor'].' 0px;border-top-width: 1px;" />';

$wert = $conf['ausgabe'];
$erg = db_query('SELECT * FROM `prefix_shbox` ORDER BY id DESC LIMIT '.$wert);
while ($row = db_fetch_assoc($erg) ) {

$class = ( $class == $conf['hgcolor2'] ? $conf['hgcolor1'] : $conf['hgcolor2'] );

$text = substr($row['txt'], 0, $conf['textmax']);
$text = BBcode($text);
//$text = preg_replace('/([^\s]{'.$conf['textzeile'].'})(?=[^\s])/',"$1\n", $text);
if($conf['datumzeit'] == JA)
{
$datum = $row['date'];
$name = $row['name'];
}
else
{
$datum = '';
$name = $row['name'];
}
echo '
<table width="'.$conf['tabellewidth'].'%" height="'.$conf['tabelleheight'].'%" border="0" bgcolor="'.$conf['tabellecolor'].'" cellpadding="0" cellspacing="0">
 <tr bgcolor="'.$class.'">
  <td>
   <b>';
$abfU = 'SELECT * FROM prefix_user WHERE name = "'.escape($row['name'],'string').'"';
$ergU = db_query($abfU);
while ($rowU = db_fetch_assoc($ergU)){
?>
<a href="index.php?user-details-<?php echo $rowU['id']; ?>" onmouseout="hideTooltip()" onmouseover="showTooltip(event,' <?php echo $row['date'] ?> ') ;return false"> 
<?php
}
  echo $hr;

shbox_name($name,$datum);
echo '</b><br />';
shbox_text($text,$name);
echo '
  </td>
 </tr>
</table>';
  }
}

#
##
###
#### SMILIES angepasste Kopie vom Orginalen getsmilies() : Copyright by: Manuel Staechele ####
function shboxsmilies () {
$abf = db_query('SELECT * FROM `prefix_shbox_config` WHERE id="1"');
$conf = db_fetch_assoc($abf);
 global $lang;
  $zeilen = $conf['smilieszeile']; $i = 0;
  $b = '<script language="JavaScript" type="text/javascript">function moreSmiliesshbox () { var x = window.open("about:blank", "moreSmiliesshbox", "width=250,height=200,status=no,scrollbars=yes,resizable=yes"); ';
  $a = '';
  $erg = db_query('SELECT emo, ent, url FROM `prefix_smilies`');
          while ($row = db_fetch_object($erg) ) {

  $b .= 'x.document.write ("<a href=\"javascript:opener.putt(\''.addslashes(addslashes($row->ent)).'\')\">");';
  $b .= 'x.document.write ("<img style=\"border: 0px; padding: 5px;\" src=\"include/images/smiles/'.$row->url.'\" title=\"'.$row->emo.'\" ></a>");';
        
// if ($i< $conf['smiliesspalte'])
// {
//   if($i%$zeilen == 0 AND $i <> 0)
//   {
//   $a .= '<br /><br />';
//   }
// $a .= '<a href="javascript:putt(\''.addslashes($row->ent).'\')" onmouseout="hideTooltip()" onmouseover="showTooltip(event,\''.$row->emo.'\');return false">';
// $a .= '<img style="margin: 2px;" src="include/images/smiles/'.$row->url.'" border="0"></a>';
// }
// $i++;
 }
 $b .= ' x.document.write("<br /><br /><center><a href=\"javascript:window.close();\">'.$lang['close'].'</a></center>"); x.document.close(); }</script>';
//   if ($i> $conf['smiliesspalte'])
//   {
//   $a .= '<br /><br /><center><a href="javascript:moreSmiliesshbox();">'.$lang['more'].'</a></center>';
//   }
 $a = $b.$a;
 return ($a);
}
?>

<?php
/*
Script     => ShBox 3.2.2 =>V1   &copy by NF-Projekt FIXED (V1.0)
Entwickler => WDS NachtWolf / B.Masmann
Seite/Sup. => http://www.nf-projekt.de /
              http://www.wds-wolfsdragoner.de /
         and  http://www.ilch.de
Kontakt    => Webmaster@nf-projekt.de
*/
defined ('main') or die ('no direct access');

include ('include/includes/js/shbox/shboxfunc.php');

$abf = db_query('SELECT * FROM `prefix_shbox_config` WHERE id="1"');
$conf = db_fetch_assoc($abf);
echo '
<table width="'.$conf['tabellewidth'].'%" height="" border="0" gcolor="" cellspacing="0" cellpadding="0">
 <tr> 
  <td>
';

$postname = escape($_POST['xname'],'string');
$postnamex = '*GAST*';
//$tags = array('[img]','[url]','[IMG]','[URL]','[/img]','[/url]','[/IMG]','[/URL]','[COLOR]','[/COLOR]','[color]','[/color]','http','www','://');
$tags = array('[img]','[IMG]','[/img]','[/IMG]','[COLOR]','[/COLOR]','[color]','[/color]');
$posttxt = escape($_POST['xtxt'], 'textarea');
$posttxt = str_replace($tags , '', escape($_POST[xtxt],'string'));
$posttxt = strip_tags($posttxt);

if (isset($_POST['subshbox']))
{//Check Submit
if ($posttxt == ''){//Check leeres Textfeld
}//CLT
else
{//CLT
if ( loggedin() )
{//1
  if ( isset($_POST['xtxt']) AND !empty($_POST['xdate']) AND !empty($_POST['xname']) AND !empty($_POST['xip']) )
  {//2
   db_query("INSERT INTO prefix_shbox (`txt`,`date`,`name`,`ip`) VALUES
   ('".$posttxt."', '".escape($_POST[xdate],'string')."', '".$postname."', '".escape($_POST[xip],'string')."')");
   }//2
}//1

else
{//3
$abfs = db_query("SELECT id FROM prefix_user WHERE name = BINARY '".$postname."'");
  if (db_num_rows($abfs) > 0)
  {
    if ($conf['spam'] == AN)
    {//4
    if ($_POST['sz'] == $_POST['xspam'])
      {//5
        if ( isset($_POST['xtxt']) AND !empty($_POST['xdate']) AND !empty($_POST['xname']) AND !empty($_POST['xip']) )
        {//6
         db_query("INSERT INTO prefix_shbox (`txt`,`date`,`name`,`ip`) VALUES
         ('".$posttxt."', '".escape($_POST[xdate],'string')."', '".$postnamex."', '".escape($_POST[xip],'string')."')");
        }//6
      }//5
    }//4
    else
    {//7
      if ( isset($_POST['xtxt']) AND !empty($_POST['xdate']) AND !empty($_POST['xname']) AND !empty($_POST['xip']) )
      {//8
       db_query("INSERT INTO prefix_shbox (`txt`,`date`,`name`,`ip`) VALUES
       ('".$posttxt."', '".escape($_POST[xdate],'string')."', '".$postnamex."', '".escape($_POST[xip],'string')."')");
      }//8
    }//7
  }
  else
  {
    if ($conf['spam'] == AN)
    {//4
      if (escape($_POST['sz'],'string') == escape($_POST['xspam'],'string'))
      {//5
        if ( isset($_POST['xtxt']) AND !empty($_POST['xdate']) AND !empty($_POST['xname']) AND !empty($_POST['xip']) )
        {//6
         db_query("INSERT INTO prefix_shbox (`txt`,`date`,`name`,`ip`) VALUES
         ('".$posttxt."', '".escape($_POST[xdate],'string')."', '".$postname."', '".escape($_POST[xip],'string')."')");
        }//6
      }//5
    }//4
    else
    {//7
      if ( isset($_POST['xtxt']) AND !empty($_POST['xdate']) AND !empty($_POST['xname']) AND !empty($_POST['xip']) )
      {//8
       db_query("INSERT INTO prefix_shbox (`txt`,`date`,`name`,`ip`) VALUES
       ('".$posttxt."', '".escape($_POST[xdate],'string')."', '".$postname."', '".escape($_POST[xip],'strng')."')");
      }//8
    }//7
}//3
  }
}
}
$ILCH_HEADER_ADDITIONS .= '
<link rel="stylesheet" type="text/css" href="include/includes/js/shbox/shbox.css">
<script type="text/javascript" charset="utf-8" src="include/includes/js/shbox/shbox.js"></script>
<script language="JavaScript" type="text/javascript">
window.onload = "fetch()";
interval = window.setInterval("fetch();", '.$conf['setinterval'].');
</script>
';

$datum = date("$conf[datumformat]");
$hr = '<hr style="height:0px;border:solid '.$conf['hrcolor'].' 0px;border-top-width: 1px;" />';

if ($conf['ip'] == JA)
{
$ips = $_SERVER['REMOTE_ADDR'];
$ip = '<br />Deine IP : '.$_SERVER['REMOTE_ADDR'].'';
}
else
{
$ip = '';
}

srand ((double) microtime() * 1000000);
$sz = rand(999,10000);

if ($conf['spam'] == AN)
{
$spam = '
<table border="0" bgcolor="'.$conf['tabellecolor'].'" cellpadding="0" cellspacing="0">
 <tr>
  <td align="center">
   <input type="hidden" name="sz" value="'.$sz.'" />
   '.$sz.'&nbsp;&nbsp;&nbsp;<input name="xspam" size="4" maxlength="4" value="" />
  </td>
 </tr>
</table>
        ';
}
else
{
$spam = '';
}

if($conf['smilies'] == JA)
{
$smilies = shboxsmilies();
}
else
{
$smilies = '';
}

if ( loggedin() )
{
$abf = 'SELECT id, name, avatar FROM prefix_user WHERE name = "'.escape($_SESSION['authname'],'string').'"';
$erg = db_query($abf);
$row = db_fetch_object($erg); 
{
$tabellew = $conf['tabellewidth'];
$tabelleh = $conf['tabelleheight'];

if ($conf['anzeige'] == 0)
{
  if ( file_exists($row->avatar))
  {
  $avatar = '<img src="'.$row->avatar.'" border="0" height="'.$conf['avatarx'].'" width="'.$conf['avatary'].'">';
  }
  else
  {
  $avatar = $_SESSION['authname'];
  }
}
else
{
$avatar = $_SESSION['authname'];
}
}

$tpl = new tpl ('shbox');
$ar = array(
            'txt' => $text  = escape($_POST['txt'], 'textarea'),
            'CLASS' => $class,
            'SMILIES' => $smilies,
            'IP' => $ip,
            'IPS' => $ips,
            'USER' => $_SESSION['authname'],
            'AVATAR' => $avatar,
            'HR' => $hr,
            'DATE' => $datum,
            'TXTROWS' => $conf['textrows'],
            'TXTCOLS' => $conf['textcols'],
            'TXTCOLOR' => $conf['textgroundcolor'],
            'TCOLOR' => $conf['tabellecolor'],
            'TABELLEH' => $tabelleh,
            'TABELLEW' => $tabellew
            );
$tpl->set_ar_out($ar, 0);
}
elseif ($conf['gastrecht'] == AN)
{
$gast = ''.$conf['nametext'].'<br /><input name="xname" size="'.$conf['namesize'].'" maxlength="'.$conf['namelänge'].'" style="background-color:'.$conf['namegroundcolor'].'" value="GAST" />';
$tpl = new tpl ('shbox');
$ar = array(
            'txt' => $text  = escape($_POST['txt'], 'textarea'),
            'CLASS' => $class,
            'SMILIES' => $smilies,
            'IP' => $ip,
            'IPS' => $ips,
            'GAST' => $gast,
            'HR' => $hr,
            'DATE' => $datum,
            'SPAM' => $spam,
            'TXTROWS' => $conf['textrows'],
            'TXTCOLS' => $conf['textcols'],
            'TXTCOLOR' => $conf['textgroundcolor'],
            'TCOLOR' => $conf['tabellecolor'],
            'TABELLEH' => $tabelleh,
            'TABELLEW' => $tabellew
            );
$tpl->set_ar_out($ar, 1);
}
else
{
echo '<center>'.$conf['nametext'].'</center><br />';
echo $hr;
}

if ($conf['reload'] == AN)
{
echo '<div id="shoutbox">
       <center><img src="include/images/load.gif" alt="Load" id="shoutbox" border="0" /></center>
      </div>';
}
else
{
echo shbox();
}
echo '
<table width="'.$conf['tabellewidth'].'%" height="'.$conf['tabelleheight'].'%" border="0" bgcolor="'.$conf['tabellecolor'].'" align="center" cellpadding="0" cellspacing="0">
 <tr>
  <td>
   <center><b><a href="index.php?shbox-archiv">ARCHIV</a></b></center>
  </td>
 </tr>
</table>

   </td>
  </tr>
 </table>';
?>

zuletzt geändert von Outi77 am Mi, 22. Okt 2014 - 16:47