<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://alexcrome.co.uk/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Community Server</title><subtitle type="html" /><id>http://alexcrome.co.uk/community_server/b/community_server/atom.aspx</id><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/" /><link rel="self" type="application/atom+xml" href="http://alexcrome.co.uk/community_server/b/community_server/atom.aspx" /><generator uri="http://telligent.com" version="5.6.583.17537">Telligent Community 5.6.583.17537 (Build: 5.6.583.17537)</generator><updated>2008-09-28T15:00:00Z</updated><entry><title>Graffiti to Community Server Migrator</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2009/05/14/graffiti-to-community-server-migrator.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2009/05/14/graffiti-to-community-server-migrator.aspx</id><published>2009-05-14T10:31:25Z</published><updated>2009-05-14T10:31:25Z</updated><content type="html">&lt;p&gt;A few months ago, I decided to move my website from &lt;a href="http://graffiticms.com/"&gt;GraffitiCMS&lt;/a&gt; to &lt;a href="http://communityserver.com"&gt;Community Server&lt;/a&gt;. Whilst I loved Graffiti as a blogging platform, it didn’t best serve my needs for my &lt;a href="http://alexcrome.co.uk/media/g/alexcrome-cs/default.aspx"&gt;Community Server Addons&lt;/a&gt; – I wanted to be able to show the addons in use, and wanted to use wikis for &lt;a href="http://alexcrome.co.uk/wikis/alexcrome-cs-2008-5/default.aspx"&gt;documentation&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;In order to migrate content from Graffiti to Community Server, I created a utility page that ran within Community Server, and grabbed posts from Graffiti using the Graffiti API.&amp;#160; It imports posts from an individual category (and optionally comments and posts from child categories) into a Community Server blog.&amp;#160; I was actually very surprised how easy it was to get posts out of Graffiti – I just referenced the GraffitiClient.API.dll file included with Graffiti from my custom webpage, created an instance of GraffitiService and could access the Graffiti content from that instance.&lt;/p&gt;  &lt;p&gt;The migrator page I created is available &lt;a href="http://alexcrome.co.uk/media/p/465.aspx"&gt;here&lt;/a&gt;.&amp;#160; It is very rough around the edges - the only testing’s it’s gone through was that it managed to successfully migrate cotnent from my graffiti website to my community server website on the third or fourth attempt.&amp;#160; Make sure to carefully read through the notes section when you open the migrator pgae.&lt;/p&gt;  &lt;p&gt;To use the migrator, just drop the migrator page somewhere within your Community Server website and copy the GraffitiClient.API.dll from your Graffiti install into the /bin/ folder of Community Server.&amp;#160; You can then access the migrator by opening the page in your web browser.&amp;#160; (If you get redirected to an Access Denied page, ensure the user you’re logged in as has permissions to post to at least one blog.)&lt;/p&gt;  &lt;p&gt;Once you’ve opened the Migrator page, there are two steps to the migration – the first is to get a list of categories from Graffiti.&amp;#160; To do that you need to fill in the username and password you use to login to Graffiti, as well as the URL to the Graffiti.&amp;#160; (NOTE, you must make sure you append /api/ to your url.)&amp;#160; Press the Load Graffiti Categories button to load the Categories.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/8015.image_5F00_1237C3D3.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/0310.image_5F00_thumb_5F00_71B08420.png" width="244" height="178" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now you have a list of categories from Graffiti, you can select the categories you want to import and the blog you want to import the content into.&amp;#160; You can also chose if you want to migrate comments, and whether you want to migrate content from all child categories.&amp;#160; To migrate your content, hit the Migrate Posts button and your content will be copied from Graffiti to Community Server.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/2086.image_5F00_6CCDD064.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/1004.image_5F00_thumb_5F00_0C107738.png" width="244" height="199" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt; Again I must point out it’s very rough around the edges and should not be used without taking appropiate backups.&amp;#160; Feel free to look at the migration code but be warned it’s not pretty however it did the job it was required to do.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=464" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry><entry><title>Developing on Community Server</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2009/04/29/developing-on-community-server.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2009/04/29/developing-on-community-server.aspx</id><published>2009-04-29T17:06:00Z</published><updated>2009-04-29T17:06:00Z</updated><content type="html">&lt;p&gt;&amp;nbsp;When you come to developing on top of Community Server, you&amp;rsquo;ve first got to decide whether or not you should use the SDK (which you probably shouldn&amp;rsquo;t).&amp;nbsp; You&amp;rsquo;ve then got to set up your initial project so you can best take advantage of Community Server.&amp;nbsp; This blog post will guide you through deciding (hopefully against) using the SDK and setting up Community Server to develop on top of it.&lt;/p&gt;

&lt;h3 id="what_is_the_sdk"&gt;What is the SDK&lt;/h3&gt;
&lt;p&gt;To all intents and purposes the SDK is the source code for core of Community Server &amp;ndash; that is it includes the source for the various CS applications (forums, blogs, etc.), controls and components.&amp;nbsp; It does not however include source code for the Enterprise Addons (e.g. Single Sign On, Mail Gateway), nor the Telligent assemblies.&amp;nbsp; &lt;/p&gt;
&lt;h3 id="why_should_i_avoid_the_sdk_like_the_plague"&gt;Why should I avoid the SDK like the plague?&lt;/h3&gt;
&lt;p&gt;Maybe I&amp;#39;m being a little over the top here, but I strongly reccomend you don&amp;#39;t use the SDK for a live project.&amp;nbsp; By all means have a copy of the SDK to hand for reference purposes, but please avoid using the SDK when you don&amp;#39;t need to.&amp;nbsp; There are a number of reasons for this&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you build directly on the SDK, every time you build your project you&amp;#39;ll need to build the whole CS solution which takes time.&amp;nbsp; Whilst one build doesn&amp;rsquo;t take that long &amp;ndash; maybe 10 seconds to a minute depending on your machine,that time adds up over the course of a day. &lt;/li&gt;
&lt;li&gt;With the SDK in front of you, you&amp;#39;re tempted to modify the core Community Server source code (or accidently make changes).&amp;nbsp; Doing this has two problems &lt;ol&gt;
&lt;li&gt;If you encounter a bug, it&amp;#39;s difficult to determine whether there&amp;#39;s an underlying issue in Community Server, or the issue is with your changes. &lt;/li&gt;
&lt;li&gt;When it comes to upgrading you need to make sure copying the source files doesn&amp;#39;t overwrite the changes you&amp;#39;ve made so you need to spend a lot of time carefully reviewing changes made in the newer version to ensure you don&amp;#39;t lose any of your customisations. &lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Generally there is no reason to need to&amp;nbsp;touch the SDK.&amp;nbsp; It only causes issues later down the lines (see above).&amp;nbsp; It is very easy to plug into the Community Server Pipeline when you need to extend it (such as CSModules, custom Data Providers and subclassing existing controls) and custom&amp;nbsp;features can be built in seperate projects and then referenced from within your Community Server theme.&amp;nbsp; If you are not sure of how you can achieve your goal without modifying the SDK, pose the question to some other developers on the &lt;a href="http://dev.communityserver.com/forums/"&gt;Community Server forums&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id="building_on_community_server_without_using_the_sdk"&gt;Building on Community Server without using the SDK&lt;/h3&gt;
&lt;p&gt;Now youv&amp;#39;e decided against usign the SDK (If you haven&amp;#39;t , I reccomend you read my warnings again and make very sure you can&amp;#39;t do this without the SDK) it&amp;#39;s time to set up Visual Studio to build on top of Community Server.&amp;nbsp; Before I detail how to do this, I must thank &lt;a href="http://community.hydrussoftware.com/blogs/john/default.aspx"&gt;John Bledsoe&lt;/a&gt; of &lt;a href="http://www.atgi.com"&gt;ATGi&lt;/a&gt; (A &lt;a href="http://communityserver.com/learn-more/partner-program/"&gt;Community Server Partner&lt;/a&gt;) for &lt;a href="http://dev.communityserver.com/forums/p/505831/644868.aspx#644868"&gt;introducing me&lt;/a&gt; to this set up.&amp;nbsp; This is simply step by step instructions on how to use John&amp;#39;s technique.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If you don&amp;#39;t already have a copy of Visual Studio, download and install &lt;a href="http://www.microsoft.com/express/vwd/Default.aspx"&gt;Visual Studio Web Developer Express 2008&lt;/a&gt; SP1.&amp;nbsp;&amp;nbsp; (N.B. if you have a copy of Visual Studio Web Developer Express 2005, or 2008 without SP1, you will need to either upgrade to 2008 SP1 or a full version of Visual Studio in order to use this set up).&amp;nbsp; If you don&amp;#39;t have a copy of SQL Server, you will likely want to install that so you can run Community Server on your computer.&amp;nbsp; (Unlike Visual Studio Web Developer Express 2005, SQL Server Express 2005 is suitable for this purpose). &lt;/li&gt;
&lt;li&gt;Open Visual Studio and go to file &amp;gt; new project and create a new &amp;quot;ASP.Net Web Application&amp;quot; &lt;br /&gt;&lt;a href="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/3480.image_5F00_3DB8C06E.png"&gt;&lt;img height="167" width="244" src="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/7245.image_5F00_thumb_5F00_5CFDF7F2.png" alt="image" border="0" style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;To your Web Application Project, add a class library project - this will be where you write any custom controls and / or code for your website.&amp;nbsp; Depending on what you&amp;#39;re doing, you may prefer to make a number of class library projects to better separate your custom extensions. &lt;br /&gt;&lt;a href="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/8562.image_5F00_5C9455AE.png"&gt;&lt;img height="156" width="244" src="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/2625.image_5F00_thumb_5F00_550B76F2.png" alt="image" border="0" style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Delete the existing files within the project &lt;br /&gt;&lt;a href="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/5040.image_5F00_64AE12B4.png"&gt;&lt;img height="166" width="195" src="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/3757.image_5F00_thumb_5F00_31DE0C40.png" alt="image" border="0" style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Download the latest Community Server Web Installer from &lt;a href="http://get.communityserver.com/download/" title="http://get.communityserver.com/download/"&gt;http://get.communityserver.com/download/&lt;/a&gt;, and paste the contents of the /web/ folder (apart from the /bin/ folder) of the Web Installer into your web project.&amp;nbsp; (I suggest here you paste into the web project through Visual Studio rather than Windows Explorer) &lt;/li&gt;
&lt;li&gt;In Windows Explorer, open the location where you&amp;#39;ve created your two projects and add a new folder &amp;quot;References&amp;quot; &lt;br /&gt;&lt;a href="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/8838.image_5F00_2818A4C8.png"&gt;&lt;img height="220" width="244" src="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/1462.image_5F00_thumb_5F00_771B84CB.png" alt="image" border="0" style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Into this References folder, copy the contents of /web/bin/ in the Web Installer download. &lt;br /&gt;&lt;a href="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/2335.image_5F00_28A98312.png"&gt;&lt;img height="202" width="244" src="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/1004.image_5F00_thumb_5F00_05EADC06.png" alt="image" border="0" style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Now back in visual studio, right click the References folder in the Web Project, and select Add Reference &lt;br /&gt;&lt;a href="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/6813.image_5F00_52B1334D.png"&gt;&lt;img height="242" width="244" src="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/7343.image_5F00_thumb_5F00_5415561F.png" alt="image" border="0" style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt;&amp;nbsp; &lt;br /&gt;In the Add References Window that opens, select the Browse tab, navigate to the References folder, add references to all the files in this folder (n.b. you don&amp;#39;t have to add them one by one, you can select all the files in one go and click OK) &lt;br /&gt;&lt;a href="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/1738.image_5F00_7C4A1FE2.png"&gt;&lt;img height="206" width="244" src="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/6102.image_5F00_thumb_5F00_396DDB68.png" alt="image" border="0" style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;Now open the Add References Window again, and click on the Projects Tab.&amp;nbsp; Add a reference to the class library project(s) you created.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;a href="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/6036.image_5F00_32512FA1.png"&gt;&lt;img height="206" width="244" src="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/8203.image_5F00_thumb_5F00_73EB6BED.png" alt="image" border="0" style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/8420.image_5F00_038E07B0.png"&gt;&lt;img height="244" width="226" src="http://alexcrome.co.uk/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/community_5F00_server.metablogapi/6663.image_5F00_thumb_5F00_60CCCFF2.png" align="left" alt="image" border="0" style="border-right-width:0px;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;You have now completed setting up the project in which to extend Community Server without modifying the core code.&amp;nbsp; All your custom code can go into the class library project(s) you created, and you can use the SDK as a reference for any custom controls or extension you do.&amp;nbsp; Before you can start using your Community Server site, you will need to build the solution, and then run the &lt;a href="http://docswiki.communityserver.com/wikis/cs20085docs/installing-web-based-community-server-2008-5.aspx"&gt;web installer&lt;/a&gt; to set up the Community Server database.&lt;/p&gt;
&lt;p&gt;At this point you may also wish to consider checking your project into a Source Control system so you can keep track of changes made.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id="building_on_community_server_with_the_sdk" style="clear:both;"&gt;Building on Community Server with the SDK&lt;/h3&gt;
&lt;p&gt;If you&amp;rsquo;ve got this far, you&amp;rsquo;ve ignored all my warnings about avoiding the SDK wherever you can.&amp;nbsp; For one last time I plea that do evaluate exactly what you want to achieve and whether it can be done without touching the SDK.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve tried my&amp;nbsp;best to disuade you from using the SDK, however if I&amp;#39;ve been unsuccessful, I might as well give you some advise on using the SDK.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Properly set your project up in source control&lt;/strong&gt; &amp;ndash; Whilst I would suggest that you always check your project into source control, regardless of whether you use the SDK or not, the importance of source control skyrockets when building directly with the SDK.&amp;nbsp; When it comes to upgrading, if you set your project up properly in source control you can automate a lot of the merge process.&amp;nbsp; For an idea of the process you&amp;rsquo;ll need to go through when upgrading CS with the SDK take a look at another blog post by &lt;a href="http://community.hydrussoftware.com/blogs/john/default.aspx"&gt;John Bledsoe&lt;/a&gt; on &lt;a href="http://community.hydrussoftware.com/blogs/john/archive/2009/04/08/upgrading-a-community-server-site-to-a-new-version-of-the-product.aspx"&gt;Upgrading Community Server&lt;/a&gt;.&amp;nbsp; That post should also give you an idea of how to set your project up in source control. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keep changes to the core SDK to a minimum &amp;ndash; &lt;/strong&gt;You&amp;rsquo;ve seen all the reasons above for why you should avoid the SDK.&amp;nbsp; The more you modify the SDK, the harder you make your life.&amp;nbsp; If you are adding significant new functionality which requires modification of the core code base, always think of whether some of the functionality can be moved into a separate project, and then just add pointerst into the SDK pointing to your custom code. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id="using_community_server_with_the_visual_studio_web_server"&gt;Using Community Server with the Visual Studio Web Server&lt;/h3&gt;
&lt;p&gt;The CFS (Centralised File System) is not compatible with the Visual Studio Web Server.&amp;nbsp; Community Server will work find on the Visual Studio Web server, however any uploaded content (e.g. user avatars, media gallery posts etc.) will not work.&amp;nbsp; To work around this issue, you should do your testing on IIS where possible.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=302" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry><entry><title>AlexCrome.CS 2008.5</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2009/04/07/alexcrome-cs-2008-5.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2009/04/07/alexcrome-cs-2008-5.aspx</id><published>2009-04-07T21:22:00Z</published><updated>2009-04-07T21:22:00Z</updated><content type="html">&lt;p&gt;I&amp;#39;ve finaly got around to finishing and packing up the 2008.5 version of my addons.&lt;/p&gt;
&lt;p&gt;For those of you who can&amp;#39;t wait to read the rest of this blog post, you can download the addons from &lt;a href="http://alexcrome.co.uk/media/p/219.aspx"&gt;the media gallery&lt;/a&gt; and read documentation on them from &lt;a href="http://alexcrome.co.uk/wikis/alexcrome-cs-2008-5/default.aspx"&gt;the wiki&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="new_in_this_version"&gt;New in this version&lt;/h2&gt;
&lt;h3 id="extended_attributes_sub_form"&gt;&lt;a href="http://alexcrome.co.uk/wikis/alexcrome-cs-2008-5/extended-attributes-subform.aspx"&gt;Extended Attributes Sub Form&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;This is the addon I&amp;#39;m most excited about.&amp;nbsp; A very powerful feature of Chameleon Forms in Community Server is the ability to plug in &amp;quot;SubForms&amp;quot; which can collect additional data and store it with the object when it saved.&amp;nbsp; Whilst this is a powerful feature, for simple situations where you only want to collect extra data without performing validation or much extra work the SubForms method is overly complictaed with a lot of formality required to do a simple action.&lt;/p&gt;
&lt;p&gt;The Extended Attributes SubForm is a SubForm which allows the controls within it to be defined through an XML file in much the same way you can define DynamicConfiguration optiosn for a theme in the theme.config file (In fact the subform control uses the same DynamicConfiguration bits as Theme Configurationd does).&amp;nbsp; Whilst I accept the XML file itself is not as elegant as writing a custom SubForm, for simple data collection it is easier, and more accessible.&lt;/p&gt;
&lt;p&gt;You can see an example of the SubForm in action at &lt;a href="http://alexcrome.co.uk/demo/ExtendedAttributesSample.aspx"&gt;http://alexcrome.co.uk/demo/ExtendedAttributesSample.aspx&lt;/a&gt;&amp;nbsp;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id="table_of_contents"&gt;Table of Contents&lt;/h3&gt;
&lt;p&gt;The table of contents addon can be used to generate a Table of Cotnents for an individual post.&amp;nbsp; The table of contents is generated based on the use of heading tags (h1, h2, h3 etc.)&amp;nbsp; A table of contents is placed by adding [&lt;strong&gt;toc&lt;/strong&gt;] into a post where you want the table of contents to appear.&amp;nbsp; The following is the table of contents generated for this post.&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id="other_smaller_additions"&gt;Other smaller additions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;New User Random Avatar&lt;/strong&gt; - Sick of having lots of users with the anonymous avatar?&amp;nbsp; This module will assign new members a random avatar from the Selectable Avatars store when they join.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Default Mirrored Blog Post Author&lt;/strong&gt; - Sick of having mirrrored blog posts having the anonymous user avatar.&amp;nbsp; This module will cause the posts to be created by the first owner of the blog the post is being mirrored to instead of the anonymous user.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SubscribeToHubOnJoin&lt;/strong&gt; - Subscribes a user to a group when they join so they recieve email updates from that group.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New Hub Random Avatar &lt;/strong&gt;- Does the same as the User Random Avatar module, but for Hubs.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id="changes_to_existing_addons"&gt;Changes to Existing Addons&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Referal Points now supports creating friendships betwen users when a user accepts an invitation from another user.&lt;/li&gt;
&lt;li&gt;A few CSModules have been renamed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id="get_the_addons"&gt;Get the Addons&lt;/h2&gt;
&lt;p&gt;To get the addons, just to to &lt;a href="http://alexcrome.co.uk/media/p/219.aspx"&gt;the media gallery&lt;/a&gt;&amp;nbsp;and download the addon package.&amp;nbsp; Installation instructions are available on the download page.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=220" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry><entry><title>CSModules</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2009/02/16/csmodules.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2009/02/16/csmodules.aspx</id><published>2009-02-16T22:02:00Z</published><updated>2009-02-16T22:02:00Z</updated><content type="html">&lt;p&gt;CSModules allow you to plug into Community Server and run your own code when certain events happen.&lt;/p&gt;
&lt;p&gt;In fact CSModules are so good that a lot of Community Server functionality is implemented through CSModules (77 are used out of the box!). This means you can remove or replace Community Server functionality without having to touch the core source code. Examples of functionality implemented with CSModules include&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Activity Message Logging&lt;/li&gt;
&lt;li&gt;Email Notification &lt;/li&gt;
&lt;li&gt;Points &lt;/li&gt;
&lt;li&gt;Spam Filtering &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="creating_a_csmodule"&gt;Creating a CSModule&lt;/h2&gt;
&lt;p&gt;To create a CSModule you need to create a class that implements the CommunityServer.Components.ICSModule Interface. This interface has one method &amp;ndash; Init &amp;ndash; with two paramaters&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;CSApplication &amp;ndash;&lt;/b&gt; this contains the events you want to hook into&lt;/li&gt;
&lt;li&gt;&lt;b&gt;XmlNode &amp;ndash;&lt;/b&gt; This is the XmlNode that was used to register the CSModule. This can be used for custom configuration options.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Additional events for Wikis are available by hooking into events in CommunityServer.Wikis.Components.WikiEvents.&lt;/p&gt;
&lt;p&gt;Once you&amp;rsquo;ve created your CSModule, you need to register it so that CS knows to use it. CSModules are registered in the &amp;lt;CSModules&amp;gt; section of communityserver.config. To add your custom module, just add a new node to this section with the following markup.&lt;/p&gt;
&lt;pre&gt;&amp;lt;add name=&amp;quot;Your_Module_Name&amp;quot; type = &amp;quot;Namespace.ClassName, Assembly&amp;quot; /&amp;gt;&lt;/pre&gt;
&lt;p&gt;(n.b. where possible you should use an override file to do this &amp;ndash; see below) &lt;/p&gt;
&lt;h2 id="tips_and_tricks"&gt;Tips and Tricks&lt;/h2&gt;
&lt;h3 id="register__remove_csmodules_with_override_files"&gt;Register / Remove CSModules with Override Files&lt;/h3&gt;
&lt;p&gt;For a more detailed explanation of Override files and why you should use them, read this article on &lt;a href="http://alexcrome.co.uk/blogs/community_server/override-files-in-community-server.aspx"&gt;Override Files&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Essentially by using a &lt;a href="http://alexcrome.co.uk/blogs/community_server/override-files-in-community-server.aspx"&gt;communityserver_override.config&lt;/a&gt; file to register CSModules you make upgrading to future versions of Community Server easier.&lt;/p&gt;
&lt;p&gt;Below are two example &lt;a href="http://alexcrome.co.uk/blogs/community_server/override-files-in-community-server.aspx"&gt;overrides&lt;/a&gt; for adding and removing CSModules.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Add a CSModule&lt;/b&gt; &lt;br /&gt;
&lt;pre&gt;&amp;lt;Override xpath=&amp;quot;/CommunityServer/CSModules&amp;quot; mode=&amp;quot;add&amp;quot;&amp;gt; 
&amp;lt;!-- Register your CSModules Here &amp;ndash;&amp;gt; 
&amp;lt;/Override&amp;gt; &lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Remove a CSModule&lt;/b&gt; &lt;br /&gt;
&lt;pre&gt;&amp;lt;Override xpath=&amp;quot;/CommunityServer/CSModules/add[@name=&amp;#39;ModuleName&amp;#39;]&amp;quot; mode=&amp;quot;remove&amp;quot; /&amp;gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="wikis"&gt;Wikis&lt;/h3&gt;
&lt;p&gt;Events on the CSApplication object in the ICSModule Init method do not fire for Wikis. To hook into events fired for Wikis, you should hook into events in the CommunityServer.Wikis.Components.WikiEvents class (in the CommunityServer.Wikis assembly).&lt;/p&gt;
&lt;h3 id="pre_or_post_before_or_after_in_wikievents"&gt;Pre or Post (Before or After in WikiEvents)&lt;/h3&gt;
&lt;p&gt;When you look through the list of available events, you&amp;rsquo;ll often see two similar events &amp;ndash; one PreSOMETHING and another PostSOMETHING. The difference between the two is the Pre event is fired before the object is saved or deleted to the database, whereas the Post event is fired after &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Pre / Before &amp;ndash;&lt;/b&gt; use this version of the event if you want to make changes to the object that you want persisted in the database. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Post / After &amp;ndash;&lt;/b&gt; use this version of the event if want to run code after an action has successfully completed. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="object_state"&gt;Object State&lt;/h3&gt;
&lt;p&gt;(N.B. Doesn&amp;rsquo;t apply to Wiki Events)&lt;/p&gt;
&lt;p&gt;Most events fire when a relevant object is being created, updated or deleted. However you may not want to run your code in all these scenarios. To determine the scenario you&amp;rsquo;re in, you should look at the State property of the event&amp;rsquo;s EventArgs&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;ObjectState.Create &amp;ndash;&lt;/b&gt; the object is about to be added to the database for the first time(Pre / Before) or has just been saved to the database for the first time (Post / After) &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ObjectState.Delete &amp;ndash;&lt;/b&gt; the object is about to be deleted from the data store (Pre / Before) or has just been deleted (Post / After) &lt;/li&gt;
&lt;li&gt;&lt;b&gt;ObjectState.Update &amp;ndash;&lt;/b&gt; the object has been previously saved to the database, but is about to be updated in the data store (Pre / Before) or is has just been updated in the data store (Post / After) &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="application_type"&gt;Application Type&lt;/h3&gt;
&lt;p&gt;(N.B. Doesn&amp;rsquo;t Apply to Wiki Events)&lt;/p&gt;
&lt;p&gt;The SectionGroup, Section and Post events fire regardless of whether the object is to do with Blogs or Forums etc., but you may only want your code to fire in one scenario. For that you should check the ApplicationType property of the event&amp;rsquo;s EventArgs.&lt;/p&gt;
&lt;h3 id="configuration"&gt;Configuration&lt;/h3&gt;
&lt;p&gt;You may have noticed that the CSModule Init event has two paramaters &amp;ndash; the CSApplication which provides the events to hook into, but also an XmlNode. This is the xml node which you used to register the module in the &amp;lt;CSModules&amp;gt; section of communityserver.config.&lt;/p&gt;
&lt;p&gt;This means that you don&amp;rsquo;t have to hard code variables into your CSModule, and can instead specify them on the XML Node you use to register your module &amp;ndash; this means you can change the variables at a later date without having to recompile your module&lt;/p&gt;
&lt;h2 id="troubleshooting_csmodules"&gt;Troubleshooting CSModules&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Make sure your Module class is marked as public &lt;/li&gt;
&lt;li&gt;Changes made to communityserver.config (or communityserver_override.config) may not take effect until your website is restarted. You can force a restart by touching the web.config file. &lt;/li&gt;
&lt;li&gt;Check the Community Server event logs &amp;ndash; events are recorded there if CSModules can&amp;rsquo;t be loaded. &lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="csmodule_events"&gt;CSModule Events&lt;/h2&gt;
&lt;p&gt;(N.B. for wiki related events, refer to the WikiEvents section below)&lt;/p&gt;
&lt;p&gt;I haven&amp;rsquo;t included descriptions of most events because they&amp;rsquo;re fairly self explanatory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pre...Update events are fired before the ... object is added, updated or deleted from the data store &lt;/li&gt;
&lt;li&gt;Post...Update events are fired after the ... object is added, updated or deleted from the data store &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For those events which aren&amp;rsquo;t so self explanatory, descriptions have been included&lt;/p&gt;
&lt;h3 id="group"&gt;Group&lt;/h3&gt;
&lt;p&gt;These events are for Section Groups, not Hubs (which are called Groups in the front end). For Hub events use the Section events.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PreSectionGroupUpdate &lt;/li&gt;
&lt;li&gt;PostSectionGroupUpdate &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="section"&gt;Section&lt;/h3&gt;
&lt;p&gt;A section is a Forum, a Weblog, a MediaGallery or a Hub.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PreSectionUpdate &lt;/li&gt;
&lt;li&gt;PostSectionUpdate &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="post"&gt;Post&lt;/h3&gt;
&lt;p&gt;Post is the base class to store blog posts, blog comments, media gallery posts, media gallery comments and forum posts &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AuthorizePost &amp;ndash; Never Fired &lt;/li&gt;
&lt;li&gt;PreProcessPost &amp;ndash; Fired before just before the PrePostUpdate event &lt;/li&gt;
&lt;li&gt;PrePostUpdate &lt;/li&gt;
&lt;li&gt;PostPostUpdate &lt;/li&gt;
&lt;li&gt;PreRenderPost &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="postattachments"&gt;PostAttachments&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;PrePostAttachmentUpdate &lt;/li&gt;
&lt;li&gt;PostPostAttachmentUpdate &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="user"&gt;User&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;UserValidated &amp;ndash; Fired after a user&amp;rsquo;s credentials are verified &lt;/li&gt;
&lt;li&gt;UserKnown &amp;ndash; Fires as soon as CS knows the user who is viewing the page (this may be the anonymous user) &lt;/li&gt;
&lt;li&gt;PreUserUpdate &lt;/li&gt;
&lt;li&gt;PostUserUpdate &lt;/li&gt;
&lt;li&gt;UserRemoved &amp;ndash; Fired after a user is removed from the data store &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="userinvitation"&gt;UserInvitation&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;PreUserInvitationUpdate &lt;/li&gt;
&lt;li&gt;PostUserInvitationUpdate &lt;/li&gt;
&lt;li&gt;UserInvitationAccepted &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="userfiles"&gt;UserFiles&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;PreUserFileUpdate &lt;/li&gt;
&lt;li&gt;PostUserFileUpdate &lt;/li&gt;
&lt;li&gt;PreUserFolderUpdate &lt;/li&gt;
&lt;li&gt;PostUserFolderUpdate &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="friendship"&gt;Friendship&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;PreFriendshipUpdate &lt;/li&gt;
&lt;li&gt;PostFriendshipUpdate &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="messages"&gt;Messages&lt;/h3&gt;
&lt;p&gt;Messages include Conversations, Activity Messages, Announcements, Profile Comments and Status Messages. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PreMessageUpdate &lt;/li&gt;
&lt;li&gt;PostMessageUpdate &lt;/li&gt;
&lt;li&gt;PreMessageRender &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="search"&gt;Search&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;PreSearch &lt;/li&gt;
&lt;li&gt;PostSearch &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="configuration"&gt;Configuration&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;PostConfigurationInitialized &amp;ndash; Fired after Community Server loads configuration data for the first time. &lt;/li&gt;
&lt;li&gt;PreConfigurationUpdate &lt;/li&gt;
&lt;li&gt;PostConfigurationUpdate &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="misc"&gt;Misc&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Category &amp;ndash; fired whenever a PostCategory (Tag) is updated or deleted (but not created)&lt;/li&gt;
&lt;li&gt;Rate &amp;ndash; Fired after any content is Rated&lt;/li&gt;
&lt;li&gt;Favorite &amp;ndash; Fired whenever an item is added or removed as a favourite. &lt;/li&gt;
&lt;li&gt;SectionMembership &amp;ndash; Fired whenever a user joins or leaves a Hub. &lt;/li&gt;
&lt;li&gt;CSException &amp;ndash; Fired whenever an ASP.Net exception is thrown at the application level. &lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="wiki_events"&gt;Wiki Events&lt;/h2&gt;
&lt;p&gt;Again I&amp;rsquo;m not providing descriptions because the events are self explanatory.&lt;/p&gt;
&lt;h3 id="wiki"&gt;Wiki&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;BeforeAddWiki &lt;/li&gt;
&lt;li&gt;AfterAddWiki &lt;/li&gt;
&lt;li&gt;BeforeUpdateWiki &lt;/li&gt;
&lt;li&gt;AfterUpdateWiki &lt;/li&gt;
&lt;li&gt;BeforeDeleteWiki &lt;/li&gt;
&lt;li&gt;AfterDeleteWiki &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="page"&gt;Page&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;BeforeAddPage &lt;/li&gt;
&lt;li&gt;AfterAddPage &lt;/li&gt;
&lt;li&gt;BeforeUpdatePage &lt;/li&gt;
&lt;li&gt;AfterUpdatePage &lt;/li&gt;
&lt;li&gt;BeforeDeletePage &lt;/li&gt;
&lt;li&gt;AfterDeletePage &lt;/li&gt;
&lt;li&gt;RenderPage &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="page_comment"&gt;Page Comment&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;BeforeAddPageComment &lt;/li&gt;
&lt;li&gt;AfterAddPageComment &lt;/li&gt;
&lt;li&gt;BeforeUpdatePageComment &lt;/li&gt;
&lt;li&gt;AfterUpdatePageComment &lt;/li&gt;
&lt;li&gt;BeforeDeletePageComment &lt;/li&gt;
&lt;li&gt;AfterDeletePageComment &lt;/li&gt;
&lt;li&gt;RenderPageComment &lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="page_revision"&gt;Page Revision&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;RenderPageRevision &lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=98" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry><entry><title>Override Files in Community Server</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2008/12/29/override-files-in-community-server.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2008/12/29/override-files-in-community-server.aspx</id><published>2008-12-29T18:15:00Z</published><updated>2008-12-29T18:15:00Z</updated><content type="html">&lt;p&gt;&lt;em&gt;For all examples in this article, I shall only be modifying the configuration of the HTML Scrubber through a communityserver_override.config for the sake of consistency, however do bear in mind that override files can be used to modify any aspect of a communityserver.config or a siteurls.config file.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id="why_should_i_use_override_files"&gt;Why Should I use Override Files?&lt;/h3&gt;
&lt;p&gt;The main benefit of using override files to make changes to the core configuration files is that you are not actually modifying the core configuration files.&amp;nbsp; You are instead making the modifications through a separate configuration file.&amp;nbsp; This means that when you come to upgrading Community Server, the changes you&amp;rsquo;ve made won&amp;rsquo;t be destroyed if the upgrade comes with new&amp;nbsp; versions of the core configuration files.&lt;/p&gt;
&lt;h3 id="the_override_file"&gt;The Override File&lt;/h3&gt;
&lt;p&gt;An override file is just another xml file.&amp;nbsp; The basic structure of an override file goes as follows&lt;/p&gt;
&lt;pre&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;&amp;gt;
&amp;lt;Overrides&amp;gt;
&amp;nbsp; &amp;lt;!-- Overrides go here --&amp;gt;
&amp;lt;/Overrides&amp;gt;&lt;/pre&gt;
&lt;p&gt;The override file should go into the root of your website &amp;ndash; i.e. the same location as the existing communityserver.config file. If you are overriding siteurls.config, it should be called siteurls_override.config.&amp;nbsp; Similar with communityserver.config you&amp;rsquo;d name the file communityserver_override.config.&lt;/p&gt;
&lt;h3 id="overrides"&gt;Overrides&lt;/h3&gt;
&lt;p&gt;An override file contains a collection of overrides.&amp;nbsp; Each override must have two attributes specified on it &amp;ndash; xpath and mode.&lt;/p&gt;
&lt;p&gt;The xpath attribute is the XPath to the node (or attribute) of the configuration file you want to manipulate with the override.&amp;nbsp; A description of XPath goes beyond the scope of this article, but very briefly the XPath is a path to specific nodes in the core configuration file.&amp;nbsp; You will see some example XPaths throughout this article, but for more details on XPath I suggest you have a look at the &lt;a href="http://www.w3schools.com/xpath/default.asp"&gt;W3School&amp;rsquo;s XPath tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are five different modes overrides can use&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Remove &amp;ndash;&lt;/strong&gt; Deletes a node or attribute&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update &amp;ndash;&lt;/strong&gt; Used to change an entire xml node&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add &amp;ndash;&lt;/strong&gt; Adds a node (or nodes) either before, after or within the specified node&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Change &amp;ndash;&lt;/strong&gt; Used to change the value of an attribute&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New &amp;ndash;&lt;/strong&gt; Used to create a new attribute with the specified value&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="remove"&gt;Remove&lt;/h4&gt;
&lt;p&gt;The remove option can be used to remove a whole node or a single attribute from the configuration file.&amp;nbsp; For example, you may decide you don&amp;rsquo;t want to allow your users to specify css classes for the content they generated.&amp;nbsp; To do this you could use the following override to remove class from the list of allowed global attributes.&lt;/p&gt;
&lt;pre&gt;&amp;lt;Override xpath=&amp;quot;/CommunityServer/MarkUp/globalAttributes/class&amp;quot; mode=&amp;quot;remove&amp;quot; /&amp;gt;&lt;/pre&gt;
&lt;p&gt;Similarly you could decide that you don&amp;rsquo;t want users to be able to specify the colour used with font tags.&amp;nbsp; To remove a specific attribute you must specify the name of the attribute to remove&lt;/p&gt;
&lt;pre&gt;&amp;lt;Override xpath=&amp;quot;/CommunityServer/MarkUp/html/font&amp;quot; mode=&amp;quot;remove&amp;quot; name=&amp;quot;color&amp;quot; /&amp;gt;&lt;/pre&gt;
&lt;p&gt;If you used the above two overrides in a communityserver_override.config, here is what the configuration file looks like to Community Server before and after the overrides are applied.&amp;nbsp; (N.B. the before is not a complete snippet from the communityserver.config, any markup irrelevant to showing the changes these overrides make has been removed)&lt;/p&gt;
&lt;table cellpadding="2" cellspacing="0" border="0" style="width:100%;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="283" valign="top"&gt;&lt;strong&gt;Before&lt;/strong&gt;&lt;/td&gt;
&lt;td width="245" valign="top"&gt;&lt;strong&gt;After&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="283" valign="top"&gt;
&lt;p&gt;&amp;lt;MarkUp&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;globalAttributes&amp;gt; &lt;br /&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;class enable=&amp;quot;true&amp;quot; /&amp;gt;&lt;/span&gt; &lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/globalAttributes&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;html&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip &amp;ndash;&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;font &lt;span style="color:#ff0000;"&gt;&lt;strong&gt;color=&amp;quot;true&amp;quot;&lt;/strong&gt;&lt;/span&gt; face=&amp;quot;true&amp;quot; size=&amp;quot;true&amp;rdquo; /&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/html&amp;gt; &lt;br /&gt;&amp;lt;/MarkUp&amp;gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="245" valign="top"&gt;
&lt;p&gt;&amp;lt;MarkUp&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;globalAttributes&amp;gt;&amp;nbsp;&amp;nbsp;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/globalAttributes&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;html&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip &amp;ndash;&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;font&amp;nbsp; face=&amp;quot;true&amp;quot; size=&amp;quot;true&amp;rdquo; /&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/html&amp;gt; &lt;br /&gt;&amp;lt;/MarkUp&amp;gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="update"&gt;Update&lt;/h4&gt;
&lt;p&gt;The update mode allows you to totally replace a node in the original configuration file.&amp;nbsp; This is particularly useful if you&amp;rsquo;re making so many changes to the original node, that it&amp;rsquo;s just easier to replace the whole node.&amp;nbsp; For example say you wanted to allow users to only use an very small subset of html when posting (say just bold, italic, paragraphs and line breaks).&amp;nbsp; You could use the following override.&lt;/p&gt;
&lt;pre&gt;&amp;lt;Override xpath=&amp;quot;/CommunityServer/MarkUp/html&amp;quot; mode=&amp;quot;update&amp;quot;&amp;gt;&lt;br /&gt; &amp;lt;html&amp;gt;&lt;br /&gt; &amp;lt;strong /&amp;gt;&lt;br /&gt; &amp;lt;em /&amp;gt;&lt;br /&gt; &amp;lt;p /&amp;gt;&lt;br /&gt; &amp;lt;br /&amp;gt;&lt;br /&gt; &amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Override&amp;gt;&lt;/pre&gt;
&lt;table cellpadding="2" cellspacing="0" border="0" style="width:100%;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="50%" valign="top"&gt;&lt;strong&gt;Before&lt;/strong&gt;&lt;/td&gt;
&lt;td width="50%" valign="top"&gt;&lt;strong&gt;After&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="50%" valign="top"&gt;
&lt;p&gt;&amp;lt;MarkUp&amp;gt; &lt;br /&gt;&lt;span style="color:#ff0000;"&gt;&amp;nbsp;&lt;strong&gt; &amp;lt;html&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;a charset=&amp;quot;true&amp;quot; href=&amp;quot;true&amp;quot; hreflang=&amp;quot;true&amp;quot; name=&amp;quot;true&amp;quot; rel=&amp;quot;true&amp;quot; rev=&amp;quot;true&amp;quot; target=&amp;quot;true&amp;quot; type=&amp;quot;true&amp;quot; /&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;abbr /&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;acronym /&amp;gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/html&amp;gt; &lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/MarkUp&amp;gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="50%" valign="top"&gt;
&lt;p&gt;&amp;lt;MarkUp&amp;gt; &lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;span style="color:#008000;"&gt;&lt;strong&gt;&amp;nbsp; &amp;lt;html&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;strong /&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;em /&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p /&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;br /&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/html&amp;gt;&lt;/strong&gt;&lt;/span&gt;
&lt;p&gt;&amp;lt;/MarkUp&amp;gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="add"&gt;Add&lt;/h4&gt;
&lt;p&gt;The add mode allows you to add additional nodes into the original configuration file.&amp;nbsp; With add overrides, you can specify a where attribute to specify where the overrides should be added.&amp;nbsp; The following values can be used for the where attributes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;before&lt;/strong&gt; &amp;ndash; This adds the nodes within the override before the node specified in the XPath&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;after&lt;/strong&gt;&amp;ndash; This adds the nodes within the override after the node specified in the XPath&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;start&lt;/strong&gt; &amp;ndash; adds the nodes within the override at the beginning of the node specified in the XPath&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;end&lt;/strong&gt; &amp;ndash; adds the nodes within the override at the end of the node specified in the XPath&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If no value is specified for where, the start behaviour will be used.&lt;/p&gt;
&lt;p&gt;To better illustrate the difference between what different wheres do, take the following overrides&lt;/p&gt;
&lt;pre&gt;&amp;lt;Override xpath=&amp;quot;/CommunityServer/MarkUp/html/&amp;quot; mode=&amp;quot;add&amp;quot; where=&amp;quot;before&amp;quot; &amp;gt;
&amp;nbsp; &amp;lt;Before /&amp;gt;
&amp;lt;/Override&amp;gt;
&amp;lt;Override xpath=&amp;quot;/CommunityServer/MarkUp/html/&amp;quot; mode=&amp;quot;add&amp;quot; where=&amp;quot;after&amp;quot; &amp;gt;
&amp;nbsp; &amp;lt;After /&amp;gt;
&amp;lt;/Override&amp;gt;
&amp;lt;Override xpath=&amp;quot;/CommunityServer/MarkUp/html/&amp;quot; mode=&amp;quot;add&amp;quot; where=&amp;quot;start&amp;quot; &amp;gt;
&amp;nbsp; &amp;lt;Start /&amp;gt;
&amp;lt;/Override&amp;gt;
&amp;lt;Override xpath=&amp;quot;/CommunityServer/MarkUp/html/&amp;quot; mode=&amp;quot;add&amp;quot; where=&amp;quot;end&amp;quot; &amp;gt;
&amp;nbsp; &amp;lt;End /&amp;gt;
&amp;lt;/Override&amp;gt;
&amp;lt;Override xpath=&amp;quot;/CommunityServer/MarkUp/html/&amp;quot; mode=&amp;quot;add&amp;quot; where=&amp;quot;&amp;quot; &amp;gt;
&amp;nbsp; &amp;lt;Unspecified /&amp;gt;
&amp;lt;/Override&amp;gt;
&lt;/pre&gt;
&lt;table cellpadding="2" cellspacing="0" border="0" style="width:100%;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="50%" valign="top"&gt;&lt;strong&gt;Before&lt;/strong&gt;&lt;/td&gt;
&lt;td width="50%" valign="top"&gt;&lt;strong&gt;After&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="50%" valign="top"&gt;
&lt;p&gt;&amp;lt;MarkUp&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;Html&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/Html&amp;gt; &lt;br /&gt;&amp;lt;/MarkUp&amp;gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="50%" valign="top"&gt;
&lt;p&gt;&amp;lt;MarkUp&amp;gt; &lt;br /&gt;&lt;strong&gt;&lt;span style="color:#008000;"&gt;&amp;nbsp; &amp;lt;Before /&amp;gt;&lt;/span&gt; &lt;br /&gt;&lt;/strong&gt;&amp;nbsp; &amp;lt;Html&amp;gt; &lt;br /&gt;&lt;span style="color:#008000;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Unspecified /&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Start /&amp;gt;&lt;/strong&gt;&lt;/span&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&lt;span style="color:#008000;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;End /&amp;gt;&lt;/strong&gt;&lt;/span&gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/Html&amp;gt; &lt;br /&gt;&lt;span style="color:#008000;"&gt;&amp;nbsp; &amp;lt;After /&amp;gt;&lt;/span&gt; &lt;br /&gt;&amp;lt;/MarkUp&amp;gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="change"&gt;Change&lt;/h4&gt;
&lt;p&gt;The change mode allows you to change the value of a specific attribute on an xml node.&amp;nbsp; When using the change mode, you must specify two additional attributes on the override&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;name &lt;/strong&gt;&amp;ndash; the name of the attribute you want to change&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;value&lt;/strong&gt; &amp;ndash; the new value you want the attribute to have&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, the following override can be used to disallow the colour attribute on the being used with the font html element in user generated content.&lt;/p&gt;
&lt;pre&gt;&amp;lt;Override xpath=&amp;quot;/CommunityServer/MarkUp/html/font&amp;quot; mode=&amp;quot;change&amp;quot; name=&amp;quot;color&amp;quot; value=&amp;quot;false&amp;quot; /&amp;gt;&lt;/pre&gt;
&lt;table cellpadding="2" cellspacing="0" border="0" style="width:100%;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="50%" valign="top"&gt;&lt;strong&gt;Before&lt;/strong&gt;&lt;/td&gt;
&lt;td width="50%" valign="top"&gt;&lt;strong&gt;After&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="50%" valign="top"&gt;
&lt;p&gt;&amp;lt;MarkUp&amp;gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;lt;html&amp;gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;font color=&lt;span style="color:#ff0000;"&gt;&amp;quot;&lt;strong&gt;true&lt;/strong&gt;&amp;quot;&lt;/span&gt; face=&amp;quot;true&amp;quot; size=&amp;quot;true&amp;rdquo; /&amp;gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/html&amp;gt; &lt;br /&gt;&amp;lt;/MarkUp&amp;gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="50%" valign="top"&gt;
&lt;p&gt;&amp;lt;MarkUp&amp;gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &amp;lt;html&amp;gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;font color=&lt;span style="color:#008000;"&gt;&amp;quot;&lt;strong&gt;false&lt;/strong&gt;&amp;quot;&lt;/span&gt; face=&amp;quot;true&amp;quot; size=&amp;quot;true&amp;rdquo; /&amp;gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/html&amp;gt; &lt;br /&gt;&amp;lt;/MarkUp&amp;gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="new"&gt;New&lt;/h4&gt;
&lt;p&gt;The new mode allows you to add a new attribute to an xml node.&amp;nbsp; Like the change mode, you must specify two additional attributes on your override&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;name &lt;/strong&gt;&amp;ndash; the name of the attribute you want to add&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;value&lt;/strong&gt; &amp;ndash; the value you want the attribute to have&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, you may want to allow the type attribute to be specified on ordered lists.&amp;nbsp; To do this you could use the following override&lt;/p&gt;
&lt;pre&gt;&amp;lt;Override xpath=&amp;quot;/CommunityServer/MarkUp/html/ol&amp;quot; mode=&amp;quot;new&amp;quot; name=&amp;quot;type&amp;quot; value=&amp;quot;true&amp;quot; /&amp;gt;&lt;/pre&gt;
&lt;table cellpadding="2" cellspacing="0" border="0" style="width:100%;"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="50%" valign="top"&gt;&lt;strong&gt;Before&lt;/strong&gt;&lt;/td&gt;
&lt;td width="50%" valign="top"&gt;&lt;strong&gt;After&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="50%" valign="top"&gt;
&lt;p&gt;&amp;lt;MarkUp&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;html&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ol /&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/html&amp;gt; &lt;br /&gt;&amp;lt;/MarkUp&amp;gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td width="50%" valign="top"&gt;
&lt;p&gt;&amp;lt;MarkUp&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;html&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ol &lt;span style="color:#008000;"&gt;&lt;strong&gt;type=&amp;quot;true&amp;quot;&lt;/strong&gt;&lt;/span&gt; /&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Snip --&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/html&amp;gt; &lt;br /&gt;&amp;lt;/MarkUp&amp;gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;That&amp;rsquo;s override files in a nutshell.&amp;nbsp; For further details and some more examples you can have a look at Chapter 4 of the &lt;a href="http://www.amazon.co.uk/Professional-Community-Server-Themes-Programmer/dp/0470182083/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1230574357&amp;amp;sr=8-1"&gt;Professional Community Server Themes book&lt;/a&gt;.&amp;nbsp; If you have any further questions, either post them to the &lt;a href="http://dev.communityserver.com/forums/"&gt;Community Server Forums&lt;/a&gt;, or in the comments section below.&lt;/p&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=99" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry><entry><title>Community Server Question and Answer Functionality</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2008/12/23/question-and-answer.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2008/12/23/question-and-answer.aspx</id><published>2008-12-23T20:05:00Z</published><updated>2008-12-23T20:05:00Z</updated><content type="html">&lt;p&gt;The Question and Answer functionality in &lt;a href="http://communityserver.com/"&gt;Community Server&lt;/a&gt; (introduced in Community Server 2008.5)&amp;nbsp; is very useful in support scenarios where users come to your community posting questions because it provides a means of tracking whether questions have been answered or not.&lt;/p&gt;
&lt;p&gt;Below is a screenshot of a sample Question and Answer thread.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/clip_image002_2.jpg"&gt;&lt;img height="244" width="206" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/clip_image002_thumb.jpg" alt="clip_image002" border="0" title="clip_image002" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3 id="understanding_qampa" &gt;Understanding Q&amp;amp;A&lt;/h3&gt;
&lt;p&gt;A Question and Answer thread contains four types of posts &amp;ndash; the original question, normal responses, suggested answers and verified answers.&lt;/p&gt;
&lt;h4 id="the_original_question" &gt;The original Question&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/clip_image004_2.jpg"&gt;&lt;img height="61" width="244" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/clip_image004_thumb.jpg" alt="clip_image004" border="0" title="clip_image004" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The original question appears at the top of every page in the thread. This helps users who visit a page within a thread from an external link (e.g. a search engine) to know what the original problem in the thread was. It also reminds viewers of the original question as threads get over a page in length. &lt;/p&gt;
&lt;h4 id="normal_responses" &gt;Normal Responses&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/clip_image006_2.jpg"&gt;&lt;img height="41" width="244" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/clip_image006_thumb.jpg" alt="clip_image006" border="0" title="clip_image006" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Some responses to the question will have no special status. These may be posts trying to diagnose what a problem is before providing a solution, or posts which had been suggested as answers but did not solve the poster&amp;rsquo;s problem.&lt;/p&gt;
&lt;h4 id="suggested_answer" &gt;Suggested Answer&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/clip_image008_2.jpg"&gt;&lt;img height="49" width="244" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/clip_image008_thumb.jpg" alt="clip_image008" border="0" title="clip_image008" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A suggested answer is a response which a member thinks will solve the original poster&amp;rsquo;s problem. These answers can then be verified or rejected. Suggested Answers are highlighted in yellow so they stand out.&lt;/p&gt;
&lt;h4 id="verified_answer" &gt;Verified Answer&lt;/h4&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/clip_image010_2.jpg"&gt;&lt;img height="73" width="244" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/clip_image010_thumb.jpg" alt="clip_image010" border="0" title="clip_image010" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/clip_image012_2.jpg"&gt;&lt;img height="52" width="244" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/clip_image012_thumb.jpg" alt="clip_image012" border="0" title="clip_image012" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Verified Answers appear in two separate locations within a Thread.&amp;nbsp; As well as appearing where you&amp;rsquo;d expect them, Verified Answers appear on each and every page (just under the Original Question). This helps users who follow an external link to your community (e.g. from a search engine) quickly see what the solution to the problem is without having to trawl through lots of posts to work out the solution.&amp;nbsp; Verified answers are highlighted in Green to make them stand out from the other responses in a thread. &lt;/p&gt;
&lt;p&gt;Verified Answers can be rejected as answers if the answer was verified by accident, or the solution only worked temporarily. This can be done by the poster of the original question, or by users with the Mark as Answer permission.&lt;/p&gt;
&lt;p&gt;A thread can have more than one verified answers. This is useful in scenarios where two very different solutions have been posted to a problem which both work. Both authors will receive points as a reward for their suggestion, and any other person who comes across the thread can see both solutions and decide on which is most appropriate for their needs.&lt;/p&gt;
&lt;h3 id="using_qampa" &gt;Using Q&amp;amp;A&lt;/h3&gt;
&lt;h4 id="starting_a_qampa_thread" &gt;Starting a Q&amp;amp;A thread&lt;/h4&gt;
&lt;p&gt;A question and answer thread is started in exactly the same way as a normal thread.&amp;nbsp; Just go to the forum you want to post in and press the &amp;ldquo;Create New Post&amp;rdquo; button.&amp;nbsp; You will only see a difference in the experience between creating a new discussion and a new question if the the forum you&amp;rsquo;re posting to allows both Discussion and Question threads.&amp;nbsp; In this case you&amp;rsquo;ll be asked to specify if your post is a Discussion or a Question.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/image_10.png"&gt;&lt;img height="18" width="244" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/image_thumb_3.png" alt="image" border="0" title="image" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If only Question threads are enabled, a user&amp;rsquo;s question will be automatically marked as a question when they post.&lt;/p&gt;
&lt;h4 id="suggesting_an_answer" &gt;Suggesting an Answer&lt;/h4&gt;
&lt;p&gt;There are two ways an answer can be suggested.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Respond to a question by pressing the &lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/image_16.png"&gt;&lt;img height="32" width="152" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/image_thumb_6.png" alt="image" border="0" title="image" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;margin:0px;border-right-width:0px;" /&gt;&lt;/a&gt;&amp;nbsp; next to the question at the top of the page. &lt;/li&gt;
&lt;li&gt;Clicking the &lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/image_18.png"&gt;&lt;img height="19" width="127" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/image_thumb_7.png" alt="image" border="0" title="image" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;margin:0px;border-right-width:0px;" /&gt;&lt;/a&gt; button on an existing response to a question (This can be done by anyone apart from the user who posted the question). &lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="verifying_an_answer" &gt;Verifying an Answer&lt;/h4&gt;
&lt;p&gt;To verify a suggested answer, click the &lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/image_14.png"&gt;&lt;img height="19" width="98" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/image_thumb_5.png" alt="Verify Answer" border="0" title="Verify Answer" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;margin:0px;border-right-width:0px;" /&gt;&lt;/a&gt; button.&amp;nbsp; This can be done by both the original poster, and users with the &amp;ldquo;Mark as Answer&amp;rdquo; permission.&amp;nbsp; Normally this is used to verify a suggested answer, but it can also be used if a response is posted which solves the problem but was not marked as a suggested answer.&lt;/p&gt;
&lt;p&gt;When an answer is verified, the author of the response will receive points as a reward for helping the original poster.&lt;/p&gt;
&lt;h4 id="rejecting_an_answer" &gt;Rejecting an Answer&lt;/h4&gt;
&lt;p&gt;To reject a verified or suggested answer, press the &lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/image_12.png"&gt;&lt;img height="19" width="130" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/image_thumb_4.png" alt="Mark as Not Answer" border="0" title="Mark as Not Answer" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;margin:0px;border-right-width:0px;" /&gt;&lt;/a&gt; button&amp;nbsp; to reject the response and demote it to a normal response. Any user who has the &amp;ldquo;Mark as Answer&amp;rdquo;&amp;nbsp; permission, and the original poster will also be able to Reject a suggested answer.&lt;/p&gt;
&lt;p&gt;When an answer is rejected, the author of the response will lose any points they received for suggesting a validated answer..&lt;/p&gt;
&lt;h3 id="monitoring_questions" &gt;Monitoring Questions&lt;/h3&gt;
&lt;p&gt;When viewing threads in a forum, you can see at a glance which posts have been answered, and which have not.&amp;nbsp; Posts which have been answered have a green tick (&lt;img src="http://localhost/cs/Themes/hawaii/images/status_Answered.gif" alt="Verified Answer" border="0" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px;border-right-width:0px;" /&gt;) next to the thread name, posts with suggested answers have a yellow tick (&lt;img src="http://localhost/cs/Themes/hawaii/images/status_SuggestedAnswer.gif" alt="Suggested Answer" border="0" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px;border-right-width:0px;" /&gt;) whilst questions which haven&amp;rsquo;t been answered have a red question mark (&lt;img src="http://localhost/cs/Themes/hawaii/images/status_NotAnswered.gif" alt="Unanswered" border="0" style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;margin:0px;border-right-width:0px;" /&gt;).&amp;nbsp; Discussion threads have no icon next to them.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/image_8.png"&gt;&lt;img height="109" width="244" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/image_thumb_2.png" alt="image" border="0" title="image" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://dev.communityserver.com/forums/TopicsNotAnswered.aspx"&gt;Unanswered posts&lt;/a&gt; list has also been updated to include questions without answers, or with suggested answers, in addition to non question and answer posts which have not received any replies.&lt;/p&gt;
&lt;h4 id="reporting_with_harvest" &gt;Reporting with Harvest&lt;/h4&gt;
&lt;p&gt;Whilst this goes slightly beyond the scope of this article, I thought it was worth pointing out that &lt;a href="http://communityserver.com/products/harvest/"&gt;Harvest Reporting Server&lt;/a&gt; provides a number of reports around Question and Answers. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://reports.communityserver.org/DEMO/Report.aspx/2/ActivityForumsAnswersReport"&gt;&lt;img height="190" width="244" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/image_6.png" alt="image" border="0" title="image" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt;&lt;a href="http://reports.communityserver.org/DEMO/Report.aspx/2/ForumAnswersReport"&gt;&lt;img height="190" width="244" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/image_3.png" alt="image" border="0" title="image" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;(If you click on either of the screenshots above you&amp;rsquo;ll be taken to the relevant pages in the Harvest demo to have a look at the Questions and Answer reports Harvest provides..)&lt;/p&gt;
&lt;h3 id="managing_qampa" &gt;Managing Q&amp;amp;A&lt;/h3&gt;
&lt;p&gt;The question and answer functionality is not appropriate for all scenarios so it&amp;rsquo;s possible to turn this functionality on or off both forum wide and on a per forum basis.&lt;/p&gt;
&lt;h4 id="globally_enable__disable_qampa" &gt;Globally Enable / Disable Q&amp;amp;A&lt;/h4&gt;
&lt;p&gt;To globally enable or disable the question and answer functionality , go to Control Panel, open Forum Administration and click on Global Forum Settings (either link from the Forum Administration homepage, or under the Configuration section). Under the General tab find the &amp;ldquo;Enable Thread Status Tracking&amp;rdquo; and change this to Yes or No as required.&lt;/p&gt;
&lt;h4 id="enabling__disabling_qampa_per_forum" &gt;Enabling / Disabling Q&amp;amp;A per forum&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;(N.B. the following options may not appear if Thread Status Tracking is globally disabled. To check if this is enabled, follow the instructions in the &amp;ldquo;Globally Enabled / Disable Q&amp;amp;A&amp;rdquo; section above.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;To enable question and answer on a per forum basis, open up Forum Administration section of Control Panel then go to the Forums page under Forums and Groups. Find the Forum you want to change and press Edit. You can now chose whether question and answer is enabled under the &amp;ldquo;Allowed Thread Types&amp;rdquo; option.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/clip_image014_2.jpg"&gt;&lt;img height="57" width="487" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CommunityServerQuestionandAnswerFunction_10A3B/clip_image014_thumb.jpg" alt="clip_image014" border="0" title="clip_image014" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you want to force all threads to be Questions, you can untick the &amp;ldquo;Discussion&amp;rdquo; option.&lt;/p&gt;
&lt;p&gt;And that was a whistle wind tour of the Community Server Question and Answer functionality.&amp;nbsp; If you have any questions about some of the features you can add a comment below, or create a post at &lt;a href="http://dev.communityserver.com/forums/"&gt;http://dev.communityserver.com/forums/&lt;/a&gt; .&lt;/p&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=102" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry><entry><title>Community Server Articles</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2008/12/22/articles.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2008/12/22/articles.aspx</id><published>2008-12-22T20:45:00Z</published><updated>2008-12-22T20:45:00Z</updated><content type="html">&lt;p&gt;Articles are a little known feature of Community Server which adds some very simple content management facilities to your site. When I say basic, I do mean basic. These articles don&amp;rsquo;t appear in search, nor are they automatically linked to by any part of Community Server (apart from in the Control Panel). To link to articles you need to add the links yourself &amp;ndash; this could be from blog, forum posts etc. Or by &lt;a href="http://docswiki.communityserver.com/wikis/cs20085docs/customizing-the-navigation-bar.aspx"&gt;adding a link to the navigation&lt;/a&gt;. However they do make adding and updating additional content pages on your website, in keeping with the look and feel of your community, very easy. Examples of pages that you might add to your community using Articles are About Us, Terms of Service, Community Rules.&lt;/p&gt;

&lt;h3 id="creating_articles" &gt;Creating Articles&lt;/h3&gt;
&lt;p&gt;To create an article you must be a System Administrator. Open up Control Panel. In the &lt;i&gt;System Administration&lt;/i&gt; box, select &lt;i&gt;Site Administration&lt;/i&gt;. Under the &lt;i&gt;Site Content&lt;/i&gt; tab, select &lt;i&gt;Manage / Create Articles&lt;/i&gt;. To create a new article, press the Create new article button.&lt;/p&gt;
&lt;p&gt;When the Create Article page opens you have three fields to fill in.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Name&lt;/b&gt; &amp;ndash; This is the name you&amp;rsquo;ll see when viewing articles in the Control Panel, and will also be used as the url for the article. The article url will be /content/ARTICLENAME.aspx. Because of this any spaces in the article name will be removed.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Headline&lt;/b&gt; &amp;ndash; The Headline is the title users appear&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Body &lt;/b&gt;&amp;ndash; the main body of your article goes in the HTML Editor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/Articles_1179F/image_4.png"&gt;&lt;img height="178" width="244" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/Articles_1179F/image_thumb_1.png" alt="image" border="0" title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When you&amp;rsquo;re ready, press &amp;ldquo;save changes&amp;rdquo; to save your article press save to create your article and you&amp;rsquo;ll be taken to the page containing your article.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/Articles_1179F/image_6.png"&gt;&lt;img height="161" width="244" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/Articles_1179F/image_thumb_2.png" alt="image" border="0" title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But hang on, this article doesn&amp;rsquo;t look how I want it to look. Why doesn&amp;rsquo;t it look like the rest of the site and have the content in a white box with a border at the top. You can fix that by adding the appropriate HTML to your article to render the common content box &amp;ndash; see my article on &lt;a href="http://alexcrome.co.uk/blogs/community_server/customising-content-boxes.aspx"&gt;common content boxes&lt;/a&gt; for more details on that. CS not rendering the common content box out of the box is actually quite useful as it means you can chose on the style of the common content box uses, add multiple common content boxes to one article or break free and go with your own style.&lt;/p&gt;
&lt;h3 id="editing_articles" &gt;Editing Articles&lt;/h3&gt;
&lt;p&gt;There are two ways you can edit an article, but both require you to be a system administrator.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the article in your browser, and then press the Edit button in the breadcrumb area (just under the Navigation). &lt;br /&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/Articles_1179F/image_8.png"&gt;&lt;img height="51" width="456" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/Articles_1179F/image_thumb_3.png" alt="image" border="0" title="image" style="border-right:0px;border-top:0px;display:inline;border-left:0px;border-bottom:0px;" /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Open up Control Panel. In the &lt;i&gt;System Administration&lt;/i&gt; box, select &lt;i&gt;Site Administration&lt;/i&gt;. Under the &lt;i&gt;Site Content&lt;/i&gt; tab, select &lt;i&gt;Manage / Create Articles&lt;/i&gt;. Find the article in the list you want to edit&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Once you&amp;rsquo;ve opened up the edit page for an article, you can edit the article in exactly the same way you did when creating a new article.&lt;/p&gt;
&lt;h3 id="deleting_articles" &gt;Deleting Articles&lt;/h3&gt;
&lt;p&gt;To delete an article, follow the steps above to edit an article, but instead of editing the article and saving it, press the &amp;lsquo;clear&amp;rsquo; button.&lt;/p&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=103" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry><entry><title>Customising Content Boxes</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2008/12/22/customising-content-boxes.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2008/12/22/customising-content-boxes.aspx</id><published>2008-12-22T00:01:00Z</published><updated>2008-12-22T00:01:00Z</updated><content type="html">&lt;p&gt;Common content boxes are used throughout the Hawaii theme. They are most visible in the Sidebars of Hawaii pages but they are also used in defining the main content of the page.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;There are four areas available in a Common Content Box, which may not all be present for a particular content box&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Title / Header&lt;/li&gt;
&lt;li&gt;Header Form&lt;/li&gt;
&lt;li&gt;Content&lt;/li&gt;
&lt;li&gt;Footer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What each region refers to in a Common Content Box should be obvious from the above image of a common content box.&lt;/p&gt;
&lt;p&gt;In HTML, a common content box is defined as follows&lt;/p&gt;
&lt;pre&gt;
&amp;lt;div class=&amp;quot;CommonContentBox&amp;quot;&amp;gt;
&amp;lt;h4 class=&amp;quot;CommonContentBoxHeader&amp;quot;&amp;gt;
TITLE
&amp;lt;/h4&amp;gt;
&amp;lt;div class=&amp;quot;CommonContentBoxHeaderForm&amp;quot;&amp;gt;
Header
&amp;lt;/div&amp;gt;
&amp;lt;div class=&amp;quot;CommonContentBoxContent&amp;quot;&amp;gt;
Content
&amp;lt;/div&amp;gt;
&amp;lt;div class=&amp;quot;CommonContentBoxFooter&amp;quot;&amp;gt;
Footer
&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/pre&gt;
&lt;p&gt;N.B. the CommonContentBoxHeader doesn&amp;rsquo;t have to use an &amp;lt;h4 /&amp;gt; element, it can use h1, h2, ... h6, or a div (and possibly others).&lt;/p&gt;
&lt;h3&gt;The Look of a Common Content Box&lt;/h3&gt;
&lt;p&gt;There are three additional styles of Content Box you can use which you can get by including a secondary CSS Class with your Common Content Box.&lt;/p&gt;
&lt;p&gt;N.B. the look on your site may vary from those shown below as the colours of these content boxes can be configured in the Hawaii Theme Configuration.&lt;/p&gt;
&lt;h4&gt;Announcement&lt;/h4&gt;
&lt;pre&gt;
&amp;lt;div class=&amp;quot;CommonContentBox &lt;strong&gt;Highlighted&lt;/strong&gt;&amp;quot;&amp;gt; &lt;/pre&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CustomisingtheContentBox_10/clip_image004%5B6%5D.jpg"&gt;&lt;img title="clip_image004[6]" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="149" alt="clip_image004[6]" width="244" border="0" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CustomisingtheContentBox_10/clip_image004%5B6%5D_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Highlighted&lt;/h4&gt;
&lt;pre&gt;
&amp;lt;div class=&amp;quot;CommonContentBox &lt;b&gt;Highlighted2&lt;/b&gt;&amp;quot;&amp;gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CustomisingtheContentBox_10/clip_image006%5B6%5D.jpg"&gt;&lt;img title="clip_image006[6]" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="147" alt="clip_image006[6]" width="244" border="0" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CustomisingtheContentBox_10/clip_image006%5B6%5D_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Activity&lt;/h4&gt;
&lt;pre&gt;
&amp;lt;div class=&amp;quot;CommonContentBox &lt;b&gt;TitleHighlighted&lt;/b&gt;&amp;quot;&amp;gt; &lt;/pre&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CustomisingtheContentBox_10/clip_image008%5B6%5D.jpg"&gt;&lt;img title="clip_image008[6]" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="149" alt="clip_image008[6]" width="244" border="0" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CustomisingtheContentBox_10/clip_image008%5B6%5D_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Lists&lt;/h3&gt;
&lt;p&gt;To use a list within a Common Content box, you should add the following HTML to the Content of your Common Content Box&lt;/p&gt;
&lt;pre&gt;
&amp;lt;ul class=&amp;quot;CommonContentBoxList&amp;quot;&amp;gt; 
&amp;lt;li&amp;gt;First Item&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;Second Item&amp;lt;/li&amp;gt;
...
&amp;lt;li&amp;gt;Nth Item&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;&lt;/pre&gt;
&lt;p&gt;That will give you a list in keeping with common content box lists used elsewhere in the Hawaii theme.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CustomisingtheContentBox_10/clip_image010%5B6%5D.jpg"&gt;&lt;img title="clip_image010[6]" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="133" alt="clip_image010[6]" width="244" border="0" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/CustomisingtheContentBox_10/clip_image010%5B6%5D_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=106" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry><entry><title>New Site Theme</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2008/12/21/new-site-theme.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2008/12/21/new-site-theme.aspx</id><published>2008-12-21T22:50:02Z</published><updated>2008-12-21T22:50:02Z</updated><content type="html">&lt;p&gt;I’ve decided I’m a little bored of the previous theme my site was using and so I’ve updated to a new theme.&amp;#160; I’m using a slight modification of the PointSpace – Blue theme converted to Graffiti by Rich Mercer (available at &lt;a title="http://richmercer.com/graffiti-themes" href="http://richmercer.com/graffiti-themes/"&gt;http://richmercer.com/graffiti-themes/&lt;/a&gt; ).&amp;#160; I shall be making some more modifications to the theme over the next few days and will post my updated version of the theme when I’m complete.&lt;/p&gt; &lt;p&gt;Anyway, I’m hoping the new theme brings new life to my blog.&lt;/p&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=186" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry><entry><title>Resizing the Content Editor</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2008/12/19/resizing-the-content-editor.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2008/12/19/resizing-the-content-editor.aspx</id><published>2008-12-19T23:31:00Z</published><updated>2008-12-19T23:31:00Z</updated><content type="html">&lt;p&gt;It&amp;#39;s been a little quiet here recently so let&amp;#39;s put that right.&lt;/p&gt;
&lt;p&gt;Did you know that you could resize the content editor used when posting to Community Server?&amp;nbsp; To do so, just click the arrow like icon in the bottom right of the editor and drag it up or down to adjust the height of the editor&lt;/p&gt;
&lt;p&gt;This is very useful when you&amp;#39;re writing a long response and get bored of having to continually scroll up and down if you want to look back at something you wrote earlier in the post.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.alexcrome.co.uk/files/media/image/Resize%20Content%20Editor.jpg" border="0" style="max-width:550px;" alt="" /&gt;&lt;/p&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=167" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry><entry><title>AlexCrome.CS 2008</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2008/10/10/alexcrome-cs-2008.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2008/10/10/alexcrome-cs-2008.aspx</id><published>2008-10-10T22:47:00Z</published><updated>2008-10-10T22:47:00Z</updated><content type="html">&lt;p&gt;Today I&amp;#39;m finally releasing the CS2008.5 version of my addon package.&amp;nbsp; Not all the addons from my previous package have survived but that&amp;#39;s no loss as they&amp;#39;re now baked into the core of CS2008.5.&lt;/p&gt;
&lt;p&gt;Included in this release are the folowing&amp;nbsp;addons: (If the name&amp;#39;s not a hyperlink, I haven&amp;#39;t documented it yet)&lt;/p&gt;
&lt;h3&gt;Addons&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://alexcrome.co.uk/alexcrome-cs-2008/documentation/using-the-manage-addons-page/"&gt;Configure Addons Control Panel Page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://alexcrome.co.uk/alexcrome-cs-2008/documentation/sort-threads-by-group-forum-sort-order-query-implementation/"&gt;Improved Filtering method for displaying Active Topics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://alexcrome.co.uk/alexcrome-cs-2008/documentation/referalpointsaddon/"&gt;Referal Points Addon&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://alexcrome.co.uk/alexcrome-cs-2008/documentation/mapped-path-file-system-file-storage-provider/"&gt;Mapped Path File System File Storage Provider&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;CSModules&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Mark Threads Read On User Create&lt;/li&gt;
&lt;li&gt;Notify Administrator On User Create&lt;/li&gt;
&lt;li&gt;&lt;a href="http://alexcrome.co.uk/alexcrome-cs-2008/documentation/refresh-cache-on-post-comment-csmodule/"&gt;Refresh Post Cache On Comment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Search Engine Ping&lt;/li&gt;
&lt;li&gt;Set Anonymous Roles&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Controls&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://alexcrome.co.uk/alexcrome-cs-2008/documentation/quick-reply-form/"&gt;Quick Reply Form&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://alexcrome.co.uk/alexcrome-cs-2008/documentation/copy-wiki-page-to-blog-control/"&gt;CopyWikiPageToBlog Control &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To download the package, please see the &lt;a href="http://alexcrome.co.uk/alexcrome-cs-2008/documentation/installing-alexcrome-cs-2008/"&gt;Installation Instructions&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=170" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry><entry><title>AlexCrome.CS 2008 Is Here!</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2008/10/10/alexcrome-cs-2008-is-here.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2008/10/10/alexcrome-cs-2008-is-here.aspx</id><published>2008-10-10T21:58:00Z</published><updated>2008-10-10T21:58:00Z</updated><content type="html">&lt;p&gt;Finaly after working on it for months I feel ready to release this package.&amp;nbsp; I am still working on documenting this release so do be patient with me whilst I do that. Included in this release are (If it&amp;#39;s not a hyperlink, I haven&amp;#39;t documented it yet).&amp;nbsp; To download the package, please see the &lt;a href="http://test.alexcrome.co.uk/alexcrome-cs-2008/documentation/installing-alexcrome-cs-2008/"&gt;Installation Instructions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I shall be blogging more about particular aspects of this package over the coming weeks.&amp;nbsp; In particular I plan to blog about Configurable Addons, and how they can be used to prevent having to modify the CS Control Panel whilst providing a nice way of configuring your addons.&lt;/p&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=107" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry><entry><title>AlexCrome.CS 2008 Is Coming...</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2008/10/05/alexcrome-cs-2008-is-coming.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2008/10/05/alexcrome-cs-2008-is-coming.aspx</id><published>2008-10-05T18:35:00Z</published><updated>2008-10-05T18:35:00Z</updated><content type="html">&lt;p&gt;The title says it all.&amp;nbsp; I&amp;rsquo;m very nearly finished, just got to put the finishing touches on the package which I should be able to do sometime this week (or at least I hope so).&lt;/p&gt;
&lt;p&gt;You can expect a number of old addons to be included&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quick Reply control&lt;/li&gt;
&lt;li&gt;MarkAllPostsRead control&lt;/li&gt;
&lt;li&gt;NotifyAdministratorOnUserCreate CSModule&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;(I have removed the RegistrationPM and UserHasUnreadPrivateMessagecondition as these are now included out of the box in CS.)&lt;/p&gt;
&lt;p&gt;You can also expect some additional addons to be included&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RefreshBlogPostCacheOnComment CSModule (updates cache immediately when a comment (blog or media gallery) is posted).&lt;/li&gt;
&lt;li&gt;SearchEnginePing CSModule (Pings more than just Google)&lt;/li&gt;
&lt;li&gt;SetAnonymousUserRoles CSModule (fixes anonymous roles problem allowing you to display navigation&lt;/li&gt;
&lt;li&gt;MappedPathFileSystemFileStorageProvider (change the filestorage basepath based on the machine name of the server)&lt;/li&gt;
&lt;li&gt;Referal Points addon (reward users with points for inviting new users to your community)&lt;/li&gt;
&lt;li&gt;CopyWikiPageToBlog control (copy a page from a wiki to a blog, leaving the blog post accredited to the author of the wiki page).&lt;/li&gt;
&lt;li&gt;A control (and sample page) to allow for improved display of Active topics &amp;ndash; live example available at &lt;a href="http://nintendowiikly.com/forums/TopicsActive/?ForumID=-1&amp;amp;Sort=SortOrder&amp;amp;PageIndex=1" title="http://nintendowiikly.com/forums/TopicsActive/?ForumID=-1&amp;amp;Sort=SortOrder&amp;amp;PageIndex=1"&gt;http://nintendowiikly.com/forums/TopicsActive/?ForumID=-1&amp;amp;Sort=SortOrder&amp;amp;PageIndex=1&lt;/a&gt; .&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;m also including a control panel page to configure addons through the Control Panel.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/AlexCrome.CS2008IsComing_11111/image_2.png"&gt;&lt;img height="484" width="472" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/AlexCrome.CS2008IsComing_11111/image_thumb.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Click the Configure button next to an addon and a popup window opens allowing you to configure the addon.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/AlexCrome.CS2008IsComing_11111/image_4.png"&gt;&lt;img height="484" width="521" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/AlexCrome.CS2008IsComing_11111/image_thumb_1.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;This page is not required, and I&amp;rsquo;ll talk more about how this works once I&amp;rsquo;ve released the package.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m still undecided on whether I should include my Warnings Addon or not.&amp;nbsp; I&amp;rsquo;m not sure it&amp;rsquo;s of high enough quality to release yet, but that depends on how I feel when I come to finishing off the package and packaging it up.&lt;/p&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=108" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry><entry><title>Login as a member of your community</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2008/09/29/login-as-a-member-of-your-community.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2008/09/29/login-as-a-member-of-your-community.aspx</id><published>2008-09-29T18:08:00Z</published><updated>2008-09-29T18:08:00Z</updated><content type="html">&lt;p&gt;Don&amp;rsquo;t you just love it when you get a conversation or email from a member of your community saying &amp;ldquo;I can&amp;rsquo;t access the website&amp;rdquo;.&amp;nbsp; You ask them a few questions, and you&amp;rsquo;re convinced it&amp;rsquo;s a problem just affecting their user account, so somehow need to login as them.&amp;nbsp; In Community Server 2008 or below, you&amp;rsquo;d have had to either changed the User&amp;rsquo;s password for them, and then give them a new password, or ask them to give you their password, neither of which is a particularly desirable outcome.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/Loginasamemberofyourcommunity_F5A1/image_4.png"&gt;&lt;img height="244" width="235" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/Loginasamemberofyourcommunity_F5A1/image_thumb_1.png" align="right" alt="image" border="0" title="image" style="display:inline;margin-left:0px;margin-right:0px;border:0px;" /&gt;&lt;/a&gt;CS2008.5 however allows an administrator (System Administrator or Membership Administrator ) to impersonate a user, and act as if they are that user.&amp;nbsp; To impersonate another user, go to Control Panel &amp;gt; System Administration &amp;gt; Membership Administration.&amp;nbsp; Search for the user you wish to impersonate, and press edit.&amp;nbsp; On the admin tab of the edit user page, click impersonate user.&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;ll then be redirected to your website&amp;rsquo;s homepage, and you&amp;rsquo;ll notice the username in the welcome area of the page has changed to that of the user you&amp;rsquo;re impersonating.&amp;nbsp; You&amp;rsquo;ll also see your own username in yellow to show that you&amp;rsquo;re impersonating another user. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/Loginasamemberofyourcommunity_F5A1/image_6.png"&gt;&lt;img height="47" width="244" src="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/Loginasamemberofyourcommunity_F5A1/image_thumb_2.png" alt="image" border="0" title="image" style="display:inline;border-width:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To return to your administrator account, click sign out and you&amp;rsquo;ll be signed out of your member&amp;rsquo;s account.&lt;/p&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=111" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry><entry><title>Classic Forum Home Page</title><link rel="alternate" type="text/html" href="http://alexcrome.co.uk/community_server/b/community_server/archive/2008/09/28/classic-forum-home-page.aspx" /><id>http://alexcrome.co.uk/community_server/b/community_server/archive/2008/09/28/classic-forum-home-page.aspx</id><published>2008-09-28T14:00:00Z</published><updated>2008-09-28T14:00:00Z</updated><content type="html">&lt;p&gt;&lt;a href="http://askcrome.co.uk/files/media/image/WindowsLiveWriter/ClassicForumHomePage_80A/image_2.png"&gt;&lt;img height="244" width="236" src="http://alexcrome.co.uk/files/media/image/WindowsLiveWriter/ClassicForumHomePage_80A/image_thumb.png" align="right" alt="image" border="0" title="image" style="display:inline;margin-left:0px;margin-right:0px;border:0;float:right;" /&gt;&lt;/a&gt; Whilst I do prefer the Hawaii forum view to the more typical forum views from past versions of CS, it does take a bit of getting used to, and I don&amp;rsquo;t dare to impost it on the users on my personal CS site &lt;span style="text-decoration:line-through;"&gt;(Nintendo Wiikly)&lt;/span&gt; for fear of a revolt &amp;ndash; one lost user for me would be a loss of about 10% of my active user base :( &amp;ndash; I decided to return to the old style of forum view.&lt;/p&gt;
&lt;p&gt;To do this, I copied the grouplist.aspx page from the old calypso theme, and updated it to work with CS2008 (and then again for CS2008.5).&amp;nbsp; You can see the page I&amp;rsquo;m using (for CS2008.5) in the &lt;a href="http://alexcrome.co.uk/forums/"&gt;forums&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are a few other niceties of this page over the default &amp;ndash; it displays the group description when viewing the forum list for a specific forum group, and the description and name are editible inline.&amp;nbsp; The page also allows you to personalise the list of forums &amp;amp; groups you see so you see more of the content which is relevant to you.&lt;/p&gt;
&lt;p&gt;You can download the files to change your forum homepage&amp;nbsp;below&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://alexcrome.co.uk/media/p/24.aspx"&gt;CS2008&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://alexcrome.co.uk/media/p/23.aspx"&gt;CS2008.5&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Instructions on installing the updated page are included in the readme.txt file.&lt;/p&gt;
&lt;p&gt;If you find any errors in the markup, or something that was left out of the package, add a comment and I&amp;rsquo;ll fix the error for others who come to use the page.&lt;/p&gt;&lt;img src="http://alexcrome.co.uk/aggbug.aspx?PostID=141" width="1" height="1"&gt;</content><author><name>Alex</name><uri>http://alexcrome.co.uk/members/Alex/</uri></author></entry></feed>
