Modular Approach (born from removing News Fader)
October 27, 2014, 07:08:49 am
I was thinking about how many things in Elkarte really ought to be addons and how many addons might do better in the core. We seem to have many things like the News Fader which really ought to be addons rather than core functionality. Perhaps it would be better to create some official Elkarte addons that could be included with the installation? For example, the News Fader, the Like system, OpenID logins, calendar, etc. from the core. And things like SimplePortal and my external authentication addon from the addons. These things should be a selectable option when downloading Elkarte for installation rather than baked-in functionality or 3rd party addons, since they're not technically "core" functionality to a forum engine, but are important to a lot of people using Elkarte. Of course, this would mean handing over the code for any volunteering addons to the Elkarte team, which would then fall under the Elkarte license. Opinions?
Re: Modular Approach (born from removing News Fader)
Reply #2 – October 27, 2014, 07:55:07 am
Yeah pretty much. Just choose the components you want to install with the core.
Re: Modular Approach (born from removing News Fader)
Reply #3 – October 27, 2014, 11:00:27 am
emanuele
Global Moderator
I'm not so sure about removing them and let the user pick what they want at install (just because I think the "normal" admin just picks the first package he finds and use it, and if it doesn't contain what he wants he goes somewhere else). Though, I certainly like the modularity approach. I think I wrote something in that direction as well, suggesting to make any the "non-strictly-forum" feature (calendar, likes, mentions, portals, etc.) isolated entities, attached to Elk using the same hooks/events any addon would use. That alone would allow updates of the modules without having to update the "core". Okay, "crazy" idea. Each module could have the "toggle on/off" inside the core, but then the code is downloaded and installed only when the module is activated, and the download could happen from a github repository (for example). And new modules could be introduced fetching a feed from github (with a cronjob). And, yes, the news fader should definitely be something "external" (and it should be pretty easy to separate), and maybe more powerful. And now I stop, because I'm already flying way too high. LOL
Re: Modular Approach (born from removing News Fader)
Reply #6 – November 17, 2014, 11:21:41 am
Certain things like OpenID login which are related to very core functionality should stay in the core. Of course the team should try to avoid WordPressisms (my own word for huge features which are part of the core but are only relevant for 1/20 of the users at all).
Re: Modular Approach (born from removing News Fader)
Reply #8 – November 17, 2014, 03:59:18 pm
emanuele
Global Moderator
In that case, I'd say the log in is the "core" functionality. Then the functionality can have different implementations that can be the "internal" (with user/pwd typical of ElkArte), or the "external" (OpenID, OAtuth, a bridge or whatever). And OpenID is one of the core implementations of the log in function.
Re: Modular Approach (born from removing News Fader)
Reply #10 – November 19, 2014, 09:30:05 pm
Awesome work ema! Couldn't agree more on splitting up complexity. At work I spent the better part of 1.5 years working on what we called the "blob". A huge project with over a 1000 files in it. I literally pulled over 70 stand alone projects out of this one project. Now I've been working on removing inter-dependencies between them. Not fun... but soooo worth it now that I've had to alter/change/add code to the smaller projects. lol You guys are doing so many great things with SMFElkArte that is has needed for so long. Still a long road ahead, just wish I could be more involved in it...