跳转到主要内容

支持每个网站不同的主题

项目描述

License: LGPL-3

网站多主题

允许网站管理员为每个网站设置不同的主题。

“主题”可能不仅仅是主题模块,还可以是任何一组主题,甚至是从任何模块(例如,来自“网站”模块的“website.custom_footer”视图)的特定视图。这也意味着,“主题”不仅是一种样式,还包括内容。

工作原理

核心思想如下

  • 找到由“主题模块”创建的视图,并将其标记为“多视图”(website.theme.asset),除了通过XML手动指定的一个外(参见demo/themes.xml作为示例)。方法_convert_assets负责此操作。

  • 将“多视图”的“active”设置为“False”。参见方法_find_and_deactivate_views

  • 将“多主题”(新模型中的记录website.theme)应用于特定的网站。参见方法_multi_theme_activate

    • 对技术视图website.assets_frontendwebsite.layout进行一些魔法操作。

      • 复制templates/patterns.xml中的patterns

      • layout_pattern中将占位符{theme_view}替换为assets_pattern的副本。

      • 相应的复制pattern将用作原始扩展web.assets_frontendwebsite.assets_frontendwebsite.layout的复制multi-viewsinherit_id字段的新值。

    • 复制多视图多主题及其依赖项(其他多主题)。在复制中,当可能时,将字段inherit_id更改为其他复制的视图或复制的图案

安装

为了让此模块工作,您需要安装以下任意一个官方支持的主题

  • 安装任何官方支持的主题

    • theme_bootswatch

  • 安装任何非官方支持的主题(风险自担)

    • theme_anelusia

    • theme_artists

    • theme_avantgarde

    • theme_beauty

    • theme_bewise

    • theme_bistro

    • theme_bookstore

    • theme_clean

    • theme_enark

    • theme_graphene

    • theme_kea

    • theme_loftspace

    • theme_mongolia

    • theme_nano

    • theme_notes

    • theme_odoo_experts

    • theme_orchid

    • theme_treehouse

    • theme_vehicle

    • theme_yes

    • theme_zap

上述列表中的主题在安装此模块时将成为多网站主题。如果在安装“website_multi_theme”之后安装,请手动更新此模块,否则它将不会通知此类更改。

配置

要配置此模块,您需要

  1. 转到网站管理员 > 配置 > 设置并选择或创建

    一个网站

  2. 点击高级 > 多网站主题 > 重新加载

  3. 高级 > 多网站主题中,选择一个可用的主题。

一旦保存,任何未选择多网站主题的网站将使用默认的纯Bootstrap主题,而已经选择了主题的网站将获得该主题。

当然,您的Odoo实例必须可以通过所有提供的域名访问,否则没有人会看到效果。但这最可能是通过您的DNS提供商和/或代理配置的,所以这不属于此插件的问题。

如果您想测试这种行为,请考虑localhost127.0.0.1是不同的主机名。

使用

要使用此模块,您需要

  1. 按照配置步骤进行。

  2. 进入您修改过的任何网站。

Try me on Runbot

开发常见问题解答

如何开发一个多网站主题的模板?

检查demo/themes.xml。它包括一个演示主题,该主题将作为您的模板。此演示主题将主按钮变为绿色,您可以轻松测试它是否被应用。

如何将单网站主题转换为多网站主题?

检查data/themes_bootswatch.xml。您必须这样做。考虑到如果未安装单网站主题插件,它将不会执行任何操作(它作为软依赖项),您可以考虑直接在此插件中添加支持。

如何获取多网站特定的视图更新?

此插件默认情况下非常保守,这意味着如果视图已经创建,则生产数据库中的视图将不会更新(除非是从templates/patterns.xml复制的视图)。

要强制您的网站获取已更改的基础主题的所有视图的更新,您应该禁用网站多主题(使引擎删除所有视图),然后再次启用它(从头开始重新创建它们)。

在演示或开发实例中不会发生这种情况,那里的视图架构总是更新的。

已知问题/路线图

致谢

贡献者

维护者

Odoo Community Association

本模块由OCA维护。

OCA,即Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛使用。

要为此模块做出贡献,请访问 https://odoo-community.org

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分发

本发布没有可用的源分发文件。请参阅 生成分发存档 的教程。

构建分发

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面