/
HtmlHelpers.cs
84 lines (75 loc) · 3.29 KB
/
HtmlHelpers.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
using System.Text;
using System.Web.Mvc;
using System.Web;
using Umbraco.Core.Models;
using Umbraco.Core.Security;
namespace BackOfficeExtensions
{
public enum EditLinkPosition
{
TopLeft = 0,
TopRight = 1,
BottomRight = 2,
BottomLeft = 3
}
public static class HtmlHelpers
{
public static IHtmlString UmbracoEditLink(this HtmlHelper helper, IPublishedContent thisPage,
EditLinkPosition position = EditLinkPosition.TopLeft, string linkColour = "#00aea2", string editMessage = "Edit",
int margin = 10, int zindex = 999, string umbracoEditContentUrl = "/umbraco#/content/content/edit/",
int fontSize = 16, string outerPosition = "fixed", string linkPosition = "absolute",
string outerClassName = "edit-link-outer", string linkClassName = "edit-link-inner")
{
StringBuilder editLinkCode = new StringBuilder();
var userTicket = new HttpContextWrapper(HttpContext.Current).GetUmbracoAuthTicket();
if (userTicket != null)
{
string outerStyles = "display:block;";
if (outerPosition == "fixed")
{
switch (position)
{
case EditLinkPosition.TopLeft:
outerStyles += $"top:{margin}px;";
outerStyles += $"left:{margin}px;";
break;
case EditLinkPosition.TopRight:
outerStyles += $"top:{margin}px;";
outerStyles += $"right:{margin}px;";
break;
case EditLinkPosition.BottomRight:
outerStyles += $"bottom:{margin}px;";
outerStyles += $"right:{margin}px;";
break;
case EditLinkPosition.BottomLeft:
outerStyles += $"bottom:{margin}px;";
outerStyles += $"left:{margin}px;";
break;
}
}
outerStyles += $"z-index:{zindex};";
outerStyles += $"position:{outerPosition};";
editLinkCode.Append($"<div");
editLinkCode.Append($" class=\"{outerClassName}\"");
if (!string.IsNullOrEmpty(outerStyles))
{
editLinkCode.Append($" style=\"{outerStyles}\"");
}
editLinkCode.Append($">");
string linkStyles = $"color:{linkColour};";
linkStyles += $"font-size:{fontSize}px;";
editLinkCode.Append($"<a ");
editLinkCode.Append($" class=\"{linkClassName}\"");
if (!string.IsNullOrEmpty(linkStyles))
{
editLinkCode.Append($"style={linkStyles}");
}
editLinkCode.Append($" target=\"_blank\"");
editLinkCode.Append($" href =\"{umbracoEditContentUrl}{thisPage.Id}\"");
editLinkCode.Append($">{editMessage}</a>");
editLinkCode.Append($"</div>");
}
return MvcHtmlString.Create(editLinkCode.ToString());
}
}
}