Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates 如何使用DNN创建模板?_Templates_Dotnetnuke - Fatal编程技术网

Templates 如何使用DNN创建模板?

Templates 如何使用DNN创建模板?,templates,dotnetnuke,Templates,Dotnetnuke,我是DNN新手,我不知道如何在DNN中创建页面模板,以及在哪里创建页面模板 有人能给我一些教程链接吗 转到要导出为模板的页面 单击功能区栏中的“当前页面”选项卡 单击选项卡中的导出图标 转到要导出为模板的页面 单击功能区栏中的“当前页面”选项卡 单击选项卡中的导出图标 上述答案实际上是正确的。在我看来,即使模板xml包含一个皮肤引用,当使用该模板创建新页面时,皮肤将不可见 <skinsrc>[G]Skins/Corporate/agr-feed-detail.ascx<

我是DNN新手,我不知道如何在DNN中创建页面模板,以及在哪里创建页面模板

有人能给我一些教程链接吗

  • 转到要导出为模板的页面
  • 单击功能区栏中的“当前页面”选项卡
  • 单击选项卡中的导出图标
  • 转到要导出为模板的页面
  • 单击功能区栏中的“当前页面”选项卡
  • 单击选项卡中的导出图标

  • 上述答案实际上是正确的。在我看来,即使模板xml包含一个皮肤引用,当使用该模板创建新页面时,皮肤将不可见

     <skinsrc>[G]Skins/Corporate/agr-feed-detail.ascx</skinsrc>
    
    [G]皮肤/Corporate/agr-feed-detail.ascx
    

    我希望有人能解决这个问题,或者能够确认这个问题,上面的答案实际上是正确的。在我看来,即使模板xml包含一个皮肤引用,当使用该模板创建新页面时,皮肤将不可见

     <skinsrc>[G]Skins/Corporate/agr-feed-detail.ascx</skinsrc>
    
    [G]皮肤/Corporate/agr-feed-detail.ascx
    

    我希望有人对此问题有一个解决方案,或者能够确认此问题

    我可以确认-我还没有弄清楚如何让模板实际使用引用的皮肤。用一个模板构建一个页面,然后必须进入并完成它,这有点草率


    如果您自己构建XML或通过导出创建模板,也没有什么不同。

    我可以确认这一点-但我还没有弄清楚如何让模板实际使用引用的皮肤。用一个模板构建一个页面,然后必须进入并完成它,这有点草率


    如果您自己构建XML或通过导出创建模板,也没有什么不同。

    如果您查看了DotNetNuke.Web.UI的反编译源代码并查找RibbonBarManager.SaveTabInfoObject方法,您就会明白为什么

    基本上,当您选择模板作为页面的基础时,新页面将继承的唯一信息是窗格数据(即模板中配置的模块)

    如图所示

    xmlDocument.Load(templateMapPath);
    TabController.DeserializePanes(xmlDocument.SelectSingleNode("//portal/tabs/tab/panes"), tab.PortalID, tab.TabID, PortalTemplateModuleAction.Ignore, new Hashtable());
    

    是的,邋遢,烦人,不完整。。。非常dotnetnukey和TBH,我真的希望从他们的代码中得到什么。不喜欢。

    如果您查看了DotNetNuke.Web.UI的反编译源代码并查找了RibbonBarManager.SaveTabInfoObject方法,您就会明白为什么

    基本上,当您选择模板作为页面的基础时,新页面将继承的唯一信息是窗格数据(即模板中配置的模块)

    如图所示

    xmlDocument.Load(templateMapPath);
    TabController.DeserializePanes(xmlDocument.SelectSingleNode("//portal/tabs/tab/panes"), tab.PortalID, tab.TabID, PortalTemplateModuleAction.Ignore, new Hashtable());
    

    是的,邋遢,烦人,不完整。。。非常dotnetnukey和TBH,我真的希望从他们的代码中得到什么。不是粉丝。

    解决这个问题的快速方法如下:在AddPage.ascx.vb的cmdAddPage\u Click事件中,更改。。。templateFile=System.IO.Path.Combine(PortalSettings.HomeDirectoryMapPath,“Templates\”+TemplateList.SelectedValue)到。。。templateFile=System.IO.Path.Combine(PortalSettings.HomeDirectoryMapPath,“Templates\”+TemplateList.SelectedValue)将xdoc作为XDocument=XDocument.Load(templateFile)进行调整,如果不是(xdoc为Nothing),则newTab.SkinSrc=(从xdoc.substands(“tab”)中的文档中选择doc.Element(“SkinSrc”).Value)。FirstOrDefault()End Ifa quick hack解决此问题的方法如下:在cmdAddPage_Click事件的AddPage.ascx.vb中,更改。。。templateFile=System.IO.Path.Combine(PortalSettings.HomeDirectoryMapPath,“Templates\”+TemplateList.SelectedValue)到。。。templateFile=System.IO.Path.Combine(PortalSettings.HomeDirectoryMapPath,“Templates\”+TemplateList.SelectedValue)将xdoc作为XDocument=XDocument.Load(templateFile)进行调整,如果不是(xdoc为Nothing),则newTab.SkinSrc=(从xdoc.Substands(“tab”)中的文档中选择doc.Element(“SkinSrc”).Value)。如果