Go Back   vb.org Archive > vBulletin Modifications > vBulletin 4.x Modifications > vBulletin 4.x Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Countdown to Calendar Event Details »»
Countdown to Calendar Event
Version: 1.01, by JohnKF JohnKF is offline
Developer Last Online: Oct 2013 Show Printable Version Email this Page

Category: vBulletin CMS Widgets - Version: 4.0.6 Rating:
Released: 10-14-2010 Last Update: Never Installs: 57
Template Edits
Re-useable Code Additional Files Translations  
No support by the author.

This widget picks up the next 2 events from a calendar of your choice.

It displays a countdown to the first event then once the first event has arrived it begins a countdown to the second event. The only reason for picking up two events is that someone may visit the page close to the end of the first event then see the no event message. By picking up two events such a visitor will see the countdown to the second event start.

To install...

From the ZIP file, extract eventcountdown.js and copy it to your site.

Navigate to AdminCP -> Style & Templates -> Style Manager -> Edit Template
Double click the headinclude template to edit it and add the following just above the first <script tag you find...
HTML Code:
<script src="scripts/eventcountdown.js" type="text/javascript"></script>
...the above assumes you have copied eventcountdown.js file in to a folder called scripts. Adjust the src path to wherever you have placed the .js file.

Navigate to AdminCP -> CMS -> Widgets.
Create a PHP Type Widget and paste the below code.

PHP Code:
ob_start();
global 
$db,$vbulletin;
$event_calendarid="1";
$no_events_message="<div style='width: 100%; text-align: center; font-weight: bold'>There are no events.</div>";
$today_date mktime(000date(date("m")), date(date("d")),  date(date("y")));
$and=" and dateline_from > '".$today_date."'";

$getevents=$db->query_read("SELECT eventid, title, dateline_from from " TABLE_PREFIX "event WHERE calendarid='".$event_calendarid."' $and order by dateline_from ASC LIMIT 2");
$count=1;
if(!
$db->num_rows($getevents))
{
echo 
$no_events_message;

else
{
echo 
"<script type='text/javascript'>\n";
WHILE (
$events=$db->fetch_array($getevents))
{
$event_title=$events['title'];
$event_date vbdate('U',$events['dateline_from'], false,true,false,true)-vbdate('U');
if(
$count==1)
{
echo 
"var CountDownTimer=new CountDown('CountDownToChange',1,'".$event_title."<br />','".$event_date."','ywdhms',1)\n";
}
else
{
echo 
"CountDownTimer.AddNewEvent('".$event_title."<br />','".$event_date."','ywdhms',".$count.")\n";
}
$count++;
}
}
echo 
"CountDownTimer.DisplayTime(FormatResults)\n";
echo 
"</script>\n";
$db->free_result($getevents);
unset(
$events);
$output=ob_get_contents();
ob_end_clean(); 
To create a forum block...
  1. Navigate to AdminCP -> Forums & Moderators -> Forum Blocks Manager
  2. Click the Add Block button
  3. From the drop down list select Custom HTML/PHP
  4. Click the Continue button
  5. Give the block a title (e.g. Event Countdown) and a short description
  6. Set the cache time to 1 minute
  7. In Content Type select PHP
  8. In Content paste the PHP code above in to the text box
  9. Click the Save button

You can set the value for $event_calendarid to the calendar that you want countdown events to come from. Change $no_events_message to the HTML you want to have appear when there are no events left in the selected calendar.

This is the first widget I've written so if you spot any errors or improvements that can be made then please let me know.

If you have an all day event in the calendar the countdown is to the begining of that day. Add a ranged event to the calendar for an exact time. Also, allow for any changes that may occur if a change to or from DST occurs.

Added ob_start(); to beginning of script (17th Oct, 2010)

To have a picture make the Title of the event in the calendar the HTML to display the picture. For example...
HTML Code:
Your Event<br /><img src="images/picture.gif" width="140" height="130" alt="">
...which shows as the text above in the calendar title, but displays as text and a picture in the countdown.

Download Now

File Type: zip eventcountdown.zip (1.6 KB, 389 views)

Screenshots

File Type: jpg eventcountdown.jpg (8.2 KB, 0 views)

Show Your Support

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

Comments
  #2  
Old 10-15-2010, 08:24 PM
betts02's Avatar
betts02 betts02 is offline
 
Join Date: Jun 2009
Posts: 910
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

REQUESTS :

Allow upto 5 events
Forum Block

Cheers
Reply With Quote
  #3  
Old 10-15-2010, 08:30 PM
JohnKF JohnKF is offline
 
Join Date: Oct 2010
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'll do that but in the meantime just change the number 2 at the end of this line...

("SELECT eventid, title, dateline_from from " . TABLE_PREFIX . "event WHERE calendarid='".$event_calendarid."' $and order by dateline_from ASC LIMIT 2");

...to the number of events you want picking up.

The JavaScript can handle many events.

What's Forum Block? I only started using vBulletin a week or so ago and I'm not completely familiar with it yet.
Reply With Quote
  #4  
Old 10-15-2010, 09:39 PM
betts02's Avatar
betts02 betts02 is offline
 
Join Date: Jun 2009
Posts: 910
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Forum block is the side bar if you wish

Check my site in the link below to see the side blocks i have
Reply With Quote
  #5  
Old 10-15-2010, 09:48 PM
paarmis.queen paarmis.queen is offline
 
Join Date: Oct 2010
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

tnx installed
Reply With Quote
  #6  
Old 10-16-2010, 06:28 AM
JohnKF JohnKF is offline
 
Join Date: Oct 2010
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thank betts02. I assume then that you wanted multiple countdowns to be displayed. The script only shows a single countdown to the next event. Once that has been reached it starts the countdown to the second event. If the visitor arrives at a page with the countdown running a few seconds before zero then once zero arrives the second countdown will start. This is the reason for picking up 2 events. I'll look at allowing for multiple countdows to be show, say the first one from each calendar.
Reply With Quote
  #7  
Old 10-16-2010, 06:50 AM
ProFifaLeagues's Avatar
ProFifaLeagues ProFifaLeagues is offline
 
Join Date: Aug 2009
Location: Uk
Posts: 1,191
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Be great in the forum block if you can do mate
Reply With Quote
  #8  
Old 10-16-2010, 06:50 AM
betts02's Avatar
betts02 betts02 is offline
 
Join Date: Jun 2009
Posts: 910
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

What i wanted if possible is for this in a forum block

Shows events 1-5

Event 1 shall be on countdown
Event 2-5 shall be shown

As soon as event 1 has been and gone, It removes the event and places event 2 on countdown

Then event 6 shall become event 5 and be shown
Reply With Quote
  #9  
Old 10-16-2010, 07:02 AM
JohnKF JohnKF is offline
 
Join Date: Oct 2010
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Noted. Suggest you have a quick try of it as it stands so that you can see how an event countdown is show regarding width for an event that's a few weeks off.

Also I forgot to mention another slight change you can make...
In the widget PHP code find 'ywdhms' which appears twice. This sets which units appear in the countdown. The default is to show a countdown in Years, Weeks, Days, Hours, Minutes and Seconds.

You can pick which units are shown, so for a seconds only countdown you should just need 's' and for Days, and Minutes it would be 'dm'.
Reply With Quote
  #10  
Old 10-16-2010, 07:29 AM
betts02's Avatar
betts02 betts02 is offline
 
Join Date: Jun 2009
Posts: 910
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Tried it in a forumblock and it just messes all my forums up
Reply With Quote
Reply


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 03:05 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04607 seconds
  • Memory Usage 2,334KB
  • Queries Executed 24 (?)
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
  • (2)bbcode_html
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (10)post_thanks_box
  • (10)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (10)post_thanks_postbit_info
  • (9)postbit
  • (2)postbit_attachment
  • (10)postbit_onlinestatus
  • (10)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_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete