I've spent years thinking about ways to tightly integrate Blogs and CMS systems into a forum based site. This morning a final piece of the puzzle fell into place, and I'd like to get some feedback from others before making it into a "Suggestion."
Basically, BOTH The CMS and the Member Blogs should be nothing more, or less, than a different VIEW (in the MVC sense) of the existing community content (forums). Building a separate parallel system which stovepipes user content is counter productive, presents a unnecessary barrier to user adoption, and fragments the community.
The solution to both a native XF CMS and a native XF Member Blogging solution is essentially:
An extended XenPorta. Let's hear it for Jaxel!
Let me explain.
With the "Promote Thread" functionality Jaxel has already implemented, XenPorta can act right now as quite a good CMS using the forum system to store the articles. About the only thing that's missing is the ability to provide category pages that show a chronological list of "Articles" in a given category.
Category pages could be handled one of two ways (off the top of my head):
- Each category == an existing forum name. That ties in directly with your communities existing content structure, so it prepares newcomers arriving via the home page for the community forum structure.
- When "Promoting" a thread from the community forums to the home page, you specify a matching category for that "article."
Basically each category page acts as a separate WP style blog (displaying carefully selected content from the forums), and the homepage acts as an aggregator (showing all selected content in all categories).
Building on the existing XenPorta functionality we use a single forum to hold all "Member Blog" OP's and present them in a member specific manner. Basically XenPorta, but with the "RecentNews" module set to pull from the designated "Blog" forum (Project Blogs in the example below) with a filter to only pull threads started by the member whose "Blog" you are visiting.
Let's say you have a DIY forum, and you have a forum named "Project Blogs" where your members chronicle their projects. Now I can either go to "Project Blogs" and create a new thread there, or I can click "My Blog" in the site Nav menu to go to my "Blog" (www.domain.com/blogs/tigratrus) then click a "New Post" button to create a new blog entry. In both cases the results are identical:
A thread is created in "Project Blogs" sharing with the community whatever I want to share. A new "Post" shows up in Tigratrus' Blog showing the first 400 (or whatever you have the excerpt set to) characters of the OP followed by a "Read More..." link to the thread and a note that there are "X" comments (which are actually replies to the thread).
Now it's super easy to keep up with all the details of an individual blog you want to follow, just go to that member's "Blog" page. In fact, it might make sense to merge this functionality with the existing user profile.
In addition there's a single place to go to see an activity stream of ALL Member blogs: The Project Blogs.
As an added benefit, it's perfect for the many existing forums that have a thread based blogging tradition already. Nothing has to change, this just gives them a better interface.
Forums... Blogs... CMS Articles. They are all basically the same thing, User Generated Content, initial post and replies/comments. So let's apply the concepts of MVC design to take the existing content, and present it in different ways to more effectively suit different needs. Google loves blog style home pages, that's why so many large sites go to a WP/Joomla/Drupal CMS homepage. But by taking the creative output of the Admin (and other article writers) and funneling it into "Articles", we deprive the community (forums) of that same creative energy, and also deprive the member of the sense of personal accomplishment that goes with having THEIR content on the home page.
Our communities are all about the people in the forums and their stories. Let's take that energy, that sense of community and show it to the world directly! Give the internet a fresh "VIEW" of our communities