Introducing the Newscoop 4.3 plugin system
With the release of Newscoop 4.3 the new plugin system has made its official and full featured entrance. The new plugin system allows developers to easily extend Newscoop by overriding, extending or adding features. It also means no more customizing the source code and makes upgrading Newscoop easier without creating conflicts with your extensions.
In this blogpost I will explain the newest features of the plugin system. Also don’t forget to check out the video I made for our #Nerdvent calendar!
For the technical introduction about the plugin system, please see or documentation of the plugin design and check out the Example plugin, too.
Behind the curtains
The plugin architecture is based on Symfony bundles, basically each plugin is a new bundle. (Read more about the power of bundles.) We’ve added some extra customisations to the default bundle structure to make it possible to register new Smarty functions and Newscoop dashboard widgets. Furthermore it’s easily possible to add system preferences, schedule cron jobs and add user permissions during the install of your plugin.
We manage our plugins with the help of Composer. Composer will take care of installing your plugins dependencies, and your plugin will become a dependency of your Newscoop installation.
Private or public
There are two types of plugins, public and private ones. Public plugins can be registered on the Packagist, which is the main Composer repository. It aggregates all sorts of PHP packages that are installable with Composer. They will become publicly available and everyone with a Newscoop installation can easily install them from their own Plugins management interface (see screenshots).
Private plugins can be used for non-public code, e.g. a client specific feature. Just upload a zip-file with your plugin inside and it becomes as easy to manage as any other plugin. To create the correct zip file, just zip the root folder of your plugin repository and you’re good to go.
The renewed plugin management interface
Plugins ready for use
Our latest additions to the list of plugins are:
Airtime integration: Manage and display Airtime data in Newscoop.
Google Events: Enables you to ingest, manage, and display Google calendar events in Newscoop.
You will find the list of our ready to use plugins in this blogpost.
For the complete list of Newscoop plugins created by Sourcefabric, please view our Newscoop GitHub.
A small note for the developers: we’re currently also working on a plugin bundle generator. This will speed up the process of setting up new plugins and save you a lot of headaches changing all the files yourself. So stay tuned for more news coming shortly!