Version: 1.00, by Colin F
Developer Last Online: Apr 2014
Version: 3.0.3
Rating:
Released: 07-10-2004
Last Update: Never
Installs: 19
Re-useable Code Translations Is in Beta Stage
No support by the author.
New Thread on Calendar Event
What it does:
This rather small hack is easy: it starts a new thread in a specific forum for every Event that is posted in the calendar. On our forum it is used for discussion of partys (as it's a party calendar).
Is it complicated?
There is actually very little to change, but in that small part, there are a lot of variables to be edited which are forum specific. That might make it a bit hard for php newlings
Changes: New files (0):
none
Changed files(1):
calendar.php
New database fields/tables(0):
none
New templates(0):
none
Changed templates(0):
none
New phrases(0):
none
Screenshots:
No visible changes
Instructions:
Backup all your forum files as well as your database
Copy the following code into your favorite PHP editing program (Dreamweaver, Wordpad, Notepad...) and edit it to fit your forums.
PHP Code:
$forumid = 1; // forumid in which to post
$botuserid = 1; //userid of poster
$botusername = "EventBot"; // username of poster
$dateformat = "m-d-y";
$threadtitle = "[".vbdate($dateformat, $dateline_from,false,true,false,true)."] ".$title;
$postmessage = "This is an automatically generated thread for the event [b]".$title."[/b].
More information on this event is available on [url=".$vboptions['bburl']."/calendar.php?".$session[sessionurl]."do=getinfo&e=".$eventid."&day=".vbdate("Y-n-j",TIMENOW,false,true,false,true)."&c=".$calendarid."]this page[/url].";
$iconid = 0;
forumid is the forumid of the forum in which the Bot will be posting the threads to the calendar events
botuserid is the userid of the user that will be shown as the author of the thread. I suggest making a special user and naming him something like EventBot
botusername is the username of the user that will be shown as the author of the thread. Should be the username to the userid indicated in botuserid. Make sure the username is enclosed in quotation marks ("").
Open your calendar.php and look for
PHP Code:
if ($calendarinfo['neweventemail'])
Above that add the code you just edited.
Show Your Support
This modification may not be copied, reproduced or published elsewhere without author's permission.
There are about 3 different versions in this thread.
I used Collin's original code, but modified to user usernames etc ect rather than bots. I also used the rolling 24 hour method rather than the midnight-midnight method. I will try KirbyDE's method and report back on how that works. I should have done that in the first place, I just got ahead of myself I guess when the error popped up hehe.
Edit: Tried Kirby's code and it doesn't create a thread. Is it just code to replace Collin's completely, or is it supposed to be added in somewhere? I am sorry for my noobness, but I really don't know alot about this stuff. I don't think I am the only one who had this problem though...
Quote:
Originally Posted by YLP1
Newbie here...... Where would KirbeDEs code go and is his code in addition to Colin's?
I am going to integrate your checkbox hack as well, Torqued, whenever I can straighten this out. Maybe someone who has this working could just put the hacked code from their calander.php here?
Beautiful, Colin. And big thanks to Torqued for compiling everything and printing exact instructions for adding the check box option (EXACTLY what I was looking for).
Installed.
*** Edited additional question***
Been testing it. Question: What does this hack do with re-occurring events? Still only initiate one thread (the very first time you post the event), then never again, despite the fact the event reoccurs?
Because the only one extra thing I'd REALLY want:
the ability to make this only post the new thread on the actual date of the event.
That is, say you have an event on July 4th. I'd like the hack to allow me to enter a calendar event for the 4th, and then *only when it get's to the 4th* post that event.
Re-occurring events would initiate a new thread every time the event reoccurred.
Been testing it. Question: What does this hack do with re-occurring events? Still only initiate one thread (the very first time you post the event), then never again, despite the fact the event reoccurs?
Because the only one extra thing I'd REALLY want:
the ability to make this only post the new thread on the actual date of the event.
That is, say you have an event on July 4th. I'd like the hack to allow me to enter a calendar event for the 4th, and then *only when it get's to the 4th* post that event.
Re-occurring events would initiate a new thread every time the event reoccurred.
Any easy way to make it do that?
It's interesting that you bring up recurring events. A similar suggestion was posted for the Event Attendance hack. The problem is in how vb treats recurring events.
Recurring events seem to be the same as a regular event in the db, but with some sort of flag that allows it to show up multiple times. But with it actually being a single entry, everything associated with that event is stored only once including any hacks applied to the event listing. I don't really see any way to do it without having something to track the various dates of a recurring event or for recurring events to be re-designed so that they actually populate the calendar with multiple event listings that can be changed individually or as a whole.
It's interesting that you bring up recurring events. A similar suggestion was posted for the Event Attendance hack. The problem is in how vb treats recurring events.
Recurring events seem to be the same as a regular event in the db, but with some sort of flag that allows it to show up multiple times. But with it actually being a single entry, everything associated with that event is stored only once including any hacks applied to the event listing. I don't really see any way to do it without having something to track the various dates of a recurring event or for recurring events to be re-designed so that they actually populate the calendar with multiple event listings that can be changed individually or as a whole.
One way I can think of around that is to run a daily query/script that looks for events scheduled for that day and then have that process create new threads for those events.
One way I can think of around that is to run a daily query/script that looks for events scheduled for that day and then have that process create new threads for those events.
Actually, what would be even better is a cron that looks at the recurring events list and then makes and event entry for a particular day if one isn't present. Then any hacks related to that particular entry would work fine. The only disadvantage is that once an event listing is created this way, changing the recurring event listing won't change the spawned event listing.
Actually, what would be even better is a cron that looks at the recurring events list and then makes and event entry for a particular day if one isn't present. Then any hacks related to that particular entry would work fine. The only disadvantage is that once an event listing is created this way, changing the recurring event listing won't change the spawned event listing.
I am NOT educated in PHP, but isn't it possible to somehow just attach the date to event listings? I mean, that coding is already in there... can't the variable {event} be distinguished from the variable {event[today's_date]} ?
I am NOT educated in PHP, but isn't it possible to somehow just attach the date to event listings? I mean, that coding is already in there... can't the variable {event} be distinguished from the variable {event[today's_date]} ?
Probably, but then what do you do for recurring events?
Probably, but then what do you do for recurring events?
Well, store that new variable, so that it's reoccurring event[5.30.05]; next months is event[6.30.05]... you can suddenly treat them (at least each of those variables) as separate events, although, for the sake of the rest of vB, they're treated as a single event.
The cron job actually sounds promising for both of the features I'd need -- actually starting the thread on the day it's scheduled (instead of simply when you enter the data on the calendar. I mean, if you're already typing in the info, why not just copy and paste it yourself into a new thread? As it stands, this hack isn't really saving you much but 2 or 3 extra mouse clicks...).
By treating each of the reoccurring events as a separate event (even if only as a separate data item) and using the cron jobs, it's open up a whole LOT of new possibilities for this hack...