nopCommerce - 不同页面的动态主题激活 - 不是多商店

nopCommerce - Dynamic theme activation for different pages - Not multi store

我想知道我们如何在不同的页面上动态激活不同的主题。 例如,少数页面将具有 theme-1,而站点的其余部分将具有 theme-2。用户不会选择主题。它必须从后端动态设置。

一种方法是使用单独的母版页。

但是我们有没有可能有两个 nopCommerce 主题并且我们在同一商店的不同页面上动态激活任何一个?不是多店。

应该可以按照以下步骤操作:

  1. 创建一个新插件。
  2. 复制当前的 class ThemeContext,实现 IThemeContext 到你的插件。使用不同的名称以避免错误 (see)。
  3. 向 Autofac 注册新的 class。设置更高的优先级以确保新的 class 替换旧的 ThemeContext。启用插件并通过在此处设置断点来检查它是否正常工作。
  4. 在新 class 中更改 属性 WorkingThemeNameget 部分并实施您需要的任何业务规则,并在适当时返回备用主题名称。您可能需要访问当前 RouteData 以获取每个 http 请求的当前路由控制器或参数。

就是这样。它比看起来容易。