Saturday 13 November 2010

Digest for phpBB Forum without plugin

I am very glad for the hosted apps that Sourceforge provides. It is excellent to have only one login, and not to need to worry about updating the apps.

The problem with the phpBB forum is that the notification emails, when you watch a forum, do not include the message. On Sourceforge you are also not able to install a digest modification, eg. http://phpbbservices.com/digests/

Therefore I thought it would be good to have an external script, that regularly checks for new posts and sends an email with the contents.

In the end, it was not too hard.
This only works for a public forum, where all posts are accessible by non-registered users.
There is the page search.php (eg.http://sourceforge.net/apps/phpbb/openpetraorg/search.php?&sr=topics&search_id=newposts) that shows all new posts.
I store each post that has been sent as an email with the post number in a text file.
Then the script fetches the page of the new posts, and checks each post if it has been sent already.
The script sends HTML emails, and even quoting blocks appear quite alright in my email client (google mail).
The script is also able to parse the posts of a thread that spreads across several pages.

You also might find the functions interesting to get the HTML code and to parse for code between the beginning and the end tag.

Feel free to use the script and to modify it.

2 comments:

Timotheus Pokorra said...

I have adjusted the script so that it also gets the recent changes from MediaWiki and the new and changed issues from Mantis.
I only post those emails once a day, to avoid filling up the mailbox too quickly.
See the code: MediaWiki_Digest_SF.php
and Mantis_Digest_SF.php

Timotheus Pokorra said...

And another Sourceforge hosted app, this time it is for Wordpress, which we use to maintain pages and posts for the website.
See the code: Wordpress_Digest_SF.php

It will check for new posts, and updated and new pages every night.

This is helpful for translators who need to know when public information changes on the original site.