src/Orchard.Web/Themes/TheAdmin/Views/Menu.cshtml

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

@using System.Web.Routing;
@using Orchard.Utility.Extensions;
@{
    Script.Require("jQuery");
    Script.Include("admin.js");
    IEnumerable<dynamic> firstLevelMenuItems = Model;

    if (Model.ImageSets != null) {
        foreach (var imageSet in Model.ImageSets) {
            RegisterImageSet("menu." + imageSet, Model.MenuName /* style */, 16 /* bounding box */);
        }
    }

    Model.Attributes.Add("role", "navigation");
    var tag = Tag(Model, "ul");
}
@tag.StartElement
    @foreach(var firstLevelMenuItem in Model) {
        IEnumerable<dynamic> secondLevelMenuItems = firstLevelMenuItem;

        string sectionHeaderText = firstLevelMenuItem.Text.Text;
        string sectionHeaderTextHint = firstLevelMenuItem.Text.TextHint;
        var firstOfTheSecond = secondLevelMenuItems.FirstOrDefault();

        var itemClassName = HasText(sectionHeaderTextHint)
            ? "navicon-" + sectionHeaderTextHint.HtmlClassify()
            : "navicon";
        var itemId = HasText(firstLevelMenuItem.IdHint)
            ? "navicon-" + firstLevelMenuItem.IdHint
            : null;

        IHtmlString sectionHeaderMarkup;
        if (firstOfTheSecond != null && firstLevelMenuItem.LinkToFirstChild && (firstOfTheSecond.RouteValues != null || HasText(firstOfTheSecond.Url))) {
            sectionHeaderMarkup = HasText(itemId)
                ? Html.Link(sectionHeaderText, (string)firstOfTheSecond.Href, new { @class = itemClassName, id = itemId })
                : Html.Link(sectionHeaderText, (string)firstOfTheSecond.Href, new { @class = itemClassName });
        }
        else if (firstLevelMenuItem.RouteValues != null || HasText(firstLevelMenuItem.Url)) {
            sectionHeaderMarkup = HasText(itemId)
                ? Html.Link(sectionHeaderText, (string)firstLevelMenuItem.Href, new { @class = itemClassName, id = itemId })
                : Html.Link(sectionHeaderText, (string)firstLevelMenuItem.Href, new { @class = itemClassName });
        }
        else {
            // if the header isn't linked and there are no children there's no reason for this item in the menu other than to look pretty
            if (secondLevelMenuItems.Count() == 0) {
                continue;
            }
        
            sectionHeaderMarkup = HasText(itemId)
                ? new HtmlString(string.Format(@"<span class=""{1}"" id=""{2}"">{0}</span>", Html.Encode(sectionHeaderText), Html.Encode(itemClassName), Html.Encode(itemId)))
                : new HtmlString(string.Format(@"<span class=""{1}"">{0}</span>", Html.Encode(sectionHeaderText), Html.Encode(itemClassName)));
        }

        if (firstLevelMenuItem == firstLevelMenuItems.First()) {
            firstLevelMenuItem.Classes.Add("first");
        }
        if (firstLevelMenuItem == firstLevelMenuItems.Last()) {
            firstLevelMenuItem.Classes.Add("last");
        }
        if (firstLevelMenuItem.Selected) {
后面还有 55 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。