diff --git a/Notification/Notification.csproj b/Notification/Notification.csproj index 6ae6d7c0..9ba62cb0 100644 --- a/Notification/Notification.csproj +++ b/Notification/Notification.csproj @@ -233,16 +233,16 @@ - - - {547C2D0D-1B55-493B-AE0B-E031A5B8EE77} - uForum - - + + + {a8e5c936-ecab-45b3-bfda-d12f680eb2a6} + OurUmbraco + + diff --git a/Notification/NotificationTypes/NewForumTopic.cs b/Notification/NotificationTypes/NewForumTopic.cs index 1f664f82..d7cf3465 100644 --- a/Notification/NotificationTypes/NewForumTopic.cs +++ b/Notification/NotificationTypes/NewForumTopic.cs @@ -3,12 +3,12 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Mail; -using uForum.Models; using System.Data.SqlClient; using umbraco.cms.businesslogic.member; using umbraco.presentation.nodeFactory; using umbraco.cms.businesslogic.web; using System.Web; +using OurUmbraco.Forum.Models; namespace NotificationsCore.NotificationTypes { diff --git a/Notification/NotificationTypes/NewForumTopicComment.cs b/Notification/NotificationTypes/NewForumTopicComment.cs index 5eb6ee96..76b894f0 100644 --- a/Notification/NotificationTypes/NewForumTopicComment.cs +++ b/Notification/NotificationTypes/NewForumTopicComment.cs @@ -3,10 +3,10 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Mail; -using uForum.Models; using System.Data.SqlClient; using umbraco.cms.businesslogic.member; using System.Web; +using OurUmbraco.Forum.Models; using Umbraco.Core.Models; using Umbraco.Web; using Umbraco.Core; diff --git a/NotificationsWeb/EventHandlers/Forum.cs b/NotificationsWeb/EventHandlers/Forum.cs index 91a5eaf5..2a14ed44 100644 --- a/NotificationsWeb/EventHandlers/Forum.cs +++ b/NotificationsWeb/EventHandlers/Forum.cs @@ -5,9 +5,9 @@ using NotificationsCore; using umbraco.presentation.nodeFactory; using umbraco.cms.businesslogic.member; using Umbraco.Core; -using uForum.Services; -using uForum; using NotificationsWeb.Services; +using OurUmbraco.Forum; +using OurUmbraco.Forum.Services; using Umbraco.Web.Security; namespace NotificationsWeb.EventHandlers @@ -29,13 +29,13 @@ namespace NotificationsWeb.EventHandlers ForumService.Deleted += ForumService_Deleted; } - void ForumService_Deleted(object sender, uForum.ForumEventArgs e) + void ForumService_Deleted(object sender, ForumEventArgs e) { var ns = new NotificationService(ApplicationContext.Current.DatabaseContext); ns.RemoveAllForumSubscriptions(e.Forum.Id); } - void ForumService_Created(object sender, uForum.ForumEventArgs e) + void ForumService_Created(object sender, ForumEventArgs e) { var content = Umbraco.Web.UmbracoContext.Current.Application.Services.ContentService.GetById(e.Forum.ParentId); if (content.ContentType.Alias == "Project") @@ -47,7 +47,7 @@ namespace NotificationsWeb.EventHandlers } } - void TopicService_Created(object sender, uForum.TopicEventArgs e) + void TopicService_Created(object sender, TopicEventArgs e) { var ns = new NotificationService(ApplicationContext.Current.DatabaseContext); @@ -66,7 +66,7 @@ namespace NotificationsWeb.EventHandlers not.Invoke(Config.ConfigurationFile, Config.AssemblyDir, "NewTopic", e.Topic, e.Topic.GetUrl(), memberName); } - void CommentService_Created(object sender, uForum.CommentEventArgs e) + void CommentService_Created(object sender, CommentEventArgs e) { var ts = new TopicService(ApplicationContext.Current.DatabaseContext); diff --git a/NotificationsWeb/NotificationsWeb.csproj b/NotificationsWeb/NotificationsWeb.csproj index f4a1a834..431519cc 100644 --- a/NotificationsWeb/NotificationsWeb.csproj +++ b/NotificationsWeb/NotificationsWeb.csproj @@ -247,9 +247,9 @@ {80E5F59D-A7A0-4CEE-AEB6-6C626C44B2B2} Notification - - {547C2D0D-1B55-493B-AE0B-E031A5B8EE77} - uForum + + {a8e5c936-ecab-45b3-bfda-d12f680eb2a6} + OurUmbraco diff --git a/OurUmbraco.Site/OurUmbraco.Site.csproj b/OurUmbraco.Site/OurUmbraco.Site.csproj index 8afec162..972d5e6f 100644 --- a/OurUmbraco.Site/OurUmbraco.Site.csproj +++ b/OurUmbraco.Site/OurUmbraco.Site.csproj @@ -4730,10 +4730,6 @@ {a625544f-660a-4c01-ba49-1b467d0322d9} our.umbraco.org - - {547c2d0d-1b55-493b-ae0b-e031a5b8ee77} - uForum - diff --git a/OurUmbraco.Site/Views/MacroPartials/Forum/Forum.cshtml b/OurUmbraco.Site/Views/MacroPartials/Forum/Forum.cshtml index f4cd7b12..51cebcfe 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Forum/Forum.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Forum/Forum.cshtml @@ -1,8 +1,7 @@ -@using uForum -@using uForum.Extensions -@using uForum.Library -@using uForum.Models -@using uForum.Services +@using OurUmbraco.Forum.Extensions +@using OurUmbraco.Forum.Library +@using OurUmbraco.Forum.Models +@using OurUmbraco.Forum.Services @inherits Umbraco.Web.Macros.PartialViewMacroPage @{ diff --git a/OurUmbraco.Site/Views/MacroPartials/Forum/ForumActions.cshtml b/OurUmbraco.Site/Views/MacroPartials/Forum/ForumActions.cshtml index c517b6ed..3c20735a 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Forum/ForumActions.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Forum/ForumActions.cshtml @@ -1,4 +1,4 @@ -@using uForum.Extensions +@using OurUmbraco.Forum.Extensions @inherits Umbraco.Web.Macros.PartialViewMacroPage
diff --git a/OurUmbraco.Site/Views/MacroPartials/Forum/Latest.cshtml b/OurUmbraco.Site/Views/MacroPartials/Forum/Latest.cshtml index 06402aae..e808d5c7 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Forum/Latest.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Forum/Latest.cshtml @@ -1,6 +1,5 @@ +@using OurUmbraco.Forum.Services @inherits Umbraco.Web.Macros.PartialViewMacroPage -@using uForum; -@using uForum.Services @{ diff --git a/OurUmbraco.Site/Views/MacroPartials/Forum/LatestActivity.cshtml b/OurUmbraco.Site/Views/MacroPartials/Forum/LatestActivity.cshtml index 1216372e..79dde383 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Forum/LatestActivity.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Forum/LatestActivity.cshtml @@ -1,15 +1,17 @@ +@using OurUmbraco.Forum.Extensions +@using OurUmbraco.Forum.Models +@using OurUmbraco.Forum.Services @inherits Umbraco.Web.Macros.PartialViewMacroPage -@using uForum.Extensions @{ - var ts = new uForum.Services.TopicService(ApplicationContext.DatabaseContext); + var ts = new TopicService(ApplicationContext.DatabaseContext); }
@Column(ts.GetLatestTopics(6, 1))
-@helper Column(IEnumerable topics) +@helper Column(IEnumerable topics) { foreach (var topic in topics.ToArray()) { diff --git a/OurUmbraco.Site/Views/MacroPartials/Forum/Thread.cshtml b/OurUmbraco.Site/Views/MacroPartials/Forum/Thread.cshtml index dd35621e..2eaaff08 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Forum/Thread.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Forum/Thread.cshtml @@ -1,7 +1,6 @@ @inherits Umbraco.Web.Macros.PartialViewMacroPage @using System.Web.Mvc.Html -@using uForum.Extensions -@using uForum.Services +@using OurUmbraco.Forum.Services @{ var topicService = new TopicService(ApplicationContext.DatabaseContext); diff --git a/OurUmbraco.Site/Views/MacroPartials/Forum/TopicActions.cshtml b/OurUmbraco.Site/Views/MacroPartials/Forum/TopicActions.cshtml index cca366f2..508c1bea 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Forum/TopicActions.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Forum/TopicActions.cshtml @@ -1,6 +1,5 @@ -@using uForum -@using uForum.Extensions -@using uForum.Services +@using OurUmbraco.Forum.Extensions +@using OurUmbraco.Forum.Services @inherits Umbraco.Web.Macros.PartialViewMacroPage @{ var topicService = new TopicService(ApplicationContext.DatabaseContext); diff --git a/OurUmbraco.Site/Views/MacroPartials/Members/Activate.cshtml b/OurUmbraco.Site/Views/MacroPartials/Members/Activate.cshtml index 2b17ede2..48a81525 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Members/Activate.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Members/Activate.cshtml @@ -1,5 +1,4 @@ -@using uForum.Extensions -@inherits Umbraco.Web.Macros.PartialViewMacroPage +@inherits Umbraco.Web.Macros.PartialViewMacroPage @{ var memberGuid = Request.QueryString["id"]; diff --git a/OurUmbraco.Site/Views/MacroPartials/Members/HeaderProfile.cshtml b/OurUmbraco.Site/Views/MacroPartials/Members/HeaderProfile.cshtml index 8c7fa63a..20ea2bfc 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Members/HeaderProfile.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Members/HeaderProfile.cshtml @@ -1,6 +1,5 @@ -@inherits Umbraco.Web.Macros.PartialViewMacroPage -@using uForum; -@using uForum.Extensions +@using OurUmbraco.Forum.Extensions +@inherits Umbraco.Web.Macros.PartialViewMacroPage @if(Members.IsLoggedIn()){
diff --git a/OurUmbraco.Site/Views/MacroPartials/Members/JsValues.cshtml b/OurUmbraco.Site/Views/MacroPartials/Members/JsValues.cshtml index 3cdede5e..41b47ff0 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Members/JsValues.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Members/JsValues.cshtml @@ -1,6 +1,5 @@ -@inherits Umbraco.Web.Macros.PartialViewMacroPage -@using uForum; -@using uForum.Extensions +@using OurUmbraco.Forum.Extensions +@inherits Umbraco.Web.Macros.PartialViewMacroPage @if(Members.IsLoggedIn()){ diff --git a/OurUmbraco.Site/Views/MacroPartials/Members/ProfileNotifications.cshtml b/OurUmbraco.Site/Views/MacroPartials/Members/ProfileNotifications.cshtml index bf2c58da..8c9112a4 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Members/ProfileNotifications.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Members/ProfileNotifications.cshtml @@ -1,5 +1,5 @@ @using NotificationsWeb.Services -@using uForum.Services +@using OurUmbraco.Forum.Services @inherits Umbraco.Web.Macros.PartialViewMacroPage @{ diff --git a/OurUmbraco.Site/Views/MacroPartials/Members/PublicProfile.cshtml b/OurUmbraco.Site/Views/MacroPartials/Members/PublicProfile.cshtml index b3d6f730..ba7eb420 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Members/PublicProfile.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Members/PublicProfile.cshtml @@ -1,7 +1,8 @@ @inherits Umbraco.Web.Macros.PartialViewMacroPage @using Marketplace.Interfaces @using Marketplace.Providers -@using uForum.Extensions +@using OurUmbraco.Forum.Extensions +@using OurUmbraco.Forum.Services @{ var memberId = Request["id"]; int id = 0; @@ -15,7 +16,7 @@ } else { - var ts = new uForum.Services.TopicService(UmbracoContext.Application.DatabaseContext); + var ts = new TopicService(UmbracoContext.Application.DatabaseContext); var topics = ts.GetLatestTopicsForMember(member.Id); diff --git a/OurUmbraco.Site/Views/MacroPartials/Members/QuickMenu.cshtml b/OurUmbraco.Site/Views/MacroPartials/Members/QuickMenu.cshtml index cd2d26dd..d37410c3 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Members/QuickMenu.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Members/QuickMenu.cshtml @@ -1,9 +1,8 @@ @inherits Umbraco.Web.Macros.PartialViewMacroPage @using System.Drawing @using our -@using uForum -@using uForum.Extensions -@using uForum.Services +@using OurUmbraco.Forum.Extensions +@using OurUmbraco.Forum.Services @{ var topicService = new TopicService(ApplicationContext.DatabaseContext); Image avatarImage = null; diff --git a/OurUmbraco.Site/Views/MacroPartials/Projects/ProjectDetails.cshtml b/OurUmbraco.Site/Views/MacroPartials/Projects/ProjectDetails.cshtml index 6397c3f2..02eaeb10 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Projects/ProjectDetails.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Projects/ProjectDetails.cshtml @@ -1,8 +1,7 @@ @inherits Umbraco.Web.Macros.PartialViewMacroPage @using our.Controllers +@using OurUmbraco.Forum.Extensions @using OurUmbraco.Wiki.BusinessLogic -@using uForum; -@using uForum.Extensions @using uProject.Controllers @{ diff --git a/OurUmbraco.Site/Views/MacroPartials/Rss/Forum.cshtml b/OurUmbraco.Site/Views/MacroPartials/Rss/Forum.cshtml index 13bc4d97..8e52b1d5 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Rss/Forum.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Rss/Forum.cshtml @@ -1,6 +1,5 @@ -@using uForum -@using uForum.Extensions -@using uForum.Services +@using OurUmbraco.Forum.Extensions +@using OurUmbraco.Forum.Services @inherits Umbraco.Web.Macros.PartialViewMacroPage @{ Response.Clear(); diff --git a/OurUmbraco.Site/Views/MacroPartials/Rss/LatestTopics.cshtml b/OurUmbraco.Site/Views/MacroPartials/Rss/LatestTopics.cshtml index 05d7196c..e607dcdb 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Rss/LatestTopics.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Rss/LatestTopics.cshtml @@ -1,6 +1,5 @@ -@using uForum -@using uForum.Extensions -@using uForum.Services +@using OurUmbraco.Forum.Extensions +@using OurUmbraco.Forum.Services @inherits Umbraco.Web.Macros.PartialViewMacroPage @{ Response.Clear(); diff --git a/OurUmbraco.Site/Views/MacroPartials/Rss/Packages.cshtml b/OurUmbraco.Site/Views/MacroPartials/Rss/Packages.cshtml index f4fdf65e..9ebba4fd 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Rss/Packages.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Rss/Packages.cshtml @@ -1,5 +1,4 @@ -@using uForum -@using uForum.Extensions +@using OurUmbraco.Forum.Extensions @inherits Umbraco.Web.Macros.PartialViewMacroPage @{ Response.Clear(); diff --git a/OurUmbraco.Site/Views/MacroPartials/Rss/Participated.cshtml b/OurUmbraco.Site/Views/MacroPartials/Rss/Participated.cshtml index 523d7693..b9de89ec 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Rss/Participated.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Rss/Participated.cshtml @@ -1,6 +1,5 @@ -@using uForum -@using uForum.Extensions -@using uForum.Services +@using OurUmbraco.Forum.Extensions +@using OurUmbraco.Forum.Services @inherits Umbraco.Web.Macros.PartialViewMacroPage @{ Response.Clear(); diff --git a/OurUmbraco.Site/Views/MacroPartials/Rss/Topic.cshtml b/OurUmbraco.Site/Views/MacroPartials/Rss/Topic.cshtml index 283f5afc..6bb2d186 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Rss/Topic.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Rss/Topic.cshtml @@ -1,6 +1,5 @@ -@using uForum -@using uForum.Extensions -@using uForum.Services +@using OurUmbraco.Forum.Extensions +@using OurUmbraco.Forum.Services @inherits Umbraco.Web.Macros.PartialViewMacroPage @{ Response.Clear(); diff --git a/OurUmbraco.Site/Views/MacroPartials/Spam/Overview.cshtml b/OurUmbraco.Site/Views/MacroPartials/Spam/Overview.cshtml index fac9ac6a..c5094153 100644 --- a/OurUmbraco.Site/Views/MacroPartials/Spam/Overview.cshtml +++ b/OurUmbraco.Site/Views/MacroPartials/Spam/Overview.cshtml @@ -1,6 +1,6 @@ @using our -@using uForum.Extensions -@using uForum.Services +@using OurUmbraco.Forum.Extensions +@using OurUmbraco.Forum.Services @inherits Umbraco.Web.Macros.PartialViewMacroPage @if (Members.IsAdmin()) diff --git a/OurUmbraco.Site/Views/Partials/Forum/Comment.cshtml b/OurUmbraco.Site/Views/Partials/Forum/Comment.cshtml index fc14b4e6..45568117 100644 --- a/OurUmbraco.Site/Views/Partials/Forum/Comment.cshtml +++ b/OurUmbraco.Site/Views/Partials/Forum/Comment.cshtml @@ -1,6 +1,6 @@ -@inherits Umbraco.Web.Mvc.UmbracoViewPage +@inherits Umbraco.Web.Mvc.UmbracoViewPage +@using OurUmbraco.Forum.Extensions @using OurUmbraco.Powers.Library -@using uForum.Extensions @{ var currentMember = Members.GetCurrentMember(); diff --git a/OurUmbraco.Site/Views/Partials/Forum/MemberBadge.cshtml b/OurUmbraco.Site/Views/Partials/Forum/MemberBadge.cshtml index 684f0cdf..97ef632a 100644 --- a/OurUmbraco.Site/Views/Partials/Forum/MemberBadge.cshtml +++ b/OurUmbraco.Site/Views/Partials/Forum/MemberBadge.cshtml @@ -1,6 +1,5 @@ -@model IMember -@using uForum; -@using uForum.Extensions +@using OurUmbraco.Forum.Extensions +@model IMember
diff --git a/OurUmbraco.Site/Views/Partials/Forum/Question.cshtml b/OurUmbraco.Site/Views/Partials/Forum/Question.cshtml index 70765e18..26762def 100644 --- a/OurUmbraco.Site/Views/Partials/Forum/Question.cshtml +++ b/OurUmbraco.Site/Views/Partials/Forum/Question.cshtml @@ -1,6 +1,6 @@ -@inherits Umbraco.Web.Mvc.UmbracoViewPage +@inherits Umbraco.Web.Mvc.UmbracoViewPage +@using OurUmbraco.Forum.Extensions @using OurUmbraco.Powers.Library -@using uForum.Extensions @{ var currentMember = Members.GetCurrentMember(); diff --git a/OurUmbraco.Site/macroScripts/ManageSpam.cshtml b/OurUmbraco.Site/macroScripts/ManageSpam.cshtml index d0561892..9095eff7 100644 --- a/OurUmbraco.Site/macroScripts/ManageSpam.cshtml +++ b/OurUmbraco.Site/macroScripts/ManageSpam.cshtml @@ -1,8 +1,8 @@ -@using uForum.Businesslogic -@using uForum.Library +@using OurUmbraco.Forum.Library +@using uForum.Businesslogic @using umbraco.cms.businesslogic.member @{ - if (uForum.Library.Utils.IsModerator() == false) + if (Utils.IsModerator() == false) { return; } diff --git a/uForum/AntiSpam/SpamChecker.cs b/OurUmbraco/Forum/AntiSpam/SpamChecker.cs similarity index 98% rename from uForum/AntiSpam/SpamChecker.cs rename to OurUmbraco/Forum/AntiSpam/SpamChecker.cs index 2b73fe43..34362f28 100644 --- a/uForum/AntiSpam/SpamChecker.cs +++ b/OurUmbraco/Forum/AntiSpam/SpamChecker.cs @@ -7,17 +7,16 @@ using System.Net; using System.Text.RegularExpressions; using System.Web; using HtmlAgilityPack; -using uForum.Extensions; -using uForum.Library; -using uForum.Models; -using uForum.Services; +using OurUmbraco.Forum.Extensions; +using OurUmbraco.Forum.Library; +using OurUmbraco.Forum.Models; +using OurUmbraco.Forum.Services; using umbraco.BusinessLogic; using Umbraco.Core; using Umbraco.Core.Models; -using Umbraco.Core.Services; using Umbraco.Web; -namespace uForum.AntiSpam +namespace OurUmbraco.Forum.AntiSpam { internal class SpamChecker { diff --git a/uForum/Api/ForumAdminController.cs b/OurUmbraco/Forum/Api/ForumAdminController.cs similarity index 100% rename from uForum/Api/ForumAdminController.cs rename to OurUmbraco/Forum/Api/ForumAdminController.cs diff --git a/uForum/Api/ForumController.cs b/OurUmbraco/Forum/Api/ForumController.cs similarity index 98% rename from uForum/Api/ForumController.cs rename to OurUmbraco/Forum/Api/ForumController.cs index 87e96c44..39c22d58 100644 --- a/uForum/Api/ForumController.cs +++ b/OurUmbraco/Forum/Api/ForumController.cs @@ -3,30 +3,25 @@ using System.Collections.Specialized; using System.Configuration; using System.Dynamic; using System.IO; -using System.Linq; using System.Net; using System.Net.Http; using System.Net.Http.Headers; -using System.Text.RegularExpressions; using System.Web; using System.Web.Http; -using System.Web.Security; using Newtonsoft.Json; -using uForum.AntiSpam; -using uForum.Extensions; -using uForum.Library; -using uForum.Models; -using uForum.Services; +using OurUmbraco.Forum.AntiSpam; +using OurUmbraco.Forum.Extensions; +using OurUmbraco.Forum.Library; +using OurUmbraco.Forum.Models; +using OurUmbraco.Forum.Services; using umbraco; -using umbraco.BusinessLogic; using umbraco.cms.helpers; using Umbraco.Core; using Umbraco.Core.Logging; using Umbraco.Web; -using Umbraco.Web.Security; using Umbraco.Web.WebApi; -namespace uForum.Api +namespace OurUmbraco.Forum.Api { [MemberAuthorize(AllowType = "member")] public class ForumController : ForumControllerBase diff --git a/uForum/Api/ForumControllerBase.cs b/OurUmbraco/Forum/Api/ForumControllerBase.cs similarity index 91% rename from uForum/Api/ForumControllerBase.cs rename to OurUmbraco/Forum/Api/ForumControllerBase.cs index a62f81e1..5123d91d 100644 --- a/uForum/Api/ForumControllerBase.cs +++ b/OurUmbraco/Forum/Api/ForumControllerBase.cs @@ -1,7 +1,7 @@ -using uForum.Services; +using OurUmbraco.Forum.Services; using Umbraco.Web.WebApi; -namespace uForum.Api +namespace OurUmbraco.Forum.Api { /// /// Base abstract controller that expose the forum services diff --git a/uForum/Api/PublicForumController.cs b/OurUmbraco/Forum/Api/PublicForumController.cs similarity index 91% rename from uForum/Api/PublicForumController.cs rename to OurUmbraco/Forum/Api/PublicForumController.cs index 4954b4f4..6456984f 100644 --- a/uForum/Api/PublicForumController.cs +++ b/OurUmbraco/Forum/Api/PublicForumController.cs @@ -1,81 +1,76 @@ -using System; -using System.Collections.Generic; -using System.Dynamic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Web.Http; -using uForum.Extensions; -using uForum.Services; -using Umbraco.Core.Models; -using Umbraco.Web.WebApi; - -namespace uForum.Api -{ - public class PublicForumController : ForumControllerBase - { - - /* TOPICS */ - [HttpGet] - public IEnumerable LatestPaged(int page, int cat) - { - var l = new List(); - foreach (var topic in TopicService.GetLatestTopics(50, page, true, cat)) - { - dynamic o = new ExpandoObject(); - - o.url = topic.GetUrl(); - o.title = topic.Title; - o.replies = topic.Replies; - o.hasAnswer = topic.Answer > 0; - o.updated = topic.Updated.ConvertToRelativeTime(); - o.updatedLong = string.Format("{0:ddd, dd MMM yyyy} {0:HH:mm:ss} UTC+{1}", topic.Updated, TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now)); - if (topic.LatestReplyAuthor > 0) - { - o.memId = topic.LatestReplyAuthor; - o.memName = topic.LastReplyAuthorName; - //var mem = Members.GetById(topic.LatestReplyAuthor); - //if (mem != null) - //{ - // o.memId = mem.Id; - // o.memName = mem.Name; - //} - } - else - { - o.memId = topic.MemberId; - o.memName = topic.AuthorName; - //var author = Members.GetById(topic.MemberId); - //if (author != null) - //{ - // o.memId = author.Id; - // o.memName = author.Name; - //} - } - - IPublishedContent forum; - if (topic.ParentId > 0 && ((forum = Umbraco.TypedContent(topic.ParentId)) != null)) - { - o.forumUrl = forum.Url; - - o.forumName = Library.Utils.GetForumName(forum); - } - //var forum = Umbraco.TypedContent(topic.ParentId); - //if (forum != null) - //{ - // o.forumUrl = forum.Url; - // o.forumName = forum.Name; - //} - - l.Add(o); - } - return l; - } - - [HttpGet] - public string CategoryUrl(int id) - { - return Umbraco.TypedContent(id).Url; - } - } -} +using System; +using System.Collections.Generic; +using System.Dynamic; +using System.Web.Http; +using OurUmbraco.Forum.Extensions; +using Umbraco.Core.Models; + +namespace OurUmbraco.Forum.Api +{ + public class PublicForumController : ForumControllerBase + { + + /* TOPICS */ + [HttpGet] + public IEnumerable LatestPaged(int page, int cat) + { + var l = new List(); + foreach (var topic in TopicService.GetLatestTopics(50, page, true, cat)) + { + dynamic o = new ExpandoObject(); + + o.url = topic.GetUrl(); + o.title = topic.Title; + o.replies = topic.Replies; + o.hasAnswer = topic.Answer > 0; + o.updated = topic.Updated.ConvertToRelativeTime(); + o.updatedLong = string.Format("{0:ddd, dd MMM yyyy} {0:HH:mm:ss} UTC+{1}", topic.Updated, TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now)); + if (topic.LatestReplyAuthor > 0) + { + o.memId = topic.LatestReplyAuthor; + o.memName = topic.LastReplyAuthorName; + //var mem = Members.GetById(topic.LatestReplyAuthor); + //if (mem != null) + //{ + // o.memId = mem.Id; + // o.memName = mem.Name; + //} + } + else + { + o.memId = topic.MemberId; + o.memName = topic.AuthorName; + //var author = Members.GetById(topic.MemberId); + //if (author != null) + //{ + // o.memId = author.Id; + // o.memName = author.Name; + //} + } + + IPublishedContent forum; + if (topic.ParentId > 0 && ((forum = Umbraco.TypedContent(topic.ParentId)) != null)) + { + o.forumUrl = forum.Url; + + o.forumName = Library.Utils.GetForumName(forum); + } + //var forum = Umbraco.TypedContent(topic.ParentId); + //if (forum != null) + //{ + // o.forumUrl = forum.Url; + // o.forumName = forum.Name; + //} + + l.Add(o); + } + return l; + } + + [HttpGet] + public string CategoryUrl(int id) + { + return Umbraco.TypedContent(id).Url; + } + } +} diff --git a/uForum/Api/TopicController.cs b/OurUmbraco/Forum/Api/TopicController.cs similarity index 88% rename from uForum/Api/TopicController.cs rename to OurUmbraco/Forum/Api/TopicController.cs index 12c73876..06bc8e02 100644 --- a/uForum/Api/TopicController.cs +++ b/OurUmbraco/Forum/Api/TopicController.cs @@ -1,13 +1,8 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using uForum.Models; -using uForum.Services; +using OurUmbraco.Forum.Models; using Umbraco.Web.WebApi; -namespace uForum.Api +namespace OurUmbraco.Forum.Api { [MemberAuthorize(AllowType = "member")] public class TopicController : ForumControllerBase diff --git a/uForum/EventHandlers/MemberApprovedEventhandler.cs b/OurUmbraco/Forum/EventHandlers/MemberApprovedEventhandler.cs similarity index 97% rename from uForum/EventHandlers/MemberApprovedEventhandler.cs rename to OurUmbraco/Forum/EventHandlers/MemberApprovedEventhandler.cs index 5566e3ef..1381ef88 100644 --- a/uForum/EventHandlers/MemberApprovedEventhandler.cs +++ b/OurUmbraco/Forum/EventHandlers/MemberApprovedEventhandler.cs @@ -1,13 +1,12 @@ using System; using System.Linq; -using uForum.Library; using Umbraco.Core; using Umbraco.Core.Events; using Umbraco.Core.Models; using Umbraco.Core.Services; using Umbraco.Web; -namespace uForum.EventHandlers +namespace OurUmbraco.Forum.EventHandlers { public class MemberApprovedEventhandler : ApplicationEventHandler { diff --git a/uForum/EventHandlers/NewForumHandler.cs b/OurUmbraco/Forum/EventHandlers/NewForumHandler.cs similarity index 92% rename from uForum/EventHandlers/NewForumHandler.cs rename to OurUmbraco/Forum/EventHandlers/NewForumHandler.cs index e54d39b2..004db507 100644 --- a/uForum/EventHandlers/NewForumHandler.cs +++ b/OurUmbraco/Forum/EventHandlers/NewForumHandler.cs @@ -1,11 +1,10 @@ using System; using System.Linq; -using uForum.Models; -using uForum.Services; +using OurUmbraco.Forum.Services; using Umbraco.Core; using Umbraco.Core.Services; -namespace uForum.EventHandlers +namespace OurUmbraco.Forum.EventHandlers { public class NewForumHandler : ApplicationEventHandler { @@ -39,11 +38,11 @@ namespace uForum.EventHandlers var fs = new ForumService(ApplicationContext.Current.DatabaseContext); foreach (var ent in e.PublishedEntities.Where(x => x.ContentType.Alias == "Forum")) { - Forum f = fs.GetById(ent.Id); + Models.Forum f = fs.GetById(ent.Id); if (f == null) { - f = new Forum(); + f = new Models.Forum(); f.Id = ent.Id; f.ParentId = ent.ParentId; f.SortOrder = ent.SortOrder; diff --git a/uForum/Events.cs b/OurUmbraco/Forum/Events.cs similarity index 89% rename from uForum/Events.cs rename to OurUmbraco/Forum/Events.cs index df83fb67..ab50bb10 100644 --- a/uForum/Events.cs +++ b/OurUmbraco/Forum/Events.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace uForum +namespace OurUmbraco.Forum { public class TopicEventArgs : System.ComponentModel.CancelEventArgs { public Models.Topic Topic { get; set; } diff --git a/uForum/Extensions/EventExtensions.cs b/OurUmbraco/Forum/Extensions/EventExtensions.cs similarity index 95% rename from uForum/Extensions/EventExtensions.cs rename to OurUmbraco/Forum/Extensions/EventExtensions.cs index 3e718910..ec831ab5 100644 --- a/uForum/Extensions/EventExtensions.cs +++ b/OurUmbraco/Forum/Extensions/EventExtensions.cs @@ -1,7 +1,7 @@ using System; using System.ComponentModel; -namespace uForum.Extensions +namespace OurUmbraco.Forum.Extensions { public static class EventExtensions { diff --git a/uForum/Extensions/ForumExtensions.cs b/OurUmbraco/Forum/Extensions/ForumExtensions.cs similarity index 97% rename from uForum/Extensions/ForumExtensions.cs rename to OurUmbraco/Forum/Extensions/ForumExtensions.cs index 1ab8de97..663c57eb 100644 --- a/uForum/Extensions/ForumExtensions.cs +++ b/OurUmbraco/Forum/Extensions/ForumExtensions.cs @@ -7,13 +7,13 @@ using System.Web; using System.Web.Security; using HtmlAgilityPack; using MarkdownSharp; -using uForum.AntiSpam; -using uForum.Library; -using uForum.Models; +using OurUmbraco.Forum.AntiSpam; +using OurUmbraco.Forum.Library; +using OurUmbraco.Forum.Models; using Umbraco.Core.Models; using Umbraco.Web; -namespace uForum.Extensions +namespace OurUmbraco.Forum.Extensions { public static class ForumExtensions { diff --git a/uForum/Extensions/MemberForumExtensions.cs b/OurUmbraco/Forum/Extensions/MemberForumExtensions.cs similarity index 98% rename from uForum/Extensions/MemberForumExtensions.cs rename to OurUmbraco/Forum/Extensions/MemberForumExtensions.cs index 93e4fc66..01fb42f8 100644 --- a/uForum/Extensions/MemberForumExtensions.cs +++ b/OurUmbraco/Forum/Extensions/MemberForumExtensions.cs @@ -4,7 +4,7 @@ using Umbraco.Core.Models; using Umbraco.Web; using Umbraco.Web.Security; -namespace uForum.Extensions +namespace OurUmbraco.Forum.Extensions { public static class MemberForumExtensions { diff --git a/uForum/Library/Utils.cs b/OurUmbraco/Forum/Library/Utils.cs similarity index 99% rename from uForum/Library/Utils.cs rename to OurUmbraco/Forum/Library/Utils.cs index d7ccfe9d..e332a576 100644 --- a/uForum/Library/Utils.cs +++ b/OurUmbraco/Forum/Library/Utils.cs @@ -10,18 +10,14 @@ using System.Web; using System.Web.Security; using RestSharp; using RestSharp.Deserializers; -using umbraco; using umbraco.BusinessLogic; -using umbraco.editorControls.MultiNodeTreePicker; -using umbraco.NodeFactory; using Umbraco.Core.Logging; using Umbraco.Core.Models; -using Umbraco.Core.Services; using Umbraco.Web; using Member = umbraco.cms.businesslogic.member.Member; using MemberGroup = umbraco.cms.businesslogic.member.MemberGroup; -namespace uForum.Library +namespace OurUmbraco.Forum.Library { public class Utils { diff --git a/uForum/Library/Xslt.cs b/OurUmbraco/Forum/Library/Xslt.cs similarity index 97% rename from uForum/Library/Xslt.cs rename to OurUmbraco/Forum/Library/Xslt.cs index d9aa01f8..1e2e7261 100644 --- a/uForum/Library/Xslt.cs +++ b/OurUmbraco/Forum/Library/Xslt.cs @@ -1,599 +1,599 @@ -using System; -using System.Collections.Generic; -using System.Text.RegularExpressions; -using System.Web; -using System.Xml; -using System.Xml.XPath; -using HtmlAgilityPack; -using uForum.Businesslogic; -using umbraco; -using MarkdownSharp; -using umbraco.BusinessLogic; -using umbraco.cms.businesslogic.member; - -namespace uForum.Library -{ - [Umbraco.Core.Macros.XsltExtension("uForum")] - public class Xslt - { - - public string ReplaceCode(Match m) - { - if (m.Success) - return "" + HttpContext.Current.Server.HtmlEncode(m.Groups[0].Value).Replace("<br />", "").Replace("<", "<").Replace(">", ">").Trim() + ""; - else - return ""; - } - - public static XPathNodeIterator GetCurrentMember() - { - Member m = Member.GetCurrentMember(); - if (m != null) - { - XmlDocument mXml = new XmlDocument(); - mXml.LoadXml(m.ToXml(mXml, false).OuterXml); - XPathNavigator xp = mXml.CreateNavigator(); - return xp.Select("/*"); - } - - XmlDocument xd = new XmlDocument(); - xd.LoadXml( - "No current member exists (best practice is to validate with 'isloggedon()' prior to this call)"); - var retVal = xd.CreateNavigator().Select("/"); - return retVal; - } - - public static string CleanBBCode(string html) - { - - string str = html; - Regex exp; - - // format the code tags: [code]my site[code] - // becomes: my site - exp = new Regex(@"\[code\](.+?)\[/code\]", RegexOptions.Singleline | RegexOptions.IgnoreCase); - - Xslt x = new Xslt(); - MatchEvaluator exp_eval = new MatchEvaluator(x.ReplaceCode); - // Replace matched characters using the delegate method. - str = exp.Replace(str, exp_eval); - - // format the url tags: [url=www.website.com]my site[/url] - // becomes: my site - exp = new Regex(@"\[quote\=([^\]]+)\]([^\]]+)\[/quote\]", RegexOptions.Singleline); - str = exp.Replace(str, "
$2
"); - - return str; - } - - public static bool IsMemberInGroup(string GroupName, int memberid) - { - Member m; - try - { - m = Utills.GetMember(memberid); - } - catch (Exception ex) - { - Log.Add(LogTypes.Error, new User(0), -1, string.Format("Utills.GetMember({0}) failed - {1} {2} {3}", memberid, ex.Message, ex.StackTrace, ex.InnerException)); - return false; - } - - foreach (MemberGroup mg in m.Groups.Values) - { - if (mg.Text == GroupName) - return true; - } - return false; - } - - public static bool IsInGroup(string GroupName) - { - - if (umbraco.library.IsLoggedOn()) - return IsMemberInGroup(GroupName, Member.CurrentMemberId()); - else - return false; - } - - public static void RegisterRssFeed(string url, string title, string alias) - { - umbraco.library.RegisterClientScriptBlock(alias, "", false); - } - - public static string NiceTopicUrl(int topicId) - { - var topic = Businesslogic.Topic.GetTopic(topicId); - - if (topic == null || topic.Exists == false) - return ""; - - var url = library.NiceUrl(topic.ParentId); - - return GlobalSettings.UseDirectoryUrls - ? string.Format("/{0}/{1}-{2}", url.Trim('/'), topic.Id, topic.UrlName) - : string.Format("/{0}/{1}-{2}.aspx", url.Substring(0, url.LastIndexOf('.')).Trim('/'), topic.Id, topic.UrlName); - } - - public static int CommentPageNumber(int commentId, int itemsPerPage) - { - Businesslogic.Comment c = new uForum.Businesslogic.Comment(commentId); - - int position = c.Position - 1; - - return (int)(position / itemsPerPage); - } - - - public static string NiceCommentUrl(int topicId, int commentId, int itemsPerPage) - { - string url = NiceTopicUrl(topicId); - if (!string.IsNullOrEmpty(url)) - { - Businesslogic.Comment c = new uForum.Businesslogic.Comment(commentId); - - int position = c.Position - 1; - - int page = (int)(position / itemsPerPage); - - - url += "?p=" + page.ToString() + "#comment" + c.Id.ToString(); - } - - return url; - } - - public static XPathNodeIterator ForumPager(int forumId, int itemsPerPage, int currentPage) - { - return ForumPager(forumId, itemsPerPage, currentPage, 10); - } - - public static XPathNodeIterator ForumPager(int forumId, int itemsPerPage, int currentPage, int distance) - { - var xd = new XmlDocument(); - var totalTopics = 0; - - if (forumId == 0) - totalTopics = Businesslogic.Topic.TotalTopics(); - else - { - var f = new uForum.Businesslogic.Forum(forumId); - totalTopics = f.TotalTopics; - } - - var pages = xmlHelper.addTextNode(xd, "pages", string.Empty); - var i = 0; - var p = 0; - - while (i < (totalTopics)) - { - var distanceFromCurrent = p - currentPage; - if (distanceFromCurrent > -distance && distanceFromCurrent < distance) - { - var page = xmlHelper.addTextNode(xd, "page", string.Empty); - page.Attributes.Append(xmlHelper.addAttribute(xd, "index", p.ToString())); - - if (p == currentPage) - { - page.Attributes.Append(xmlHelper.addAttribute(xd, "current", "true")); - } - - pages.AppendChild(page); - } - - p++; - i = (i + itemsPerPage); - } - - return pages.CreateNavigator().Select("."); - } - - public static XPathNodeIterator TopicPager(int topicId, int itemsPerPage, int currentPage) - { - XmlDocument xd = new XmlDocument(); - Businesslogic.Topic t = uForum.Businesslogic.Topic.GetTopic(topicId); - - XmlNode pages = umbraco.xmlHelper.addTextNode(xd, "pages", ""); - - int i = 0; - int p = 0; - - while (i < (t.Replies)) - { - XmlNode page = umbraco.xmlHelper.addTextNode(xd, "page", ""); - page.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "index", p.ToString())); - if (p == currentPage) - { - page.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "current", "true")); - } - pages.AppendChild(page); - - p++; - i = (i + itemsPerPage); - } - - return pages.CreateNavigator().Select("."); - } - - public static XPathNodeIterator MemberTopicPager(int memberId, int itemsPerPage, int currentPage) - { - XmlDocument xd = new XmlDocument(); - XmlNode pages = umbraco.xmlHelper.addTextNode(xd, "pages", ""); - - int i = 0; - int p = 0; - int total = uForum.Businesslogic.Forum.TotalTopicsAndComments(memberId); - - while (i < (total)) - { - XmlNode page = umbraco.xmlHelper.addTextNode(xd, "page", ""); - page.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "index", p.ToString())); - if (p == currentPage) - { - page.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "current", "true")); - } - pages.AppendChild(page); - - p++; - i = (i + itemsPerPage); - } - - return pages.CreateNavigator().Select("."); - } - - public static XPathNodeIterator AllForums(bool includeLatestData) - { - - - XmlDocument xd = new XmlDocument(); - XmlNode x = xd.CreateElement("forums"); - - List forums = Businesslogic.Forum.Forums(); - foreach (Businesslogic.Forum f in forums) - { - x.AppendChild(f.ToXml(xd, includeLatestData)); - } - - return x.CreateNavigator().Select("."); - } - - public static XPathNodeIterator Forum(int id, bool includeLatestData) - { - XmlDocument xd = new XmlDocument(); - - - return new Businesslogic.Forum(id).ToXml(xd, includeLatestData).CreateNavigator().Select("."); - - } - - public static XPathNodeIterator Forums(int parentId, bool includeLatestData) - { - XmlDocument xd = new XmlDocument(); - XmlNode x = xd.CreateElement("forums"); - - List forums = Businesslogic.Forum.Forums(parentId); - foreach (Businesslogic.Forum f in forums) - { - x.AppendChild(f.ToXml(xd, includeLatestData)); - } - - return x.CreateNavigator().Select("."); - } - - public static XPathNodeIterator ForumTopics(int nodeId, int amount) - { - XmlDocument xd = new XmlDocument(); - XmlNode x = xd.CreateElement("topics"); - - List topics = Businesslogic.Topic.TopicsInForum(nodeId, amount, 1); - foreach (Businesslogic.Topic t in topics) - { - x.AppendChild(t.ToXml(xd)); - } - - return x.CreateNavigator().Select("."); - } - - public static XPathNodeIterator Topic(int topicID) - { - XmlDocument xd = new XmlDocument(); - Businesslogic.Topic t = uForum.Businesslogic.Topic.GetTopic(topicID); - - if (t.Exists) - xd.AppendChild(t.ToXml(xd)); - - return xd.CreateNavigator().Select("."); - } - - public static XPathNodeIterator Comment(int commentID) - { - - XmlDocument xd = new XmlDocument(); - Businesslogic.Comment c = new uForum.Businesslogic.Comment(commentID); - - return c.ToXml(xd).CreateNavigator().Select("."); - } - - public static XPathNodeIterator TopicComments(int topicID) - { - - XmlDocument xd = new XmlDocument(); - Businesslogic.Topic t = uForum.Businesslogic.Topic.GetTopic(topicID); - - if (t.Exists) - { - XmlNode comments = umbraco.xmlHelper.addTextNode(xd, "comments", ""); - - foreach (Businesslogic.Comment cc in t.Comments) - { - comments.AppendChild(cc.ToXml(xd)); - } - - xd.AppendChild(comments); - } - - return xd.CreateNavigator().Select("."); - } - - public static XPathNodeIterator LatestTopics(int amount) - { - XmlDocument xd = new XmlDocument(); - XmlNode x = xd.CreateElement("topics"); - - List topics = Businesslogic.Topic.Latest(amount); - foreach (Businesslogic.Topic t in topics) - { - x.AppendChild(t.ToXml(xd)); - } - - return x.CreateNavigator().Select("."); - } - - public static string Sanitize(string html) - { - // Run it through Markdown first - var md = new Markdown(); - html = md.Transform(html); - - // Linkify images if they are shown as resized versions (only relevant for new Markdown comments) - var doc = new HtmlDocument(); - doc.LoadHtml(html); - - var root = doc.DocumentNode; - if (root != null) - { - var images = root.SelectNodes("//img"); - if (images != null) - { - var replace = false; - foreach (var image in images) - { - var src = image.GetAttributeValue("src", ""); - var orgSrc = src.Replace("rs/", ""); - - if (src == orgSrc || image.ParentNode.Name == "a") continue; - - var a = doc.CreateElement("a"); - a.SetAttributeValue("href", orgSrc); - a.SetAttributeValue("target", "_blank"); - - a.AppendChild(image.Clone()); - - image.ParentNode.ReplaceChild(a, image); - - replace = true; - } - - if (replace) - { - html = root.OuterHtml; - } - } - } - - return Utills.Sanitize(html); - } - - public static string TimeDiff(string secondDate) - { - DateTime date; - if (!DateTime.TryParse(secondDate, out date)) - return secondDate; - - var TS = DateTime.Now.Subtract(date); - var span = int.Parse(Math.Round(TS.TotalSeconds, 0).ToString()); - - if (span < 60) - return "1 minute ago"; - - if (span >= 60 && span < 3600) - return string.Concat(Math.Round(TS.TotalMinutes), " minutes ago"); - - if (span >= 3600 && span < 7200) - return "1 hour ago"; - - if (span >= 3600 && span < 86400) - return string.Concat(Math.Round(TS.TotalHours), " hours ago"); - - if (span >= 86400 && span < 172800) - return "1 day ago"; - - if (span >= 172800 && span < 604800) - return string.Concat(Math.Round(TS.TotalDays), " days ago"); - - if (span >= 604800 && span < 1209600) - return "1 week ago"; - - return date.ToString("MMMM d, yyyy @ hh:mm"); - } - - - private static readonly Regex linkFinderRegex = new Regex("(((?)(.*?)()", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline); - private static readonly Regex preTagFinderRegex = new Regex("()(.*?)()", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline); - private static readonly string link = "{2}"; - private static readonly string imgLink = "\"\""; - private static readonly Regex Base64ImageRegex = new Regex("()", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline); - private static readonly Regex imageTagFinderRegex = new Regex("()", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline); - - public static void TopicNotFound(int topicId) - { - HttpContext.Current.Response.RedirectPermanent(string.Concat("/?topicNotFound=", topicId)); - } - - public static string ResolveLinks(string body) - { - - - - if (string.IsNullOrEmpty(body)) - return body; - - //REMOVE BASE64 Images - body = Base64ImageRegex.Replace(body, ""); - - - Dictionary replaceValues = new Dictionary(); - - int k = 0; - foreach (Match match in preTagFinderRegex.Matches(body)) - { - string placeholder = string.Format("[[[[PreTagReplace{0}]]]]", k); - body = body.Replace(match.Value, placeholder); - replaceValues.Add(placeholder, "
" + match.Groups[3].Value + "
"); - k++; - } - - int j = 0; - foreach (Match match in anchorFinderRegex.Matches(body)) - { - string placeholder = string.Format("[[[[AnchorReplacer{0}]]]]", j); - body = body.Replace(match.Value, placeholder); - - - if (!match.Groups[5].Value.Contains("://") || imageTagFinderRegex.IsMatch(match.Groups[5].Value)) - { - if (imageTagFinderRegex.IsMatch(match.Groups[5].Value)) - { - replaceValues.Add(placeholder, string.Format(imgLink, string.Empty, match.Groups[3].Value, HttpUtility.UrlDecode(match.Groups[5].Value))); - } - else - { - replaceValues.Add(placeholder, string.Format(link, string.Empty, match.Groups[3].Value, HttpUtility.UrlDecode(match.Groups[5].Value))); - } - } - else - { - replaceValues.Add(placeholder, string.Format(link, string.Empty, match.Groups[3].Value, HttpUtility.UrlDecode(ShortenUrl(match.Groups[5].Value, 50)))); - } - j++; - } - - - int i = 0; - foreach (Match match in linkFinderRegex.Matches(body)) - { - string placeholder = string.Format("[[[[LinkReplacer{0}]]]]", i); - body = body.Replace(match.Value, placeholder); - if (!match.Value.Contains("://")) - { - replaceValues.Add(placeholder, string.Format(link, "http://", match.Value, HttpUtility.UrlDecode(ShortenUrl(match.Value, 50)))); - } - else - { - replaceValues.Add(placeholder, string.Format(link, string.Empty, match.Value, HttpUtility.UrlDecode(ShortenUrl(match.Value, 50)))); - } - i++; - } - - - foreach (KeyValuePair replaceValue in replaceValues) - { - body = body.Replace(replaceValue.Key, replaceValue.Value); - } - - return body; - } - public static bool UseMarkdownEditor() - { - return ForumEditor.UseMarkdownEditor(); - } - - public static bool IsModerator() - { - return Utills.IsModerator(); - } - - public static bool CanSeeTopic(int topicId) - { - return Utills.CanSeeTopic(topicId); - } - - public static bool CanSeeComment(int commentId) - { - return Utills.CanSeeComment(commentId); - } - - private static string ShortenUrl(string url, int max) - { - if (url.Length <= max) - return url; - - try - { - // Remove the protocal - int startIndex = url.IndexOf("://"); - - if (startIndex > -1) - url = url.Substring(startIndex + 3); - - if (url.Length <= max) - return url; - - // Remove the folder structure - int firstIndex = url.IndexOf("/") + 1; - int lastIndex = url.LastIndexOf("/"); - if (firstIndex < lastIndex) - url = url.Replace(url.Substring(firstIndex, lastIndex - firstIndex), "..."); - - if (url.Length <= max) - return url; - - // Remove URL parameters - int queryIndex = url.IndexOf("?"); - if (queryIndex > -1) - url = url.Substring(0, queryIndex); - - if (url.Length <= max) - return url; - - // Remove URL fragment - int fragmentIndex = url.IndexOf("#"); - if (fragmentIndex > -1) - url = url.Substring(0, fragmentIndex); - - if (url.Length <= max) - return url; - - // Shorten page - firstIndex = url.LastIndexOf("/") + 1; - lastIndex = url.LastIndexOf("."); - if (lastIndex - firstIndex > 10) - { - string page = url.Substring(firstIndex, lastIndex - firstIndex); - int length = url.Length - max + 3; - url = url.Replace(page, "..." + page.Substring(length)); - } - - - return url; - } - catch - { - return url; - } - } - - - } -} +using System; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using System.Web; +using System.Xml; +using System.Xml.XPath; +using HtmlAgilityPack; +using uForum.Businesslogic; +using umbraco; +using MarkdownSharp; +using umbraco.BusinessLogic; +using umbraco.cms.businesslogic.member; + +namespace uForum.Library +{ + [Umbraco.Core.Macros.XsltExtension("uForum")] + public class Xslt + { + + public string ReplaceCode(Match m) + { + if (m.Success) + return "" + HttpContext.Current.Server.HtmlEncode(m.Groups[0].Value).Replace("<br />", "").Replace("<", "<").Replace(">", ">").Trim() + ""; + else + return ""; + } + + public static XPathNodeIterator GetCurrentMember() + { + Member m = Member.GetCurrentMember(); + if (m != null) + { + XmlDocument mXml = new XmlDocument(); + mXml.LoadXml(m.ToXml(mXml, false).OuterXml); + XPathNavigator xp = mXml.CreateNavigator(); + return xp.Select("/*"); + } + + XmlDocument xd = new XmlDocument(); + xd.LoadXml( + "No current member exists (best practice is to validate with 'isloggedon()' prior to this call)"); + var retVal = xd.CreateNavigator().Select("/"); + return retVal; + } + + public static string CleanBBCode(string html) + { + + string str = html; + Regex exp; + + // format the code tags: [code]my site[code] + // becomes: my site + exp = new Regex(@"\[code\](.+?)\[/code\]", RegexOptions.Singleline | RegexOptions.IgnoreCase); + + Xslt x = new Xslt(); + MatchEvaluator exp_eval = new MatchEvaluator(x.ReplaceCode); + // Replace matched characters using the delegate method. + str = exp.Replace(str, exp_eval); + + // format the url tags: [url=www.website.com]my site[/url] + // becomes: my site + exp = new Regex(@"\[quote\=([^\]]+)\]([^\]]+)\[/quote\]", RegexOptions.Singleline); + str = exp.Replace(str, "
$2
"); + + return str; + } + + public static bool IsMemberInGroup(string GroupName, int memberid) + { + Member m; + try + { + m = Utills.GetMember(memberid); + } + catch (Exception ex) + { + Log.Add(LogTypes.Error, new User(0), -1, string.Format("Utills.GetMember({0}) failed - {1} {2} {3}", memberid, ex.Message, ex.StackTrace, ex.InnerException)); + return false; + } + + foreach (MemberGroup mg in m.Groups.Values) + { + if (mg.Text == GroupName) + return true; + } + return false; + } + + public static bool IsInGroup(string GroupName) + { + + if (umbraco.library.IsLoggedOn()) + return IsMemberInGroup(GroupName, Member.CurrentMemberId()); + else + return false; + } + + public static void RegisterRssFeed(string url, string title, string alias) + { + umbraco.library.RegisterClientScriptBlock(alias, "", false); + } + + public static string NiceTopicUrl(int topicId) + { + var topic = Businesslogic.Topic.GetTopic(topicId); + + if (topic == null || topic.Exists == false) + return ""; + + var url = library.NiceUrl(topic.ParentId); + + return GlobalSettings.UseDirectoryUrls + ? string.Format("/{0}/{1}-{2}", url.Trim('/'), topic.Id, topic.UrlName) + : string.Format("/{0}/{1}-{2}.aspx", url.Substring(0, url.LastIndexOf('.')).Trim('/'), topic.Id, topic.UrlName); + } + + public static int CommentPageNumber(int commentId, int itemsPerPage) + { + Businesslogic.Comment c = new uForum.Businesslogic.Comment(commentId); + + int position = c.Position - 1; + + return (int)(position / itemsPerPage); + } + + + public static string NiceCommentUrl(int topicId, int commentId, int itemsPerPage) + { + string url = NiceTopicUrl(topicId); + if (!string.IsNullOrEmpty(url)) + { + Businesslogic.Comment c = new uForum.Businesslogic.Comment(commentId); + + int position = c.Position - 1; + + int page = (int)(position / itemsPerPage); + + + url += "?p=" + page.ToString() + "#comment" + c.Id.ToString(); + } + + return url; + } + + public static XPathNodeIterator ForumPager(int forumId, int itemsPerPage, int currentPage) + { + return ForumPager(forumId, itemsPerPage, currentPage, 10); + } + + public static XPathNodeIterator ForumPager(int forumId, int itemsPerPage, int currentPage, int distance) + { + var xd = new XmlDocument(); + var totalTopics = 0; + + if (forumId == 0) + totalTopics = Businesslogic.Topic.TotalTopics(); + else + { + var f = new uForum.Businesslogic.Forum(forumId); + totalTopics = f.TotalTopics; + } + + var pages = xmlHelper.addTextNode(xd, "pages", string.Empty); + var i = 0; + var p = 0; + + while (i < (totalTopics)) + { + var distanceFromCurrent = p - currentPage; + if (distanceFromCurrent > -distance && distanceFromCurrent < distance) + { + var page = xmlHelper.addTextNode(xd, "page", string.Empty); + page.Attributes.Append(xmlHelper.addAttribute(xd, "index", p.ToString())); + + if (p == currentPage) + { + page.Attributes.Append(xmlHelper.addAttribute(xd, "current", "true")); + } + + pages.AppendChild(page); + } + + p++; + i = (i + itemsPerPage); + } + + return pages.CreateNavigator().Select("."); + } + + public static XPathNodeIterator TopicPager(int topicId, int itemsPerPage, int currentPage) + { + XmlDocument xd = new XmlDocument(); + Businesslogic.Topic t = uForum.Businesslogic.Topic.GetTopic(topicId); + + XmlNode pages = umbraco.xmlHelper.addTextNode(xd, "pages", ""); + + int i = 0; + int p = 0; + + while (i < (t.Replies)) + { + XmlNode page = umbraco.xmlHelper.addTextNode(xd, "page", ""); + page.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "index", p.ToString())); + if (p == currentPage) + { + page.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "current", "true")); + } + pages.AppendChild(page); + + p++; + i = (i + itemsPerPage); + } + + return pages.CreateNavigator().Select("."); + } + + public static XPathNodeIterator MemberTopicPager(int memberId, int itemsPerPage, int currentPage) + { + XmlDocument xd = new XmlDocument(); + XmlNode pages = umbraco.xmlHelper.addTextNode(xd, "pages", ""); + + int i = 0; + int p = 0; + int total = uForum.Businesslogic.Forum.TotalTopicsAndComments(memberId); + + while (i < (total)) + { + XmlNode page = umbraco.xmlHelper.addTextNode(xd, "page", ""); + page.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "index", p.ToString())); + if (p == currentPage) + { + page.Attributes.Append(umbraco.xmlHelper.addAttribute(xd, "current", "true")); + } + pages.AppendChild(page); + + p++; + i = (i + itemsPerPage); + } + + return pages.CreateNavigator().Select("."); + } + + public static XPathNodeIterator AllForums(bool includeLatestData) + { + + + XmlDocument xd = new XmlDocument(); + XmlNode x = xd.CreateElement("forums"); + + List forums = Businesslogic.Forum.Forums(); + foreach (Businesslogic.Forum f in forums) + { + x.AppendChild(f.ToXml(xd, includeLatestData)); + } + + return x.CreateNavigator().Select("."); + } + + public static XPathNodeIterator Forum(int id, bool includeLatestData) + { + XmlDocument xd = new XmlDocument(); + + + return new Businesslogic.Forum(id).ToXml(xd, includeLatestData).CreateNavigator().Select("."); + + } + + public static XPathNodeIterator Forums(int parentId, bool includeLatestData) + { + XmlDocument xd = new XmlDocument(); + XmlNode x = xd.CreateElement("forums"); + + List forums = Businesslogic.Forum.Forums(parentId); + foreach (Businesslogic.Forum f in forums) + { + x.AppendChild(f.ToXml(xd, includeLatestData)); + } + + return x.CreateNavigator().Select("."); + } + + public static XPathNodeIterator ForumTopics(int nodeId, int amount) + { + XmlDocument xd = new XmlDocument(); + XmlNode x = xd.CreateElement("topics"); + + List topics = Businesslogic.Topic.TopicsInForum(nodeId, amount, 1); + foreach (Businesslogic.Topic t in topics) + { + x.AppendChild(t.ToXml(xd)); + } + + return x.CreateNavigator().Select("."); + } + + public static XPathNodeIterator Topic(int topicID) + { + XmlDocument xd = new XmlDocument(); + Businesslogic.Topic t = uForum.Businesslogic.Topic.GetTopic(topicID); + + if (t.Exists) + xd.AppendChild(t.ToXml(xd)); + + return xd.CreateNavigator().Select("."); + } + + public static XPathNodeIterator Comment(int commentID) + { + + XmlDocument xd = new XmlDocument(); + Businesslogic.Comment c = new uForum.Businesslogic.Comment(commentID); + + return c.ToXml(xd).CreateNavigator().Select("."); + } + + public static XPathNodeIterator TopicComments(int topicID) + { + + XmlDocument xd = new XmlDocument(); + Businesslogic.Topic t = uForum.Businesslogic.Topic.GetTopic(topicID); + + if (t.Exists) + { + XmlNode comments = umbraco.xmlHelper.addTextNode(xd, "comments", ""); + + foreach (Businesslogic.Comment cc in t.Comments) + { + comments.AppendChild(cc.ToXml(xd)); + } + + xd.AppendChild(comments); + } + + return xd.CreateNavigator().Select("."); + } + + public static XPathNodeIterator LatestTopics(int amount) + { + XmlDocument xd = new XmlDocument(); + XmlNode x = xd.CreateElement("topics"); + + List topics = Businesslogic.Topic.Latest(amount); + foreach (Businesslogic.Topic t in topics) + { + x.AppendChild(t.ToXml(xd)); + } + + return x.CreateNavigator().Select("."); + } + + public static string Sanitize(string html) + { + // Run it through Markdown first + var md = new Markdown(); + html = md.Transform(html); + + // Linkify images if they are shown as resized versions (only relevant for new Markdown comments) + var doc = new HtmlDocument(); + doc.LoadHtml(html); + + var root = doc.DocumentNode; + if (root != null) + { + var images = root.SelectNodes("//img"); + if (images != null) + { + var replace = false; + foreach (var image in images) + { + var src = image.GetAttributeValue("src", ""); + var orgSrc = src.Replace("rs/", ""); + + if (src == orgSrc || image.ParentNode.Name == "a") continue; + + var a = doc.CreateElement("a"); + a.SetAttributeValue("href", orgSrc); + a.SetAttributeValue("target", "_blank"); + + a.AppendChild(image.Clone()); + + image.ParentNode.ReplaceChild(a, image); + + replace = true; + } + + if (replace) + { + html = root.OuterHtml; + } + } + } + + return Utills.Sanitize(html); + } + + public static string TimeDiff(string secondDate) + { + DateTime date; + if (!DateTime.TryParse(secondDate, out date)) + return secondDate; + + var TS = DateTime.Now.Subtract(date); + var span = int.Parse(Math.Round(TS.TotalSeconds, 0).ToString()); + + if (span < 60) + return "1 minute ago"; + + if (span >= 60 && span < 3600) + return string.Concat(Math.Round(TS.TotalMinutes), " minutes ago"); + + if (span >= 3600 && span < 7200) + return "1 hour ago"; + + if (span >= 3600 && span < 86400) + return string.Concat(Math.Round(TS.TotalHours), " hours ago"); + + if (span >= 86400 && span < 172800) + return "1 day ago"; + + if (span >= 172800 && span < 604800) + return string.Concat(Math.Round(TS.TotalDays), " days ago"); + + if (span >= 604800 && span < 1209600) + return "1 week ago"; + + return date.ToString("MMMM d, yyyy @ hh:mm"); + } + + + private static readonly Regex linkFinderRegex = new Regex("(((?)(.*?)()", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline); + private static readonly Regex preTagFinderRegex = new Regex("()(.*?)()", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline); + private static readonly string link = "{2}"; + private static readonly string imgLink = "\"\""; + private static readonly Regex Base64ImageRegex = new Regex("()", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline); + private static readonly Regex imageTagFinderRegex = new Regex("()", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline); + + public static void TopicNotFound(int topicId) + { + HttpContext.Current.Response.RedirectPermanent(string.Concat("/?topicNotFound=", topicId)); + } + + public static string ResolveLinks(string body) + { + + + + if (string.IsNullOrEmpty(body)) + return body; + + //REMOVE BASE64 Images + body = Base64ImageRegex.Replace(body, ""); + + + Dictionary replaceValues = new Dictionary(); + + int k = 0; + foreach (Match match in preTagFinderRegex.Matches(body)) + { + string placeholder = string.Format("[[[[PreTagReplace{0}]]]]", k); + body = body.Replace(match.Value, placeholder); + replaceValues.Add(placeholder, "
" + match.Groups[3].Value + "
"); + k++; + } + + int j = 0; + foreach (Match match in anchorFinderRegex.Matches(body)) + { + string placeholder = string.Format("[[[[AnchorReplacer{0}]]]]", j); + body = body.Replace(match.Value, placeholder); + + + if (!match.Groups[5].Value.Contains("://") || imageTagFinderRegex.IsMatch(match.Groups[5].Value)) + { + if (imageTagFinderRegex.IsMatch(match.Groups[5].Value)) + { + replaceValues.Add(placeholder, string.Format(imgLink, string.Empty, match.Groups[3].Value, HttpUtility.UrlDecode(match.Groups[5].Value))); + } + else + { + replaceValues.Add(placeholder, string.Format(link, string.Empty, match.Groups[3].Value, HttpUtility.UrlDecode(match.Groups[5].Value))); + } + } + else + { + replaceValues.Add(placeholder, string.Format(link, string.Empty, match.Groups[3].Value, HttpUtility.UrlDecode(ShortenUrl(match.Groups[5].Value, 50)))); + } + j++; + } + + + int i = 0; + foreach (Match match in linkFinderRegex.Matches(body)) + { + string placeholder = string.Format("[[[[LinkReplacer{0}]]]]", i); + body = body.Replace(match.Value, placeholder); + if (!match.Value.Contains("://")) + { + replaceValues.Add(placeholder, string.Format(link, "http://", match.Value, HttpUtility.UrlDecode(ShortenUrl(match.Value, 50)))); + } + else + { + replaceValues.Add(placeholder, string.Format(link, string.Empty, match.Value, HttpUtility.UrlDecode(ShortenUrl(match.Value, 50)))); + } + i++; + } + + + foreach (KeyValuePair replaceValue in replaceValues) + { + body = body.Replace(replaceValue.Key, replaceValue.Value); + } + + return body; + } + public static bool UseMarkdownEditor() + { + return ForumEditor.UseMarkdownEditor(); + } + + public static bool IsModerator() + { + return Utills.IsModerator(); + } + + public static bool CanSeeTopic(int topicId) + { + return Utills.CanSeeTopic(topicId); + } + + public static bool CanSeeComment(int commentId) + { + return Utills.CanSeeComment(commentId); + } + + private static string ShortenUrl(string url, int max) + { + if (url.Length <= max) + return url; + + try + { + // Remove the protocal + int startIndex = url.IndexOf("://"); + + if (startIndex > -1) + url = url.Substring(startIndex + 3); + + if (url.Length <= max) + return url; + + // Remove the folder structure + int firstIndex = url.IndexOf("/") + 1; + int lastIndex = url.LastIndexOf("/"); + if (firstIndex < lastIndex) + url = url.Replace(url.Substring(firstIndex, lastIndex - firstIndex), "..."); + + if (url.Length <= max) + return url; + + // Remove URL parameters + int queryIndex = url.IndexOf("?"); + if (queryIndex > -1) + url = url.Substring(0, queryIndex); + + if (url.Length <= max) + return url; + + // Remove URL fragment + int fragmentIndex = url.IndexOf("#"); + if (fragmentIndex > -1) + url = url.Substring(0, fragmentIndex); + + if (url.Length <= max) + return url; + + // Shorten page + firstIndex = url.LastIndexOf("/") + 1; + lastIndex = url.LastIndexOf("."); + if (lastIndex - firstIndex > 10) + { + string page = url.Substring(firstIndex, lastIndex - firstIndex); + int length = url.Length - max + 3; + url = url.Replace(page, "..." + page.Substring(length)); + } + + + return url; + } + catch + { + return url; + } + } + + + } +} diff --git a/uForum/Models/Comment.cs b/OurUmbraco/Forum/Models/Comment.cs similarity index 91% rename from uForum/Models/Comment.cs rename to OurUmbraco/Forum/Models/Comment.cs index 51852d18..8f381e1b 100644 --- a/uForum/Models/Comment.cs +++ b/OurUmbraco/Forum/Models/Comment.cs @@ -1,12 +1,8 @@ using System; -using System.Collections.Generic; -using System.Linq; using System.Runtime.Serialization; -using System.Text; -using System.Threading.Tasks; using Umbraco.Core.Persistence; -namespace uForum.Models +namespace OurUmbraco.Forum.Models { [TableName("forumComments")] [PrimaryKey("id")] diff --git a/uForum/Models/CommentSaveModel.cs b/OurUmbraco/Forum/Models/CommentSaveModel.cs similarity index 64% rename from uForum/Models/CommentSaveModel.cs rename to OurUmbraco/Forum/Models/CommentSaveModel.cs index 41754999..5d94f0d8 100644 --- a/uForum/Models/CommentSaveModel.cs +++ b/OurUmbraco/Forum/Models/CommentSaveModel.cs @@ -1,11 +1,6 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.Serialization; -using System.Text; -using System.Threading.Tasks; +using System.Runtime.Serialization; -namespace uForum.Models +namespace OurUmbraco.Forum.Models { [DataContract( Name="comment")] public class CommentSaveModel diff --git a/uForum/Models/Forum.cs b/OurUmbraco/Forum/Models/Forum.cs similarity index 88% rename from uForum/Models/Forum.cs rename to OurUmbraco/Forum/Models/Forum.cs index 2762e692..05e86c19 100644 --- a/uForum/Models/Forum.cs +++ b/OurUmbraco/Forum/Models/Forum.cs @@ -1,11 +1,7 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using Umbraco.Core.Persistence; -namespace uForum.Models +namespace OurUmbraco.Forum.Models { [TableName("forumForums")] [PrimaryKey("id", autoIncrement = false)] diff --git a/uForum/Models/ReadOnlyComment.cs b/OurUmbraco/Forum/Models/ReadOnlyComment.cs similarity index 94% rename from uForum/Models/ReadOnlyComment.cs rename to OurUmbraco/Forum/Models/ReadOnlyComment.cs index aec10f3f..18256347 100644 --- a/uForum/Models/ReadOnlyComment.cs +++ b/OurUmbraco/Forum/Models/ReadOnlyComment.cs @@ -1,8 +1,7 @@ using System; -using System.Runtime.Serialization; using Umbraco.Core.Persistence; -namespace uForum.Models +namespace OurUmbraco.Forum.Models { [TableName("forumComments")] [PrimaryKey("id")] diff --git a/uForum/Models/ReadOnlyTopic.cs b/OurUmbraco/Forum/Models/ReadOnlyTopic.cs similarity index 93% rename from uForum/Models/ReadOnlyTopic.cs rename to OurUmbraco/Forum/Models/ReadOnlyTopic.cs index 0e04e5b9..18513a8b 100644 --- a/uForum/Models/ReadOnlyTopic.cs +++ b/OurUmbraco/Forum/Models/ReadOnlyTopic.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using Umbraco.Core.Persistence; -namespace uForum.Models +namespace OurUmbraco.Forum.Models { /// /// A topic with all of it's data including comments and author names diff --git a/uForum/Models/Topic.cs b/OurUmbraco/Forum/Models/Topic.cs similarity index 94% rename from uForum/Models/Topic.cs rename to OurUmbraco/Forum/Models/Topic.cs index 96adf5c6..15b5e752 100644 --- a/uForum/Models/Topic.cs +++ b/OurUmbraco/Forum/Models/Topic.cs @@ -1,11 +1,8 @@ using System; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using umbraco; using Umbraco.Core.Persistence; -namespace uForum.Models +namespace OurUmbraco.Forum.Models { [TableName("forumTopics")] [PrimaryKey("id")] diff --git a/uForum/Models/TopicCommentRelator.cs b/OurUmbraco/Forum/Models/TopicCommentRelator.cs similarity index 97% rename from uForum/Models/TopicCommentRelator.cs rename to OurUmbraco/Forum/Models/TopicCommentRelator.cs index 0b1138be..6214c5c3 100644 --- a/uForum/Models/TopicCommentRelator.cs +++ b/OurUmbraco/Forum/Models/TopicCommentRelator.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace uForum.Models +namespace OurUmbraco.Forum.Models { class TopicCommentRelator { diff --git a/uForum/Models/TopicSaveModel.cs b/OurUmbraco/Forum/Models/TopicSaveModel.cs similarity index 69% rename from uForum/Models/TopicSaveModel.cs rename to OurUmbraco/Forum/Models/TopicSaveModel.cs index 83c1c89b..64a793ef 100644 --- a/uForum/Models/TopicSaveModel.cs +++ b/OurUmbraco/Forum/Models/TopicSaveModel.cs @@ -1,11 +1,6 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.Serialization; -using System.Text; -using System.Threading.Tasks; +using System.Runtime.Serialization; -namespace uForum.Models +namespace OurUmbraco.Forum.Models { [DataContract(Name = "topic")] public class TopicSaveModel diff --git a/uForum/Services/CommentService.cs b/OurUmbraco/Forum/Services/CommentService.cs similarity index 96% rename from uForum/Services/CommentService.cs rename to OurUmbraco/Forum/Services/CommentService.cs index 75a21228..a8304a3d 100644 --- a/uForum/Services/CommentService.cs +++ b/OurUmbraco/Forum/Services/CommentService.cs @@ -1,14 +1,11 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using uForum.Extensions; -using uForum.Models; +using OurUmbraco.Forum.Extensions; +using OurUmbraco.Forum.Models; using Umbraco.Core; using Umbraco.Core.Persistence; -namespace uForum.Services +namespace OurUmbraco.Forum.Services { /// /// Used for CRUD of comments - There aren't any query methods for comments here, comments are resolved with a Topic in a single query be displayed in the view diff --git a/uForum/Services/ForumService.cs b/OurUmbraco/Forum/Services/ForumService.cs similarity index 80% rename from uForum/Services/ForumService.cs rename to OurUmbraco/Forum/Services/ForumService.cs index 5dfbf61f..dc7862c3 100644 --- a/uForum/Services/ForumService.cs +++ b/OurUmbraco/Forum/Services/ForumService.cs @@ -1,14 +1,10 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using uForum.Extensions; -using uForum.Models; +using OurUmbraco.Forum.Extensions; using Umbraco.Core; using Umbraco.Core.Persistence; -namespace uForum.Services +namespace OurUmbraco.Forum.Services { public class ForumService { @@ -20,20 +16,20 @@ namespace uForum.Services _databaseContext = dbContext; } - public IEnumerable GetForums(int rootId) + public IEnumerable GetForums(int rootId) { var sql = new Sql(); - sql.Where(x => x.ParentId == rootId); - sql.OrderBy(x => x.SortOrder); - return _databaseContext.Database.Fetch(sql); + sql.Where(x => x.ParentId == rootId); + sql.OrderBy(x => x.SortOrder); + return _databaseContext.Database.Fetch(sql); } - public Forum GetById(int nodeId) + public Models.Forum GetById(int nodeId) { - return _databaseContext.Database.SingleOrDefault(nodeId); + return _databaseContext.Database.SingleOrDefault(nodeId); } - public void Delete(Forum forum) + public void Delete(Models.Forum forum) { var eventArgs = new ForumEventArgs() { Forum = forum }; if (Deleting.RaiseAndContinue(this, eventArgs)) @@ -45,7 +41,7 @@ namespace uForum.Services CancelledByEvent.Raise(this, eventArgs); } - public Forum Save(Forum forum) + public Models.Forum Save(Models.Forum forum) { var newForum = _databaseContext.Database.ExecuteScalar("SELECT COUNT(*) FROM forumForums WHERE id=@id", new {id = forum.Id}) == 0; var eventArgs = new ForumEventArgs() { Forum = forum }; diff --git a/uForum/Services/TopicService.cs b/OurUmbraco/Forum/Services/TopicService.cs similarity index 98% rename from uForum/Services/TopicService.cs rename to OurUmbraco/Forum/Services/TopicService.cs index e7b67d6e..aa0ea0e9 100644 --- a/uForum/Services/TopicService.cs +++ b/OurUmbraco/Forum/Services/TopicService.cs @@ -1,17 +1,14 @@ using System; using System.Collections.Generic; -using System.Data.SqlTypes; using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Web; -using uForum.Extensions; -using uForum.Models; +using OurUmbraco.Forum.Extensions; +using OurUmbraco.Forum.Models; using Umbraco.Core; using Umbraco.Core.Cache; using Umbraco.Core.Persistence; -namespace uForum.Services +namespace OurUmbraco.Forum.Services { public class TopicService { diff --git a/uForum/Singleton.cs b/OurUmbraco/Forum/Singleton.cs similarity index 71% rename from uForum/Singleton.cs rename to OurUmbraco/Forum/Singleton.cs index bbda500c..3f2f615b 100644 --- a/uForum/Singleton.cs +++ b/OurUmbraco/Forum/Singleton.cs @@ -1,10 +1,6 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -namespace uForum +namespace OurUmbraco.Forum { public class Singleton where T : class, new() { diff --git a/uForum/iNotFoundHandler.cs b/OurUmbraco/Forum/iNotFoundHandler.cs similarity index 95% rename from uForum/iNotFoundHandler.cs rename to OurUmbraco/Forum/iNotFoundHandler.cs index 98795061..8520f336 100644 --- a/uForum/iNotFoundHandler.cs +++ b/OurUmbraco/Forum/iNotFoundHandler.cs @@ -1,183 +1,180 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Xml; -using System.Web; -using umbraco.cms.businesslogic.web; -using umbraco; -using umbraco.cms.businesslogic.template; -using umbraco.interfaces; -using umbraco.NodeFactory; - -namespace uForum { - public class iNotFoundHandler : umbraco.interfaces.INotFoundHandler { - #region INotFoundHandler Members - - private int _redirectID = -1; - - public bool CacheUrl { - get { return false; } - } - - public bool Execute(string url) { - - HttpContext.Current.Trace.Write("umbraco.faltTemplateHandler","init"); - - bool _succes = false; - url = url.Replace(".aspx", string.Empty); - string currentDomain = HttpContext.Current.Request.ServerVariables["SERVER_NAME"]; - if (url.Length > 0) { - if (url.Substring(0, 1) == "/") - url = url.Substring(1, url.Length - 1); - - XmlNode urlNode = null; - string topicId = ""; - string topicTitle = ""; - - HttpContext.Current.Trace.Write("umbraco.faltTemplateHandler url", url); - - - // We're not at domain root - if (url.IndexOf("/") != -1) { - - string theRealUrl = url.Substring(0, url.LastIndexOf("/")); - string realUrlXPath = CreateXPathQuery(theRealUrl, true); - - urlNode = content.Instance.XmlContent.SelectSingleNode(realUrlXPath); - topicTitle = url.Substring(url.LastIndexOf("/") + 1, url.Length - url.LastIndexOf(("/")) - 1).ToLower(); - topicId = topicTitle.Split('-')[0]; - topicTitle = topicTitle.Substring(topicTitle.IndexOf('-') + 1); - - if(urlNode != null) - HttpContext.Current.Trace.Write("umbraco.faltTemplateHandler", topicId + " " + urlNode.Name); - } - - if (urlNode != null && topicId != "" && urlNode.Name == "Forum") { - _redirectID = int.Parse(urlNode.Attributes.GetNamedItem("id").Value); - - var cookie = new HttpCookie("altTemplate", "displaytopic"); - HttpContext.Current.Request.Cookies.Add(cookie); - - HttpContext.Current.Items["altTemplate"] = "displaytopic"; - HttpContext.Current.Items["topicID"] = topicId; - HttpContext.Current.Items["topicTitle"] = topicTitle.Replace('-',' '); - - HttpContext.Current.Trace.Write("umbraco.faltTemplateHandler", - string.Format("Templated changed to: '{0}'", - HttpContext.Current.Items["altTemplate"])); - _succes = true; - } - } - return _succes; - } - - public int redirectID { - get { - return _redirectID; - } - - } - - private const string PageXPathQueryStart = "/root"; - private const string UrlName = "@urlName"; - public static string CreateXPathQuery(string url, bool checkDomain) - { - - string _tempQuery = ""; - if (GlobalSettings.HideTopLevelNodeFromPath && checkDomain) - { - _tempQuery = "/root" + GetChildContainerName() + "/*"; - } - else if (checkDomain) - _tempQuery = "/root" + GetChildContainerName(); - - - string[] requestRawUrl = url.Split("/".ToCharArray()); - - // Check for Domain prefix - string domainUrl = ""; - if (checkDomain && Domain.Exists(HttpContext.Current.Request.ServerVariables["SERVER_NAME"])) - { - // we need to get the node based on domain - INode n = new Node(Domain.GetRootFromDomain(HttpContext.Current.Request.ServerVariables["SERVER_NAME"])); - domainUrl = n.UrlName; // we don't use niceUrlFetch as we need more control - if (n.Parent != null) - { - while (n.Parent != null) - { - n = n.Parent; - domainUrl = n.UrlName + "/" + domainUrl; - } - } - domainUrl = "/" + domainUrl; - - // If at domain root - if (url == "") - { - _tempQuery = ""; - requestRawUrl = domainUrl.Split("/".ToCharArray()); - HttpContext.Current.Trace.Write("requestHandler", - "Redirecting to domain: " + - HttpContext.Current.Request.ServerVariables["SERVER_NAME"] + - ", nodeId: " + - Domain.GetRootFromDomain( - HttpContext.Current.Request.ServerVariables["SERVER_NAME"]). - ToString()); - } - else - { - // if it matches a domain url, skip all other xpaths and use this! - string langXpath = CreateXPathQuery(domainUrl + "/" + url, false); - if (content.Instance.XmlContent.DocumentElement.SelectSingleNode(langXpath) != null) - return langXpath; - } - } - else if (url == "" && !GlobalSettings.HideTopLevelNodeFromPath) - _tempQuery += "/*"; - - bool rootAdded = false; - if (GlobalSettings.HideTopLevelNodeFromPath && requestRawUrl.Length == 1) - { - HttpContext.Current.Trace.Write("umbracoRequestHandler", "xpath: '" + _tempQuery + "'"); - if (_tempQuery == "") - _tempQuery = "/root" + GetChildContainerName() + "/*"; - _tempQuery = "/root" + GetChildContainerName() + "/* [" + UrlName + - " = \"" + requestRawUrl[0].Replace(".aspx", "").ToLower() + "\"] | " + _tempQuery; - HttpContext.Current.Trace.Write("umbracoRequestHandler", "xpath: '" + _tempQuery + "'"); - rootAdded = true; - } - - - for (int i = 0; i <= requestRawUrl.GetUpperBound(0); i++) - { - if (requestRawUrl[i] != "") - _tempQuery += GetChildContainerName() + "/* [" + UrlName + " = \"" + requestRawUrl[i].Replace(".aspx", "").ToLower() + - "\"]"; - } - - if (GlobalSettings.HideTopLevelNodeFromPath && requestRawUrl.Length == 2) - { - _tempQuery += " | " + PageXPathQueryStart + GetChildContainerName() + "/* [" + UrlName + " = \"" + - requestRawUrl[1].Replace(".aspx", "").ToLower() + "\"]"; - } - HttpContext.Current.Trace.Write("umbracoRequestHandler", "xpath: '" + _tempQuery + "'"); - - Debug.Write(_tempQuery + "(" + PageXPathQueryStart + ")"); - - if (checkDomain) - return _tempQuery; - else if (!rootAdded) - return PageXPathQueryStart + _tempQuery; - else - return _tempQuery; - } - - private static string GetChildContainerName() - { - if (string.IsNullOrEmpty(UmbracoSettings.TEMP_FRIENDLY_XML_CHILD_CONTAINER_NODENAME) == false) - return "/" + UmbracoSettings.TEMP_FRIENDLY_XML_CHILD_CONTAINER_NODENAME; - return ""; - } - #endregion - } -} +using System.Diagnostics; +using System.Web; +using System.Xml; +using umbraco; +using umbraco.cms.businesslogic.web; +using umbraco.interfaces; +using umbraco.NodeFactory; + +namespace OurUmbraco.Forum { + public class iNotFoundHandler : umbraco.interfaces.INotFoundHandler { + #region INotFoundHandler Members + + private int _redirectID = -1; + + public bool CacheUrl { + get { return false; } + } + + public bool Execute(string url) { + + HttpContext.Current.Trace.Write("umbraco.faltTemplateHandler","init"); + + bool _succes = false; + url = url.Replace(".aspx", string.Empty); + string currentDomain = HttpContext.Current.Request.ServerVariables["SERVER_NAME"]; + if (url.Length > 0) { + if (url.Substring(0, 1) == "/") + url = url.Substring(1, url.Length - 1); + + XmlNode urlNode = null; + string topicId = ""; + string topicTitle = ""; + + HttpContext.Current.Trace.Write("umbraco.faltTemplateHandler url", url); + + + // We're not at domain root + if (url.IndexOf("/") != -1) { + + string theRealUrl = url.Substring(0, url.LastIndexOf("/")); + string realUrlXPath = CreateXPathQuery(theRealUrl, true); + + urlNode = content.Instance.XmlContent.SelectSingleNode(realUrlXPath); + topicTitle = url.Substring(url.LastIndexOf("/") + 1, url.Length - url.LastIndexOf(("/")) - 1).ToLower(); + topicId = topicTitle.Split('-')[0]; + topicTitle = topicTitle.Substring(topicTitle.IndexOf('-') + 1); + + if(urlNode != null) + HttpContext.Current.Trace.Write("umbraco.faltTemplateHandler", topicId + " " + urlNode.Name); + } + + if (urlNode != null && topicId != "" && urlNode.Name == "Forum") { + _redirectID = int.Parse(urlNode.Attributes.GetNamedItem("id").Value); + + var cookie = new HttpCookie("altTemplate", "displaytopic"); + HttpContext.Current.Request.Cookies.Add(cookie); + + HttpContext.Current.Items["altTemplate"] = "displaytopic"; + HttpContext.Current.Items["topicID"] = topicId; + HttpContext.Current.Items["topicTitle"] = topicTitle.Replace('-',' '); + + HttpContext.Current.Trace.Write("umbraco.faltTemplateHandler", + string.Format("Templated changed to: '{0}'", + HttpContext.Current.Items["altTemplate"])); + _succes = true; + } + } + return _succes; + } + + public int redirectID { + get { + return _redirectID; + } + + } + + private const string PageXPathQueryStart = "/root"; + private const string UrlName = "@urlName"; + public static string CreateXPathQuery(string url, bool checkDomain) + { + + string _tempQuery = ""; + if (GlobalSettings.HideTopLevelNodeFromPath && checkDomain) + { + _tempQuery = "/root" + GetChildContainerName() + "/*"; + } + else if (checkDomain) + _tempQuery = "/root" + GetChildContainerName(); + + + string[] requestRawUrl = url.Split("/".ToCharArray()); + + // Check for Domain prefix + string domainUrl = ""; + if (checkDomain && Domain.Exists(HttpContext.Current.Request.ServerVariables["SERVER_NAME"])) + { + // we need to get the node based on domain + INode n = new Node(Domain.GetRootFromDomain(HttpContext.Current.Request.ServerVariables["SERVER_NAME"])); + domainUrl = n.UrlName; // we don't use niceUrlFetch as we need more control + if (n.Parent != null) + { + while (n.Parent != null) + { + n = n.Parent; + domainUrl = n.UrlName + "/" + domainUrl; + } + } + domainUrl = "/" + domainUrl; + + // If at domain root + if (url == "") + { + _tempQuery = ""; + requestRawUrl = domainUrl.Split("/".ToCharArray()); + HttpContext.Current.Trace.Write("requestHandler", + "Redirecting to domain: " + + HttpContext.Current.Request.ServerVariables["SERVER_NAME"] + + ", nodeId: " + + Domain.GetRootFromDomain( + HttpContext.Current.Request.ServerVariables["SERVER_NAME"]). + ToString()); + } + else + { + // if it matches a domain url, skip all other xpaths and use this! + string langXpath = CreateXPathQuery(domainUrl + "/" + url, false); + if (content.Instance.XmlContent.DocumentElement.SelectSingleNode(langXpath) != null) + return langXpath; + } + } + else if (url == "" && !GlobalSettings.HideTopLevelNodeFromPath) + _tempQuery += "/*"; + + bool rootAdded = false; + if (GlobalSettings.HideTopLevelNodeFromPath && requestRawUrl.Length == 1) + { + HttpContext.Current.Trace.Write("umbracoRequestHandler", "xpath: '" + _tempQuery + "'"); + if (_tempQuery == "") + _tempQuery = "/root" + GetChildContainerName() + "/*"; + _tempQuery = "/root" + GetChildContainerName() + "/* [" + UrlName + + " = \"" + requestRawUrl[0].Replace(".aspx", "").ToLower() + "\"] | " + _tempQuery; + HttpContext.Current.Trace.Write("umbracoRequestHandler", "xpath: '" + _tempQuery + "'"); + rootAdded = true; + } + + + for (int i = 0; i <= requestRawUrl.GetUpperBound(0); i++) + { + if (requestRawUrl[i] != "") + _tempQuery += GetChildContainerName() + "/* [" + UrlName + " = \"" + requestRawUrl[i].Replace(".aspx", "").ToLower() + + "\"]"; + } + + if (GlobalSettings.HideTopLevelNodeFromPath && requestRawUrl.Length == 2) + { + _tempQuery += " | " + PageXPathQueryStart + GetChildContainerName() + "/* [" + UrlName + " = \"" + + requestRawUrl[1].Replace(".aspx", "").ToLower() + "\"]"; + } + HttpContext.Current.Trace.Write("umbracoRequestHandler", "xpath: '" + _tempQuery + "'"); + + Debug.Write(_tempQuery + "(" + PageXPathQueryStart + ")"); + + if (checkDomain) + return _tempQuery; + else if (!rootAdded) + return PageXPathQueryStart + _tempQuery; + else + return _tempQuery; + } + + private static string GetChildContainerName() + { + if (string.IsNullOrEmpty(UmbracoSettings.TEMP_FRIENDLY_XML_CHILD_CONTAINER_NODENAME) == false) + return "/" + UmbracoSettings.TEMP_FRIENDLY_XML_CHILD_CONTAINER_NODENAME; + return ""; + } + #endregion + } +} diff --git a/uForum/setuptables.sql b/OurUmbraco/Forum/setuptables.sql similarity index 97% rename from uForum/setuptables.sql rename to OurUmbraco/Forum/setuptables.sql index 18bf4b33..8c7888f1 100644 --- a/uForum/setuptables.sql +++ b/OurUmbraco/Forum/setuptables.sql @@ -1,240 +1,240 @@ -/****** Object: Table [dbo].[umbracoNode] Script Date: 05/15/2009 05:27:55 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[umbracoNode]') AND type in (N'U')) -BEGIN -CREATE TABLE [dbo].[umbracoNode]( - [id] [int] IDENTITY(1,1) NOT NULL, - [trashed] [bit] NOT NULL, - [parentID] [int] NOT NULL, - [nodeUser] [int] NULL, - [level] [smallint] NOT NULL, - [path] [nvarchar](150) COLLATE Danish_Norwegian_CI_AS NOT NULL, - [sortOrder] [int] NOT NULL, - [uniqueID] [uniqueidentifier] NULL, - [text] [nvarchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [nodeObjectType] [uniqueidentifier] NULL, - [createDate] [datetime] NOT NULL, - CONSTRAINT [PK_structure] PRIMARY KEY CLUSTERED -( - [id] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) -END -GO -IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[umbracoNode]') AND name = N'IX_umbracoNodeObjectType') -CREATE NONCLUSTERED INDEX [IX_umbracoNodeObjectType] ON [dbo].[umbracoNode] -( - [nodeObjectType] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -GO -IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[umbracoNode]') AND name = N'IX_umbracoNodeParentId') -CREATE NONCLUSTERED INDEX [IX_umbracoNodeParentId] ON [dbo].[umbracoNode] -( - [parentID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -GO -/****** Object: Table [dbo].[forumForums] Script Date: 05/15/2009 05:27:55 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[forumForums]') AND type in (N'U')) -BEGIN -CREATE TABLE [dbo].[forumForums]( - [id] [int] NOT NULL, - [latestTopic] [int] NOT NULL, - [latestComment] [int] NOT NULL, - [totalTopics] [int] NOT NULL, - [totalComments] [int] NOT NULL, - [latestAuthor] [int] NOT NULL, - [latestPostDate] [datetime] NOT NULL, - [sortOrder] [int] NOT NULL, - [parentId] [int] NOT NULL, - CONSTRAINT [PK_forumForums] PRIMARY KEY CLUSTERED -( - [id] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) -END -GO -/****** Object: Table [dbo].[forumTopics] Script Date: 05/15/2009 05:27:55 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[forumTopics]') AND type in (N'U')) -BEGIN -CREATE TABLE [dbo].[forumTopics]( - [id] [int] IDENTITY(1,1) NOT NULL, - [parentId] [int] NOT NULL, - [memberId] [int] NOT NULL, - [title] [nvarchar](70) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [body] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [created] [datetime] NOT NULL, - [updated] [datetime] NOT NULL, - [locked] [bit] NOT NULL, - [latestReplyAuthor] [int] NOT NULL, - [isSpam] [bit] NULL - CONSTRAINT [PK_forumTopics] PRIMARY KEY CLUSTERED -( - [id] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) -END -GO -/****** Object: Table [dbo].[forumComments] Script Date: 05/15/2009 05:27:55 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[forumComments]') AND type in (N'U')) -BEGIN -CREATE TABLE [dbo].[forumComments]( - [id] [int] IDENTITY(1,1) NOT NULL, - [topicId] [int] NOT NULL, - [memberId] [int] NOT NULL, - [body] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [created] [datetime] NOT NULL, - [isSpam] [bit] NULL - CONSTRAINT [PK_forumComments] PRIMARY KEY CLUSTERED -( - [id] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) -) -END -GO -/****** Object: Default [DF_forumTopics_created] Script Date: 05/15/2009 05:27:55 ******/ -IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumTopics_created]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumTopics]')) -Begin -ALTER TABLE [dbo].[forumTopics] ADD CONSTRAINT [DF_forumTopics_created] DEFAULT (getdate()) FOR [created] - -End -GO -/****** Object: Default [DF_forumTopics_updated] Script Date: 05/15/2009 05:27:55 ******/ -IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumTopics_updated]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumTopics]')) -Begin -ALTER TABLE [dbo].[forumTopics] ADD CONSTRAINT [DF_forumTopics_updated] DEFAULT (getdate()) FOR [updated] - -End -GO -/****** Object: Default [DF_forumTopics_locked] Script Date: 05/15/2009 05:27:55 ******/ -IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumTopics_locked]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumTopics]')) -Begin -ALTER TABLE [dbo].[forumTopics] ADD CONSTRAINT [DF_forumTopics_locked] DEFAULT ((0)) FOR [locked] - -End -GO -/****** Object: Default [DF_forumTopics_latestReplyAuthor] Script Date: 05/15/2009 05:27:55 ******/ -IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumTopics_latestReplyAuthor]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumTopics]')) -Begin -ALTER TABLE [dbo].[forumTopics] ADD CONSTRAINT [DF_forumTopics_latestReplyAuthor] DEFAULT ((0)) FOR [latestReplyAuthor] - -End -GO -/****** Object: Default [DF_forumForums_latestTopic] Script Date: 05/15/2009 05:27:55 ******/ -IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumForums_latestTopic]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumForums]')) -Begin -ALTER TABLE [dbo].[forumForums] ADD CONSTRAINT [DF_forumForums_latestTopic] DEFAULT ((0)) FOR [latestTopic] - -End -GO -/****** Object: Default [DF_forumForums_latestComment] Script Date: 05/15/2009 05:27:55 ******/ -IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumForums_latestComment]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumForums]')) -Begin -ALTER TABLE [dbo].[forumForums] ADD CONSTRAINT [DF_forumForums_latestComment] DEFAULT ((0)) FOR [latestComment] - -End -GO -/****** Object: Default [DF_forumForums_totalTopics] Script Date: 05/15/2009 05:27:55 ******/ -IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumForums_totalTopics]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumForums]')) -Begin -ALTER TABLE [dbo].[forumForums] ADD CONSTRAINT [DF_forumForums_totalTopics] DEFAULT ((0)) FOR [totalTopics] - -End -GO -/****** Object: Default [DF_forumForums_totalComments] Script Date: 05/15/2009 05:27:55 ******/ -IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumForums_totalComments]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumForums]')) -Begin -ALTER TABLE [dbo].[forumForums] ADD CONSTRAINT [DF_forumForums_totalComments] DEFAULT ((0)) FOR [totalComments] - -End -GO -/****** Object: Default [DF_forumForums_latestAuthor] Script Date: 05/15/2009 05:27:55 ******/ -IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumForums_latestAuthor]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumForums]')) -Begin -ALTER TABLE [dbo].[forumForums] ADD CONSTRAINT [DF_forumForums_latestAuthor] DEFAULT ((0)) FOR [latestAuthor] - -End -GO -/****** Object: Default [DF_forumForums_latestPostDate] Script Date: 05/15/2009 05:27:55 ******/ -IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumForums_latestPostDate]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumForums]')) -Begin -ALTER TABLE [dbo].[forumForums] ADD CONSTRAINT [DF_forumForums_latestPostDate] DEFAULT (getdate()) FOR [latestPostDate] - -End -GO -/****** Object: Default [DF_forumForums_sortOrder] Script Date: 05/15/2009 05:27:55 ******/ -IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumForums_sortOrder]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumForums]')) -Begin -ALTER TABLE [dbo].[forumForums] ADD CONSTRAINT [DF_forumForums_sortOrder] DEFAULT ((0)) FOR [sortOrder] - -End -GO -/****** Object: Default [DF_forumComments_created] Script Date: 05/15/2009 05:27:55 ******/ -IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumComments_created]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumComments]')) -Begin -ALTER TABLE [dbo].[forumComments] ADD CONSTRAINT [DF_forumComments_created] DEFAULT (getdate()) FOR [created] - -End -GO -/****** Object: Default [DF_umbracoNode_trashed] Script Date: 05/15/2009 05:27:55 ******/ -IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_umbracoNode_trashed]') AND parent_object_id = OBJECT_ID(N'[dbo].[umbracoNode]')) -Begin -ALTER TABLE [dbo].[umbracoNode] ADD CONSTRAINT [DF_umbracoNode_trashed] DEFAULT ((0)) FOR [trashed] - -End -GO -/****** Object: Default [DF_umbracoNode_createDate] Script Date: 05/15/2009 05:27:55 ******/ -IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_umbracoNode_createDate]') AND parent_object_id = OBJECT_ID(N'[dbo].[umbracoNode]')) -Begin -ALTER TABLE [dbo].[umbracoNode] ADD CONSTRAINT [DF_umbracoNode_createDate] DEFAULT (getdate()) FOR [createDate] - -End -GO -/****** Object: ForeignKey [FK_forumTopics_umbracoNode1] Script Date: 05/15/2009 05:27:55 ******/ -IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_forumTopics_umbracoNode1]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumTopics]')) -ALTER TABLE [dbo].[forumTopics] WITH CHECK ADD CONSTRAINT [FK_forumTopics_umbracoNode1] FOREIGN KEY([parentId]) -REFERENCES [dbo].[umbracoNode] ([id]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[forumTopics] CHECK CONSTRAINT [FK_forumTopics_umbracoNode1] -GO -/****** Object: ForeignKey [FK_forumComments_forumTopics] Script Date: 05/15/2009 05:27:55 ******/ -IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_forumComments_forumTopics]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumComments]')) -ALTER TABLE [dbo].[forumComments] WITH CHECK ADD CONSTRAINT [FK_forumComments_forumTopics] FOREIGN KEY([topicId]) -REFERENCES [dbo].[forumTopics] ([id]) -ON DELETE CASCADE -GO -ALTER TABLE [dbo].[forumComments] CHECK CONSTRAINT [FK_forumComments_forumTopics] -GO -/****** Object: ForeignKey [FK_umbracoNode_umbracoNode] Script Date: 05/15/2009 05:27:55 ******/ -IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_umbracoNode_umbracoNode]') AND parent_object_id = OBJECT_ID(N'[dbo].[umbracoNode]')) -ALTER TABLE [dbo].[umbracoNode] WITH CHECK ADD CONSTRAINT [FK_umbracoNode_umbracoNode] FOREIGN KEY([parentID]) -REFERENCES [dbo].[umbracoNode] ([id]) -GO -ALTER TABLE [dbo].[umbracoNode] CHECK CONSTRAINT [FK_umbracoNode_umbracoNode] -GO -CREATE TABLE [dbo].[cmsTagToTopic]( - [id] [int] IDENTITY(1,1) NOT NULL, - [tagId] [int] NOT NULL, - [topicId] [int] NOT NULL, - [weight] [float] NOT NULL, - CONSTRAINT [PK_cmsTagToTopic] PRIMARY KEY CLUSTERED -( - [id] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] +/****** Object: Table [dbo].[umbracoNode] Script Date: 05/15/2009 05:27:55 ******/ +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[umbracoNode]') AND type in (N'U')) +BEGIN +CREATE TABLE [dbo].[umbracoNode]( + [id] [int] IDENTITY(1,1) NOT NULL, + [trashed] [bit] NOT NULL, + [parentID] [int] NOT NULL, + [nodeUser] [int] NULL, + [level] [smallint] NOT NULL, + [path] [nvarchar](150) COLLATE Danish_Norwegian_CI_AS NOT NULL, + [sortOrder] [int] NOT NULL, + [uniqueID] [uniqueidentifier] NULL, + [text] [nvarchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [nodeObjectType] [uniqueidentifier] NULL, + [createDate] [datetime] NOT NULL, + CONSTRAINT [PK_structure] PRIMARY KEY CLUSTERED +( + [id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) +END +GO +IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[umbracoNode]') AND name = N'IX_umbracoNodeObjectType') +CREATE NONCLUSTERED INDEX [IX_umbracoNodeObjectType] ON [dbo].[umbracoNode] +( + [nodeObjectType] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +GO +IF NOT EXISTS (SELECT * FROM sys.indexes WHERE object_id = OBJECT_ID(N'[dbo].[umbracoNode]') AND name = N'IX_umbracoNodeParentId') +CREATE NONCLUSTERED INDEX [IX_umbracoNodeParentId] ON [dbo].[umbracoNode] +( + [parentID] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +GO +/****** Object: Table [dbo].[forumForums] Script Date: 05/15/2009 05:27:55 ******/ +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[forumForums]') AND type in (N'U')) +BEGIN +CREATE TABLE [dbo].[forumForums]( + [id] [int] NOT NULL, + [latestTopic] [int] NOT NULL, + [latestComment] [int] NOT NULL, + [totalTopics] [int] NOT NULL, + [totalComments] [int] NOT NULL, + [latestAuthor] [int] NOT NULL, + [latestPostDate] [datetime] NOT NULL, + [sortOrder] [int] NOT NULL, + [parentId] [int] NOT NULL, + CONSTRAINT [PK_forumForums] PRIMARY KEY CLUSTERED +( + [id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) +END +GO +/****** Object: Table [dbo].[forumTopics] Script Date: 05/15/2009 05:27:55 ******/ +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[forumTopics]') AND type in (N'U')) +BEGIN +CREATE TABLE [dbo].[forumTopics]( + [id] [int] IDENTITY(1,1) NOT NULL, + [parentId] [int] NOT NULL, + [memberId] [int] NOT NULL, + [title] [nvarchar](70) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [body] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [created] [datetime] NOT NULL, + [updated] [datetime] NOT NULL, + [locked] [bit] NOT NULL, + [latestReplyAuthor] [int] NOT NULL, + [isSpam] [bit] NULL + CONSTRAINT [PK_forumTopics] PRIMARY KEY CLUSTERED +( + [id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) +END +GO +/****** Object: Table [dbo].[forumComments] Script Date: 05/15/2009 05:27:55 ******/ +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO +IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[forumComments]') AND type in (N'U')) +BEGIN +CREATE TABLE [dbo].[forumComments]( + [id] [int] IDENTITY(1,1) NOT NULL, + [topicId] [int] NOT NULL, + [memberId] [int] NOT NULL, + [body] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [created] [datetime] NOT NULL, + [isSpam] [bit] NULL + CONSTRAINT [PK_forumComments] PRIMARY KEY CLUSTERED +( + [id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +) +END +GO +/****** Object: Default [DF_forumTopics_created] Script Date: 05/15/2009 05:27:55 ******/ +IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumTopics_created]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumTopics]')) +Begin +ALTER TABLE [dbo].[forumTopics] ADD CONSTRAINT [DF_forumTopics_created] DEFAULT (getdate()) FOR [created] + +End +GO +/****** Object: Default [DF_forumTopics_updated] Script Date: 05/15/2009 05:27:55 ******/ +IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumTopics_updated]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumTopics]')) +Begin +ALTER TABLE [dbo].[forumTopics] ADD CONSTRAINT [DF_forumTopics_updated] DEFAULT (getdate()) FOR [updated] + +End +GO +/****** Object: Default [DF_forumTopics_locked] Script Date: 05/15/2009 05:27:55 ******/ +IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumTopics_locked]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumTopics]')) +Begin +ALTER TABLE [dbo].[forumTopics] ADD CONSTRAINT [DF_forumTopics_locked] DEFAULT ((0)) FOR [locked] + +End +GO +/****** Object: Default [DF_forumTopics_latestReplyAuthor] Script Date: 05/15/2009 05:27:55 ******/ +IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumTopics_latestReplyAuthor]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumTopics]')) +Begin +ALTER TABLE [dbo].[forumTopics] ADD CONSTRAINT [DF_forumTopics_latestReplyAuthor] DEFAULT ((0)) FOR [latestReplyAuthor] + +End +GO +/****** Object: Default [DF_forumForums_latestTopic] Script Date: 05/15/2009 05:27:55 ******/ +IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumForums_latestTopic]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumForums]')) +Begin +ALTER TABLE [dbo].[forumForums] ADD CONSTRAINT [DF_forumForums_latestTopic] DEFAULT ((0)) FOR [latestTopic] + +End +GO +/****** Object: Default [DF_forumForums_latestComment] Script Date: 05/15/2009 05:27:55 ******/ +IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumForums_latestComment]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumForums]')) +Begin +ALTER TABLE [dbo].[forumForums] ADD CONSTRAINT [DF_forumForums_latestComment] DEFAULT ((0)) FOR [latestComment] + +End +GO +/****** Object: Default [DF_forumForums_totalTopics] Script Date: 05/15/2009 05:27:55 ******/ +IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumForums_totalTopics]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumForums]')) +Begin +ALTER TABLE [dbo].[forumForums] ADD CONSTRAINT [DF_forumForums_totalTopics] DEFAULT ((0)) FOR [totalTopics] + +End +GO +/****** Object: Default [DF_forumForums_totalComments] Script Date: 05/15/2009 05:27:55 ******/ +IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumForums_totalComments]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumForums]')) +Begin +ALTER TABLE [dbo].[forumForums] ADD CONSTRAINT [DF_forumForums_totalComments] DEFAULT ((0)) FOR [totalComments] + +End +GO +/****** Object: Default [DF_forumForums_latestAuthor] Script Date: 05/15/2009 05:27:55 ******/ +IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumForums_latestAuthor]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumForums]')) +Begin +ALTER TABLE [dbo].[forumForums] ADD CONSTRAINT [DF_forumForums_latestAuthor] DEFAULT ((0)) FOR [latestAuthor] + +End +GO +/****** Object: Default [DF_forumForums_latestPostDate] Script Date: 05/15/2009 05:27:55 ******/ +IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumForums_latestPostDate]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumForums]')) +Begin +ALTER TABLE [dbo].[forumForums] ADD CONSTRAINT [DF_forumForums_latestPostDate] DEFAULT (getdate()) FOR [latestPostDate] + +End +GO +/****** Object: Default [DF_forumForums_sortOrder] Script Date: 05/15/2009 05:27:55 ******/ +IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumForums_sortOrder]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumForums]')) +Begin +ALTER TABLE [dbo].[forumForums] ADD CONSTRAINT [DF_forumForums_sortOrder] DEFAULT ((0)) FOR [sortOrder] + +End +GO +/****** Object: Default [DF_forumComments_created] Script Date: 05/15/2009 05:27:55 ******/ +IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_forumComments_created]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumComments]')) +Begin +ALTER TABLE [dbo].[forumComments] ADD CONSTRAINT [DF_forumComments_created] DEFAULT (getdate()) FOR [created] + +End +GO +/****** Object: Default [DF_umbracoNode_trashed] Script Date: 05/15/2009 05:27:55 ******/ +IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_umbracoNode_trashed]') AND parent_object_id = OBJECT_ID(N'[dbo].[umbracoNode]')) +Begin +ALTER TABLE [dbo].[umbracoNode] ADD CONSTRAINT [DF_umbracoNode_trashed] DEFAULT ((0)) FOR [trashed] + +End +GO +/****** Object: Default [DF_umbracoNode_createDate] Script Date: 05/15/2009 05:27:55 ******/ +IF Not EXISTS (SELECT * FROM sys.default_constraints WHERE object_id = OBJECT_ID(N'[dbo].[DF_umbracoNode_createDate]') AND parent_object_id = OBJECT_ID(N'[dbo].[umbracoNode]')) +Begin +ALTER TABLE [dbo].[umbracoNode] ADD CONSTRAINT [DF_umbracoNode_createDate] DEFAULT (getdate()) FOR [createDate] + +End +GO +/****** Object: ForeignKey [FK_forumTopics_umbracoNode1] Script Date: 05/15/2009 05:27:55 ******/ +IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_forumTopics_umbracoNode1]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumTopics]')) +ALTER TABLE [dbo].[forumTopics] WITH CHECK ADD CONSTRAINT [FK_forumTopics_umbracoNode1] FOREIGN KEY([parentId]) +REFERENCES [dbo].[umbracoNode] ([id]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[forumTopics] CHECK CONSTRAINT [FK_forumTopics_umbracoNode1] +GO +/****** Object: ForeignKey [FK_forumComments_forumTopics] Script Date: 05/15/2009 05:27:55 ******/ +IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_forumComments_forumTopics]') AND parent_object_id = OBJECT_ID(N'[dbo].[forumComments]')) +ALTER TABLE [dbo].[forumComments] WITH CHECK ADD CONSTRAINT [FK_forumComments_forumTopics] FOREIGN KEY([topicId]) +REFERENCES [dbo].[forumTopics] ([id]) +ON DELETE CASCADE +GO +ALTER TABLE [dbo].[forumComments] CHECK CONSTRAINT [FK_forumComments_forumTopics] +GO +/****** Object: ForeignKey [FK_umbracoNode_umbracoNode] Script Date: 05/15/2009 05:27:55 ******/ +IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_umbracoNode_umbracoNode]') AND parent_object_id = OBJECT_ID(N'[dbo].[umbracoNode]')) +ALTER TABLE [dbo].[umbracoNode] WITH CHECK ADD CONSTRAINT [FK_umbracoNode_umbracoNode] FOREIGN KEY([parentID]) +REFERENCES [dbo].[umbracoNode] ([id]) +GO +ALTER TABLE [dbo].[umbracoNode] CHECK CONSTRAINT [FK_umbracoNode_umbracoNode] +GO +CREATE TABLE [dbo].[cmsTagToTopic]( + [id] [int] IDENTITY(1,1) NOT NULL, + [tagId] [int] NOT NULL, + [topicId] [int] NOT NULL, + [weight] [float] NOT NULL, + CONSTRAINT [PK_cmsTagToTopic] PRIMARY KEY CLUSTERED +( + [id] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] GO \ No newline at end of file diff --git a/OurUmbraco/OurUmbraco.csproj b/OurUmbraco/OurUmbraco.csproj index f804ac40..c4d1dcfb 100644 --- a/OurUmbraco/OurUmbraco.csproj +++ b/OurUmbraco/OurUmbraco.csproj @@ -109,6 +109,10 @@ ..\packages\MarkdownDeep.NET.1.5\lib\.NetFramework 3.5\MarkdownDeep.dll True + + ..\packages\MarkdownSharp.1.13.0.0\lib\35\MarkdownSharp.dll + True + ..\packages\UmbracoCms.Core.7.2.8-build103\lib\Microsoft.ApplicationBlocks.Data.dll True @@ -157,6 +161,7 @@ True + @@ -261,6 +266,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -316,6 +346,7 @@ + @@ -327,7 +358,6 @@ - diff --git a/OurUmbraco/Release/Import.cs b/OurUmbraco/Release/Import.cs index aad22988..9c83d9bf 100644 --- a/OurUmbraco/Release/Import.cs +++ b/OurUmbraco/Release/Import.cs @@ -13,6 +13,7 @@ using System.Web.Hosting; using System.Web.Mvc; using System.Web.Script.Serialization; using Newtonsoft.Json; +using OurUmbraco.Release.Controllers; using OurUmbraco.Release.Models; using RestSharp; using umbraco.NodeFactory; diff --git a/OurUmbraco/packages.config b/OurUmbraco/packages.config index 48ebecd5..8a1459a7 100644 --- a/OurUmbraco/packages.config +++ b/OurUmbraco/packages.config @@ -11,6 +11,7 @@ + diff --git a/our.umbraco.org.sln b/our.umbraco.org.sln index 518c10a3..6a80db27 100644 --- a/our.umbraco.org.sln +++ b/our.umbraco.org.sln @@ -11,8 +11,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution our.umbraco.org.vsmdi = our.umbraco.org.vsmdi EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "uForum", "uForum\uForum.csproj", "{547C2D0D-1B55-493B-AE0B-E031A5B8EE77}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "our.umbraco.org", "our.umbraco.org\our.umbraco.org.csproj", "{A625544F-660A-4C01-BA49-1B467D0322D9}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Notification", "Notification\Notification.csproj", "{80E5F59D-A7A0-4CEE-AEB6-6C626C44B2B2}" @@ -50,16 +48,6 @@ Global {911907FB-3B9D-4E5F-9A45-16700A451A54}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {911907FB-3B9D-4E5F-9A45-16700A451A54}.Release|Mixed Platforms.Build.0 = Release|Any CPU {911907FB-3B9D-4E5F-9A45-16700A451A54}.Release|x86.ActiveCfg = Release|Any CPU - {547C2D0D-1B55-493B-AE0B-E031A5B8EE77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {547C2D0D-1B55-493B-AE0B-E031A5B8EE77}.Debug|Any CPU.Build.0 = Debug|Any CPU - {547C2D0D-1B55-493B-AE0B-E031A5B8EE77}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {547C2D0D-1B55-493B-AE0B-E031A5B8EE77}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {547C2D0D-1B55-493B-AE0B-E031A5B8EE77}.Debug|x86.ActiveCfg = Debug|Any CPU - {547C2D0D-1B55-493B-AE0B-E031A5B8EE77}.Release|Any CPU.ActiveCfg = Release|Any CPU - {547C2D0D-1B55-493B-AE0B-E031A5B8EE77}.Release|Any CPU.Build.0 = Release|Any CPU - {547C2D0D-1B55-493B-AE0B-E031A5B8EE77}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {547C2D0D-1B55-493B-AE0B-E031A5B8EE77}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {547C2D0D-1B55-493B-AE0B-E031A5B8EE77}.Release|x86.ActiveCfg = Release|Any CPU {A625544F-660A-4C01-BA49-1B467D0322D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A625544F-660A-4C01-BA49-1B467D0322D9}.Debug|Any CPU.Build.0 = Debug|Any CPU {A625544F-660A-4C01-BA49-1B467D0322D9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU diff --git a/our.umbraco.org/Api/SearchController.cs b/our.umbraco.org/Api/SearchController.cs index 94ab957a..648a124b 100644 --- a/our.umbraco.org/Api/SearchController.cs +++ b/our.umbraco.org/Api/SearchController.cs @@ -9,8 +9,7 @@ using System.Threading.Tasks; using Examine.SearchCriteria; using Lucene.Net.Documents; using our.Models; -using uForum; -using uForum.Extensions; +using OurUmbraco.Forum.Extensions; using Umbraco.Web.WebApi; namespace our.Api diff --git a/our.umbraco.org/CustomHandlers/CommentVote.cs b/our.umbraco.org/CustomHandlers/CommentVote.cs index b2b61623..3ade656a 100644 --- a/our.umbraco.org/CustomHandlers/CommentVote.cs +++ b/our.umbraco.org/CustomHandlers/CommentVote.cs @@ -1,7 +1,7 @@ using System; +using OurUmbraco.Forum.Services; using OurUmbraco.Powers.BusinessLogic; using OurUmbraco.Powers.Library; -using uForum.Services; using Umbraco.Core; using Action = OurUmbraco.Powers.BusinessLogic.Action; diff --git a/our.umbraco.org/CustomHandlers/ForumIndexer.cs b/our.umbraco.org/CustomHandlers/ForumIndexer.cs index d84059a7..97ca83b3 100644 --- a/our.umbraco.org/CustomHandlers/ForumIndexer.cs +++ b/our.umbraco.org/CustomHandlers/ForumIndexer.cs @@ -2,6 +2,8 @@ using Examine.LuceneEngine; using Examine.LuceneEngine.Providers; using our.Examine; +using OurUmbraco.Forum; +using OurUmbraco.Forum.Services; using Umbraco.Core; //WB Added @@ -13,19 +15,19 @@ namespace our.CustomHandlers protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext) { - uForum.Services.TopicService.Created += TopicService_Updated; - uForum.Services.TopicService.Updated += TopicService_Updated; - uForum.Services.TopicService.Deleting += TopicService_Deleted; + TopicService.Created += TopicService_Updated; + TopicService.Updated += TopicService_Updated; + TopicService.Deleting += TopicService_Deleted; } - void TopicService_Deleted(object sender, uForum.TopicEventArgs e) + void TopicService_Deleted(object sender, TopicEventArgs e) { var indexer = (SimpleDataIndexer)ExamineManager.Instance.IndexProviderCollection["ForumIndexer"]; indexer.DeleteFromIndex(e.Topic.Id.ToString()); } - void TopicService_Updated(object sender, uForum.TopicEventArgs e) + void TopicService_Updated(object sender, TopicEventArgs e) { var indexer = (SimpleDataIndexer)ExamineManager.Instance.IndexProviderCollection["ForumIndexer"]; var dataSet = ((ForumDataService)indexer.DataService).CreateNewDocument(e.Topic.Id); diff --git a/our.umbraco.org/CustomHandlers/ForumPostsCounter.cs b/our.umbraco.org/CustomHandlers/ForumPostsCounter.cs index b5f14e25..114a7d6d 100644 --- a/our.umbraco.org/CustomHandlers/ForumPostsCounter.cs +++ b/our.umbraco.org/CustomHandlers/ForumPostsCounter.cs @@ -1,7 +1,7 @@ -using OurUmbraco.Powers.BusinessLogic; -using uForum; -using uForum.Extensions; -using uForum.Services; +using OurUmbraco.Forum; +using OurUmbraco.Forum.Extensions; +using OurUmbraco.Forum.Services; +using OurUmbraco.Powers.BusinessLogic; using Umbraco.Core; using Umbraco.Web; @@ -18,7 +18,7 @@ namespace our.CustomHandlers { CommentService.Created += CommentService_Created; } - void CommentService_Created(object sender, uForum.CommentEventArgs e) + void CommentService_Created(object sender, CommentEventArgs e) { if (e.Comment != null && e.Comment.MemberId > 0) { @@ -32,7 +32,7 @@ namespace our.CustomHandlers { } } - void TopicService_Created(object sender, uForum.TopicEventArgs e) + void TopicService_Created(object sender, TopicEventArgs e) { if (e.Topic != null && e.Topic.MemberId > 0) { diff --git a/our.umbraco.org/CustomHandlers/TopicVote.cs b/our.umbraco.org/CustomHandlers/TopicVote.cs index d6441234..bad857a0 100644 --- a/our.umbraco.org/CustomHandlers/TopicVote.cs +++ b/our.umbraco.org/CustomHandlers/TopicVote.cs @@ -1,9 +1,9 @@ using System; using System.Linq; using System.Web.Security; +using OurUmbraco.Forum.Services; using OurUmbraco.Powers.BusinessLogic; using OurUmbraco.Powers.Library; -using uForum.Services; using Umbraco.Core; using Action = OurUmbraco.Powers.BusinessLogic.Action; diff --git a/our.umbraco.org/Examine/ForumDataService.cs b/our.umbraco.org/Examine/ForumDataService.cs index 84938872..244b8898 100644 --- a/our.umbraco.org/Examine/ForumDataService.cs +++ b/our.umbraco.org/Examine/ForumDataService.cs @@ -4,11 +4,9 @@ using System.Linq; using System.Text; using Examine; using Examine.LuceneEngine; -using uForum.Models; -using uForum.Services; +using OurUmbraco.Forum.Models; +using OurUmbraco.Forum.Services; //WB Added - -using uForum; using Umbraco.Core; namespace our.Examine diff --git a/our.umbraco.org/our.umbraco.org.csproj b/our.umbraco.org/our.umbraco.org.csproj index ccabdb4b..81047c8c 100644 --- a/our.umbraco.org/our.umbraco.org.csproj +++ b/our.umbraco.org/our.umbraco.org.csproj @@ -422,10 +422,6 @@ {a8e5c936-ecab-45b3-bfda-d12f680eb2a6} OurUmbraco - - {547C2D0D-1B55-493B-AE0B-E031A5B8EE77} - uForum - diff --git a/our.umbraco.org/usercontrols/ProjectForums.ascx.cs b/our.umbraco.org/usercontrols/ProjectForums.ascx.cs index cc5c9f98..0a655dc5 100644 --- a/our.umbraco.org/usercontrols/ProjectForums.ascx.cs +++ b/our.umbraco.org/usercontrols/ProjectForums.ascx.cs @@ -4,8 +4,8 @@ using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; -using uForum.Models; -using uForum.Services; +using OurUmbraco.Forum.Models; +using OurUmbraco.Forum.Services; using umbraco.cms.businesslogic.member; using umbraco.cms.businesslogic.web; using umbraco.presentation.nodeFactory; diff --git a/our.umbraco.org/usercontrols/Signup.ascx.cs b/our.umbraco.org/usercontrols/Signup.ascx.cs index 46728ed6..63a6bb42 100644 --- a/our.umbraco.org/usercontrols/Signup.ascx.cs +++ b/our.umbraco.org/usercontrols/Signup.ascx.cs @@ -89,7 +89,7 @@ namespace our.usercontrols memberService.Save(currentMember); memberService.SavePassword(currentMember, tb_password.Text); - uForum.Library.Utils.CheckForSpam(currentMember); + OurUmbraco.Forum.Library.Utils.CheckForSpam(currentMember); Response.Redirect(library.NiceUrl(NextPage)); } @@ -101,7 +101,7 @@ namespace our.usercontrols if (member == null) { // If spammer then this will stop account creation - var spamResult = uForum.Library.Utils.CheckForSpam(tb_email.Text, tb_name.Text, true); + var spamResult = OurUmbraco.Forum.Library.Utils.CheckForSpam(tb_email.Text, tb_name.Text, true); if (spamResult != null && spamResult.Blocked) return; @@ -140,12 +140,12 @@ namespace our.usercontrols spamResult.MemberId = member.Id; memberService.AssignRole(member.Id, "potentialspam"); - uForum.Library.Utils.SendPotentialSpamMemberMail(spamResult); + OurUmbraco.Forum.Library.Utils.SendPotentialSpamMemberMail(spamResult); } else { - uForum.Library.Utils.SendActivationMail(member); - uForum.Library.Utils.SendMemberSignupMail(member); + OurUmbraco.Forum.Library.Utils.SendActivationMail(member); + OurUmbraco.Forum.Library.Utils.SendMemberSignupMail(member); } memberService.AssignRole(member.Id, "notactivated"); diff --git a/uForum/uForum.csproj b/uForum/uForum.csproj index 929efa9c..da175f83 100644 --- a/uForum/uForum.csproj +++ b/uForum/uForum.csproj @@ -247,39 +247,11 @@ - - - - - - - - - - - - Code - - - - - - - - - - - - - - - -