Hey I'm Lee. My blog was put up to house my strange thoughts, ramblings, nuggets of information I can refer back to and document my learning curves on new dev stuff and fitness regimes.

All thoughts and comments on here are my own, and in no way reflect my employer - I also take no responsibility for spelling, grammar, terminology, accuracy of facts etc... So read at your own risk!

nForum v1.5 Released

Finally! I have released the latest version of nForum… v1.5… You can download and install it via the nForum page below.

http://our.umbraco.org/projects/website-utilities/nforum

Also the code is on CodePlex so you can download and customise (Or debug it!) however you need.  Also for this version I have added the Umbraco site and database backup within the solution for the Umbraco install I used to create the package, and test it.

http://nforum.codeplex.com/SourceControl/list/changesets

I'll try and outline some things below which I hope will help people when installing, and any FAQ's I have received when user testing.

NOTE: You cannot upgrade from a previous version to this version, in theory you could do it manually but you'd need to do a fresh install somewhere and then compare the two.

Installation Overview

I have put a little video together showing people nForum being installed in an existing site, and showing some things that might help when you try to install it yourself - Please do watch it.

What Has Been Done In v1.5

In short I have 'tried' to make it a little more robust, faster and able to work with larger forums (1000's of nodes).  But a full list is below, doesn't look much in writing but if you look at the source code you'll see a lot has changed.

- Majority of the core codebase rewritten
It no longer uses linq2umbraco but relies on Examine with a Nodefactory backup, but still has a model structure which will make it easy for you to grab the code and customise however you need.
- A lot of bug fixes from older version
Hopefully fixes a lot of the install, and member issues from the previous versions
- Examine data provider with Nodefactory backup
As above, fully Examine/nodefactory powered - so if for some reason you can't use Examine, you can't use this package
- Multi lingual support
All plain text from code behinds and classes are in Dictionary items, but there are still plain text in the usercontrols/templates - But you can add these to dictionary items through the Umbraco admin and without having to use the source code.
- Little UI tweaking
Given the front end a little tweaking from a CSS point of view

FAQ

I'll keep adding to this section over the next few weeks, but one question came up below

Q: In the back office, if you go into a post to look at it, it's all HTML encoded, but it's a bit confusing for the editors

A: Posts should be edited in the front end, you just need to mark the member as an admin in Umbraco - Then login as the user and you can edit, delete and move topics around.  The problem is that Examine strips HTML, so the only way to get it to display using Umbraco is to HTML encode it.  So you can't use an RTE or you'd see the same thing, only way round would be to write an event to decode it before its displayed to the user I guess?

Checking Your nForum Install

Previously I had a lot of people installing and either getting timeouts, or saying things were missing - Below is a little checklist, to make sure you have all the below and it explains what the installer does.

1.) Check you have the Examine configs in, they are shown below

Examine Index

    <IndexSet SetName="nForumEntrySet" IndexPath="/App_Data/TEMP/ExamineIndexes/nForumEntryIndexSet/">
        <IndexAttributeFields>
            <add Name="id" EnableSorting="true" Type="Number" />
            <add Name="nodeName" EnableSorting="true" />
            <add Name="updateDate" EnableSorting="true" Type="DateTime" />
            <add Name="createDate" EnableSorting="true" Type="DateTime" />
            <add Name="writerName" />
            <add Name="path" />
            <add Name="nodeTypeAlias" />
            <add Name="parentID" EnableSorting="true" Type="Number" />
            <add Name="sortOrder" EnableSorting="true" Type="Number" />          
        </IndexAttributeFields>
        <IndexUserFields>
            <add Name="forumCategoryDescription" />
            <add Name="forumCategoryIsMainCategory" />
            <add Name="forumCategoryIsPrivate" />
            <add Name="forumCategoryPermissionKarmaAmount" Type="Number" />
            <add Name="forumCategoryPostPermissionKarmaAmount" Type="Number" />
            <add Name="forumCategorySubscribedList" />
            <add Name="forumCategoryParentID" />
            
            <add Name="forumPostContent" />
            <add Name="forumPostOwnedBy" />
            <add Name="forumPostLastEdited" EnableSorting="true" Type="DateTime" />
            <add Name="forumPostInReplyTo" />
            <add Name="forumPostIsSolution" />
            <add Name="forumPostIsTopicStarter" />
            <add Name="forumPostKarma" EnableSorting="true" Type="Number" />
            <add Name="forumPostUsersVoted" />
            <add Name="forumPostParentID" />
            
            <add Name="forumTopicOwnedBy" />
            <add Name="forumTopicClosed" />
            <add Name="forumTopicSolved" />
            <add Name="forumTopicParentCategoryID" />
            <add Name="forumTopicIsSticky" />
            <add Name="forumTopicSubscribedList" />
            <add Name="forumTopicLastPostDate" EnableSorting="true" Type="DateTime" />
            
        </IndexUserFields>
        <IncludeNodeTypes>
            <add Name="ForumCategory"/>
            <add Name="ForumPost" />
            <add Name="ForumTopic" />
            <add Name="Forum" />         
        </IncludeNodeTypes>
        <ExcludeNodeTypes />
    </IndexSet>

Examine Searcher

      <add name="nForumEntrySearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine" 
             indexSet="nForumEntrySet" analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

Examine Indexer

        <add name="nForumEntryIndexer"
           type="UmbracoExamine.UmbracoContentIndexer, UmbracoExamine"
           dataService="UmbracoExamine.DataServices.UmbracoDataService, UmbracoExamine"
           indexSet="nForumEntrySet"
           supportUnpublished="false"
           supportProtected="false"
           runAsync="true"
           interval="10"
           analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"
           enableDefaultEventHandler="true"/>

2.) Check the ForumMember Group and Type has been created

membertype-group

Then check the member type properties are all present

member-type

3.) Check you have all the correct templates, scripts and CSS files

filesnforum

4.) Check all the document types have been created

nforumdoctypes

5.) Check the nforum binaries are in the bin

nForum.dll
nForum.BusinessLogic.dll
AntiXSSLibrary.dll
AntiXSSLibrary.xml
HtmlSanitizationLibrary.dll
HtmlSanitizationLibrary.xml

6.) If everything seems to be in place, then grab the source code related to this release of nForum on codeplex - put it in debug, update the build events in the project to copy over to your website.

And then debug/step through using Visual studio by attaching to process - If you are not sure how to do this, there are loads of tutorials about

http://www.google.co.uk/search?aq=0&oq=umbraco+attac&sourceid=chrome&ie=UTF-8&q=debug+attach+process+video

Installing Into An Existing Site

Please watch the video above and you'll see it installed into an existing site, but if you are installing into an existing site…

You will need to take some things from the ForumMaster template and update some links - If you open the ForumMaster.master in Visual Studio you will see comments about this like the below

        <asp:LoginView ID="lvLoginTopMenu" runat="server">
      <AnonymousTemplate>
        <%
            //#### DEVEOPERS - READ ME & THEN DELETE ME ####
            //If you are going to move the forum into your own Master page, 
            //You need to update the links below to point the the correct pages within the forum
            //##############################################
        %>
        <a href="/forum-login.aspx">Login</a> / <a href="/forum-register.aspx">Register</a>            
            </AnonymousTemplate>            
        </asp:LoginView>

I hope this covers a bit more to help people out.

Back to top