Version: 1.0.0, by calorie
Developer Last Online: Nov 2023
Version: 3.6.5
Rating:
Released: 04-12-2007
Last Update: Never
Installs: 12
DB Changes
Code Changes
No support by the author.
This modification will allow you to set an RSS feed so that it posts to the calendar. You must be using MySQL 4.0.0+ as this modification uses a UNION query. As vB currently requires at least MySQL 4.0.16, you should already meet this requirement. Further, the RSS feed that you wish to use for the calendar must have the date of the event in the title tag, followed by a dash and then the actual title of the RSS item. You will need to view the RSS feed and see if the following type of tag is present. Note how 'date dash title' is in this example tag, where no dash is in the date:
Code:
<title>April 12th, 2007 - Title of the Item</title>
It is possible to change this modification to account for dates located elsewhere, but format varies around the world, and there is no standard way to determine what RSS item holds the event date. That said, if a date cannot be determined, this modification will use the current date, meaning new events will post to the current date in the calendar instead of the event date. Please note, it is unlikely that I will change this modification for your date, unless perhaps it is a common format and tag.
Also, while this modification 'types' input, it does not do error checking on the input you, the admin, provide to the ACP RSS Feed Manager, so make sure you enter the user name correctly and have the calendar permissions set to accept posts to the calendar, etcetera. Finally, this modification requires code edits, as there are no hooks available for it. You must also manually run three queries and add two phrases, which will not be placed in a product file as it would be a silly product file. Besides, it is easy enough to perform such things.
To recap...
This modification has been tested on vB 3.6.5 only. I have no use for this mod on other versions of vB, so please don't ask me if this modification will work for your version, as I haven't tested anything other than vB 3.6.5.
To use this mod 'out of the box' the dates for new events need to be in 'date dash title' format in the RSS item title tag, where no dash is in the date. While I might offer a code change for other dates, please don't expect it.
This mod does what I need it to do, meaning that I don't need an error message telling me that user so and so doesn't exist. My thought is that this mod may be useful to others, but please don't expect me to code to your needs.
Finally, the way posts, announcements, or calendar events appear depends on the options you set as well as the format of the RSS feed itself. Nothing much can be done, aside from contacting the RSS feed owner, to correct bad format.
Show Your Support
This modification may not be copied, reproduced or published elsewhere without author's permission.
In the RSS Feed Manager, if you have 'Convert HTML to BB Code' set to Yes, and in the Calendar Manager you have 'Allow HTML' set to No and 'Allow BB Code' set to Yes, you may notice that certain feeds post to the calendar with things like <font> and ’ showing on screen.
This is because vB could not make sense of the feed. For example, there is an unclosed font tag in the feed item, or no bbcode or regexp available to deal with an entity in the feed item. Thus, vB adds & to such things, both for your protection and to prevent page breakage.
To be rid of miscellaneous <font> and ’ type things, add a plugin at the calendar_getday_event hook with the following code:
Code:
// this replaces &whatever; with &whatever; in the calendar event
$eventinfo['event'] = preg_replace('/&(\S+);/iU', '&\1;', $eventinfo['event']);
// this removes <whatever> tags from showing in the calendar event
$eventinfo['event'] = preg_replace('/<.*>/iU', '', $eventinfo['event']);
Note that this code does not modify entries in the database table but instead affects what is shown on screen for the calendar event.
To be rid of miscellaneous <font> and ’ type things, add a plugin at the calendar_getday_event hook with the following code:
Code:
// this replaces &whatever; with &whatever; in the calendar event
$eventinfo['event'] = preg_replace('/&(\S+);/iU', '&\1;', $eventinfo['event']);
// this removes <whatever> tags from showing in the calendar event
$eventinfo['event'] = preg_replace('/<.*>/iU', '', $eventinfo['event']);
Note that this code does not modify entries in the database table but instead affects what is shown on screen for the calendar event.
Would this same code or something similar work to fix the same problem from RSS feeds into regular posts.?