Adding content item name and link helpers

--HG--
extra : convert_revision : svn%3A5ff7c347-ad56-4c35-b696-ccb81de16e03/trunk%4041610
This commit is contained in:
loudej
2009-11-21 02:28:56 +00:00
parent b919cacbf7
commit a3132fc12d
4 changed files with 58 additions and 2 deletions

View File

@@ -1,7 +1,20 @@
using System.Web.Routing;
using Orchard.Models;
namespace Orchard.Wikis.Models {
public class WikiPage : ContentPartForRecord<WikiPageRecord> {
public class WikiPage : ContentPartForRecord<WikiPageRecord>, IContentItemDisplay {
string IContentItemDisplay.DisplayText {
get { return Record.Name; }
}
RouteValueDictionary IContentItemDisplay.DisplayRouteValues() {
return new RouteValueDictionary(new { area = "Orchard.Wikis", controller = "Page", action = "Show", id = ContentItem.Id });
}
RouteValueDictionary IContentItemDisplay.EditRouteValues() {
return new RouteValueDictionary(new { area = "Orchard.Wikis", controller = "Page", action = "Edit", id = ContentItem.Id });
}
}
}

View File

@@ -0,0 +1,9 @@
using System.Web.Routing;
namespace Orchard.Models {
public interface IContentItemDisplay : IContentItemPart {
string DisplayText { get; }
RouteValueDictionary DisplayRouteValues();
RouteValueDictionary EditRouteValues();
}
}

View File

@@ -0,0 +1,32 @@
using System;
using System.Web.Mvc;
using System.Web.Mvc.Html;
using Orchard.Models;
namespace Orchard.Mvc.Html {
public static class ContentItemExtensions {
public static MvcHtmlString ItemDisplayLink(this HtmlHelper html, string linkText, IContentItemPart item) {
var display = item.As<IContentItemDisplay>();
var values = display.DisplayRouteValues();
return html.ActionLink(linkText, Convert.ToString(values["action"]), values);
}
public static MvcHtmlString ItemDisplayLink(this HtmlHelper html, IContentItemPart item) {
var display = item.As<IContentItemDisplay>();
var values = display.DisplayRouteValues();
return html.ActionLink(display.DisplayText, Convert.ToString(values["action"]), values);
}
public static MvcHtmlString ItemEditLink(this HtmlHelper html, string linkText, IContentItemPart item) {
var display = item.As<IContentItemDisplay>();
var values = display.DisplayRouteValues();
return html.ActionLink(linkText, Convert.ToString(values["action"]), values);
}
public static MvcHtmlString ItemEditLink(this HtmlHelper html, IContentItemPart item) {
var display = item.As<IContentItemDisplay>();
var values = display.DisplayRouteValues();
return html.ActionLink(display.DisplayText, Convert.ToString(values["action"]), values);
}
}
}

View File

@@ -152,6 +152,7 @@
<Compile Include="Models\Driver\StorageFilterBase.cs" />
<Compile Include="Models\Driver\TemplateFilterBase.cs" />
<Compile Include="Models\Driver\TemplateFilterForRecord.cs" />
<Compile Include="Models\IContentItemDisplay.cs" />
<Compile Include="Models\IContentManager.cs" />
<Compile Include="Models\Driver\IContentHandler.cs" />
<Compile Include="Models\ContentExtensions.cs" />
@@ -162,6 +163,7 @@
<Compile Include="Models\Records\ContentTypeRecord.cs" />
<Compile Include="Models\Records\ContentItemRecord.cs" />
<Compile Include="Models\Driver\UpdateContentContext.cs" />
<Compile Include="Mvc\Html\ContentItemExtensions.cs" />
<Compile Include="Mvc\MvcModule.cs" />
<Compile Include="Mvc\Html\HtmlHelperExtensions.cs" />
<Compile Include="Mvc\Filters\FilterProvider.cs" />