默认

Odoo会根据您安装的应用程序自动生成一些基本的菜单项。例如,网站应用程序会在主菜单中添加两项。这些项链接到页面,页面也会自动生成。

删除默认菜单项。

/website_airproof/data/menu.xml
<!-- Contact us -->
<delete model="website.menu" search="[('url','in', ['/', '/contactus']),
('website_id', '=', 1)]"/>

<!-- Shop -->
<delete model="website.menu" search="[('url','in', ['/', '/shop']),
('website_id', '=', 1)]"/>

新窗口

在新标签页中打开链接的URL。

<record id="..." model="website.menu">
    <field name="new_window" eval="True"/>
</record>

锚点

链接到页面的特定部分。

<record id="..." model="website.menu">
    <field name="url">/about-us#our-team</field>
</record>

巨幅菜单

巨幅菜单是一种具有更多可能性的下拉菜单,而不仅仅是链接列表。在巨幅菜单中,您可以使用任何类型的内容(文本、图像、图标等)。

在Odoo中,您可以从列表中选择一个巨幅菜单模板。如果您不需要自定义布局,可以像使用任何静态内容一样在 mega_menu_content 字段中重用模板结构。

声明

/website_airproof/data/menu.xml
 <record id="menu_mega_menu" model="website.menu">
     <field name="name">Mega Menu</field>
     <field name="parent_id" search="[
         ('url', '=', '/default-main-menu'),
         ('website_id', '=', 1)]"/>
     <field name="website_id">1</field>
     <field name="sequence" type="int">..</field>
     <field name="is_mega_menu" eval="True"/>
     <field name="mega_menu_classes">...</field>
     <field name="mega_menu_content" type="html">
         <section class="s_mega_menu_multi_menus py-4 o_colored_level o_cc o_cc1">
             <div class="container">
                 <div class="row">
                     <div class="col-12 col-sm py-2 text-center">
                         <h4 class="o_default_snippet_text">First Menu</h4>
                         <nav class="nav flex-column">
                             <a href="#" class="nav-link o_default_snippet_text" data-name="Menu Item">Menu Item 1</a>
                             <a href="#" class="nav-link o_default_snippet_text" data-name="Menu Item">Menu Item 2</a>
                             <a href="#" class="nav-link o_default_snippet_text" data-name="Menu Item">Menu Item 3</a>
                         </nav>
                     </div>
                     <div class="col-12 col-sm py-2 text-center">
                         <h4 class="o_default_snippet_text">Second Menu</h4>
                         <nav class="nav flex-column">
                             <a href="#" class="nav-link o_default_snippet_text" data-name="Menu Item">Menu Item 1</a>
                             <a href="#" class="nav-link o_default_snippet_text" data-name="Menu Item">Menu Item 2</a>
                             <a href="#" class="nav-link o_default_snippet_text" data-name="Menu Item">Menu Item 3</a>
                         </nav>
                     </div>
                     <div class="col-12 col-sm py-2 text-center">
                         <h4 class="o_default_snippet_text">Third Menu</h4>
                         <nav class="nav flex-column">
                             <a href="#" class="nav-link o_default_snippet_text" data-name="Menu Item">Menu Item 1</a>
                             <a href="#" class="nav-link o_default_snippet_text" data-name="Menu Item">Menu Item 2</a>
                             <a href="#" class="nav-link o_default_snippet_text" data-name="Menu Item">Menu Item 3</a>
                         </nav>
                     </div>
                     <div class="col-12 col-sm py-2 text-center">
                         <h4 class="o_default_snippet_text">Last Menu</h4>
                         <nav class="nav flex-column">
                             <a href="#" class="nav-link o_default_snippet_text" data-name="Menu Item">Menu Item 1</a>
                             <a href="#" class="nav-link o_default_snippet_text" data-name="Menu Item">Menu Item 2</a>
                             <a href="#" class="nav-link o_default_snippet_text" data-name="Menu Item">Menu Item 3</a>
                         </nav>
                     </div>
                 </div>
             </div>
         </section>
     </field>
 </record>

字段

描述

is_mega_menu

启用巨幅菜单功能。

mega_menu_classes

要添加到主元素的自定义类

mega_menu_content

巨幅菜单的默认内容

除此之外,您可能需要使用自定义模板创建更高级的视觉效果。请随时查看 Odoo 源代码中 标准模板 的构建方式。

自定义模板

创建自己的模板并将其添加到列表中。

布局

/website_airproof/views/website_templates.xml
<template id="s_mega_menu_airproof" name="Airproof" groups="base.group_user">
    <section class="s_mega_menu_airproof o_cc o_cc1 pt40">
        <!-- Content -->
    </section>
</template>

选项

使用以下代码为您的新自定义巨幅菜单在网站构建器中添加选项。

/website_airproof/data/presets.xml
<template id="snippet_options" inherit_id="website.snippet_options" name="Airproof - Mega Menu Options">
    <xpath expr="//*[@data-name='mega_menu_template_opt']/*" position="before">
        <t t-set="_label">Airproof</t>
        <we-button t-att-data-select-label="_label"
            data-select-template="website_airproof.s_mega_menu_airproof"
            data-img="/website_airproof/static/src/img/builder/header_opt.svg"
            t-out="_label"/>
    </xpath>
</template>