Netcore: Package support for media + media types (#9547)
* Add support for media when installing a package * clean up * Fix tests * Add support for media when installing a package * clean up * Fix tests * moved tests + test data * Migrated package tests + resources * Fix issue with media picker on package page, was empty after save. * Added missing files * Fix casing issue of resources * Added test for media * Fix tests for linux * Fix test * Fix issue with move media.. * Fix issue with adding files to packages * Add MediaType permissions. * Fix test * Fix test * Retry flaky tests, and added TODOs to fix those * new attempt to fix test Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
This commit is contained in:
Binary file not shown.
BIN
src/Umbraco.Tests.Integration/TestData/Packages/Hello_1.0.0.zip
Normal file
BIN
src/Umbraco.Tests.Integration/TestData/Packages/Hello_1.0.0.zip
Normal file
Binary file not shown.
@@ -45,6 +45,8 @@ namespace Umbraco.Tests.Integration.Umbraco.Core.Packaging
|
||||
private IEntityXmlSerializer EntityXmlSerializer => GetRequiredService<IEntityXmlSerializer>();
|
||||
private IHostingEnvironment HostingEnvironment => GetRequiredService<IHostingEnvironment>();
|
||||
private IUmbracoVersion UmbracoVersion => GetRequiredService<IUmbracoVersion>();
|
||||
private IMediaService MediaService => GetRequiredService<IMediaService>();
|
||||
private IMediaTypeService MediaTypeService => GetRequiredService<IMediaTypeService>();
|
||||
|
||||
public ICreatedPackagesRepository PackageBuilder => new PackagesRepository(
|
||||
ContentService, ContentTypeService, DataTypeService,
|
||||
@@ -53,6 +55,8 @@ namespace Umbraco.Tests.Integration.Umbraco.Core.Packaging
|
||||
EntityXmlSerializer, LoggerFactory,
|
||||
UmbracoVersion,
|
||||
Microsoft.Extensions.Options.Options.Create(new GlobalSettings()),
|
||||
MediaService,
|
||||
MediaTypeService,
|
||||
"createdPackages.config",
|
||||
//temp paths
|
||||
tempFolderPath: "~/" + _testBaseFolder + "/temp",
|
||||
@@ -158,8 +162,8 @@ namespace Umbraco.Tests.Integration.Umbraco.Core.Packaging
|
||||
{
|
||||
var file1 = $"~/{_testBaseFolder}/App_Plugins/MyPlugin/package.manifest";
|
||||
var file2 = $"~/{_testBaseFolder}/App_Plugins/MyPlugin/styles.css";
|
||||
var mappedFile1 = IOHelper.MapPath(file1);
|
||||
var mappedFile2 = IOHelper.MapPath(file2);
|
||||
var mappedFile1 = HostingEnvironment.MapPathContentRoot(file1);
|
||||
var mappedFile2 = HostingEnvironment.MapPathContentRoot(file2);
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(mappedFile1));
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(mappedFile2));
|
||||
File.WriteAllText(mappedFile1, "hello world");
|
||||
@@ -183,7 +187,7 @@ namespace Umbraco.Tests.Integration.Umbraco.Core.Packaging
|
||||
def = PackageBuilder.GetById(def.Id); //re-get
|
||||
Assert.IsNotNull(def.PackagePath);
|
||||
|
||||
using (var archive = ZipFile.OpenRead(IOHelper.MapPath(zip)))
|
||||
using (var archive = ZipFile.OpenRead(HostingEnvironment.MapPathWebRoot(zip)))
|
||||
{
|
||||
Assert.AreEqual(3, archive.Entries.Count);
|
||||
|
||||
|
||||
@@ -0,0 +1,799 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Xml.Linq;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Composing;
|
||||
using Umbraco.Core.Configuration.Models;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Models.Packaging;
|
||||
using Umbraco.Core.Packaging;
|
||||
using Umbraco.Core.Persistence.Dtos;
|
||||
using Umbraco.Core.PropertyEditors;
|
||||
using Umbraco.Core.Serialization;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Core.Strings;
|
||||
using Umbraco.Tests.Integration.Testing;
|
||||
using Umbraco.Tests.Services.Importing;
|
||||
using Umbraco.Tests.Testing;
|
||||
|
||||
namespace Umbraco.Tests.Packaging
|
||||
{
|
||||
[TestFixture]
|
||||
[Category("Slow")]
|
||||
[Apartment(ApartmentState.STA)]
|
||||
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest, WithApplication = true)]
|
||||
public class PackageDataInstallationTests : UmbracoIntegrationTestWithContent
|
||||
{
|
||||
private ILocalizationService LocalizationService => GetRequiredService<ILocalizationService>();
|
||||
private IMacroService MacroService => GetRequiredService<IMacroService>();
|
||||
|
||||
[HideFromTypeFinder]
|
||||
[DataEditor("7e062c13-7c41-4ad9-b389-41d88aeef87c", "Editor1", "editor1")]
|
||||
public class Editor1 : DataEditor
|
||||
{
|
||||
public Editor1(ILoggerFactory loggerFactory)
|
||||
: base(loggerFactory, Mock.Of<IDataTypeService>(), Mock.Of<ILocalizationService>(), Mock.Of<ILocalizedTextService>(), Mock.Of<IShortStringHelper>(), new JsonNetSerializer())
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
[HideFromTypeFinder]
|
||||
[DataEditor("d15e1281-e456-4b24-aa86-1dda3e4299d5", "Editor2", "editor2")]
|
||||
public class Editor2 : DataEditor
|
||||
{
|
||||
public Editor2(ILoggerFactory loggerFactory)
|
||||
: base(loggerFactory, Mock.Of<IDataTypeService>(), Mock.Of<ILocalizationService>(), Mock.Of<ILocalizedTextService>(),Mock.Of<IShortStringHelper>(), new JsonNetSerializer())
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
// protected override void Compose()
|
||||
// {
|
||||
// base.Compose();
|
||||
//
|
||||
// // the packages that are used by these tests reference totally bogus property
|
||||
// // editors that must exist - so they are defined here - and in order not to
|
||||
// // pollute everything, they are ignored by the type finder and explicitely
|
||||
// // added to the editors collection
|
||||
//
|
||||
// Builder.WithCollectionBuilder<DataEditorCollectionBuilder>()
|
||||
// .Add<Editor1>()
|
||||
// .Add<Editor2>();
|
||||
// }
|
||||
//
|
||||
// protected override void ComposeApplication(bool withApplication)
|
||||
// {
|
||||
// base.ComposeApplication(withApplication);
|
||||
//
|
||||
// if (!withApplication) return;
|
||||
//
|
||||
// // re-register with actual media fs
|
||||
// Builder.ComposeFileSystems();
|
||||
// }
|
||||
|
||||
private PackageDataInstallation PackageDataInstallation => GetRequiredService<PackageDataInstallation>();
|
||||
private IContentService ContentService => GetRequiredService<IContentService>();
|
||||
private IContentTypeService ContentTypeService => GetRequiredService<IContentTypeService>();
|
||||
|
||||
private IMediaService MediaService => GetRequiredService<IMediaService>();
|
||||
private IMediaTypeService MediaTypeService => GetRequiredService<IMediaTypeService>();
|
||||
|
||||
[Test]
|
||||
public void Can_Import_uBlogsy_ContentTypes_And_Verify_Structure()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.uBlogsy_Package;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var dataTypeElement = xml.Descendants("DataTypes").First();
|
||||
var templateElement = xml.Descendants("Templates").First();
|
||||
var docTypeElement = xml.Descendants("DocumentTypes").First();
|
||||
|
||||
// Act
|
||||
var dataTypes = PackageDataInstallation.ImportDataTypes(dataTypeElement.Elements("DataType").ToList(), 0);
|
||||
var templates = PackageDataInstallation.ImportTemplates(templateElement.Elements("Template").ToList(), 0);
|
||||
var contentTypes = PackageDataInstallation.ImportDocumentTypes(docTypeElement.Elements("DocumentType"), 0);
|
||||
|
||||
var numberOfTemplates = (from doc in templateElement.Elements("Template") select doc).Count();
|
||||
var numberOfDocTypes = (from doc in docTypeElement.Elements("DocumentType") select doc).Count();
|
||||
|
||||
// Assert
|
||||
Assert.That(dataTypes.Any(), Is.True);
|
||||
Assert.That(templates.Any(), Is.True);
|
||||
Assert.That(templates.Count(), Is.EqualTo(numberOfTemplates));
|
||||
Assert.That(contentTypes.Any(), Is.True);
|
||||
Assert.That(contentTypes.Count(), Is.EqualTo(numberOfDocTypes));
|
||||
|
||||
var uBlogsyBaseDocType = contentTypes.First(x => x.Alias == "uBlogsyBaseDocType");
|
||||
Assert.That(uBlogsyBaseDocType.PropertyTypes.Count(), Is.EqualTo(5));
|
||||
Assert.That(uBlogsyBaseDocType.PropertyGroups.Any(), Is.False);
|
||||
|
||||
var uBlogsyBasePage = contentTypes.First(x => x.Alias == "uBlogsyBasePage");
|
||||
Assert.That(uBlogsyBasePage.ContentTypeCompositionExists("uBlogsyBaseDocType"), Is.True);
|
||||
Assert.That(uBlogsyBasePage.PropertyTypes.Count(), Is.EqualTo(7));
|
||||
Assert.That(uBlogsyBasePage.PropertyGroups.Count, Is.EqualTo(3));
|
||||
Assert.That(uBlogsyBasePage.PropertyGroups["Content"].PropertyTypes.Count, Is.EqualTo(3));
|
||||
Assert.That(uBlogsyBasePage.PropertyGroups["SEO"].PropertyTypes.Count(), Is.EqualTo(3));
|
||||
Assert.That(uBlogsyBasePage.PropertyGroups["Navigation"].PropertyTypes.Count(), Is.EqualTo(1));
|
||||
Assert.That(uBlogsyBasePage.CompositionPropertyTypes.Count(), Is.EqualTo(12));
|
||||
|
||||
var uBlogsyLanding = contentTypes.First(x => x.Alias == "uBlogsyLanding");
|
||||
Assert.That(uBlogsyLanding.ContentTypeCompositionExists("uBlogsyBasePage"), Is.True);
|
||||
Assert.That(uBlogsyLanding.ContentTypeCompositionExists("uBlogsyBaseDocType"), Is.True);
|
||||
Assert.That(uBlogsyLanding.PropertyTypes.Count(), Is.EqualTo(5));
|
||||
Assert.That(uBlogsyLanding.PropertyGroups.Count(), Is.EqualTo(2));
|
||||
Assert.That(uBlogsyLanding.CompositionPropertyTypes.Count(), Is.EqualTo(17));
|
||||
Assert.That(uBlogsyLanding.CompositionPropertyGroups.Count(), Is.EqualTo(5));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Inherited_ContentTypes_And_Verify_PropertyTypes_UniqueIds()
|
||||
{
|
||||
// Arrange
|
||||
var strXml = ImportResources.InheritedDocTypes_Package;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var dataTypeElement = xml.Descendants("DataTypes").First();
|
||||
var templateElement = xml.Descendants("Templates").First();
|
||||
var docTypeElement = xml.Descendants("DocumentTypes").First();
|
||||
|
||||
// Act
|
||||
var dataTypes = PackageDataInstallation.ImportDataTypes(dataTypeElement.Elements("DataType").ToList(), 0);
|
||||
var templates = PackageDataInstallation.ImportTemplates(templateElement.Elements("Template").ToList(), 0);
|
||||
var contentTypes = PackageDataInstallation.ImportDocumentTypes(docTypeElement.Elements("DocumentType"), 0);
|
||||
|
||||
// Assert
|
||||
var mRBasePage = contentTypes.First(x => x.Alias == "MRBasePage");
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
foreach (var propertyType in mRBasePage.PropertyTypes)
|
||||
{
|
||||
var propertyTypeDto = scope.Database.First<PropertyTypeDto>("WHERE id = @id", new { id = propertyType.Id });
|
||||
Assert.AreEqual(propertyTypeDto.UniqueId, propertyType.Key);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Inherited_ContentTypes_And_Verify_PropertyGroups_And_PropertyTypes()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.InheritedDocTypes_Package;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var dataTypeElement = xml.Descendants("DataTypes").First();
|
||||
var templateElement = xml.Descendants("Templates").First();
|
||||
var docTypeElement = xml.Descendants("DocumentTypes").First();
|
||||
|
||||
// Act
|
||||
var dataTypes = PackageDataInstallation.ImportDataTypes(dataTypeElement.Elements("DataType").ToList(), 0);
|
||||
var templates = PackageDataInstallation.ImportTemplates(templateElement.Elements("Template").ToList(), 0);
|
||||
var contentTypes = PackageDataInstallation.ImportDocumentTypes(docTypeElement.Elements("DocumentType"), 0);
|
||||
|
||||
var numberOfDocTypes = (from doc in docTypeElement.Elements("DocumentType") select doc).Count();
|
||||
|
||||
// Assert
|
||||
Assert.That(dataTypes.Any(), Is.False);
|
||||
Assert.That(templates.Any(), Is.False);
|
||||
Assert.That(contentTypes.Any(), Is.True);
|
||||
Assert.That(contentTypes.Count(), Is.EqualTo(numberOfDocTypes));
|
||||
|
||||
var mRBasePage = contentTypes.First(x => x.Alias == "MRBasePage");
|
||||
Assert.That(mRBasePage.PropertyTypes.Count(), Is.EqualTo(3));
|
||||
Assert.That(mRBasePage.PropertyGroups.Count(), Is.EqualTo(1));
|
||||
Assert.That(mRBasePage.PropertyGroups["Metadaten"].PropertyTypes.Count(), Is.EqualTo(2));
|
||||
|
||||
var mRStartPage = contentTypes.First(x => x.Alias == "MRStartPage");
|
||||
Assert.That(mRStartPage.ContentTypeCompositionExists("MRBasePage"), Is.True);
|
||||
Assert.That(mRStartPage.PropertyTypes.Count(), Is.EqualTo(28));
|
||||
Assert.That(mRStartPage.PropertyGroups.Count(), Is.EqualTo(7));
|
||||
|
||||
var propertyGroups = mRStartPage.CompositionPropertyGroups.Where(x => x.Name == "Metadaten");
|
||||
var propertyTypes = propertyGroups.SelectMany(x => x.PropertyTypes);
|
||||
Assert.That(propertyGroups.Count(), Is.EqualTo(2));
|
||||
Assert.That(propertyTypes.Count(), Is.EqualTo(6));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Template_Package_Xml()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.StandardMvc_Package;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var element = xml.Descendants("Templates").First();
|
||||
|
||||
var init = FileService.GetTemplates().Count();
|
||||
|
||||
// Act
|
||||
var templates = PackageDataInstallation.ImportTemplates(element.Elements("Template").ToList(), 0);
|
||||
var numberOfTemplates = (from doc in element.Elements("Template") select doc).Count();
|
||||
var allTemplates = FileService.GetTemplates();
|
||||
|
||||
// Assert
|
||||
Assert.That(templates, Is.Not.Null);
|
||||
Assert.That(templates.Any(), Is.True);
|
||||
Assert.That(templates.Count(), Is.EqualTo(numberOfTemplates));
|
||||
|
||||
Assert.AreEqual(init + numberOfTemplates, allTemplates.Count());
|
||||
Assert.IsTrue(allTemplates.All(x => x.Content.Contains("UmbracoViewPage")));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Single_Template()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.StandardMvc_Package;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var element = xml.Descendants("Templates").First();
|
||||
|
||||
|
||||
// Act
|
||||
var templates = PackageDataInstallation.ImportTemplate(element.Elements("Template").First(), 0);
|
||||
|
||||
// Assert
|
||||
Assert.That(templates, Is.Not.Null);
|
||||
Assert.That(templates.Any(), Is.True);
|
||||
Assert.That(templates.Count(), Is.EqualTo(1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_StandardMvc_ContentTypes_Package_Xml()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.StandardMvc_Package;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var dataTypeElement = xml.Descendants("DataTypes").First();
|
||||
var templateElement = xml.Descendants("Templates").First();
|
||||
var docTypeElement = xml.Descendants("DocumentTypes").First();
|
||||
|
||||
|
||||
// Act
|
||||
var dataTypeDefinitions = PackageDataInstallation.ImportDataTypes(dataTypeElement.Elements("DataType").ToList(), 0);
|
||||
var templates = PackageDataInstallation.ImportTemplates(templateElement.Elements("Template").ToList(), 0);
|
||||
var contentTypes = PackageDataInstallation.ImportDocumentTypes(docTypeElement.Elements("DocumentType"), 0);
|
||||
var numberOfDocTypes = (from doc in docTypeElement.Elements("DocumentType") select doc).Count();
|
||||
|
||||
// Assert
|
||||
Assert.That(dataTypeDefinitions, Is.Not.Null);
|
||||
Assert.That(dataTypeDefinitions.Any(), Is.True);
|
||||
Assert.That(templates.Any(), Is.True);
|
||||
Assert.That(contentTypes, Is.Not.Null);
|
||||
Assert.That(contentTypes.Any(), Is.True);
|
||||
Assert.That(contentTypes.Count(), Is.EqualTo(numberOfDocTypes));
|
||||
Assert.That(contentTypes.Count(x => x.ParentId == -1), Is.EqualTo(1));
|
||||
|
||||
var contentMaster = contentTypes.First(x => x.Alias == "ContentMaster");
|
||||
Assert.That(contentMaster.PropertyTypes.Count(), Is.EqualTo(3));
|
||||
Assert.That(contentMaster.PropertyGroups.Count(), Is.EqualTo(1));
|
||||
Assert.That(contentMaster.PropertyGroups["SEO"].PropertyTypes.Count(), Is.EqualTo(3));
|
||||
Assert.That(contentMaster.ContentTypeCompositionExists("Base"), Is.True);
|
||||
|
||||
var propertyGroupId = contentMaster.PropertyGroups["SEO"].Id;
|
||||
Assert.That(contentMaster.PropertyGroups["SEO"].PropertyTypes.Any(x => x.PropertyGroupId.Value != propertyGroupId), Is.False);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_StandardMvc_ContentTypes_And_Templates_Xml()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.StandardMvc_Package;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var dataTypeElement = xml.Descendants("DataTypes").First();
|
||||
var templateElement = xml.Descendants("Templates").First();
|
||||
var docTypeElement = xml.Descendants("DocumentTypes").First();
|
||||
|
||||
// Act
|
||||
var dataTypeDefinitions = PackageDataInstallation.ImportDataTypes(dataTypeElement.Elements("DataType").ToList(), 0);
|
||||
var templates = PackageDataInstallation.ImportTemplates(templateElement.Elements("Template").ToList(), 0);
|
||||
var contentTypes = PackageDataInstallation.ImportDocumentTypes(docTypeElement.Elements("DocumentType"), 0);
|
||||
var numberOfDocTypes = (from doc in docTypeElement.Elements("DocumentType") select doc).Count();
|
||||
|
||||
//Assert - Re-Import contenttypes doesn't throw
|
||||
Assert.DoesNotThrow(() => PackageDataInstallation.ImportDocumentTypes(docTypeElement.Elements("DocumentType"), 0));
|
||||
Assert.That(contentTypes.Count(), Is.EqualTo(numberOfDocTypes));
|
||||
Assert.That(dataTypeDefinitions, Is.Not.Null);
|
||||
Assert.That(dataTypeDefinitions.Any(), Is.True);
|
||||
Assert.That(templates.Any(), Is.True);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Fanoe_Starterkit_ContentTypes_And_Templates_Xml()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.Fanoe_Package;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var dataTypeElement = xml.Descendants("DataTypes").First();
|
||||
var templateElement = xml.Descendants("Templates").First();
|
||||
var docTypeElement = xml.Descendants("DocumentTypes").First();
|
||||
|
||||
// Act
|
||||
var dataTypeDefinitions = PackageDataInstallation.ImportDataTypes(dataTypeElement.Elements("DataType").ToList(), 0);
|
||||
var templates = PackageDataInstallation.ImportTemplates(templateElement.Elements("Template").ToList(), 0);
|
||||
var contentTypes = PackageDataInstallation.ImportDocumentTypes(docTypeElement.Elements("DocumentType"), 0);
|
||||
var numberOfDocTypes = (from doc in docTypeElement.Elements("DocumentType") select doc).Count();
|
||||
|
||||
//Assert - Re-Import contenttypes doesn't throw
|
||||
Assert.DoesNotThrow(() => PackageDataInstallation.ImportDocumentTypes(docTypeElement.Elements("DocumentType"), 0));
|
||||
Assert.That(contentTypes.Count(), Is.EqualTo(numberOfDocTypes));
|
||||
Assert.That(dataTypeDefinitions, Is.Not.Null);
|
||||
Assert.That(dataTypeDefinitions.Any(), Is.True);
|
||||
Assert.That(templates.Any(), Is.True);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Content_Package_Xml()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.StandardMvc_Package;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var dataTypeElement = xml.Descendants("DataTypes").First();
|
||||
var docTypesElement = xml.Descendants("DocumentTypes").First();
|
||||
var element = xml.Descendants("DocumentSet").First();
|
||||
var packageDocument = CompiledPackageContentBase.Create(element);
|
||||
|
||||
// Act
|
||||
var dataTypeDefinitions = PackageDataInstallation.ImportDataTypes(dataTypeElement.Elements("DataType").ToList(), 0);
|
||||
var contentTypes = PackageDataInstallation.ImportDocumentTypes(docTypesElement.Elements("DocumentType"), 0);
|
||||
var importedContentTypes = contentTypes.ToDictionary(x => x.Alias, x => x);
|
||||
var contents = PackageDataInstallation.ImportContentBase(packageDocument.Yield(), importedContentTypes, 0, ContentTypeService, ContentService);
|
||||
var numberOfDocs = (from doc in element.Descendants()
|
||||
where (string) doc.Attribute("isDoc") == ""
|
||||
select doc).Count();
|
||||
|
||||
// Assert
|
||||
Assert.That(contents, Is.Not.Null);
|
||||
Assert.That(dataTypeDefinitions.Any(), Is.True);
|
||||
Assert.That(contentTypes.Any(), Is.True);
|
||||
Assert.That(contents.Any(), Is.True);
|
||||
Assert.That(contents.Count(), Is.EqualTo(numberOfDocs));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Media_Package_Xml()
|
||||
{
|
||||
// Arrange
|
||||
Core.Services.Implement.MediaTypeService.ClearScopeEvents();
|
||||
string strXml = ImportResources.MediaTypesAndMedia_Package_xml;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var mediaTypesElement = xml.Descendants("MediaTypes").First();
|
||||
var element = xml.Descendants("MediaSet").First();
|
||||
var packageMedia = CompiledPackageContentBase.Create(element);
|
||||
|
||||
// Act
|
||||
var mediaTypes = PackageDataInstallation.ImportMediaTypes(mediaTypesElement.Elements("MediaType"), 0);
|
||||
var importedMediaTypes = mediaTypes.ToDictionary(x => x.Alias, x => x);
|
||||
var medias = PackageDataInstallation.ImportContentBase(packageMedia.Yield(), importedMediaTypes, 0, MediaTypeService, MediaService);
|
||||
var numberOfDocs = (from doc in element.Descendants()
|
||||
where (string) doc.Attribute("isDoc") == ""
|
||||
select doc).Count();
|
||||
|
||||
// Assert
|
||||
Assert.That(medias, Is.Not.Null);
|
||||
Assert.That(mediaTypes.Any(), Is.True);
|
||||
Assert.That(medias.Any(), Is.True);
|
||||
Assert.That(medias.Count(), Is.EqualTo(numberOfDocs));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_CheckboxList_Content_Package_Xml_With_Property_Editor_Aliases()
|
||||
{
|
||||
AssertCheckBoxListTests(ImportResources.CheckboxList_Content_Package);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void AssertCheckBoxListTests(string strXml)
|
||||
{
|
||||
// Arrange
|
||||
var xml = XElement.Parse(strXml);
|
||||
var dataTypeElement = xml.Descendants("DataTypes").First();
|
||||
var docTypesElement = xml.Descendants("DocumentTypes").First();
|
||||
var element = xml.Descendants("DocumentSet").First();
|
||||
var packageDocument = CompiledPackageContentBase.Create(element);
|
||||
|
||||
// Act
|
||||
var dataTypeDefinitions = PackageDataInstallation.ImportDataTypes(dataTypeElement.Elements("DataType").ToList(), 0);
|
||||
var contentTypes = PackageDataInstallation.ImportDocumentTypes(docTypesElement.Elements("DocumentType"), 0);
|
||||
var importedContentTypes = contentTypes.ToDictionary(x => x.Alias, x => x);
|
||||
var contents = PackageDataInstallation.ImportContentBase(packageDocument.Yield(), importedContentTypes, 0, ContentTypeService, ContentService);
|
||||
var numberOfDocs = (from doc in element.Descendants()
|
||||
where (string)doc.Attribute("isDoc") == ""
|
||||
select doc).Count();
|
||||
|
||||
string configuration;
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var dtos = scope.Database.Fetch<DataTypeDto>("WHERE nodeId = @Id", new { dataTypeDefinitions.First().Id });
|
||||
configuration = dtos.Single().Configuration;
|
||||
}
|
||||
|
||||
// Assert
|
||||
Assert.That(dataTypeDefinitions, Is.Not.Null);
|
||||
Assert.That(dataTypeDefinitions.Any(), Is.True);
|
||||
Assert.AreEqual(Constants.PropertyEditors.Aliases.CheckBoxList, dataTypeDefinitions.First().EditorAlias);
|
||||
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));
|
||||
Assert.AreEqual("{\"items\":[{\"id\":59,\"value\":\"test\"},{\"id\":60,\"value\":\"test3\"},{\"id\":61,\"value\":\"test2\"}]}", configuration);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Templates_Package_Xml_With_Invalid_Master()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.XsltSearch_Package;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var templateElement = xml.Descendants("Templates").First();
|
||||
|
||||
|
||||
// Act
|
||||
var templates = PackageDataInstallation.ImportTemplates(templateElement.Elements("Template").ToList(), 0);
|
||||
var numberOfTemplates = (from doc in templateElement.Elements("Template") select doc).Count();
|
||||
|
||||
// Assert
|
||||
Assert.That(templates.Any(), Is.True);
|
||||
Assert.That(templates.Count(), Is.EqualTo(numberOfTemplates));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Single_DocType()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.SingleDocType;
|
||||
var docTypeElement = XElement.Parse(strXml);
|
||||
|
||||
|
||||
// Act
|
||||
var contentTypes = PackageDataInstallation.ImportDocumentType(docTypeElement, 0);
|
||||
|
||||
// Assert
|
||||
Assert.That(contentTypes.Any(), Is.True);
|
||||
Assert.That(contentTypes.Any(x => x.HasIdentity == false), Is.False);
|
||||
Assert.That(contentTypes.Count(), Is.EqualTo(1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Export_Single_DocType()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.SingleDocType;
|
||||
var docTypeElement = XElement.Parse(strXml);
|
||||
|
||||
var serializer = GetRequiredService<IEntityXmlSerializer>();
|
||||
|
||||
// Act
|
||||
var contentTypes = PackageDataInstallation.ImportDocumentType(docTypeElement, 0);
|
||||
var contentType = contentTypes.FirstOrDefault();
|
||||
var element = serializer.Serialize(contentType);
|
||||
|
||||
// Assert
|
||||
Assert.That(element, Is.Not.Null);
|
||||
Assert.That(element.Element("Info"), Is.Not.Null);
|
||||
Assert.That(element.Element("Structure"), Is.Not.Null);
|
||||
Assert.That(element.Element("GenericProperties"), Is.Not.Null);
|
||||
Assert.That(element.Element("Tabs"), Is.Not.Null);
|
||||
//Can't compare this XElement because the templates are not imported (they don't exist)
|
||||
//Assert.That(XNode.DeepEquals(docTypeElement, element), Is.True);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_ReImport_Single_DocType()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.SingleDocType;
|
||||
var docTypeElement = XElement.Parse(strXml);
|
||||
|
||||
// Act
|
||||
var contentTypes = PackageDataInstallation.ImportDocumentType(docTypeElement, 0);
|
||||
var contentTypesUpdated = PackageDataInstallation.ImportDocumentType(docTypeElement, 0);
|
||||
|
||||
// Assert
|
||||
Assert.That(contentTypes.Any(), Is.True);
|
||||
Assert.That(contentTypes.Any(x => x.HasIdentity == false), Is.False);
|
||||
Assert.That(contentTypes.Count(), Is.EqualTo(1));
|
||||
Assert.That(contentTypes.First().AllowedContentTypes.Count(), Is.EqualTo(1));
|
||||
|
||||
Assert.That(contentTypesUpdated.Any(), Is.True);
|
||||
Assert.That(contentTypesUpdated.Any(x => x.HasIdentity == false), Is.False);
|
||||
Assert.That(contentTypesUpdated.Count(), Is.EqualTo(1));
|
||||
Assert.That(contentTypesUpdated.First().AllowedContentTypes.Count(), Is.EqualTo(1));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_ReImport_Templates_To_Update()
|
||||
{
|
||||
var newPackageXml = XElement.Parse(ImportResources.TemplateOnly_Package);
|
||||
var updatedPackageXml = XElement.Parse(ImportResources.TemplateOnly_Updated_Package);
|
||||
|
||||
var templateElement = newPackageXml.Descendants("Templates").First();
|
||||
var templateElementUpdated = updatedPackageXml.Descendants("Templates").First();
|
||||
|
||||
var fileService = FileService;
|
||||
|
||||
// kill default test data
|
||||
fileService.DeleteTemplate("Textpage");
|
||||
|
||||
// Act
|
||||
var numberOfTemplates = (from doc in templateElement.Elements("Template") select doc).Count();
|
||||
var templates = PackageDataInstallation.ImportTemplates(templateElement.Elements("Template").ToList(), 0);
|
||||
var templatesAfterUpdate = PackageDataInstallation.ImportTemplates(templateElementUpdated.Elements("Template").ToList(), 0);
|
||||
var allTemplates = fileService.GetTemplates();
|
||||
|
||||
// Assert
|
||||
Assert.That(templates.Any(), Is.True);
|
||||
Assert.That(templates.Count(), Is.EqualTo(numberOfTemplates));
|
||||
Assert.That(templatesAfterUpdate.Count(), Is.EqualTo(numberOfTemplates));
|
||||
Assert.That(allTemplates.Count(), Is.EqualTo(numberOfTemplates));
|
||||
Assert.That(allTemplates.First(x => x.Alias == "umbHomepage").Content, Contains.Substring("THIS HAS BEEN UPDATED!"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_DictionaryItems()
|
||||
{
|
||||
// Arrange
|
||||
const string expectedEnglishParentValue = "ParentValue";
|
||||
const string expectedNorwegianParentValue = "ForelderVerdi";
|
||||
const string expectedEnglishChildValue = "ChildValue";
|
||||
const string expectedNorwegianChildValue = "BarnVerdi";
|
||||
|
||||
var newPackageXml = XElement.Parse(ImportResources.Dictionary_Package);
|
||||
var dictionaryItemsElement = newPackageXml.Elements("DictionaryItems").First();
|
||||
|
||||
AddLanguages();
|
||||
|
||||
// Act
|
||||
PackageDataInstallation.ImportDictionaryItems(dictionaryItemsElement.Elements("DictionaryItem"), 0);
|
||||
|
||||
// Assert
|
||||
AssertDictionaryItem("Parent", expectedEnglishParentValue, "en-GB");
|
||||
AssertDictionaryItem("Parent", expectedNorwegianParentValue, "nb-NO");
|
||||
AssertDictionaryItem("Child", expectedEnglishChildValue, "en-GB");
|
||||
AssertDictionaryItem("Child", expectedNorwegianChildValue, "nb-NO");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Nested_DictionaryItems()
|
||||
{
|
||||
// Arrange
|
||||
const string parentKey = "Parent";
|
||||
const string childKey = "Child";
|
||||
|
||||
var newPackageXml = XElement.Parse(ImportResources.Dictionary_Package);
|
||||
var dictionaryItemsElement = newPackageXml.Elements("DictionaryItems").First();
|
||||
|
||||
AddLanguages();
|
||||
|
||||
// Act
|
||||
var dictionaryItems = PackageDataInstallation.ImportDictionaryItems(dictionaryItemsElement.Elements("DictionaryItem"), 0);
|
||||
|
||||
// Assert
|
||||
Assert.That(LocalizationService.DictionaryItemExists(parentKey), "DictionaryItem parentKey does not exist");
|
||||
Assert.That(LocalizationService.DictionaryItemExists(childKey), "DictionaryItem childKey does not exist");
|
||||
|
||||
var parentDictionaryItem = LocalizationService.GetDictionaryItemByKey(parentKey);
|
||||
var childDictionaryItem = LocalizationService.GetDictionaryItemByKey(childKey);
|
||||
|
||||
Assert.That(parentDictionaryItem.ParentId, Is.Not.EqualTo(childDictionaryItem.ParentId));
|
||||
Assert.That(childDictionaryItem.ParentId, Is.EqualTo(parentDictionaryItem.Key));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void WhenExistingDictionaryKey_ImportsNewChildren()
|
||||
{
|
||||
// Arrange
|
||||
const string expectedEnglishParentValue = "ExistingParentValue";
|
||||
const string expectedNorwegianParentValue = "EksisterendeForelderVerdi";
|
||||
const string expectedEnglishChildValue = "ChildValue";
|
||||
const string expectedNorwegianChildValue = "BarnVerdi";
|
||||
|
||||
var newPackageXml = XElement.Parse(ImportResources.Dictionary_Package);
|
||||
var dictionaryItemsElement = newPackageXml.Elements("DictionaryItems").First();
|
||||
|
||||
AddLanguages();
|
||||
AddExistingEnglishAndNorwegianParentDictionaryItem(expectedEnglishParentValue, expectedNorwegianParentValue);
|
||||
|
||||
// Act
|
||||
PackageDataInstallation.ImportDictionaryItems(dictionaryItemsElement.Elements("DictionaryItem"), 0);
|
||||
|
||||
// Assert
|
||||
AssertDictionaryItem("Parent", expectedEnglishParentValue, "en-GB");
|
||||
AssertDictionaryItem("Parent", expectedNorwegianParentValue, "nb-NO");
|
||||
AssertDictionaryItem("Child", expectedEnglishChildValue, "en-GB");
|
||||
AssertDictionaryItem("Child", expectedNorwegianChildValue, "nb-NO");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void WhenExistingDictionaryKey_OnlyAddsNewLanguages()
|
||||
{
|
||||
// Arrange
|
||||
const string expectedEnglishParentValue = "ExistingParentValue";
|
||||
const string expectedNorwegianParentValue = "ForelderVerdi";
|
||||
const string expectedEnglishChildValue = "ChildValue";
|
||||
const string expectedNorwegianChildValue = "BarnVerdi";
|
||||
|
||||
var newPackageXml = XElement.Parse(ImportResources.Dictionary_Package);
|
||||
var dictionaryItemsElement = newPackageXml.Elements("DictionaryItems").First();
|
||||
|
||||
AddLanguages();
|
||||
AddExistingEnglishParentDictionaryItem(expectedEnglishParentValue);
|
||||
|
||||
// Act
|
||||
PackageDataInstallation.ImportDictionaryItems(dictionaryItemsElement.Elements("DictionaryItem"), 0);
|
||||
|
||||
// Assert
|
||||
AssertDictionaryItem("Parent", expectedEnglishParentValue, "en-GB");
|
||||
AssertDictionaryItem("Parent", expectedNorwegianParentValue, "nb-NO");
|
||||
AssertDictionaryItem("Child", expectedEnglishChildValue, "en-GB");
|
||||
AssertDictionaryItem("Child", expectedNorwegianChildValue, "nb-NO");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Languages()
|
||||
{
|
||||
// Arrange
|
||||
var newPackageXml = XElement.Parse(ImportResources.Dictionary_Package);
|
||||
var LanguageItemsElement = newPackageXml.Elements("Languages").First();
|
||||
|
||||
// Act
|
||||
var languages = PackageDataInstallation.ImportLanguages(LanguageItemsElement.Elements("Language"), 0);
|
||||
var allLanguages = LocalizationService.GetAllLanguages();
|
||||
|
||||
// Assert
|
||||
Assert.That(languages.Any(x => x.HasIdentity == false), Is.False);
|
||||
foreach (var language in languages)
|
||||
{
|
||||
Assert.That(allLanguages.Any(x => x.IsoCode == language.IsoCode), Is.True);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Macros()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.uBlogsy_Package;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var macrosElement = xml.Descendants("Macros").First();
|
||||
|
||||
|
||||
// Act
|
||||
var macros = PackageDataInstallation.ImportMacros(macrosElement.Elements("macro"), 0).ToList();
|
||||
|
||||
// Assert
|
||||
Assert.That(macros.Any(), Is.True);
|
||||
|
||||
var allMacros = MacroService.GetAll().ToList();
|
||||
foreach (var macro in macros)
|
||||
{
|
||||
Assert.That(allMacros.Any(x => x.Alias == macro.Alias), Is.True);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Macros_With_Properties()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.XsltSearch_Package;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var macrosElement = xml.Descendants("Macros").First();
|
||||
|
||||
|
||||
// Act
|
||||
var macros = PackageDataInstallation.ImportMacros(macrosElement.Elements("macro"), 0).ToList();
|
||||
|
||||
// Assert
|
||||
Assert.That(macros.Any(), Is.True);
|
||||
Assert.That(macros.First().Properties.Values.Any(), Is.True);
|
||||
|
||||
var allMacros = MacroService.GetAll().ToList();
|
||||
foreach (var macro in macros)
|
||||
{
|
||||
Assert.That(allMacros.Any(x => x.Alias == macro.Alias), Is.True);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Package_With_Compositions()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.CompositionsTestPackage;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var templateElement = xml.Descendants("Templates").First();
|
||||
var docTypeElement = xml.Descendants("DocumentTypes").First();
|
||||
|
||||
|
||||
// Act
|
||||
var templates = PackageDataInstallation.ImportTemplates(templateElement.Elements("Template").ToList(), 0);
|
||||
var contentTypes = PackageDataInstallation.ImportDocumentTypes(docTypeElement.Elements("DocumentType"), 0);
|
||||
var numberOfDocTypes = (from doc in docTypeElement.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));
|
||||
Assert.That(contentTypes.Count(x => x.ParentId == -1), Is.EqualTo(3));
|
||||
|
||||
var textpage = contentTypes.First(x => x.Alias.Equals("umbTextyPage"));
|
||||
Assert.That(textpage.ParentId, Is.Not.EqualTo(-1));
|
||||
Assert.That(textpage.ContentTypeComposition.Count(), Is.EqualTo(3));
|
||||
Assert.That(textpage.ContentTypeCompositionExists("umbMaster"), Is.True);
|
||||
Assert.That(textpage.ContentTypeCompositionExists("Meta"), Is.True);
|
||||
Assert.That(textpage.ContentTypeCompositionExists("Seo"), Is.True);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Import_Package_With_Compositions_Ordered()
|
||||
{
|
||||
// Arrange
|
||||
string strXml = ImportResources.CompositionsTestPackage_Random;
|
||||
var xml = XElement.Parse(strXml);
|
||||
var docTypeElement = xml.Descendants("DocumentTypes").First();
|
||||
|
||||
|
||||
// Act
|
||||
var contentTypes = PackageDataInstallation.ImportDocumentTypes(docTypeElement.Elements("DocumentType"), 0);
|
||||
var numberOfDocTypes = (from doc in docTypeElement.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));
|
||||
|
||||
var testContentType = contentTypes.First(x => x.Alias.Equals("CompositeTest"));
|
||||
Assert.That(testContentType.ContentTypeComposition.Count(), Is.EqualTo(3));
|
||||
Assert.That(testContentType.ContentTypeCompositionExists("Content"), Is.True);
|
||||
Assert.That(testContentType.ContentTypeCompositionExists("Meta"), Is.True);
|
||||
Assert.That(testContentType.ContentTypeCompositionExists("Seo"), Is.True);
|
||||
}
|
||||
|
||||
private void AddLanguages()
|
||||
{
|
||||
var globalSettings = new GlobalSettings();
|
||||
var norwegian = new Core.Models.Language(globalSettings, "nb-NO");
|
||||
var english = new Core.Models.Language(globalSettings, "en-GB");
|
||||
LocalizationService.Save(norwegian, 0);
|
||||
LocalizationService.Save(english, 0);
|
||||
}
|
||||
|
||||
private void AssertDictionaryItem(string key, string expectedValue, string cultureCode)
|
||||
{
|
||||
Assert.That(LocalizationService.DictionaryItemExists(key), "DictionaryItem key does not exist");
|
||||
var dictionaryItem = LocalizationService.GetDictionaryItemByKey(key);
|
||||
var translation = dictionaryItem.Translations.SingleOrDefault(i => i.Language.IsoCode == cultureCode);
|
||||
Assert.IsNotNull(translation, "Translation to {0} was not added", cultureCode);
|
||||
var value = translation.Value;
|
||||
Assert.That(value, Is.EqualTo(expectedValue), "Translation value was not set");
|
||||
}
|
||||
|
||||
private void AddExistingEnglishParentDictionaryItem(string expectedEnglishParentValue)
|
||||
{
|
||||
var languages = LocalizationService.GetAllLanguages().ToList();
|
||||
var englishLanguage = languages.Single(l => l.IsoCode == "en-GB");
|
||||
LocalizationService.Save(
|
||||
new DictionaryItem("Parent")
|
||||
{
|
||||
Translations = new List<IDictionaryTranslation>
|
||||
{
|
||||
new DictionaryTranslation(englishLanguage, expectedEnglishParentValue),
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
private void AddExistingEnglishAndNorwegianParentDictionaryItem(string expectedEnglishParentValue, string expectedNorwegianParentValue)
|
||||
{
|
||||
var languages = LocalizationService.GetAllLanguages().ToList();
|
||||
var englishLanguage = languages.Single(l => l.IsoCode == "en-GB");
|
||||
var norwegianLanguage = languages.Single(l => l.IsoCode == "nb-NO");
|
||||
LocalizationService.Save(
|
||||
new DictionaryItem("Parent")
|
||||
{
|
||||
Translations = new List<IDictionaryTranslation>
|
||||
{
|
||||
new DictionaryTranslation(englishLanguage, expectedEnglishParentValue),
|
||||
new DictionaryTranslation(norwegianLanguage, expectedNorwegianParentValue),
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core.Hosting;
|
||||
using Umbraco.Core.Models.Packaging;
|
||||
using Umbraco.Core.Packaging;
|
||||
using Umbraco.Tests.Integration.Testing;
|
||||
using Umbraco.Tests.Testing;
|
||||
|
||||
namespace Umbraco.Tests.Packaging
|
||||
{
|
||||
[TestFixture]
|
||||
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerFixture)]
|
||||
public class PackageInstallationTest : UmbracoIntegrationTest
|
||||
{
|
||||
private IHostingEnvironment HostingEnvironment => GetRequiredService<IHostingEnvironment>();
|
||||
private IPackageInstallation PackageInstallation => GetRequiredService<IPackageInstallation>();
|
||||
|
||||
private const string DocumentTypePickerPackage = "Document_Type_Picker_1.1.umb";
|
||||
private const string HelloPackage = "Hello_1.0.0.zip";
|
||||
|
||||
[Test]
|
||||
public void Can_Read_Compiled_Package_1()
|
||||
{
|
||||
var package = PackageInstallation.ReadPackage(
|
||||
//this is where our test zip file is
|
||||
new FileInfo(Path.Combine(HostingEnvironment.MapPathContentRoot("~/TestData/Packages"), DocumentTypePickerPackage)));
|
||||
Assert.IsNotNull(package);
|
||||
Assert.AreEqual(1, package.Files.Count);
|
||||
Assert.AreEqual("095e064b-ba4d-442d-9006-3050983c13d8.dll", package.Files[0].UniqueFileName);
|
||||
Assert.AreEqual("/bin", package.Files[0].OriginalPath);
|
||||
Assert.AreEqual("Auros.DocumentTypePicker.dll", package.Files[0].OriginalName);
|
||||
Assert.AreEqual("Document Type Picker", package.Name);
|
||||
Assert.AreEqual("1.1", package.Version);
|
||||
Assert.AreEqual("http://www.opensource.org/licenses/mit-license.php", package.LicenseUrl);
|
||||
Assert.AreEqual("MIT", package.License);
|
||||
Assert.AreEqual(3, package.UmbracoVersion.Major);
|
||||
Assert.AreEqual(RequirementsType.Legacy, package.UmbracoVersionRequirementsType);
|
||||
Assert.AreEqual("@tentonipete", package.Author);
|
||||
Assert.AreEqual("auros.co.uk", package.AuthorUrl);
|
||||
Assert.AreEqual("Document Type Picker datatype that enables back office user to select one or many document types.", package.Readme);
|
||||
Assert.AreEqual(1, package.DataTypes.Count());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Read_Compiled_Package_2()
|
||||
{
|
||||
var package = PackageInstallation.ReadPackage(
|
||||
//this is where our test zip file is
|
||||
new FileInfo(Path.Combine(HostingEnvironment.MapPathContentRoot("~/TestData/Packages"), HelloPackage)));
|
||||
Assert.IsNotNull(package);
|
||||
Assert.AreEqual(0, package.Files.Count);
|
||||
Assert.AreEqual("Hello", package.Name);
|
||||
Assert.AreEqual("1.0.0", package.Version);
|
||||
Assert.AreEqual("http://opensource.org/licenses/MIT", package.LicenseUrl);
|
||||
Assert.AreEqual("MIT License", package.License);
|
||||
Assert.AreEqual(8, package.UmbracoVersion.Major);
|
||||
Assert.AreEqual(0, package.UmbracoVersion.Minor);
|
||||
Assert.AreEqual(0, package.UmbracoVersion.Build);
|
||||
Assert.AreEqual(RequirementsType.Strict, package.UmbracoVersionRequirementsType);
|
||||
Assert.AreEqual("asdf", package.Author);
|
||||
Assert.AreEqual("http://hello.com", package.AuthorUrl);
|
||||
Assert.AreEqual("asdf", package.Readme);
|
||||
Assert.AreEqual(1, package.Documents.Count());
|
||||
Assert.AreEqual("root", package.Documents.First().ImportMode);
|
||||
Assert.AreEqual(1, package.DocumentTypes.Count());
|
||||
Assert.AreEqual(1, package.Templates.Count());
|
||||
Assert.AreEqual(1, package.DataTypes.Count());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Read_Compiled_Package_Warnings()
|
||||
{
|
||||
//copy a file to the same path that the package will install so we can detect file conflicts
|
||||
|
||||
var filePath = Path.Combine(HostingEnvironment.MapPathContentRoot("~/"), "bin", "Auros.DocumentTypePicker.dll");
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(filePath));
|
||||
File.WriteAllText(filePath, "test");
|
||||
|
||||
//this is where our test zip file is
|
||||
var packageFile = Path.Combine(HostingEnvironment.MapPathContentRoot("~/TestData/Packages"), DocumentTypePickerPackage);
|
||||
Console.WriteLine(packageFile);
|
||||
|
||||
var package = PackageInstallation.ReadPackage(new FileInfo(packageFile));
|
||||
var preInstallWarnings = package.Warnings;
|
||||
Assert.IsNotNull(preInstallWarnings);
|
||||
|
||||
Assert.AreEqual(1, preInstallWarnings.FilesReplaced.Count());
|
||||
Assert.AreEqual(Path.Combine("bin", "Auros.DocumentTypePicker.dll"), preInstallWarnings.FilesReplaced.First());
|
||||
|
||||
// TODO: More Asserts
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Install_Files()
|
||||
{
|
||||
var package = PackageInstallation.ReadPackage(
|
||||
//this is where our test zip file is
|
||||
new FileInfo(Path.Combine(HostingEnvironment.MapPathContentRoot("~/TestData/Packages"), DocumentTypePickerPackage)));
|
||||
|
||||
var def = PackageDefinition.FromCompiledPackage(package);
|
||||
def.Id = 1;
|
||||
def.PackageId = Guid.NewGuid();
|
||||
def.Files = new List<string>(); //clear out the files of the def for testing, this should be populated by the install
|
||||
|
||||
var result = PackageInstallation.InstallPackageFiles(def, package, -1).ToList();
|
||||
|
||||
Assert.AreEqual(1, result.Count);
|
||||
Assert.AreEqual(Path.Combine("bin", "Auros.DocumentTypePicker.dll"), result[0]);
|
||||
Assert.IsTrue(File.Exists(Path.Combine(HostingEnvironment.MapPathContentRoot("~/"), result[0])));
|
||||
|
||||
//make sure the def is updated too
|
||||
Assert.AreEqual(result.Count, def.Files.Count);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Install_Data()
|
||||
{
|
||||
var package = PackageInstallation.ReadPackage(
|
||||
//this is where our test zip file is
|
||||
new FileInfo(Path.Combine(HostingEnvironment.MapPathContentRoot("~/TestData/Packages"), DocumentTypePickerPackage)));
|
||||
var def = PackageDefinition.FromCompiledPackage(package);
|
||||
def.Id = 1;
|
||||
def.PackageId = Guid.NewGuid();
|
||||
|
||||
var summary = PackageInstallation.InstallPackageData(def, package, -1);
|
||||
|
||||
Assert.AreEqual(1, summary.DataTypesInstalled.Count());
|
||||
|
||||
|
||||
//make sure the def is updated too
|
||||
Assert.AreEqual(summary.DataTypesInstalled.Count(), def.DataTypes.Count);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@ using Umbraco.Core.Services;
|
||||
using Umbraco.Tests.Common.Builders;
|
||||
using Umbraco.Tests.Common.Builders.Extensions;
|
||||
using Umbraco.Tests.Integration.Testing;
|
||||
using Umbraco.Tests.Integration.Umbraco.Infrastructure.Services.Importing;
|
||||
using Umbraco.Tests.Services.Importing;
|
||||
using Umbraco.Tests.Testing;
|
||||
|
||||
namespace Umbraco.Tests.Integration.Umbraco.Infrastructure.Services
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<umbPackage>
|
||||
<files />
|
||||
<info>
|
||||
<package>
|
||||
<name>CheckboxListTest</name>
|
||||
<version>1</version>
|
||||
<license url="http://www.opensource.org/licenses/mit-license.php">MIT license</license>
|
||||
<url>1</url>
|
||||
<requirements>
|
||||
<major>3</major>
|
||||
<minor>0</minor>
|
||||
<patch>0</patch>
|
||||
</requirements>
|
||||
</package>
|
||||
<author>
|
||||
<name>1</name>
|
||||
<website>1</website>
|
||||
</author>
|
||||
<readme><![CDATA[]]></readme>
|
||||
</info>
|
||||
<Documents>
|
||||
<DocumentSet importMode="root">
|
||||
<NewType id="1148" parentID="-1" level="1" creatorID="0" sortOrder="9" createDate="2013-07-23T12:06:07" updateDate="2013-07-23T15:56:37" nodeName="DoIt" urlName="doit" path="-1,1148" isDoc="" nodeType="1134" creatorName="admin" writerName="admin" writerID="0" template="1133" nodeTypeAlias="NewType">
|
||||
<testList><![CDATA[test3]]></testList>
|
||||
</NewType>
|
||||
</DocumentSet>
|
||||
</Documents>
|
||||
<DocumentTypes>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>NewType</Name>
|
||||
<Alias>NewType</Alias>
|
||||
<Icon>.sprTreeFolder</Icon>
|
||||
<Thumbnail>folder.png</Thumbnail>
|
||||
<Description>
|
||||
</Description>
|
||||
<AllowAtRoot>True</AllowAtRoot>
|
||||
<AllowedTemplates>
|
||||
<Template>NewType</Template>
|
||||
</AllowedTemplates>
|
||||
<DefaultTemplate>NewType</DefaultTemplate>
|
||||
</Info>
|
||||
<Structure />
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>testList</Name>
|
||||
<Alias>testList</Alias>
|
||||
<Type>Umbraco.CheckBoxList</Type>
|
||||
<Definition>8dacee1a-1bbd-46c0-b07f-8ffd49fcca7c</Definition>
|
||||
<Tab>
|
||||
</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
</GenericProperties>
|
||||
<Tabs />
|
||||
</DocumentType>
|
||||
</DocumentTypes>
|
||||
<Templates />
|
||||
<Stylesheets />
|
||||
<Macros />
|
||||
<DictionaryItems />
|
||||
<Languages />
|
||||
<DataTypes>
|
||||
<DataType Name="NewCheckBox" Id="Umbraco.CheckBoxList" Definition="8dacee1a-1bbd-46c0-b07f-8ffd49fcca7c" DatabaseType="Nvarchar"
|
||||
Configuration="{"items":[{"id":59,"value":"test"},{"id":60,"value":"test3"},{"id":61,"value":"test2"}]}">
|
||||
<!-- <PreValues>
|
||||
<PreValue Id="59" Value="test" />
|
||||
<PreValue Id="60" Value="test3" />
|
||||
<PreValue Id="61" Value="test2" />
|
||||
</PreValues> -->
|
||||
</DataType>
|
||||
</DataTypes>
|
||||
</umbPackage>
|
||||
@@ -0,0 +1,175 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<umbPackage>
|
||||
<files />
|
||||
<info>
|
||||
<package>
|
||||
<name>Composite Test</name>
|
||||
<version>dfsfd</version>
|
||||
<license url="http://opensource.org/licenses/MIT">MIT License</license>
|
||||
<url>ddsff</url>
|
||||
<requirements>
|
||||
<major>3</major>
|
||||
<minor>0</minor>
|
||||
<patch>0</patch>
|
||||
</requirements>
|
||||
</package>
|
||||
<author>
|
||||
<name>fsdfds</name>
|
||||
<website>sfdf</website>
|
||||
</author>
|
||||
<readme><![CDATA[sdffds]]></readme>
|
||||
</info>
|
||||
<Documents>
|
||||
<DocumentSet importMode="root">
|
||||
<CompositeTest id="1083" parentID="-1" level="1" creatorID="0" sortOrder="1" createDate="2014-11-26T15:02:43" updateDate="2014-11-26T15:02:43" nodeName="Composite test" urlName="composite-test" path="-1,1083" isDoc="" nodeType="1082" creatorName="Niels Hartvig" writerName="Niels Hartvig" writerID="0" template="1081" nodeTypeAlias="CompositeTest">
|
||||
<description><![CDATA[Description]]></description>
|
||||
<tags><![CDATA[umbraco,7.2]]></tags>
|
||||
<fancy><![CDATA[Fancy pancy]]></fancy>
|
||||
<content><![CDATA[<p>Hello World</p>]]></content>
|
||||
</CompositeTest>
|
||||
</DocumentSet>
|
||||
</Documents>
|
||||
<DocumentTypes>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>Composite Test</Name>
|
||||
<Alias>CompositeTest</Alias>
|
||||
<Icon>.sprTreeFolder</Icon>
|
||||
<Thumbnail>folder.png</Thumbnail>
|
||||
<Description />
|
||||
<AllowAtRoot>False</AllowAtRoot>
|
||||
<IsListView>False</IsListView>
|
||||
<Compositions>
|
||||
<Composition>Meta</Composition>
|
||||
<Composition>Seo</Composition>
|
||||
<Composition>Content</Composition>
|
||||
</Compositions>
|
||||
<AllowedTemplates>
|
||||
<Template>CompositeTest</Template>
|
||||
</AllowedTemplates>
|
||||
<DefaultTemplate>CompositeTest</DefaultTemplate>
|
||||
</Info>
|
||||
<Structure />
|
||||
<GenericProperties />
|
||||
<Tabs />
|
||||
</DocumentType>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>Content</Name>
|
||||
<Alias>Content</Alias>
|
||||
<Icon>.sprTreeFolder</Icon>
|
||||
<Thumbnail>folder.png</Thumbnail>
|
||||
<Description />
|
||||
<AllowAtRoot>False</AllowAtRoot>
|
||||
<IsListView>False</IsListView>
|
||||
<Compositions />
|
||||
<AllowedTemplates />
|
||||
<DefaultTemplate />
|
||||
</Info>
|
||||
<Structure />
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>Content</Name>
|
||||
<Alias>content</Alias>
|
||||
<Type>Umbraco.TinyMCE</Type>
|
||||
<Definition>ca90c950-0aff-4e72-b976-a30b1ac57dad</Definition>
|
||||
<Tab>Content</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
</GenericProperties>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Id>21</Id>
|
||||
<Caption>Content</Caption>
|
||||
<SortOrder>0</SortOrder>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
</DocumentType>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>Meta</Name>
|
||||
<Alias>Meta</Alias>
|
||||
<Icon>.sprTreeFolder</Icon>
|
||||
<Thumbnail>folder.png</Thumbnail>
|
||||
<Description />
|
||||
<AllowAtRoot>False</AllowAtRoot>
|
||||
<IsListView>False</IsListView>
|
||||
<Compositions />
|
||||
<AllowedTemplates />
|
||||
<DefaultTemplate />
|
||||
</Info>
|
||||
<Structure />
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>Description</Name>
|
||||
<Alias>description</Alias>
|
||||
<Type>Umbraco.TextboxMultiple</Type>
|
||||
<Definition>c6bac0dd-4ab9-45b1-8e30-e4b619ee5da3</Definition>
|
||||
<Tab>Meta</Tab>
|
||||
<Mandatory>True</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[Enter a description]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Tags</Name>
|
||||
<Alias>tags</Alias>
|
||||
<Type>Umbraco.Tags</Type>
|
||||
<Definition>b6b73142-b9c1-4bf8-a16d-e1c23320b549</Definition>
|
||||
<Tab>Meta</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
</GenericProperties>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Id>19</Id>
|
||||
<Caption>Meta</Caption>
|
||||
<SortOrder>0</SortOrder>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
</DocumentType>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>SEO</Name>
|
||||
<Alias>Seo</Alias>
|
||||
<Icon>.sprTreeFolder</Icon>
|
||||
<Thumbnail>folder.png</Thumbnail>
|
||||
<Description />
|
||||
<AllowAtRoot>False</AllowAtRoot>
|
||||
<IsListView>False</IsListView>
|
||||
<Compositions />
|
||||
<AllowedTemplates />
|
||||
<DefaultTemplate />
|
||||
</Info>
|
||||
<Structure />
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>Fancy</Name>
|
||||
<Alias>fancy</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>SEO</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
</GenericProperties>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Id>20</Id>
|
||||
<Caption>SEO</Caption>
|
||||
<SortOrder>0</SortOrder>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
</DocumentType>
|
||||
</DocumentTypes>
|
||||
<Templates />
|
||||
<Stylesheets />
|
||||
<Macros />
|
||||
<DictionaryItems />
|
||||
<Languages />
|
||||
<DataTypes />
|
||||
</umbPackage>
|
||||
@@ -0,0 +1,924 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<umbPackage>
|
||||
<files />
|
||||
<info>
|
||||
<package>
|
||||
<name>Compositions Packaged</name>
|
||||
<version>1.0</version>
|
||||
<license url="http://opensource.org/licenses/MIT">MIT License</license>
|
||||
<url>http://blog.sitereactor.dk</url>
|
||||
<requirements>
|
||||
<major>3</major>
|
||||
<minor>0</minor>
|
||||
<patch>0</patch>
|
||||
</requirements>
|
||||
</package>
|
||||
<author>
|
||||
<name>Morten Christensen</name>
|
||||
<website>http://blog.sitereactor.dk</website>
|
||||
</author>
|
||||
<readme><![CDATA[This is a test of packaging compositions]]></readme>
|
||||
</info>
|
||||
<Documents>
|
||||
<DocumentSet importMode="root">
|
||||
<umbHomePage id="1068" parentID="-1" level="1" creatorID="0" sortOrder="0" createDate="2014-11-26T12:52:35" updateDate="2014-11-26T12:52:36" nodeName="Home" urlName="home" path="-1,1068" isDoc="" nodeType="1056" creatorName="Morten Christensen" writerName="Morten Christensen" writerID="0" template="1051" nodeTypeAlias="umbHomePage">
|
||||
<umbracoNaviHide>0</umbracoNaviHide>
|
||||
<title><![CDATA[Txt: A responsive starter kit for Umbraco]]></title>
|
||||
<facebookLink><![CDATA[http://facebook.com/Umbraco]]></facebookLink>
|
||||
<twitterLink><![CDATA[http://twitter.com/UmbracoProject]]></twitterLink>
|
||||
<rssLink><![CDATA[http://feeds.feedburner.com/umbracoblog]]></rssLink>
|
||||
<googleLink><![CDATA[https://google.com/+Umbraco]]></googleLink>
|
||||
<hideBanner>0</hideBanner>
|
||||
<bannerHeader><![CDATA[This is some text that needs to pop]]></bannerHeader>
|
||||
<bannerSubheader><![CDATA[It will lead to a call-to-action, just click the button...]]></bannerSubheader>
|
||||
<bannerLinkText><![CDATA[You know you want to click me]]></bannerLinkText>
|
||||
<bannerLink>1054</bannerLink>
|
||||
<bannerBackgroundImage><![CDATA[/media/SampleImages/1008/banner.jpg]]></bannerBackgroundImage>
|
||||
<aboutTitle><![CDATA[What's this about?]]></aboutTitle>
|
||||
<aboutText><![CDATA[<p>This is <a href="http://html5up.net/txt/">TXT</a>, a free site template designed by <a href="http://n33.co">n33</a> for <a href="http://html5up.net/">HTML5 UP</a>. It's built on the <a href="http://skeljs.org">skelJS</a> framework, uses well-thought out HTML5 and CSS3, and is fully responsive making it a great starting point for your own projects. And, like everything else we make, it's also free to use for pretty much any personal or commercial work under the <a href="http://html5up.net/license/">Creative Commons Attribution</a> license, so go ahead and use it – just don't forget to credit us!</p>]]></aboutText>
|
||||
<siteName><![CDATA[Umbraco Txt]]></siteName>
|
||||
<byline><![CDATA[A responsive starter kit for Umbraco]]></byline>
|
||||
<copyright><![CDATA[Umbraco]]></copyright>
|
||||
<umbTextPage id="1069" parentID="1068" level="2" creatorID="0" sortOrder="0" createDate="2014-11-26T12:52:36" updateDate="2014-11-26T12:52:36" nodeName="Getting Started" urlName="getting-started" path="-1,1068,1069" isDoc="" nodeType="1059" creatorName="Morten Christensen" writerName="Morten Christensen" writerID="0" template="1054" nodeTypeAlias="umbTextPage">
|
||||
<umbracoNaviHide>0</umbracoNaviHide>
|
||||
<featuredPage>1</featuredPage>
|
||||
<image><![CDATA[/media/SampleImages/1063/pic01.jpg]]></image>
|
||||
<bodyText>
|
||||
<![CDATA[<p>You've installed Umbraco and the "Txt" Starter Kit.</p>
|
||||
<p>Edit the text on the homepage and create a site structure by adding new texpages to your site. This is all done in the <strong>Content</strong> section.</p>
|
||||
<p>If you find the editing options provided by the Txt site too limited for you needs, simply add more properties to the page by going to the <strong>Settings</strong> section, expanding the <strong>Document Types</strong> item and adding new properties on the <strong>Generic Properties</strong> tab. You can find more information about <a href="http://umbraco.org/help-and-support/video-tutorials/introduction-to-umbraco/sitebuilder-introduction/document-types" title="About Umbraco Document Types">document types and properties</a> at the <a href="http://umbraco.com" title="The Umbraco Website">Umbraco website</a>.</p>
|
||||
<p>You'll probably want to personalize your site by changing the current design. This is also done in the <strong>Settings</strong> section, by editing the CSS styles and HTML templates. Umbraco uses master templates, so the main, common markup is placed in the <strong>Starterkit Master</strong> template, while the Homeage and Textpage have separate templates for their unique layouts. You can find more information about <a href="http://umbraco.org/help-and-support/video-tutorials/introduction-to-umbraco/sitebuilder-introduction/templates" title="Umbraco Templates and Stylesheets">templates and css</a> in umbraco at the umbraco website.</p>
|
||||
<p>Once you're happy with your site's design, you might want to add more functionality, such as maps, image galleries or forms. This is done by <a href="http://umbraco.org/help-and-support/video-tutorials/getting-started" title="Umbraco Modules">installing Umbraco modules</a>.</p>]]>
|
||||
</bodyText>
|
||||
</umbTextPage>
|
||||
<umbTextPage id="1070" parentID="1068" level="2" creatorID="0" sortOrder="1" createDate="2014-11-26T12:52:36" updateDate="2014-11-26T12:52:36" nodeName="Go Further" urlName="go-further" path="-1,1068,1070" isDoc="" nodeType="1059" creatorName="Morten Christensen" writerName="Morten Christensen" writerID="0" template="1054" nodeTypeAlias="umbTextPage">
|
||||
<umbracoNaviHide>0</umbracoNaviHide>
|
||||
<featuredPage>1</featuredPage>
|
||||
<image><![CDATA[/media/SampleImages/1060/pic02.jpg]]></image>
|
||||
<bodyText>
|
||||
<![CDATA[<p>The Txt Starter Kit only scratches the surface of what's possible with Umbraco. Below the Txt Starter Kit and its modules lies a great architecture that lets you implement whatever you need.</p>
|
||||
<p>With Umbraco you've finally got a solid, open and reliable platform for websites as basic as the Txt site, and Umbraco can be rapidly expanded to support multi-language websites, collaboration platforms and intra/extranets, to name just a few.</p>
|
||||
<p>Advanced functionality is created with Umbraco macros, built with Umbraco's award-winning .NET integration, including full support for any .NET User or Custom control and ASP.NET MVC. Create and integrate your own .NET macros in mere minutes with point and click simplicity. Simply copy your controls to the Umbraco website, go to the <strong>Developer</strong> section and create a new macro, selecting your control from the list.</p>
|
||||
<p>You can also use <a href="http://umbraco.org/help-and-support/video-tutorials/getting-started/working-with-webmatrix" title="Working with Razor">Microsoft's Razor</a> syntax to quickly add dynamic functionality to your site.</p>
|
||||
<p>We've also gathered the best community macros into a repository that's also accessed from the <strong>Developer</strong> section, in the <strong>Packages</strong> area. You can find more information <a href="http://umbraco.org/help-and-support/video-tutorials/introduction-to-umbraco/sitebuilder-introduction/what-are-macros" title="About creating Umbraco macros">about creating macros</a>, on the Umbraco website.</p>
|
||||
<p>The sky is the limit with Umbraco, and you have the benefit a friendly community, training, and guaranteed support. Find out how to <a href="http://umbraco.org/help-and-support" title="Get Umbraco Support">get help</a>.</p>]]>
|
||||
</bodyText>
|
||||
</umbTextPage>
|
||||
<umbTextPage id="1071" parentID="1068" level="2" creatorID="0" sortOrder="2" createDate="2014-11-26T12:52:36" updateDate="2014-11-26T12:52:36" nodeName="Installing Modules" urlName="installing-modules" path="-1,1068,1071" isDoc="" nodeType="1059" creatorName="Morten Christensen" writerName="Morten Christensen" writerID="0" template="1054" nodeTypeAlias="umbTextPage">
|
||||
<umbracoNaviHide>0</umbracoNaviHide>
|
||||
<featuredPage>1</featuredPage>
|
||||
<image><![CDATA[/media/SampleImages/1061/pic04.jpg]]></image>
|
||||
<bodyText>
|
||||
<![CDATA[<p>Umbraco modules encapsulate specific bits of advanced functionality that are easily added to your website.</p>
|
||||
<p>Once installed, Umbraco modules are open source and easy to customize if you want to modify the behavior for your specific needs.</p>
|
||||
<p>Because Umbraco modules are provided under the MIT license you are free to use and modify them any way you want, with no strings attached.</p>
|
||||
<p>To add Umbraco modules to your website, go to the <strong>Settings</strong> section, expand the <strong>Templates</strong> item, select the <strong>Starterkit Master</strong> template, then click the <strong>Customize Skin</strong> button on the toolbar.</p>
|
||||
<p>Umbraco modules are available for various kinds of navigation, a sitemap, social media feeds, and a contact form. The list of available Umbraco modules is growing rapidly and is automatically updated from a central source, always fresh and current.</p>
|
||||
<p><a href="http://umbraco.org/get-started" title="Get Started with Umbraco">Get more information</a> about the umbraco way.</p>]]>
|
||||
</bodyText>
|
||||
</umbTextPage>
|
||||
<umbTextPage id="1072" parentID="1068" level="2" creatorID="0" sortOrder="3" createDate="2014-11-26T12:52:36" updateDate="2014-11-26T12:52:36" nodeName="About" urlName="about" path="-1,1068,1072" isDoc="" nodeType="1059" creatorName="Morten Christensen" writerName="Morten Christensen" writerID="0" template="1054" nodeTypeAlias="umbTextPage">
|
||||
<umbracoNaviHide>0</umbracoNaviHide>
|
||||
<featuredPage>1</featuredPage>
|
||||
<image><![CDATA[/media/SampleImages/1001/pic03.jpg]]></image>
|
||||
<bodyText>
|
||||
<![CDATA[<p>The Txt Starter Kit gives you a small website that introduces you to a set of well-defined conventions for building an Umbraco website.</p>
|
||||
<p>Now that you know what the Txt Starter Kit is, it is time to get started using Umbraco.</p>]]>
|
||||
</bodyText>
|
||||
</umbTextPage>
|
||||
<umbNewsOverview id="1073" parentID="1068" level="2" creatorID="0" sortOrder="4" createDate="2014-11-26T12:52:36" updateDate="2014-11-26T12:52:36" nodeName="News" urlName="news" path="-1,1068,1073" isDoc="" nodeType="1058" creatorName="Morten Christensen" writerName="Morten Christensen" writerID="0" template="1053" nodeTypeAlias="umbNewsOverview">
|
||||
<umbracoNaviHide>0</umbracoNaviHide>
|
||||
<title><![CDATA[Adventure log]]></title>
|
||||
<umbNewsItem id="1074" parentID="1073" level="3" creatorID="0" sortOrder="0" createDate="2014-11-26T12:52:36" updateDate="2014-11-26T12:52:36" nodeName="The 10 remarkable features of object" urlName="the-10-remarkable-features-of-object" path="-1,1068,1073,1074" isDoc="" nodeType="1057" creatorName="Morten Christensen" writerName="Morten Christensen" writerID="0" template="1052" nodeTypeAlias="umbNewsItem">
|
||||
<umbracoNaviHide>0</umbracoNaviHide>
|
||||
<bodyText>
|
||||
<![CDATA[<p>Ita prorsus, inquam; Hanc ergo intuens debet institutum illud quasi signum absolvere. Ergo adhuc, quantum equidem intellego, causa non videtur fuisse mutandi nominis. Quia dolori non voluptas contraria est, sed doloris privatio. Nos autem non solum beatae vitae istam esse oblectationem videmus, sed etiam levamentum miseriarum. Quodsi ipsam honestatem undique pertectam atque absolutam. Nos cum te, M. Quod vestri non item.</p>
|
||||
<p>Cum id quoque, ut cupiebat, audivisset, evelli iussit eam, qua erat transfixus, hastam. Quarum ambarum rerum cum medicinam pollicetur, luxuriae licentiam pollicetur. Quid iudicant sensus? Quo tandem modo?</p>]]>
|
||||
</bodyText>
|
||||
</umbNewsItem>
|
||||
<umbNewsItem id="1075" parentID="1073" level="3" creatorID="0" sortOrder="1" createDate="2014-11-26T12:52:36" updateDate="2014-11-26T12:52:36" nodeName="This is a wonderful news item" urlName="this-is-a-wonderful-news-item" path="-1,1068,1073,1075" isDoc="" nodeType="1057" creatorName="Morten Christensen" writerName="Morten Christensen" writerID="0" template="1052" nodeTypeAlias="umbNewsItem">
|
||||
<umbracoNaviHide>0</umbracoNaviHide>
|
||||
<bodyText>
|
||||
<![CDATA[<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Commoda autem et incommoda in eo genere sunt, quae praeposita et reiecta diximus; Bestiarum vero nullum iudicium puto. Est enim effectrix multarum et magnarum voluptatum. Duo Reges: constructio interrete. Claudii libidini, qui tum erat summo ne imperio, dederetur. Quarum ambarum rerum cum medicinam pollicetur, luxuriae licentiam pollicetur. Sed virtutem ipsam inchoavit, nihil amplius.</p>
|
||||
<p>Ita redarguitur ipse a sese, convincunturque scripta eius probitate ipsius ac moribus. Istam voluptatem, inquit, Epicurus ignorat? Sed venio ad inconstantiae crimen, ne saepius dicas me aberrare; Sic, et quidem diligentius saepiusque ista loquemur inter nos agemusque communiter. Primum in nostrane potestate est, quid meminerimus? Consequens enim est et post oritur, ut dixi. Hoc mihi cum tuo fratre convenit. Immo videri fortasse. Itaque in rebus minime obscuris non multus est apud eos disserendi labor. Aliud igitur esse censet gaudere, aliud non dolere.</p>]]>
|
||||
</bodyText>
|
||||
</umbNewsItem>
|
||||
<umbNewsItem id="1076" parentID="1073" level="3" creatorID="0" sortOrder="2" createDate="2014-11-26T12:52:36" updateDate="2014-11-26T12:52:36" nodeName="You really need to read this!" urlName="you-really-need-to-read-this" path="-1,1068,1073,1076" isDoc="" nodeType="1057" creatorName="Morten Christensen" writerName="Morten Christensen" writerID="0" template="1052" nodeTypeAlias="umbNewsItem">
|
||||
<umbracoNaviHide>0</umbracoNaviHide>
|
||||
<bodyText>
|
||||
<![CDATA[<p><span>Ut aliquid scire se gaudeant? Hanc ergo intuens debet institutum illud quasi signum absolvere. Vestri haec verecundius, illi fortasse constantius. Itaque sensibus rationem adiunxit et ratione effecta sensus non reliquit. Sed ea mala virtuti magnitudine obruebantur. Quasi ego id curem, quid ille aiat aut neget. Verum tamen cum de rebus grandioribus dicas, ipsae res verba rapiunt; Apparet statim, quae sint officia, quae actiones.</span></p>
|
||||
<p><span><span>Virtutibus igitur rectissime mihi videris et ad consuetudinem nostrae orationis vitia posuisse contraria. Nonne videmus quanta perturbatio rerum omnium consequatur, quanta confusio? Sed eum qui audiebant, quoad poterant, defendebant sententiam suam. Ut necesse sit omnium rerum, quae natura vigeant, similem esse finem, non eundem.</span></span></p>]]>
|
||||
</bodyText>
|
||||
</umbNewsItem>
|
||||
<umbNewsItem id="1077" parentID="1073" level="3" creatorID="0" sortOrder="3" createDate="2014-11-26T12:52:36" updateDate="2014-11-26T12:52:36" nodeName="Txt Starter Kit For Umbraco Released" urlName="txt-starter-kit-for-umbraco-released" path="-1,1068,1073,1077" isDoc="" nodeType="1057" creatorName="Morten Christensen" writerName="Morten Christensen" writerID="0" template="1052" nodeTypeAlias="umbNewsItem">
|
||||
<umbracoNaviHide>0</umbracoNaviHide>
|
||||
<publishDate>2021-09-20T00:00:00</publishDate>
|
||||
<image><![CDATA[/media/SampleImages/1077/pic05.jpg]]></image>
|
||||
<subheader><![CDATA[In all it's MVC Views goodness]]></subheader>
|
||||
<bodyText>
|
||||
<![CDATA[<p><span>Sed ad haec, nisi molestum est, habeo quae velim. Neque enim disputari sine reprehensione nec cum iracundia aut pertinacia recte disputari potest. Nec vero alia sunt quaerenda contra Carneadeam illam sententiam. Deinde disputat, quod cuiusque generis animantium statui deceat extremum. Facit igitur Lucius noster prudenter, qui audire de summo bono potissimum velit; Quis non odit sordidos, vanos, leves, futtiles?</span></p>
|
||||
<p><span><span>Negat enim summo bono afferre incrementum diem. Haec mihi videtur delicatior, ut ita dicam, molliorque ratio, quam virtutis vis gravitasque postulat. Haec quo modo conveniant, non sane intellego. Quis enim confidit semper sibi illud stabile et firmum permansurum, quod fragile et caducum sit? Multoque hoc melius nos veriusque quam Stoici. Igitur neque stultorum quisquam beatus neque sapientium non beatus. De hominibus dici non necesse est. Non enim iam stirpis bonum quaeret, sed animalis. Nobis Heracleotes ille Dionysius flagitiose descivisse videtur a Stoicis propter oculorum dolorem. At, illa, ut vobis placet, partem quandam tuetur, reliquam deserit.</span></span></p>]]>
|
||||
</bodyText>
|
||||
</umbNewsItem>
|
||||
</umbNewsOverview>
|
||||
</umbHomePage>
|
||||
</DocumentSet>
|
||||
</Documents>
|
||||
<DocumentTypes>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>Master</Name>
|
||||
<Alias>umbMaster</Alias>
|
||||
<Icon>folder.gif</Icon>
|
||||
<Thumbnail>folder.png</Thumbnail>
|
||||
<Description />
|
||||
<AllowAtRoot>False</AllowAtRoot>
|
||||
<IsListView>False</IsListView>
|
||||
<Compositions />
|
||||
<AllowedTemplates />
|
||||
<DefaultTemplate />
|
||||
</Info>
|
||||
<Structure />
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>Hide in navigation?</Name>
|
||||
<Alias>umbracoNaviHide</Alias>
|
||||
<Type>Umbraco.TrueFalse</Type>
|
||||
<Definition>92897bc6-a5f3-4ffe-ae27-f2e7e33dda49</Definition>
|
||||
<Tab />
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[If set to "Yes", this page will be hidden from the navigation menu at the top.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Page title</Name>
|
||||
<Alias>title</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Content</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[The page title overrules the name this page was given. So if the page name is "About us" the title could be "About Our Company Name".]]></Description>
|
||||
</GenericProperty>
|
||||
</GenericProperties>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Id>12</Id>
|
||||
<Caption>Content</Caption>
|
||||
<SortOrder>0</SortOrder>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
</DocumentType>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>Home</Name>
|
||||
<Alias>umbHomePage</Alias>
|
||||
<Icon>.sprTreeSettingDomain</Icon>
|
||||
<Thumbnail>docWithImage.png</Thumbnail>
|
||||
<Description />
|
||||
<AllowAtRoot>False</AllowAtRoot>
|
||||
<IsListView>False</IsListView>
|
||||
<Master>umbMaster</Master>
|
||||
<Compositions>
|
||||
<Composition>umbMaster</Composition>
|
||||
</Compositions>
|
||||
<AllowedTemplates>
|
||||
<Template>umbHomePage</Template>
|
||||
</AllowedTemplates>
|
||||
<DefaultTemplate>umbHomePage</DefaultTemplate>
|
||||
</Info>
|
||||
<Structure>
|
||||
<DocumentType>umbTextPage</DocumentType>
|
||||
</Structure>
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>Facebook link</Name>
|
||||
<Alias>facebookLink</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Social</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Twitter link</Name>
|
||||
<Alias>twitterLink</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Social</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Rss link</Name>
|
||||
<Alias>rssLink</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Social</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Dribbble link</Name>
|
||||
<Alias>dribbbleLink</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Social</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>LinkedIn link</Name>
|
||||
<Alias>linkedInLink</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Social</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Google+ link</Name>
|
||||
<Alias>googleLink</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Social</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Hide banner?</Name>
|
||||
<Alias>hideBanner</Alias>
|
||||
<Type>Umbraco.TrueFalse</Type>
|
||||
<Definition>92897bc6-a5f3-4ffe-ae27-f2e7e33dda49</Definition>
|
||||
<Tab>Banner</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Banner Header</Name>
|
||||
<Alias>bannerHeader</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Banner</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Banner Subheader</Name>
|
||||
<Alias>bannerSubheader</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Banner</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Banner link text</Name>
|
||||
<Alias>bannerLinkText</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Banner</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Banner link</Name>
|
||||
<Alias>bannerLink</Alias>
|
||||
<Type>Umbraco.ContentPickerAlias</Type>
|
||||
<Definition>a6857c73-d6e9-480c-b6e6-f15f6ad11125</Definition>
|
||||
<Tab>Banner</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Banner background image</Name>
|
||||
<Alias>bannerBackgroundImage</Alias>
|
||||
<Type>Umbraco.UploadField</Type>
|
||||
<Definition>84c6b441-31df-4ffe-b67e-67d5bc3ae65a</Definition>
|
||||
<Tab>Banner</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>About Title</Name>
|
||||
<Alias>aboutTitle</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>About</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>AboutText</Name>
|
||||
<Alias>aboutText</Alias>
|
||||
<Type>Umbraco.TinyMCE</Type>
|
||||
<Definition>ca90c950-0aff-4e72-b976-a30b1ac57dad</Definition>
|
||||
<Tab>About</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Site Name</Name>
|
||||
<Alias>siteName</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Content</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Byline</Name>
|
||||
<Alias>byline</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Content</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Copyright</Name>
|
||||
<Alias>copyright</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Content</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
</GenericProperties>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Id>13</Id>
|
||||
<Caption>Social</Caption>
|
||||
<SortOrder>0</SortOrder>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<Id>14</Id>
|
||||
<Caption>Banner</Caption>
|
||||
<SortOrder>1</SortOrder>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<Id>15</Id>
|
||||
<Caption>About</Caption>
|
||||
<SortOrder>2</SortOrder>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<Id>16</Id>
|
||||
<Caption>Content</Caption>
|
||||
<SortOrder>3</SortOrder>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
</DocumentType>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>Meta</Name>
|
||||
<Alias>Meta</Alias>
|
||||
<Icon>icon-truck</Icon>
|
||||
<Thumbnail>folder.png</Thumbnail>
|
||||
<Description />
|
||||
<AllowAtRoot>False</AllowAtRoot>
|
||||
<IsListView>False</IsListView>
|
||||
<Compositions />
|
||||
<AllowedTemplates />
|
||||
<DefaultTemplate />
|
||||
</Info>
|
||||
<Structure />
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>Meta Keywords</Name>
|
||||
<Alias>metaKeywords</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Meta</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
</GenericProperties>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Id>19</Id>
|
||||
<Caption>Meta</Caption>
|
||||
<SortOrder>9</SortOrder>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
</DocumentType>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>News Item</Name>
|
||||
<Alias>umbNewsItem</Alias>
|
||||
<Icon>.sprTreeDocPic</Icon>
|
||||
<Thumbnail>docWithImage.png</Thumbnail>
|
||||
<Description />
|
||||
<AllowAtRoot>False</AllowAtRoot>
|
||||
<IsListView>False</IsListView>
|
||||
<Master>umbMaster</Master>
|
||||
<Compositions>
|
||||
<Composition>umbMaster</Composition>
|
||||
</Compositions>
|
||||
<AllowedTemplates>
|
||||
<Template>umbNewsItem</Template>
|
||||
</AllowedTemplates>
|
||||
<DefaultTemplate>umbNewsItem</DefaultTemplate>
|
||||
</Info>
|
||||
<Structure />
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>Publish date</Name>
|
||||
<Alias>publishDate</Alias>
|
||||
<Type>Umbraco.DateTime</Type>
|
||||
<Definition>e4d66c0f-b935-4200-81f0-025f7256b89a</Definition>
|
||||
<Tab />
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[You can overrule the date shown on the site by changing it here. If you don't set a date explicitly here then the news item's create date will be shown.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Image</Name>
|
||||
<Alias>image</Alias>
|
||||
<Type>Umbraco.UploadField</Type>
|
||||
<Definition>84c6b441-31df-4ffe-b67e-67d5bc3ae65a</Definition>
|
||||
<Tab>Content</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Subheader</Name>
|
||||
<Alias>subheader</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Content</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Content</Name>
|
||||
<Alias>bodyText</Alias>
|
||||
<Type>Umbraco.TinyMCE</Type>
|
||||
<Definition>ca90c950-0aff-4e72-b976-a30b1ac57dad</Definition>
|
||||
<Tab>Content</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
</GenericProperties>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Id>17</Id>
|
||||
<Caption>Content</Caption>
|
||||
<SortOrder>0</SortOrder>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
</DocumentType>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>News Overview</Name>
|
||||
<Alias>umbNewsOverview</Alias>
|
||||
<Icon>package.png</Icon>
|
||||
<Thumbnail>folder_media.png</Thumbnail>
|
||||
<Description />
|
||||
<AllowAtRoot>False</AllowAtRoot>
|
||||
<IsListView>False</IsListView>
|
||||
<Master>umbMaster</Master>
|
||||
<Compositions>
|
||||
<Composition>umbMaster</Composition>
|
||||
</Compositions>
|
||||
<AllowedTemplates>
|
||||
<Template>umbNewsOverview</Template>
|
||||
</AllowedTemplates>
|
||||
<DefaultTemplate>umbNewsOverview</DefaultTemplate>
|
||||
</Info>
|
||||
<Structure>
|
||||
<DocumentType>umbNewsItem</DocumentType>
|
||||
</Structure>
|
||||
<GenericProperties />
|
||||
<Tabs />
|
||||
</DocumentType>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>Seo</Name>
|
||||
<Alias>Seo</Alias>
|
||||
<Icon>icon-wifi</Icon>
|
||||
<Thumbnail>folder.png</Thumbnail>
|
||||
<Description />
|
||||
<AllowAtRoot>False</AllowAtRoot>
|
||||
<IsListView>False</IsListView>
|
||||
<Compositions />
|
||||
<AllowedTemplates />
|
||||
<DefaultTemplate />
|
||||
</Info>
|
||||
<Structure />
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>Seo Pimp Title</Name>
|
||||
<Alias>seoPimpTitle</Alias>
|
||||
<Type>Umbraco.Textbox</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Seo</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
</GenericProperties>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Id>20</Id>
|
||||
<Caption>Seo</Caption>
|
||||
<SortOrder>10</SortOrder>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
</DocumentType>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>Text Page</Name>
|
||||
<Alias>umbTextyPage</Alias>
|
||||
<Icon>.sprTreeDoc</Icon>
|
||||
<Thumbnail>doc.png</Thumbnail>
|
||||
<Description />
|
||||
<AllowAtRoot>False</AllowAtRoot>
|
||||
<IsListView>False</IsListView>
|
||||
<Master>umbMaster</Master>
|
||||
<Compositions>
|
||||
<Composition>umbMaster</Composition>
|
||||
<Composition>Meta</Composition>
|
||||
<Composition>Seo</Composition>
|
||||
</Compositions>
|
||||
<AllowedTemplates>
|
||||
<Template>umbTextyPage</Template>
|
||||
</AllowedTemplates>
|
||||
<DefaultTemplate>umbTextyPage</DefaultTemplate>
|
||||
</Info>
|
||||
<Structure>
|
||||
<DocumentType>umbTextyPage</DocumentType>
|
||||
</Structure>
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>Featured Page?</Name>
|
||||
<Alias>featuredPage</Alias>
|
||||
<Type>Umbraco.TrueFalse</Type>
|
||||
<Definition>92897bc6-a5f3-4ffe-ae27-f2e7e33dda49</Definition>
|
||||
<Tab>Content</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[Is this a page that should be featured on the home page?]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Image</Name>
|
||||
<Alias>image</Alias>
|
||||
<Type>Umbraco.UploadField</Type>
|
||||
<Definition>84c6b441-31df-4ffe-b67e-67d5bc3ae65a</Definition>
|
||||
<Tab>Content</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Content</Name>
|
||||
<Alias>bodyText</Alias>
|
||||
<Type>Umbraco.TinyMCE</Type>
|
||||
<Definition>ca90c950-0aff-4e72-b976-a30b1ac57dad</Definition>
|
||||
<Tab>Content</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation />
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
</GenericProperties>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Id>18</Id>
|
||||
<Caption>Content</Caption>
|
||||
<SortOrder>0</SortOrder>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
</DocumentType>
|
||||
</DocumentTypes>
|
||||
<Templates>
|
||||
<Template>
|
||||
<Name>HomePage</Name>
|
||||
<Alias>umbHomePage</Alias>
|
||||
<Master>umbLayout</Master>
|
||||
<Design>
|
||||
<![CDATA[@inherits UmbracoTemplatePage
|
||||
@{
|
||||
Layout = "umbLayout.cshtml";
|
||||
}
|
||||
@{ Html.RenderPartial("umbHomepageBanner"); }
|
||||
<!-- Main -->
|
||||
<div id="main-wrapper">
|
||||
<div id="main" class="container">
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
@{ Html.RenderPartial("umbFeatures"); }
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
@{ Html.RenderPartial("umbNewsOverviewWidget"); }
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /Main -->
|
||||
]]>
|
||||
</Design>
|
||||
</Template>
|
||||
<Template>
|
||||
<Name>Layout</Name>
|
||||
<Alias>umbLayout</Alias>
|
||||
<Design>
|
||||
<![CDATA[@inherits UmbracoTemplatePage
|
||||
@{
|
||||
Layout = null;
|
||||
}<!DOCTYPE html>
|
||||
<!--
|
||||
TXT 2.0 by HTML5 UP
|
||||
html5up.net | twitter.com/n33co
|
||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<title>@Umbraco.Field("title", altFieldAlias: "pageName") | @Umbraco.Field("siteName", recursive: true)</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="description" content="" />
|
||||
<meta name="keywords" content="" />
|
||||
<link href="http://fonts.googleapis.com/css?family=Open+Sans:400,700|Open+Sans+Condensed:700" rel="stylesheet" />
|
||||
<script src="/js/jquery.min.js"></script>
|
||||
<script src="/js/config.js"></script>
|
||||
<script src="/js/skel.min.js"></script>
|
||||
<script src="/js/skel-panels.min.js"></script>
|
||||
<noscript>
|
||||
<link rel="stylesheet" href="/css/skel-noscript.css" />
|
||||
<link rel="stylesheet" href="/css/style.css" />
|
||||
<link rel="stylesheet" href="/css/style-desktop.css" />
|
||||
</noscript>
|
||||
<!--[if lte IE 9]><link rel="stylesheet" href="/css/ie9.css" /><![endif]-->
|
||||
<!--[if lte IE 8]><script src="/js/html5shiv.js"></script><link rel="stylesheet" href="/css/ie8.css" /><![endif]-->
|
||||
<!--[if lte IE 7]><link rel="stylesheet" href="/css/ie7.css" /><![endif]-->
|
||||
</head>
|
||||
<body class="homepage">
|
||||
<!-- Header -->
|
||||
<header id="header">
|
||||
<div class="logo">
|
||||
<div>
|
||||
<h1><a href="/" id="logo">@Umbraco.Field("siteName", recursive: true)</a></h1>
|
||||
<span class="byline">@Umbraco.Field("byline", recursive: true)</span>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<!-- /Header -->
|
||||
@{ Html.RenderPartial("umbTopNavigation"); }
|
||||
|
||||
@RenderBody()
|
||||
|
||||
<!-- Footer -->
|
||||
<footer id="footer" class="container">
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
@{ Html.RenderPartial("umbAbout"); }
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
@{ Html.RenderPartial("umbSocial"); }
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<!-- Copyright -->
|
||||
<div id="copyright">
|
||||
© @DateTime.Now.Year @Umbraco.Field("copyright", recursive: true) | Images: <a href="http://fotogrph.com">fotogrph</a> + <a href="http://iconify.it">Iconify.it</a> | Design: <a href="http://html5up.net/">HTML5 UP</a>
|
||||
</div>
|
||||
<!-- /Copyright -->
|
||||
</div>
|
||||
</footer>
|
||||
<!-- /Footer -->
|
||||
</body>
|
||||
</html>]]>
|
||||
</Design>
|
||||
</Template>
|
||||
<Template>
|
||||
<Name>News Item</Name>
|
||||
<Alias>umbNewsItem</Alias>
|
||||
<Master>umbLayout</Master>
|
||||
<Design>
|
||||
<![CDATA[@inherits UmbracoTemplatePage
|
||||
@{
|
||||
Layout = "umbLayout.cshtml";
|
||||
|
||||
// If the editor has not explicitly provided the "Page title" property page
|
||||
// then just show the name of the page otherwise show the provided title
|
||||
var pageTitle = string.IsNullOrWhiteSpace(CurrentPage.Title)
|
||||
? CurrentPage.Name
|
||||
: CurrentPage.Title;
|
||||
}
|
||||
<div id="main-wrapper">
|
||||
<div id="main" class="container">
|
||||
<div class="row">
|
||||
<div class="9u skel-cell-mainContent">
|
||||
<div class="content content-left">
|
||||
<!-- Content -->
|
||||
<article class="is-page-content">
|
||||
<header>
|
||||
<h2>@pageTitle</h2>
|
||||
</header>
|
||||
<section>
|
||||
@if (string.IsNullOrWhiteSpace(CurrentPage.Image) == false)
|
||||
{
|
||||
<span class="image image-full"><img src="@CurrentPage.Image" alt="" /></span>
|
||||
}
|
||||
|
||||
@CurrentPage.BodyText
|
||||
</section>
|
||||
</article>
|
||||
<!-- /Content -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="3u">
|
||||
<div class="sidebar">
|
||||
<!-- Sidebar -->
|
||||
@{ Html.RenderPartial("umbLatestNewsWidget"); }
|
||||
<!-- /Sidebar -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
@{ Html.RenderPartial("umbFeatures"); }
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /Main -->]]>
|
||||
</Design>
|
||||
</Template>
|
||||
<Template>
|
||||
<Name>News Overview</Name>
|
||||
<Alias>umbNewsOverview</Alias>
|
||||
<Master>umbLayout</Master>
|
||||
<Design>
|
||||
<![CDATA[@inherits UmbracoTemplatePage
|
||||
@{
|
||||
Layout = "umbLayout.cshtml";
|
||||
|
||||
// If the editor has not explicitly provided the "Page title" property page
|
||||
// then just show the name of the page otherwise show the provided title
|
||||
var pageTitle = string.IsNullOrWhiteSpace(CurrentPage.Title)
|
||||
? CurrentPage.Name
|
||||
: CurrentPage.Title;
|
||||
|
||||
// Model.Content is the current page that we're on
|
||||
// AncestorsOrSelf is all of the ancestors this page has in the tree
|
||||
// (1) means: go up to level 1 and stop looking for more ancestors when you get there
|
||||
// First() gets the first ancestor found (the home page, on level 1)
|
||||
var homePage = CurrentPage.AncestorsOrSelf(1).First();
|
||||
|
||||
// Find all pages with document type alias umbNewsOverview
|
||||
// We do that using the plural, umbNewsOverviews (note the extra "s" in the end)
|
||||
// Then take the first one, as we know there will only be on news overview page
|
||||
var newsOverview = homePage.umbNewsOverviews.First();
|
||||
|
||||
// Similar to above: find all pages with document type umbNewsItem under the news overview page
|
||||
// Then order them, first by publishDate (a property the editor can explicitly set on the news item)
|
||||
// and then by createDate, which is set by Umbraco automatically when a page gets created.
|
||||
var newsItems = newsOverview.umbNewsItems.OrderBy("publishDate desc, createDate desc").Take(5);
|
||||
|
||||
}
|
||||
<!-- Main -->
|
||||
<div id="main-wrapper">
|
||||
<div id="main" class="container">
|
||||
<div class="row">
|
||||
<div class="12u skel-cell-mainContent">
|
||||
<div class="content">
|
||||
<!-- Content -->
|
||||
<article class="is-page-content">
|
||||
<header>
|
||||
<h2>@pageTitle</h2>
|
||||
</header>
|
||||
|
||||
@foreach (var item in newsItems)
|
||||
{
|
||||
|
||||
// If the editor has not explicitly provided the "Page title" property page
|
||||
// then just show the name of the page otherwise show the provided title
|
||||
var title = string.IsNullOrWhiteSpace(item.Title)
|
||||
? item.Name
|
||||
: item.Title;
|
||||
|
||||
|
||||
// If the editor has not explicitly set the publishDate property then show the create date
|
||||
var dateTime = item.PublishDate == default(DateTime)
|
||||
? item.CreateDate
|
||||
: item.PublishDate;
|
||||
|
||||
<section>
|
||||
<h3><a href="@item.Url">@title</a></h3>
|
||||
<span class="byline">@item.SubHeader</span>
|
||||
<ul class="meta">
|
||||
<li class="timestamp">@dateTime.ToString("f")</li>
|
||||
</ul>
|
||||
|
||||
@if (string.IsNullOrWhiteSpace(item.Image) == false)
|
||||
{
|
||||
<a href="@item.Url" class="image image-full"><img src="@item.Image" alt="" /></a>
|
||||
}
|
||||
|
||||
@Umbraco.Truncate(item.BodyText, 200)
|
||||
|
||||
<a href="@item.Url" class="button">Continue Reading</a>
|
||||
</section>
|
||||
}
|
||||
</article>
|
||||
<!-- /Content -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
@{ Html.RenderPartial("umbFeatures"); }
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /Main -->
|
||||
]]>
|
||||
</Design>
|
||||
</Template>
|
||||
<Template>
|
||||
<Name>Text Page</Name>
|
||||
<Alias>umbTextyPage</Alias>
|
||||
<Master>umbLayout</Master>
|
||||
<Design>
|
||||
<![CDATA[@inherits UmbracoTemplatePage
|
||||
@{
|
||||
Layout = "umbLayout.cshtml";
|
||||
|
||||
// If the editor has not explicitly provided the "Page title" property page
|
||||
// then just show the name of the page otherwise show the provided title
|
||||
var pageTitle = string.IsNullOrWhiteSpace(CurrentPage.Title)
|
||||
? CurrentPage.Name
|
||||
: CurrentPage.Title;
|
||||
}
|
||||
<div id="main-wrapper">
|
||||
<div id="main" class="container">
|
||||
<div class="row">
|
||||
<div class="9u skel-cell-mainContent">
|
||||
<div class="content content-left">
|
||||
<!-- Content -->
|
||||
<article class="is-page-content">
|
||||
<header>
|
||||
<h2>@pageTitle</h2>
|
||||
</header>
|
||||
<section>
|
||||
@if (string.IsNullOrWhiteSpace(CurrentPage.Image) == false)
|
||||
{
|
||||
<span class="image image-full"><img src="@CurrentPage.Image" alt="" /></span>
|
||||
}
|
||||
|
||||
@CurrentPage.BodyText
|
||||
</section>
|
||||
</article>
|
||||
<!-- /Content -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="3u">
|
||||
<div class="sidebar">
|
||||
<!-- Sidebar -->
|
||||
@{ Html.RenderPartial("umbLatestNewsWidget"); }
|
||||
<!-- /Sidebar -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="12u">
|
||||
@{ Html.RenderPartial("umbFeatures"); }
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /Main -->]]>
|
||||
</Design>
|
||||
</Template>
|
||||
</Templates>
|
||||
<Stylesheets />
|
||||
<Macros />
|
||||
<DictionaryItems />
|
||||
<Languages />
|
||||
<DataTypes />
|
||||
</umbPackage>
|
||||
File diff suppressed because one or more lines are too long
@@ -8,7 +8,7 @@
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Umbraco.Tests.Integration.Umbraco.Infrastructure.Services.Importing {
|
||||
namespace Umbraco.Tests.Services.Importing {
|
||||
using System;
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace Umbraco.Tests.Integration.Umbraco.Infrastructure.Services.Importing {
|
||||
// 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", "16.0.0.0")]
|
||||
[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 {
|
||||
@@ -61,6 +61,88 @@ namespace Umbraco.Tests.Integration.Umbraco.Infrastructure.Services.Importing {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
///<umbPackage>
|
||||
/// <files />
|
||||
/// <info>
|
||||
/// <package>
|
||||
/// <name>CheckboxListTest</name>
|
||||
/// <version>1</version>
|
||||
/// <license url="http://www.opensource.org/licenses/mit-license.php">MIT license</license>
|
||||
/// <url>1</url>
|
||||
/// <requirements>
|
||||
/// <major>3</major>
|
||||
/// <minor>0</minor>
|
||||
/// <patch>0</patch>
|
||||
/// </requirements>
|
||||
/// </package>
|
||||
/// <author>
|
||||
/// <name>1</name>
|
||||
/// <website>1</website>
|
||||
/// </author>
|
||||
/// <r [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
internal static string CheckboxList_Content_Package {
|
||||
get {
|
||||
return ResourceManager.GetString("CheckboxList_Content_Package", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
///<umbPackage>
|
||||
/// <files />
|
||||
/// <info>
|
||||
/// <package>
|
||||
/// <name>Compositions Packaged</name>
|
||||
/// <version>1.0</version>
|
||||
/// <license url="http://opensource.org/licenses/MIT">MIT License</license>
|
||||
/// <url>http://blog.sitereactor.dk</url>
|
||||
/// <requirements>
|
||||
/// <major>3</major>
|
||||
/// <minor>0</minor>
|
||||
/// <patch>0</patch>
|
||||
/// </requirements>
|
||||
/// </package>
|
||||
/// <author>
|
||||
/// <name>Morten Christensen</name>
|
||||
/// <website>h [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
internal static string CompositionsTestPackage {
|
||||
get {
|
||||
return ResourceManager.GetString("CompositionsTestPackage", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
///<umbPackage>
|
||||
/// <files />
|
||||
/// <info>
|
||||
/// <package>
|
||||
/// <name>Composite Test</name>
|
||||
/// <version>dfsfd</version>
|
||||
/// <license url="http://opensource.org/licenses/MIT">MIT License</license>
|
||||
/// <url>ddsff</url>
|
||||
/// <requirements>
|
||||
/// <major>3</major>
|
||||
/// <minor>0</minor>
|
||||
/// <patch>0</patch>
|
||||
/// </requirements>
|
||||
/// </package>
|
||||
/// <author>
|
||||
/// <name>fsdfds</name>
|
||||
/// <website>sfdf</website>
|
||||
/// </author>
|
||||
/// <rea [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
internal static string CompositionsTestPackage_Random {
|
||||
get {
|
||||
return ResourceManager.GetString("CompositionsTestPackage_Random", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?>
|
||||
///<umbPackage>
|
||||
@@ -86,5 +168,243 @@ namespace Umbraco.Tests.Integration.Umbraco.Infrastructure.Services.Importing {
|
||||
return ResourceManager.GetString("Dictionary_Package", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
///<umbPackage>
|
||||
/// <files>
|
||||
/// <file>
|
||||
/// <guid>bootstrap.min.js</guid>
|
||||
/// <orgPath>/js</orgPath>
|
||||
/// <orgName>bootstrap.min.js</orgName>
|
||||
/// </file>
|
||||
/// <file>
|
||||
/// <guid>jquery.min.js</guid>
|
||||
/// <orgPath>/js</orgPath>
|
||||
/// <orgName>jquery.min.js</orgName>
|
||||
/// </file>
|
||||
/// <file>
|
||||
/// <guid>top-image.jpg</guid>
|
||||
/// <orgPath>/Media/1001</orgPath>
|
||||
/// <orgName>top-image.jpg</orgName>
|
||||
/// </file>
|
||||
/// <file>
|
||||
/// <guid>top-im [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
internal static string Fanoe_Package {
|
||||
get {
|
||||
return ResourceManager.GetString("Fanoe_Package", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
///<umbPackage>
|
||||
/// <files />
|
||||
/// <info>
|
||||
/// <package>
|
||||
/// <name>DocTypeError</name>
|
||||
/// <version>1</version>
|
||||
/// <license url="http://www.opensource.org/licenses/mit-license.php">Personal license</license>
|
||||
/// <url>http://www.iseli-webconsulting.de</url>
|
||||
/// <requirements>
|
||||
/// <major>3</major>
|
||||
/// <minor>0</minor>
|
||||
/// <patch>0</patch>
|
||||
/// </requirements>
|
||||
/// </package>
|
||||
/// <author>
|
||||
/// <name>Iseli Webconsulting</name> [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
internal static string InheritedDocTypes_Package {
|
||||
get {
|
||||
return ResourceManager.GetString("InheritedDocTypes_Package", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8"?>
|
||||
///<umbPackage>
|
||||
/// <files />
|
||||
/// <info>
|
||||
/// <package>
|
||||
/// <name>Package With MediaTypes And Media + Folder</name>
|
||||
/// <version>1.0.0</version>
|
||||
/// <iconUrl></iconUrl>
|
||||
/// <license url="http://opensource.org/licenses/MIT">MIT License</license>
|
||||
/// <url>http://www.umbraco.com</url>
|
||||
/// <requirements type="Strict">
|
||||
/// <major>0</major>
|
||||
/// <minor>5</minor>
|
||||
/// <patch>0</patch>
|
||||
/// </requirements>
|
||||
/// </package>
|
||||
/// <author>
|
||||
/// <name [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
internal static string MediaTypesAndMedia_Package_xml {
|
||||
get {
|
||||
return ResourceManager.GetString("MediaTypesAndMedia_Package.xml", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?>
|
||||
///<DocumentType>
|
||||
/// <Info>
|
||||
/// <Name>test</Name>
|
||||
/// <Alias>test</Alias>
|
||||
/// <Icon>folder.gif</Icon>
|
||||
/// <Thumbnail>folder.png</Thumbnail>
|
||||
/// <Description>
|
||||
/// </Description>
|
||||
/// <AllowAtRoot>False</AllowAtRoot>
|
||||
/// <AllowedTemplates>
|
||||
/// <Template>test</Template>
|
||||
/// </AllowedTemplates>
|
||||
/// <DefaultTemplate>test</DefaultTemplate>
|
||||
/// </Info>
|
||||
/// <Structure>
|
||||
/// <DocumentType>test</DocumentType>
|
||||
/// </Structure>
|
||||
/// <GenericProperties>
|
||||
/// <GenericProperty> [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
internal static string SingleDocType {
|
||||
get {
|
||||
return ResourceManager.GetString("SingleDocType", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 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]";.
|
||||
/// </summary>
|
||||
internal static string StandardMvc_Package {
|
||||
get {
|
||||
return ResourceManager.GetString("StandardMvc_Package", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
///<umbPackage>
|
||||
/// <files />
|
||||
/// <info>
|
||||
/// <package>
|
||||
/// <name>Template-Update</name>
|
||||
/// <version>0.1</version>
|
||||
/// <license url="http://www.opensource.org/licenses/mit-license.php">MIT license</license>
|
||||
/// <url>https://our.umbraco.com/projects</url>
|
||||
/// <requirements>
|
||||
/// <major>3</major>
|
||||
/// <minor>0</minor>
|
||||
/// <patch>0</patch>
|
||||
/// </requirements>
|
||||
/// </package>
|
||||
/// <author>
|
||||
/// <name>Morten Christensen</name>
|
||||
/// [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
internal static string TemplateOnly_Package {
|
||||
get {
|
||||
return ResourceManager.GetString("TemplateOnly_Package", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
///<umbPackage>
|
||||
/// <files />
|
||||
/// <info>
|
||||
/// <package>
|
||||
/// <name>Template-Update</name>
|
||||
/// <version>0.1</version>
|
||||
/// <license url="http://www.opensource.org/licenses/mit-license.php">MIT license</license>
|
||||
/// <url>https://our.umbraco.com/projects</url>
|
||||
/// <requirements>
|
||||
/// <major>3</major>
|
||||
/// <minor>0</minor>
|
||||
/// <patch>0</patch>
|
||||
/// </requirements>
|
||||
/// </package>
|
||||
/// <author>
|
||||
/// <name>Morten Christensen</name>
|
||||
/// [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
internal static string TemplateOnly_Updated_Package {
|
||||
get {
|
||||
return ResourceManager.GetString("TemplateOnly_Updated_Package", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
///<umbPackage>
|
||||
/// <files>
|
||||
/// <file>
|
||||
/// <guid>uBlogsy.BusinessLogic.dll</guid>
|
||||
/// <orgPath>/bin</orgPath>
|
||||
/// <orgName>uBlogsy.BusinessLogic.dll</orgName>
|
||||
/// </file>
|
||||
/// <file>
|
||||
/// <guid>uBlogsy.BusinessLogic.pdb</guid>
|
||||
/// <orgPath>/bin</orgPath>
|
||||
/// <orgName>uBlogsy.BusinessLogic.pdb</orgName>
|
||||
/// </file>
|
||||
/// <file>
|
||||
/// <guid>uBlogsy.Common.dll</guid>
|
||||
/// <orgPath>/bin</orgPath>
|
||||
/// <orgName>uBlogsy.Common.dll</orgNam [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
internal static string uBlogsy_Package {
|
||||
get {
|
||||
return ResourceManager.GetString("uBlogsy_Package", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
///<umbPackage>
|
||||
/// <files>
|
||||
/// <file>
|
||||
/// <guid>XSLTsearch.xslt</guid>
|
||||
/// <orgPath>/xslt</orgPath>
|
||||
/// <orgName>XSLTsearch.xslt</orgName>
|
||||
/// </file>
|
||||
/// <file>
|
||||
/// <guid>XSLTsearch.cs</guid>
|
||||
/// <orgPath>/App_Code</orgPath>
|
||||
/// <orgName>XSLTsearch.cs</orgName>
|
||||
/// </file>
|
||||
/// </files>
|
||||
/// <info>
|
||||
/// <package>
|
||||
/// <name>XSLTsearch</name>
|
||||
/// <version>3.0.4</version>
|
||||
/// <license url="http://www.opensource.org/licenses/mit-li [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
internal static string XsltSearch_Package {
|
||||
get {
|
||||
return ResourceManager.GetString("XsltSearch_Package", resourceCulture);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
@@ -26,36 +26,36 @@
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
@@ -118,7 +118,43 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="InheritedDocTypes_Package" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>InheritedDocTypes-Package.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="StandardMvc_Package" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>StandardMvc-Package.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="uBlogsy_Package" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>uBlogsy-Package.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="XsltSearch_Package" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>XsltSearch-Package.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="SingleDocType" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>SingleDocType.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="TemplateOnly_Package" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>TemplateOnly-Package.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="TemplateOnly_Updated_Package" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>TemplateOnly-Updated-Package.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="CheckboxList_Content_Package" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>CheckboxList-Content-Package.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="Dictionary_Package" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Dictionary-Package.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="CompositionsTestPackage" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>CompositionsTestPackage.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="CompositionsTestPackage_Random" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>CompositionsTestPackage-Random.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="Fanoe_Package" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Fanoe-Package.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
<data name="MediaTypesAndMedia_Package.xml" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>MediaTypesAndMedia-Package.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
</root>
|
||||
|
||||
@@ -0,0 +1,445 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<umbPackage>
|
||||
<files />
|
||||
<info>
|
||||
<package>
|
||||
<name>DocTypeError</name>
|
||||
<version>1</version>
|
||||
<license url="http://www.opensource.org/licenses/mit-license.php">Personal license</license>
|
||||
<url>http://www.iseli-webconsulting.de</url>
|
||||
<requirements>
|
||||
<major>3</major>
|
||||
<minor>0</minor>
|
||||
<patch>0</patch>
|
||||
</requirements>
|
||||
</package>
|
||||
<author>
|
||||
<name>Iseli Webconsulting</name>
|
||||
<website>http://www.iseli-webconsulting.de</website>
|
||||
</author>
|
||||
<readme><![CDATA[Test package to reproduce the error for document type properties assigned to a tab inherited from a master document type.]]></readme>
|
||||
</info>
|
||||
<DocumentTypes>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>MR Basisseite</Name>
|
||||
<Alias>MRBasePage</Alias>
|
||||
<Icon>folder.gif</Icon>
|
||||
<Thumbnail>folder.png</Thumbnail>
|
||||
<Description>Basistyp für alle Seiten der MR-Racing Website.</Description>
|
||||
<AllowAtRoot>False</AllowAtRoot>
|
||||
<AllowedTemplates />
|
||||
<DefaultTemplate>
|
||||
</DefaultTemplate>
|
||||
</Info>
|
||||
<Structure />
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>Beschreibung</Name>
|
||||
<Alias>description</Alias>
|
||||
<Type>60b7dabf-99cd-41eb-b8e9-4d2e669bbde9</Type>
|
||||
<Definition>1251c96c-185c-4e9b-93f4-b48205573cbd</Definition>
|
||||
<Tab>Metadaten</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Eine kurze Beschreibung der aktuellen Seite für eine bessere Indexierung durch Suchmaschinen (max. 255 Zeichen).]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Keywords</Name>
|
||||
<Alias>keywords</Alias>
|
||||
<Type>60b7dabf-99cd-41eb-b8e9-4d2e669bbde9</Type>
|
||||
<Definition>1251c96c-185c-4e9b-93f4-b48205573cbd</Definition>
|
||||
<Tab>Metadaten</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Komma-separtierte Auflistung von Stichwörter für die Indexierung von Suchmaschinen. Beispiel: MR Racing, Tuning, Chiptuning, Autozubehör.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>In der Navigation ausblenden</Name>
|
||||
<Alias>hideInNavigation</Alias>
|
||||
<Type>38b352c1-e9f8-4fd8-9324-9a2eab06d97a</Type>
|
||||
<Definition>92897bc6-a5f3-4ffe-ae27-f2e7e33dda49</Definition>
|
||||
<Tab>
|
||||
</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Selektieren damit dieser Eintrag nicht in der Navigation erscheint.]]></Description>
|
||||
</GenericProperty>
|
||||
</GenericProperties>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Id>6</Id>
|
||||
<Caption>Metadaten</Caption>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
</DocumentType>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>MR Startseite</Name>
|
||||
<Alias>MRStartPage</Alias>
|
||||
<Icon>folder.gif</Icon>
|
||||
<Thumbnail>folder.png</Thumbnail>
|
||||
<Description>Die Startseite des Internetauftritts von MR Racing.</Description>
|
||||
<AllowAtRoot>True</AllowAtRoot>
|
||||
<Master>MRBasePage</Master>
|
||||
<AllowedTemplates>
|
||||
<Template>MRStartPage</Template>
|
||||
</AllowedTemplates>
|
||||
<DefaultTemplate>MRStartPage</DefaultTemplate>
|
||||
</Info>
|
||||
<Structure>
|
||||
<DocumentType>MRContentPage</DocumentType>
|
||||
<DocumentType>MRNewsSummary</DocumentType>
|
||||
</Structure>
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>Facebook App ID</Name>
|
||||
<Alias>facebookAppID</Alias>
|
||||
<Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Facebook</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Hier bitte die ID Ihrer Facebook App eingeben damit der "Gefällt mir" Link sowie die Kommentar Felder geladen werden können.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Facebook Like URL</Name>
|
||||
<Alias>facebookLikeUrl</Alias>
|
||||
<Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Facebook</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Hier bitte die URL angeben für welche der "Gefällt mir" Link von Facebook gilt.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Facebook Seite URL</Name>
|
||||
<Alias>facebookSiteUrl</Alias>
|
||||
<Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Facebook</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Hier bitte die URL der Facebook Seite von MR Racing angeben für den Link in den Fussnoten.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Titel der Webseite</Name>
|
||||
<Alias>websiteTitle</Alias>
|
||||
<Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Metadaten</Tab>
|
||||
<Mandatory>True</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Angabe des globalen Webseiten-Titels für die Suchmaschinen.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Autor</Name>
|
||||
<Alias>author</Alias>
|
||||
<Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Metadaten</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Angabe des Besitzers / des Autors der Webseiten-Inhalte.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Generator</Name>
|
||||
<Alias>generator</Alias>
|
||||
<Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Metadaten</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Angabe des Verwaltungssystem welches die Inhaltsausgabe erstellt. zB. Umbraco v6.0.2]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Web-Autor</Name>
|
||||
<Alias>webAuthor</Alias>
|
||||
<Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Metadaten</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Angabe des Erstellers / Programmierers der Webseite.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Titel</Name>
|
||||
<Alias>titleBoxRight</Alias>
|
||||
<Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Angebot Rechts</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Der Titel des Angebots.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Newstitel</Name>
|
||||
<Alias>newsTitle</Alias>
|
||||
<Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>News</Tab>
|
||||
<Mandatory>True</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Titel der Box welche die Neuigkeiten auflistet.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Anzanl News</Name>
|
||||
<Alias>numberOfNews</Alias>
|
||||
<Type>1413afcb-d19a-4173-8e9a-68288d2a73b8</Type>
|
||||
<Definition>2e6d3631-066e-44b8-aec4-96f09099b2b5</Definition>
|
||||
<Tab>News</Tab>
|
||||
<Mandatory>True</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Angabe wieviele News-Einträge inder News-Box visualisiert werden sollen. Standard sind 5.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Link</Name>
|
||||
<Alias>linkBoxRight</Alias>
|
||||
<Type>158aa029-24ed-4948-939e-c3da209e5fba</Type>
|
||||
<Definition>a6857c73-d6e9-480c-b6e6-f15f6ad11125</Definition>
|
||||
<Tab>Angebot Rechts</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Optionale Angabe eines Seite welcher als Link hinter die Box gelegt wird so dass ein Besucher per Klick zur passenden Seite weitergeleitet wird.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Bild</Name>
|
||||
<Alias>imageBoxRight</Alias>
|
||||
<Type>ead69342-f06d-4253-83ac-28000225583b</Type>
|
||||
<Definition>93929b9a-93a2-4e2a-b239-d99334440a59</Definition>
|
||||
<Tab>Angebot Rechts</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Optionales Bild für das Angebot.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Bildbreite</Name>
|
||||
<Alias>imageWidthBoxRight</Alias>
|
||||
<Type>1413afcb-d19a-4173-8e9a-68288d2a73b8</Type>
|
||||
<Definition>2e6d3631-066e-44b8-aec4-96f09099b2b5</Definition>
|
||||
<Tab>Angebot Rechts</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>^([6-9][0-9]|1[0-9]{2}|2[0-7][0-9]|280)$</Validation>
|
||||
<Description><![CDATA[Optionale Angabe der Bildbreite. Das Bild muss mindestens 60 breit sein. Das Maxium ist 280. Standard ist 120.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Inhalt</Name>
|
||||
<Alias>contentBoxRight</Alias>
|
||||
<Type>60b7dabf-99cd-41eb-b8e9-4d2e669bbde9</Type>
|
||||
<Definition>1251c96c-185c-4e9b-93f4-b48205573cbd</Definition>
|
||||
<Tab>Angebot Rechts</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Der Textinhalt des Angebots.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Titel</Name>
|
||||
<Alias>titleBoxMiddle</Alias>
|
||||
<Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Angebot Mitte</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Der Titel des Angebots.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Link</Name>
|
||||
<Alias>linkBoxMiddle</Alias>
|
||||
<Type>158aa029-24ed-4948-939e-c3da209e5fba</Type>
|
||||
<Definition>a6857c73-d6e9-480c-b6e6-f15f6ad11125</Definition>
|
||||
<Tab>Angebot Mitte</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Optionale Angabe eines Seite welcher als Link hinter die Box gelegt wird so dass ein Besucher per Klick zur passenden Seite weitergeleitet wird.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Bild</Name>
|
||||
<Alias>imageBoxMiddle</Alias>
|
||||
<Type>ead69342-f06d-4253-83ac-28000225583b</Type>
|
||||
<Definition>93929b9a-93a2-4e2a-b239-d99334440a59</Definition>
|
||||
<Tab>Angebot Mitte</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Optionales Bild für das Angebot.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Bildbreite</Name>
|
||||
<Alias>imageWidthBoxMiddle</Alias>
|
||||
<Type>1413afcb-d19a-4173-8e9a-68288d2a73b8</Type>
|
||||
<Definition>2e6d3631-066e-44b8-aec4-96f09099b2b5</Definition>
|
||||
<Tab>Angebot Mitte</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>^([6-9][0-9]|1[0-9]{2}|2[0-7][0-9]|280)$</Validation>
|
||||
<Description><![CDATA[Optionale Angabe der Bildbreite. Das Bild muss mindestens 60 breit sein. Das Maxium ist 280. Standard ist 120.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Inhalt</Name>
|
||||
<Alias>contentBoxMiddle</Alias>
|
||||
<Type>60b7dabf-99cd-41eb-b8e9-4d2e669bbde9</Type>
|
||||
<Definition>1251c96c-185c-4e9b-93f4-b48205573cbd</Definition>
|
||||
<Tab>Angebot Mitte</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Der Textinhalt des Angebots.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Titel</Name>
|
||||
<Alias>titleBoxLeft</Alias>
|
||||
<Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Angebot Links</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Der Titel des Angebots.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Link</Name>
|
||||
<Alias>linkBoxLeft</Alias>
|
||||
<Type>158aa029-24ed-4948-939e-c3da209e5fba</Type>
|
||||
<Definition>a6857c73-d6e9-480c-b6e6-f15f6ad11125</Definition>
|
||||
<Tab>Angebot Links</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Optionale Angabe eines Seite welcher als Link hinter die Box gelegt wird so dass ein Besucher per Klick zur passenden Seite weitergeleitet wird.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Bild</Name>
|
||||
<Alias>imageBoxLeft</Alias>
|
||||
<Type>ead69342-f06d-4253-83ac-28000225583b</Type>
|
||||
<Definition>93929b9a-93a2-4e2a-b239-d99334440a59</Definition>
|
||||
<Tab>Angebot Links</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Optionales Bild für das Angebot.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Bildbreite</Name>
|
||||
<Alias>imageWidthBoxLeft</Alias>
|
||||
<Type>1413afcb-d19a-4173-8e9a-68288d2a73b8</Type>
|
||||
<Definition>2e6d3631-066e-44b8-aec4-96f09099b2b5</Definition>
|
||||
<Tab>Angebot Links</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>^([6-9][0-9]|1[0-9]{2}|2[0-7][0-9]|280)$</Validation>
|
||||
<Description><![CDATA[Optionale Angabe der Bildbreite. Das Bild muss mindestens 60 breit sein. Das Maxium ist 280. Standard ist 120.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Inhalt</Name>
|
||||
<Alias>contentBoxLeft</Alias>
|
||||
<Type>60b7dabf-99cd-41eb-b8e9-4d2e669bbde9</Type>
|
||||
<Definition>1251c96c-185c-4e9b-93f4-b48205573cbd</Definition>
|
||||
<Tab>Angebot Links</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Der Textinhalt des Angebots.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Inhaltstitel</Name>
|
||||
<Alias>contentTitle</Alias>
|
||||
<Type>ec15c1e5-9d90-422a-aa52-4f7622c63bea</Type>
|
||||
<Definition>0cc0eba1-9960-42c9-bf9b-60e150b429ae</Definition>
|
||||
<Tab>Inhalt</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Der Titel des Inhaltsbereichs.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Inhaltstitel verbergen</Name>
|
||||
<Alias>hideContentTitle</Alias>
|
||||
<Type>38b352c1-e9f8-4fd8-9324-9a2eab06d97a</Type>
|
||||
<Definition>92897bc6-a5f3-4ffe-ae27-f2e7e33dda49</Definition>
|
||||
<Tab>Inhalt</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Selektieren um den Titelbalken für den Inhaltsbereich zu verbergen.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Inhaltspadding weglassen</Name>
|
||||
<Alias>hideContentPadding</Alias>
|
||||
<Type>38b352c1-e9f8-4fd8-9324-9a2eab06d97a</Type>
|
||||
<Definition>92897bc6-a5f3-4ffe-ae27-f2e7e33dda49</Definition>
|
||||
<Tab>Inhalt</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[Selektieren um das Padding zwischen Inhalt und Rahmen im Inhaltsbereich auszuschalten.]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Inhalt</Name>
|
||||
<Alias>content</Alias>
|
||||
<Type>5e9b75ae-face-41c8-b47e-5f4b0fd82f83</Type>
|
||||
<Definition>ca90c950-0aff-4e72-b976-a30b1ac57dad</Definition>
|
||||
<Tab>Inhalt</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
</GenericProperties>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Id>9</Id>
|
||||
<Caption>Inhalt</Caption>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<Id>10</Id>
|
||||
<Caption>Angebot Links</Caption>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<Id>11</Id>
|
||||
<Caption>Angebot Mitte</Caption>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<Id>12</Id>
|
||||
<Caption>Angebot Rechts</Caption>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<Id>13</Id>
|
||||
<Caption>News</Caption>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<Id>14</Id>
|
||||
<Caption>Facebook</Caption>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<Id>15</Id>
|
||||
<Caption>Metadaten</Caption>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
</DocumentType>
|
||||
</DocumentTypes>
|
||||
<Templates />
|
||||
<Stylesheets />
|
||||
<Macros />
|
||||
<DictionaryItems />
|
||||
<Languages />
|
||||
<DataTypes />
|
||||
<Actions>
|
||||
<Action runat="install" undo="true" alias="AddServiceHostingEnvironment" multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
|
||||
</Actions>
|
||||
</umbPackage>
|
||||
@@ -0,0 +1,158 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<umbPackage>
|
||||
<files />
|
||||
<info>
|
||||
<package>
|
||||
<name>Package With MediaTypes And Media + Folder</name>
|
||||
<version>1.0.0</version>
|
||||
<iconUrl></iconUrl>
|
||||
<license url="http://opensource.org/licenses/MIT">MIT License</license>
|
||||
<url>http://www.umbraco.com</url>
|
||||
<requirements type="Strict">
|
||||
<major>0</major>
|
||||
<minor>5</minor>
|
||||
<patch>0</patch>
|
||||
</requirements>
|
||||
</package>
|
||||
<author>
|
||||
<name>dteam</name>
|
||||
<website>http://www.umbraco.com</website>
|
||||
</author>
|
||||
<contributors></contributors>
|
||||
<readme><![CDATA[]]></readme>
|
||||
</info>
|
||||
<DocumentTypes />
|
||||
<MediaTypes>
|
||||
<MediaType>
|
||||
<Info>
|
||||
<Name>Folder</Name>
|
||||
<Alias>Folder</Alias>
|
||||
<Icon>icon-folder</Icon>
|
||||
<Thumbnail>icon-folder</Thumbnail>
|
||||
<Description />
|
||||
<AllowAtRoot>True</AllowAtRoot>
|
||||
</Info>
|
||||
<Structure>
|
||||
<MediaType>Folder</MediaType>
|
||||
<MediaType>Image</MediaType>
|
||||
<MediaType>File</MediaType>
|
||||
</Structure>
|
||||
<GenericProperties />
|
||||
<Tabs />
|
||||
</MediaType>
|
||||
<MediaType>
|
||||
<Info>
|
||||
<Name>Image</Name>
|
||||
<Alias>Image</Alias>
|
||||
<Icon>icon-picture</Icon>
|
||||
<Thumbnail>icon-picture</Thumbnail>
|
||||
<Description />
|
||||
<AllowAtRoot>True</AllowAtRoot>
|
||||
</Info>
|
||||
<Structure />
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>Upload image</Name>
|
||||
<Alias>umbracoFile</Alias>
|
||||
<Type>Umbraco.ImageCropper</Type>
|
||||
<Definition>1df9f033-e6d4-451f-b8d2-e0cbc50a836f</Definition>
|
||||
<Tab>Image</Tab>
|
||||
<Mandatory>True</Mandatory>
|
||||
<MandatoryMessage />
|
||||
<Validation />
|
||||
<ValidationRegExpMessage />
|
||||
<LabelOnTop>false</LabelOnTop>
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Width</Name>
|
||||
<Alias>umbracoWidth</Alias>
|
||||
<Type>Umbraco.Label</Type>
|
||||
<Definition>8e7f995c-bd81-4627-9932-c40e568ec788</Definition>
|
||||
<Tab>Image</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<MandatoryMessage />
|
||||
<Validation />
|
||||
<ValidationRegExpMessage />
|
||||
<LabelOnTop>false</LabelOnTop>
|
||||
<Description><![CDATA[in pixels]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Height</Name>
|
||||
<Alias>umbracoHeight</Alias>
|
||||
<Type>Umbraco.Label</Type>
|
||||
<Definition>8e7f995c-bd81-4627-9932-c40e568ec788</Definition>
|
||||
<Tab>Image</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<MandatoryMessage />
|
||||
<Validation />
|
||||
<ValidationRegExpMessage />
|
||||
<LabelOnTop>false</LabelOnTop>
|
||||
<Description><![CDATA[in pixels]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Size</Name>
|
||||
<Alias>umbracoBytes</Alias>
|
||||
<Type>Umbraco.Label</Type>
|
||||
<Definition>930861bf-e262-4ead-a704-f99453565708</Definition>
|
||||
<Tab>Image</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<MandatoryMessage />
|
||||
<Validation />
|
||||
<ValidationRegExpMessage />
|
||||
<LabelOnTop>false</LabelOnTop>
|
||||
<Description><![CDATA[in bytes]]></Description>
|
||||
</GenericProperty>
|
||||
<GenericProperty>
|
||||
<Name>Type</Name>
|
||||
<Alias>umbracoExtension</Alias>
|
||||
<Type>Umbraco.Label</Type>
|
||||
<Definition>f0bc4bfb-b499-40d6-ba86-058885a5178c</Definition>
|
||||
<Tab>Image</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<MandatoryMessage />
|
||||
<Validation />
|
||||
<ValidationRegExpMessage />
|
||||
<LabelOnTop>false</LabelOnTop>
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
</GenericProperties>
|
||||
<Tabs>
|
||||
<Tab>
|
||||
<Id>3</Id>
|
||||
<Caption>Image</Caption>
|
||||
<SortOrder>1</SortOrder>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
</MediaType>
|
||||
</MediaTypes>
|
||||
<Templates />
|
||||
<Stylesheets />
|
||||
<Macros />
|
||||
<DictionaryItems />
|
||||
<Languages />
|
||||
<DataTypes />
|
||||
<MediaItems>
|
||||
<MediaSet>
|
||||
<Image id="1145" key="cd4caf13-0705-4e31-9661-48d5a6ce2cc6" parentID="-1" level="1" creatorID="-1" sortOrder="0" createDate="2020-12-15T12:56:46" updateDate="2020-12-15T12:56:46" nodeName="Ledersidetegning Mandag 27 01 20 Rgb (1) (1)" urlName="ledersidetegning-mandag-27-01-20-rgb-1-1" path="-1,1145" isDoc="" nodeType="1032" nodeTypeAlias="Image" writerName="" writerID="0" udi="umb://media/cd4caf1307054e31966148d5a6ce2cc6">
|
||||
<umbracoFile><![CDATA[{"src":"/media/cwxfztif/ledersidetegning-mandag-27-01-20-rgb-1.jpg","crops":null}]]></umbracoFile>
|
||||
<umbracoWidth><![CDATA[940]]></umbracoWidth>
|
||||
<umbracoHeight><![CDATA[564]]></umbracoHeight>
|
||||
<umbracoBytes><![CDATA[20340]]></umbracoBytes>
|
||||
<umbracoExtension><![CDATA[jpg]]></umbracoExtension>
|
||||
</Image>
|
||||
</MediaSet>
|
||||
<MediaSet>
|
||||
<Folder id="1146" key="aef56c09-de35-4d45-b91a-93096dac5e45" parentID="-1" level="1" creatorID="-1" sortOrder="1" createDate="2020-12-15T12:57:26" updateDate="2020-12-15T12:57:26" nodeName="asd" urlName="asd" path="-1,1146" isDoc="" nodeType="1031" nodeTypeAlias="Folder" writerName="" writerID="0" udi="umb://media/aef56c09de354d45b91a93096dac5e45">
|
||||
<Image id="1147" key="4a3172d8-3c68-4c32-890f-051894e50c8e" parentID="1146" level="2" creatorID="-1" sortOrder="0" createDate="2020-12-15T12:58:00" updateDate="2020-12-15T12:58:00" nodeName="Rider" urlName="rider" path="-1,1146,1147" isDoc="" nodeType="1032" nodeTypeAlias="Image" writerName="" writerID="0" udi="umb://media/4a3172d83c684c32890f051894e50c8e">
|
||||
<umbracoFile><![CDATA[{"src":"/media/1zzdcsti/rider.png","crops":null}]]></umbracoFile>
|
||||
<umbracoWidth><![CDATA[839]]></umbracoWidth>
|
||||
<umbracoHeight><![CDATA[551]]></umbracoHeight>
|
||||
<umbracoBytes><![CDATA[37605]]></umbracoBytes>
|
||||
<umbracoExtension><![CDATA[png]]></umbracoExtension>
|
||||
</Image>
|
||||
</Folder>
|
||||
</MediaSet>
|
||||
</MediaItems>
|
||||
<Actions />
|
||||
</umbPackage>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>test</Name>
|
||||
<Alias>test</Alias>
|
||||
<Icon>folder.gif</Icon>
|
||||
<Thumbnail>folder.png</Thumbnail>
|
||||
<Description>
|
||||
</Description>
|
||||
<AllowAtRoot>False</AllowAtRoot>
|
||||
<AllowedTemplates>
|
||||
<Template>test</Template>
|
||||
</AllowedTemplates>
|
||||
<DefaultTemplate>test</DefaultTemplate>
|
||||
</Info>
|
||||
<Structure>
|
||||
<DocumentType>test</DocumentType>
|
||||
</Structure>
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>test</Name>
|
||||
<Alias>test</Alias>
|
||||
<Type>b4471851-82b6-4c75-afa4-39fa9c6a75e9</Type>
|
||||
<Definition>fbaf13a8-4036-41f2-93a3-974f678c312a</Definition>
|
||||
<Tab>
|
||||
</Tab>
|
||||
<Mandatory>False</Mandatory>
|
||||
<Validation>
|
||||
</Validation>
|
||||
<Description><![CDATA[]]></Description>
|
||||
</GenericProperty>
|
||||
</GenericProperties>
|
||||
<Tabs />
|
||||
</DocumentType>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,90 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<umbPackage>
|
||||
<files />
|
||||
<info>
|
||||
<package>
|
||||
<name>Template-Update</name>
|
||||
<version>0.1</version>
|
||||
<license url="http://www.opensource.org/licenses/mit-license.php">MIT license</license>
|
||||
<url>https://our.umbraco.com/projects</url>
|
||||
<requirements>
|
||||
<major>3</major>
|
||||
<minor>0</minor>
|
||||
<patch>0</patch>
|
||||
</requirements>
|
||||
</package>
|
||||
<author>
|
||||
<name>Morten Christensen</name>
|
||||
<website>http://blog.sitereactor.dk</website>
|
||||
</author>
|
||||
<readme><![CDATA[]]></readme>
|
||||
</info>
|
||||
<DocumentTypes />
|
||||
<Templates>
|
||||
<Template>
|
||||
<Name>Homepage</Name>
|
||||
<Alias>umbHomepage</Alias>
|
||||
<Master>umbMaster</Master>
|
||||
<Design>
|
||||
<![CDATA[<%@ Master Language="C#" MasterPageFile="~/masterpages/umbMaster.master" AutoEventWireup="true" %>
|
||||
<asp:content id="Content1" contentplaceholderid="cp_content" runat="server">
|
||||
<div id="skinHeader" class="clearfix">
|
||||
<h1>
|
||||
don't panic<br>
|
||||
just yet*
|
||||
</h1>
|
||||
<p>
|
||||
*<br>
|
||||
Most of the time ghosts are friendly and there is really no need to panic.
|
||||
Ghosts are lost souls looking to be released and pass on to whatever
|
||||
heaven they attend (depending on religion).
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="content" class="frontPage">
|
||||
<umbraco:item id="Item1" runat="server" field="bodyText"></umbraco:item>
|
||||
</div>
|
||||
|
||||
|
||||
</asp:content>]]>
|
||||
</Design>
|
||||
</Template>
|
||||
<Template>
|
||||
<Name>Textpage</Name>
|
||||
<Alias>umbTextpage</Alias>
|
||||
<Master>umbMaster</Master>
|
||||
<Design>
|
||||
<![CDATA[<%@ Master Language="C#" MasterPageFile="~/masterpages/umbMaster.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ID="Content1" ContentPlaceHolderID="cp_top" runat="server">
|
||||
<div id="top">
|
||||
<div id="topInner">
|
||||
<h1 id="siteName"><a href="/"><umbraco:Item runat="server" field="siteName" recursive="true" /></a></h1>
|
||||
<h2 id="siteDescription"><umbraco:Item runat="server" field="siteDescription" recursive="true" /></h2>
|
||||
</div>
|
||||
<div id="naviWrap">
|
||||
<umbraco:Macro ID="Macro1" Alias="umbTopNavigation" runat="server" />
|
||||
</div>
|
||||
<div id="subNavigation">
|
||||
<umbraco:Macro ID="Macro2" Alias="umb2ndLevelNavigation" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
</div>
|
||||
</asp:Content>
|
||||
|
||||
<asp:Content ID="Content2" ContentPlaceHolderID="cp_content" runat="server">
|
||||
<div id="content" class="textpage">
|
||||
<div id="contentHeader">
|
||||
<h2><umbraco:Item runat="server" field="pageName"/></h2>
|
||||
</div>
|
||||
<umbraco:Item runat="server" field="bodyText" />
|
||||
</div>
|
||||
</asp:Content>]]>
|
||||
</Design>
|
||||
</Template>
|
||||
</Templates>
|
||||
<Stylesheets />
|
||||
<Macros />
|
||||
<DictionaryItems />
|
||||
<Languages />
|
||||
<DataTypes />
|
||||
</umbPackage>
|
||||
@@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<umbPackage>
|
||||
<files />
|
||||
<info>
|
||||
<package>
|
||||
<name>Template-Update</name>
|
||||
<version>0.1</version>
|
||||
<license url="http://www.opensource.org/licenses/mit-license.php">MIT license</license>
|
||||
<url>https://our.umbraco.com/projects</url>
|
||||
<requirements>
|
||||
<major>3</major>
|
||||
<minor>0</minor>
|
||||
<patch>0</patch>
|
||||
</requirements>
|
||||
</package>
|
||||
<author>
|
||||
<name>Morten Christensen</name>
|
||||
<website>http://blog.sitereactor.dk</website>
|
||||
</author>
|
||||
<readme><![CDATA[]]></readme>
|
||||
</info>
|
||||
<DocumentTypes />
|
||||
<Templates>
|
||||
<Template>
|
||||
<Name>Homepage</Name>
|
||||
<Alias>umbHomepage</Alias>
|
||||
<Master>umbMaster</Master>
|
||||
<Design>
|
||||
<![CDATA[<%@ Master Language="C#" MasterPageFile="~/masterpages/umbMaster.master" AutoEventWireup="true" %>
|
||||
<asp:content id="Content1" contentplaceholderid="cp_content" runat="server">
|
||||
<div id="skinHeader" class="clearfix">
|
||||
<h1> THIS HAS BEEN UPDATED! </h1>
|
||||
<p>
|
||||
*<br>
|
||||
Most of the time ghosts are friendly and there is really no need to panic.
|
||||
Ghosts are lost souls looking to be released and pass on to whatever
|
||||
heaven they attend (depending on religion).
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="content" class="frontPage">
|
||||
<umbraco:item id="Item1" runat="server" field="bodyText"></umbraco:item>
|
||||
</div>
|
||||
|
||||
|
||||
</asp:content>]]>
|
||||
</Design>
|
||||
</Template>
|
||||
<Template>
|
||||
<Name>Textpage</Name>
|
||||
<Alias>umbTextpage</Alias>
|
||||
<Master>umbMaster</Master>
|
||||
<Design>
|
||||
<![CDATA[<%@ Master Language="C#" MasterPageFile="~/masterpages/umbMaster.master" AutoEventWireup="true" %>
|
||||
|
||||
<asp:Content ID="Content1" ContentPlaceHolderID="cp_top" runat="server">
|
||||
<div id="top">
|
||||
<div id="topInner">
|
||||
<h1 id="siteName"><a href="/"><umbraco:Item runat="server" field="siteName" recursive="true" /></a></h1>
|
||||
<h2 id="siteDescription"><umbraco:Item runat="server" field="siteDescription" recursive="true" /></h2>
|
||||
</div>
|
||||
<div id="naviWrap">
|
||||
<umbraco:Macro ID="Macro1" Alias="umbTopNavigation" runat="server" />
|
||||
</div>
|
||||
<div id="subNavigation">
|
||||
<umbraco:Macro ID="Macro2" Alias="umb2ndLevelNavigation" runat="server"></umbraco:Macro>
|
||||
</div>
|
||||
</div>
|
||||
</asp:Content>
|
||||
|
||||
<asp:Content ID="Content2" ContentPlaceHolderID="cp_content" runat="server">
|
||||
<div id="content" class="textpage">
|
||||
<div id="contentHeader">
|
||||
<h2><umbraco:Item runat="server" field="pageName"/></h2>
|
||||
</div>
|
||||
<umbraco:Item runat="server" field="bodyText" />
|
||||
</div>
|
||||
</asp:Content>]]>
|
||||
</Design>
|
||||
</Template>
|
||||
</Templates>
|
||||
<Stylesheets />
|
||||
<Macros />
|
||||
<DictionaryItems />
|
||||
<Languages />
|
||||
<DataTypes />
|
||||
</umbPackage>
|
||||
@@ -0,0 +1,252 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<umbPackage>
|
||||
<files>
|
||||
<file>
|
||||
<guid>XSLTsearch.xslt</guid>
|
||||
<orgPath>/xslt</orgPath>
|
||||
<orgName>XSLTsearch.xslt</orgName>
|
||||
</file>
|
||||
<file>
|
||||
<guid>XSLTsearch.cs</guid>
|
||||
<orgPath>/App_Code</orgPath>
|
||||
<orgName>XSLTsearch.cs</orgName>
|
||||
</file>
|
||||
</files>
|
||||
<info>
|
||||
<package>
|
||||
<name>XSLTsearch</name>
|
||||
<version>3.0.4</version>
|
||||
<license url="http://www.opensource.org/licenses/mit-license.php">MIT license</license>
|
||||
<url>http://www.percipientstudios.com</url>
|
||||
<requirements>
|
||||
<major>3</major>
|
||||
<minor>0</minor>
|
||||
<patch>0</patch>
|
||||
</requirements>
|
||||
</package>
|
||||
<author>
|
||||
<name>Percipient Studios</name>
|
||||
<website>http://www.percipientstudios.com</website>
|
||||
</author>
|
||||
<readme>
|
||||
<![CDATA[XSLTsearch is the easy search solution for Umbraco web sites with up to a few thousand pages. It is fast, completely self-contained, and extremely configurable.
|
||||
|
||||
With XSLTsearch you can search for all words and phrases in all document properties and attributes, including your custom properties. Search results are automatically sorted by relevance with search terms highlighted in the results.
|
||||
|
||||
XSLTsearch installs in all Umbraco sites.
|
||||
|
||||
New in 3.0:
|
||||
- Multi-lingual support with dictionary items
|
||||
- Medium trust support (helper functions now in /app_code/xsltsearch.cs)
|
||||
- Many bug fixes
|
||||
|
||||
Version 3.0.1
|
||||
- For umbraco 4.5+ and new XML schema
|
||||
- Fixed xslt error when a previewed field had fewer than six characters
|
||||
- Changed default behavior to only search within current site if source node id is not specified (better for multiple sites in one installation)
|
||||
- Multi-site searching made easier. Now searches only within the current site if the source= parameter is not specified (better for multiple sites in one installation)
|
||||
|
||||
Version 3.0.2
|
||||
- Fixed issue of PreviewMode="CONTEXT" in which the search term would not be highlighted if it were the last word in the content being searched
|
||||
|
||||
Version 3.0.3
|
||||
- Removed extraneous whitespace and empty quotes from search term
|
||||
|
||||
Version 3.0.4
|
||||
- Additional fix for PreviewMode="CONTEXT" in which the search term would not be displayed if it were the last word in the content being search and the search term were more than $maxChars from the beginning of the search field
|
||||
- Removed errant 'xmp' debug statement that appeared in v3.0.3
|
||||
]]>
|
||||
</readme>
|
||||
</info>
|
||||
<Documents>
|
||||
<DocumentSet importMode="root">
|
||||
<XSLTsearch id="1090" parentID="-1" level="1" writerID="0" creatorID="0" nodeType="1087" template="1086" sortOrder="39" createDate="2010-11-09T13:45:22" updateDate="2010-11-09T14:18:04" nodeName="Search" urlName="search" writerName="Administrator" creatorName="Administrator" path="-1,1090" isDoc="">
|
||||
<umbracoNaviHide>0</umbracoNaviHide>
|
||||
</XSLTsearch>
|
||||
</DocumentSet>
|
||||
</Documents>
|
||||
<DocumentTypes>
|
||||
<DocumentType>
|
||||
<Info>
|
||||
<Name>XSLTsearch</Name>
|
||||
<Alias>XSLTsearch</Alias>
|
||||
<Icon>.sprTreeDoc2</Icon>
|
||||
<Thumbnail>doc.png</Thumbnail>
|
||||
<Description>
|
||||
XSLTsearch page.
|
||||
(adjust settings via the macro in the XSLTsearch template)
|
||||
</Description>
|
||||
<AllowedTemplates>
|
||||
<Template>XSLTsearch</Template>
|
||||
</AllowedTemplates>
|
||||
<DefaultTemplate>XSLTsearch</DefaultTemplate>
|
||||
</Info>
|
||||
<Structure />
|
||||
<GenericProperties>
|
||||
<GenericProperty>
|
||||
<Name>Hide in 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>
|
||||
</DocumentTypes>
|
||||
<Templates>
|
||||
<Template>
|
||||
<Name>XSLTsearch</Name>
|
||||
<Alias>XSLTsearch</Alias>
|
||||
<Master>RunwayMaster</Master>
|
||||
<Design>
|
||||
<![CDATA[<%@ Master Language="C#" MasterPageFile="~/masterpages/RunwayMaster.master" AutoEventWireup="true" %>
|
||||
|
||||
|
||||
<asp:Content ContentPlaceHolderId="RunwayMasterContentPlaceHolder" runat="server">
|
||||
<div id="content">
|
||||
<div id="contentHeader">
|
||||
<h2><umbraco:Item runat="server" field="pageName"/></h2>
|
||||
</div>
|
||||
|
||||
<umbraco:Macro runat="server" Alias="XSLTsearch"
|
||||
macroAlias="XSLTsearch"
|
||||
source="-1"
|
||||
searchFields="@nodeName,metaKeywords,metaDescription,bodyText"
|
||||
previewFields="bodyText,metaDescription"
|
||||
previewType="beginning"
|
||||
searchBoxLocation="bottom"
|
||||
resultsPerPage="5"
|
||||
previewChars="255"
|
||||
showPageRange="0"
|
||||
showOrdinals="0"
|
||||
showScores="0"
|
||||
showStats="1">
|
||||
</umbraco:Macro>
|
||||
|
||||
</div>
|
||||
</asp:Content>]]>
|
||||
</Design>
|
||||
</Template>
|
||||
</Templates>
|
||||
<Stylesheets>
|
||||
<Stylesheet>
|
||||
<Name>XSLTsearch</Name>
|
||||
<FileName>
|
||||
</FileName>
|
||||
<Content>
|
||||
<![CDATA[#xsltsearch {margin: 0; padding-bottom: 20px;}
|
||||
#xsltsearch_navigation {text-align: center;}
|
||||
#xsltsearch_navigation .disabled {color: #AAA;}
|
||||
#xsltsearch_stats {font-size: 75%; color: #999;}
|
||||
#xsltsearch_results {padding-bottom: 20px;}
|
||||
#xsltsearch h2 {font-size: 150%;}
|
||||
.xsltsearch_result p {margin: 0; padding: 0;}
|
||||
.xsltsearch_result:hover {background: #fafafa;}
|
||||
.xsltsearch_ordinal {font-weight: bold; font-size: 75%;}
|
||||
.xsltsearch_title {font-weight: bold;}
|
||||
.xsltsearch_score {font-size: 75%;}
|
||||
p.xsltsearch_result_description {padding-bottom: 10px;}
|
||||
.xsltsearch_description strong {background: #FFD;} /* highlighting */
|
||||
]]>
|
||||
</Content>
|
||||
</Stylesheet>
|
||||
</Stylesheets>
|
||||
<Macros>
|
||||
<macro>
|
||||
<name>XSLTsearch</name>
|
||||
<alias>XSLTsearch</alias>
|
||||
<macroType>Unknown</macroType>
|
||||
<macroSource />
|
||||
<xslt>XSLTsearch.xslt</xslt>
|
||||
<useInEditor>False</useInEditor>
|
||||
<refreshRate>0</refreshRate>
|
||||
<scriptingFile>
|
||||
</scriptingFile>
|
||||
<properties>
|
||||
<property name="Source" alias="source" show="True" propertyType="contentTree" />
|
||||
<property name="Umbraco fields to search" alias="searchFields" show="True" propertyType="text" />
|
||||
<property name="Umbraco fields shown in results preview" alias="previewFields" show="True" propertyType="text" />
|
||||
<property name="Display search box at TOP, BOTTOM, BOTH, or NONE" alias="searchBoxLocation" show="True" propertyType="text" />
|
||||
<property name="Display BEGINNING or CONTEXT of each result" alias="previewType" show="True" propertyType="text" />
|
||||
<property name="Number of search results to display per page" alias="resultsPerPage" show="True" propertyType="number" />
|
||||
<property name="Number of characters of preview text to display" alias="previewChars" show="True" propertyType="number" />
|
||||
<property name="Display 'Showing result X to Y'?" alias="showPageRange" show="True" propertyType="bool" />
|
||||
<property name="Display numbers before each result?" alias="showOrdinals" show="True" propertyType="bool" />
|
||||
<property name="Display search score for each result?" alias="showScores" show="True" propertyType="bool" />
|
||||
<property name="Display 'Searched X documents in Y seconds'?" alias="showStats" show="True" propertyType="bool" />
|
||||
</properties>
|
||||
</macro>
|
||||
</Macros>
|
||||
<DictionaryItems>
|
||||
<DictionaryItem Key="XSLTsearch">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[]]></Value>
|
||||
<DictionaryItem Key="[XSLTsearch]Button-Search">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[Search]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]Description-Context">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[Context]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]Description-ContextUnavailable">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[unavailable]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]Heading-SearchResults">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[Search Results]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]Navigation-Next">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[Next]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]Navigation-Previous">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[Previous]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]PageRange-ShowingResults">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[Showing results]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]PageRange-To">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[to]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]Score-Score">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[score]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]Stats-PagesIn">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[pages in]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]Stats-Searched">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[Searched]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]Stats-Seconds">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[seconds]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]Summary-Matches">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[matches]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]Summary-NoMatchesWereFoundFor">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[No matches were found for]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]Summary-Page">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[page]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]Summary-Pages">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[pages]]></Value>
|
||||
</DictionaryItem>
|
||||
<DictionaryItem Key="[XSLTsearch]Summary-YourSearchFor">
|
||||
<Value LanguageId="1" LanguageCultureAlias="en-US"><![CDATA[Your search for]]></Value>
|
||||
</DictionaryItem>
|
||||
</DictionaryItem>
|
||||
</DictionaryItems>
|
||||
<Languages>
|
||||
<Language Id="2" CultureAlias="en-US" FriendlyName="English (United States)" />
|
||||
</Languages>
|
||||
<DataTypes />
|
||||
<Actions>
|
||||
<Action runat="install" alias="addStringToHtmlElement" templateAlias="RunwayMaster" htmlElementId="head" position="end"><![CDATA[ <link rel="stylesheet" type="text/css" href="/css/XSLTsearch.css" />]]></Action>
|
||||
<Action runat="install" alias="publishRootDocument" documentName="Search" />
|
||||
<Action runat="install" alias="allowDocumenttype" documentTypeAlias="XSLTsearch" parentDocumentTypeAlias="RunwayHomepage" />
|
||||
<Action runat="install" alias="moveRootDocument" documentName="Search" parentDocumentType="RunwayHomepage" />
|
||||
</Actions>
|
||||
</umbPackage>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -19,6 +19,16 @@
|
||||
<EmbeddedResource Remove="Views\**" />
|
||||
<None Remove="Views\**" />
|
||||
<None Remove="create_slicing_filter_condition.sh" />
|
||||
<EmbeddedResource Update="Umbraco.Infrastructure\Services\Importing\ImportResources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>ImportResources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Update="Umbraco.Infrastructure\Services\Importing\ImportResources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>ImportResources.resx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -26,7 +36,22 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Include="Umbraco.Infrastructure\Services\Importing\CheckboxList-Content-Package.xml">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<Content Include="Umbraco.Infrastructure\Services\Importing\CompositionsTestPackage-Random.xml" />
|
||||
<Content Include="Umbraco.Infrastructure\Services\Importing\CompositionsTestPackage.xml" />
|
||||
<Content Include="Umbraco.Infrastructure\Services\Importing\Dictionary-Package.xml" />
|
||||
<Content Include="Umbraco.Infrastructure\Services\Importing\Fanoe-Package.xml" />
|
||||
<Content Include="Umbraco.Infrastructure\Services\Importing\InheritedDocTypes-Package.xml" />
|
||||
<Content Include="Umbraco.Infrastructure\Services\Importing\SingleDocType.xml" />
|
||||
<Content Include="Umbraco.Infrastructure\Services\Importing\StandardMvc-Package.xml">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<Content Include="Umbraco.Infrastructure\Services\Importing\TemplateOnly-Package.xml" />
|
||||
<Content Include="Umbraco.Infrastructure\Services\Importing\TemplateOnly-Updated-Package.xml" />
|
||||
<Content Include="Umbraco.Infrastructure\Services\Importing\uBlogsy-Package.xml" />
|
||||
<Content Include="Umbraco.Infrastructure\Services\Importing\XsltSearch-Package.xml" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -58,20 +83,4 @@
|
||||
<Folder Include="Umbraco\logs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Update="Umbraco.Infrastructure\Services\Importing\ImportResources.Designer.cs">
|
||||
<DependentUpon>ImportResources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
<AutoGen>True</AutoGen>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Update="Umbraco.Infrastructure\Services\Importing\ImportResources.resx">
|
||||
<SubType>Designer</SubType>
|
||||
<LastGenOutput>ImportResources.Designer.cs</LastGenOutput>
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user