##################################################################################
#  - EXTBOARD v1.2 - (Feb. 2009)
# Anleitung zum Update des Standard phpfusion - Forums (v6.01.xx)
# Basierend auf GPL2, copyright by ZOC, 2007-2009
# 
# Das Paket entstand aktuell unter Zusammenarbeit von: 
# silvermoon und ZOC (gozoc) basierend auf der Extboard v1.0
# Dank auch an die anderen Helfer wie z.B. emblinux ... etc.
# DIESES "ExtBoard" IST NUR FR ERFAHRENE USER UND LEUTE MIT PHP-KENNTNISSEN!! 
#
# Ein normales Update, ist u.U. nicht mehr mglich, da auch DB nderungen gemacht werden.
# Mit einigem Wissen aber, kann man trotzdem manuell updaten ...
# 
# Als erstes eine Datensicherung machen: von den Files, sowie der Datenbank !! 
# Dann kann es losgehen ... DU MUSST ALS SUPERADMIN EINGELOGGT SEIN !!
##################################################################################

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

#
#+++++++[ UPGRADE ] ++++++++++++++++++++++++++++++++++++++++++++++++
#

### Wenn Du schon das Extboard v.1.1 verwendest, bitte die kleine Anleitung UPGRADE_1.1_1.2.txt lesen ###

Wenn Du das Extboard v1.0 hast, dann erneuere bitte nur den Teil
fr die maincore.php, oder berprfe ob Du das hast:
HINTER die defines (define(".....");) bitte das hinzufgen (oder prfen ob vorhanden):

// zusatz silvermoon
function strip_umlaute ($text) {
	$search = array("","","","","","","","");
	$replace = array("&auml;","&ouml;","&uuml;","&Auml;","&Ouml;","&Uuml;","&szlig;","&euro;");
	$text = str_replace($search, $replace, $text);
	return $text;
}

Und GANZ AM ENDE der maincore.php bitte noch diesen Abschnitt hinzufgen:

// silvermoon
if ($settings['maintenance'] != "1") {
	$cond = ($userdata['user_level'] != 0 ? "'".$userdata['user_id']."'" : "'0' AND online_ip='".USER_IP."'");
	$result = dbquery("SELECT online_user,online_ip,online_lastactive FROM ".$db_prefix."online WHERE online_user=".$cond." LIMIT 1");
	if (dbrows($result) != 0) {
		$result = mysql_unbuffered_query("UPDATE ".$db_prefix."online SET online_lastactive='".time()."' WHERE online_user=".$cond."");
	} else {
		$name = ($userdata['user_level'] != 0 ? $userdata['user_id'] : "0");
		$result = mysql_unbuffered_query("INSERT INTO ".$db_prefix."online (online_user, online_ip, online_lastactive) VALUES ('$name', '".USER_IP."', '".time()."')");
	}
	$result = mysql_unbuffered_query("DELETE FROM ".$db_prefix."online WHERE online_lastactive<".(time()-60)."");
}
// ende


#
#---- FINDE die Funktion parsesmileys and TAUSCHE mit folgender Funktion aus:
#

function parsesmileys($message,$reverse=false) 
{
	$query = mysql_query("SELECT smile_url,code FROM ".DB_PREFIX."smilies") or die(mysql_error());
	while($row = mysql_fetch_object($query))
	{
		if(!$reverse) {
		$img="<img src='".IMAGES."smiley/".$row->smile_url."' alt=''>";
		$message =str_replace($row->code,$img,$message);
		} else {
		$img="<img src='".IMAGES."smiley/".$row->smile_url."' alt=''>";
		$message =str_replace($img,$row->code,$message);	
		$message =str_replace($row->code,$row->code,$message);	
		}
	}
	return $message;
}


Nun fhre folgendes Script als Superadmin aus:
/update/upgrade.php 
You can ignore the other next install steps ...
It could be a good idea to use the original parseubb function.

# ---- Execute this little script in a NEW PANEL, ONLY with preview -----
# (its updating your version number)

$result = dbquery(UPDATE .DB_PREFIX.extboard_settings SET `version` = '1.2');
echo "Version aktualisiert - version is updated ...";

# ---- you may remove the follow files from /includes:
#
/geshi - folder
automatic_linking_include.php
geshi.php
geshi_bbcode_include.php

Anschliessend fhre dann das 
/update/upgrade.php Script aus. (siehe auch unten)
Die anderen Schritte knnen bersprungen werden.
Du kannst aber die Funktion parseubb (in der maincore.php)
in den Urzustand versetzen.
FERTIG.

#+++++++[ UPGRADE FERTIG ] +++++++++++++++++++++++++++++++++++++++++



#
#----- NEUINSTALLATION !!!!! -------------------------------

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

* aw forum panel
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.

* 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

* Forum Ignore (von DwB)
Damit kann man User im Forum ignorieren, und ihre Eintrge werden ausgeblendet.

* Similar Threads (von pirdani)
Blendet im Thread unten evtl. vorhandene hnliche Themen ein.
Ist von uns aber bugfixed, weil noch Fehler drin waren.

* included the highslide feature from http://highslide.com
* included geshi from http://qbnz.com/highlighter/
* included the new parser from Erik Bakker (ubbparser-class)
* included the boxover from Oliver Bryant
----------------------------------------------------------------------------------------------

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

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

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

// zusatz silvermoon
function strip_umlaute ($text) {
	$search = array("","","","","","","","");
	$replace = array("&auml;","&ouml;","&uuml;","&Auml;","&Ouml;","&Uuml;","&szlig;","&euro;");
	$text = str_replace($search, $replace, $text);
	return $text;
}

// silvermoon
if ($settings['maintenance'] != "1") {
	$cond = ($userdata['user_level'] != 0 ? "'".$userdata['user_id']."'" : "'0' AND online_ip='".USER_IP."'");
	$result = dbquery("SELECT online_user,online_ip,online_lastactive FROM ".$db_prefix."online WHERE online_user=".$cond." LIMIT 1");
	if (dbrows($result) != 0) {
		$result = mysql_unbuffered_query("UPDATE ".$db_prefix."online SET online_lastactive='".time()."' WHERE online_user=".$cond."");
	} else {
		$name = ($userdata['user_level'] != 0 ? $userdata['user_id'] : "0");
		$result = mysql_unbuffered_query("INSERT INTO ".$db_prefix."online (online_user, online_ip, online_lastactive) VALUES ('$name', '".USER_IP."', '".time()."')");
	}
	$result = mysql_unbuffered_query("DELETE FROM ".$db_prefix."online WHERE online_lastactive<".(time()-60)."");
}
// ende


#
#-----[ 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,$reverse=false) 
{
	$query = mysql_query("SELECT smile_url,code FROM ".DB_PREFIX."smilies") or die(mysql_error());
	while($row = mysql_fetch_object($query))
	{
		if(!$reverse) {
		$img="<img src='".IMAGES."smiley/".$row->smile_url."' alt=''>";
		$message =str_replace($row->code,$img,$message);
		} else {
		$img="<img src='".IMAGES."smiley/".$row->smile_url."' alt=''>";
		$message =str_replace($img,$row->code,$message);	
		$message =str_replace($row->code,$row->code,$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 '); overlayclose('smiley'); \">\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 ]------------------------------------------
#
Suche folgendes in der Funktion descript:

$text = preg_replace('#(<[^>]+[\\"\'\s])(onmouseover|onmousedown|onmouseup|onmouseout|onmousemove|onclick|ondblclick|onload|xmlns)[^>]*>#iU', ">", $text);

Und lsche das |onclick heraus.


** Solltest Du eigene Zustze in der maincore drin haben, bitte nachtrglich ergnzen **

#-------- maincore.php speichern

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

!! Wenn Du ein Standard-Forum hast, fhre update/INSTALL.PHP aus !!

!! Wenn Du schon ein Extboard (1.0) hast, so fhre update/UPGRADE.PHP 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 das update-Verzeichnis wieder lschen!

#
# H I N W E I S E ############################################################
#

Themes und Grafiken:
Es liegen eigene Themes dabei und es wird auf "Corporate" als Standard geschaltet.
Es gibt 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.

# Wenn gewnscht:
# 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 ###################################################################
#
----------------------------------------------------------------
FORENADMINISTRATION:

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.

Moderatoren:
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.

Ranks/Rnge:
Hier wird nach Postanzahl der Rang zugeordnet, oder es kann auch bestimmten Mitgliedern ein Rang zugeordnet werden.

Wichtige nderung!! 
Die allgemeinen Forensettings bzw. Extboard Settings, 
sind nun unter der Forenadministration zu finden. Also unter Content-Admin -> Foren -> "Foren Einstellungen"
Dort kann nun vieles konfiguriert werden. Der Standard, wie auch die erweiterten Funktionen. Einfach mal ansehen.

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

-----------------------------------------------------------------
Das parsen und die Bilder werden nun vollstndig ber einen separaten Parser erledigt.
Sollte nun nahezu perfekt arbeiten. Es kann aber zu kleineren Anzeige"fehlern" im IE
fhren, das liegt aber am IE, da dieser nicht W3C sicher ist. Wir empfehlen den Firefox.

Die Videolinks 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)


HINWEIS: in der viewthread.php wurde fr die Schnellantwort die Funktion opentablex() verwendet.
WEnn Du keine Schnellantwort siehst, verwende einfach die Funktion opensidex() oder fge Deinem
theme.php die bentigte Funktion hinzu.


Viel Erfolg und Spass mit dem Extboard v1.2, 
wnschen ZOC und Silvermoon. 
