vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.0 Full Releases (https://vborg.vbsupport.ru/forumdisplay.php?f=33)
-   -   Mini Calendar (https://vborg.vbsupport.ru/showthread.php?t=68117)

Colin F 08-07-2004 10:00 PM

Mini Calendar
 
Mini Calendar

What it does:
The Mini Calendar is just what it's name says. It allows you to add a small calendar to any or all vBulletin page(s). It links back to the month, next and previous month as well as any days with an event.

Is it complicated?
Installation is easy. Just include the cal.php file on any page that you want it shown, make one new template and insert $smallcalendar at the exact place you want it shown. Look at the instructions below.

Changes:
New files (1):
cal.php

Changed files(0-1):
depending on where it should be shown

New database fields/tables(0):
none

New templates(1):
small_calendar

Changed templates(1-2):
wherever mini calendar should be shown
(phpinclude_start, if shown on all pages)

New phrases(0):
none

Screenshots:
see attachmentsInstructions:
  • Backup all your files as well as your database.
    For help backing up your database, look here: http://www.vbulletin.com/docs/html/m...atabase_backup
  • Upload cal.php (attachment) to your forum home directory
  • Make a new template with the name small_calendar and insert the contents of template.txt (attachment) into it
  • Decide if you want to have your mini calendar on specific pages or on all your pages
    • If you decide to have the mini calendar on all your pages (for example in a sidebar) edit your phpinclude_start template and add
      PHP Code:

      include ("cal.php"); 

      to the end of it.
    • If you only want the mini calendar on specific pages, open the php file that makes that page and under
      PHP Code:

      require_once('./global.php'); 

      add
      PHP Code:

      include ("cal.php"); 

  • edit the template that shows the area in which you want to insert your mini calendar and add $smallcalendar to the exact spot where your mini calendar should be shown.
Donations: This hack will always be free, however your donations are kindly accepted and will help towards further development. If you donate, please leave me some info (either your forum site or username at vB.org) so that I can thank you.

Install:
Don't feel like donating, but still want to thank me for my work? Click the install button to show your appreciation. As a great side effect, you'll get an email update once there is a bigger update or important security fix!

Updates:
10.08.2004: Updated cal.php to fix (hopefully) the events being on the wrong day with far out timezones.

Colin F 08-08-2004 02:58 PM

Tips and Tricks

But its... *english*?!?
To translate the few hardcoded dayvalues, go to lines 21-27 and edit the Su, Mo Tu, We, Th, Fr, Sa values near the end of each line to your liking.
DON'T change these values if you think there's a problem with the first day of the week! The script checks on the browsing users start of week day and changes the mini calendar so that the day is also all the way on the left!

German:
PHP Code:

$dayname_su="<td class=\"thead\">Su</td>";
$dayname_mo="<td class=\"thead\">Mo</td>";
$dayname_tu="<td class=\"thead\">Di</td>";
$dayname_we="<td class=\"thead\">Mi</td>";
$dayname_th="<td class=\"thead\">Do</td>";
$dayname_fr="<td class=\"thead\">Fr</td>";
$dayname_sa="<td class=\"thead\">Sa</td>"

French:
PHP Code:

$dayname_su="<td class=\"thead\">Di</td>";
$dayname_mo="<td class=\"thead\">Lu</td>";
$dayname_tu="<td class=\"thead\">Ma</td>";
$dayname_we="<td class=\"thead\">Me</td>";
$dayname_th="<td class=\"thead\">Je</td>";
$dayname_fr="<td class=\"thead\">Ve</td>";
$dayname_sa="<td class=\"thead\">Sa</td>"

How can I have it use my other calendar?
If you have more than one calendar and would like mini calendar to pull the events from a different calendar, do the following:
  • Go to yourforums.com/pathtoyourforum/calendar.php?s=&month=6&year=2004&do=&c=1
  • Pick the calendar you want to use as the base for mini calendar from the Calendar Jump box on the bottom right.
  • Now look in your adressbar. The adress should be something like
    Code:

    yourforums.com/pathtoyourforum/calendar.php?s=&month=6&year=2004&do=&c=1
    Look for the c variable (marked green above) and write that down or remember that or whatever
  • Edit cal.php. Change the variable $calendarid on line 5 to the value of that c variable you picked out of the adress.
  • save / reupload

nexialys 08-08-2004 03:08 PM

thanks for the final release!

PUPSTAHS 08-09-2004 08:33 PM

Hi Colin,
Excellent work, but the single all-day events still do not appear correctly for me (and others). Example:

A single all-day event on August 20th appears on the Mini Calendar on August 19th, thereby resulting in an incorrect link and a "no events to display" error from the calendar. Using a ranged event works fine, but all-day events result in erroneous links to the previous day every time.

FYI I did a straight, simple install, with no modifications.

Any help would be great, as I love the idea.

Colin F 08-10-2004 04:03 AM

S***!

Ok...
I'm thinking it has something to do with your timezone. what timezone are you in?

PUPSTAHS 08-10-2004 07:40 AM

Hmm

I'm PST... (-8:00)

Colin F 08-10-2004 09:48 AM

I have an idea... but I don't have access to phpmyadmin here at work. I'll look at it when I come home :)

spence2 08-10-2004 12:07 PM

To be clear ... the .php I alter should look like:

require_once('./global.php');
include ("cal.php");

Is this correct?
So far I'm having trouble getting this to work, so I wanted to clarify.
Thanks.

Colin F 08-10-2004 03:00 PM

Quote:

Originally Posted by spence2
To be clear ... the .php I alter should look like:

require_once('./global.php');
include ("cal.php");

Is this correct?
So far I'm having trouble getting this to work, so I wanted to clarify.
Thanks.

That is correct spence2.

PUPSTAHS 08-10-2004 05:05 PM

Regarding the all-day-event bug--

I'm no PHP or vBulletin expert, but it seems strange that a different time zone would be causing a problem that seems to only deal with dates, not times.

I could be wrong tho... mostly I just want my mini-calendar up and kicking :squareeyed:

Colin F 08-10-2004 05:43 PM

If someone with this problem could give me access to their site as well as ftp for trying this out, I would be most grateful.

In the meantime, could someone try the following:
exchange this: $eventdateday = date("mj",$event[dateline_from]);

with this: $eventdateday = vbdate("mj",$event[dateline_from],false,true,false,true);

PUPSTAHS 08-10-2004 06:29 PM

Ok I just tried that out... it seems to fix half of the problem. Now all-day-events are shown on the correct day, but if you click the link, it still goes to the day before.

So for example, before the fix an all-day August 14th event would appear on August 13th and link to August 13th, resulting in an error. Now it appears on August 14th on the mini calendar, but still links to the 13th, so there is still an error.

For more information, here is August 2004 on my mini calendar.

Original, unmodified install:
*12th - Midnight to 9AM
--Correct
*14th - All-day
--Incorrect, the 13th is highlighted/linked instead and the link points to the 13th
*20th - All-day
--Incorrect, the 19th is highlighted/linked instead and the link points to the 19th
*21st (8am) to 22nd (9am)
--Only the 21st is highlighted as having an activity, even tho the event extends over two days
*29th - 8am - 11:30pm
--Correct
*30th - All-day
--Incorrect, the 29th is highlighted/linked instead and the link points to the 29th

Now w/ your fix:
*12th - Midnight to 9AM
--Correct
*14th - All-day
--The correct day is highlighted, but the link points to the 13th, resulting in an error
*20th - All-day
--The correct day is highlighted, but the link points to the 19th, resulting in an error
*21st (8am) to 22nd (9am)
--Only the 21st is highlighted as having an activity, even tho the event extends over two days
*29th - 8am - 11:30pm
--Correct
*30th - All-day
--The correct day is highlighted, but the link points to the 29th, resulting in an error

spence2 08-10-2004 06:40 PM

Hi, Colin ... thanks for the hack!, which I got working on my forumhome ... but, of course, I wanted MORE, so I decided to try to make a second small calendar as well. Here's what I did:

First, I completed the hack for one calendar ... then:

Made second (duplicate) template and named it small_calendar_bal.

Duplicated cal.php and named it bal.php
assigned it to:
$calendarid = 2;
Replaced all instances of $calendarbits with $balendarbits
changed the last line of that file to:
eval("\$smallcalendarbal .= \"".fetch_template("small_calendar_bal")."\";") ;

Uploaded bal.php
Called it from the template: $smallcalendarbal

Added this in index.php:
require_once('./global.php');
include ("cal.php");
include ("bal.php");

Both instances now link to the correct calendars.
HOWEVER, entries made in either calendar show up as day links in both.
While if incorrect, they link to the "no entry" error page ... it would be sweet if I could correct his one remaining problem.

Any ideas?

Colin F 08-10-2004 06:51 PM

OK, to fix the wrong link problem, find:
$eventday= date("Y-n-j", $event[dateline_from]);

replace with:
$eventday= vbdate("Y-n-j", $event[dateline_from],false,true,false,true);

Do this with all three instances of the find text.
I'll upload an updated cal.php shortly.

Colin F 08-10-2004 06:59 PM

Great that you got it to wrok spence2!

Could you add an event on calendar 1 and an event on a different date in calendar 2?
Then check which event is displayed (linked) on each of your three minicalendars.

PUPSTAHS 08-10-2004 06:59 PM

Works like a dream, thank you! Definitely going to be making good use of this... keep up the good work.

Colin F 08-10-2004 07:04 PM

See the bottom part of my first post to see what's to do if you like/installed the hack ;)

[high]* Colin F is happy it's finally working![/high]

PUPSTAHS 08-11-2004 03:37 PM

Quote:

Originally Posted by Colin F
See the bottom part of my first post to see what's to do if you like/installed the hack ;)

[high]* Colin F is happy it's finally working![/high]

Well it's *close* to perfection :) ... ranged events still don't work! Unlike the mini calendars on the main calendar page, the mini calendar hack only shows the first day of a ranged event as having an event.

i.e. i've got a ranged event from August 14th to 15th, but only August 14th on the mini calendar has a link.

I've been using your hack for the last few days, and I think that's the last bug.

Colin F 08-12-2004 09:36 AM

I also don't use ranged events on my calendar :)

But I'll look into it aswell when I get home this evening.

spence2 08-12-2004 12:54 PM

Quote:

Originally Posted by Colin F
Great that you got it to wrok spence2!

Could you add an event on calendar 1 and an event on a different date in calendar 2?
Then check which event is displayed (linked) on each of your three minicalendars.

Still have events showing up in all calendars (see post #13).
Thanks

PUPSTAHS 08-12-2004 04:50 PM

Quote:

Originally Posted by Colin F
I also don't use ranged events on my calendar :)

But I'll look into it aswell when I get home this evening.

Hehe... yea, it'd just be a cool feature to have. Also having the preview text for the day's events when you hover over the link would be damn cool.

If you don't get around to it I might give it a shot down the line.

Colin F 08-12-2004 05:27 PM

Can you try it with this file?

I did something for the ranged events...

Eventpreview is kind of complicated. What should I do if there are 5 events? which one is the first?

PUPSTAHS 08-12-2004 06:32 PM

I'd say ignore the ordering... it's more of a nice small feature than anything that should be robust, in my opinion... so just grab the events so people can see what's going on.

As for the ranged events... very close to working. The one bug I have seems to be related to timezone offset. Since I'm PST (-8), any event 4pm or after is showing up for the next day instead.

Colin F 08-12-2004 07:03 PM

Any event that starts 4pm or after is showing up for the next day....

Can you check if this is only for ranged events or also for recurring events?
If so, then it's most probably the utc field in the database...

Colin F 08-12-2004 07:10 PM

Here's an updated file, try this and tell me if it works please...

PUPSTAHS 08-12-2004 08:43 PM

Hmm, that just seems to have pushed the threshold back an hour, to 5pm. The bug happens with any event that allows you to schedule a time.

Anytime that's 5pm or after appears for the next day. So if I have a single-day ranged event from 9pm-11pm on August 10th, the link will appear on August 11th.

Colin F 08-13-2004 04:17 AM

Quote:

Originally Posted by PUPSTAHS
Hmm, that just seems to have pushed the threshold back an hour, to 5pm. The bug happens with any event that allows you to schedule a time.

Anytime that's 5pm or after appears for the next day. So if I have a single-day ranged event from 9pm-11pm on August 10th, the link will appear on August 11th.

Now that's unusual... I have no idea why it should push it back only 1 hour...

spence2 08-13-2004 05:46 AM

Daylight Savings Time?

Colin F 08-13-2004 10:12 AM

I don't see how it can be daylight savings time, as I "actually" didn't touch anything that has to do with that. Thanks for the input though...

Why dont you try changing the three occurences of $theday = date( to $theday = gmdate(

I'll also look into changing the thing checking the date, if that doesn't solve the problem.

PUPSTAHS 08-13-2004 07:44 PM

Ok it has to be a time-zone bug. Because when you enter calendar event data it allows you to choose the timezone, so vbulletin must be doing some additional calculations based on the user's own timezone selection, and the timezone for which the event was added.

Pacific Time (for both event and user setting):
August 14th 8am - 4:30pm ---works fine
August 14th 8am - 5:00pm ---links the 15th as well

Colin F 08-13-2004 07:54 PM

meaning, we have the date going till the 15th.
So I'm assuming vB is actually reading it as: August 14th 4:00pm - August 15th 1:00am

Is this *with* gmdate?

PUPSTAHS 08-13-2004 10:55 PM

Yep, that's exactly what it seems like it's doing, with gmdate. Quite weird.

I wish there were other people trying this out too so I didn't feel insane :o

Colin F 08-15-2004 06:13 AM

If this doesn't work, then I guess I'll have to redo a big part... oh well...

Thanks for helping me sort this out PUPSTAHS

jlegge 09-08-2004 12:20 PM

Is it possible to port this to a page outside of vB? For example, I have my main index at http://www.milwaukeenights.com/index.php and my forums are located in a sub domain at http://forums.milwaukeenights.com . I want to show the mini calendar on my index page outside of vB but some reason I am just getting a blank spot where the calendar should. Not even a db error message or anything, just an empty spot....

Bieddos 09-20-2004 09:04 PM

to put this minicalendar here http://www.elaborare.info/forum/vbul...splay.php?f=25 what i must modificate???

Ber|Art 10-20-2004 10:38 AM

Hi, can you put some examples where to put the "$smallcalendar", where did you put it?

traderx 11-10-2004 03:20 PM

Hello Colin.... I have changed the size to 160 pixels and removed all of the padding... how can I fix the top to be on one line, my month looks like this

< November 2004
>

where can I edit this to take care of it.

Colin F 11-10-2004 03:25 PM

You should be able to edit this in the template, I think the current width is 200, so just exchange that with whatever you want.

traderx 11-10-2004 03:29 PM

BUMP... cuz I edit the post right after I posted, but before your reply..... sorry

Colin F 11-10-2004 03:32 PM

You'll have to use a smaller font size, as that's the problem. Having it on one line will just stretch the table, making it bigger than those 160 pixels you wanted.


All times are GMT. The time now is 06:04 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.01505 seconds
  • Memory Usage 1,850KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (5)bbcode_php_printable
  • (5)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete