This thread extends the one in General chat regarding plugin architecture. Didn't want to hijack.
I'm writing a new CMS for our company and I want to be able to add new plugin modules as and when.
To start off with I'm going to have blog, news, page content editor plugins but I want to be able to extend the number of plugins depending on which site I'm using the CMS with.
I also want to have this controlled by the database so that ultimately we can centralise our client's CMSes and control them from one location eg, add/remove features.
Has anyone ever done anything similar or got any tips on how to implement this?
I've got a few hazy ideas at the moment myself but could do with some input.
Database controlled CMS Plugin Architecture
Moderator: General Moderators
-
Paul Arnold
- Forum Contributor
- Posts: 141
- Joined: Fri Jun 13, 2008 10:09 am
- Location: Newcastle Upon Tyne
-
alex.barylski
- DevNet Evangelist
- Posts: 6267
- Joined: Tue Dec 21, 2004 5:00 pm
- Location: Winnipeg
Re: Database controlled CMS Plugin Architecture
I've been working on a component based CMS pretty much since I started programming in PHP...learning Joomla was probably one of the best and worst learning experiences of my life in this regard.
Go study Joomla plugin architecture, fundamentally they do it spot on, architecturally, they are better than most, implementation wise, the code is a bloody mess.
Go study Joomla plugin architecture, fundamentally they do it spot on, architecturally, they are better than most, implementation wise, the code is a bloody mess.
- allspiritseve
- DevNet Resident
- Posts: 1174
- Joined: Thu Mar 06, 2008 8:23 am
- Location: Ann Arbor, MI (USA)
Re: Database controlled CMS Plugin Architecture
Any chance you could elaborate on the 'fundamental' aspects of their plugin architecture that are 'spot on'?PCSpectra wrote:Go study Joomla plugin architecture, fundamentally they do it spot on, architecturally, they are better than most, implementation wise, the code is a bloody mess.
Re: Database controlled CMS Plugin Architecture
Its really easy to bootstrap into their MVC, use their request object, or very easy to implement your plugin as a simple procedural transaction script or bootstrap some other framework and integrate with theirs. They make a distinction between plugins which are event hooks, modules which are widgets in the page ( that can use plugins & components ) and components basically mean you are writing your own entire module for their application. The great thing is your module has a single point of entry to do it's own bootstrapping, completely freeing you to implement your own architecture if you wanted