支持每个网站不同的主题
项目描述
网站多主题
允许网站管理员为每个网站设置不同的主题。
“主题”可能不仅仅是主题模块,还可以是任何一组主题,甚至是从任何模块(例如,来自“网站”模块的“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_frontend和website.layout进行一些魔法操作。
复制templates/patterns.xml中的patterns。
在layout_pattern中将占位符{theme_view}替换为assets_pattern的副本。
相应的复制pattern将用作原始扩展web.assets_frontend、website.assets_frontend或website.layout的复制multi-views中inherit_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”之后安装,请手动更新此模块,否则它将不会通知此类更改。
配置
要配置此模块,您需要
- 转到网站管理员 > 配置 > 设置并选择或创建
一个网站。
点击高级 > 多网站主题 > 重新加载。
在高级 > 多网站主题中,选择一个可用的主题。
一旦保存,任何未选择多网站主题的网站将使用默认的纯Bootstrap主题,而已经选择了主题的网站将获得该主题。
当然,您的Odoo实例必须可以通过所有提供的域名访问,否则没有人会看到效果。但这最可能是通过您的DNS提供商和/或代理配置的,所以这不属于此插件的问题。
如果您想测试这种行为,请考虑localhost和127.0.0.1是不同的主机名。
使用
要使用此模块,您需要
按照配置步骤进行。
进入您修改过的任何网站。
开发常见问题解答
如何开发一个多网站主题的模板?
检查demo/themes.xml。它包括一个演示主题,该主题将作为您的模板。此演示主题将主按钮变为绿色,您可以轻松测试它是否被应用。
如何将单网站主题转换为多网站主题?
检查data/themes_bootswatch.xml。您必须这样做。考虑到如果未安装单网站主题插件,它将不会执行任何操作(它作为软依赖项),您可以考虑直接在此插件中添加支持。
如何获取多网站特定的视图更新?
此插件默认情况下非常保守,这意味着如果视图已经创建,则生产数据库中的视图将不会更新(除非是从templates/patterns.xml复制的视图)。
要强制您的网站获取已更改的基础主题的所有视图的更新,您应该禁用网站多主题(使引擎删除所有视图),然后再次启用它(从头开始重新创建它们)。
在演示或开发实例中不会发生这种情况,那里的视图架构总是更新的。
已知问题/路线图
不保证支持私有主题。
没有用于删除网站的UI。请通过Odoo shell进行操作。
主题选择器如果可能的话应包括某种缩略图。
如果您在安装此插件之后安装了任何受支持的主题,您将必须在网站配置向导中按下重新加载以使其注意到更改。
如果您在此插件中安装任何不受支持的主题,它可能会成为所有受支持主题的基础,这可能会导致奇怪的情况和错误。
如果您的Odoo没有打补丁,此插件将无法正常工作。在安装之前,请确保它已更新。它必须包含以下提交:
致谢
贡献者
Rafael Blasco <rafael.blasco@tecnativa.com>
Antonio Espinosa <antonio.espinosa@tecnativa.com>
Jairo Llopis <jairo.llopis@tecnativa.com>
Ivan Yelizariev <https://it-projects.info/team/yelizariev>
维护者
本模块由OCA维护。
OCA,即Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛使用。
要为此模块做出贡献,请访问 https://odoo-community.org。
项目详情
odoo10_addon_website_multi_theme-10.0.1.4.0-py2-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b1bce2b4b59e45c9f344d492a16ba4ec7eb89d4305488fc10fd53c6e116a1034 |
|
MD5 | fbc079ae147beb6c3d3522959b1ebfaa |
|
BLAKE2b-256 | fcd4fa5f4ee1aa7a8b6bb71f988627bfd7bcae3e72c03d5fa033822b67143bbe |