0

我有一个 DNN 6 安装(即将成为 DNN7),我需要将链接到特定页面的每个页面更新到新页面......我可以编写该查询,但我想查看实际的列表将更新的页面..到目前为止我有这个:

select t.TabName -- Some sorcery to get page name --
from HtmlText h
join Modules m on h.ModuleID=m.ModuleID
join TabModules tm on m.ModuleID=tm.ModuleID
join Tabs t on tm.TabID=t.TabID

where Content like '%MyTextToFind%'

此查询返回包含文本的所有选项卡,但不返回包含文本的实际页面。

如何获取实际页面?(页面路径会很棒)。

4

1 回答 1

1

有一些工具可以做到这一点,如果您从http://www.engagesoftware.com/Products/DNN_Modules/Engage_F3.aspx查看 Engage F3 模块,您可以获得免费下载,它将在所有 HTML 模块中搜索/替换文本.

免责声明:我多年前编写了 F3 的原始版本,但不再是 Engage 的员工,也没有参与该模块的最新版本

更新:由于 DotNetNuke 中处理 URL 的方式,要获取页面的实际 URL,您可能需要在 SQL 之外进行。如果您真的想在 SQL 中生成一个 URL,尽管您可以使用类似的东西创建一个不友好的 URL

select t.TabName,
'http://MYWEBSITE.com/default.aspx?tabid=' + Cast(t.TabID as varchar) 
from HtmlText h
join Modules m on h.ModuleID=m.ModuleID
join TabModules tm on m.ModuleID=tm.ModuleID
join Tabs t on tm.TabID=t.TabID

这将生成一个“不友好”的 url,它可以工作,但显然没有页面名称。如果您在 DNN 中使用标准的 HumanFriendly 格式,您可以尝试使用选项卡上的“TabPath”列,并通过在末尾添加 .aspx、删除双斜杠并将域名放在前面来使用它来构建 URL。

于 2013-03-11T14:37:27.227 回答