I will try an awesome plugin first, I don't want to change anything inside Elgg core.
Hope in the near future Elgg team can make it possible for Elgg developers to create extra entities
Adding new base types (user, site, group or object) is very hard to do and (i think) not needed. You can easily extend the existing base type.
For example you could make your course entities extend the group entity and set a different subtype (eg 'course'). This is done everywhere in core for objects and also works for the other base types.
No database alterations needed ;)
Just make sure you register the correct class for the subtype (elgg_add_subtype('group', 'course', 'MyCustomClass');)
But as RvR suggested check out the subtype groups plugin
I am very interested in this plugin (alas, not a coder/developer, so very limited ability to be a contributing participant!).
Our use case is that of making use of Elgg as our "virtual learning environment" for small higher education institution. We use the "groups" (with the "group_tools" plugin) to provide support for courses/modules. Several of these run every year.
It would be VERY convenient to be able to clone the group structure and assets (files, pages, bookmarks) as a new instance, but without the membership (or the blogs or discussions). This way, instructors can start with a "fresh" group for the next course cohort, with the "assets" intact, but without the "bespoke" content generated by the previous cohort.
The might be other ways of realizing this goal (e.g., deleting generated content, renaming/editing for the new session, etc.), but that is not so desirable as the possibility of "archiving" the past "group", and cloning for the next cohort.
info@elgg.org
Security issues should be reported to security@elgg.org!
©2014 the Elgg Foundation
Elgg is a registered trademark of Thematic Networks.
Cover image by RaĆ¼l Utrera is used under Creative Commons license.
Icons by Flaticon and FontAwesome.