When I started my current job, the first thing I was tasked to do was getting familiar with CommunityServer and then integrate it into our existing framework. I immediately thought back to a few years ago when I bought a hosting account from a well-known provider and they offered a forums add-on. This came in the form of CommunityServer. The only thing I recall about it now, is that I didn't find it appealing, had my account changed from a Windows server to a Unix server, and installed phpBB.
I tried to push down my feelings about CS and jumped into the project feet first. It was fairly easy to set up, so that was a good start. It seemed to have some good functionality; so far so good. Then, I started creating my first custom theme. I read the documentation that said the theme structure was very intuitive. Although I did not find it quite as intuitive as it was touted, I pushed through the CSS changes and the small code changes I had to do for the look and feel to be similar to our existing application. All in all, it could have been worse.
I thought I had everything ready to go and ready to deploy, but we had to pass the test of our CIO. She liked the look and the functionality, but saw overlap with CS and some of our older software. She asked if these things could be integrated into CS. Although I was fairly certain it was possible, I wasn't quite sure of the difficulty. So, in order to integrate custom media tags and a calendar for the main site and for groups, I had to dig deeper into documentation and the SDK code.
What I found is actually a very complex system that has been done pretty well. I implemented a subform to get the media tagging into the system. Since we already own a license for a 3rd-party calendar/scheduling product, I was able to create a user control containing the functionality I needed for the calendar/scheduler, and then toss it onto a few new pages. The final integration tasks included some overriding of the SiteUrls.config file.
Coming soon, I will blog about how I accomplished both of the above in order to give other developers information on how to:
- Create and add a subform to CS to accomplish some basic additions to sections and extended attributes.
- Add a module into CS that will display as a main component and then separately for each group (hub).
Check back in the next few weeks for both blogs.