【发布时间】:2020-04-22 23:14:11
【问题描述】:
DNN 9.3.2 / 2sxc 10.25.2
我有一个 DNN 主题,用于某种类型的子门户 - 我最终将拥有 8 个子门户。每个子门户都有相同的布局,但它们在各自的主题中会有不同的颜色。所以我必须创建一个样式表,其中包含 CSS 规则和每个主题的颜色。我知道有几种相对简单的方法可以做到这一点:
- 修改每个门户的 portal.css 以覆盖主题或(简单但可能难以维护更新)
- 为每个门户构建自定义主题(矫枉过正)
- 使用 SCSS 创建包含 8 个不同变量文件的模板(工作正常,但不允许内容编辑器进行修改)
所以,我很好奇 2sxc 是否有更聪明的方法,不仅可以让我轻松维护,还可以让我的门户网站的内容编辑器轻松维护。
我想为颜色选择器创建带有几个不同字段的 2sxc 内容模块,这将允许我(和我的内容编辑器)简单地打开 2sxc 编辑模式(在主页上),填写所有颜色字段,然后然后剃刀模板将输出带有颜色的 CSS 模板,以覆盖 DNN 皮肤上的主题样式。我知道我可以使用内联 CSS 做到这一点,但这意味着模块必须出现在每个页面上,而且我也更愿意避免内联 CSS。
所以我的想法是它会像这样工作:
- 在每个门户的单个页面上都有一个 2sxc 内容模块
- 编辑模式 > 字段类似于:原色 (rgba)、辅助色 (rgba)、灰色 (rgba) 等
- 单击保存后,模板会修改一个由皮肤加载的门户级 theme.css 文件
- 对模块的任何更改都将导致 CSS 文件的重写。
- 我可以更新 c# razor 模板以添加、删除或修改规则或转换输入值。
这是可能的还是太复杂了?有没有更好的方法来解决这个问题?
【问题讨论】:
-
我期待看到其他答案。基本上,您想要一个原型文件,一个提供自定义“令牌”值的内容类型,然后将替换到文件原型中,然后将其保存为 Portal.css。如果您有一个指定输出文件的字段,您实际上可以将其保存到任何文件中。我希望我有时间再考虑一下……
标签: css dotnetnuke 2sxc