##################################################################################
#  - EXTBOARD - (sep. 2007)
# Anleitung zum Update des Standard phpfusion - Forums (v6.01.11)
# Basierend auf GPL2, copyright by ZOC, 2007
# 
# Das Paket entstand unter Zusammenarbeit von: 
# alcazar, silvermoon, weedorbeat, wibix und ZOC (gozoc) 
# Dank auch an die anderen Helfer, sowie die grafische Hilfe von emblinux u. firemike. 
# DIESES "ExtBoard" IST NUR FR ERFAHRENE USER UND LEUTE MIT PHP-KENNTNISSEN!! 
# Ein normales Update, ist nicht mehr mglich, da auch DB nderungen gemacht werden. 
# 
# Als erstes eine Datensicherung machen: von den Files, sowie der Datenbank !! 
# Dann kann es losgehen ... 
##################################################################################

Das aw_forum_panel von wibix muss installiert sein !!! (www.wibix.de)
Wenn nicht, solltest Du das jetzt installieren, weil es viele spez. Funktionen mitbringt.
Einige Erweiterungen, ergeben sich mit den Dateien aus dem Packet.

#
#-----[ Kopieren ]------------------------------------------
#
Kopiere alle Ordner/Dateien wie sie im Paket sind in Dein phpFusion-Verzeichnis.
berschreibe vorhandene Dateien.

#
#-----[ ADD-ONS ]------------------------------------------
#
bitte installiere in Deiner Administration (Infusionen):

Forum Poll
Nach der Installation des Forumpolls solltest Du dieses gleich
konfigurieren. Da kann einiges eingestellt werden.
Der Forenpoll ist von "xandra" in der Version 1.23 (http://beta.phpfusion-mods.com)

# FILE-EDIT ######################################################################
#
#-----[ FFNE ]------------------------------------------
#
maincore.php

#
#-----[ FINDE ]------------------------------------------
#
define("THEMES", BASEDIR."themes/");

#
#-----[ DANACH EINFGEN ]------------------------------------------
#
define("IMAGES_R", IMAGES."ranks/");

#
#-----[ FINDE ]------------------------------------------
#
// Parse smiley bbcode into HTML images
function parsesmileys($message) {
	$smiley = array(
		"#\:\)#si" => "<img src='".IMAGES."smiley/smile.gif' alt='smiley'>",
		"#\;\)#si" => "<img src='".IMAGES."smiley/wink.gif' alt='smiley'>",
		"#\:\(#si" => "<img src='".IMAGES."smiley/sad.gif' alt='smiley'>",
		"#\:\|#si" => "<img src='".IMAGES."smiley/frown.gif' alt='smiley'>",
		"#\:o#si" => "<img src='".IMAGES."smiley/shock.gif' alt='smiley'>",
		"#\:p#si" => "<img src='".IMAGES."smiley/pfft.gif' alt='smiley'>",
		"#b\)#si" => "<img src='".IMAGES."smiley/cool.gif' alt='smiley'>",
		"#\:d#si" => "<img src='".IMAGES."smiley/grin.gif' alt='smiley'>",
		"#\:@#si" => "<img src='".IMAGES."smiley/angry.gif' alt='smiley'>"
	);
	foreach($smiley as $key=>$smiley_img) $message = preg_replace($key, $smiley_img, $message);
	return $message;
}

#
#-----[ ERSETZE MIT ]------------------------------------------
#
// Parse smiley bbcode into HTML images
function parsesmileys($message)
{
	$query = mysql_query("select * from ".DB_PREFIX."smilies") or die(mysql_error());
	while($row = mysql_fetch_object($query))
	{
		$img="<img src=".IMAGES."smiley/".$row->smile_url.">";
		$message =str_replace($row->code,$img,$message);
	}

	return $message;
}

#
#-----[ FINDE ]------------------------------------------
#
// Show smiley icons in comments, forum and other post pages
function displaysmileys($textarea) {
	$smiles = "";
	$smileys = array (
		":)" => "smile.gif",
		";)" => "wink.gif",
		":|" => "frown.gif",
		":(" => "sad.gif",
		":o" => "shock.gif",
		":p" => "pfft.gif",
		"B)" => "cool.gif",
		":D" => "grin.gif",
		":@" => "angry.gif"
	);
	foreach($smileys as $key=>$smiley) $smiles .= "<img src='".IMAGES."smiley/$smiley' alt='smiley' onClick=\"insertText('$textarea', '$key');\">\n";
	return $smiles;
}

#
#-----[ ERSETZE MIT ]------------------------------------------
#
// Show smiley icons
function displaysmileys($textarea)
{
	$querya = mysql_query("select * from ".DB_PREFIX."smilies WHERE view='1' LIMIT 0,10") or die(mysql_error());
	while($rowa = mysql_fetch_object($querya))
	{
		$smiles="$smiles <img src='".IMAGES."smiley/$rowa->smile_url' onClick=\"insertText('$textarea', '$rowa->code ');\">\n";
	}

	return $smiles;
}

#
#-----[ DANACH NOCH EINFGEN ]------------------------------------------
#
// Show more smiley icons
function displaysmileys_more($textarea)
{
	$querya = mysql_query("select * from ".DB_PREFIX."smilies WHERE view='1' LIMIT 10,99") or die(mysql_error());
	while($rowa = mysql_fetch_object($querya))
	{
		$smiles="$smiles <img src='".IMAGES."smiley/$rowa->smile_url' onClick=\"insertText('$textarea', '$rowa->code ');\">\n";
	}

	return $smiles;
}

#
#-----[ FINDE ]------------------------------------------
#
// Parse bbcode into HTML code
function parseubb($text) {

$text = preg_replace('#\[flash width=([0-9]*?) height=([0-9]*?)\]([^\s\'\";:\+]*?)(\.swf)\[/flash\]#si', '<object classid=\'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\' codebase=\'http://active.macromedia.com/flash6/cabs/swflash.cab#version=6,0,0,0\' id=\'\3\4\' width=\'\1\' height=\'\2\'><param name=movie value=\'\3\4\'><param name=\'quality\' value=\'high\'><param name=\'bgcolor\' value=\'#ffffff\'><embed src=\'\3\4\' quality=\'high\' bgcolor=\'#ffffff\' width=\'\1\' height=\'\2\' type=\'application/x-shockwave-flash\' pluginspage=\'http://www.macromedia.com/go/getflashplayer\'></embed></object>', $text);

#
#-----[ DANACH EINFGEN ]------------------------------------------
#
// googlevideo
$text = preg_replace('#\[googlevideo\](.*?)videoplay(.*?)\[/googlevideo\]#si', '[googlevideo]\1googleplayer.swf\2[/googlevideo]', $text);
$text = preg_replace('#\[googlevideo\](.*?)\[/googlevideo\]#si', '<object type=\'application/x-shockwave-flash\' id=\'VideoPlayback\' width=\'464\' height=\'380\' data=\'\\1\'><param name=movie value=\'\\1\'><param name=\'wmode\' value=\'transparent\'><param name=\'quality\' value=\'high\'><param name=\'bgcolor\' value=\'#ffffff\'></object>', $text);

// clipfish
$text = preg_replace('#\[clipfish\](.*?)player.php\?(.*?)\[/clipfish\]#si', '[clipfish]\1videoplayer.swf?as=0&\2[/clipfish]', $text);
$text = preg_replace('#\[clipfish\](.*?)\[/clipfish\]#si', '<object type=\'application/x-shockwave-flash\' id=\'VideoPlayback\' width=\'464\' height=\'388\' data=\'\\1\'><param name=movie value=\'\\1\'><param name=\'wmode\' value=\'transparent\'><param name=\'quality\' value=\'high\'><param name=\'bgcolor\' value=\'#999999\'></object>', $text);

// myvideo.de
$text = preg_replace('#\[myvideo\](.*?)watch(.*?)\[/myvideo\]#si', '[myvideo]\1movie\2[/myvideo]', $text);
$text = preg_replace('#\[myvideo\](.*?)\[/myvideo\]#si', '<object type=\'application/x-shockwave-flash\' id=\'VideoPlayback\' width=\'464\' height=\'380\' data=\'\\1\'><param name=movie value=\'\\1\'></object>', $text);

// youtube	
$text = preg_replace('#\[youtube\](.*?)watch\?(.*?)\[/youtube\]#si', '[youtube]\1\2[/youtube]', $text);
$text = preg_replace('#\[youtube\](.*?)=(.*?)\[/youtube\]#si', '[youtube]\1/\2[/youtube]', $text);
$text = preg_replace('#\[youtube\](.*?)\[/youtube\]#si', '<object width="464" height="380"><param name="movie" value="\1"></param><embed src="\1" type="application/x-shockwave-flash" width="464" height="380"></embed></object>', $text);

// font size
$text =  preg_replace('#\[size=(4|6|8|10|12|14|16|18|20|22|24|26|28|30|32|34|36|38|40|42)\](.*?)\[/size\]#si', '<span style=\'font-size:\1\'>\2</span>', $text);

#
#-----[ FINDE ]------------------------------------------
#
$text = preg_replace("#\[img\]((http|ftp|https|ftps)://)(.*?)(\.(jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]#sie","'<img src=\'\\1'.str_replace(array('.php','?','&','='),'','\\3').'\\4\' style=\'border:0px\'>'",$text);

#
#-----[ ERSETZE MIT ]------------------------------------------
#
// Image work begin
    $maxwidth = 400; // change if you want
    $pattern = "#\[img\](.*?)\[/img\]#si";
    $images = array();
    $count = preg_match_all($pattern, $text, $images);
    if($count) {
    	for($i=0; $i<$count; ++$i) {
		$url = $images[1][$i];
		$data = @getimagesize($url);
		if($data!==false) {
			$width = $data[0];
			if($width < $maxwidth) {
				$text = str_replace($images[0][$i], "<img src='".$url."' style='border:0px'>", $text);
			} else {
				$text = str_replace($images[0][$i], "<a href='".$url."' target='_blank'  title='Click for fullsize'><img src='".$url."' style='border:0px; max-width:".$maxwidth."px'></a>", $text);
			}
		} else {
			$text = str_replace($images[0][$i], "<a xhref='".$url."' target='_blank'><img src='../images/image_not_found.png' width='50' border='0' title='Bild nicht verfgbar / Pic not available'></a>",$text);
		    }
		}
    }
// Image work end

#
#-----[ FINDE ]------------------------------------------
#
	for ($i=0;$i < $qcount;$i++) $text = preg_replace('#\[quote\](.*?)\[/quote\]#si', '<div class=\'quote\'>\1</div>', $text);
	for ($i=0;$i < $ccount;$i++) $text = preg_replace('#\[code\](.*?)\[/code\]#si', '<div class=\'quote\' style=\'width:400px;white-space:nowrap;overflow:auto\'><code style=\'white-space:nowrap\'>\1<br><br><br></code></div>', $text);

#
#-----[ ERSETZE MIT ]------------------------------------------
#
	for ($i=0;$i < $qcount;$i++) $text = preg_replace('#\[quote\](.*?)\[/quote\]#si', '<table class=\'quote\' border=\'0\' width=\'500\'><tr><th class=\'button\' align=\'left\'><b>Quote:</b></th></tr><td><div class=\'small\' style=\'max-width:500px;overflow:auto\'>\1<br></div></td></tr></table>', $text);
	for ($i=0;$i < $ccount;$i++) $text = preg_replace('#\[code\](.*?)\[/code\]#si', '<table class=\'quote\' border=\'0\' width=\'500\'><tr><th class=\'button\' align=\'left\'><b>Code:</b></th></tr><td><div class=\'quote\' style=\'max-width:500px;max-height:500px;overflow:auto\'>\1<br></div></td></tr></table>', $text);

#
#-----[ DANACH EINFGEN ]------------------------------------------
#
include INCLUDES.'geshi_bbcode_include.php';

#
#-----[ WICHTIG ]------------------------------------------
#
Alle nderungen der function parseubb() mssen vor

	$text = descript($text,false);
	return $text;
	
eingefgt werden!!

#
#-----[ DB-update SQL ]-------------------------------------
#
Nun ein sehr wichtiger Schritt (ich hoffe Du hast nen DB Dump ;-)

fhre das update.php Script aus Deinem phpfusion Verzeichnis aus.
Sollte alles ok sein, prima! und Du kannst weitermachen.
Wenn nicht, muss man schauen, warum was nicht ging. ggf. im Forum melden.

Nach erfolgreichem update, bitte die update.php wieder lschen!

#
#-----[ HINWEISE ]------------------------------------------
#
Im viewthread.php verwende ich fr die Schnellantwort opensidex.
Du kannst aber auch das schnere opentablex verwenden, wenn Du es in Dein
verwendetes Theme kopierst. Nimm dazu die Funktion aus dem Area69 - theme.php.

Im viewthread.php kannst Du dann hiermit aktivieren, wie du mchtest, ist vorbereitet:

//opentablex("<center><b>".$locale['512']."</b></center>",off);
opensidex("<center><b>".$locale['512']."</b></center>",off);

Themes und Grafiken:
Es liegen 3 Themes dabei und es wird auf "Area69" im Standard gestaltet.
Es gibt aber spezielle Grafiken die nur in diesen Themes drin sind.
Gemeint sind der post-delete-Button und die prev/next-Thread Symbole (Pfeile).
Diese mssten auch im eigenen Theme reinkopiert oder angepasst werden.

# Anzeige des "Global Moderators" im Profil
#
#-----[ FFNE ]------------------------------------------
#
profile.php

#
#-----[ FINDE ]------------------------------------------
#
<td align='right' class='tbl2'>".getuserlevel($data['user_level'])."</td>

#
#-----[ ERSETZE MIT ]------------------------------------------
#
<td align='right' class='tbl2'>".getuserlevel($data['user_level']);
if($data['user_global_mod'] == '1') echo " (Global Moderator)";
echo "</td>

#
# D O K U ########################################################################
#
In der Datei /include/forum_functions_include.php koennen einige Dinge 
eingestellt werden, zum Teil selbsterklrend oder kommentiert.
Bitte prfen und ggf. einstellen:

$threads_per_page = 10;
$posts_per_page=15;
$rowstart2=0;
$showadminmods=false; // Show Admins as Mods in the Forum and Forenadmin
$rule_pageid = "0";  // The Page ID for viewpage.php (example: viewpage.php?page_id=$link_to_rights)
$picview = 0; // show picattaches as thumb, "1" show thumbs

----------------------------------------------------------------
FORENADMINISTRATION:
Moderatoren, kann man in einem Forum auch nur zuweisen, wenn entsprechende Mitglieder
berhaupt Zutritt zu dem jeweiligen Forum haben, posten und antworten drfen. Sonst gibts keine auszuwhlen.
Die Forenadministration ist stark erweitert und besitzt teilweise eine eigene
Logik und "Intelligenz". Bitte in Ruhe damit beschftigen.
Vorne in der bersicht bekommt man einen guten berblick, wer was wo darf.

Gruppen:
Sind die Rechte eines Forums speziell auf "Gruppe" gestellt, so drfen auch nur zugewiesene
Gruppen entsprechend drauf zugreifen ... Weitere Rechte werden in dem Bereich "Gruppenrechte"
zugeteilt.

Foren Einstellungen (System-Admin):
Dort kann nun die "Group Colors" aktiviert und eingestellt werden.
Es sind schon Farben voreingestellt, knnen aber natrlich angepasst werden.

GlobalMods:
Diese werden in den Einstellungen, der Mitglieder-Administration des jeweiligen Users aktiviert.

-----------------------------------------------------------------
Die neue Image-Funktion in der maincore.php sollte in den meisten Fllen laufen.
Gibt es Probleme und werden immer broken-links angezeigt, darf die Seite kein "allow_url_fopen".
Dann solltest Du vielleicht die alte Funktion verwenden, obwohl die dann ja auch nicht perfekt luft ;-)

Die Videolinks (neue Funktionen in der maincore.php) sollten mit den blichen URLs gehen.
Es gibt aber, gerade bei Clipfish, immer mal Links die nicht korrekt sind, bitte probieren.

Beispiel-Links die gehen:
Youtube: http://www.youtube.com/watch?v=FClmtowd6XE
GoogleVideo: http://video.google.com/videoplay?docid=-3389980029353435416
MyVideo: http://www.myvideo.de/watch/1244115
Clipfish: http://www.clipfish.de/player.php?videoid=MjYxMnwyMg%3D%3D&cat=1
(es geht natrlich auch ohne &cat=1)


So ... das erstmal im groben ... weitere Fragen im Forum des ZOC Portals.
Viel Erfolg und Spass mit dem Extboard, wnscht das Team von ZOC.