0

我正在开发一个 DNN 模块,该模块需要能够更新现有 HTML 模块的 HTML 内容。有谁知道如何通过代码做到这一点?

我已经确定内容存储在 HtmlText 表中,但我宁愿不直接写入表中。有谁知道如何使用 DNN API 来实现这一点?

提前致谢。


这是我在mika & bdukes的帮助下找到的解决方案:

''' <summary>Add HTML contest to an existing HTML module.</summary>
Private Sub AddHTML(ByVal ModuleID As Integer, ByVal HTML As String)
    Try
        Dim oHTML As New DotNetNuke.Modules.Html.SqlDataProvider
        '-- i'm not sure what "history" should be set for in the method below.
        '-- i suspect it means "version history", which 5 seems to be the default based on what i've read.
        oHTML.AddHtmlText(ModuleID, HTML, 1, 1, UserId, 5)

    Catch ex As Exception
        'failure
    End Try
End Sub

笔记:

  • 该例程将 HTML 内容添加到刚刚创建的 HTML/Text 模块中,因此不需要检查现有的 HTML 内容。

  • 我对第 3 和第 6 个参数(StateID 和历史)有点模糊,尽管它似乎工作正常。如果有人对它们了解更多,我想知道设置这些参数的正确方法。

4

2 回答 2

2

HTML 模块的 5.2 版本(开始与 DNN 5.2 一起分发)及更高版本已编译,并在网站的 /bin/ 目录中提供参考。您可以在项目中引用 DotNetNuke.Modules.Html.dll 并使用方法HtmlTextController进行更新(如@mika 所述)。但是,由于 HTML 模块会随着时间发生变化,因此您需要确保每次更新 DNN 时都重新检查您的模块(并可能更新您的集成)。

您可以查看我们的免费Engage: F3 模块,了解我们如何解决不同版本代码库中的差异。

于 2010-12-30T13:56:49.517 回答
1

使用文本/HTML 模块。它不是作为 .dll 分发的,但您会在 /App_Code/HTML 文件夹中找到代码。

HtmlTextController 有以下方法:

- Public Sub AddHtmlText(ByVal objText As HtmlTextInfo) 
- Public Function GetHtmlText(ByVal moduleId As Integer) As HtmlTextInfo 
- Public Sub UpdateHtmlText(ByVal objText As HtmlTextInfo)
于 2010-12-30T11:34:27.853 回答