Go Back   vb.org Archive > vBulletin Modifications > vBulletin 4.x Modifications > vBulletin 4.x Add-ons

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
  #42  
Old 10-30-2010, 03:21 PM
Cooleyvol Cooleyvol is offline
 
Join Date: Jul 2006
Posts: 60
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks, bro! That took care of it!
Reply With Quote
  #43  
Old 11-04-2010, 02:23 AM
OldSchoolDSL OldSchoolDSL is offline
 
Join Date: Oct 2010
Posts: 1,196
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm having a hard time getting it to work on my site. It should be counting down to New Years, but rather it keeps counting down to the end of Day Light Savings time. I'm very sure the event is ID 1 is for new years on my calendar
Reply With Quote
  #44  
Old 11-04-2010, 07:27 AM
JohnKF JohnKF is offline
 
Join Date: Oct 2010
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by OldSchoolDSL View Post
I'm having a hard time getting it to work on my site. It should be counting down to New Years, but rather it keeps counting down to the end of Day Light Savings time. I'm very sure the event is ID 1 is for new years on my calendar
The only ID you can change is the $event_calendarid which should be set to the calendar id that you want countdown events to come from. Calendar ID 1 is most likely your default calendar. I would recommend creating a new calendar for admin view only which can contain only events that should appear in the countdown. Doing this allows you to include HTML in the title for pictures, formatting, etc. and prevents anyone else seeing what events you have set for a countdown.

When you select a calendar you will see the ID in the address bar of your browser...
/calendar.php?calendarid=1

Also, try to always have another event ready for countdown after the first event has reached zero. The code picks up the first two events and counts down to the first one, then starts the second event countdown.
Reply With Quote
  #45  
Old 11-04-2010, 12:43 PM
OldSchoolDSL OldSchoolDSL is offline
 
Join Date: Oct 2010
Posts: 1,196
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The only count down I'd like it to do is from my default calender & from my Holiday Manager. It's pointing to a revolving event (new years, 1x each year, every year).

Do you plan on release a new version to which can be easily configured via The Admin Control Panel or would I always need to edit script code?
Reply With Quote
  #46  
Old 11-05-2010, 09:54 AM
JohnKF JohnKF is offline
 
Join Date: Oct 2010
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It's unlikely that I'll create a version that's edited via the control panel as creating a special calendar for events, with permissions set to admin view only, provides all the control you need without the need to visit the control panel.
Reply With Quote
  #47  
Old 11-05-2010, 02:23 PM
Dreadan Dreadan is offline
 
Join Date: Oct 2010
Posts: 1
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Is there any way to have it show reoccurring events?
Reply With Quote
  #48  
Old 11-05-2010, 07:07 PM
JohnKF JohnKF is offline
 
Join Date: Oct 2010
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't think you can stop it showing recurring events. That's wrong it seems. Must be the way recurring events are stored using the first one as a seed; once the first one has passed there are no further entries in the database.
Reply With Quote
  #49  
Old 11-05-2010, 09:19 PM
denman75 denman75 is offline
 
Join Date: Aug 2006
Location: Netherlands
Posts: 228
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

the calender only goes to 2010 ,u cant select 2011 yay we need bug killer here.
Reply With Quote
  #50  
Old 11-06-2010, 04:21 AM
psypher psypher is offline
 
Join Date: Dec 2009
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

works good
Reply With Quote
  #51  
Old 11-06-2010, 08:31 AM
JohnKF JohnKF is offline
 
Join Date: Oct 2010
Posts: 17
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by denman75 View Post
the calender only goes to 2010 ,u cant select 2011 yay we need bug killer here.
You set the range of the calendar in AdminCP
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 04:03 PM.


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.04672 seconds
  • Memory Usage 2,333KB
  • 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
  • (2)bbcode_html
  • (1)bbcode_php
  • (2)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