anpera.net
http://anpera.homeip.net/phpbb3/

Admintool für das Cache-File System von Eliwood
http://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=4497
Seite 1 von 1

Autor:  Linus [ So 27 Apr, 2008 16:54 ]
Betreff des Beitrags:  Admintool für das Cache-File System von Eliwood

Ich hab seit einiger Zeit das Cache-File System von Eliwood eingebaut welches die account-Tabelle der Datenbank um das Textfeld output erleichtert (noch mal vielen Dank an Eliwood für diesen Hack und auch an Rikkarda dafür dass sie ihn hier vorgestellt hat) und ich war es irgendwann leid die Cachefiles längst gelöschter User von Hand zu entfernnen. Aus diesem Grund ist der Cachecleaner enstanden.
Der Einbau macht natürlich nur sinn wenn bei euch ebenfalls die Spieleroutputs nach Eli's System in Dateinen ausgelagert werden und gestaltet sich äußerst simpel. Einfach in der superuser.php verlinken.

$this->bbcode_second_pass_code('', '<?php

/*****************************************************************
* *
* Cache-Files löschen *
* für alle die das Cache-File-System von Eliwood nutzen *
* Idee und Programmierung von Linus für alvion-logd.de/logd/ *
* im Dezember 2007 *
* *
******************************************************************/

require_once "common.php";
isnewday(2);

page_header("Überflüssige Cache-Files löschen");

function analysis1(){
$i=0;
foreach(glob("cache/*.txt") as $filename){
$cachefile[$i]['0']=substr($filename,7,strlen($filename)-11);
$cachefile[$i]['1']=0;
$i++;
}
return $cachefile;
}

function analysis2(){
$i=0;
$sql="SELECT `acctid` FROM `accounts`";
$result=db_query($sql);
while ($row = db_fetch_assoc($result)) {
$accts[$i]=(int)$row['acctid'];
$i++;
}
return $accts;
}

$out="`bHier kannst du unnütze Cache-Files löschen.`b`n`n";
switch($_GET['op']){
case "":
addnav("Cache-Analyse","cache_cleaner.php?op=analyse");
break;

case "deleteall":
$cachefile=array();
$cachefile=analysis1();
extract($cachefile);

$accts=array();
$accts=analysis2();
extract($accts);

$i=0;
foreach($cachefile as $key => $value){
if(!in_array((int)$value['0'],$accts)){
$file="cache/c".$value['0'].".txt";
unlink($file);
$i++;
}
}
$out.="$i Cache-Files gelöscht!`n`n";
addnav("Zurück");
addnav("Zurück","cache_cleaner.php");
break;

case "analyse":
if(isset($_GET['acctid'])){
$file="cache/c".$_GET['acctid'].".txt";
unlink($file);
}

$i=0;
$cachefile=array();
$cachefile=analysis1();
extract($cachefile);
$anzahl_cache=count($cachefile);

$accts=array();
$accts=analysis2();
extract($accts);
$anzahl_accts=count($accts);

$fehl=0;
$gut=0;
$i=0;

foreach($cachefile as $key => $value){
if(in_array((int)$value['0'],$accts)){
$cachefile[$i]['1']=1;
$gut++;
} else {
$fehl++;
}
$i++;
}

$out.="Anzahl Cache-Files gesamt: ".$anzahl_cache."`nCache-Files von existierenden Spielern: ".$gut."`nCache-Files von gelöschten Spielern: ".$fehl."`n`n";
$out.="<table><tr><th colspan='2'`^`bCache-Files von gelöschten Spielern:`b</th></tr>";
$out.="<form action='cache_cleaner.php?op=analyse&act=del' method='POST'>";
for($i=0;$i<$anzahl_cache;$i++){
if($cachefile[$i]['1']==0){
$out.="<tr><td>{$cachefile[$i]['0']}</td>";
$out.="<td><a href='cache_cleaner.php?op=analyse&act=del&acctid={$cachefile[$i]['0']}'>Löschen</a></td></tr>";
addnav("","cache_cleaner.php?op=analyse&act=del&acctid={$cachefile[$i]['0']}");
}
}

if($fehl!=0){
addnav("Alle löschen");
addnav("Aufräumen","cache_cleaner.php?op=deleteall");
} else {
$out.="<tr><td>Es gibt zur Zeit keine unnützen Cache-Files!</td></tr>";
}
$out.="</table>";
addnav("Zurück");
addnav("Zurück","cache_cleaner.php");

break;
}

$out.="<div align='center'><a href=http://www.alvion-logd.de/logd/ target='_blank'>&copy;`^ von Linus im Dezember 2007`0</a></div>";
output($out,true);

addnav("G?Zurück zur Grotte","superuser.php");
addnav("W?Zurück zum Weltlichen","village.php");

page_footer();
?>')

viel Spass damit
Linus

Autor:  Tidus [ Sa 27 Sep, 2008 09:57 ]
Betreff des Beitrags:  Re: Admintool für das Cache-File System von Eliwood

hey ^^

habe mir gaerade das cache system eingebaut, minimiert die accs tabelle ja sehr schön :)

aber wollte fragen zum editor, kann man das nich irgendwie noch in die funktion von logd einbauen wenn gelöscht wird? also das es das file mit löscht?

mfg Tidus ^^

Autor:  Linus [ Sa 27 Sep, 2008 18:52 ]
Betreff des Beitrags:  Re: Admintool für das Cache-File System von Eliwood

Tidus hat geschrieben:
aber wollte fragen zum editor, kann man das nich irgendwie noch in die funktion von logd einbauen wenn gelöscht wird? also das es das file mit löscht?


Die Funktion in LoGD gibt es wohl nicht. Ich denke eher du meinst ob man das nicht automatisieren kann? Klar, kein Problem! Du musst nur darauf achten das an allen Stellen bei denen ein account gelöscht werden kann auch die entsprechende Cache-Datei gelöscht wird. setnewday.php, User-Editor oder über die Einstellungen des Spielers (wenn dort der Löschbutton frei gegeben ist).

Autor:  Tidus [ So 28 Sep, 2008 10:47 ]
Betreff des Beitrags:  Re: Admintool für das Cache-File System von Eliwood

ja das meinte ich :) aber ich steig durch den code nicht so durch :o aber ich bekomms bestimmt irgendwie hin ^^ dachte nur falls du das schon umgesetzt hättest, dann hätte ich da nicht pfuschen müssen *Fg ^^

Autor:  Linus [ So 28 Sep, 2008 21:51 ]
Betreff des Beitrags:  Re: Admintool für das Cache-File System von Eliwood

Hab ich nicht so umgesetzt, und ich denke auch nicht das ich mich daran machen werde. Die toten Cache-Dateien nehmen nicht wirklich viel Platz weg und die Performance beeinflussen sie gar nicht. Mir reicht's durchaus die mal hin und wieder mit zwei Klicks in der Grotte löschen zu können. ;)

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/