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
  #32  
Old 10-26-2010, 09:01 AM
cindy helmond cindy helmond is offline
 
Join Date: Feb 2006
Location: The Netherlands
Posts: 334
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by starman? View Post
Is the URL in the script code for the js file pointing to the right place?
Basic url: www.yoursite.com/forum

working url ? www.yoursite.com/forum/scripts/js ???? ore without www.
Reply With Quote
  #33  
Old 10-26-2010, 11:51 AM
DjEddie DjEddie is offline
 
Join Date: Nov 2007
Posts: 244
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by starman? View Post
Is the URL in the script code for the js file pointing to the right place?
hi .. yes its pointing to the right place, it has been double checked ..

also when trying this on the widget cms side .. it only shows todays date in the countdown area .. so forum block and widget aren't working for me atm :S

thanks for the help
Reply With Quote
  #34  
Old 10-27-2010, 12:59 AM
Cooleyvol Cooleyvol is offline
 
Join Date: Jul 2006
Posts: 60
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I need some help on creating a side block. I paste the code in when creating a block and have already added a calendar event.

When I go to the forum, all it shows is the code.

What are the selections I need to choose when creating a side block using this code?
Reply With Quote
  #35  
Old 10-28-2010, 11:09 AM
JohnKF JohnKF is offline
 
Join Date: Oct 2010
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

When you create a Forum Block you need to select PHP in the Content Type section.
Reply With Quote
  #36  
Old 10-28-2010, 11:24 AM
JohnKF JohnKF is offline
 
Join Date: Oct 2010
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The code uses the title of the event in the calender to display above the countdown.

I suggest you create a calendar specific to Countdown Events and set it for Admin view only; as long as you set the correct calender ID in the code it will still be picked up.

To have a picture make the Title of the event in the calendar the HTML to display the picture. For example in the forum I look after I have the following as an event title...

HTML Code:
Halloween Evening<br /><img src="files/bv/images/halloween/pumpkin.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.

You can see this at http://www.buckshawvillage.com/forum.php

You can use whatever HTML you like in the event title.

The code on that site is set up a little different to that posted here. Seconds are not shown until less than 24 hours. At zero there is a firework display over the page which lasts for 1 minute. Other than that it functions the same and the HTML title will work fine.
Reply With Quote
  #37  
Old 10-28-2010, 05:10 PM
Cooleyvol Cooleyvol is offline
 
Join Date: Jul 2006
Posts: 60
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by JohnKF View Post
When you create a Forum Block you need to select PHP in the Content Type section.

I did select php and then pasted the code in. As I said, once I create an event in the calendar, the side block shows the code I input from here instead of the event countdown.

I'm sure its something simple, but I don't know how else to paste code and choose 'php' as the content type.
Reply With Quote
  #38  
Old 10-29-2010, 09:06 PM
Cooleyvol Cooleyvol is offline
 
Join Date: Jul 2006
Posts: 60
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It was something simple. I'm a doofus.
Reply With Quote
  #39  
Old 10-30-2010, 07:11 AM
JohnKF JohnKF is offline
 
Join Date: Oct 2010
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Cooleyvol View Post
It was something simple. I'm a doofus.
Share it with us please; it may help others who make a similar mistake.
Reply With Quote
  #40  
Old 10-30-2010, 11:32 AM
Cooleyvol Cooleyvol is offline
 
Join Date: Jul 2006
Posts: 60
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I didn't put the line of code in the template as instructed. haha.

I did input my first event and the countdown was off by an hour, so I deleted the event and put it up again an hour different, but the countdown remained the same.

Any way to clear that? Is it cached?
Reply With Quote
  #41  
Old 10-30-2010, 12:32 PM
JohnKF JohnKF is offline
 
Join Date: Oct 2010
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You need to set the cache time to 1 minute.

For a widget this is done via the Configure link.
For a forum block this is done via the Edit link.

If the cache time is set too high, say 60 minutes, then a visitor may get a countdown that could be up to an hour out of date.

Even at 1 minute it will take up to 1 minute before a change in an edited event is replicated in the countdown.

If you're in a time zone that's currently using DST you should check your event as soon as DST ends as it may be an hour out in the countdown.
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 08:53 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.04976 seconds
  • Memory Usage 2,356KB
  • Queries Executed 26 (?)
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
  • (3)bbcode_html
  • (1)bbcode_php
  • (4)bbcode_quote
  • (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
  • (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
  • (2)postbit_attachment
  • (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_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