Countdown als BBcode einfügen...

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt, um einen neuen Mod zu entwickeln, geht's in [3.0.x] Mods in Entwicklung weiter.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Flosine
Mitglied
Beiträge: 15
Registriert: 19.05.2011 07:32

Countdown als BBcode einfügen...

Beitrag von Flosine »

Hallo da draußen...

ich hoffe das gehört hier hin... habe lange gesucht um einen Countdown für phpbb3 zu finden... aber ich wollte auch keinen Mod sondern einfach eine Funktion über den BBcode...

Habe dann folgendes Gefunden:

BBCode Benutzung:

Code: Alles auswählen

[countdown_1]{NUMBER1}.{TEXT1} {NUMBER2} {NUMBER3}:{NUMBER4}:{NUMBER5}[/countdown_1]
Html Ersetzung:

Code: Alles auswählen

<script>
function toSt(n)
{
    s=''
    if(n<10) s+='0'
    return s+n.toString();
}

var eventdate = new Date("{TEXT1} {NUMBER1}, {NUMBER2} {NUMBER3}:{NUMBER4}:{NUMBER5} UTC+2");


d=new Date();
count=Math.floor((eventdate.getTime()-d.getTime())/1000);
secs_count = toSt(count%60);
    
count=Math.floor(count/60);
mins_count = toSt(count%60);

count=Math.floor(count/60);
hours_count = toSt(count%24);

count=Math.floor(count/24);
days_count = count;
        
        
document.write(days_count);
document.write(' Tage und ');
document.write(hours_count);
document.write(':');
document.write(mins_count);
document.write(':');
document.write(secs_count);
document.write(' Stunden');
</script>
Problem daran ist nur das der Code keine Schleife durchläuft, sprich die Werte aktualsieren sich nicht von alleine sondern eben nur durch aktualiseren des Browsers. Habe nun gedacht man könnte das mit einer While Schleife ändern. In dem man sagt: While "Aktuelle Zeit" ist kleiner als "Eventzeit" durchlaufe die Schleife.

Aber ich weiß ehrlich gesagt nicht wirklich an welcher Stelle ich das alles im Script unterbringen soll...

Könnte mir vlt. jemand helfen bzw. mir dieses in den Script einbauen. Habe von einer PHP Programmierung nicht soviel Ahnung.

Vielen Dank vorab.

Gruß
Florian
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Countdown als BBcode einfügen...

Beitrag von BNa »

Das Script ist etwas out of date.

Generiere ein neues, was wirklich funktioniert hier
http://www.ricocheting.com/code/javascr ... down-timer

und bastel Dir daraus einen neuen BBCode.
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Countdown als BBcode einfügen...

Beitrag von BNa »

zB

BBCode

Code: Alles auswählen

[countdown_1]{NUMBER1}x{NUMBER2}x{NUMBER3}[/countdown_1]
Benutzung

Code: Alles auswählen

[countdown_1]JahrxMonatxTag[/countdown_1]
Html Ersetzung

Code: Alles auswählen

<script type="text/javascript">
//######################################################################################
// Author: ricocheting.com
// Version: v2.0
// Date: 2011-03-31
// Description: displays the amount of time until the "dateFuture" entered below.

// NOTE: the hour is in 24 hour format. 0=12am, 15=3pm etc
// format: dateFuture1 = new Date(year,month,day,hour,min,sec)
// example: dateFuture1 = new Date(2003,03,26,14,15,00) = April 26, 2003 - 2:15:00 pm

dateFuture1 = new Date({NUMBER1},({NUMBER2} - 1),{NUMBER3},00,00,00);

// TESTING: comment out the line below to print out the "dateFuture" for testing purposes
//document.write(dateFuture +"<br />");


//###################################
//nothing beyond this point
function GetCount(ddate,iid){

    dateNow = new Date();    //grab current date
    amount = ddate.getTime() - dateNow.getTime();    //calc milliseconds between dates
    delete dateNow;

    // if time is already past
    if(amount < 0){
        document.getElementById(iid).innerHTML="Now!";
    }
    // else date is still good
    else{
        days=0;hours=0;mins=0;secs=0;out="";

        amount = Math.floor(amount/1000);//kill the "milliseconds" so just secs

        days=Math.floor(amount/86400);//days
        amount=amount%86400;

        hours=Math.floor(amount/3600);//hours
        amount=amount%3600;

        mins=Math.floor(amount/60);//minutes
        amount=amount%60;

        secs=Math.floor(amount);//seconds

        if(days != 0){out += days +" "+((days==1)?"day":"days")+", ";}
        if(hours != 0){out += hours +" "+((hours==1)?"hour":"hours")+", ";}
        out += mins +" "+((mins==1)?"min":"mins")+", ";
        out += secs +" "+((secs==1)?"sec":"secs")+", ";
        out = out.substr(0,out.length-2);
        document.getElementById(iid).innerHTML=out;

        setTimeout(function(){GetCount(ddate,iid)}, 1000);
    }
}

window.onload=function(){
    GetCount(dateFuture1, 'countbox1');
    //you can add additional countdowns here (just make sure you create dateFuture2 and countbox2 etc for each)
};
</script>
<div id="countbox1"></div>
Flosine
Mitglied
Beiträge: 15
Registriert: 19.05.2011 07:32

Re: Countdown als BBcode einfügen...

Beitrag von Flosine »

Hallo Danke...

werde es damit mal probieren... ich hoffe ich komme damit klar...
Flosine
Mitglied
Beiträge: 15
Registriert: 19.05.2011 07:32

Re: Countdown als BBcode einfügen...

Beitrag von Flosine »

So prima, hat alles geklappt... jetzt habe ich aber noch ein ganz anderes Problem....
:(
Ich kann leider den code immer nur einmal verwenden/ Pro Thread bzw. Seite...

Habe es auch schon probiert in dem ich unterschiedliche BBCodes Bezeichnungen genommen habe und auch den Code (wie im Code) beschrieben geändert, und trotzdem nimmt der Code falsche werte bzw. die Werte aus dem Letzten BBCode an:

z.B.

Code: Alles auswählen

[cd]2011x12x24x00x00x00[/cd]
für Weihnachten

Gebe ich weiter unten oder in einem neuen Beitrag wieder einen solchen an z.B.

Code: Alles auswählen

[cd]2012x04x08x00x00x00[/cd]
für Ostern so bezieht sich die Codeausgabe auf den letzten BBcode für Ostern und der erste wird garnicht gezeigt...

Woran kann das liegen und wie kann ich das ändern bzw. verhindern?!

Danke
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Countdown als BBcode einfügen...

Beitrag von BNa »

Das ist einfach. Die Lösung folgt später..

Der Code hat ferner nur drei Komponenten

Code: Alles auswählen

[cd]2012x04x08[/cd]
Flosine
Mitglied
Beiträge: 15
Registriert: 19.05.2011 07:32

Re: Countdown als BBcode einfügen...

Beitrag von Flosine »

Naja bezogen auf die oberen beiträge gebe ich dir recht, das nur jahr, monat, tag da sind, ich habe den script bei mir geändert und auch die anderen Zeiten wie Stunden, Minuten, Sekunden mit einbezogen.

Über eine Lösung wäre ich froh... vielen Dank....
Flosine
Mitglied
Beiträge: 15
Registriert: 19.05.2011 07:32

Re: Countdown als BBcode einfügen...

Beitrag von Flosine »

Hallo nochmal...

kann mir jemand weiter helfen mit meinem obigen Problem:

Der Script sieht derzeit so aus... und funktioniert wunderbar... nur halt das ich ihn pro Seite nur 1x einsetzen kann:

Code: Alles auswählen

[cd]{NUMBER1}x{NUMBER2}x{NUMBER3}x{NUMBER4}x{NUMBER5}x{NUMBER6}x{SIMPLETEXT7}[/cd]

Code: Alles auswählen

<script type="text/javascript">
//######################################################################################
// Author: ricocheting.com
// Version: v2.0
// Date: 2011-03-31
// Description: displays the amount of time until the "dateFuture" entered below.

// NOTE: the month entered must be one less than current month. ie; 0=January, 11=December
// NOTE: the hour is in 24 hour format. 0=12am, 15=3pm etc
// format: dateFuture1 = new Date(year,month-1,day,hour,min,sec)
// example: dateFuture1 = new Date(2003,03,26,14,15,00) = April 26, 2003 - 2:15:00 pm

dateFuture1 = new Date({NUMBER1},({NUMBER2}-1),{NUMBER3},{NUMBER4},{NUMBER5},{NUMBER6});

// TESTING: comment out the line below to print out the "dateFuture" for testing purposes
//document.write(dateFuture1 +"test");


//###################################
//nothing beyond this point
function GetCount(ddate,iid){

        dateNow = new Date();        //grab current date
        amount = ddate.getTime() - dateNow.getTime();        //calc milliseconds between dates
        delete dateNow;

        // if time is already past
        if(amount < 0){
                document.getElementById(iid).innerHTML="Now!";
        }
        // else date is still good
        else{
                years=0;weeks=0;days=0;hours=0;mins=0;secs=0;out="";

                ms = (""+((amount%1000)+1000)).substr(1,3);                amount = Math.floor(amount/1000);//kill the "milliseconds" so just secs

                years=Math.floor(amount/31536000);//years (no leapyear support)
                amount=amount%31536000;

                weeks=Math.floor(amount/604800);//weeks
                amount=amount%604800;

                days=Math.floor(amount/86400);//days
                amount=amount%86400;

                hours=Math.floor(amount/3600);//hours
                amount=amount%3600;

                mins=Math.floor(amount/60);//minutes
                amount=amount%60;

                secs=Math.floor(amount);//seconds

                if(years != 0){out += years +" "+((years==1)?"Jahr":"Jahre")+", ";}
                if(weeks != 0){out += weeks +" "+((weeks==1)?"Woche":"Wochen")+", ";}
                if(days != 0){out += days +" "+((days==1)?"Tag":"Tage")+", ";}
                if(hours != 0){out += hours +" "+((hours==1)?"Stunde":"Stunden")+", ";}
                out += mins +" "+((mins==1)?"Minute":"Minuten")+", ";
                out += secs +("."+ms)+" "+((secs==1)?"Sekunde":"Sekunden")+", ";
                out = out.substr(0,out.length-2);
                document.getElementById(iid).innerHTML=out;

                setTimeout(function(){GetCount(ddate,iid)}, 25);
        }
}

window.onload=function(){
        GetCount(dateFuture1, 'countbox1');
        //you can add additional countdowns here (just make sure you create dateFuture2 and countbox2 etc for each)
};
</script>


<table width="500px" border="1" bordercolor="#000000" bgcolor="#00AFFF" cellpadding="0" cellspacing="2" >
 <tr>
     <th id="countbox1" align="center" style="color:#FFDF00; font-family:arial" ></th>
 </tr>
 <tr>
     <th align="center" style="color:#DFDFDF; font-family:arial" >{SIMPLETEXT7}</th>
 </tr>
</table>
Würde ihn aber gern mehrfach auf einer Seite/ einem Beitrag nutzen können... wie muss der Script geändert werden, damit mehrer davon sich nicht in die Quere kommen. Kann mir jemand helfen und das vlt. einprogrammieren?!

Vielen Dank vorab
Flosine
Mitglied
Beiträge: 15
Registriert: 19.05.2011 07:32

Re: Countdown als BBcode einfügen...

Beitrag von Flosine »

Kann mir denn niemand hier helfen... würde es gern vollständig im Forum integrieren, bin aber leider keiner der so gut mit PHP kann... nach Vorlage einprogrammieren bekomme ich ja problem hin... ein wenig was selber geht auch noch aber... so (für mich zu mindest) kompliziertere Dinge...

:-? :(
Flosine
Mitglied
Beiträge: 15
Registriert: 19.05.2011 07:32

Re: Countdown als BBcode einfügen...

Beitrag von Flosine »

Wollte den Thread nochmal nach vorne holen... habe leider noch immer keine Antwort...

Ist es wirklich schwer so etwas zu erstellen... habe keine Ahnung aber vlt. kann mir jemand helfen..
Antworten

Zurück zu „[3.0.x] Mod Suche/Anfragen“