Seite 1 von 2
[BETA] Time Counter MOD
Verfasst: 10.12.2014 10:14
von waldkatze
MOD-Titel: Time Counter MOD
MOD-Version: 0.1.0
MOD-Autor: waldkatze
http://www.polarbiker-oberlausitz.de/mod_demo/
phpBB-Version: phpBB 3.0.x
phpBB-Sprachen: de [deutsch Du] / cs [tschechisch]
phpBB-Styles: prosilver
MOD-Beschreibung:
Fügt eine einstellbare Counter-Anzeige in dein Forum ein.
Zeigt Jahre / Monate / Tage / Stunden / Minuten / Sekunden bis zum Ablauf an.
Features:
- Einstellbarer Eventname
- Einstellbare Meldung bei Counter-Ende
- Einstellbares Ablaufdatum
- Einstellbare Schriftgröße
- Einstellbare Schriftfarbe
-
Install-Modul: Datenbankinstallation für Timer Counter MOD.
Demo / Download: http://www.polarbiker-oberlausitz.de/mod_demo/
Re: [BETA] Time Counter MOD
Verfasst: 10.12.2014 12:04
von HabNurNeFrage
Hi,
ganz cool soweit.
Leider ist das JavaScript ziemlich altbacken. (Zeilnenden z.B. ohne Semikolons)
Man könnte zudem die Anzeige schön stylen oder durch CSS-Klassen dem Style anpassen,
wenn man das Ergebnis in ein Div juckeln würde anstelle eines Inputs.
Umgebaut auf Div und durch den Google-JS-Kompressor gejagt komme ich zu folgendem, funktionsgleichen Ergebnis:
Code: Alles auswählen
<div id="countdown"></div>
<script type="text/javascript">
//<![CDATA[
var countdown_texte="Noch so viele Tage bis Silvester:",
current="Endlich, heute ist Silvester. Sekt aufmachen !!!",
montharray="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" ");
function countdown(c,d,e){
theyear=c;
themonth=d;
theday=e;
var a=new Date,
b=a.getYear();
1E3>b&&(b+=1900);
var f=a.getMonth(),g=a.getDate(),h=a.getHours(),k=a.getMinutes(),a=a.getSeconds(),b=montharray[f]+" "+g+", "+b+" "+h+":"+k+":"+a;
futurestring=montharray[d-1]+" "+e+", "+c;
dd=Date.parse(futurestring)-Date.parse(b);
dday=Math.floor(dd/864E5*1);
dhour=Math.floor(dd%864E5/36E5*1);
dmin=Math.floor(dd%864E5%36E5/6E4*1);
dsec=Math.floor(dd%864E5%36E5%6E4/1E3*1);
0>=dday&&0>=dhour&&0>=dmin&&1>=dsec?document.getElementById("countdown").innerHTML= current:(document.getElementById("countdown").innerHTML= countdown_texte + " "+dday+" Tage, "+dhour+" Stunden, "+dmin+" Minuten, und "+dsec+" Sekunden.",setTimeout("countdown(theyear,themonth,theday)",1E3))
}
countdown(2014,12,31);
//]]>
</script>
Damit wäre sowohl das JS als auch das HTML strict und HTML5 valide.
LG
Re: [BETA] Time Counter MOD
Verfasst: 10.12.2014 13:21
von waldkatze
HabNurNeFrage
Danke für den Tipp, habe das gleich mal etwas geändert.
Die MOD ist natürlich noch nicht vollkommen,deshalb steht auch BETA dran
Der Hauptsinn besteht darin über den ACP eine einfache Möglichkeit zu haben die gewünschten Daten einzugeben.
Im ACP kann auch noch die Schriftfarbe und Textgröße eingestellt werden.
Den restlichen Style überlasse ich jeden selbst. Geschmack ist bekanntlich verschieden.
ACP guckst du hier:
http://www.polarbiker-oberlausitz.de/mo ... hp?f=7&t=5
Code: Alles auswählen
<!-- IF S_WK_COUNT_DISABLE -->
<div class="navbar">
<div class="inner"><span class="corners-top"><span></span></span>
<div style="text-align:center; font-size: {WK_COUNT_FONT_SIZE}em;">
<div type="text" size="{WK_COUNT_TEXT_SIZE}" name="wk_count" style="color: #{WK_COUNT_COLOR}; font-weight: bold; text-align: center;">
<div id="countdown"></div>
<script type="text/javascript">
//<![CDATA[
var countdown_texte="{WK_COUNT_EVENT}",
current="{WK_COUNT_END_MESSAGE}",
montharray="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" ");
function countdown(c,d,e){
theyear=c;
themonth=d;
theday=e;
var a=new Date,
b=a.getYear();
1E3>b&&(b+=1900);
var f=a.getMonth(),g=a.getDate(),h=a.getHours(),k=a.getMinutes(),a=a.getSeconds(),b=montharray[f]+" "+g+", "+b+" "+h+":"+k+":"+a;
futurestring=montharray[d-1]+" "+e+", "+c;
dd=Date.parse(futurestring)-Date.parse(b);
dday=Math.floor(dd/864E5*1);
dhour=Math.floor(dd%864E5/36E5*1);
dmin=Math.floor(dd%864E5%36E5/6E4*1);
dsec=Math.floor(dd%864E5%36E5%6E4/1E3*1);
0>=dday&&0>=dhour&&0>=dmin&&1>=dsec?document.getElementById("countdown").innerHTML= current:(document.getElementById("countdown").innerHTML= countdown_texte + " "+dday+" Tage, "+dhour+" Stunden, "+dmin+" Minuten, und "+dsec+" Sekunden.",setTimeout("countdown(theyear,themonth,theday)",1E3))
}
countdown({WK_COUNT_DATE});
//]]>
</script>
</div>
</div>
<span class="corners-bottom"><span></span></span></div>
</div>
<br />
<!-- ENDIF -->
Re: [BETA] Time Counter MOD
Verfasst: 10.12.2014 14:33
von HabNurNeFrage
Hi,
prima Mod und schönes Modul zur Bearbeitung der Countdowns
Aber was ist das für ein Div mit type="text", size="..." und name="..." Attributen?
Diese Attribute gibt es alle nur beim Input-Tag.
Die Variable {WK_COUNT_TEXT_SIZE} kannst du jetzt komplett aus der Mod entfernen.
Hier die valide Version mit sekundengenauer Eingabe passend zu Deinem Modul:
Code: Alles auswählen
<!-- IF S_WK_COUNT_DISABLE -->
<div class="navbar">
<div class="inner"><span class="corners-top"><span></span></span>
<div style="text-align: center; font-size: {WK_COUNT_FONT_SIZE}em; color: #{WK_COUNT_COLOR}; font-weight: bold;" id="countdown"></div>
<script type="text/javascript">
//<![CDATA[
var countdown_texte="{WK_COUNT_EVENT}",
current="{WK_COUNT_END_MESSAGE}",
montharray="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" ");
function countdown(c,d,e,f,g,h){
theyear=c;
themonth=d;
theday=e;
thehour=f;
themin=g;
thesec=h;
var a=new Date,b=a.getYear();
1E3>b&&(b+=1900);
var k=a.getMonth(),l=a.getDate(),m=a.getHours(),n=a.getMinutes(),a=a.getSeconds(),b=montharray[k]+" "+l+", "+b+" "+m+":"+n+":"+a;futurestring=montharray[d-1]+" "+e+", "+c+" "+f+":"+g+":"+h;
dd=Date.parse(futurestring)-Date.parse(b);
dday=Math.floor(dd/864E5*1);
dhour=Math.floor(dd%864E5/36E5*1);
dmin=Math.floor(dd%864E5%36E5/6E4*1);
dsec=Math.floor(dd%864E5%36E5%6E4/1E3* 1);
0>=dday&&0>=dhour&&0>=dmin&&0>=dsec?document.getElementById("countdown").innerHTML=current:(document.getElementById("countdown").innerHTML=" "+countdown_texte+" "+dday+" Tage "+dhour+" Stunden "+dmin+" Minuten "+dsec+" Sekunden",setTimeout("countdown(theyear,themonth,theday,thehour,themin,thesec)",1E3))
}
countdown({WK_COUNT_DATE});
//]]>
</script>
<span class="corners-bottom"><span></span></span></div>
</div>
<br />
<!-- ENDIF -->
LG
Re: [BETA] Time Counter MOD
Verfasst: 10.12.2014 19:03
von waldkatze
HabNurNeFrage
Natürlich hast du Recht.
Hatte ich doch versehentlich den erst halbfertig geänderten Code gepostet. Asche auf mein Haupt.
Ein paar Verbesserungen habe ich noch in Planung. Für den Anfang funktioniert die MOD erst mal ganz gut.
Der Rest kommt später.
Auf jeden Fall Dank für deine Hilfe

Re: [BETA] Time Counter MOD
Verfasst: 12.12.2014 06:24
von redbull254
Hallo erstmal,
ich habe mir vor etwas mehr als einem Jahr mir diese Mod in einer finalen Version installiert:
Title:PhpBB3 Countdown
Description:
The PhpBB3 Countdown MOD display a countdown in your forum header, just below the navbar.
It can be configured in ACP under the Board Features. You can enable/disable the countdown and set it to count down or count up.
You can also set the date and a text displayed before the countdown and a text that will replace the countdown when finished.
Quelle:
http://www.phpbb3bbcodes.com/testsite/d ... t.php?id=4
Was unterscheidet Deine Version von meiner installierten Version? Ist Deine komfortabler und wenn ja, in welcher Art?
PS.
Die 2er Versionen auf der Seite kann man zwar herunter laden, aber scheinbar ist das Archiv defekt.
Re: [BETA] Time Counter MOD
Verfasst: 12.12.2014 08:48
von waldkatze
Hallo redbull254
Ich kenne die von dir genannte MOD leider nicht.
Aber Unterschiede zwischen MODS bekommt man eigentlich immer am besten raus, indem man sich das runterläd und anschaut.
Re: [BETA] Time Counter MOD
Verfasst: 12.12.2014 14:44
von redbull254
waldkatze hat geschrieben:Hallo redbull254
Ich kenne die von dir genannte MOD leider nicht.
Aber Unterschiede zwischen MODS bekommt man eigentlich immer am besten raus, indem man sich das runterläd und anschaut.
Als Nutzer ist es mir relativ egal, ob es Unterschiede in der Programmierung gibt.
Mich interessiert nur der Funktionsumfang und da solltest Du am besten beschreiben können, was Deine Mod kann. Die Mod, die ich eingebaut habe, kann zumindest mindestens das Gleiche, was Du da gerade baust. Kann ja auch ein Vorteil sein, wenn man selbst mal an einem Problem hängt und nicht weiter kommt. Anschauen, wie andere ein Problem lösen ist ja nicht verboten. Aber egal, wäre nicht die erste Mod, die es doppelt gibt, warum auch nicht. Viel Glück bei der weiteren Entwicklung.

Re: [BETA] Time Counter MOD
Verfasst: 12.12.2014 15:22
von waldkatze
Hallo redbull254
Anschauen kannst du das hier:
http://www.polarbiker-oberlausitz.de/mod_demo/
Ich habe die Einstellungen in ein eigenes ACP-Modul gepackt.
Findest du nach Installation im ACP / MODS / Time Counter
Das vorher verwendete etwas veraltete Javascript habe ich nach Tipp von
HabNurNeFrage (siehe oben) aktualisiert.
Zusätzlich eingebaut ist MOD-Version Check von Handyman.
Bild von Einstellungen im ACP siehe:
http://www.polarbiker-oberlausitz.de/mo ... hp?f=7&t=5
Damit hast du schnell Überblick was die MOD kann.
Ich habe das ürsprünglich mal nur für das eigene Forum gebastelt. Wer Interesse hat kann es sich runterladen. Weiterentwicklung folgt.
Re: [BETA] Time Counter MOD
Verfasst: 12.12.2014 16:31
von redbull254
Ich habe mir die ACP-Einstellmöglichkeiten nun bei Dir angeschaut. Das man die Schriftgröße direkt eingeben kann, ist eine Verbesserung. Bei meiner verbauten Mod kann man es auch, aber über den Umweg des Html-Codes, den nicht jeder kennt. DU solltest aber bei schreiben, dass die Eingabe in "em" Werten erfolgen soll. Bei Pixelangaben gibt es keinen Punkt.
Einiges verstehe ich (noch) nicht. Wieso das Feld Textlänge? Das gibt doch der Name des Anlasses selbst vor. Es macht m.E. keinen Sinn, wenn man oben ins Event-Feld einen langen Satz eintippen darf, aber diesen unten durch eine zu geringe Textlängen-Angabe abschneidet. Aber vielleicht verstehe ich die Funktion nur nicht. Ich würde immer eine Explain-Sprach-Variable erstellen und Funktionen kurz erklären, dass erspart unnötige Support-Anfragen.

Ich nehme an, Du lässt die Mod eines Tages auf phpbb.com validieren? Dann würde ich einen Wechsel ins Auge fassen.