You are here

Drupal Notify News Aggregator Module

I wrote a module that sends out news aggregator content based mostly on the Notify module’s basic implementation. This module uses quite a bit of hook_form_alter() to change add form fields to the admin form for the Notify module. The module uses Notify’s user maintenance functionality while the functionality of the module is actually separate from the system.

The creation of this module was based on a support request I made to the developers of Notify that asked them nicely to add news aggregator content to the notification emails. Based on their post about their priorities, they just do not get to feature requests at all. Many developers would say, "why not just write a patch and submit the patch?" I could have done that, but then I would submit that patch to the feature request queue. Since the maintainers don’t look at the feature request queue, I’d be wasting my time.

Issues I noticed was that the implementation of Notify doesn’t take into account the amount of time it takes for the message to be queued up and sent to all of the users on the site. Therefore, you end up with an issue associated with messages being sent out an interval late every day. For example, you send out a message one day at 3pm, it takes 20 seconds to send out. The next message sent out will be at 4pm the next day because that 20 second difference. I made adjustments for that and it works fine now.

Future work on this module will probably include research associated with using the new hook_mail_alter() function to inject the aggregator news into the email as it goes out from Notify. The current implementation has a separate email going out (separate from Notify) that only contains news aggregator content. I did it this way purely for efficiency. I was on a tight deadline to get this thing done and calls to the database for the news item for each email seemed not to be very efficient. Watch this post for updates on how development on this module is going. I might be able to post it on