Content pre-moderation for group based modules
The goal is to not show content posted in a group right after posting, instead allow group admins to approve it beforehand, including comments (to be discussed).
Add field in all group based modules to enable content approval.
Create system table where all context content from all modules will be stored - sys_context_content with the following fields:
id
context_profile_id
content_info_object
content_id
approved_datetime
Upon any module enable we can register alerts for adding, update and delete content in this table. Data for alerts can be taken from sys_objects_content_info table.
Then we need to add Manage tab in all group based modules where grid with data from sys_context_content table will be displayed. So group admins can approve content here.
We need to send alerts to group admins who follow the group when new content is pending approval.
We need somehow to postpone alerts about new content in a group until it's approved. To do this we can check if content is approved in sys_context_content table, before sending notification from queue. Similar approach is for notification which are displayed on the site, maybe we can join sys_context_content table here as well.