在Orchard CMS中修改页脚

时间:2012-07-19 14:18:08

标签: asp.net-mvc orchardcms

我已经尝试过搜索这个问题的答案,但似乎没有一个解决方案能够显示如何修改页脚。我在主题视图中看到了这一点:

    <div id="footer-sig" class="group">
        @Zone(Model.Footer)
    </div>

如何修改Model.Footer?我有从Web安装程序安装的发行版,它似乎没有控制器或模型,只有视图。如何修改页脚?

例如,我只想放一个“|”在仪表板和其他链接之间。

2 个答案:

答案 0 :(得分:9)

如果您还没有这样做,可能值得阅读customising Orchard themes的一些背景信息。

这很大程度上取决于你想要改变Model.Footer的内容。假设您使用的是 TheThemeMachine 主题,则您发布的代码段包含在Layout.cshtml中。如果你进一步查看源代码,你会看到代码片段:

WorkContext.Layout.Footer.Add(New.BadgeOfHonor(), "5"); // Powered by Orchard
WorkContext.Layout.Footer.Add(New.User(), "10"); // Login and dashboard links

这告诉Orchard将两个新形状作为页脚的一部分(BadgeOfHonorUser)旋转。

BadgeOfHonor形状只是简单地渲染捆绑到TheTimeMachine主题的视图,因此可以轻松更改。

User形状在核心中有一个默认视图,并呈现页脚的“欢迎XXX /登录”元素。这可以通过您的主题以通常的Orchard方式覆盖。

从您的评论中,您可能希望更改TheThemeMachine的页脚,而不是说:

Powered by Orchard © The Theme Machine 2010. Welcome, admin! Sign Out Dashboard

它说:

Powered by Orchard © The Theme Machine 2010. Welcome, admin! Sign Out | Dashboard

您可以通过在主题中创建适当的视图来覆盖Orchard中的视图。因此,要更改呈现User形状的方式,您只需将视图添加到主题并进行修改即可。最简单的方法是去找现有的视图并将其复制到你的主题中,这将为你提供一些工作。在这种情况下,文件 src \ Orchard.Web \ Core \ Shapes \ Views \ User.cshtml 需要复制到文件夹 src \ Orchard.Web \ Themes \ TheTheMachine \ Views \ User.cshtml (假设您正在修改TheThemeMachine)。然后你只需要改变这段代码:

    <span class="user-actions">
        @Html.ActionLink(T("Sign Out").ToString(), "LogOff", new { Controller = "Account", Area = "Orchard.Users", ReturnUrl = Context.Request.RawUrl }, new { rel = "nofollow" })
        @if (AuthorizedFor(Orchard.Security.StandardPermissions.AccessAdminPanel)) {
            @Html.ActionLink(T("Dashboard").ToString(), "Index", new {Area = "Dashboard", Controller = "Admin"})
        }
    </span>

这样的事情:

    <span class="user-actions">
        @Html.ActionLink(T("Sign Out").ToString(), "LogOff", new { Controller = "Account", Area = "Orchard.Users", ReturnUrl = Context.Request.RawUrl }, new { rel = "nofollow" })
        |
        @if (AuthorizedFor(Orchard.Security.StandardPermissions.AccessAdminPanel)) {
            @Html.ActionLink(T("Dashboard").ToString(), "Index", new {Area = "Dashboard", Controller = "Admin"})
        }
    </span>

通常,最好使用自己的主题副本,而不是直接修改分发附带的副本,因为这样可以让您在更新时更容易获取更新。同样值得研究的是ShapeTracing模块,它允许您识别需要覆盖哪些形状以更改站点上的不同元素。 Orchard.Net页面上的文档确实包含一些有用的信息(虽然它可能会有点过时,因为开发仍然很快),所以值得一读。

答案 1 :(得分:1)

一个简单的方法是探索您的网站文件并找到〜\主题[ThemeNameOverHere] \ Views \ BadgeOfHonor.cshtml
我有这个内容,你可以轻松编辑:     @T(“由Orchard提供支持”,“http://www.orchardproject.net”)@T(“©The Theme Machine 2010。”)

注意:我使用的是Orchard 1.9.1版本。 希望这很有用。