odoo12 深度修改页面标题

5 篇文章 1 订阅
3 篇文章 0 订阅

方法如下,代码在最下面

根据我上一篇文章而言,我们继承并修改了web.layout的标题
在这里插入图片描述
但是这也仅仅修改了部分的标题,我们来看看如下页面
在这里插入图片描述
想要在深度修改这个字样显然继承修改已经办不到了,而多打开几个页面不难发现,每个页面都会根据我们自己编写的xml的标题进行修改但最后的字段一直是 - Odoo字样,对于公司作为商品显然是不满足的,而能做到这个功能的只有js才能办到。
那么根据上一篇文章搜索到的xml文件,我们即可定位在web文件中

source/odoo/addons/web

对于odoo而言js文件通常放在当前目录的static里面即:

./static/src/js

那么我们只需在里面搜索Odoo,然后一个个看,还有一个小技巧上下文是要有关title的就几乎可以肯定了,这个就需要有点耐心了
在这里插入图片描述
在这里插入图片描述
根据上图终于是找到一个set的方法,那我们最直接的办法就是将上面的Odoo改为自己的名称试一下。(此方法最好不要保存,只是试一下有没有效果,可以就赶紧改回去,源码不建议修改!)
在这里插入图片描述
根据下图显示确实是可以的,那么按照Odoo的风格来说,应该是写一个JS文件来替代。
在这里插入图片描述

那么我们就需要在我们自己项目的应用上创建一个js文件来覆盖

按照Odoo的惯例创建的路径为(没有就自行创建)

应用目录/static/src/js

在这里插入图片描述
写好的文件为如下
在这里插入图片描述
写好之后复制我们找到源码中存放该代码的文件名

abstract_web_client

在这里插入图片描述
在该应用目录下的views下搜索该关键字,查看引用该js文件的xml的id
在这里插入图片描述
在这里插入图片描述
那我们在上一篇文章中的xml文件继承该template的然后将我们新创的js文件引入里面
inherit_id这里最好要加上继承的应用目录名否则可能会找不到该id或者重复,如图web.assets_backend
在这里插入图片描述
昨晚这些后在__manifest__.py引用上图的xml文件,重启升级即可
在这里插入图片描述
js文件代码:

// 声明fruit.FruitTitle模块
odoo.define('fruit.FruitTitle', function(require){
    "use strict";
    var AbstractWebClient = require('web.AbstractWebClient');

    // 修改init方法
    AbstractWebClient.include({
        init: function(parent){
           this._super(parent);
           this.set('title_part',{'zopenerp': '水果'});
        },
    });
});

xml文件代码:

<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
    <data>
        <!--   引入JS文件     -->
        <template id="inherit_web_title" inherit_id="web.assets_backend">
            <xpath expr="." position="inside">
                <script type="text/javascript" src="/fruit_app/static/src/js/change_title.js"/>
            </xpath>
        </template>
    </data>
</odoo>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pierce°ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值