首页 > 解决方案 > 视图负责 Odoo12 中的顶部导航栏

问题描述

我正在尝试将徽标添加到顶部导航栏,并且正在寻找要继承的视图 ID,这将允许我使用 xpath 定位propper元素。

在此处输入图像描述

我无法找到负责保存两个相邻元素的导航栏布局的视图。

我发现了这样的东西:addons\website\views\website_navbar_templates.xml。但它没有定义这两个相邻的节点(存在于浏览器检查元素工具中):

<ul class="o_menu_apps">

<a class="o_menu_brand" role="button">

它们只存在于静态 xml:addons\web\static\src\xml\menu.xml中。但我不知道我是否可以使用我的自定义模块和 xpath 来修改这个 xml。

内部:addons\website\views\website_templates.xml 我看到了这段代码:

<template id="layout_logo_show" inherit_id="website.layout" customize_show="True" name="Show Logo">
    <xpath expr="//header//a[hasclass('navbar-brand')]" position="replace">
        <a href="/" class="navbar-brand logo">
            <span t-field="res_company.logo" t-options="{'widget': 'image'}" role="img" t-att-aria-label="'Logo of %s' % res_company.name" t-att-title="res_company.name" />
        </a>
    </xpath>
</template>

这个标志在哪里?我在 Odoo12 中没有看到任何徽标。我认为没有名为“导航栏品牌”的课程。

标签: xmlodooodoo-12

解决方案


我最终用我的自定义模块覆盖了静态 xml 文件,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<templates  xml:space="preserve">    
    <t t-extend="Menu">
        <t t-jquery="*" t-operation="replace">
            <div style="height:100%; background-color: #4c4c4c;">
                <nav class="o_main_navbar">
                    <ul class="o_menu_apps"/>
                    <div class="example_div">
                        <a href="https://google.com/" target="_blank">
                            <img src="example.png"/>
                        </a>
                    </div>
                    <a class="o_menu_brand" role="button"/>
                    <ul class="o_menu_sections" role="menu"/>
                    <ul class="o_menu_systray" role="menu"/>
                </nav>
            </div>
        </t>
    </t>

</templates>

我把这个文件放在里面static/src/xml并在 manifest.py 中调用它

    'qweb': [
        'static/src/xml/*.xml',
    ],

推荐阅读