Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 2.x > vBulletin 2.x Full Releases

Reply
 
Thread Tools
New vBCode Tags: [Countdown] and [Countup] timers for users Details »»
New vBCode Tags: [Countdown] and [Countup] timers for users
Version: 1.00, by KevinG KevinG is offline
Developer Last Online: Feb 2003 Show Printable Version Email this Page

Version: 2.2.x Rating:
Released: 05-02-2002 Last Update: Never Installs: 12
 
No support by the author.

Have you or any of your members ever had the need or desire to post a countdown or countup in a post?
Something that automatically shows the remaining days, hours, minutes and seconds of that upcoming Walt Disney World trip?
Or want to show everyone how many days, hours, minutes and seconds that the user has gone without a cigarette, drink, sex? - LOL

I came up with this one here. It basically gives your users two new vB Code Tags, [countdown] and [countup].
Now there is no need to worry that the user will mess up your threads with incorrect JavaScript.
All they have to do is use these tags, just like most other tags.

For counting down, they would just have to do the following:
[countdown=May 21, 2002 12:32 PM EST;We are off to see Mickey Mouse;RED]My Walt Disney World Trip Begins in [/countdown]

Same for counting up with just different text of course.

I guess this would qualify as a hack as you do need to change one field in the database to store this.
Luckily, it's in a very small table so it should not slow anything down in theory.


Modify the database
Modify the field bbcodereplacement in the bbcode table to increase the storage size.
Change the field properties from varchar(200) to LONGTEXT. This is needed for the new vB Code replacement to follow.
I used phpMyAdmin which is very easy to use for this change.

Add new JavaScript
Add the following JavaScript code to your Style under Head Insert preferrably at the bottom.
Be sure to do this for every style that you defined in your database.

PHP Code:
<SCRIPT LANGUAGE="JavaScript">
function 
countdowndaterndNumouttext ) {
now = new Date();
y2k = new Datedate );
days = (y2k now) / 1000 60 60 24;
daysRound Math.floor(days);
hours = (y2k now) / 1000 60 60 - (24 daysRound);
hoursRound Math.floor(hours);
minutes = (y2k now) / 1000 /60 - (24 60 daysRound) - (60 hoursRound);
minutesRound Math.floor(minutes);
seconds = (y2k now) / 1000 - (24 60 60 daysRound) - (60 60 hoursRound) - (60 minutesRound);
secondsRound Math.round(seconds);
if ((
days 0) | (hours 0) | (minutes 0) | (seconds 0)) {
   
thisoutput outtext;
   if (
thisoutput == ""thisoutput "Countdown Finished";
} else {
   
sec = (secondsRound == 1) ? " second." " seconds.";
   
min = (minutesRound == 1) ? " minute, " " minutes, ";
   
hr = (hoursRound == 1) ? " hour, " " hours, ";
   
dy = (daysRound == 1)  ? " day, " " days, ";
   
thisoutput daysRound  dy hoursRound hr minutesRound min secondsRound sec;
}
eval(
"document.forms.form" rndNum ".elements.countdown.value = thisoutput;");
thisclock "countdown(\""+date+"\",\""+rndNum+"\",\""+outtext+"\");";
window.setTimeout(thisclock1000);
}

function 
countupdaterndNumouttext ) {
now = new Date();
y2k = new Datedate );
days = (now y2k) / 1000 60 60 24;
daysRound Math.floor(days);
hours = (now y2k) / 1000 60 60 - (24 daysRound);
hoursRound Math.floor(hours);
minutes = (now y2k) / 1000 /60 - (24 60 daysRound) - (60 hoursRound);
minutesRound Math.floor(minutes);
seconds = (now y2k) / 1000 - (24 60 60 daysRound) - (60 60 hoursRound) - (60 minutesRound);
secondsRound Math.round(seconds);
if ((
days 0) | (hours 0) | (minutes 0) | (seconds 0)) {
   
thisoutput outtext;
} else {
   
sec = (secondsRound == 1) ? " second." " seconds.";
   
min = (minutesRound == 1) ? " minute, " " minutes, ";
   
hr = (hoursRound == 1) ? " hour, " " hours, ";
   
dy = (daysRound == 1)  ? " day, " " days, ";
   
thisoutput daysRound  dy hoursRound hr minutesRound min secondsRound sec;
}
eval(
"document.forms.form" rndNum ".elements.countup.value = thisoutput;");
thisclock "countup(\""+date+"\",\""+rndNum+"\",\""+outtext+"\");";
window.setTimeout(thisclock1000);
}

function 
explodeArray(item,delimiter) {
  
tempArray=new Array(1);
  var 
Count=0;
  var 
tempString=new String(item);

  while (
tempString.indexOf(delimiter)>0) {
    
tempArray[Count]=tempString.substr(0,tempString.indexOf(delimiter));
    
tempString=tempString.substr(tempString.indexOf(delimiter)+1,tempString.length-tempString.indexOf(delimiter)+1);
    
Count=Count+1
  
}

  
tempArray[Count]=tempString;
  return 
tempArray;
}

</
script
Add the new vBCodes
Using the Admin CP, add the following;

vB Code tag
-----------------------------------------------------
countdown


vB Code replacement
-----------------------------------------------------
PHP Code:
<Script language='Javascript'>
var 
rndNum Math.floor(Math.random() * 10000);
var 
tempString="{option}";
tempArray=explodeArray(tempString,";");
document.writeln("<form name='form" rndNum "' action='Javascript:void(0);'>");
document.writeln('<font size=2 color="'+tempArray[2]+'">{param}</font><BR>');
document.writeln("<input type=text value='' size=40 name='countdown'>");
document.writeln("</form>");
countdown(tempArray[0], rndNumtempArray[1]);
</
script
vB Code example
-----------------------------------------------------
[countdown="May 4, 2002;Currently At WDW Now;BLUE"]My Countdown to Disney World[/countdown]

vB Code explanation
-----------------------------------------------------
Enter any text you would like to say to your members here.

Use {option} ?
-----------------------------------------------------
Select YES


Add the [countup] tag next;
vB Code tag
-----------------------------------------------------
countup

vB Code replacement
-----------------------------------------------------
PHP Code:
<Script language='Javascript'>
var 
rndNum Math.floor(Math.random() * 10000);
var 
tempString="{option}";
tempArray=explodeArray(tempString,";");
document.writeln("<form name='form" rndNum "' action='Javascript:void(0);'>");
document.writeln('<font size=2 color="'+tempArray[2]+'">{param}</font><BR>');
document.writeln("<input type=text value='' size=40 name='countup'>");
document.writeln("</form>");
countup(tempArray[0], rndNumtempArray[1]);
</
script
vB Code example
-----------------------------------------------------
[countup="May 4, 2002;Waiting for my last cigarette;RED"]Smokefree Days[/countup]

vB Code explanation
-----------------------------------------------------
Enter any text you would like to say to your members here.

Use {option} ?
-----------------------------------------------------
Select YES



There are many variations that can be use here for how the text field looks.
We can post suggestions here for everyone to share

I can post a screenshot tomorrow if you would like.
It's really just a text field containing the days, hours, minutes and seconds of the timers with the {param} text over it.

Edit:
Reformatting some of the text as the PHP blocks are very wide.
Also fixed a case conversion that the PHP code tag is making in my post.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #32  
Old 05-21-2002, 03:11 AM
Mr. Slugworth's Avatar
Mr. Slugworth Mr. Slugworth is offline
 
Join Date: Oct 2001
Posts: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ryan, get into your phpmyadmin, and click on your database. Find the bbcode listing and hit properties. Then you will see the listing for bbcodereplacement, click Change. Then, chang the Type to LONGTEXT in the dropdown box. Hit save, and you are done. That is it.

Mickey :bandit:
Reply With Quote
  #33  
Old 05-21-2002, 07:57 PM
rcooper7 rcooper7 is offline
 
Join Date: May 2002
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks Mickey! Much Appreciated
Reply With Quote
  #34  
Old 05-24-2002, 12:00 PM
rcooper7 rcooper7 is offline
 
Join Date: May 2002
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Is it possabel to make this work like a birthday box in the control panel?. Let the user pick the date and what it should say and then show the countdown in the sig!

I have no clue how to do this. . .
Reply With Quote
  #35  
Old 05-24-2002, 12:11 PM
rcooper7 rcooper7 is offline
 
Join Date: May 2002
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK one more question,
everything seem t owork amazing But when I add it to my Sig, the message does not appear above the countdown
http://www.talkdisney.com/forums/sho...&threadid=1821

Did I miss something?
Reply With Quote
  #36  
Old 05-24-2002, 02:25 PM
KevinG KevinG is offline
 
Join Date: Dec 2001
Posts: 21
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I just checked that thread you posted and viewed it's source.

Looks like you missed a line in your vbcode replacement

Here is the original code that I posted on page one:
PHP Code:
<Script language='Javascript'>
var 
rndNum Math.floor(Math.random() * 10000);
var 
tempString="{option}";
tempArray=explodeArray(tempString,";");
document.writeln("<form name='form" rndNum "' action='java script:void(0);'>");
document.writeln('<font size=2 color="'+tempArray[2]+'">{param}</font><BR>');
document.writeln("<input type=text value='' size=40 name='countdown'>");
document.writeln("</form>");
countdown(tempArray[0], rndNumtempArray[1]);
</
script
The missed line is:
PHP Code:
document.writeln('<font size=2 color="'+tempArray[2]+'">{param}</font><BR>'); 

This code is for the countdown vbcode, not the countup vbcode. Since you have not tested that one in your thread, I'm not sure if that also has the same problem (if it has a problem).
Reply With Quote
  #37  
Old 05-24-2002, 08:12 PM
rcooper7 rcooper7 is offline
 
Join Date: May 2002
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

BEAUTIFULL! Thanks!
Reply With Quote
  #38  
Old 06-07-2002, 05:39 AM
jamoss's Avatar
jamoss jamoss is offline
 
Join Date: Apr 2002
Location: Los Angeles
Posts: 81
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Wooo! Finally got it to work. I found out it REALLY DOESN'T LIKE PUNCTUATION!!!

So you can't put:

[ countdown="May 10, 2003;The Big Three-O;BLUE" ]until my birthday![ /countdown ]

anyway, it's awesome. Just what I was looking for.

Jennifer Moss
BabyNames.com
http://www.babynames.com/boards/
Reply With Quote
  #39  
Old 06-07-2002, 06:43 AM
Slynderdale Slynderdale is offline
 
Join Date: Mar 2002
Location: New York State
Posts: 576
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i cant get the countdown to work, but the count up works good, does any one know whats wrong?

[php]
<Script language='Javascript'>
var rndNum = Math.floor(Math.random() * 10000);
var tempString="{option}";
tempArray=explodeArray(tempString,";");
document.writeln("<form name='form" + rndNum + "' action='java script:void(0);'>");
document.writeln('<font size=2 color="'+tempArray[2]+'">{param}</font><BR>');
document.writeln("<input type=text value='' size=40 name='countdown' border-style='none' style='background-color:transparent; border-bottom: 0px solid; border-left: 0px solid;border-right: 0px solid;border-top: 0px solid'>");
document.writeln("</form>");
countdown(tempArray[0], rndNum, tempArray[1]);
</script>
[php]
Reply With Quote
  #40  
Old 06-07-2002, 01:09 PM
KevinG KevinG is offline
 
Join Date: Dec 2001
Posts: 21
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Slynderdale,

Can you post, or PM me, the website where you installed this?
I can take a look and tell you why the countdown is not working.

Also, double check the added code to the header.
Reply With Quote
  #41  
Old 06-07-2002, 01:48 PM
Slynderdale Slynderdale is offline
 
Join Date: Mar 2002
Location: New York State
Posts: 576
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

hmm weird, i placed a count down under it and it worked
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 11:41 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05250 seconds
  • Memory Usage 2,378KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (5)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete