Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.6 > vBulletin 3.6 Add-ons

Reply
 
Thread Tools
Automatic Calendar Reminders Details »»
Automatic Calendar Reminders
Version: 1.0.3, by Farcaster Farcaster is offline
Developer Last Online: Jun 2014 Show Printable Version Email this Page

Category: Calendar Enhancements - Version: 3.6.2 Rating:
Released: 09-23-2006 Last Update: 09-27-2006 Installs: 63
DB Changes Uses Plugins Template Edits
Code Changes  
No support by the author.

What does it do?
This hack allows your members to receive automatic reminders for all upcoming events in one or more calendars of their choice without having to request individual reminders for each event. In effect, this operates like a subscription to a calendar.

How does it work?

When opening a calendar, the user will be presented with an option just under the calendar title to subscribe or unsubscribe to the calendar. Members can request automatic reminders for all events on the calendar for one, two or three days in advance. Once per day, a digest of all upcoming events will be sent to the user advising them of upcoming events in the time frame they chose. (see attached screenshot)

Users can also unsubscribe from a calendar by going to the UserCP and Event Reminders section (see attached screenshot)

Example Email (uses the event reminder email template):
Quote:
Dear Farcaster,

The following events are scheduled to begin soon at YOUR FORUM NAME.

Upcoming events:
************
Test Event 1 (In less than 23 hour(s))
http://YOUR_URL_HERE/calendar.php?do=getinfo&e=1
In Calendar: Calendar #1 Name
************
Test Event 3 (In less than 47 hour(s))
http://YOUR_URL_HERE/calendar.php?do=getinfo&e=3
In Calendar: Calendar #2 Name
************
Test Event 2 (In less than 47 hour(s))
http://YOUR_URL_HERE/calendar.php?do=getinfo&e=2
In Calendar: Calendar #3 Name


All the best,
YOUR FORUM NAME

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unsubscription information:

To unsubscribe from this email, please visit this page and delete any future reminders:
http://YOUR_URL_HERE/calendar.php?do=viewreminder
Upgrading from previous version:
You do not need to uninstall the previous version.

To upgrade from previous version to 1.0.3:

1. Remove the Calendar Subscription cron job if it exists.
2. Delete the file includes/cron/calendar_reminder.php
3. Make the changes to the reminder.php file as specified in the instructions below.


Installation Instructions
- 1 XML upload
- 1 template modification
- 1 file edit

1. Use the Product Manager to import the product file product-rah_calendar_autoremind_1_0_3.xml

3. Use the Style Manager to add the following code to the bottom of your CALENDAR_REMINDER template:
HTML Code:
<!-- calendar subscriptions table -->
<br />
<form action="calendar.php?do=dosubscriptions" method="post" name="unsubscribe">
<input type="hidden" name="s" value="$session[sessionhash]" />
<input type="hidden" name="do" value="dosubscriptions" />


<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
<tr>
    <td class="tcat" colspan="3">
        Calendar Subscriptions
    </td>
</tr>
<if condition="$show['havesubscriptions']">
<tr>
    <td class="thead">
        Calendar
    </td>
    <td class="thead" nowrap="nowrap"><a href="$sorturl&order=asc&sort=reminder">$vbphrase[reminder]</a> $sortarrow[reminder]</td>
    <td class="thead" align="center"><input name="allbox" type="checkbox" value="Check All" title="$vbphrase[check_uncheck_all]" onclick="checkall(this.form);" /></td>
</tr>
$subscriptionbits
<tr>
    <td class="tfoot" colspan="5" align="$stylevar[right]"><div class="smallfont">
        
        $vbphrase[selected_events]
        <select name="what">
            <optgroup label="$vbphrase[delete_reminders]">
                <option value="delete">$vbphrase[delete]</option>
            </optgroup>                            
        </select>$gobutton
        
    </div></td>
</tr>
<else />
    <tr>
        <td class="alt1" align="center" colspan="5">
            <br />
            You have no calendar subscriptions.
            <br />
            <br />
        </td>
    </tr>
</if>
</table>

</form>
4. Open a copy of the includes/cron/reminder.php file and find the following:
PHP Code:
AND event.visible 
"); 
Replace with the following:
PHP Code:
AND event.visible 
".$calendar_subscription); 
Above that, near the top of the reminder.php file, find:
PHP Code:
$eventlist = array(); 
$eventcache = array(); 
$userinfo = array(); 
Below that add:
PHP Code:
$dsq $vbulletin->db->query_read(
        SELECT     * 
        FROM     " 
TABLE_PREFIX "datastore 
        WHERE     title = 'lastautoremind' 
"
); 
$ds $vbulletin->db->fetch_array($dsq); 

$daynumber round($timenow/86400); 

if (
$ds['data'] < $daynumber) { 
    
build_datastore('lastautoremind',$daynumber); 

    
$calendar_subscription "UNION ALL 
        SELECT event.eventid, event.title, recurring, recuroption, dateline_from, dateline_to, IF (dateline_to = 0, 1, 0) AS singleday, 
            dateline_from AS dateline_from_user, dateline_to AS dateline_to_user, utc, dst, event.calendarid, 
            subscribecalendar.userid, 0 as lastreminder, 0 as subscribeeventid, subscribecalendar.reminder, 
            user.email, user.languageid, user.usergroupid, user.username, user.timezoneoffset, IF(user.options & 128, 1, 0) AS dstonoff, 
            calendar.title AS calendar_title 
        FROM " 
TABLE_PREFIX "event AS event 
        INNER JOIN " 
TABLE_PREFIX "subscribecalendar AS subscribecalendar ON (subscribecalendar.calendarid = event.calendarid) 
        INNER JOIN " 
TABLE_PREFIX "user AS user ON (user.userid = subscribecalendar.userid) 
        LEFT JOIN " 
TABLE_PREFIX "calendar AS calendar ON (event.calendarid = calendar.calendarid) 
        WHERE ((dateline_to >= 
$beginday AND dateline_from < $endday) OR (dateline_to = 0 AND dateline_from >= $beginday AND dateline_from <= $endday )) 
            AND event.visible = 1"


(Note: If a user chooses to receive a reminder 3 days in advance, they will receive a daily reminder on each day from the 3 days out to 1 day out)

And, that's it. I hope you enjoy. Please click "install" if you use this hack.

I have not tested this with 3.6.1 yet, but there shouldn't be any reason it won't work with it.

Revision History
Version 1.0.0 - Initial Release
Version 1.0.1 - Fixed caching bug that caused calendar templates to become uncached when the user clicked the subscribe or unsubscribe link.
Version 1.0.2 - Fixed problem were reminders were sent for 3 days in advance regardless of the setting a member chose.
Version 1.0.3 - Removed calendar_reminder.php and merged email code with existing reminder.php.

A parallel version for 3.5.x forums is now available here.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #32  
Old 03-02-2007, 04:47 PM
ravencr ravencr is offline
 
Join Date: Feb 2007
Posts: 84
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Can this work with VB Event Calendar and Event Attendance?

Chris
Reply With Quote
  #33  
Old 03-03-2007, 01:24 AM
Farcaster Farcaster is offline
 
Join Date: Dec 2005
Posts: 386
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It should work with it, but it doesn't integrate with either hack in any way.
Reply With Quote
  #34  
Old 07-25-2007, 10:35 AM
dricho dricho is offline
 
Join Date: Jan 2007
Posts: 30
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This is excellent - works perfectly for me....thankyou!
Reply With Quote
  #35  
Old 01-10-2008, 11:10 PM
AWJunkies AWJunkies is offline
 
Join Date: Jan 2005
Location: San Diego
Posts: 947
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

does this work for 3.6.8 P2 with php 5+ ??
It worked perfect before now since I upgraded to 5+ it is throwing errors along with your other mods. I am trying to find out the root of it.
Reply With Quote
  #36  
Old 03-14-2008, 03:04 PM
Caerydd's Avatar
Caerydd Caerydd is offline
 
Join Date: Mar 2006
Location: UK
Posts: 191
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'll be testing this out, but I really want a version that simply emails subscribers at the moment a new event is added.
Reply With Quote
  #37  
Old 05-07-2008, 10:03 AM
maroceve maroceve is offline
 
Join Date: Oct 2005
Location: Casablanca, Morocco
Posts: 232
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Guys is there a hack or a mod that enables your forum to permit a user to subscribe DURING REGISTRATION To a specific Calendar.

Thanks.
Reply With Quote
  #38  
Old 07-11-2008, 07:11 AM
William2509 William2509 is offline
 
Join Date: Jan 2008
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Any possiblity of getting a 3.7.x version of this? I tried this version on my 3.7.2 board and did not working.
Reply With Quote
  #39  
Old 09-13-2008, 12:17 AM
MediaHound MediaHound is offline
 
Join Date: May 2004
Location: Florida
Posts: 165
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by JuGgOlOw22 View Post
Have you gotten a chance to check out those options?
Bump for you. I'm also looking for it to automatically subscribe all members to the reminder. I can connect the dots in the database and make a third script to funnel new members into the setting, but having it in the UI for the first big sweep and as an automatic cron for the new members thereafter would be a great feature.
Reply With Quote
  #40  
Old 10-21-2008, 09:00 PM
MediaHound MediaHound is offline
 
Join Date: May 2004
Location: Florida
Posts: 165
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

To automatically get new members subscribed, add a new plugin to the hook:
register_addmember_complete

Something to this effect, ymmv -
PHP Code:
$uid $vbulletin->userinfo['userid'];
$sql 'INSERT INTO `subscribecalendar` VALUES (null, '.$uid.', 1, 86400);';
$db->query_write($sql); 
Reply With Quote
  #41  
Old 02-13-2009, 03:53 PM
vbboarder's Avatar
vbboarder vbboarder is offline
 
Join Date: Jun 2008
Location: Silicon Valley, CA
Posts: 417
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Will you be upgrading this to VB 3.8? This would make an excellent Farcaster's Calendar Triad: Auto Calendar Reminders + Event Attendance 2 + Social Group Calendar. Thanks for all your cool mods!
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:15 AM.


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.05579 seconds
  • Memory Usage 2,338KB
  • Queries Executed 25 (?)
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
  • (1)bbcode_html
  • (5)bbcode_php
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)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
  • (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_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete