Skip to content

Split system module into small modules #5

@MekDrop

Description

@MekDrop

We have one huge system module. Not always when ICMS is installed all these functionalities are used so users has some overhead functionality. Also, trying to keep such big module updated is not easy task. Switching system into smaller modules, I think this would improve CMS overall.

Because new ICMS modules will have composer build-in support, I think it would be a good reason to move some tables creation from installer into these modules and if any other module uses such functionality it could require that. Also, in such way it would be possible for us easier have possibility to replace core functionality with other similar functionality. When installing icms all system modules will be suggested by composer.

Possible modules:

  • adsense
  • autotasks (db table)
  • avatars (db table; provides - avatars)
  • gravatars (provides - avatars)
  • blocks (db table)
  • comments (db table; provides - comments; requires - users)
  • customtag (db table)
  • groups (db table; requires - users)
  • images (db table)
  • mailusers (requires - users)
  • mimetype (db table)
  • modules
  • pages (db table)
  • preferences
  • rating (db table)
  • smilies (db table)
  • tags (db table)
  • tplsets
  • userrank (db table; requires - users)
  • users (dbtable)
  • version

Ok... so ICMS without users? Yeah, why not! Why we can't have CMS that doesn't supports users registration and only is used to display some data that is generated with help of some modules? User should build everything what he wants! Maybe we need to warn user if he didn't selects such modules as users, preferences, modules, groups, tplsets, mimetype, blocks or maybe require by icms to make it work. I'm not sure. But still I think that without other modules ICMS could work perfectly fine.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions