diff --git a/src/Umbraco.Core/Services/ContentService.cs b/src/Umbraco.Core/Services/ContentService.cs index 438897cec8..b1603ed361 100644 --- a/src/Umbraco.Core/Services/ContentService.cs +++ b/src/Umbraco.Core/Services/ContentService.cs @@ -60,27 +60,8 @@ namespace Umbraco.Core.Services /// public IContent CreateContent(string name, int parentId, string contentTypeAlias, int userId = 0) { - IContentType contentType = null; - IContent content = null; - - var uow = _uowProvider.GetUnitOfWork(); - using (var repository = _repositoryFactory.CreateContentTypeRepository(uow)) - { - var query = Query.Builder.Where(x => x.Alias == contentTypeAlias); - var contentTypes = repository.GetByQuery(query); - - if (!contentTypes.Any()) - throw new Exception(string.Format("No ContentType matching the passed in Alias: '{0}' was found", - contentTypeAlias)); - - contentType = contentTypes.First(); - - if (contentType == null) - throw new Exception(string.Format("ContentType matching the passed in Alias: '{0}' was null", - contentTypeAlias)); - } - - content = new Content(name, parentId, contentType); + IContentType contentType = FindContentTypeByAlias(contentTypeAlias); + IContent content = new Content(name, parentId, contentType); if (Creating.IsRaisedEventCancelled(new NewEventArgs(content, contentTypeAlias, parentId), this)) return content; @@ -106,27 +87,8 @@ namespace Umbraco.Core.Services /// public IContent CreateContent(string name, IContent parent, string contentTypeAlias, int userId = 0) { - IContentType contentType = null; - IContent content = null; - - var uow = _uowProvider.GetUnitOfWork(); - using (var repository = _repositoryFactory.CreateContentTypeRepository(uow)) - { - var query = Query.Builder.Where(x => x.Alias == contentTypeAlias); - var contentTypes = repository.GetByQuery(query); - - if (!contentTypes.Any()) - throw new Exception(string.Format("No ContentType matching the passed in Alias: '{0}' was found", - contentTypeAlias)); - - contentType = contentTypes.First(); - - if (contentType == null) - throw new Exception(string.Format("ContentType matching the passed in Alias: '{0}' was null", - contentTypeAlias)); - } - - content = new Content(name, parent, contentType); + IContentType contentType = FindContentTypeByAlias(contentTypeAlias); + IContent content = new Content(name, parent, contentType); if (Creating.IsRaisedEventCancelled(new NewEventArgs(content, contentTypeAlias, parent), this)) return content; @@ -1002,6 +964,166 @@ namespace Umbraco.Core.Services return content; } + /// + /// Imports and saves package xml as + /// + /// Xml to import + /// An enumrable list of generated content + public IEnumerable Import(XElement element) + { + var name = element.Name.LocalName; + if (name.Equals("DocumentSet")) + { + //This is a regular deep-structured import + var roots = from doc in element.Elements() + where (string) doc.Attribute("isDoc") == "" + select doc; + + var contents = ParseRootXml(roots); + Save(contents); + + return contents; + } + + var attribute = element.Attribute("isDoc"); + if (attribute != null) + { + //This is a single doc import + var elements = new List { element }; + var contents = ParseRootXml(elements); + Save(contents); + + return contents; + } + + throw new ArgumentException( + "The passed in XElement is not valid! It does not contain a root element called "+ + "'DocumentSet' (for structured imports) nor is the first element a Document (for single document import)."); + } + + private IEnumerable ParseRootXml(IEnumerable roots) + { + var contentTypes = new Dictionary(); + var contents = new List(); + foreach (var root in roots) + { + bool isLegacySchema = root.Name.LocalName.ToLowerInvariant().Equals("node"); + string contentTypeAlias = isLegacySchema + ? root.Attribute("nodeTypeAlias").Value + : root.Name.LocalName; + + if (contentTypes.ContainsKey(contentTypeAlias) == false) + { + var contentType = FindContentTypeByAlias(contentTypeAlias); + contentTypes.Add(contentTypeAlias, contentType); + } + + var content = CreateContentFromXml(root, contentTypes[contentTypeAlias], null, -1, isLegacySchema); + contents.Add(content); + + var children = from child in root.Elements() + where (string)child.Attribute("isDoc") == "" + select child; + if(children.Any()) + contents.AddRange(CreateContentFromXml(children, content, contentTypes, isLegacySchema)); + } + return contents; + } + + private IEnumerable CreateContentFromXml(IEnumerable children, IContent parent, Dictionary contentTypes, bool isLegacySchema) + { + var list = new List(); + foreach (var child in children) + { + string contentTypeAlias = isLegacySchema + ? child.Attribute("nodeTypeAlias").Value + : child.Name.LocalName; + + if (contentTypes.ContainsKey(contentTypeAlias) == false) + { + var contentType = FindContentTypeByAlias(contentTypeAlias); + contentTypes.Add(contentTypeAlias, contentType); + } + + //Create and add the child to the list + var content = CreateContentFromXml(child, contentTypes[contentTypeAlias], parent, default(int), isLegacySchema); + list.Add(content); + + //Recursive call + XElement child1 = child; + var grandChildren = from grand in child1.Elements() + where (string) grand.Attribute("isDoc") == "" + select grand; + + if (grandChildren.Any()) + list.AddRange(CreateContentFromXml(grandChildren, content, contentTypes, isLegacySchema)); + } + + return list; + } + + private IContent CreateContentFromXml(XElement element, IContentType contentType, IContent parent, int parentId, bool isLegacySchema) + { + var id = element.Attribute("id").Value; + var level = element.Attribute("level").Value; + var sortOrder = element.Attribute("sortOrder").Value; + var nodeName = element.Attribute("nodeName").Value; + var path = element.Attribute("path").Value; + var template = element.Attribute("template").Value; + + var properties = from property in element.Elements() + where property.Attribute("isDoc") == null + select property; + + IContent content = parent == null + ? new Content(nodeName, parentId, contentType) + { + Level = int.Parse(level), + SortOrder = int.Parse(sortOrder) + } + : new Content(nodeName, parent, contentType) + { + Level = int.Parse(level), + SortOrder = int.Parse(sortOrder) + }; + + foreach (var property in properties) + { + string propertyTypeAlias = isLegacySchema ? property.Attribute("alias").Value : property.Name.LocalName; + if(content.HasProperty(propertyTypeAlias)) + content.SetValue(propertyTypeAlias, property.Value); + } + + return content; + } + + private IContentType FindContentTypeByAlias(string contentTypeAlias) + { + using (var repository = _repositoryFactory.CreateContentTypeRepository(_uowProvider.GetUnitOfWork())) + { + var query = Query.Builder.Where(x => x.Alias == contentTypeAlias); + var types = repository.GetByQuery(query); + + if (!types.Any()) + throw new Exception( + string.Format("No ContentType matching the passed in Alias: '{0}' was found", + contentTypeAlias)); + + var contentType = types.First(); + + if (contentType == null) + throw new Exception(string.Format("ContentType matching the passed in Alias: '{0}' was null", + contentTypeAlias)); + + return contentType; + } + } + + public XElement Export(IContent content, bool deep = false) + { + throw new NotImplementedException(); + } + #region Internal Methods /// /// Internal method to Re-Publishes all Content for legacy purposes. diff --git a/src/Umbraco.Core/Services/ContentTypeService.cs b/src/Umbraco.Core/Services/ContentTypeService.cs index 75335cac0e..b7d51d46f8 100644 --- a/src/Umbraco.Core/Services/ContentTypeService.cs +++ b/src/Umbraco.Core/Services/ContentTypeService.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; +using System.Xml.Linq; using Umbraco.Core.Auditing; using Umbraco.Core.Configuration; using Umbraco.Core.Events; @@ -460,6 +461,60 @@ namespace Umbraco.Core.Services return dtd.ToString(); } + /// + /// Imports and saves package xml as + /// + /// Xml to import + /// An enumrable list of generated ContentTypes + public List Import(XElement element) + { + var name = element.Name.LocalName; + if (name.Equals("DocumentTypes") == false) + { + throw new ArgumentException("The passed in XElement is not valid! It does not contain a root element called 'DocumentTypes'."); + } + + var list = new List(); + var documentTypes = from doc in element.Elements("DocumentType") select doc; + foreach (var documentType in documentTypes) + { + //TODO Check if the ContentType already exists by looking up the alias + list.Add(CreateContentTypeFromXml(documentType)); + } + + Save(list); + return list; + } + + private IContentType CreateContentTypeFromXml(XElement documentType) + { + var infoElement = documentType.Element("Info"); + var name = infoElement.Element("Name").Value; + var alias = infoElement.Element("Alias").Value; + var masterElement = infoElement.Element("Master");//Name of the master corresponds to the parent + var icon = infoElement.Element("Icon").Value; + var thumbnail = infoElement.Element("Thumbnail").Value; + var description = infoElement.Element("Description").Value; + var allowAtRoot = infoElement.Element("AllowAtRoot").Value; + var defaultTemplate = infoElement.Element("DefaultTemplate").Value; + var allowedTemplatesElement = infoElement.Elements("AllowedTemplates"); + + var structureElement = documentType.Element("Structure"); + var genericPropertiesElement = documentType.Element("GenericProperties"); + var tabElement = documentType.Element("Tab"); + + var contentType = new ContentType(-1) + { + Alias = alias, + Name = name, + Icon = icon, + Thumbnail = thumbnail, + AllowedAsRoot = allowAtRoot.ToLowerInvariant().Equals("true"), + Description = description + }; + return contentType; + } + #region Event Handlers /// diff --git a/src/Umbraco.Core/Services/IContentService.cs b/src/Umbraco.Core/Services/IContentService.cs index 2d6871c1b3..9cc8edc5df 100644 --- a/src/Umbraco.Core/Services/IContentService.cs +++ b/src/Umbraco.Core/Services/IContentService.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Xml.Linq; using Umbraco.Core.Models; namespace Umbraco.Core.Services @@ -287,5 +288,12 @@ namespace Umbraco.Core.Services /// to check if anscestors are published /// True if the Content can be published, otherwise False bool IsPublishable(IContent content); + + /// + /// Imports and saves package xml as + /// + /// Xml to import + /// An enumrable list of generated content + IEnumerable Import(XElement element); } } \ No newline at end of file diff --git a/src/Umbraco.Core/Services/IContentTypeService.cs b/src/Umbraco.Core/Services/IContentTypeService.cs index 15ee5d949c..4be9a9b492 100644 --- a/src/Umbraco.Core/Services/IContentTypeService.cs +++ b/src/Umbraco.Core/Services/IContentTypeService.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Xml.Linq; using Umbraco.Core.Models; namespace Umbraco.Core.Services @@ -149,5 +150,12 @@ namespace Umbraco.Core.Services /// Id of the /// True if the media type has any children otherwise False bool MediaTypeHasChildren(int id); + + /// + /// Imports and saves package xml as + /// + /// Xml to import + /// An enumrable list of generated ContentTypes + List Import(XElement element); } } \ No newline at end of file diff --git a/src/Umbraco.Tests/Services/Importing/ContentImportTests.cs b/src/Umbraco.Tests/Services/Importing/ContentImportTests.cs new file mode 100644 index 0000000000..4ec48504a5 --- /dev/null +++ b/src/Umbraco.Tests/Services/Importing/ContentImportTests.cs @@ -0,0 +1,66 @@ +using System.Linq; +using System.Xml.Linq; +using NUnit.Framework; + +namespace Umbraco.Tests.Services.Importing +{ + [TestFixture, RequiresSTA] + public class ContentImportTests : BaseServiceTest + { + [SetUp] + public override void Initialize() + { + base.Initialize(); + } + + [TearDown] + public override void TearDown() + { + base.TearDown(); + } + + [Test] + public void ContentTypeService_Can_Import_Package_Xml() + { + // Arrange + string strXml = ImportResources.package; + var xml = XElement.Parse(strXml); + var element = xml.Descendants("DocumentTypes").First(); + var contentTypeService = ServiceContext.ContentTypeService; + + // Act + var contentTypes = contentTypeService.Import(element); + var numberOfDocTypes = (from doc in element.Elements("DocumentType") select doc).Count(); + + // Assert + Assert.That(contentTypes, Is.Not.Null); + Assert.That(contentTypes.Any(), Is.True); + Assert.That(contentTypes.Count(), Is.EqualTo(numberOfDocTypes)); + } + + [Test] + public void ContentService_Can_Import_Package_Xml() + { + // Arrange + string strXml = ImportResources.package; + var xml = XElement.Parse(strXml); + var docTypesElement = xml.Descendants("DocumentTypes").First(); + var element = xml.Descendants("DocumentSet").First(); + var contentService = ServiceContext.ContentService; + var contentTypeService = ServiceContext.ContentTypeService; + + // Act + var contentTypes = contentTypeService.Import(docTypesElement); + var contents = contentService.Import(element); + var numberOfDocs = (from doc in element.Descendants() + where (string) doc.Attribute("isDoc") == "" + select doc).Count(); + + // Assert + Assert.That(contents, Is.Not.Null); + Assert.That(contentTypes.Any(), Is.True); + Assert.That(contents.Any(), Is.True); + Assert.That(contents.Count(), Is.EqualTo(numberOfDocs)); + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs b/src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs new file mode 100644 index 0000000000..c46ae43bb5 --- /dev/null +++ b/src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs @@ -0,0 +1,90 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18033 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Umbraco.Tests.Services.Importing { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class ImportResources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal ImportResources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Umbraco.Tests.Services.Importing.ImportResources", typeof(ImportResources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?> + ///<umbPackage> + /// <files> + /// <file> + /// <guid>Map.cshtml</guid> + /// <orgPath>/macroScripts</orgPath> + /// <orgName>Map.cshtml</orgName> + /// </file> + /// <file> + /// <guid>AccountController.cs</guid> + /// <orgPath>/App_Code</orgPath> + /// <orgName>AccountController.cs</orgName> + /// </file> + /// <file> + /// <guid>ContactController.cs</guid> + /// <orgPath>/App_Code</orgPath> + /// <orgName>ContactController.cs</orgName> + /// </file> + /// [rest of string was truncated]";. + /// + internal static string package { + get { + return ResourceManager.GetString("package", resourceCulture); + } + } + } +} diff --git a/src/Umbraco.Tests/Services/Importing/ImportResources.resx b/src/Umbraco.Tests/Services/Importing/ImportResources.resx new file mode 100644 index 0000000000..d277ad5aaf --- /dev/null +++ b/src/Umbraco.Tests/Services/Importing/ImportResources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + package.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + \ No newline at end of file diff --git a/src/Umbraco.Tests/Services/Importing/package.xml b/src/Umbraco.Tests/Services/Importing/package.xml new file mode 100644 index 0000000000..ddf3d5e66f --- /dev/null +++ b/src/Umbraco.Tests/Services/Importing/package.xml @@ -0,0 +1,2278 @@ + + + + + Map.cshtml + /macroScripts + Map.cshtml + + + AccountController.cs + /App_Code + AccountController.cs + + + ContactController.cs + /App_Code + ContactController.cs + + + LuceneHighlightHelper.cs + /App_Code + LuceneHighlightHelper.cs + + + default.js + /scripts + default.js + + + jquery.timers.js + /scripts + jquery.timers.js + + + Creative_Founds_Square.jpg + /images + Creative_Founds_Square.jpg + + + header_bg.png + /images + header_bg.png + + + li_bg.gif + /images + li_bg.gif + + + li_white_bg.gif + /images + li_white_bg.gif + + + logo.png + /images + logo.png + + + nav_li_bg.png + /images + nav_li_bg.png + + + search_bg.png + /images + search_bg.png + + + search_btn_bg.png + /images + search_btn_bg.png + + + slider_bg.png + /images + slider_bg.png + + + twitter_square.png + /images + twitter_square.png + + + umbraco_Square.jpg + /images + umbraco_Square.jpg + + + web_applications.jpg + /images + web_applications.jpg + + + Lucene.Net.Contrib.Highlighter.dll + /bin + Lucene.Net.Contrib.Highlighter.dll + + + StandardWebsiteInstall.ascx.cs + /usercontrols + StandardWebsiteInstall.ascx.cs + + + Affiliations.cshtml + /Views/Partials + Affiliations.cshtml + + + ContactForm.cshtml + /Views/Partials + ContactForm.cshtml + + + ContentPanels.cshtml + /Views/Partials + ContentPanels.cshtml + + + LeftNavigation.cshtml + /Views/Partials + LeftNavigation.cshtml + + + LoginForm.cshtml + /Views/Partials + LoginForm.cshtml + + + dice.png + /media/1824 + dice.png + + + dice_thumb.jpg + /media/1824 + dice_thumb.jpg + + + cap.png + /media/1813 + cap.png + + + cap_thumb.jpg + /media/1813 + cap_thumb.jpg + + + chat.jpg + /media/2075 + chat.jpg + + + chat_thumb.jpg + /media/2075 + chat_thumb.jpg + + + umbraco_logo.png + /media/1477 + umbraco_logo.png + + + umbraco_logo_thumb.jpg + /media/1477 + umbraco_logo_thumb.jpg + + + StandardWebsiteInstall.ascx + /usercontrols + StandardWebsiteInstall.ascx + + + + + StandardWebsiteMVC + 2.0 + MIT license + http://our.umbraco.org/projects/starter-kits/standard-website-mvc + + 3 + 0 + 0 + + + + Chris Koiak + http://www.creativefounds.co.uk + + + + + + + + + + + Built by Creative Founds +

Web ApplicationsCreative Founds design and build first class software solutions that deliver big results. We provide ASP.NET web and mobile applications, Umbraco development service & technical consultancy.

+

www.creativefounds.co.uk

]]> +
+ + Umbraco Development +

UmbracoUmbraco the the leading ASP.NET open source CMS, under pinning over 150,000 websites. Our Certified Developers are experts in developing high performance and feature rich websites.

]]> +
+ + Contact Us +

Contact Us on TwitterWe'd love to hear how this package has helped you and how it can be improved. Get in touch on the project website or via twitter

]]> +
+ +
Standard Website MVC, Company Address, Glasgow, Postcode
+ Copyright &copy; 2012 Your Company + http://www.umbraco.org + /media/1477/umbraco_logo.png + + + + + + Standard Site for Umbraco by Koiak + + + 0 + + + About Us +

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur dictum, nisi non gravida blandit, odio nulla ultrices orci, quis blandit tortor libero vitae massa. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nulla at velit lacus.

+

Vivamus dictum, lorem vitae bold text, libero link text elit, vitae tincidunt ante nibh vitae lectus. Praesent molestie justo non mi dapibus et venenatis ante facilisis. Morbi gravida molestie cursus.

+

Sub Section

+

Aliquam at est dui. Pellentesque tortor risus, congue eget pretium ut, elementum eu velit. Phasellus tempus leo sed elit tempus vestibulum. Integer mollis arcu porta leo vulputate dignissim.

+
    +
  • List Item 1
  • +
  • List Item 2
  • +
  • List Item 3
  • +
+
    +
  1. Numbered Item 1
  2. +
  3. Numbered Item 2
  4. +
  5. Numbered Item 3
  6. +
+

In suscipit lectus vitae nibh faucibus vel lobortis est ullamcorper. Morbi risus nisl, sodales egestas placerat nec, cursus vel tellus. Vivamus aliquet sagittis pellentesque. Nulla rutrum neque nec metus mattis volutpat.

+

Vivamus egestas enim sed augue eleifend id tristique magna tempus. Nunc ullamcorper scelerisque ante quis consectetur.

+

Curabitur vel dui a enim adipiscing malesuada non quis velit.

]]> +
+ + + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>0</umbracoNaviHide> + <Standard id="1074" parentID="1073" level="3" creatorID="0" sortOrder="0" createDate="2013-02-17T09:04:41" updateDate="2013-02-17T09:04:46" nodeName="Sub Navigation 1" urlName="sub-navigation-1" path="-1,1072,1073,1074" isDoc="" nodeType="1058" creatorName="admin" writerName="admin" writerID="0" template="1053"> + <bodyText><![CDATA[]]></bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>0</umbracoNaviHide> + <Standard id="1075" parentID="1074" level="4" creatorID="0" sortOrder="0" createDate="2013-02-17T09:04:41" updateDate="2013-02-17T09:04:46" nodeName="3rd level nav 2" urlName="3rd-level-nav-2" path="-1,1072,1073,1074,1075" isDoc="" nodeType="1058" creatorName="admin" writerName="admin" writerID="0" template="1053"> + <bodyText><![CDATA[]]></bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>0</umbracoNaviHide> + </Standard> + </Standard> + <Standard id="1076" parentID="1073" level="3" creatorID="0" sortOrder="1" createDate="2013-02-17T09:04:41" updateDate="2013-02-17T09:04:46" nodeName="Sub Navigation 2" urlName="sub-navigation-2" path="-1,1072,1073,1076" isDoc="" nodeType="1058" creatorName="admin" writerName="admin" writerID="0" template="1053"> + <bodyText><![CDATA[]]></bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>0</umbracoNaviHide> + </Standard> + </Standard> + <Standard id="1077" parentID="1072" level="2" creatorID="0" sortOrder="1" createDate="2013-02-17T09:04:41" updateDate="2013-02-17T09:10:47" nodeName="News" urlName="news" path="-1,1072,1077" isDoc="" nodeType="1058" creatorName="admin" writerName="admin" writerID="0" template="1046"> + <bodyText><![CDATA[<h2>News</h2>]]></bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>0</umbracoNaviHide> + <NewsArticle id="1078" parentID="1077" level="3" creatorID="0" sortOrder="0" createDate="2013-02-17T09:04:42" updateDate="2013-02-17T09:11:22" nodeName="Article 1" urlName="article-1" path="-1,1072,1077,1078" isDoc="" nodeType="1063" creatorName="admin" writerName="admin" writerID="0" template="1053"> + <articleSummary><![CDATA[Here is an article summary, you can add as much of a description as you require.]]></articleSummary> + <articleDate>2012-11-08T00:00:00</articleDate> + <bodyText> + <![CDATA[<h2>Your first Article</h2> +<p><span><strong>Aliquam erat volutpat. Sed laoreet leo id nisi convallis sollicitudin sodales orci adipiscing. Sed a dolor ipsum. Quisque ut quam eu arcu placerat rhoncus vel et mi. Pellentesque sed est nisl.</strong> </span></p> +<p><span>Aliquam at orci justo, id pharetra augue. Aenean ut nunc ut nibh interdum scelerisque ut ac mi. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vehicula dictum lectus in interdum. Fusce pellentesque elit nec metus convallis id porttitor felis laoreet. Nunc vitae enim quam.</span></p>]]> + </bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>0</umbracoNaviHide> + </NewsArticle> + </Standard> + <Standard id="1079" parentID="1072" level="2" creatorID="0" sortOrder="2" createDate="2013-02-17T09:04:42" updateDate="2013-02-17T09:10:55" nodeName="Clients" urlName="clients" path="-1,1072,1079" isDoc="" nodeType="1058" creatorName="admin" writerName="admin" writerID="0" template="1053"> + <bodyText> + <![CDATA[<h2>Clients</h2> +<p><strong>This is a standard content page.</strong></p> +<p><span>Vestibulum malesuada aliquet ante, vitae ullamcorper felis faucibus vel. Vestibulum condimentum faucibus tellus porta ultrices. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. </span></p> +<p><span>Cras at auctor orci. Praesent facilisis erat nec odio consequat at posuere ligula pretium. Nulla eget felis id nisl volutpat pellentesque. Ut id augue id ligula placerat rutrum a nec purus. Maecenas sed lectus ac mi pellentesque luctus quis sit amet turpis. Vestibulum adipiscing convallis vestibulum. </span></p> +<p><span>Duis condimentum lectus at orci placerat vitae imperdiet lorem cursus. Duis hendrerit porta lorem, non suscipit quam consectetur vitae. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean elit augue, tincidunt nec tincidunt id, elementum vel est.</span></p>]]> + </bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>0</umbracoNaviHide> + </Standard> + <ContactForm id="1080" parentID="1072" level="2" creatorID="0" sortOrder="3" createDate="2013-02-17T09:04:42" updateDate="2013-02-17T09:04:46" nodeName="Contact Us" urlName="contact-us" path="-1,1072,1080" isDoc="" nodeType="1059" creatorName="admin" writerName="admin" writerID="0" template="1048"> + <recipientEmailAddress>chriskoiak@gmail.com</recipientEmailAddress> + <emailSubject>Standard Website Contact Form</emailSubject> + <thankYouPage>1124</thankYouPage> + <senderEmailAddress>chriskoiak@gmail.com</senderEmailAddress> + <bodyText> + <![CDATA[<h2>Contact Us</h2> +<p>Please get in touch!</p> +<?UMBRACO_MACRO macroAlias="Map" />]]> + </bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>0</umbracoNaviHide> + <Standard id="1081" parentID="1080" level="3" creatorID="0" sortOrder="0" createDate="2013-02-17T09:04:42" updateDate="2013-02-17T09:04:46" nodeName="Thank You" urlName="thank-you" path="-1,1072,1080,1081" isDoc="" nodeType="1058" creatorName="admin" writerName="admin" writerID="0" template="1053"> + <bodyText><![CDATA[<p><strong>Email sent successfully</strong></p>]]></bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>1</umbracoNaviHide> + </Standard> + </ContactForm> + <Standard id="1082" parentID="1072" level="2" creatorID="0" sortOrder="4" createDate="2013-02-17T09:04:42" updateDate="2013-02-17T09:10:47" nodeName="Search" urlName="search" path="-1,1072,1082" isDoc="" nodeType="1058" creatorName="admin" writerName="admin" writerID="0" template="1051"> + <bodyText><![CDATA[<h2>Search</h2>]]></bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>0</umbracoNaviHide> + </Standard> + <Standard id="1083" parentID="1072" level="2" creatorID="0" sortOrder="5" createDate="2013-02-17T09:04:43" updateDate="2013-02-17T09:10:47" nodeName="Sitemap" urlName="sitemap" path="-1,1072,1083" isDoc="" nodeType="1058" creatorName="admin" writerName="admin" writerID="0" template="1052"> + <bodyText> + <![CDATA[<h2>Sitemap</h2> +<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur dictum, nisi non gravida blandit, odio nulla ultrices orci, quis blandit tortor libero vitae massa.<a href="/contact-us.aspx"><br /></a></p>]]> + </bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>0</umbracoNaviHide> + </Standard> + <ClientArea id="1084" parentID="1072" level="2" creatorID="0" sortOrder="6" createDate="2013-02-17T09:04:43" updateDate="2013-02-17T09:04:46" nodeName="Client Area" urlName="client-area" path="-1,1072,1084" isDoc="" nodeType="1056" creatorName="admin" writerName="admin" writerID="0" template="1047"> + <umbracoNaviHide>0</umbracoNaviHide> + <Standard id="1085" parentID="1084" level="3" creatorID="0" sortOrder="0" createDate="2013-02-17T09:04:43" updateDate="2013-02-17T09:04:46" nodeName="Client Area 1" urlName="client-area-1" path="-1,1072,1084,1085" isDoc="" nodeType="1058" creatorName="admin" writerName="admin" writerID="0" template="1053"> + <bodyText><![CDATA[]]></bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>0</umbracoNaviHide> + <Standard id="1086" parentID="1085" level="4" creatorID="0" sortOrder="0" createDate="2013-02-17T09:04:43" updateDate="2013-02-17T09:04:46" nodeName="Page 1" urlName="page-1" path="-1,1072,1084,1085,1086" isDoc="" nodeType="1058" creatorName="admin" writerName="admin" writerID="0" template="1053"> + <bodyText><![CDATA[]]></bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>0</umbracoNaviHide> + </Standard> + </Standard> + <Standard id="1087" parentID="1084" level="3" creatorID="0" sortOrder="1" createDate="2013-02-17T09:04:43" updateDate="2013-02-17T09:04:46" nodeName="Client Area 2" urlName="client-area-2" path="-1,1072,1084,1087" isDoc="" nodeType="1058" creatorName="admin" writerName="admin" writerID="0" template="1053"> + <bodyText><![CDATA[]]></bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>0</umbracoNaviHide> + </Standard> + </ClientArea> + <Standard id="1088" parentID="1072" level="2" creatorID="0" sortOrder="7" createDate="2013-02-17T09:04:44" updateDate="2013-02-17T09:04:46" nodeName="Insufficent Access" urlName="insufficent-access" path="-1,1072,1088" isDoc="" nodeType="1058" creatorName="admin" writerName="admin" writerID="0" template="1053"> + <bodyText> + <![CDATA[<h2>Insufficent Access</h2> +<p>You have tried to access a page you do not have access to.</p>]]> + </bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>1</umbracoNaviHide> + </Standard> + <Standard id="1089" parentID="1072" level="2" creatorID="0" sortOrder="8" createDate="2013-02-17T09:04:44" updateDate="2013-02-17T09:10:47" nodeName="Login" urlName="login" path="-1,1072,1089" isDoc="" nodeType="1058" creatorName="admin" writerName="admin" writerID="0" template="1050"> + <bodyText><![CDATA[<h2>Login</h2>]]></bodyText> + <contentPanels><![CDATA[]]></contentPanels> + <title /> + <description><![CDATA[]]></description> + <keywords><![CDATA[]]></keywords> + <umbracoNaviHide>1</umbracoNaviHide> + </Standard> + <Slideshow id="1090" parentID="1072" level="2" creatorID="0" sortOrder="9" createDate="2013-02-17T09:04:44" updateDate="2013-02-17T09:04:46" nodeName="Slideshow" urlName="slideshow" path="-1,1072,1090" isDoc="" nodeType="1065" creatorName="admin" writerName="admin" writerID="0" template="0"> + <umbracoNaviHide>0</umbracoNaviHide> + <Slide id="1091" parentID="1090" level="3" creatorID="0" sortOrder="0" createDate="2013-02-17T09:04:44" updateDate="2013-02-17T09:04:46" nodeName="Purple Hat" urlName="purple-hat" path="-1,1072,1090,1091" isDoc="" nodeType="1064" creatorName="admin" writerName="admin" writerID="0" template="0"> + <mainImage>/media/1813/cap.png</mainImage> + <bodyText> + <![CDATA[<h3>Standard Website MVC</h3> +<p>Well hello! This website package demonstrates all the standard functionality of Umbraco. It's a great starting point for <span>starting point for further development or as a prototype.</span></p> +<h3>Creative Founds</h3> +<p>This package was developed by <a href="http://www.twitter.com/chriskoiak" target="_blank">Chris Koiak</a> & <a href="http://www.creativefounds.co.uk" target="_blank">Creative Founds</a>. </p>]]> + </bodyText> + <umbracoNaviHide>1</umbracoNaviHide> + </Slide> + <Slide id="1092" parentID="1090" level="3" creatorID="0" sortOrder="1" createDate="2013-02-17T09:04:44" updateDate="2013-02-17T09:04:46" nodeName="Red Dice" urlName="red-dice" path="-1,1072,1090,1092" isDoc="" nodeType="1064" creatorName="admin" writerName="admin" writerID="0" template="0"> + <mainImage>/media/1824/dice.png</mainImage> + <bodyText> + <![CDATA[<h3>Secure Client Areas</h3> +<p>Make sure you check out the secure client areas and MVC login form,</p> +<h3>Multiple Areas</h3> +<p>You can create different areas for different clients or just the functionality to suit your project.</p>]]> + </bodyText> + <umbracoNaviHide>1</umbracoNaviHide> + </Slide> + <Slide id="1093" parentID="1090" level="3" creatorID="0" sortOrder="2" createDate="2013-02-17T09:04:44" updateDate="2013-02-17T09:04:46" nodeName="Umbraco Speechbubble" urlName="umbraco-speechbubble" path="-1,1072,1090,1093" isDoc="" nodeType="1064" creatorName="admin" writerName="admin" writerID="0" template="0"> + <mainImage>/media/2075/chat.jpg</mainImage> + <bodyText> + <![CDATA[<h3>News List</h3> +<p>The news page is an example of a list of content. Use this as a starting point for building any list of any type</p> +<h3>Contact Form</h3> +<p>The contact form is 100% MVC with strongly type view models.</p>]]> + </bodyText> + <umbracoNaviHide>1</umbracoNaviHide> + </Slide> + </Slideshow> + <ContentPanels id="1094" parentID="1072" level="2" creatorID="0" sortOrder="10" createDate="2013-02-17T09:04:45" updateDate="2013-02-17T09:04:46" nodeName="Content Panels" urlName="content-panels" path="-1,1072,1094" isDoc="" nodeType="1061" creatorName="admin" writerName="admin" writerID="0" template="0"> + <umbracoNaviHide>1</umbracoNaviHide> + <ContentPanel id="1095" parentID="1094" level="3" creatorID="0" sortOrder="0" createDate="2013-02-17T09:04:45" updateDate="2013-02-17T09:04:46" nodeName="Introductory Offers" urlName="introductory-offers" path="-1,1072,1094,1095" isDoc="" nodeType="1060" creatorName="admin" writerName="admin" writerID="0" template="0"> + <bodyText> + <![CDATA[ +<h3>Introductory Offers</h3> + +<p>asdjbasd askdja asio]ywer asduyiuy</p> + +<ul> +<li><a href="/rooms.aspx">related link 1</a></li> + +<li><a href="/rooms.aspx">related link 1</a></li> +</ul> +]]> + </bodyText> + <umbracoNaviHide>1</umbracoNaviHide> + </ContentPanel> + <ContentPanel id="1096" parentID="1094" level="3" creatorID="0" sortOrder="1" createDate="2013-02-17T09:04:45" updateDate="2013-02-17T09:04:46" nodeName="Sample Panel" urlName="sample-panel" path="-1,1072,1094,1096" isDoc="" nodeType="1060" creatorName="admin" writerName="admin" writerID="0" template="0"> + <bodyText> + <![CDATA[<p><strong>Sample Panel</strong></p> +<p>Don't you just love MVC?</p> +<ul> +<li><a href="/rooms.aspx">related link 1</a></li> +<li><a href="/rooms.aspx">related link 2</a></li> +</ul>]]> + </bodyText> + <umbracoNaviHide>0</umbracoNaviHide> + </ContentPanel> + </ContentPanels> + </Homepage> + </DocumentSet> + </Documents> + <DocumentTypes> + <DocumentType> + <Info> + <Name>Base</Name> + <Alias>Base</Alias> + <Icon>folder.gif</Icon> + <Thumbnail>folder.png</Thumbnail> + <Description> + </Description> + <AllowAtRoot>False</AllowAtRoot> + <AllowedTemplates /> + <DefaultTemplate> + </DefaultTemplate> + </Info> + <Structure /> + <GenericProperties> + <GenericProperty> + <Name>Hide From Navigation</Name> + <Alias>umbracoNaviHide</Alias> + <Type>38b352c1-e9f8-4fd8-9324-9a2eab06d97a</Type> + <Definition>92897bc6-a5f3-4ffe-ae27-f2e7e33dda49</Definition> + <Tab> + </Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + </GenericProperties> + <Tabs /> + </DocumentType> + <DocumentType> + <Info> + <Name>Client Area Folder</Name> + <Alias>ClientArea</Alias> + <Icon>.sprTreeFolder</Icon> + <Thumbnail>folder.png</Thumbnail> + <Description> + </Description> + <AllowAtRoot>False</AllowAtRoot> + <Master>Base</Master> + <AllowedTemplates> + <Template>ClientAreas</Template> + </AllowedTemplates> + <DefaultTemplate>ClientAreas</DefaultTemplate> + </Info> + <Structure> + <DocumentType>ClientArea</DocumentType> + <DocumentType>Standard</DocumentType> + </Structure> + <GenericProperties /> + <Tabs /> + </DocumentType> + <DocumentType> + <Info> + <Name>Content Master</Name> + <Alias>ContentMaster</Alias> + <Icon>folder.gif</Icon> + <Thumbnail>folder.png</Thumbnail> + <Description> + </Description> + <AllowAtRoot>False</AllowAtRoot> + <Master>Base</Master> + <AllowedTemplates /> + <DefaultTemplate> + </DefaultTemplate> + </Info> + <Structure /> + <GenericProperties> + <GenericProperty> + <Name>Title</Name> + <Alias>title</Alias> + <Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type> + <Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition> + <Tab>SEO</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Description</Name> + <Alias>description</Alias> + <Type>67db8357-ef57-493e-91ac-936d305e0f2a</Type> + <Definition>c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3</Definition> + <Tab>SEO</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Keywords</Name> + <Alias>keywords</Alias> + <Type>67db8357-ef57-493e-91ac-936d305e0f2a</Type> + <Definition>c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3</Definition> + <Tab>SEO</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + </GenericProperties> + <Tabs> + <Tab> + <Id>6</Id> + <Caption>SEO</Caption> + </Tab> + </Tabs> + </DocumentType> + <DocumentType> + <Info> + <Name>Standard</Name> + <Alias>Standard</Alias> + <Icon>.sprTreeDoc</Icon> + <Thumbnail>doc.png</Thumbnail> + <Description> + </Description> + <AllowAtRoot>False</AllowAtRoot> + <Master>ContentMaster</Master> + <AllowedTemplates> + <Template>Articles</Template> + <Template>Login</Template> + <Template>Search</Template> + <Template>Sitemap</Template> + <Template>StandardPage</Template> + </AllowedTemplates> + <DefaultTemplate>StandardPage</DefaultTemplate> + </Info> + <Structure> + <DocumentType>Standard</DocumentType> + <DocumentType>NewsArticle</DocumentType> + </Structure> + <GenericProperties> + <GenericProperty> + <Name>Main Content</Name> + <Alias>bodyText</Alias> + <Type>5e9b75ae-face-41c8-b47e-5f4b0fd82f83</Type> + <Definition>ca90c950-0aff-4e72-b976-a30b1ac57dad</Definition> + <Tab>Content</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Content Panels</Name> + <Alias>contentPanels</Alias> + <Type>7e062c13-7c41-4ad9-b389-41d88aeef87c</Type> + <Definition>d719387b-8261-48ac-b94b-00654896d114</Definition> + <Tab>Panels</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[Select the panels to appear in the right column]]></Description> + </GenericProperty> + </GenericProperties> + <Tabs> + <Tab> + <Id>7</Id> + <Caption>Content</Caption> + </Tab> + <Tab> + <Id>8</Id> + <Caption>Panels</Caption> + </Tab> + </Tabs> + </DocumentType> + <DocumentType> + <Info> + <Name>ContactForm</Name> + <Alias>ContactForm</Alias> + <Icon>newsletter.gif</Icon> + <Thumbnail>doc.png</Thumbnail> + <Description> + </Description> + <AllowAtRoot>False</AllowAtRoot> + <Master>Standard</Master> + <AllowedTemplates> + <Template>Contact</Template> + </AllowedTemplates> + <DefaultTemplate>Contact</DefaultTemplate> + </Info> + <Structure> + <DocumentType>Standard</DocumentType> + </Structure> + <GenericProperties> + <GenericProperty> + <Name>Recipient Email Address</Name> + <Alias>recipientEmailAddress</Alias> + <Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type> + <Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition> + <Tab>Form</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Email Subject</Name> + <Alias>emailSubject</Alias> + <Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type> + <Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition> + <Tab>Form</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Thank You Page</Name> + <Alias>thankYouPage</Alias> + <Type>158aa029-24ed-4948-939e-c3da209e5fba</Type> + <Definition>a6857c73-d6e9-480c-b6e6-f15f6ad11125</Definition> + <Tab>Form</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Sender Email Address</Name> + <Alias>senderEmailAddress</Alias> + <Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type> + <Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition> + <Tab>Form</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + </GenericProperties> + <Tabs> + <Tab> + <Id>9</Id> + <Caption>Form</Caption> + </Tab> + </Tabs> + </DocumentType> + <DocumentType> + <Info> + <Name>ContentPanel</Name> + <Alias>ContentPanel</Alias> + <Icon>.sprTreeDoc</Icon> + <Thumbnail>doc.png</Thumbnail> + <Description> + </Description> + <AllowAtRoot>False</AllowAtRoot> + <Master>Base</Master> + <AllowedTemplates /> + <DefaultTemplate> + </DefaultTemplate> + </Info> + <Structure /> + <GenericProperties> + <GenericProperty> + <Name>Main Content</Name> + <Alias>bodyText</Alias> + <Type>5e9b75ae-face-41c8-b47e-5f4b0fd82f83</Type> + <Definition>ca90c950-0aff-4e72-b976-a30b1ac57dad</Definition> + <Tab>Content</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + </GenericProperties> + <Tabs> + <Tab> + <Id>10</Id> + <Caption>Content</Caption> + </Tab> + </Tabs> + </DocumentType> + <DocumentType> + <Info> + <Name>ContentPanels</Name> + <Alias>ContentPanels</Alias> + <Icon>.sprTreeFolder</Icon> + <Thumbnail>folder.png</Thumbnail> + <Description> + </Description> + <AllowAtRoot>False</AllowAtRoot> + <Master>Base</Master> + <AllowedTemplates /> + <DefaultTemplate> + </DefaultTemplate> + </Info> + <Structure> + <DocumentType>ContentPanel</DocumentType> + </Structure> + <GenericProperties /> + <Tabs /> + </DocumentType> + <DocumentType> + <Info> + <Name>Homepage</Name> + <Alias>Homepage</Alias> + <Icon>.sprTreeSettingDomain</Icon> + <Thumbnail>folder.png</Thumbnail> + <Description> + </Description> + <AllowAtRoot>False</AllowAtRoot> + <Master>ContentMaster</Master> + <AllowedTemplates> + <Template>Home</Template> + </AllowedTemplates> + <DefaultTemplate>Home</DefaultTemplate> + </Info> + <Structure> + <DocumentType>ClientArea</DocumentType> + <DocumentType>Standard</DocumentType> + <DocumentType>ContactForm</DocumentType> + <DocumentType>ContentPanels</DocumentType> + <DocumentType>Slideshow</DocumentType> + </Structure> + <GenericProperties> + <GenericProperty> + <Name>Primary Navigation</Name> + <Alias>primaryNavigation</Alias> + <Type>7e062c13-7c41-4ad9-b389-41d88aeef87c</Type> + <Definition>d719387b-8261-48ac-b94b-00654896d114</Definition> + <Tab>Navigation</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Panel Content 1</Name> + <Alias>panelContent1</Alias> + <Type>5e9b75ae-face-41c8-b47e-5f4b0fd82f83</Type> + <Definition>ca90c950-0aff-4e72-b976-a30b1ac57dad</Definition> + <Tab>Panel 1</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Panel Content 2</Name> + <Alias>panelContent2</Alias> + <Type>5e9b75ae-face-41c8-b47e-5f4b0fd82f83</Type> + <Definition>ca90c950-0aff-4e72-b976-a30b1ac57dad</Definition> + <Tab>Panel 2</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Panel Content 3</Name> + <Alias>panelContent3</Alias> + <Type>5e9b75ae-face-41c8-b47e-5f4b0fd82f83</Type> + <Definition>ca90c950-0aff-4e72-b976-a30b1ac57dad</Definition> + <Tab>Panel 3</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Slideshow</Name> + <Alias>slideshow</Alias> + <Type>7e062c13-7c41-4ad9-b389-41d88aeef87c</Type> + <Definition>d719387b-8261-48ac-b94b-00654896d114</Definition> + <Tab>Slideshow</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Header Navigation</Name> + <Alias>headerNavigation</Alias> + <Type>7e062c13-7c41-4ad9-b389-41d88aeef87c</Type> + <Definition>d719387b-8261-48ac-b94b-00654896d114</Definition> + <Tab>Header</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Address</Name> + <Alias>address</Alias> + <Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type> + <Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition> + <Tab>Footer</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[The address appears in the footer of all pages]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Copyright</Name> + <Alias>copyright</Alias> + <Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type> + <Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition> + <Tab>Footer</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Affiliation Link 1</Name> + <Alias>affiliationLink1</Alias> + <Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type> + <Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition> + <Tab>Footer</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Affiliation Image 1</Name> + <Alias>affiliationImage1</Alias> + <Type>5032a6e6-69e3-491d-bb28-cd31cd11086c</Type> + <Definition>84c6b441-31df-4ffe-b67e-67d5bc3ae65a</Definition> + <Tab>Footer</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Affiliation Link 2</Name> + <Alias>affiliationLink2</Alias> + <Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type> + <Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition> + <Tab>Footer</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Affiliation Image 2</Name> + <Alias>affiliationImage2</Alias> + <Type>5032a6e6-69e3-491d-bb28-cd31cd11086c</Type> + <Definition>84c6b441-31df-4ffe-b67e-67d5bc3ae65a</Definition> + <Tab>Footer</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Affiliation Link 3</Name> + <Alias>affiliationLink3</Alias> + <Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type> + <Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition> + <Tab>Footer</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Affiliation Image 3</Name> + <Alias>affiliationImage3</Alias> + <Type>5032a6e6-69e3-491d-bb28-cd31cd11086c</Type> + <Definition>84c6b441-31df-4ffe-b67e-67d5bc3ae65a</Definition> + <Tab>Footer</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + </GenericProperties> + <Tabs> + <Tab> + <Id>11</Id> + <Caption>Slideshow</Caption> + </Tab> + <Tab> + <Id>12</Id> + <Caption>Panel 1</Caption> + </Tab> + <Tab> + <Id>13</Id> + <Caption>Panel 2</Caption> + </Tab> + <Tab> + <Id>14</Id> + <Caption>Panel 3</Caption> + </Tab> + <Tab> + <Id>15</Id> + <Caption>Navigation</Caption> + </Tab> + <Tab> + <Id>16</Id> + <Caption>Footer</Caption> + </Tab> + <Tab> + <Id>17</Id> + <Caption>Header</Caption> + </Tab> + </Tabs> + </DocumentType> + <DocumentType> + <Info> + <Name>NewsArticle</Name> + <Alias>NewsArticle</Alias> + <Icon>doc.gif</Icon> + <Thumbnail>folder.png</Thumbnail> + <Description> + </Description> + <AllowAtRoot>False</AllowAtRoot> + <Master>Standard</Master> + <AllowedTemplates> + <Template>StandardPage</Template> + </AllowedTemplates> + <DefaultTemplate>StandardPage</DefaultTemplate> + </Info> + <Structure /> + <GenericProperties> + <GenericProperty> + <Name>Article Summary</Name> + <Alias>articleSummary</Alias> + <Type>67db8357-ef57-493e-91ac-936d305e0f2a</Type> + <Definition>c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3</Definition> + <Tab>Article</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Article Date</Name> + <Alias>articleDate</Alias> + <Type>23e93522-3200-44e2-9f29-e61a6fcbb79a</Type> + <Definition>5046194e-4237-453c-a547-15db3a07c4e1</Definition> + <Tab>Article</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + </GenericProperties> + <Tabs> + <Tab> + <Id>18</Id> + <Caption>Article</Caption> + </Tab> + </Tabs> + </DocumentType> + <DocumentType> + <Info> + <Name>Slide</Name> + <Alias>Slide</Alias> + <Icon>.sprTreeMediaPhoto</Icon> + <Thumbnail>docWithImage.png</Thumbnail> + <Description> + </Description> + <AllowAtRoot>False</AllowAtRoot> + <Master>Base</Master> + <AllowedTemplates /> + <DefaultTemplate> + </DefaultTemplate> + </Info> + <Structure /> + <GenericProperties> + <GenericProperty> + <Name>Main Image</Name> + <Alias>mainImage</Alias> + <Type>5032a6e6-69e3-491d-bb28-cd31cd11086c</Type> + <Definition>84c6b441-31df-4ffe-b67e-67d5bc3ae65a</Definition> + <Tab>Content</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[500px x 260px]]></Description> + </GenericProperty> + <GenericProperty> + <Name>Main Content</Name> + <Alias>bodyText</Alias> + <Type>5e9b75ae-face-41c8-b47e-5f4b0fd82f83</Type> + <Definition>ca90c950-0aff-4e72-b976-a30b1ac57dad</Definition> + <Tab>Content</Tab> + <Mandatory>False</Mandatory> + <Validation> + </Validation> + <Description><![CDATA[]]></Description> + </GenericProperty> + </GenericProperties> + <Tabs> + <Tab> + <Id>19</Id> + <Caption>Content</Caption> + </Tab> + </Tabs> + </DocumentType> + <DocumentType> + <Info> + <Name>Slideshow</Name> + <Alias>Slideshow</Alias> + <Icon>.sprTreeFolder</Icon> + <Thumbnail>folder.png</Thumbnail> + <Description> + </Description> + <AllowAtRoot>False</AllowAtRoot> + <Master>Base</Master> + <AllowedTemplates /> + <DefaultTemplate> + </DefaultTemplate> + </Info> + <Structure> + <DocumentType>Slide</DocumentType> + </Structure> + <GenericProperties /> + <Tabs /> + </DocumentType> + </DocumentTypes> + <Templates> + <Template> + <Name>Articles</Name> + <Alias>Articles</Alias> + <Master>SW_Master</Master> + <Design> + <![CDATA[@inherits Umbraco.Web.Mvc.UmbracoTemplatePage +@{ + Layout = "SW_Master.cshtml"; + int pageSize = 2; // How many items per page + int page; // The page we are viewing + + /* Set up parameters */ + + if (!int.TryParse(Request.QueryString["page"], out page)) + { + page = 1; + } + + /* This is your basic query to select the nodes you want */ + + var nodes = Model.Content.Children.Where(x => x.DocumentTypeAlias == "NewsArticle").OrderBy(x=>x.CreateDate); + + int totalNodes = nodes.Count(); + int totalPages = (int)Math.Ceiling((double)totalNodes / (double)pageSize); + + /* Bounds checking */ + + if (page > totalPages) + { + page = totalPages; + } + else if (page < 1) + { + page = 1; + } + + + + + + + + + + + + + + +} + + + + <div id="mainContent" class="fc"> + <div class="navigation"> + @Html.Partial("LeftNavigation",@Model.Content) +   + </div> + + <div id="content"> + + @Html.Raw(Model.Content.GetPropertyValue<string>("bodyText")) + + + <ul id="newsList"> + @foreach (var item in nodes.Skip((page - 1) * pageSize).Take(pageSize)) + { + <li> + <h3> + <a href="@item.NiceUrl()"> + @item.Name + </a> + </h3> + <p class="articleDate"> + @Convert.ToDateTime(item.GetPropertyValue("articleDate")).ToString("dd MMMM yyyy") + </p> + <p> + @item.GetPropertyValue("articleSummary") + + </p> + </li> + } +</ul> + +@if(totalPages > 1) +{ + + <p id="pager"> + @for (int p = 1; p < totalPages + 1; p++) + { + //string selected = (p == page) ? "selected" : String.Empty; + //<li class="@selected"><a href="?page=@p" title="Go to page @p of results">@p</a></li> + <a href="?page=@p" title="Go to page @p of results">@p</a> + if (p < totalPages) + { + <text>| </text> + } + } +</p> +} + + + </div> + + @Html.Partial("ContentPanels",@Model.Content) + </div>]]> + </Design> + </Template> + <Template> + <Name>ClientAreas</Name> + <Alias>ClientAreas</Alias> + <Master>SW_Master</Master> + <Design> + <![CDATA[@inherits Umbraco.Web.Mvc.UmbracoTemplatePage +@{ + Layout = "SW_Master.cshtml"; + var pages = Model.Content.Children.Where(x => x.IsVisible() && x.TemplateId > 0 && Umbraco.MemberHasAccess(x.Id, x.Path)); +} + <div id="mainContent" class="fc"> + + <div class="navigation"> + @Html.Partial("LeftNavigation",@Model.Content) +   + </div> + + <div id="content"> + @Html.Raw(Model.Content.GetPropertyValue<string>("bodyText")) + + @foreach (var page in pages) + { + <h3><a href="@page.NiceUrl()">@page.Name</a></h3> + } + + </div> + + + </div>]]> + </Design> + </Template> + <Template> + <Name>Contact</Name> + <Alias>Contact</Alias> + <Master>SW_Master</Master> + <Design> + <![CDATA[@inherits Umbraco.Web.Mvc.UmbracoTemplatePage +@{ + Layout = "SW_Master.cshtml"; +} + <div id="mainContent" class="fc"> + + <div class="navigation"> + @Html.Partial("LeftNavigation",@Model.Content) +   + </div> + + <div id="content"> + @Html.Raw(Model.Content.GetPropertyValue<string>("bodyText")) + + @Html.Partial("ContactForm",new Koiak.StandardWebsite.ContactFormModel()) + </div> +</div>]]> + </Design> + </Template> + <Template> + <Name>Home</Name> + <Alias>Home</Alias> + <Master>SW_Master</Master> + <Design> + <![CDATA[@inherits Umbraco.Web.Mvc.UmbracoTemplatePage +@{ + Layout = "SW_Master.cshtml"; +} + + <div id="slideshow"> + <ul> + @{ + var nodeIds = Model.Content.GetPropertyValue("slideshow").ToString().Split(','); + List<IPublishedContent> slides = new List<IPublishedContent>(); + + foreach (var nodeId in nodeIds) + { + if (!String.IsNullOrEmpty(nodeId)) + { + var publishedContent = Umbraco.NiceUrl(Convert.ToInt32(nodeId)); + if (!String.IsNullOrEmpty(publishedContent) && publishedContent != "#") + { + slides.Add(Umbraco.TypedContent(nodeId)); + } + } + } + } + + @foreach (var slide in slides) + { + if(slide != null) + { + string styleString = !slide.IsFirst() ? "display:none;" : ""; + <li class="rotating-panel fc" style="@styleString"> + <img class="fl" alt="@slide.Name" src="@slide.GetPropertyValue("mainImage")"/> + <div class=""> + @Html.Raw(slide.GetPropertyValue("bodyText")) + </div> + </li> + } + } + </ul> + <ul id="slidePager"> + @foreach (var slide in slides) + { + string classString = slide.IsFirst() ? "selected" : ""; + <li> + <a href="?position={position()}" class="@classString"> + @slide.Position() + </a> + </li> + } + </ul> + + </div> + + <div class="fc"> + <div class="feature fl"> + @Html.Raw(Model.Content.GetPropertyValue("panelContent1").ToString()) + </div> + + <div class="feature fl"> + @Html.Raw(Model.Content.GetPropertyValue("panelContent2").ToString()) + </div> + + <div class="feature fr"> + @Html.Raw(Model.Content.GetPropertyValue("panelContent3").ToString()) + </div> + </div>]]> + </Design> + </Template> + <Template> + <Name>Login</Name> + <Alias>Login</Alias> + <Master>SW_Master</Master> + <Design> + <![CDATA[ @inherits Umbraco.Web.Mvc.UmbracoTemplatePage +@{ + Layout = "SW_Master.cshtml"; + + if(!String.IsNullOrEmpty(Request.QueryString["signout"])) + { + FormsAuthentication.SignOut(); + Context.Response.Redirect(Model.Content.NiceUrl(), true); + } +} + <div id="mainContent" class="fc"> + + <div class="navigation"> + @Html.Partial("LeftNavigation",@Model.Content) +   + </div> + + <div id="content"> + @Html.Raw(Model.Content.GetPropertyValue<string>("bodyText")) + + @Html.Partial("LoginForm",new Koiak.StandardWebsite.LoginModel()) + </div> +</div>]]> + </Design> + </Template> + <Template> + <Name>Search</Name> + <Alias>Search</Alias> + <Master>SW_Master</Master> + <Design> + <![CDATA[@inherits Umbraco.Web.Mvc.UmbracoTemplatePage +@using Lucene.Net; +@using Examine; +@using Examine.LuceneEngine.SearchCriteria; + +@{ + Layout = "SW_Master.cshtml"; + + + int pageSize = 10; // How many items per page + int page; // The page we are viewing + string searchTerm = Context.Request.QueryString["search"]; + + /* Set up parameters */ + + if (!int.TryParse(Request.QueryString["page"], out page)) + { + page = 1; + } + + /* This is your basic query to select the nodes you want */ + + Examine.Providers.BaseSearchProvider baseSearchProvider = ExamineManager.Instance.DefaultSearchProvider; + IEnumerable<SearchResult> nodes = null; + //ISearchResults nodes = null; + Lucene.Net.Search.Searcher luceneSearcher = null; + int totalNodes = 0; + int totalPages = 0; + + if (!String.IsNullOrEmpty(searchTerm)) + { + //nodes = baseSearchProvider.Search(searchTerm, true); + var searchCriteria = Examine.ExamineManager.Instance.CreateSearchCriteria(Examine.SearchCriteria.BooleanOperation.And); + + var query = searchCriteria.GroupedOr( + new string[] { "nodeName", "bodyText", "panelContent1", "panelContent2", "panelContent3", "articleSummary"},searchTerm.Fuzzy(0.7f)) + .Compile(); + + var results = baseSearchProvider.Search(query); //.OrderByDescending(x => x.Score) + luceneSearcher = ((Examine.LuceneEngine.SearchResults)results).LuceneSearcher; + nodes = results.OrderByDescending(x => x.Score); + + totalNodes = nodes.Count(); + totalPages = (int)Math.Ceiling((double)totalNodes / (double)pageSize); + + /* Bounds checking */ + + if (page > totalPages) + { + page = totalPages; + } + else if (page < 1) + { + page = 1; + } + } + +} +<div id="mainContent" class="fc"> + <div class="navigation"> + @Html.Partial("LeftNavigation", @Model.Content) +   + + </div> + + <div id="content"> + @Html.Raw(Model.Content.GetPropertyValue<string>("bodyText")) + + @if (totalNodes == 0) + { + <p>No results match your search</p> + } + else + { + <ul id="newsList"> + @foreach (var item in nodes.Skip((page - 1) * pageSize).Take(pageSize)) + { + <li> + <h3> + <a href="@Umbraco.NiceUrl(Convert.ToInt32(@item.Fields["id"]))"> + @item.Fields["nodeName"] + </a> + </h3> + @{ + string fieldName = "bodyText"; + string searchHiglight = ""; + + if (item.Fields.ContainsKey(fieldName)) + { + string fieldValue = item.Fields[fieldName]; + searchHiglight = LuceneHighlightHelper.Instance.GetHighlight(fieldValue, fieldName, luceneSearcher, searchTerm); + + if (String.IsNullOrEmpty(searchHiglight)) + { + searchHiglight = Umbraco.Truncate(fieldValue, 200).ToString(); + } + else + { + searchHiglight = System.Text.RegularExpressions.Regex.Replace(searchHiglight, searchTerm, "<strong>" + searchTerm + "</strong>", System.Text.RegularExpressions.RegexOptions.IgnoreCase); + } + } + } + + <p>@Html.Raw(searchHiglight)</p> + + <!--<dl> + + @foreach (var field in item.Fields) + { + <dt>@field.Key</dt> + <dd>@field.Value</dd> + } + </dl>--> + </li> + } + </ul> + } + + @if (totalPages > 1) + { + + <p id="pager"> + @for (int p = 1; p < totalPages + 1; p++) + { + //string selected = (p == page) ? "selected" : String.Empty; + //<li class="@selected"><a href="?page=@p" title="Go to page @p of results">@p</a></li> + <a href="?search=@searchTerm&page=@p" title="Go to page @p of results">@p</a> + if (p < totalPages) + { + <text>| </text> + } + } + </p> + } + </div> + + @Html.Partial("ContentPanels", @Model.Content) +</div>]]> + </Design> + </Template> + <Template> + <Name>Sitemap</Name> + <Alias>Sitemap</Alias> + <Master>SW_Master</Master> + <Design> + <![CDATA[@inherits Umbraco.Web.Mvc.UmbracoTemplatePage +@{ + Layout = "SW_Master.cshtml"; +} + <div id="mainContent" class="fc"> + + <div class="navigation"> + @Html.Partial("LeftNavigation",@Model.Content) +   + </div> + + <div id="content"> + @Html.Raw(Model.Content.GetPropertyValue<string>("bodyText")) + + <div id="sitemap"> + @traverse(Model.Content.AncestorOrSelf(1)) + </div> + + </div> + + @Html.Partial("ContentPanels",@Model.Content) + </div> + +@helper traverse(IPublishedContent node) +{ + var cc = node.Children.Where(x=>x.IsVisible() && x.TemplateId > 0); + if (cc.Count()>0) + { + <ul> + @foreach (var c in cc) + { + <li> + <a href="@c.NiceUrl()">@c.Name</a> + @traverse(c) + </li> + } + </ul> + } +}]]> + </Design> + </Template> + <Template> + <Name>Standard Page</Name> + <Alias>StandardPage</Alias> + <Master>SW_Master</Master> + <Design> + <![CDATA[@inherits Umbraco.Web.Mvc.UmbracoTemplatePage +@{ + Layout = "SW_Master.cshtml"; +} + <div id="mainContent" class="fc"> + + <div class="navigation"> + @Html.Partial("LeftNavigation",@Model.Content) +   + </div> + + <div id="content"> + @Html.Raw(Model.Content.GetPropertyValue<string>("bodyText")) + </div> + + @Html.Partial("ContentPanels",@Model.Content) + </div>]]> + </Design> + </Template> + <Template> + <Name>SW_Master</Name> + <Alias>SW_Master</Alias> + <Design> + <![CDATA[@inherits Umbraco.Web.Mvc.UmbracoTemplatePage +@{ + Layout = null; + var homepage = Model.Content.AncestorOrSelf(1); +} +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <title>@Model.Content.GetPropertyValue("title") + + + + + + + + + + + + + + + + + + + +
+ @RenderBody() +
+ + + + + + + + +]]> + + + + + + admin + + + + + + + + Header 2 + h2 + + + + + Header 3 + h3 + + + + + Float Right + .fr + + + + + + + base-min + base-min + + + + + + default + default + + + + + + + + Map + Map + + + + + + + True + 0 + Map.cshtml + + + + + + + + + + + + + + + + + + + + + + + + + /usercontrols/StandardWebsiteInstall.ascx +
\ No newline at end of file diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index 26e58c8b27..10e36c517f 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -262,6 +262,12 @@ + + + True + True + ImportResources.resx + @@ -376,6 +382,10 @@ ResXFileCodeGenerator SqlResources.Designer.cs + + ResXFileCodeGenerator + ImportResources.Designer.cs + ResXFileCodeGenerator ExamineResources.Designer.cs @@ -414,6 +424,7 @@ +