mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
@@ -16,21 +16,31 @@ namespace Orchard.Core.Contents {
|
||||
// Display type > content type > specific content > display type for a content type > display type for specific content
|
||||
|
||||
// Content__[DisplayType] e.g. Content.Summary
|
||||
displaying.ShapeMetadata.Alternates.Add("Content_" + displaying.ShapeMetadata.DisplayType);
|
||||
displaying.ShapeMetadata.Alternates.Add("Content_" + EncodeAlternateElement(displaying.ShapeMetadata.DisplayType));
|
||||
|
||||
// Content__[ContentType] e.g. Content-BlogPost
|
||||
displaying.ShapeMetadata.Alternates.Add("Content__" + contentItem.ContentType);
|
||||
displaying.ShapeMetadata.Alternates.Add("Content__" + EncodeAlternateElement(contentItem.ContentType));
|
||||
|
||||
// Content__[Id] e.g. Content-42
|
||||
displaying.ShapeMetadata.Alternates.Add("Content__" + contentItem.Id);
|
||||
|
||||
// Content_[DisplayType]__[ContentType] e.g. Content-BlogPost.Summary
|
||||
displaying.ShapeMetadata.Alternates.Add("Content_" + displaying.ShapeMetadata.DisplayType + "__" + contentItem.ContentType);
|
||||
displaying.ShapeMetadata.Alternates.Add("Content_" + displaying.ShapeMetadata.DisplayType + "__" + EncodeAlternateElement(contentItem.ContentType));
|
||||
|
||||
// Content_[DisplayType]__[Id] e.g. Content-42.Summary
|
||||
displaying.ShapeMetadata.Alternates.Add("Content_" + displaying.ShapeMetadata.DisplayType + "__" + contentItem.Id);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Encodes dashed and dots so that they don't conflict in filenames
|
||||
/// </summary>
|
||||
/// <param name="alternateElement"></param>
|
||||
/// <returns></returns>
|
||||
private string EncodeAlternateElement(string alternateElement) {
|
||||
return alternateElement.Replace("-", "__").Replace(".", "_");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -156,31 +156,31 @@ namespace Orchard.ContentManagement.Drivers {
|
||||
|
||||
// [ShapeType__FieldName] e.g. Fields/Common.Text-Teaser
|
||||
if ( !string.IsNullOrEmpty(fieldName) )
|
||||
metadata.Alternates.Add(shapeType + "__" + fieldName);
|
||||
metadata.Alternates.Add(shapeType + "__" + EncodeAlternateElement(fieldName));
|
||||
|
||||
// [ShapeType__PartName] e.g. Fields/Common.Text-TeaserPart
|
||||
if ( !string.IsNullOrEmpty(partName) ) {
|
||||
metadata.Alternates.Add(shapeType + "__" + partName);
|
||||
metadata.Alternates.Add(shapeType + "__" + EncodeAlternateElement(partName));
|
||||
}
|
||||
|
||||
// [ShapeType]__[ContentType]__[PartName] e.g. Fields/Common.Text-Blog-TeaserPart
|
||||
if ( !string.IsNullOrEmpty(partName) && !string.IsNullOrEmpty(contentType) && !dynamicType ) {
|
||||
metadata.Alternates.Add(shapeType + "__" + contentType + "__" + partName);
|
||||
metadata.Alternates.Add(EncodeAlternateElement(shapeType + "__" + contentType + "__" + partName));
|
||||
}
|
||||
|
||||
// [ShapeType]__[PartName]__[FieldName] e.g. Fields/Common.Text-TeaserPart-Teaser
|
||||
if ( !string.IsNullOrEmpty(partName) && !string.IsNullOrEmpty(fieldName) ) {
|
||||
metadata.Alternates.Add(shapeType + "__" + partName + "__" + fieldName);
|
||||
metadata.Alternates.Add(EncodeAlternateElement(shapeType + "__" + partName + "__" + fieldName));
|
||||
}
|
||||
|
||||
// [ShapeType]__[ContentType]__[FieldName] e.g. Fields/Common.Text-Blog-Teaser
|
||||
if ( !string.IsNullOrEmpty(contentType) && !string.IsNullOrEmpty(fieldName) ) {
|
||||
metadata.Alternates.Add(shapeType + "__" + contentType + "__" + fieldName);
|
||||
metadata.Alternates.Add(EncodeAlternateElement(shapeType + "__" + contentType + "__" + fieldName));
|
||||
}
|
||||
|
||||
// [ShapeType]__[ContentType]__[PartName]__[FieldName] e.g. Fields/Common.Text-Blog-TeaserPart-Teaser
|
||||
if ( !string.IsNullOrEmpty(contentType) && !string.IsNullOrEmpty(partName) && !string.IsNullOrEmpty(fieldName) && !dynamicType ) {
|
||||
metadata.Alternates.Add(shapeType + "__" + contentType + "__" + partName );
|
||||
metadata.Alternates.Add(EncodeAlternateElement(shapeType + "__" + contentType + "__" + partName));
|
||||
}
|
||||
|
||||
return shape;
|
||||
@@ -207,5 +207,14 @@ namespace Orchard.ContentManagement.Drivers {
|
||||
public CombinedResult Combined(params DriverResult[] results) {
|
||||
return new CombinedResult(results);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Encodes dashed and dots so that they don't conflict in filenames
|
||||
/// </summary>
|
||||
/// <param name="alternateElement"></param>
|
||||
/// <returns></returns>
|
||||
private static string EncodeAlternateElement(string alternateElement) {
|
||||
return alternateElement.Replace("-", "__").Replace(".", "_");
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user