phpBB Official Extensions
phpBB is proud to present a collection of official extensions. These are extensions created and maintained by the Official Extensions Development Team. These extensions were chosen based on various criteria including community interest and their ability to serve as teaching examples for extension developers/authors. Their code has been extensively commented to provide as much information as possible to help extension authors learn from them.
Advertisement Management
The Advertisement Management extension allows phpBB board administrators to add and manage advertisements on their forums. Create unlimited advertisements using code snippets (such as Google AdSense) or create your own HTML/JS and banner ads. Display ads in a variety of locations with priority weighting to show important ads more often than others. Ad views and clicks can be counted and set to expire at a certain date or number of clicks and/or views. This extension is a complete management tool for all of a board’s advertising needs.
For Extension Authors
This extension was developed during our participation in the 2017 Google Summer of Code (GSoC) program. It was a collaboration between phpBB Customisations team members mentoring a student (Senky) who has since become a member of the phpBB Customisations team. See how the process was tracked on our Trello board.
Contribution GitHub repository
Auto Groups
The Auto Groups extension can automate the process of adding and removing users from groups upon reaching specified quantitative milestones related to their post count, age, membership, and warnings count. This allows board administrators to set up special groups that users will automatically be added to (or removed from) based on their activity.
For Extension Authors
The Auto Groups extension comes with a handful of user data conditions that can be used to qualify users for automatic group placement. However, this extension was written with extensibility in mind to allow other extension developers to easily add new user data conditions or integrate Auto Groups into their own extensions. For example, an extension that adds new user data, such as "reputation points," could integrate with Auto Groups to allow a user's reputation points to be used as a condition for auto group placement. For more information, see the Wiki page at the Auto Groups GitHub repository to find detailed documentation about extending Auto Groups.
Contribution GitHub repository
Board Rules
The Board Rules Extension adds a dedicated Rules page to a board. It offers an ACP module from which an unlimited number of rules and rule categories can be created in each language installed on a board. It also supports sending out notifications to all board members notifying them that the rules have been changed, and can require newly registering users read the board rules as part of the terms of agreement for registering on a board.
For Extension Authors
The Board Rules Extension is a fairly advanced design compared to previous phpBB modifications. Abstract classes implemented through interfaces are used to specify the methods that handle most of the code logic. There is an Entity class for manipulating a single rule and an Operator class for manipulating sets of rules. Controller classes are used to process the front-end of the ACP module and the Rules page itself. It also makes use of phpBB's new notification system, nestedsets/trees, and AJAX functionality in the ACP user-interface. There is also extensive PHP unit test coverage of the code to ensure its stability and reliability and prevent regressions. We think testing code is so important, we've made it possible for any extension (on Github) to use phpBB's PHPUnit testing framework with Travis Continuous Integration hosted servers; just look through our tests and travis files/folders to see how we did it.
Contribution GitHub repository
Board Announcements
The Board Announcements Extension allows board admins to create a special board-wide announcement. Unlike phpBB's native global announcements which only appear inside forums, Board Announcements appear near the top of any page being viewed. Users have the option to dismiss the announcement after they have read it.
For Extension Authors
Board Announcements is an entry-level extension by design. We built this extension using techniques that will be more familiar to MOD developers. Code changes are injected directly from the event listener, and all ACP module logic is contained in its ACP module class. Overall, this extension is a good example that shows how to inject new code, add an ACP module, utilize a controller file to run some functional code in combination with AJAX, and how to use new config_text table added in phpBB 3.1.x to store textual data.
Contribution GitHub repository
Browser Push Notifications
This extension offers phpBB3 forums early access to the upcoming Push Notification feature in phpBB4, allowing board members to receive real-time notifications directly in their browser on any device. It supports all existing phpBB notifications, including key forum activities like posting, moderating, and private messaging.
For Extension Authors
Though straightforward in its coding and design, this extension offers valuable insight into utilizing newer, advanced web technologies like Service Workers, which enable background task handling without user interaction, and Manifests, which allow websites to function as Progressive Web Applications (PWAs) in modern browsers and devices.
Contribution GitHub repository
Collapsible Forum Categories
Collapsible Forum Categories is a nice addition to any forum that will allow users to collapse, or hide, any forum or forum category with a simple click. This provides a convenient way for users to minimise the forums they do not particpate in and focus their attention on the forums they do care about. Collapsed forums will remain hidden for logged-in users across different browsers and devices (guests settings are handled via cookies).
For Extension Authors
Collpasible Forum Categories can be used in third party extensions. Some extensions that add forum category-like sections to a phpBB board (such as a chatbox, portal or additional topic lists) may want to include collapsibility. The GitHub repository for Collapsible Forum Categories has a Wiki article for adding Collapsible Forum Category support to another extension.
Contribution GitHub repository
Google Analytics
The Google Analytics Extension simply adds a Google Analytics tracking code with your Property ID to your phpBB forum.
For Extension Authors
This extension is the simplest of extensions in form and function. It adds a single new field to the ACP for a Google Analytics Property ID, validates it, and inserts the Universal Analytics a-synchronous javascript code into the head of your board's HTML pages, just before the closing </head> tag, as recommended by Google. In addition to allowing boards to easily add Google's powerful analytics, this extension is an ideal starting example for new extension authors, demonstrating how to effectively add an ACP config option implement that config setting using template events.
Contribution GitHub repository
Media Embed Plug In
The Media Embed Plug In brings a modern feature to your board, allowing users to post links to media sites that appear directly in their posts as embedded videos and/or content. It supports over 50 popular sites including videos, music streams, tweets, products, articles and other embeddable content. Users can utilise the new [MEDIA] BBCode or simply post the URL in plain text. Older posts made before installation of this extension containing supported links will automatically display as embedded content too.
For Extension Authors
The Media Embed Plug In extension is a great example of how developers can harness some of the powerful features in the TextFormatter library that powers phpBB's BBCode engine. Media Embed is a plug in from this library that phpBB does not make use of by default. This extension enables this component of the TextFormatter library and takes it a step further giving Administrators some control over which of the supported sites will be allowed to embed content on their boards.
Contribution GitHub repository
Pages
The Pages Extension allows administrators to create custom static pages for their phpBB forum. With Pages you can add an unlimited number of new static pages to your board, such as an About Us page, News page, or even a simple forum Blog. The ACP's page editor allows you to create page content using BBCodes or HTML, making it possible to embed media from other sites and create truly unique pages.
For Extension Authors
This extension provides another opportunity for developers to analyse an object-oriented and abstracted approach to developing an extension for phpBB. Because the Pages extension can create an unlimited number of pages, it is set up to account for dynamic page routes and links. It allows users to choose a number of possible link locations for each page using mutliple template events, and leverages the power of phpBB's finder object to allow users to upload their own custom link icons and page template files. As with all our extensions, there is complete test coverage of all code to ensure maximum stability and reliability.
Contribution GitHub repository
Additional Links for Extensions
Extensions Database
Extensions in Development Forum
Extension Writers Forum