Heutiges Datum auslesen/abfragen

18.04.2016 19:49 (zuletzt bearbeitet: 18.04.2016 20:00)
avatar  Eru
#1 Heutiges Datum auslesen/abfragen
avatar
Eru
Mitglied

Hajo,

ich möchte gerne im Forenübersicht-Template bei den Foren abfragen, wie lange der letzte Beitrag in einem Forum her ist, und das dann in einer if-Verschachtelung benutzen. Das benötigte Skelett sähe dann etwa so aus:
{{forum:lastchange... <48 Stunden.true}} ....blablabla
{{forum:lastchange... <48 Stunden.else}}{{forum:lastchange... <92 Stunden.true}} ....blablabla
{{forum:lastchange... <92 Stunden.else}}{{forum:lastchange... <184 Stunden.true}} ....blablabla
{{forum:lastchange... <184 Stunden.else}} ....blablabla

... ich glaub so in etwa gestalten sich if/elseif/elseif/elseif-Konstruktionen in Templates. Bei der Abfrage wie lange der letzte Beitrag her ist weiß ich nicht so recht ob und wie das funktioniert. Lastchange selbst liefert ja so eine Zahl zurück: 1456947242. Die müsste man dann ja von NowDate abziehen und da weiß ich nicht wie der dazugehörige Code aussieht und ob das syntaktisch so funktioniert:
{{todaysdate-forum:lastchange<48.true}} .. aber ich glaub schon, dazu hatte ich irgendeinen Beitrag gelesen.

Wie gesagt fehlt mir todaysdate als.. ich glaub Sekunden sind das. :) - Bitte aber ohne Javascript. o.o


Falls noch interessiert wozu:

Sinn des ganzen sollte sein eine über Forenvariablen eingebundene Bebilderung der einzelnen Foren abhängig von der letzten Aktivität zu verändern. (Wodurch der ganze Code womöglich gar selbst in die Forenvariablen will dann.. aber das seh ich dann ja).

Kurzum bekäme jedes Forum dann einen Bildatlas/eine Bilderreihe und würde dann abhängig davon wie lange die letzte Aktivität her ist im Atlas voranschreiten oder bei neuem Beitrag wieder zum ersten Bild zurückspringen. Grafisch wirds eine Art Umrahmung um das Bild herum, die farbliche Abstufungen und derart erhält ... so kann man bei fehlender Aktivität den Foren dann beim Sterben zugucken und ist hoffentlich motivierter das baldigst zu verhindern o.o


Dank und Gruß

Standard-Template - 58757.dynamicboard.de

 Antworten

 Beitrag melden
19.04.2016 13:30
avatar  Ingmar
#2 RE: Heutiges Datum auslesen/abfragen
avatar
Technik

{{server_time}} enthält immer den aktuellen timestamp des Forenservers.

In so fern könnte folgendes klappen:

{{lastchange.start}}{{forum:lastchange}}{{lastchange.end}}
{{lastchangeinseconds.startint}}{{server_time}}-{{lastchange}}{{lastchangeinseconds.end}}

Nun hast du zumindest schonmal die Sekunden seit der letten Änderung. Damit kannst du dann weiter arbeiten...

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
13.05.2016 01:36 (zuletzt bearbeitet: 13.05.2016 01:49)
avatar  Eru
#3 RE: Heutiges Datum auslesen/abfragen
avatar
Eru
Mitglied

Heut Abend erst hatt ich mich damit beschäftigt .. uund es klappt!



Falls noch jemanden interessiert, wie, hier mal kurz die wichtigsten Schritte: (Weil ich auch nicht ganz weiß wohin sonst damit im Forum)


1. Ein Bild/Einen Grafikatlas für das Forum erstellen, also mehrere Bilder nebeneinander in einem, hier ein Beispiel:

2. Einbindung des Bildes als Hintergrund in eine Div-Box unter Admin→Layout→CSS mit den Maßen eines einzigen der Bilder:

1
2
 
#rpgMammutgrab {width: 56px; height: 56px;
background: url('https://files.homepagemodules.de/b58757/f13t298p1060n2_UBgrVHKI.png') no-repeat left top;float: left;margin-right:9px;}
 


Das eigentliche Bild ist 56px hoch, aber 280px breit, es sollen jedoch nur 56*56px, also die Maße eines einzigen der fünf Bilder, dargestellt werden.

3. Einbindung in einer Forenvariable unter Forum→(Name eines Forums)→Template-Variablen/Foren-Variablen definieren→ unter einer der Variablen mit folgendem Code enden:

1
 
<div id="rpgMammutgrab"
 

(Also mit der ID im CSS-Code aus 2.)

4. Einbindung im Template. Admin→Template Entwicklung→Foren Übersicht
.. dann je nach Style die passende Stelle finden, an die das Bild soll. Das sollte etwa bei href="{{forum:link}}", {{forum:title}} und {{forum:description}} zu finden sein. Ich wollte es links vom Titel haben. (Dafür das float:left oben)

Hier im Template wird die Forenvariable dann eingebunden und dort die Verschiebung/Das Voranschreiten im Atlas ermittelt: (Die Syntax geht sicher schöner, bei mir wars die Forenvariable 2)

1
2
3
4
5
6
7
8
9
10
11
12
 
{{forum:var2==true.start}}
 
{{lastchange.start}}{{forum:lastchange}}{{lastchange.end}}
{{lastchangeinseconds.startint}}{{server_time}}-{{lastchange}}{{lastchangeinseconds.end}}
 
{{lastchangeinseconds<172800.start}}{{atlasMovement.startint}}0{{atlasMovement.end}}{{lastchangeinseconds<172800.end}}
{{lastchangeinseconds>172799.start}}{{lastchangeinseconds<604800.start}}{{atlasMovement.startint}}56{{atlasMovement.end}}{{lastchangeinseconds<604800.end}}{{lastchangeinseconds>172799.end}}
{{lastchangeinseconds>604799.start}}{{lastchangeinseconds<1209600.start}}{{atlasMovement.startint}}112{{atlasMovement.end}}{{lastchangeinseconds<1209600.end}}{{lastchangeinseconds>604799.end}}
{{lastchangeinseconds>1209599.start}}{{lastchangeinseconds<1814400.start}}{{atlasMovement.startint}}168{{atlasMovement.end}}{{lastchangeinseconds<1814400.end}}{{lastchangeinseconds>1209599.end}}
{{lastchangeinseconds>1814399.start}}{{atlasMovement.startint}}224{{atlasMovement.end}}{{lastchangeinseconds>1814399.end}}
 

 

Hier wurde mit Ingmars Code ermittelt, wie lange der letzte Beitrag her ist und das in lastchangeinseconds gespeichert. Die Zahl wird mit ein paar willkürlichen Sekundenwerten verglichen, damit ermittelt wird, wie weit die Bildanzeige in der Divbox nach links verschoben wird.. also immer in 56er-Schritten, da man ja ein Bild weiter will. Die Verschiebung in Pixeln wird in der Variable atlasMovement gespeichert. Hier muss man vermutlich gut aufpassen, dass man auch alle Fälle erwischt und die Variable nicht undeklariert/uninitialisiert lässt und nachher trotzdem abfragen will.

Die Sekundenwerte übersetzen sich zu:
<2 Tage => 0px Verschiebung in {{atlasMovement}} speichern
>2 Tage und <7 Tage => 56px Verschiebung in {{atlasMovement}} speichern
>7 Tage und <14 Tage => 112px Verschiebung in {{atlasMovement}} speichern
>14 Tage und < 21 Tage => 168px Verschiebung in {{atlasMovement}} speichern
> 21 Tage => 224px Verschiebung in {{atlasMovement}} speichern

Mit der Forenvariable var2 bei mir wird der Code mit der Div-Box und dem passenden Bild eingebunden. Anschließend wird das Bild der dort geöffneten Div-Box im Template mit der atlasMovement-Variable entsprechend verschoben und die Div-Box geschlossen.

1
2
3
 
{{forum:var2}}style="background-position:-{{atlasMovement}}px 0px;"></div>
 
{{forum:var2==true.end}}
 



Zur Verschiebung noch eine kurze Erklärung, weil ich das selbst ein wenig komisch finde: Die Div-Box hat ein Hintergrundbild, das eigentlich rechts raushängt. Die Box ist aber nur 56*56px groß, weswegen das Hintergrundbild nicht vollständig angezeigt wird. Mit negativer Verschiebung nach links wird dieses Hintergrundbild links rausgeschoben, weswegen man dann weiter im Atlas voranschreitet.
Das hatte ich aus einer Tutorial-Webseite, bei der man hiermit Bildwechsel mit der CSS-Hoverfunktion umgesetzt hat (was auch hübsch ist).


5. Für jedes weitere Forenbild mit gleichen Maßen und gleichem Verschiebungsverhalten muss man nur noch das entsprechende Bild erstellen/hochladen, es in der CSS definieren und in der entsprechenden Forenvariable des entsprechenden Forums speichern. Also bei mir immer var2, weil die ja derart im Template eingebunden ist. Kurzum: Die Schritte 1-3. Am Template selbst muss man dann nichts mehr tun.

Ferner könnte man auch ein Panoramabild anstelle eines Atlas benutzen und dann jeden Tag Pixelweise vorschreiten.. *grübel* ..und das Ende mit dem Anfang verknüpfen. Aber weniger LastChange-Abhängig dann vermutlich sondern einfach so als fahrende Bilder.

Standard-Template - 58757.dynamicboard.de

 Antworten

 Beitrag melden
Bereits Mitglied?
Jetzt anmelden!
Mitglied werden?
Jetzt registrieren!