Note: phpBB Smartfeed has no relation to Smartfeed by Newsgator. phpBB Smartfeed’s name is wholly coincidental and was developed with no knowledge of this product.


If you want to encourage me to maintain phpBB Smartfeed, please consider sending me a small donation.

Brief Description of Smartfeed

The mod does not work with versions 3.1 or greater of phpBB. The extension does not work with versions 2.0 or 3.0.

Provides RSS 1.0, RSS 2.0, Atom 1.0 customized newsfeeds for phpBB forums. Users select forums they want, including protected forums if they can access them. Administrators can incorporate external news sources (if available as a feed) into their feeds.

Note: As of phpBB 3.0.6, phpBB has a basic Atom 1.0 newsfeed feature. If your needs are simple, this may be all that you need. If you need authenticated access, have complex needs for the content of your feeds, or need RSS 1.0 or RSS 2.0 feeds for your board, Smartfeed is the mod of choice. It will not conflict with the new Atom Feed feature in phpBB.

Detailed Description of Smartfeed

phpBB forums may contain restricted forums that should not normally be exposed as a newsfeed. Smartfeed is a phpBB modification, derived from my phpBB digests modification, that allows users to get a newsfeed for selected forums, including restricted forums if they have the privilege. This is done by using an interface program called smartfeed_url.php which creates a URL that authenticates the user with phpBB. Smartfeed is smart enough to keep users out of forums for which they do not have access, even if they hack parameters on the URL field. Authentication is reasonably sophisticated. Those who are not registered can access in the newsfeed only those forums that can be read by the public.

The URL generated by smartfeed_url.php is then copied and pasted by the user into their newsreader. The user needs to be smart enough to specify a newsfeed that their newsreader can interpret. RSS 1.0, RSS 2.0 and ATOM 1.0 newsfeeds are supported. RSS 2.0 is the default.

Rather than reinvent the wheel, this mod uses the FeedCreator PHP class originally written by Kai Blankenhorn, but extended by Scott Reynen and Dirk Clemen, with on the fly feed code added by Fabian Wolf and ATOM 1.0 support added by Mohammad Hafiz bin Ismail. I modified a few lines of the class (see comments in the class with MDH in them). External feeds are integrated using the PHP SimplePie library, which is integrated into the mod.

This has been tested, but not extensively, by validating reasonably complex feeds for RSS 1.0, RSS 2.0 and ATOM 1.0 at

It has been tested on a MySQL 5.0 environment only but should be DBAL compliant.

Professional installation available

Complete instructions for installing phpBB Smartfeed are included in the archive. It is a relatively simple mod to install, so feel free to install it yourself. Tools like AutoMOD simplify the process. If you prefer to have me install it for you professionally, see my services page. Installation is as low as $15USD.

Smartfeed Extension (for phpBB 3.1)

Smartfeed 3.0.0 User Interface

Smartfeed 3.0.0 Extension User Interface

To speed development of the extension, some features in the 3.0 modification were dropped. They may reappear in future versions. Some major differences between the Smartfeed modification for phpBB 3.0 and the Smartfeed extension for phpBB 3.1 are:

Features removed:

  • Integration of external feeds into the newsfeed are not currently supported.
  • You cannot hide Smartfeed sessions. In most cases Smartfeed sessions will show up as guest sessions.
  • You cannot specify a proxy IP. If you want to use the IP authentication feature, it will apply only to your IP at the time you generated the URI. If your IP changes you will have to regenerate the URI using the Smartfeed user interface.
  • You cannot generate a new Smartfeed key.
  • You lose the ability to see protected forums if mcrypt is not compiled into PHP. Fortunately, it usually is compiled into PHP so it’s probably not a concern. As a result the PHP Secure Communications library is not part of the extension.
  • The feedcreator class is no longer used. Instead, phpBB’s template engine is used to generate Atom, RSS 1.0 and RSS 2.0 feeds.

Features changed:

  • The URL for the feed has changed due to the extensions architecture. Previously it was Now it is Similarly the URL generator program was and is now Consequently, users will have to generate a new URI to use the Smartfeed extension.
  • Not only is the URI changed, the URI argument names have changed to try to make the URI more concise:
// These constants are used to identify URI key/value pair associations. Note these have changed since the phpBB 3.0 mod so URIs will be shorter.
define('SMARTFEED_BOOKMARKS', 'b'); // was bookmarks
define('SMARTFEED_ENCRYPTION_KEY', 'e'); // unchanged
define('SMARTFEED_FEED_STYLE', 'd'); // was feed_style
define('SMARTFEED_FEED_TYPE', 'y'); // was feed_type
define('SMARTFEED_FILTER_FOES', 'ff'); // was filter_foes
define('SMARTFEED_FIRST_POST', 'fp'); // was firstpostonly
define('SMARTFEED_FORUMS', 'f'); // was forum
define('SMARTFEED_LAST_VISIT', 'l'); // was lastvisit
define('SMARTFEED_MARK_PRIVATE_MESSAGES', 'k'); // was pms
define('SMARTFEED_MAX_ITEMS', 'x'); // was count_limit
define('SMARTFEED_MAX_WORDS', 'w'); // was max_word_size
define('SMARTFEED_MIN_WORDS', 'i'); // was min_word_size
define('SMARTFEED_PRIVATE_MESSAGE', 'm'); // was pms
define('SMARTFEED_REMOVE_MINE', 'r'); // was removemine
define('SMARTFEED_SORT_BY', 's'); // was sort_by
define('SMARTFEED_TIME_LIMIT', 't'); // was limit
define('SMARTFEED_USER_ID', 'u'); // unchanged

Features added:

  • Supports IPV6




  • Please post comments on the topic on Code improvements and critiques can be made on if you have an account.

phpBB 3.0 Version Approved

As of August 2009, a phpBB approved mod is available.

You can also see sample screen shots of the mod when installed below. Click on the image to a better view:

User Interface (Version 2.2.27) User Interface for subsilver2 (Version 2.2.27) Administration Control Panel Interface
Primary Performance Throttles
(Version 2.2.27)
    smartfeed_url smartfeed_url_subsilver2 smartfeed_acp1
Administration Control Panel Interface
Security Settings
(Version 2.2.27)
 Administration Control Panel Interface
Additional Settings and Options
(Version 2.2.27)
smartfeed_acp2 smartfeed_acp3

phpBB 2.x Future Development

November 2007: I have ended the development of new features. However, there have been and may continue to be occasional new versions for phpBB 2.x to address critical bugs and issues brought to my attention by the phpBB Mod Team.

Support Forum

I no longer host my own support forum due to low traffic. Use the topic for Smartfeed for phpBB 3.0 and Smartfeed for phpBB 2.o instead.

Version Archive and Notes

Here are links to the phpBB Smartfeed Modification that I wrote, along with previous versions.

Version Date Functionality
For phpBB Version 3.0
2.2.27 1/5/2015 Latest available approved version, also available on the web site.

  • Now can handle IPV6.
  • Fixed bug in smartfeed.php that had the potential for putting duplicated items in the feed.
  • Atom 1.0 is now the default newsfeed format.
  • Fixed a bug that would trigger a PHP notice if there were either no required or excluded forums. A message is displayed if no forums are accessible due to excluded forums.
  • Link to Smartfeed web page was changed to show new page name.
  • install.xml now copies in subsilver2 files by default. 1 manual file change is still needed for subsilver2.
  • The smartfeed user interface now longer uses an ID called news as it introduced a conflict with the Top Stats mod. The ID is now called sf_news.
  • smartfeed_url_new_key.php now sends error and other messages to the appropriate log.
2.2.26 6/15/2013
  • Now supports the integration external newsfeeds. These feeds can be placed at the top or bottom of your feed. Feeds are presented in the order entered in the Administration Control Panel. Set feeds in Smartfeed Settings > Additional settings and options.
  • If a user marks all posts in a topic read, or all topics in a forum read, the posts will not appear in the newsfeed providing the mark time falls before any criteria for the feed. For example, if the feed content is to include all posts with the last 24 hours, any marked posts or topics more than 24 hours from now will not appear in the feed.
  • If no forums are fetched due to permission issues, a message will appear in the feed to this effect.
2.2.25 10/1/2012 Bugs fixed that were reported by a number of observant users.

  • Maximum number of words logic in a post has been fixed.
  • Show new topics only logic fixed.
  • Punctuation is no longer removed if a post is trimmed to remove excess words.
  • smartfeed_body.html template for subsilver2 updated to include missing Javascript logic for the max_word_size field found in the prosilver version. If you support subsilver2, please replace this template then purge your subsilver2 templates.
  • smartfeed.php no longer exits when the first post is encountered and new post notifications only is set by the administrator.
2.2.24 6/11/2012
  • Fixed potential issues of PHP notices in smartfeed_url.php.
  • At suggestion of phpBB Mod Team, forced an automatic purge of variables and templates with installation of Smartfeed.
  • smartfeed.php now uses a language variable for KiB.
2.2.23 3/24/2012
  • Fixed minor bug in smartfeed_install.php.
  • Attachments are now supported in the feed. Photos are rendered (using thumbnails if they exist). Links are created to attached files.
2.2.22 12/28/2010
  • Changes required by phpBB Mod Team. No language or constant changes.
  • Updated version 2.2.21 German translation provided by Aaron Spettl
  • exit statements replaced by exit_handler() phpBB function in smartfeed.php and smartfeed_url_new_key.php.
  • Fixed use of <b> in feedcreator.class.php 3rd party class.
  • Added some isset statements to smartfeed.php that were causing PHP notices.
  • (int)’ed $user_id in smartfeed_url_key.php.
2.2.21 12/20/2010
  • UMIL files were incorrectly copied to the wrong location in version 2.2.20. This has been fixed.
  • check_all_parents function in smartfeed.php modified to suppress a PHP notice.
  • Removed two configuration variables and moved them into language variables.
2.2.20 10/17/2010
  • UMIL files were incorrectly copied to the wrong location in version 2.2.19. This has been fixed.
  • smartfeed_install.php modified to create some temporary configuration variables, otherwise PHP Notices are triggered when run and debug is on.
2.2.19 9/6/2010
  • Changes based on phpBB Mod Team review.
  • Administrator notice for digests upgrade now appears in ACP instead of in UCP. This required moving some language variables.
  • umil_smartfeed_install.php renamed to smartfeed_install.php. Added some missing config variables to the script that were generating PHP notices.
  • Mod name is now embedded in a language variable.
  • install.xml modified to run smartfeed_install.php.
  • smartfeed_url.php modified to remove a couple PHP notices.
  • Fixed a bug in the templates that incorrectly showed IP Authorization information to guests.
  • subsilver2 files now moved under the contrib folder where they properly belong, and show instructions to copy the requisite files as well.
2.2.18 6/27/2010
  • Administrator interface broken into three modules and moved into its own separate category.
  • kill_sessions function in smartfeed.php uses require_once vs. include_once. May give the phpBB Mod Team trouble, but this was the only way to get it to work for one user.
  • User has the ability in smartfeed_url.php to leave private messages as unread.
  • Fixed bug that did not decrement user_unread_privmsg and user_new_privmsg with each private message that was put in the feed.
  • Fixed bug in smartfeed_url.php to use <strong> instead of <b>
  • umil_smartfeed_install.php reengineered and supports changes from version 2.2.17.
2.2.17 12/24/2009
  • Database changes and the ACP module installation are now done using UMIL. At this time, this applies to install only, not changes.
  • ACP interface allows an administrator to add an optional list of required forums that must appear in every feed.
  • ACP interface allows an administrator to add an optional list of excluded forums that must never appear in any feed.
  • Fixed bug with logout method.
  • {S_FORM_TOKEN} removed from templates. Not needed as no form is actually submitted resulting in a database change.
2.2.16 12/6/2009
  • The administrator can set the maximum number of words that can be shown in any post. It overrides any user settings.
  • The administrator has an extra privacy control. If enabled the post content will not display in the feed. Instead, the user will see a single message saying that there are new posts for the topic. The user has to visit the board to read the posts. This applies globally to all users, forums and categories. While the author information is obscured, the category, forum and topic titles are not obscured.
  • Better support for web-based proxy newsreaders using IP authentication. You can specify an IP mask to allow (it defaults to your IP) when using IP authentication. A mask of x.y.*.* is supported as well as x.y.z.*
  • Updated Spanish translation provided by valaraukar.
2.2.15 11/21/2009
  • Updated for phpBB 3.0.6 compliance. Minor file changes are required to overall_header.html and /includes/functions.php to not conflict with the new Atom feed features in phpBB 3.0.6.
2.2.14 9/17/2009
  • garbage_collection() function added to smartfeed.php. Some users were noticing that database connections were not being closed when smartfeed.php ended.
  • $user->lang[‘DIGEST_MAX_WORDS_NOTIFIER’] fixed to be $user->lang[‘SMARTFEED_MAX_WORDS_NOTIFIER’] in smartfeed.php.
  • You can now get a feed with private messages even if no forums are selected.
  • Solved the “ugly URL” problem. smartfeed_url.php will no longer generate URLs with ?& in the URL.
  • Added parentheses to an isset function to the file changes in functions.php.
  • DIY instructions provide guidance for making template changes if you are not using prosilver or subsilver2.
  • Fixed encrypt function in smartfeed_new_key.php so it calls TripleDES.php. It was incorrectly called DES.php.
2.2.13 8/21/2009
  • kill_session function in smartfeed.php revised to remove bugs.
  • Fixed a few indenting issues and prettied the code a bit.
2.2.12 7/24/2009 (First official phpBB 3 approved version)More changes requested by the phpBB Mod Team.

  • Template changes to use ELSE where appropriate.
  • Include logic now consistently looks for either an expected constant or a function existing and if it does not find it includes the file.
  • Added missing case statements to handle_error function in smartfeed.php
  • smartfeed_url.php now looks at the user’s is_registered value to determine if they can access private forums.
  • Removed unneed intval() function when updating phpbb_users table in smartfeed_url.php.
2.2.11 7/17/2009 More changes requested by the phpBB Mod Team.

  • Fixed code causing PHP Notices.
  • Boolean template switches now being used consistently.
  • TripleDES.php now properly includes DES.php. Was not noticed much before because most people have mcrypt compiled into PHP.
  • Many template variable names changed to follow phpBB Coding Standards. There were some inconsistencies.
  • sprintf and other variable declarations removed from language file.
  • Inconsistent licensing is now consistent.
  • subsilver2 and other languages files moved inside root folder of archive.
2.2.10 6/10/2009 More changes requested by the phpBB Mod Team.

  • Properly indicated the type of license being used: GNU GPL Version 2.
  • This file now shows a file_exists function before including /includes/constants_smartfeed.php.
  • Where needed, SELECT SQL changed from ORDER BY 1 to ORDER BY column name ASC.
  • In smartfeed_url.php, using $user->data[‘session_id’] vs. fetching the session from the database.
  • In smartfeed_url.php, using $auth->acl_getf instead of fetching $read_id and $list_id from database.
  • In smartfeed_url.php, documented the use of template flags like ‘T’ and ‘F’. Unfortunately these are nested so deeply in the templates that using boolean template variables does not work with the phpBB templating system, which is why I am using character compares.
  • In smartfeed_url.php, SQL shows <> vs !=.
  • In language file, changed text for SMARTFEED_STYLE_COMPACT_EXPLAIN.
2.2.9 4/29/2009 These are minor changes trying to pass the MVP test.

  • Globally replaced require statements with file_exists() and include statements instead.
  • Replaced $_SERVER[‘HTTP_REFERER’] with $user->referer in smartfeed.php.
  • Replaced a die() and addslashes statements in feedcreator.class.php to bypass some MPV warnings. Such is the danger of integrating a third party class.
  • Archive heirarchy reorganized to meet current recommendations.
2.2.8 4/23/2009
  • Removed $user->lang[‘SMARTFEED_APACHE_AUTHENTICATION_WARNING_ADMIN’] from language file. No longer needed.
  • Parent table is only loaded once now in smartfeed_url.php
  • Modified these instructions to use inline edits and to suggest refreshing themes and imagesets as suggested by the phpBB Mod team.
  • Minor changes to smartfeed.php to use $user->page[‘query_string’], make the board disabled message appear sooner, combine two calls to the acl_options table into one call as suggested by the phpBB Mod team. Parent table is only loaded once now in check_all_parents function.
  • Added some missing $db->sql_freeresults statements.
  • phpBB Mod team suggested adding an installer, but this is too complex for me to tackle right now. It may show up in a future version.
2.2.7 2/24/2009
  • Forum parent permissions are checked to make sure they have appropriate list permissions for the user. If any parent of a forum does not have list permissions, the forum cannot be displayed or selected. This is a very unusual situation but occurred when I turned off category permissions on my board.
  • smartfeed_url.php adds an additional warning that if you generate a new key, the old key is immediately invalidated.
  • Fixed another instance in smartfeed.php where I used $_SERVER and should have used $user->ip. Thanks Mod Team!
  • Instructions modified to show that atom10.gif file should be copied, not atom.gif. Also, to change the find text for JAB_USERNAME_EXPLAIN since it was updated with phpBB 3.0.4. Thanks Mod Team!
2.2.6 12/29/2008
  • LDAP users now have full access to all permitted forums.
  • getenv function reverts to $_SERVER usage because getenv is not supported by IIS. When the user’s IP is needed, $user->ip is now used.
  • Figuring out which forums a user can access is now much less complex now that I have discovered acl_raw_data_single_user.
  • truncate_words function now returns an accurate word count, minus HTML markup. The tradeoff is HTML is removed from posts if a post must be truncated after X words, since otherwise invalid HTML might get rendered.
  • get_remote_file PHP function used to compare version numbers.
  • A few small language file changes were made.
2.2.5 11/21/2008
  • Addressed a few issues, some serious, pointed out by Paul on the phpBB Mod Team.
  • $_SERVER usage replaced with equivalent calls using PHP getenv function.
  • There were a couple security issues with request_var logic that were fixed. In general parameter checking is now less complex.
  • Language variable SMARTFEED_COUNT_LIMIT_FORMAT_ERROR removed. Language variable SMARTFEED_MIN_SIZE_EXPLAIN added. Clarified that the minimum words per post function may return what appears to be a wrong word count if BBCode is embedded in the message. A future version may fix this limitation.
2.2.4 10/9/2008
  • New program smartfeed_url_new_key.php. This is a program which allows a user to create a new Smartfeed key. It is called asynchronously using AJAX from smartfeed_url_body.html.
  • Utilizing base64_decode_safe and base64_encode_safe provided by phpBB user klapray. He discovered in certain cases the “e” parameter in the URL string will not be encoded or decode correctly. Much thanks. This has been a tough bug to figure out! As a consequence of fixing this problem, your users may have to regenerate a URL using smartfeed_url.php. They should get an error notice to this effect in this case.
  • smartfeed_url.php issues fewer SQL calls by gathering a list of parent forums before executing logic to show nested categories and forums.
  • The functions check_word_size and check_word_size_min in smartfeed_url_body.html was fixed to do number comparisons instead of string comparisons.
  • Fixed category error for ATOM feeds in feedcreator.class.php. Fix provided by phpBB user klapray.
  • Fixed date limit error in SQL for the case of SMARTFEED_NO_LIMIT smartfeed.php.
  • Fixed PHP Notices for variables $user_permissions, $acl_options, $acl, $forum_read_ary, in smartfeed_url.php.
  • Fixed PHP Notice in smartfeed.php for variable $lastvisit.
2.2.3 8/7/2008
  • ACP contains a new switch that will not kill Smartfeed sessions, if desired. In addition, administrator Smartfeed sessions are no longer killed. The assumption is that if an administrator is using Smartfeed, it is for testing purposes.
  • When ACP Smartfeed changes are made, they are now properly logged.
  • Certain items which were language variables are now constants, including URL parameter values. Parameter values that used to contain a space (ex: 1 MONTH) now use an underscore. Constants are in a new file called /includes/constants_smartfeed.php
  • Fixed bug in remove foes logic.
  • Tightened criteria for retrieving posts so only approved posts are shown in feed.
  • Blank post replies are now handled better, avoiding the ugly :: :: for the item title that previously occurred.
  • truncate_words now returns exactly the number of words requested, not one less than the number requested.
  • Fixed version logic so if there is no 4th level of a Smartfeed version, it does not trigger a PHP Notify.
  • At request of phpBB Mod Team, fixed language/en/mods/smartfeed.php to move sprintf logic.
  • 3 months returns 90 days, not 91 days.
  • Fixed bug in Javascript in smartfeed_url_body.html that resulted in a badly formatted limit parameter when authentication is not used.
2.2.2 7/6/2008 This is functionally the same as 2.1.0. A new version was to fix some ModX validation errors brought to my attention by the phpBB Mod Team.
2.2.1 7/6/2008 This is functionally the same as 2.1.0. A new version was needed because this version failed ModX validation.
2.2.0 7/6/2008 This is functionally the same as 2.1.1. A new version was needed specifically to upload to for Mod Team review, as their upload program assumes odd numbered minor versions are “development”. I will not update the check version unless it passes mod team review or I create a new version with additional logic.
2.1.1 6/7/2008 More bug fixes in this release:

  • Fixed instructions, which inadvertently left out code changes needed to includes/acp/info/acp_board.php. Sorry about that.
  • Fixed a number of PHP Notices.
  • Fixed URL for newsfeed item link so it would correctly link to the referenced post.
  • Changed ” to ” and .php to $phpEx in /language/en/mods/smartfeed.php and where appropriate to /language/en/acp/acp_board.php. Thanks to Aaron Spettl for point out these errors.
  • Changed Javascript in smartfeed_body.html so that the limit parameter could be used for public users and to add S_IF_GUEST logic around the private messages in feed control.
  • subsilver2 template is back. See the templates folder.
  • Code changes to /includes/functions.php no longer uses include statement, but $user->setup function.
  • max_items parameter removed from overall_header.html.
  • subsilver2 template is back. See the templates folder.
  • Upgrade instructions (beginning with 2.1.0) added and can be found in the /contrib/upgrade folder.
2.1.0 5/25/2008 This version marks a significant improvement in usability thanks to -=ET=-, who provided a draft of an improved user interface and a ACP interface. However certain features have been removed and added as a result. In particular the subsilver2 templates have been removed for now.

  • User interface redesigned. Thanks to -=ET=- for showing me how and providing a draft to edit.
  • New Administrator Control Panel interface. Thanks to -=ET=- for showing me how and providing a draft to edit. You will find it on the General tab, under Board Configuration.
  • Post retrieve time limits can be unlimited, although the Administrator may restrict the maximum time back from the present that posts can be retrieved.
  • New Topics Only functionality has changed. New topics appear automatically for the given date range anyhow. Instead, use First posts of topics only.
  • The administrator can set whether all forums are checked by default in the user interface.
  • Maximum number of posts in the feed option can be specified by the user.
  • Feed tests appear in new browser window.
  • URL is blanked any time a change is made to a field in the user interface.
  • Count limit functionality removed. Previously this appeared on when sort by post time descending was selected.
  • No subsilver2 user interface this time around. It will probably be in next version.
  • Masking to remove PHP notices removed. According to phpBB Mod Team, this is in common.php anyhow, so it is redundant.
  • The file /includes/constants_smartfeed.php is no longer needed. All values are stored in the phpbb_config table.
  • Addressed bugs by a review of the phpBB Mod Team.
  • Addressed bugs reported in the phpBB development topic.
2.0.4 4/26/2008 This version is marked as “stable” (in my humble opinion) and will be submitted to the phpBB Mod Team for review. Hopefully remaining issues are minor. Release notes:

  • Multibyte character set for parameter fields allows for maximum language independence.
  • User timezone logic removed. Added too much complication. All feed items will report time in GMT.
  • SMARTFEED_SHOW_USERNAME_IN_FIRST_POST_TOPIC defaults to true. Also, this was used more than once in the constants file. Second occurrence removed.
  • Forums of type FORUM_LINK do not appear in the user interface or in the feed.
2.0.RC3 4/12/2008
  • There are a ton of code changes in this version but very little in the way of new functionality. Changes were made based on feedback from the phpBB Mod Team. As a result this version is much more standards compliant, language independent, decoupled and the code size has been moderately shrunk.
  • Constants moved into a separate file.
  • Language variables (except for FAQ) moved into separate file.
  • If you select “Run this URL in this browser now” in smartfeed_url.php, your phpBB session is no longer killed.
  • The program smartfeed_url.php creates a clean smartfeed key. Before it was possible to generate a key which when translated into the e parameter could be parsed into two URL parameters.
  • Certain hardcoded URL parameter values are now language independent.
  • Fixed notices in DES.php (thanks to Terrafrost, the author, for the changes.)
2.0.RC2 3/30/2008
  • Changed instances of .php to $phpEx in smartfeed_url.php and smartfeed.php
  • Added code at start of feedcreator.class.php, DES.php and TripleDES.php to exit if the IN_PHPBB constant is not defined.
  • If you select “Run this URL in this browser now” in smartfeed_url.php, your phpBB session is no longer killed.
  • PHP Notices are now turned off in both smartfeed.php and smartfeed_url.php. Since Smartfeed uses 3rd party classes, without extensive hacking of these classes there is no way to keep these notices from showing if PHP is configured to show them by default.
2.0.RC1 3/28/2008 First production release candidate, submitted to phpBB Mod Team.

  • Added Safe HTML styling. If selected it will remove “unsafe” HTML tags. As a practical matter, it ruins styling. However, it does allow the feed to validate.
  • Fixed bug where smilies were showing relative path to smilie image instead of absolute path.
  • generate_board_url() now also used in smartfeed_url.php.
  • Added a “Run the URL in this browser now” button. Allows for easier testing. Has the side effect of logging the user out of phpBB since smartfeed.php kills the existing session.
  • To check version of Smartfeed the domain is now checked. is obsolete.
  • Feedcreator class had every other line blank. This has been fixed.
  • Modified code in rfc822 function in Feedcreator class. It was giving an invalid date.
  • Fixed Javascript error for LDAP authentication in smartfeed_url_body.html
  • Edits now requested to help_faq.php. This makes it consistent with Smartfeed for phpBB 2.
2.0.0.e (Beta Version 3) 3/14/2008
  • This is a beta version of phpBB Smartfeed 2.0. It can be used with caution on a live board.
  • Fixed bug that showed that guests had an invalid access type.
  • Fixed bug that did not properly remove sessions because $session->data was used when $user->data should have been used.
  • Overwriting FEEDCREATOR_VERSION and TIME_ZONE constants in the Feedcreator class should not cause PHP notices.
  • Removed the last of passing by reference code.
  • Fixed bug to use $config[‘default_style’] not $config[default_style]
  • Fixed bug in smartfeed_url.php where if there were no accessible forums for the board a database error would occur.
  • Fixed bug in subsilver2 theme that showed text for styling in the wrong font size.

Note, I introduced a minor bug when changing my domain that affects the version notification. Please change lines 421 and 424 of smartfeed_url.php and replace “” with “”.

2.0.0.d (Beta Version 2) 3/6/2008
  • This is a beta version of phpBB Smartfeed 2.0. It can be used with caution on a live board.
  • This version contains code clean up and optimizations. Lots of code changes, but little new functionality except as shown below.
  • Private message comments link now included in feed.
  • Private messages in the feed are now marked as read.
  • Better null user_smartfeed_key support, which should work better with SQL Server.
  • Performs a version check. Only administrators will see version messages. Version information shows near the bottom of smartfeed_url.php
  • Both the prosilver and subsilver2 templates are now XHTML compliant with their respective schemas.
  • User order no longer appears as an option if only allowed to see public forums.
  • Removed unneeded encryption files for the PHP Secure Communications Library

Note, I introduced a minor bug when changing my domain that affects the version notification. Please change lines 421 and 424 of smartfeed_url.php and replace “” with “”.

2.0.0.c (Beta Version 1) 2/17/2008
  • This is the first beta version of phpBB Smartfeed 2.0. It can be used with caution on a live board.
  • If Apache authentication is detected, will show an error message when trying to access smartfeed_url.php. This is because by default a .htaccess file will try to restrict all unauthenticated users. To remove this message, first fix your .htaccess file to allow smartfeed.php to have unimpeded access to your phpBB root directory. Then change the constant SMARTFEED_APACHE_HTACCESS_ENABLED to true.
  • If LDAP authentication is detected, only public forums can be accessed with Smartfeed. This is because there is no way to get the password for a user from a LDAP directory, thus making it impossible to create an authentication parameter. An appropriate warning is displayed by smartfeed_url.php.
  • Private messages are now supported.
  • Global announcements are now supported.
  • subsilver2 style is now supported.
  • MODX is now supported.
2.0.0.b (was 2.0.0 Alpha 2) 2/1/2008 THIS IS AN ALPHA VERSION NOT TO BE USED ON A REAL BOARD! Please leave comments in this topic. Additions:

  • Optionally cuts off any post that exceeds X characters.
  • Announcements show in feed automatically if they were posted after the requested begin date of feed. Since they are now automatic, the interface in smartfeed_url.php has been removed.
  • Added a feed_style attribute: HTML (default), BASIC or COMPACT. See smartfeed_url.php for details.
  • Optionally omits posts unless they contain at least Y characters.
  • mcrypt is no longer needed for authentication. Instead the PHP Secure Communications Library is bundled into the mod. It will call mcrypt if available, otherwise it will use PHP functions that do the same thing, which is slower. This also means the annoying mcrypt message no longer appears. Note: I was unable to test this functionality since mcrypt is installed on my test machine, but it should work.
  • Allows longer range of times for items in the feed. Can select 2 weeks, 1 month or 1 quarter for very slow boards.
  • phpBB censor_text() function used where appropriate.


  • Fixed bug in FeedCreator class so post would report the post time in the user’s timezone (based on their phpBB profile).
  • Fixed bookmarked topics bug.
2.0.0.a (was 2.0.0 Alpha Version 1) 1/12/2008 THIS IS AN ALPHA VERSION NOT TO BE USED ON A REAL BOARD! Please leave comments in this topic.
For phpBB Version 2
1.22 02/02/2008
  • You no longer need to have mcrypt compiled with PHP in order to authenticate a user. Uses the PHP Secure Communications Library instead, which calls mcrypt if it is available.
  • Modernized the introductory text in smartfeed_url.php to match the phpBB 3 version of Smartfeed under development. Translations have not been updated
1.21 (This is the official approved version for phpBB 2 also available on the site here.) 11/12/2007
  • Minor fix requested by phpBB Mod Team, substitute POST_USERS_URL constant for the literal “u” used to identify the user_id of the person retrieving the feed. Required changes to smartfeed.php, smartfeed_url.php and smartfeed_url_body.tpl.Note: this archive was repacked on 12/23/2007 to make 2 corrections applied by the phpBB Mod Team. The corrections are stylistic and not critical so in my opinion there is no reason to reinstall.
1.2 11/2/2007 Fixes requested by phpBB Mod Team to version 1.12:

  • Requested real encryption. It is possible to hack the existing encryption scheme. (I won’t get into the details.) Solved by:
    • Adding a new column user_smartfeed_key to phpbb_users_table
    • Testing for presence of mcrypt library in PHP build. If it doesn’t exist, only public forums will be shown and can be selected. A warning message will be show in this event.
    • If there is no value for user_smartfeed_key it is generated by calling dss_rand() when using smartfeed_url.php. This becomes the private key, with encrypted password essentially embedding the public key. smartfeed.php decrypts the encrypted passsword using the private key held in user_smartfeed_key.
  • “p” parameter generated by smartfeed_url.php is now the “e” parameter. “p” in URL has a specific meaning. “e” implies encrypted.
    • As a consequence if the “p” parameter is called, user will get an error message in feed to regenerate Smartfeed URL using smartfeed_url.php.
  • SMARTFEED_SITE_URL no longer has to be hardcoded in smartfeed_constants.php.
  • In logic will search for constant ANONYMOUS instead of username of “Anonymous”
  • Removed smartfeed.mod files in the translation folders since they are not in the language packs


  • Make sure to copy down all new files.
  • Make sure to add the user_smartfeed_key to the phpbb_users table. SQL is in the smartfeed.mod file
  • Post a message to your users indicating that they will need to rerun smartfeed_url.php and copy and paste the new URLs it generates in their newsreaders
1.12 9/3/2007 Bugs fixed:

  • Fixes requested by Mod Team:
    • Non English translations moved into a translations folder. Note: Spanish translation is not entirely complete. Instructions for installing each language translation can be found in the smartfeed.mod file in each translation subfolder.
    • Language variables are no longer have hardcoded constants like SMARTFEED_SITE_URL. Instead the calling program substitutes these at runtime using sprintf.
    • Corrected smartfeed_url_body to show proper CSS syntax for width=”550px”. Should have been “width=”550px;”
    • A few $_SERVER instances were changed to $HTTP_SERVER_VARS
  • Bugs fixed:
    • All items in this bug log for version 1.11 have been included in 1.12.
    • Forum privileges granted through special ACP access instead of just through usergroup access are accommodated.
    • smartfeed_url_body.tpl finally fixed so template logic will work correctly for PWD_WITH_IP
    • Clicking or selecting the generated URL selects it. This makes for easy copying and pasting.
    • Fixed unnecessary bad first post only logic
1.11 2/25/2007 Bugs fixed:

  • Fixed serious bug wherein if all your forums are restricted from public viewing, then Smartfeed would return some posts in the feed in forums meant for registered only (public) users. Fixed so that in this case the feed contains no items.
  • Fixed bug that allowed guests to pick from member only forums in smartfeed_url.php. While they could see them and select from them, they were filtered out of the feed for guests. Now they do not show at all for guests, but still appear for registered users.
  • Fixed bug that did not post the current time with the bottom ad in the newsfeed.
  • Fixed bug wherein smartfeed.php would fail if mbstring is not compiled with PHP.
  • Added a blank line in the createURL Javascript function in smartfeed_body_url.php per a user’s suggestion, who was having trouble otherwise getting it working with the Extreme Styles Mod.

New features:

  • New constant SMARTFEED_SHOW_USERNAME_IN_FIRST_TOPIC_POST, if true (default) shows user name in item the item’s title.
  • Includes a Spanish translation found at Some portions were translated using Please send me any inaccuracies in the translation.
  • Includes full human translation of version 1.1 Dutch translation by Nic Mertens. Not all items were properly translated in version 1.1 due to the need to release the new version.
1.1 1/15/2007 Thanks yous

  • My sincere thanks and appreciation to Sylvain Bourdon for his extensive testing, practical suggestions as well as his help in providing a French translation.
  • My sincere thanks also to Ewald Bayer for a German translation.
  • My thanks to phpBB user LimitForums, who created the cool Smartfeed icon

New features

  • French language support provided by Sylvain Bourdon
  • German language support provided by Ewald Bayer
  • A reader’s unread private messages since their last visit will appear in the newsfeed if they select the option in smartfeed_url.php. These private messages appear first in the feed. The item link provides a URL to respond to the private message. Unread private messages remain in the feed until they visit the board.
  • Smartfeed now displays optional advertising. The Administrators will see an extra screen when they invoke smartfeed_url.php where they can set and enable/disable advertising information. Ads can be at the top and bottom of the feed, and after every X items in the feed. Sections can be turned on or off, or a master switch can turn all advertising on or off. In addition, ads can be served only to public users, in case you don’t want to annoy your users with advertising. The whole advertising interface can be hidden by setting SMARTFEED_HIDE_ADVERTISING_INTERFACE to true. Known issue: IE 7 (and possibly other newsreaders) can sort newsfeeds items by Date, Title or Author on the fly. This unfortunately might place the location of ads in the feed at locations other than where they were anticipated.
  • phpBB look and feel to posts in the feed. You should now usually see embedded URLs, images, and generally anything in BBcode. Some newsreaders do a better job than others of this. For example IE 7.0 will show bold, italicized and underlined while Sage for Firefox will not.
  • New constant SMARTFEED_PRIVACY_MODE. If true (default), real user email addresses are not shown in the feed for public users and a fake email address is substituted if necessary to validate the feed. Signature blocks are not shown to public users either. This is set to true by default. The idea is to keep spammers from having yet another way to harvest email addresses.
  • When selecting new topics only, a user is presented with a checkbox for first post only. If they select it the feed will contain only the first post for new topics within the time period they specified.
  • Post times shows the time in the user’s local time based on the timezone in their phpBB profile.
  • User name and posting time are no longer in the item description. This was redundant because other information in the item provides the same information (although your newsreader may not show it).
  • Topic replies can show or not show the phpBB Username in the item title. Use the constant SMARTFEED_SHOW_USERNAME_IN_REPLIES to toggle this switch. It is set to true by default. Caution: some newsreaders will not display the item author, so setting this to false may confuse all readers as to who is replying.
  • New constant SMARTFEED_SUPPRESS_FORUM_NAMES. If set to true, the forum name will not appear in the item’s title.
  • If a user’s account is deleted and the feed URL is used after deletion, the feed returns an error message suggesting that their account may have been deleted. Previously the message was ambiguous as to what might have been the cause.
  • User entered post text pulled from the database are filtered to remove characters likely to cause parser errors. This is typically a result of placing Windows-1252 characters in the post text. Since the feed is supposed to be ISO-8859-1, these deviant characters like curly quotes must be removed or the feed may not validate. That in turn will cause some parsers to raise an error, which will mean no feed is rendered. There was no eloquent way to do this, so ISO-8859-1 is used as a filter. The result may be some strange looking characters from time to time in the feed, but at least the feed will validate.

Bugs fixed

  • Fixed serious bug that allowed hackers to get access to a forum with a bad encrypted password.
  • Fixed bug that might have shown duplicate forum names in smartfeed_url.php for some boards
  • If an Administrator, all forums are shown by smartfeed_url.php. There is no need to have appropriate usergroup permissions.
  • If a Moderator, all forums with moderator read permissions are shown by smartfeed_url.php. There is no need to have appropriate usergroup permissions for moderator only forums.


  • Removed IE specific Javascript from smartfeed_url_body.tpl. We can assume a HTML 4.0 browser now, so it is not needed.
  • Improved logic in unCheckAllForums so that if all individual forums are subscribed the All Subscribed Forums checkbox is checked.
  • Smartfeed session is removed when smartfeed.php ends, thus reducing the number of sessions in the session table so it reflects users accessing board, not the feed.
  • RSS 2.0 is now the default newsfeed type vs. Atom. RSS 2.0 seems to have the most traction.
  • Installation instructions are included on this page so Smartfeed can automatically advertise that your phpBB board is accessible as a newsfeed.
  • $lang[‘smartfeed_user_table_count_error’] has better description to indicate if this error occurs the user_id was probably deleted.
1.0.5 5/13/2006
  • Category Order, Forum Order, Forum Topic Last Post Time (Desc) Topic Post Date/Time” is now called Standard Order
  • Added two new sort types, “Standard Order, Last Posts First” and “Post Date/Time, Last Post First”. In “Post Date/Time, Last Post First” you can also select the maximum number of posts to return. (It is difficult to make this logic work for the other sort types, given the limitations of SQL, so the field is hidden for other sort types.)
  • Item title now includes author name when the post subject is left blank. This helps distinguish posts in the newsreader since most will have the same post subject.
  • You can specify the maximum number of words per post to appear in the newsfeed. This is not recommended, however, as it may lead to validation warnings or even errors, due to poorly formatted and embedded HTML in the feed.
  • The board administrator can require IP authentication for all users. This is done by changing this line in /includes/smartfeed_constants.php to true:
  • Warning: if IP authentication is turned on, it is possible that a feed error will occur if the reader previously had turned that off. This can be fixed by each reader rerunning smartfeed_url.php and copying the new URL into their newsreader.
  • You can change how how the time of the post appears in the feed item by changing this line in /includes/smartfeed_constants.php:
    define(‘SMARTFEED_DATE_FORMAT’, ‘d M Y h:i A ‘);
  • A Dutch translation is now available, thanks to Nic Mertens <>, and is included.
  • Version of Smartfeed now displays in feed and in smartfeed_url.php. This might help in the future solving problems.
1.0.4 (First official release on phpBB) 3/12/2006
  • Made changes to smartfeed.php requested by phpBB Mod Team including:
    • Replaced $_GET and $_SERVER with older but more portable $HTTP_GET_VARS and $HTTP_SERVER_VARS
    • Replaced html_entity_decode function which requires PHP 4.3.0 with a entity_decode funtion that calls html_entity_decode if it exists, otherwise it emulates it with a function found on
    • Replace a few harcode .php text strings in lang_smartfeed.php with $phpEx
1.0.3 3/5/2006
  • Fixed Line 325 in smartfeed.php that did not limit number of messages for public users.
  • Fixed Line 42 in lang_smartfeed.php to use SITE_URL constant vs. old $siteURL variable in message.
1.0.2 3/1/2006
  • Changed one line of SQL in smartfeed.php which might cause a problem for those not using MySQL.
1.0.1 2/26/2006
  • Fixed minor bug that wasn’t showing the post time in the message text in smartfeed.php
1.0.0 5/25/06
  • Took out all MySQL specific functions and created equivalent functionality in PHP. Hopefully software is now DBAL compliant.
  • Renamed some variables to more accurately describe their functions
  • Moved fake email address to smartfeed_constants.php where it belongs
0.4 2/20/2006
  • Fixed Smilies URL problem
  • An appropriate error message is generated if no arguments are used calling smartfeed.php
  • Included xml.gif image. Does not need to be used but can be used to link to smartfeed_url.php.
  • Included change to lang_faq.php to add a FAQ question about newsfeeds
  • dded a smartfeeds_constant.php include file, to fully separate out the non-language components of lang_constants.php
  • Tweaked feedcreator.class.php a bit in order to remove some feed validator warnings
0.3 7/7/2005
  • Pretty important bug found: password was not encrypting correctly. Reinstall all files and use smartfeed_url.php to regenerate the URL to use. Make sure anyone using the Beta version to date updates the URLs. Otherwise they will get smartfeed errors.
  • Smilies path now corrected. Most newsreaders will show smily images.
  • smartfeed_url_body.tpl Javascript corrected so that when All Forums is unchecked the forums underneath are also unchecked. This used to work but got corrupted when I added <span> tags.
  • smartfeed_url_body.tpl also is now WAI and Section 508 compliant, which mostly involved adding a lot of <label> tags.
0.2 1/21/2006
  • Fixed bug in smartfeed_url.php. Creates $siteURL value similar to smartfeed.php
  • User can elect to filter out their own posts, similar to Digest mod
  • Changed feedcreator.class.php to return RSS 1.0 and RSS 2.0 to have a MIME type of text/xml. While
    the validator at complains it has to be type application/xml if selected from browsers like
    Firefox it wants to download it as a file. I think this is too confusing at the moment. ATOM 1.0 MIME type also
    returned to type application/xml.
  • Note: the store cookie feature that stores the last access time still needs some thought. It works fine for browser plug ins like Sage, but otherwise probably won’t work. Stand alone feed readers will likely ignore cookies, as will web aggregator sites like
  • If you installed version 0.1 make sure to reinstall all files!
0.1 1/6/2006
  • Works with EasyMod
  • If there is an error the error message appears in the newsfeed itself, instead of returning a HTML page
  • Now allows access by non registered people to public forums only
  • Administrator can set a maximum number of items to be returned in a newsfeed
  • Sets and uses a cookie to determine when newsfeed was last requested
0.0.2 1/2/2006
  • Added optional IP Authentication. If selected the URL cannot be “hijacked”. For example, someone cannot use the URL at work if it was created at home. For sites with sensitive information this may be an issue.
  • $siteURL adds a “/” to the end if needed
0.0.1 1/1/2006
0.0.0 12/29/2005
  • First Alpha version for comments




 Posted by at 9:08 pm

  2 Responses to “Smartfeed”

  1. Hi,

    First i would like to congratulate you for this awesome mod!!!

    Would like to ask where can i get more information on a feature that i cant understand properly. Well, after link generation and if the user changes the password it still provides mostly of the post info and i would like to know how can i avoid that…


  2. Could you be more specific? Write me at

 Leave a Reply



You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>