Seite 1 von 1

Countdown BBCode anpassen

Verfasst: 07.04.2012 15:52
von DerTheo

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">
    
    // 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="{SIMPLETEXT7}";
            }
            // 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>


<script type="text/javascript">
    
    // 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="{SIMPLETEXT7}";
            }
            // 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 +" "+((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>


<div id="countbox1"></div>
Ist es aufwendig, den BBCode zu verändern, dass ich statt dem SIMPLETEXT7 auch Links eingeben kann? Könnte mir da jemand helfen?

grüße
Theo

Re: Countdown BBCode anpassen

Verfasst: 07.04.2012 17:18
von Dr.Death
Hi,

das einzige was du machen könntest, wäre alle {SIMPLETEXT7} gegen {URL} auszutauschen, dann werden die Links zwar angezeigt, sind aber leider nicht anklickbar.

Code: Alles auswählen

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

Code: Alles auswählen

<script type="text/javascript">
    
    // 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="{URL}";
            }
            // 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 +" "+((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>


<div id="countbox1"></div>

Re: Countdown BBCode anpassen

Verfasst: 22.04.2012 07:52
von DerTheo
Vielen Dank Dr.Death, das reicht eigentlich :)

EDIT Hab gerade bemerkt, dass ich mit dem Token {URL} keinen Text eingeben kann (logisch^^) ich hab es mit dem Token {IDNETIFIER} probiert, da wird Text und Links (nicht anklickbar) ausgegeben :)