将内容中的DNN HTML Pro模块复制到另一个模块 [英] Copy DNN HTML Pro module in content to another module

查看:62
本文介绍了将内容中的DNN HTML Pro模块复制到另一个模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下代码在HTML模块上正常工作,但在HTML PRO模块上无效.

Below code is working fine for HTML module but not working for HTML PRO module.

HtmlTextController htmlTextController = new HtmlTextController();
WorkflowStateController workflowStateController = new WorkflowStateController();
int workflowId = htmlTextController.GetWorkflow(ModuleId, TabId, PortalId).Value;

List<HtmlTextInfo> htmlContents = htmlTextController.GetAllHtmlText(ModuleModId);
htmlContents = htmlContents.OrderBy(c => c.Version).ToList();

foreach (var content in htmlContents)
{
    HtmlTextInfo htmlContent = new HtmlTextInfo();
    htmlContent.ItemID = -1;
    htmlContent.StateID = workflowStateController.GetFirstWorkflowStateID(workflowId);
    htmlContent.WorkflowID = workflowId;
    htmlContent.ModuleID = ModuleId;
    htmlContent.IsPublished = content.IsPublished;
    htmlContent.Approved = content.Approved;
    htmlContent.IsActive = content.IsActive;
    htmlContent.Content = content.Content;
    htmlContent.Summary = content.Summary;
    htmlContent.Version = content.Version;
}
htmlTextController.UpdateHtmlText(htmlContent, htmlTextController.GetMaximumVersionHistory(PortalId));

推荐答案

这是由于HTML Pro模块具有不同的方法而发生的.这与DNN HTML模块部分不同.下面是代码.

This is occurred due to HTML Pro module has different methods. That is partially different from DNN HTML Module. below is the code.

            HtmlTextController htmlTextController = new HtmlTextController();
            WorkflowStateController workflowStateController = new WorkflowStateController();
            WorkflowStateInfo wsinfo = new WorkflowStateInfo();

            int workflowId = wsinfo.WorkflowID;

            HtmlTextInfo htmlContents = htmlTextController.GetLatestHTMLContent(ModuleModId);

                HtmlTextInfo htmlContent = new HtmlTextInfo();
                htmlContent.ItemID = -1;
                htmlContent.StateID = workflowStateController.GetFirstWorkflowStateID(workflowId);
                htmlContent.WorkflowID = workflowId;
                htmlContent.ModuleID = ModuleId;
                htmlContent.IsPublished = htmlContents.IsPublished;
                htmlContent.Approved = htmlContents.Approved;
                htmlContent.IsActive = htmlContents.IsActive;
                htmlContent.Content = htmlContents.Content;
                htmlContent.Summary = htmlContents.Summary;
                htmlContent.Version = htmlContents.Version;

                if (Tags != null && Tags.Count > 0)
                {
                    foreach (KeyValuePair<string, string> tag in Tags)
                    {
                        if (htmlContent.Content.Contains(tag.Key))
                        {
                            htmlContent.Content = htmlContent.Content.Replace(tag.Key, tag.Value);
                        }
                    }
                }

                htmlTextController.SaveHtmlContent(htmlContent, newModule);

请在下面添加对代码的引用以引用方法.

And please add below reference to the code to refer the methods.

using DotNetNuke.Modules.HtmlPro;
using DotNetNuke.Professional.HtmlPro;
using DotNetNuke.Professional.HtmlPro.Components;
using DotNetNuke.Professional.HtmlPro.Services;

这篇关于将内容中的DNN HTML Pro模块复制到另一个模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆