3

我是 Orchard CMS 系统的新手。http://www.orchardproject.net

我安装了 1.0 版,现在他们更新了,我安装了 1.1.30 版,但从未真正发布过任何东西。

我下载了导航功能“高级菜单 - 版本:1.2.1”,我看到了一些要使用的菜单项并尝试了一些东西。但我不能再删除它们了

如果我禁用并启用我会收到错误:

    In einen eindeutigen Index kann kein doppelter Wert eingefügt werden. 
[ Table name = Szmyd_Orchard_Modules_Menu_AdvancedMenuPartRecord,Constraint 
name = UQ__Szmyd_Orchard_Modules_Menu_AdvancedMenuPartRecord__0000000000000352 ]

但我可以看到带有高级子项的导航菜单。

我不知道菜单从哪里得到他的信息,但是像“Sprecher”这样的项目在“高级菜单导航”上,但是当我点击删除时出现错误:

404 - Datei oder Verzeichnis wurde nicht gefunden.

我已经尝试了几天的任何解决方案,但没有成功。请帮忙。

4

1 回答 1

2

我设法找出了问题的根源,这两个问题都将在即将发布的版本中得到修复。我会尽力在这周结束前完成。

首要问题

不要担心禁用和启用模块后遇到的错误 - 这是一次性的,不会影响模块的使用(当然会修复)。

禁用模块不会删除任何底层数据库表——它只是告诉框架不要使用模块代码。默认菜单是在启用步骤中创建的,即使您禁用该模块,它也会保留在那里。不幸的是,它不会检查菜单是否已经创建,所以每次启用模块时,它都会喊“尝试在唯一索引中插入重复项”(菜单名称是唯一的)。

第二期

您可以应用此修复程序以允许删除菜单。转到[Root]/Modules/Szmyd.Orchard.Modules.Menu/Views/MenuAdmin/Index.cshtml并替换

@Html.ActionLink(T("Delete menu").Text, "Delete", "MenuAdmin", new { Area = "Szmyd.Orchard.Modules.Menu" }, new { @class = "button primaryAction" })

和:

<a href="@Html.AntiForgeryTokenGetUrl(Url.Action("Delete", new { menuName = Model.MenuName }))" class="button primaryAction">@T("Delete menu") </a>

这将使删除链接正确呈现。

更新

我忘了补充一点,有人报告说Delete操作不适用于名为'main' 的菜单。我调查了这个问题并找到了问题的根源。

第一的

主菜单的问题在于,无论您是否删除菜单,admin Dashboard 中的“主菜单”链接始终存在。此链接由旧的默认 Orchard 导航系统添加,但指向该链接的 URL 被高级菜单模块覆盖。

第二

删除菜单后,相应的菜单项不会被删除。项目通过其名称与相应的菜单连接,因此如果删除“主”菜单,则在菜单本身被删除后,所有连接到“主”的项目仍然存在。这就是为什么单击“主菜单”后,您会突然看到所有菜单项,好像什么也没发生一样。但是单击“删除菜单”会抛出一个不错的 404 错误,因为菜单本身不存在。

我将尽快解决所有这些问题并发布修复程序。

于 2011-05-24T23:13:59.883 回答