anpera.net https://anpera.homeip.net/phpbb3/ |
|
Farbcodes in der Datenbank by Eliwood & Serra https://anpera.homeip.net/phpbb3/viewtopic.php?f=44&t=1881 |
Seite 1 von 13 |
Autor: | Eliwood [ So 30 Okt, 2005 15:25 ] |
Betreff des Beitrags: | Farbcodes in der Datenbank by Eliwood & Serra |
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."]/"') |
Autor: | Eliwood [ So 29 Jan, 2006 13:09 ] |
Betreff des Beitrags: | Verschönerung und Bonus |
So. Eine kleine Verschönerung am Code. *Jetzt* sind auch `` erlaubt, d.h., wird zu `, und bei jedem unbekannten Farbtag wird einfach der ` weggenommen. Was ihr tun müsst: Die gesammte Funktion appoencode aus obigem Beitrag mit der alten ersetzen, fertig (Es hat sich nichts an den anderern Funktionen geändert!) Plus: Zufallsfarbe von Devilzimti (Dankeschön) `z verursacht eine Zufällige Farbe, die aber nicht! in den chats erlaubt ist. Viel Spass ![]() |
Autor: | Devilzimti [ So 29 Jan, 2006 14:09 ] |
Betreff des Beitrags: | |
Danke füs nachhelfen Eli ![]() |
Autor: | Kakerlake [ Do 02 Feb, 2006 19:35 ] |
Betreff des Beitrags: | |
SELECT SQL_CACHE * FROM appoencode You have an error in your SQL syntax near 'FROM appoencode' at line 1 ...was ist da jetzt schon wieder schief gelaufen? |
Autor: | Kevz [ Do 02 Feb, 2006 19:43 ] |
Betreff des Beitrags: | |
Entferne mal das "SQL_CACHE". |
Autor: | Kakerlake [ Di 07 Feb, 2006 12:56 ] |
Betreff des Beitrags: | |
die lodge.php ist danach irgendwie verbuggt man kann jetzt den namen nurnoch !!! ganz entfernen !!! undn nicht mehr umfärben |
Autor: | Amerilion [ Di 07 Feb, 2006 20:41 ] |
Betreff des Beitrags: | |
Mmmm, wenn du nun auch noch einen Link zu deiner Source freigeben würdest könnte man dir auch helfen... Das Script geht, ich habs auch... Über den Link zu deiner Source kommt man zu einer 404Error-Site... |
Autor: | Kakerlake [ Mi 08 Feb, 2006 16:28 ] |
Betreff des Beitrags: | |
ups, hatte bei der änderuing der url mist gebaut, source ist jetzt offen |
Autor: | Amerilion [ Sa 11 Feb, 2006 12:04 ] |
Betreff des Beitrags: | |
So hilft das aber noch nichts ![]() Zitat: 03 Feb 2006 - lodge.php — Datei kann nicht angezeigt werden: Spiele und sammle 500 Donationpoints, um dieses Script zu sehen
![]() |
Autor: | Kakerlake [ Sa 11 Feb, 2006 16:41 ] |
Betreff des Beitrags: | |
sorry, hab vergessen den passwortschutz im link zu deaktivieren |
Autor: | Andragor [ Mo 13 Feb, 2006 21:19 ] |
Betreff des Beitrags: | |
Hab ein Problem .... ich finde [url]function appoencode( [...] } [/url] nicht .... kannst du das in nem größeren Zusammenhang posten??? thx |
Autor: | Eliwood [ Mo 13 Feb, 2006 21:22 ] |
Betreff des Beitrags: | |
kishihmen hat geschrieben: Hab ein Problem .... ich finde
[url]function appoencode( [...] } [/url] nicht .... kannst du das in nem größeren Zusammenhang posten??? thx Nein. Du musst "function appoencode(" Suchen, und die ganze Funktion löschen. [...] ist hier ein Platzhalter für alles, was dazwischen ist (Steht so nicht in der Datei selbst) |
Autor: | Drazaar [ Sa 18 Feb, 2006 16:44 ] |
Betreff des Beitrags: | |
$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.="`"; } ') bekomme immer in dieser Zeile einen Fehler if($nestedtags['color']) $output.="</span>"; Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /is/htdocs/wp1037182_J4AY65IMLD/www/test/common.php on line 1080 dabei hab ichs ganz normal rüberkopiert O_o |
Autor: | Eliwood [ Sa 18 Feb, 2006 17:26 ] |
Betreff des Beitrags: | |
Irgendwann stimmt nicht... Da ich den Fehler nich hab, selbst wenn ich das Bruchstück in eine neutrale Datei steck, gibts mr keinen Syntax-Fehler ô_Ò |
Autor: | Drazaar [ Sa 18 Feb, 2006 17:33 ] |
Betreff des Beitrags: | |
Langsam glaube ich, irgendwer oder irgendetwas ist dagegen, dass ich einen lauffähigen Server bekomme! Immer bekommen wir die komischsten Fehler -.- ![]() |
Autor: | Lestat [ Mi 12 Apr, 2006 22:16 ] |
Betreff des Beitrags: | |
Hab das Mod eingebaut (zusammen mit Editor und veränderter Chatvorschau, und bin sehr davon angetan. Allerdings hat mir nicht gefallen, dass in der Dark-Horse-Taverne die "Farbenlehre" beim Barkeeper immer noch statisch ist. Daher hab ich das einfach mal ein wenig verändert. Vielleicht gefällt es ja jemand anders auch noch ![]() öffne special/darkhorse.php suche: [php] }else if($HTTP_GET_VARS[what]=="colors"){ output("Der alte Mann stützt sich auf die Theke.... . . . . . . output("`3 kapiert?`0\" Hier kannst du testen:"); [/php] ersetze mit: [php] }else if($HTTP_GET_VARS[what]=="colors"){ output("Der alte Mann stützt sich auf die Theke. \"`3Scho, du willscht alscho wasch über Farben wischen?`0\""); output(" Du willst gerade antworten, als du gerade noch merkst, daß das eine rhetorische Frage war. "); output("Er fährt fort: \"`3Um farbig tschu sprechen, mache folgendesch. Zuerscht benutsche das ` Tscheichen ",true); output("(Shift und die Taste links neben Backspace), gefolgt von 1, 2, 3 und scho weiter. Jedesch diescher Tscheichen entspricht "); output("einer Farbe. Welchr Tscheichen esch gibt und wie dasch ausschschieht kannscht du hier schehen: `7`n",true); //Mod für Farbcodes in Datenbank $sql = "SELECT `code` FROM appoencode WHERE allowed = '1' AND color IS NOT NULL ORDER BY id"; $result = db_query($sql); output("<table bgcolor='#999999' cellspacing='1' cellpadding='2' align='center'><tr class='trhead'><td>Code</td><td>Farbe</td></tr>",true); $i = 0; while ($row = db_fetch_assoc($result)) { $i++; $code = "`$row[code]"; $color = "`$row[code]"."So sieht diese Farbe aus"; $bgcolor = ($i % 2 == 1 ? "trlight" : "trdark"); output("<tr class='$bgcolor'><td>$code</td><td>$color</td>",true); } output("</table>",true); //Mod Ende output("`3 kapiert?`0\" Hier kannst du testen:"); [/php] Edit: kleine Verbesserung. Danke Eliwood! ![]() |
Autor: | Azalea [ Do 13 Apr, 2006 11:43 ] |
Betreff des Beitrags: | |
Ich komm mal wieder garnicht klar ^^" Hab alles so gemacht, wie es in der Anleitung steht.. und hab ne weiße Seite bekommen. Habs wieder runter genommen und heute nochmal ausprobiert. Doch steht jetzt auf meiner Seite: $this->bbcode_second_pass_code('', 'SELECT SQL_CACHE * FROM appoencode You have an error in your SQL syntax near 'FROM appoencode' at line 1') |
Autor: | Eliwood [ Do 13 Apr, 2006 11:48 ] |
Betreff des Beitrags: | |
Azalea hat geschrieben: Ich komm mal wieder garnicht klar ^^"
Hab alles so gemacht, wie es in der Anleitung steht.. und hab ne weiße Seite bekommen. Habs wieder runter genommen und heute nochmal ausprobiert. Doch steht jetzt auf meiner Seite: $this->bbcode_second_pass_code('', 'SELECT SQL_CACHE * FROM appoencode You have an error in your SQL syntax near 'FROM appoencode' at line 1') SQL_CACHE entfernen. |
Autor: | Azalea [ Do 13 Apr, 2006 13:11 ] |
Betreff des Beitrags: | |
Wenn ich das mache, dann werden keine Farben, Zeilenumbrüche, Zentrierung usw. angezeigt. http://logd.comxtreme.info/01/screen.jpg |
Autor: | Eliwood [ Do 13 Apr, 2006 14:40 ] |
Betreff des Beitrags: | |
Update im ersten Post. Problem sollte nun behoben sein. (Lag wahrscheinlich an den verschiedenen MySQL-Versionen). |
Seite 1 von 13 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |