我安装了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%'
此查询返回包含文本的所有选项卡,但不返回包含文本的实际页面。
如何获取实际页面? (页面路径会很棒)。
答案 0 :(得分:1)
有一些工具可以执行此操作,如果您从http://www.engagesoftware.com/Products/DNN_Modules/Engage_F3.aspx查看Engage F3模块,您可以免费下载,搜索/替换所有HTML模块中的文本。
免责声明:我多年前写过F3的原始版本,但我不再是Engage的员工,也没有参与最新版本的模块更新:要获取页面的实际URL,您可能需要超出SQL,因为在DotNetNuke中处理URL的方式。如果你真的想在SQL中生成一个URL,虽然你可以用
之类的东西创建非友好的URLselect 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
这将产生一个“不友好”的网址,它会起作用,但显然没有网页名称。如果您在DNN中使用标准的HumanFriendly格式,您可以尝试使用Tabs上的“TabPath”列,并通过在末尾添加.aspx,删除双斜杠,并将域名放在前面来使用它来构建URL。