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の従業員ではなく、モジュールの最新リリースには関与していません。

更新:ページの実際のURLを取得するには、DotNetNukeでの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 に答える