Skip to content

Commit

Permalink
Rearranged field rendering for better fit with Sitecore MVC
Browse files Browse the repository at this point in the history
  • Loading branch information
Kern Herskind Nightingale committed Jan 7, 2013
1 parent f61e68a commit 6f5d28e
Show file tree
Hide file tree
Showing 10 changed files with 62 additions and 22 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Expand Up @@ -29,4 +29,5 @@ obj/
_ReSharper*/
[Tt]est[Rr]esult*
lib/*.dll
BuiltFiles_Debug.txt
BuiltFiles_Debug.txt
_Re[s|S]harper*/
9 changes: 7 additions & 2 deletions code/Herskind.Model.Helper/BaseFieldWrapper.cs
Expand Up @@ -34,17 +34,22 @@ public string RawValue
}
}

public override string ToString()
{
return RenderField();
}

public bool IsModified
{
get { return _modified; }
}

public string Render()
public string RenderField()
{
return FieldRenderer.Render(_field.Item, _field.Key);
}

public string Render(string parameters)
public string RenderField(string parameters)
{
return FieldRenderer.Render(_field.Item, _field.Key, parameters);
}
Expand Down
5 changes: 0 additions & 5 deletions code/Herskind.Model.Helper/FieldTypes/DateFieldWrapper.cs
Expand Up @@ -11,11 +11,6 @@ namespace Herskind.Model.Helper.FieldTypes
{
public class DateFieldWrapper : BaseFieldWrapper, IDateFieldWrapper
{
public string Render(string dateFormat)
{
return FieldRenderer.Render(_field.Item, _field.Key, "format="+dateFormat);
}

public DateTime Date
{
get
Expand Down
1 change: 0 additions & 1 deletion code/Herskind.Model.Helper/FieldTypes/IDateFieldWrapper.cs
Expand Up @@ -8,6 +8,5 @@ namespace Herskind.Model.Helper.FieldTypes
public interface IDateFieldWrapper : IFieldWrapper
{
DateTime Date { get; set; }
string Render(string dateFormat);
}
}
3 changes: 1 addition & 2 deletions code/Herskind.Model.Helper/FieldTypes/IImageFieldWrapper.cs
Expand Up @@ -7,7 +7,6 @@ namespace Herskind.Model.Helper.FieldTypes
{
public interface IImageFieldWrapper : IFieldWrapper
{
string Render(int width, int height, bool crop);
string Render(int width, int height, bool crop, string cssClass);

}
}
9 changes: 0 additions & 9 deletions code/Herskind.Model.Helper/FieldTypes/ImageFieldWrapper.cs
Expand Up @@ -8,14 +8,5 @@ namespace Herskind.Model.Helper.FieldTypes
{
public class ImageFieldWrapper : BaseFieldWrapper, IImageFieldWrapper
{
public string Render(int width, int height, bool crop, string cssClass)
{
return base.Render(string.Format("w={0}&h={1}{2}&class={3}", width, height, crop ? "&crop=1" : "", cssClass));
}

public string Render(int width, int height, bool crop)
{
return this.Render(width, height, crop, null);
}
}
}
3 changes: 2 additions & 1 deletion code/Herskind.Model.Helper/FieldTypes/ListFieldWrapper.cs
Expand Up @@ -17,7 +17,8 @@ public IEnumerable<IItemWrapper> Items
var listField = (MultilistField)_field;
foreach (var id in listField.Items)
{
yield return factory.Select<IItemWrapper>(id, null).First();
var item = factory.Select<IItemWrapper>(id, null).FirstOrDefault();
if (item != null) yield return item;
}
}
}
Expand Down
2 changes: 2 additions & 0 deletions code/Herskind.Model.Helper/Herskind.Model.Helper.csproj
Expand Up @@ -66,10 +66,12 @@
<Compile Include="ISitecoreProvider.cs" />
<Compile Include="ItemFactory.cs" />
<Compile Include="IWrapper.cs" />
<Compile Include="Mvc\FieldExtensions.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SitecoreProvider.cs" />
<Compile Include="TemplateMappingAttribute.cs" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
Expand Down
3 changes: 2 additions & 1 deletion code/Herskind.Model.Helper/IFieldWrapper.cs
Expand Up @@ -9,6 +9,7 @@ public interface IFieldWrapper : IWrapper
{
string RawValue { get; set; }
bool IsModified { get; }
string Render();
string RenderField();
string RenderField(string parameters);
}
}
46 changes: 46 additions & 0 deletions code/Herskind.Model.Helper/Mvc/FieldExtensions.cs
@@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using Herskind.Model.Helper.FieldTypes;
using Sitecore.Data.Fields;
using Sitecore.Data.Items;
using Sitecore.Web.UI.WebControls;

namespace Herskind.Model.Helper.Mvc
{
public static class FieldExtensions
{
public static HtmlString Render(this IFieldWrapper fieldWrapper)
{
return new HtmlString(fieldWrapper.RenderField());
}
public static HtmlString Render(this IDateFieldWrapper fieldWrapper, string dateFormat)
{
return new HtmlString(fieldWrapper.RenderField("format=" + dateFormat));
}
public static HtmlString Render(this IImageFieldWrapper fieldWrapper, int width, int height, bool crop)
{
return fieldWrapper.Render(width, height, crop, "");
}
public static HtmlString Render(this IImageFieldWrapper fieldWrapper, int width, int height, bool crop, string cssClass)
{
return new HtmlString(fieldWrapper.RenderField(string.Format("w={0}&h={1}{2}&class={3}", width, height, crop ? "&crop=1" : "", cssClass)));
}

public static HtmlString RenderAroundHtml(this IFieldWrapper fieldWrapper, string innerHtml)
{
var fieldRenderer = new FieldRenderer
{
Item = ((Field)fieldWrapper.Original).Item,
FieldName = ((Field)fieldWrapper.Original).Key
};


var result = fieldRenderer.RenderField();

return new HtmlString(result.FirstPart + innerHtml + result.LastPart);
}
}
}

0 comments on commit 6f5d28e

Please sign in to comment.