My next few blog posts are going to cover some of the changes coming in the next release of Active Forums. While some of these changes will sound fairly substantial, I assure you that every development decision for this release has taken upgrade procedures into consideration. We have made sure that the upgrade process will be as simple uploading the new package and verifying your settings in the control panel. Let's start with the biggest change and the one I expect to have the most questions.
Since the first release of Active Forums we have followed the typical forum design of a Forum Group/Forum/Sub Forum structure. We have found that many customers want greater flexibility, more options and easier administration. Even with the current capability of being able to inherit settings from the group level, management can still be time consuming. We have also found that larger forum implementations have the need for deeper levels of organization. The best way for us to address these issues was to move to a category/sub-category structure.
Forum Categories are equivalent to what you currently know as forums. Managing forum categories will be nearly the same as you manage forums today. I say nearly the same because we have added new options and the concept of "Inherit Group Settings" no longer applies. I know some people just said, "WHAT??? Remove Inherit Group Settings?" Now that we have
Permission and Configuration Sets, inherit group settings is no longer necessary.
For our existing customers this concept probably sounds more intimidating than exciting. Once you see Forum Categories in action the concept will be a little easier to grasp. Your configuration options will be quite extensive. However, for those upgrading and are resistant to change, you can relax knowing the default forum behavior will be exactly as you know it today.
My first concern when we were considering offering multiple levels of forum categories was maintenance. Even with Configuration and Permission Sets, maintenance could become very time consuming. After talking with customers and reviewing several implementation scenarios we came up with the idea to offer Permission and Configuration Sets by Entity. An entity can be any kind of persistent identifier. I'm going to use our forum categories and Security Roles as an example.
Forum Structure for Active Social
- Active Social
- General Discussion
- Support
- Feature Requests
- Customizations
- Customer Only
- Knowledge Base
In order for us to properly secure our current forum structure, we
can't inherit group settings and have to define features and security
for each forum. In most cases, we have different permission and
feature levels based upon registered users, customers, Active Social Customers, Staff and Administrators. With Features By Role, we can define permissions and features at a global level for our entire portal for a specific role, user or an entity such as an Active Social Group. Instead of a couple dozen clicks to setup a new forum, it can now be as simple as entering a forum name and clicking save.
For those customers that like to take a look under the hood, I'm sure you are wondering how the data model has changed. I have outlined the changes below. Please keep in mind that this is not final and subject to change prior to release.
- Added two new tables: activeforums_Permissions and activeforums_Configs. These are very simple tables that are designed to uniquely store an xml document containing the various security and configuration options.
- Foreign keys added to activeforums_Forums table for PermissionSetId and ConfigId.
- All forums and groups are immediately associated with the default permission and config set we have defined. This is to ensure a successful upgrade process if an error should occur during the remaining steps.
- The upgrade script starts by checking to see if any forums inherit settings from a group. If necessary, a permission and config set will be created and associated with the group.
- The upgrade script will then create permission and config sets for each forum that doesn't inherit from a group. The forum entry is then updated to reflect the new permission and config set.
- Data from the activeforums_Groups table is then moved to the activeforums_Forums table and the ParentForumId is set to 0.
- The ParentForumId for existing forums that were previously related to a group, is updated to the ForumId for the new entry for the group.
- The final step is to rebuild the sort order for all entries.
- The upgrade script will not remove any data or delete any tables. We will provide a clean-up script for those that wish to remove tables that are no longer necessary.
As I have mentioned, our goal is to make this upgrade as easy as possible. We have been testing this upgrade process on various installations in multiple environments since May. It was crucial that we knew the upgrade process worked before we moved forward these changes.
My next blog post will either be the new controls and layout options or the custom attributes feature with pick-list search.