Wieder was kleines aus Pherae, was aus langeweile entstanden ist...
Vorteile: - Farbcodes & co werden in der Datenbank gespeichert, sind somit einfacher zu Handhaben und zu ändern.
- Für neue Farbcodes muss nicht jedes Template geändert werden.
Nachteile: - Einheitliche Farben für jedes Template, `2 is immer dunkelgrün, und immer genauso dunkelgrün, wie in anderen templates
Geschichte:Version 1:
Jeder Farbcodes wurde beim ersetzen in der Datenbank nachgekuckt.
Nun ja, auffem Dorfplatz warens dann schonma 1000 Querys
Version 2:
Alle Farbcodes werden am Anfang des Scripts im array appeoncode gespeichert.
Die Funktion appoencode greift nun darauf zu, anstatt auf die Datenbank.
Die 1000 Querys entfallen, übrig bleibt noch 1 (!) zusätzlicher Query.
Wichtiges:Copyright der Funktionen Load_Tags und Get_Allowed_Tags dürfen NICHT entfernt werden.
Zusatz in der Funktion appeoncode ist nicht zwingend, da zu lassen, aber erwünscht.
Unbegingt ein BackUp vor dem Einbauen der Dateien machen, ich lehne jegliche Verantwortung über "zerstörte" Scripte ab.
Anfällige Fragen über den Mod
BITTE per Privatnachricht (PN) mir zukommen lassen und nicht den Topic zumüllen, danke.
Achtung:Anleitung kann je nach Modifikation abweichen!
Ob ein Editor folgen wird, ist fraglich, also nervt bitte nicht mit Fragen danach!
So, und nun die Anleitung:
SQL:
$this->bbcode_second_pass_code('', 'CREATE TABLE `appoencode` (
`id` int( 10 ) NOT NULL AUTO_INCREMENT ,
`code` char( 1 ) NOT NULL default '',
`color` varchar( 6 ) default NULL ,
`tag` varchar( 20 ) default NULL ,
`style` tinytext,
`allowed` enum( '0', '1' ) NOT NULL default '1',
PRIMARY KEY ( `id` )
) ENGINE = MYISAM;
--
-- Daten für Tabelle `appoencode`
--
INSERT INTO `appoencode`
VALUES ( 1, '1', '0000B0', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 2, '2', '00B000', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 3, '3', '00B0B0', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 4, '4', 'B00000', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 5, '5', 'B000CC', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 6, '6', 'B0B000', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 7, '7', 'B0B0B0', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 8, '8', 'DDFFBB', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 9, '9', '0070FF', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 10, '!', '0000FF', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 11, '@', '00FF00', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 12, '#', '00FFFF', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 13, '$', 'FF0000', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 14, '%', 'FF00FF', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 15, '^', 'FFFF00', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 16, '&', 'FFFFFF', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 17, ')', '999999', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 18, '~', '222222', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 19, 'Q', 'FF6600', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 20, 'q', 'FF9900', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 21, 'r', 'EEBBEE', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 22, 'R', 'EEBBEE', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 23, 'V', '9A5BEE', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 24, 'v', 'AABBEE', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 25, 'g', 'aaff99', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 26, 'G', 'aaff99', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 27, 'T', '6b563f', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 28, 't', 'F8DB83', NULL , NULL , '1' ) ;
INSERT INTO `appoencode`
VALUES ( 29, 'c', NULL , 'center', NULL , '0' ) ;
INSERT INTO `appoencode`
VALUES ( 30, 'H', NULL , 'span', 'class=''navhi''', '0' ) ;
INSERT INTO `appoencode`
VALUES ( 31, 'b', NULL , 'strong', NULL , '0' ) ;
INSERT INTO `appoencode`
VALUES ( 32, '¬', NULL , 'pre', NULL , '0' ) ;
INSERT INTO `appoencode`
VALUES ( 33, 'i', NULL , 'i', NULL , '0' ) ;
INSERT INTO `appoencode`
VALUES ( 34, 'n', NULL , 'br /', NULL , '0' ) ;')
Öffne common.php
Suche:
$this->bbcode_second_pass_code('', 'function appoencode(
[...]
}')
Ersetze vollständig mit:
$this->bbcode_second_pass_code('', 'function appoencode($data,$priv=false)
{
global $nestedtags,$session,$appoencode;
/* Überarbeitet und verkleinert von Eliwood =D */
$output = "";
while( !(($x=strpos($data,"`")) === false) )
{
$tag=substr($data,$x+1,1);
$append=substr($data,0,$x);
$output.=($priv?$append:HTMLEntities($append));
$data=substr($data,$x+2);
if($tag == "0")
{
if ($nestedtags['color']) $output.="</span>";
unset($nestedtags['color']);
}
elseif($tag == "`")
{
$output.="`";
}
elseif($tag == "z")
{
// Zufällige Farbe - by Devilzimti
$appoencode_s = $appoencode;
shuffle($appoencode_s);
$rand = e_rand(0,count($appoencode_s));
if ($nestedtags['color']) $output.="</span>"; else $nestedtags['color']=true;
$output.="<span style='color: #".$appoencode_s[$rand]['color'].";'>";
}
else
{
if(isset($appoencode[$tag]))
{
$tagrow = $appoencode[$tag];
if(empty($tagrow['color']))
{
if($nestedtags[$tagrow['tag']] && strchr($tagrow['tag']," /")==false)
{
$output.="</".$tagrow['tag'].">";
unset($nestedtags[$tagrow['tag']]);
}
elseif(strchr($tagrow['tag']," /")==true) $output.="<".$tagrow['tag'].">\n";
else
{
$output.="<".$tagrow['tag']." ".$tagrow['style'].">";
$nestedtags[$tagrow['tag']] = true;
}
}
else
{
if ($nestedtags['color']) $output.="</span>"; else $nestedtags['color']=true;
$output.="<span style='color: #".$tagrow['color'].";'>";
}
}
else $output.=$tag;
}
}
if ($priv)
$output.=$data;
else
$output.=HTMLEntities($data);
return $output;
}
function Load_Tags()
{
global $db,$link;
/* (c) 2005 by Eliwood & Serra */
$result = DB_Query("SELECT SQL_CACHE * FROM appoencode",LINK);
$tags = array();
while($row = DB_Fetch_Assoc($result))
{
$tags[$row['code']] = $row;
}
return $tags;
}
function Get_Allowed_Tags()
{
global $appoencode;
/* (c) 2005 by Eliwood & Serra */
while(list($key,$val) = each($appoencode))
{
if($val['allowed'] == true) $list.=$val['code'];
}
return preg_quote($list);
}')
Suche:
$this->bbcode_second_pass_code('', '$link = db_pconnect($DB_HOST, $DB_USER, $DB_PASS) or die (db_error($link));
db_select_db ($DB_NAME) or die (db_error($link));
define("LINK",$link);')
Füge danach ein:
$this->bbcode_second_pass_code('', '$appoencode = Load_Tags();
$appoencode_str = Get_Allowed_Tags();')
Suche:
$this->bbcode_second_pass_code('', '
function viewcommentary($section,$message="Kommentar hinzufügen?",$limit=10,$talkline="sagt") {
global $HTTP_POST_VARS,$session,$REQUEST_URI,$HTTP_GET_VARS, $doublepost;')
Ersetze mit
$this->bbcode_second_pass_code('', 'function viewcommentary($section,$message="Kommentar hinzufügen?",$limit=10,$talkline="sagt") {
global $HTTP_POST_VARS,$session,$REQUEST_URI,$HTTP_GET_VARS, $doublepost,$appoencode_str;')
Suche (Kann abweichen!!!!)
$this->bbcode_second_pass_code('', '$row[comment]=preg_replace("'[`][^123456789!@#$%&QqRr*~^?VvGgTt]'","",$row[comment]);')
Ersetze mit
$this->bbcode_second_pass_code('', '$row[comment]=preg_replace("'[`][^".$appoencode_str."`]'","",$row[comment]);')
Öffe lodge.php
Suche (mehrmals; Kann abweichen!)
$this->bbcode_second_pass_code('', 'preg_replace("/`[^123456789!@#\$%&QqRr*~^?VvGgTtA]/","",$teil);')
ersetze mit
$this->bbcode_second_pass_code('', 'preg_replace("/`[^".$appoencode_str."]/","",$teil);')
Suche
$this->bbcode_second_pass_code('', '"/[`][123456789!@#\$%&QqRr*~^?VvGgTtAaXxEeUuLl£]/"')
Ersetze mit
$this->bbcode_second_pass_code('', '"/[`][".$appoencode_str."]/"')