如何参数化Umbraco模板?

时间:2011-03-23 02:44:53

标签: umbraco

我有一个Umbraco网站

...包含各种文档类型,例如:

  • 出版物
  • 事件
  • 消息

......和各种模板,例如:

  • 含量
  • 内容与列表
  • 嵌入媒体的内容(例如YouTube视频)

在模板中,我有一些可选的宏/小部件。例如,有时带有“内容”模板的页面将显示“搜索站点”小部件,有时它不会。是否在特定页面上显示特定小部件将由CMS管理员(不是开发人员)控制。

为每个窗口小部件组合添加模板不是一个选项:如果“内容”模板具有可选的窗口小部件W1,W2,W3,那么我最终需要为这些窗口的每个成员创建一个模板小部件 - 即我必须将我拥有的模板数量乘以8(2 ^ n)仅用于3个可选小部件(真实网站将有超过3个可选小部件)。

所以我想根据用户在Umbraco后端的某个地方设置的参数来打开和关闭小部件的显示。实际切换打开和关闭非常简单 - 我只需在我的用户控件中添加“if(widgetX_is_turned_on)”语句。

但是,据我所知,我只能为文档类型添加属性,而不是模板。我不希望添加一个属性来将每个窗口小部件切换到我的根文档类型,因为如果与文档关联的模板不允许某个窗口小部件,那么许多切换/属性将最终无效。例如,如果我使用“内容”文档类型创建名为“示例页面”的“页面”文档,那么如果“内容”模板实际上不允许显示,则“显示搜索站点窗口小部件”toggle / property将不执行任何操作“搜索网站”小部件。

是否有一种干净整洁的方式来参数化模板,以便我可以为单个文档打开和关闭宏/小部件?

1 个答案:

答案 0 :(得分:1)

基本上,您要为小部件创建单独的文档类型,然后将它们链接到您的内容。如果没有为当前页面选择窗口小部件,您甚至可以从父文档继承窗口小部件。

这个概念的一个很好的解释可以在这篇博文中找到:http://blog.hendyracher.co.uk/sidebar-widgets-with-umbraco-v4/