Odoo 8 - 如何更改页面标题?

3

你的问题是关于Odoo本身还是由Odoo CMS驱动的网站? - Ludwik Trammer
我的问题是关于Odoo本身的。 - Salahable
4个回答

6
标题是使用标准的html <title 标签设置的,在 /addons/web/views/webclient_templates.xml 中的 web.layout 模板中进行设置。
<template id="web.layout" name="Web layout">&lt;!DOCTYPE html&gt;
            <html style="height: 100%">
                <head>
                    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
                    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
                    <title>Odoo</title>
                    <link rel="shortcut icon" href="/web/static/src/img/favicon.ico" type="image/x-icon"/>
                    <link rel="stylesheet" href="/web/static/src/css/full.css" />
                    <t t-raw="head or ''"/>
                </head>
                <body t-att-class="body_classname">
                    <t t-raw="0"/>
                </body>
            </html>
        </template>

所以您可以在自定义模块的xml文件中更改它,像这样:
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
  <data>

    <template id="custom_title" name="change title" inherit_id="web.layout">
      <xpath expr="//title" position="replace">
        <title>Your title</title>
      </xpath>
    </template>

  </data>
</openerp>

请务必在清单文件中声明xml文件并重新加载模块。这适用于登录页面(如果所选数据库安装了具有此更改的模块),但大多数其他页面都无法使用,因为当视图加载时,javascript客户端会动态更改标题(以反映您所在的视图,例如“产品-Odoo”或“客户-Odoo”)。要更改它,您必须扩展JS Web客户端并像这样进行编辑:
openerp.your_module_name = function(instance) {
    instance.web.WebClient.include({
        init: function(parent, client_options) {
            this._super(parent, client_options);
            this.set('title_part', {"zopenerp": "Your Title"});
        },
    });
};

请确保您已经完成了odoo包含您的js文件所需的所有步骤,可以参考一些简单webclient模块的示例,例如web_dialog_size

通过进行这两个修改,您应该能在所有的Odoo页面中看到您自定义的页面标题。


我知道已经过了一段时间,但是在Odoo 9中如何实现这种JS魔法呢? - user568021
Odoo 15-如何更改页面标题? - Getaw Dejen

4
在Odoo 10中,以上解决方案不起作用。对于Odoo 10,我们需要编辑下面的JS文件。
addons/web/static/src/js/abstract_web_client.js
更改此代码:
this.set('title_part', {"zopenerp": "Odoo"});
使用以下代码替换它:
this.set('title_part', {"zopenerp": "
MyPageTitle"});
完成后,重新启动Odoo服务器以查看更改。

对我有用...谢谢 :) - Omer

2

我在研究9版本社区版,您需要查看以下文件:

addons/web/static/src/js/web_client.js

更改此代码:

this.set('title_part', {"zopenerp": "Odoo"});

为:

this.set('title_part', {"zopenerp": "MyPageTitle"});


-1

1- 在addons/web/static/src/js/chrome.js文件中: 搜索所有包含“Odoo”的单词并替换

2- 在以下位置: 搜索本地模块 --> 一个名为“Web”的模块 --> 升级


2
你不应该直接编辑Odoo的源代码,而是在外部插件中进行更改,这样你就可以升级Odoo而不会失去任何更改。查看我的答案,了解如何在不触及Odoo源代码的情况下实现此操作。 - LeartS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接