2sxc |复制每个实例的多个模块的模板页面模板

时间:2016-12-02 09:50:28

标签: dotnetnuke dotnetnuke-module 2sxc

我能够创建模块的页面模板并将其复制到新页面。

问题是此模板页面包含关闭视图选择器而不编辑/添加任何数据的模块,因此每个模块只有一个单一的倍数。

我的目标是创建一个模板的模板页面,模板页面上已经放置了三个模块,但是当我复制它时,它会将多个模块链接到原始模板(我认为它会考虑添加三个的倍数到模块是否输入了打破复制模板程序的数据?)。

是否有解决方法我可以让一个模块始终以链接列表模板的3的倍数显示?

THX

1 个答案:

答案 0 :(得分:1)

基本上您的特殊愿望是创建比默认预览提供的更复杂的预览。在这种情况下,策略如下:

  1. 在模板中,检测到您正在显示预览项目
  2. 根据需要显示优化预览
  3. 这是怎么做到的?基本上,可以使用entityID或guid高度可靠地检测预览项(如果您希望保证在app-export / re-import之后此功能可用)。

    代码是ca.像这样

    // detect the demo item, because we shouldn't add inner content while still showing this one
    var isDemoItem = Content.EntityGuid.ToString() == "e90752f1-29d5-46a3-984c-408d97feae91"; // use your demo-item guid here
    var fakeList = new List<DynamicEntity>();
    fakeList.Add(Content);
    fakeList.Add(Content);
    fakeList.Add(Content);
    
    @foreach (var Content in ( isDemoItem ? fakeList : AsDynamic(Data["Default"]) ))
    {
        ...
    }
    

    我们的content-accordeon应用程序(尚未发布,但在github中可见)使用类似的策略,以确保demo-accordeon不会意外地在预览项目中获取内容

    https://github.com/2sic/app-accordion-bootstrap3/blob/master/_Accordion.cshtml