Vorweg schon ein kleines Beispiel um TekBASE 8 anzupassen. Der jetzige Loginbereich hat ein Hintergrundbild. Dies kann man ganz einfach ersetzen. Will man das Bild entfernen, reicht es Zeile 17 der login_header.tpl zu löschen. Oder man gibt den Kunden, was die Kunden wollen und personalisiert das Ganze.
screenshot-2017-02-06-14-20-03.png
In dieser Anleitung geht es darum, dass jeder Kunde Spiele Wallpaper sieht aber nur zu den Spielen, welche er auch in seinem Kundenbereich verwaltet. Das ganze ist recht simpel aber eure Kunden finden die Idee sicher nett. Kunden die das ganze nicht mögen können dann später auch im Kundenbereich dazu Einstellungen vornehmen.
Wir kopieren die /members/themes/naval/tpl/login_header.tpl, login_box.tpl und login_footer.tpl nach mytekbase/members/tpl. In mytekbase kommt ab der 8ter Version alles rein, was man selbst verändert um nicht an den original Dateien rumspielen zu müssen. Somit werden eure Änderungen auch nicht einfach mit einem Update überschrieben, falls ihr das Häkchen vergesst.
Jetzt öffnen wir die login_header.tpl und ersetzen mit folgendem:
$("#login-body").ezBgResize({img: "mytekbase/members/images/backgrounds/<?php echo $bg_game; ?>.jpg"});
Nun müssen wir noch einen zufälligen Gameserver des Kunden abfragen und fügen diese Zeilen in die login_header.tpl in Zeile 7 ein.
$memstats = $db->sql_fetchrow($db->sql_query("SELECT id FROM ".$prefix."_members WHERE member='".$tekdesk_userinfo[0]."' LIMIT 1"));
$bg_game = $db->sql_fetchrow($db->sql_query("SELECT game FROM ".$prefix."_gameserver WHERE memberid='".$memstats['id']."' ORDER BY RAND() LIMIT 1"));
if (file_exists("mytekbase/members/images/backgrounds/".$bg_game['game'].".jpg")) {
$bg_game = $bg_game['game'];
}else{
$bg_game = "wallpaper";
}
Wir benötigen neben den Spielekürzel.jpg Dateien noch die wallpaper.jpg Datei diese wird geladen, wenn der Kunde zum Beispiel keinen Gameserver hat. Auch diese kopieren wir in das mytekbase/members/images/backgrounds Verzeichnis.
Jetzt wollen wir auch keine langen Ladezeiten, wenn sich das Hintergrundbild, daher listen wir in der login_footer.tpl ALLE Wallpaper in einer ausgeblendeten div Box auf. Danach müssen wir nur noch in der .htaccess den Cache von jpg Dateien aktivieren. Beim ersten Aufruf der Seiten werden dann die Hintergrundbilder zu den einzelnen Spielen geladen und auf dem Rechner des Kunden im Browsercache hinterlegt. Besucht dieser nun morgen, übermorgen oder nächste Woche die Seite, werden die Bilder nicht neu geladen, sondern aus dem Cache genommen. Wir fügen in die login_footer.tpl vor <body></html> eine neue Zeile und dort dann diesen Inhalt ein.
<div style="display:hidden;" >
<?php
$path = "mytekbase/members/images/backgrounds/";
$handle = opendir($path);
while ($file = readdir($handle)) {
if (preg_match("/^([-_0-9a-zA-Z[:space:]]+)([.]{1})jpg$/i",$file)) {
echo '<img src="mytekbase/members/images/backgrounds/'.$file.'">';
}
}
closedir($handle);
?>
</div>
Alles anzeigen
Inhalt der .htaccess zum cachen von Dateien. Wer es nicht für das gesamte TekBASE nutzen will kopiert diese .htaccess einfach in das mytekbase/members Verzeichnis reinkopieren. Somit bleibt beispielsweise das CMS Design und der Adminbereich davon unbeeinflusst
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/html "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
</IfModule>
<ifmodule mod_headers.c>
<filesmatch "\\.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesmatch>
<filesmatch "\\.(css)$">
Header set Cache-Control "max-age=604800, public"
</filesmatch>
<filesmatch "\\.(js)$">
Header set Cache-Control "max-age=216000, private"
</filesmatch>
</ifmodule>
Alles anzeigen
Fertig. Das ganze könnte man auch ausweiten auf Streamserver, ... Aus Lizenztechnischen Gründen können wir keine Wallpaper von z.b. Minecraft verwenden, welche wir gleich mit in die TekBASE Version stecken. Wer möchte, kann gerne Wallpaper via google und co suchen downloaden und uns senden oder hier posten. Wir stellen im Downloadbereich dann alle kostenlos als Packet zur Verfügung, das geht. Dazu bitte Bilder in einer Auflösung von circa 2560x1440 bis 3840x2560. Richtig optimiert sind die Dateien dann nur 200-300KB groß. Siehe Ark.