Plugin system will be on top of Symfony Bundles (best practices).
Whole Newscoop will be under Symfony/Routing and Symfony/Kernel components. We will create simple controlers loades for zend controllers (nothing should change there). Thanks to that we will can use Bundles in Newscoop.
Every Newscoop Plugin Bundle should have composer.json file with type: newscoop-plugin
What plugins should can:
- create new option in menu
- provide configuration page
- provide new templates (smarty) blocks - done
- be localized (our localizer)
- be installed/uninstalled (events) - done
- works with our ACL
- provide new ui elements
- create new pages (with controllers) for frontend - done
Everything will be based on events (Events Dispatcher).
For example:
- On install action we will emmit newscoop.plugins.install event and Plugin developer will can register service for that.
- On article creation we will emmit newscoop.article.create event with article data and developer will can register service for that.
etc...
Plugins will lives under /admin/plugin/ route, for ex. /admin/plugin/debates.
We will place in existing php files result from services registered on specified event.
Example:
- For article edit screen will be newscoop.ui.article.edit event and rendered results will be applied.
Every PluginBundle will can provide widgets for dashboard (TO DO).
Bundle will can introduce new controllers for frontend (custom pages) with support for smarty theme templates.
TODO:
- Newscoop Plugins: ** create new option in menu (0.5 day) ** provide configuration page (0.5 day) ** be localized (our localizer) (0.5 day) ** works with our ACL (0.5 day) ** provide new ui elements (1 day)
Summary: 12 working days for plugins system. + 5 days for paywal plugin.
article_type ArticleType - article type object
article_type ArticleType - article type object
article_type ArticleType - article type object
article_type ArticleType - article type object
old_name string - old article type name
article_type ArticleType - article type object
article_type ArticleType - article type object
new_status boolean - new article type comments activation status
article Article - article object
article Article - article object
article Article - article object
article Article - article object
article Article - article object
orginal_article_number int - article number
article Article - article object
article Article - article object
article Article - article object