• odoo 网站上线后,怎么修改网站主题?


    我们用的是企业版 odoo ,网站上线后,更改测试网站主题,需要使用 odoo 的测试环境。

    odoo 测试环境

    将 odoo 与 github 关联,通过更新 github 中的 odoo code ,来更改正式环境中的主题或代码块。

    这是我们的测试地址:https://******-github-odoo13-staging0302-2162970.dev.odoo.com

    odoo 本地环境,使用 docker 作为本地服务器:

    1. 下载社区版 odoo,在本地环境中将主题测试ok
    2. 将 github 中测试环境 的代码拉取到本地目录
    3. 将本地目录作为 docker 的工作目录
    4. 将社区版的本地测试主题复制到 github 测试环境目录中,通过 github 更新测试环境的代码
    5. 打开测试环境地址中的应用,点击更新主题
    6. 写一个服务器脚本,定期从测试的 github 中拉取代码到正式环境

    odoo 本地测试环境

     这里 下载 odoo 版本到本地电脑,我下载使用的是 社区版 odoo 13,本地目录地址为 code/odoo/odoo13.

    odoo 13 社区版的功能模块目录为 addons ,这个目录下存放当前版本 odoo 中的所有应用。网站主题也是需要在这个目录中操作。

    主题命名规则:theme_自定义名称

    在 addons 目录下,新建文件夹,重命名为 theme_nav,主题目录文件结构为:

    __manifest__.py  创建一个空文档并将其保存到文件夹中,名为 __manifest__.py。这将包含你主题的配置信息。

    __init__.py      创建一个空文件并命名为 __init__.py。这是必需的系统文件。创建后内容留空。

    views 和 static      创建这两个文件夹。

                                   views 中放置定义代码片断、页面和选项的 xml文件。

                     static 文件夹是放置样式、图片和自定义 js 代码的相应位置。

    __manifest__.py  配置信息,主要写当前主题需要继承的模块,保存在哪个目录下,以及当前主题用到的数据

    scss                  主题样式文件

    layout.xml          当前主题针对系统中的哪个模块添加一个 class 或是 id,目的是为了更改样式

    assets.xml          使用 odoo 中的固定模块来加载当前主题的样式

    # __manifest__.py
    
    {
      'name':'kevin theme',
      'description': 'anivz website nav',
      'version':'1.0',
      'author':'kevin.chen',
     
      'data': [
        'views/layout.xml',
        'views/assets.xml'
      ],
      'category': 'Theme/Nav',
      'depends': ['website','website_theme_install'],
    }
    
    
    #layout.xml
    <?xml version='1.0' encoding='utf-8'?>
    <odoo>
        <template id="custom_header" inherit_id="website.layout" name="Custom Header">
            <xpath expr="//div[@id='wrapwrap']/header" position="attributes">
                <attribute name="id">cur_header</attribute>
            </xpath>
        </template>
    </odoo>
    
    
    #assets.xml
    <?xml version='1.0' encoding='utf-8'?>
    <odoo>
        <template id="assets_frontend" name="nav assets" inherit_id="web.assets_frontend">
            <xpath expr="link[last()]" position="after">
                <link rel="stylesheet" type="text/scss" href="/theme_nav/static/src/scss/cur_header.scss"/>
            </xpath>
        </template>
    </odoo>

    需要在 vscode 中安装插件:Odoo Code Snippets

    在 docker 本地环境中预览并安装主题

    重启 docker ,以后可以不用重启

    打开 odoo 本地环境 http://0.0.0.0:8069/web

    点击设置,进入网站,选择一个主题。

    进入网站主题列表,会看到已经加载出来的自定义的主题。

    鼠标放在主题上,点击更新主题。

    转至网站,看主题有没有生效。

    确定有没有生效看 Layout.xml 中定义的 id 有没有添加在需要改变主题的位置。因为我需要改变当前导航的皮肤,因此,通过 layout.xml 给当前导航添加了一个 id="cur_header",从浏览器中可以看到:

    主题修改注意点:

    1. 网站主题模块修改需要继承:website / website_theme_install
    2. 网站主题名称需要使用 theme_ 作为前缀
    3. 如果主题样式要放置在其它静态资源的末尾,需要给当前样式,添加 after 属性

      

    越努力,越幸运,坚持每天学习一小时,坚持每天吸收一个知识点。
  • 相关阅读:
    MySQL快速入门
    关系模型
    从Qt到PyQt
    Qt 绘图与动画系统
    Django请求响应对象
    Django控制器
    Django模板
    第一个Django项目
    图的存储与遍历
    AOE网与AOV网
  • 原文地址:https://www.cnblogs.com/baiyygynui/p/14468864.html
Copyright © 2020-2023  润新知