Karten X Uhrzeitabhängig verändern

Hier wird über Freewar-Styles und -Designs geredet. Man kann eigene Styles vorstellen oder Fragen zu den CSS-Styles stellen.
Morphium
Feuerwolf
Beiträge: 90
Registriert: 14. Apr 2009, 17:08

Karten X Uhrzeitabhängig verändern

Beitrag von Morphium » 30. Dez 2009, 11:11

Ich habe gehört, dass das das X auf der Karte angeblich zu verschiedenen Tageszeiten ( z.B. Tag/Nacht) anders aussehen lassen kann,
also dass es sich durchwechselt.
Jetzt wollte ich erstmal wissen ob das stimmt und wenn ja, wie dass denn genau funktioniert.

Danke für die Bemühungen.

Benutzeravatar
kaot
Vulkandämon
Beiträge: 7254
Registriert: 19. Jan 2005, 23:42
Kontaktdaten:

Re: Karten X Uhrzeitabhängig verändern

Beitrag von kaot » 30. Dez 2009, 14:16

ich würde mal behaupten mithilfe von PHP... wie genau kann dir bestimmt einer von den PHP-Jüngern hier sagen ;)
Bazinga!

Nils
Teidam
Beiträge: 162
Registriert: 10. Mai 2009, 12:29

Re: Karten X Uhrzeitabhängig verändern

Beitrag von Nils » 30. Dez 2009, 14:19

Du erstellst dir ein PHP script welches jenach tageszeit verschiedene Bilder ausgeibt. Dabei muss auf den richtigen Haedder geachtet werden. Dann wird dieses PHP script wie in bild per IMG eingebunden. (bez. über den Style)

Nils

Morphium
Feuerwolf
Beiträge: 90
Registriert: 14. Apr 2009, 17:08

Re: Karten X Uhrzeitabhängig verändern

Beitrag von Morphium » 1. Jan 2010, 22:29

Ich habe zwar schon etwas mti php gearbeitet aber, es wäre nett wenn mir einer noch ein bisschen mehr zu diese Script schreiben könnte.
Bin damit sonst total überfordert und würde das aber gerne im Style haben.


Danke

Benutzeravatar
Bombenpflanze
Wächter des Vulkans
Beiträge: 280
Registriert: 2. Apr 2008, 22:50
Wohnort: Kiras Gasthaus - Fruchtsafttheke
Kontaktdaten:

Re: Karten X Uhrzeitabhängig verändern

Beitrag von Bombenpflanze » 2. Jan 2010, 04:08

Ganz banal (sicherlichlich nicht das effektivste) wäre das simple Schema mit Bedinung durch if.
Du fragst ab, welche Uhrzeit es ist und je nach Uhrzeit wird dann per imagecreatefromjpg (oder andres Bildformat) ein von dir vorher zurechtgelegtes Bildchen erstellt/ausgegeben.

Zu Zeit-Funktion gibts hier was und zu Bilderstellung hier.
Your skill in Reading has increased by +1 Point.

Benutzeravatar
Luko
Klauenbartrein
Beiträge: 1615
Registriert: 11. Jan 2006, 13:15

Re: Karten X Uhrzeitabhängig verändern

Beitrag von Luko » 2. Jan 2010, 12:10

Also wie von einigen hier schon angemerkt, ist die technisch einfachste Lösung einfach die Tages-Zeit mit if abzufragen und dann das Bild entsprechend als Variable einzubinden mit

if zeit == abend $tageszeit = abend;
elseif zeit == tag $tageszeit = tag;

Header ("Content-type: image/png");
$img_handle = imageCreateFromPNG("$tageszeit.png");

ImagePng ($img_handle);
ImageDestroy ($img_handle);


Und dann halt entsprechend eine tag.png und eien abend.png zur Verfügung stellen.


ABER:
das ist nur die einfachste Lösung und sollte auf jedem Fall noch auf Performance geprüft werden. Denn hier wird bei jeder aktuallisierung der Map das "Bild" neu erstellt. Ich weiss nicht, ob das vernünftig aussehen wird aber als ich mit einem php-bg im mainframe mal herumgetestet hatte, ging es in die Hose.. was natürlich auch an der Größe liegen kann.

Andere Möglichkeit ist natürlich die Erstellung des Bildes wo anders durchzuführen. zB durch Aufruf eines php-scriptes im banner-frame (aktuallisiert das eigentlich, wenn neue Werbung geladen wird?) oder im geöffnetem Item-Frame.. halt etwas, was regelmäßig aber nicht oft aktuallisiert wird.

Dieses hier aufgerufene php-script ändert dann halt einfach den Namen der Bilder.. also rename x.png zu abend.png udn rename tag.png zu x.png und andersherum.

Dies würde ich (ohne jetzt weiter zu überlegen, wo es mehr sinn machen würde) als bild im Item-Frame einfügen.. halt an einer Stelle, die einmalig und nur geladen wird, sobald das Inventar offen ist. Man müsste zwra noch prüfen wie lange das aktuelle X dann noch gecached wird.. aber so in etwa würde man es glaube ich am schlausten machen.

Natürlich geht es per cronjob oder mit anderen Möglichkeiten noch einfacher aber das gehört dann nimmer zu den Basics, die jeder webspace zur Verfügung stellt.
...

Morphium
Feuerwolf
Beiträge: 90
Registriert: 14. Apr 2009, 17:08

Re: Karten X Uhrzeitabhängig verändern

Beitrag von Morphium » 2. Jan 2010, 20:25

Danke für die Hilfe,
had das Skript soweit fertig.
Jetzt komme ich zu meinem nächsten Punkt.(Ich weiß ich hör mcih hier an wie ein Kleinkind das alles erst erklärt bekommen muss.)
Wie binde ich das ganze in meine css ein?

Danke nochmals.

P.S.: Ich habs grad mal hochgeladen, und das Skript einfach mal so gestartet. Es bringt keinen Fehler, aber es zeigt auch kein Bild an, ich spiel mal ein bisschen am Quelltext rum..

Morphium
Feuerwolf
Beiträge: 90
Registriert: 14. Apr 2009, 17:08

Re: Karten X Uhrzeitabhängig verändern

Beitrag von Morphium » 2. Jan 2010, 20:55

Code: Alles auswählen

<?php
$t = localtime (time(),1);
if (($t['tm_hour']<=20) && ($t['tm_hour']>=6))
{$zeit= tag;}
else
{$zeit= abend;}

if ($zeit == abend)
{$tageszeit = abend;}
  elseif ($zeit == tag)
  {$tageszeit = tag;}
    
Header ("Content-type: image/png");
$img_handle = imageCreateFromPNG("$tageszeit.png");

ImagePng ($img_handle);
ImageDestroy ($img_handle);
 
?>
Das hiert ist mein derzeitiger Quellcode. Kann mri einer sagen wo der Fehler ist? Bin zu doof ihn zu finden.

Morphium
Feuerwolf
Beiträge: 90
Registriert: 14. Apr 2009, 17:08

Re: Karten X Uhrzeitabhängig verändern

Beitrag von Morphium » 2. Jan 2010, 22:42

Hätte auch vlt ne möglichkeit per PHP das ganze so zu gestalten, dass nit immer neu berechnet wird ( is zwar etwas aufwenig aber ein nur eine txt datei mehr.
falls ich das mit dem bild noch hingrieg dann werd ich alles hier drin veröffentlichen.
aber dazu brauch ich erstmal die fakten wie ich das einbinde und wieso da noch kein bild angezeit wird....

Benutzeravatar
Luko
Klauenbartrein
Beiträge: 1615
Registriert: 11. Jan 2006, 13:15

Re: Karten X Uhrzeitabhängig verändern

Beitrag von Luko » 4. Jan 2010, 22:42

also ich weiss nicht warum es bei dir nicht läuft. Ich habe mal deinen Quelltext kopiert (etwa sgekürzt) und in ein php-script bei mir eingefügt.

Code: Alles auswählen

<?php
$t = localtime (time(),1);
if (($t['tm_hour']<=20) && ($t['tm_hour']>=6))
{$zeit= tag;}
else
{$zeit= abend;}

   
Header ("Content-type: image/png");
$img_handle = imageCreateFromPNG("$zeit.png");

ImagePng ($img_handle);
ImageDestroy ($img_handle);

?>
bei mir funktioniert es einwandfrei das Bild anzuzeigen. Du hast deine tag- und abend-datei auch im png-format vorliegen nehme ich an? php funktioniert auf deinem webspace auch?

Wenn ja, poste mal bitte quelltext und link zur php-datei.


Einfügen kannst du das dann mit:

img[src$="user.gif"] { display: block; width: 0; background: url(bild.php); no-repeat; padding-left: 50px; overflow: hidden; }
...

Nils
Teidam
Beiträge: 162
Registriert: 10. Mai 2009, 12:29

Re: Karten X Uhrzeitabhängig verändern

Beitrag von Nils » 5. Jan 2010, 07:29

Ich glaube da fehlen einfach noch anführungszeichen:

Code: Alles auswählen

if (($t['tm_hour']<=20) && ($t['tm_hour']>=6))
{$zeit= "tag";}
else
{$zeit= "abend";}
Wundert mich das es ohne überhaupt geht.

Nils

bwoebi
Administrator
Beiträge: 3438
Registriert: 28. Apr 2008, 19:13

Re: Karten X Uhrzeitabhängig verändern

Beitrag von bwoebi » 5. Jan 2010, 09:04

Die Variable bei ImageCreatefromPNG ist ebenfalls in Anführungszeichen was nicht sein Soll... Schreibt dort ($Zeit.".png"); hin sonst klappt's nicht...
Bogs sind meine Spezialität - Signaturen sind eigentlich doch überflüssig...

Nils
Teidam
Beiträge: 162
Registriert: 10. Mai 2009, 12:29

Re: Karten X Uhrzeitabhängig verändern

Beitrag von Nils » 5. Jan 2010, 09:07

Variablennamen in doppelten anfürungszeichen werden aufgelöst @bwoebi das sollte also gehen.

Nils

bwoebi
Administrator
Beiträge: 3438
Registriert: 28. Apr 2008, 19:13

Re: Karten X Uhrzeitabhängig verändern

Beitrag von bwoebi » 5. Jan 2010, 09:48

Ja, wenn aber hier wird der Punkt als Endung gebraucht und nicht als Trenner...
Und der PHP-Parser versteht das falsch...
Bogs sind meine Spezialität - Signaturen sind eigentlich doch überflüssig...

Benutzeravatar
Luko
Klauenbartrein
Beiträge: 1615
Registriert: 11. Jan 2006, 13:15

Re: Karten X Uhrzeitabhängig verändern

Beitrag von Luko » 5. Jan 2010, 11:55

Bevor ihr streitet und euch so sicher seid, dass es so nicht geht... testet es halt? Das mit den fehlenden Anführungsstrichen war auch mein erster Gedanke... aber ein Test hat mir gezeigt, dass PHP hier wohl erkennt, dass es sich um einen String handelt. Bei mir jedenfalls. Klingt komisch, ist aber so.

bwoebi das stimmt so nicht. PHP erkennt hier schon korrekt, wo die Variable endet. Denn der Punkt innerhalb des strings wird auch als Punkt erkannt und nicht als zusammensetzendes Zeichen wie ausserhalb. Hier liegt also definitiv kein Fehler vor. Ich habe dne unten geposteten quelltext wie gesgat getestet und er tut es problemlos. Kann sein, dass er beim TE wegen der Strings nicht geht aufgrund der php version aber das wäre schon ein Zufall irgendwie, denn bei mir geht es wie gesagt.
...

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste