nopCommerce - 不同页面的动态主题激活 - 不是多商店
nopCommerce - Dynamic theme activation for different pages - Not multi store
我想知道我们如何在不同的页面上动态激活不同的主题。
例如,少数页面将具有 theme-1,而站点的其余部分将具有 theme-2。用户不会选择主题。它必须从后端动态设置。
一种方法是使用单独的母版页。
但是我们有没有可能有两个 nopCommerce 主题并且我们在同一商店的不同页面上动态激活任何一个?不是多店。
应该可以按照以下步骤操作:
- 创建一个新插件。
- 复制当前的 class
ThemeContext
,实现 IThemeContext
到你的插件。使用不同的名称以避免错误 (see)。
- 向 Autofac 注册新的 class。设置更高的优先级以确保新的 class 替换旧的
ThemeContext
。启用插件并通过在此处设置断点来检查它是否正常工作。
- 在新 class 中更改 属性
WorkingThemeName
的 get
部分并实施您需要的任何业务规则,并在适当时返回备用主题名称。您可能需要访问当前 RouteData
以获取每个 http 请求的当前路由控制器或参数。
就是这样。它比看起来容易。
我想知道我们如何在不同的页面上动态激活不同的主题。 例如,少数页面将具有 theme-1,而站点的其余部分将具有 theme-2。用户不会选择主题。它必须从后端动态设置。
一种方法是使用单独的母版页。
但是我们有没有可能有两个 nopCommerce 主题并且我们在同一商店的不同页面上动态激活任何一个?不是多店。
应该可以按照以下步骤操作:
- 创建一个新插件。
- 复制当前的 class
ThemeContext
,实现IThemeContext
到你的插件。使用不同的名称以避免错误 (see)。 - 向 Autofac 注册新的 class。设置更高的优先级以确保新的 class 替换旧的
ThemeContext
。启用插件并通过在此处设置断点来检查它是否正常工作。 - 在新 class 中更改 属性
WorkingThemeName
的get
部分并实施您需要的任何业务规则,并在适当时返回备用主题名称。您可能需要访问当前RouteData
以获取每个 http 请求的当前路由控制器或参数。
就是这样。它比看起来容易。