繁体   English   中英

是否可以在 DNN 皮肤中加载特定的 2sxc 模块?

[英]Is it possible to load a specific 2sxc module in a DNN skin?

DNN 平台 9.3.2 / 2sxc 10.25.2

我有一个使用 2sxc 的 DNN 网站。 我创建了一个“通知栏”内容类型和 c# razor 模板,用于向用户显示特殊通知。 该模块旨在显示在网站的每个页面上。 我使用“添加现有模块”功能手动将模块添加到每个页面,但这有点麻烦,而且我冒着内容编辑不小心移动模块、删除或忘记将其添加到新页面的风险。

是否有一个特殊的 2sxc 皮肤 object 我可以在 my.ascx DNN 皮肤内部使用它来加载 2sxc 模块,这样我就不必通过 DNN 将它添加到每个页面? 显然在 DNN OpenContent 中有一个。

(不仅仅是通知栏,这对于网站的 header 或偶尔更新的页脚非常有用。例如,社交媒体链接、联系信息(如地址或电话号码)或不属于 DNN 的其他链接页面菜单。)

有两种方法

  1. 为这个特定模块创建一个面板(这是最容易编辑和使用的)并且只在所有页面上显示该模块

  2. 在隐藏页面上创建模块,然后将其注入皮肤,使用工厂获取 CmsBlock - 请参阅https://docs.2sxc.org/api/dot.net/ToSic.Sxc.Dnn.Factory.html# ToSic_Sxc_Dnn_Factory_CmsBlock_System_Int32_System_Int32_

丹尼尔,我们过去就是这样做的。 我注意到你的电话很相似但更简单(在评论上方)。 那是因为 API 在 v10 之后的某处发生了变化吗?

<script runat="server">
// get 2sxc to Render() the output from the module on the SITE/Manage Flyout Links page
private IHtmlString RenderFlyoutMenu()
  {
    return ToSic.SexyContent.Environment.Dnn7.Factory.SxcInstanceForModule(3354, 606).Render();
  }
</script>
<%=RenderFlyoutMenu() %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM