Skip to content

Split system module into small modules #5

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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