View Full Version : Inherent Calendar Hack
ryancooper
02-22-2004, 05:33 PM
How can I make it so when anyone posts on a calendar it automatic adds the event to the default calendar?
Example. I have 10 calendars and give one to each mod. If they post a event on there calendar the default calendar gets it as well.
Thanks,
Ryan
ryancooper
02-22-2004, 06:26 PM
Can someone shoot this over to the VB3 request board? Thanks
assassingod
02-22-2004, 06:29 PM
Moved.
dotcomguy
08-11-2004, 07:17 PM
*bump*
I have a similar request...
Hi, I am developing a site which will use vB3 to manage calendars for various groups associated with the site. Each group will have different events/activities, hence a separate calender is being created for each group. What I would like is the ability to display an individual calendar as well as a merged calendar displaying all events regardless of the public calendar to which they were posted. This way people will be able to view one combined calendar or just that showing the events for a certain group if they prefer.
I presume that this would not be a difficult modification. A parameter in the URL could tell the existing calendar script do modify the query so that all public events are taken from the database for the given time period. Or if the calendar specified is a certain ID, then all events would be selected. The events wouldn't have to be posted on two calendars as the initial post suggests; the default/master calendar would simply display events from any calendar.
Any help would be appreciated. :)
dotcomguy
08-17-2004, 03:04 PM
Ok, well I tried something on my own since I didn't get many responses here. In order to get all events to display regardless of calendar when the default calendar (calendarid=1) is selected, I modifed includes/functions_calendar.php around line 632:
if ($calendarinfo[calendarid] == 1) {
$events = $DB_site->query("
SELECT event.*,
user.username, IF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid,
IF(dateline_to = 0, 1, 0) AS singleday
" . iif($bbuserinfo['userid'], ", subscribeevent.eventid AS subscribed") . "
FROM " . TABLE_PREFIX . "event AS event
LEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.userid = event.userid)
" . iif($bbuserinfo['userid'], "LEFT JOIN " . TABLE_PREFIX . "subscribeevent AS subscribeevent ON (subscribeevent.eventid = event.
WHERE((dateline_to >= $beginday AND dateline_from < $endday) OR (dateline_to = 0 AND dateline_from >= $beginday AND dateline_from
visible = 1
");
}
else {
$events = $DB_site->query("
SELECT event.*,
user.username, IF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid,
IF(dateline_to = 0, 1, 0) AS singleday
" . iif($bbuserinfo['userid'], ", subscribeevent.eventid AS subscribed") . "
FROM " . TABLE_PREFIX . "event AS event
LEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.userid = event.userid)
" . iif($bbuserinfo['userid'], "LEFT JOIN " . TABLE_PREFIX . "subscribeevent AS subscribeevent ON (subscribeevent.eventid = event.
WHERE calendarid = $calendarinfo[calendarid] AND
((dateline_to >= $beginday AND dateline_from < $endday) OR (dateline_to = 0 AND dateline_from >= $beginday AND dateline_fr
visible = 1
");
}
Basically, if the calendarid is 1, it removes the one "WHERE" clause from the query.
SamirDarji
09-02-2004, 07:31 PM
Wow, I was looking to do the same thing. Can you still add events directly to the default calendar as well? I was thinking the same thing except something more along the lines of having "sub-calendars" just like the sub-forums. Then each calendar that is a sub-calendar is a calendar in its own right, but all of the sub-calendar events will show on the parent calendar, and the parent calendar is still also a calendar in its own right. From what I have gathered, your mod will have all other calendar events list on the default calendar, correct?
Great mod, btw. There is so much that can be done with the calendars and so much is needed. If you plan on doing more calendar mods, let me know. I have a lot I want to do that you may also find useful.
dotcomguy
09-13-2004, 12:00 PM
Can you still add events directly to the default calendar as well? I was thinking the same thing except something more along the lines of having "sub-calendars" just like the sub-forums. Then each calendar that is a sub-calendar is a calendar in its own right, but all of the sub-calendar events will show on the parent calendar, and the parent calendar is still also a calendar in its own right. From what I have gathered, your mod will have all other calendar events list on the default calendar, correct?
With my small modification, you can still add events to the default calendar (1). It doesn't really change much to be honest. Basically, if the default calendar is specified, all events from all calendars will be displayed.
Great mod, btw. There is so much that can be done with the calendars and so much is needed. If you plan on doing more calendar mods, let me know. I have a lot I want to do that you may also find useful.
Thanks. :) I don't really plan on doing any others since my php skills are quite limited, and I'm busy with other projects. :p
bademantel
09-21-2004, 09:51 AM
@DDD
exactly what I need - almost!
Well it does work on the entry-page in my forum, but it does not show the events in the actual calendar. Have you got any idea why?
The functions_calendar.php I have does vary slightly from the one you posted:
if($calendarinfo[calendarid]==1){
$events = $DB_site->query("
SELECT event.*,
user.username, IF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid,
IF(dateline_to = 0, 1, 0) AS singleday
" . iif($bbuserinfo['userid'], ", subscribeevent.eventid AS subscribed") . "
FROM " . TABLE_PREFIX . "event AS event
LEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.userid = event.userid)
" . iif($bbuserinfo['userid'], "LEFT JOIN " . TABLE_PREFIX . "subscribeevent AS subscribeevent ON (subscribeevent.eventid = event.eventid AND subscribeevent.userid = $bbuserinfo[userid])") . "
WHERE ((dateline_to >= $beginday AND dateline_from < $endday) OR (dateline_to = 0 AND dateline_from >= $beginday AND dateline_from <= $endday )) AND
visible = 1
");
}
else {
$events = $DB_site->query("
SELECT event.*,
user.username, IF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid,
IF(dateline_to = 0, 1, 0) AS singleday
" . iif($bbuserinfo['userid'], ", subscribeevent.eventid AS subscribed") . "
FROM " . TABLE_PREFIX . "event AS event
LEFT JOIN " . TABLE_PREFIX . "user AS user ON (user.userid = event.userid)
" . iif($bbuserinfo['userid'], "LEFT JOIN " . TABLE_PREFIX . "subscribeevent AS subscribeevent ON (subscribeevent.eventid = event.eventid AND subscribeevent.userid = $bbuserinfo[userid])") . "
WHERE calendarid = $calendarinfo[calendarid] AND
((dateline_to >= $beginday AND dateline_from < $endday) OR (dateline_to = 0 AND dateline_from >= $beginday AND dateline_from <= $endday )) AND
visible = 1
");
}
And also funny is the fact that it does not make any differences if I leave out the WHERE clause or not. It still does show the events on the entry-page but not in the calendar itself???
Have you got any clue what I can do?
THX Andreas
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.