宜兴通达竭诚为您服务。

通达科技 - 宜兴电脑维护及IT服务外包服务商

构建模块
  • 上传者: Administrator
  • 上传时间:2023年12月07日 00时06分57秒
摘要:
构建块,也称为片段,是用户设计和布局页面的方式。它们是设计中重要的 XML 元素。 建筑模块分为四个类别: 结构块 :为网站提供基本结构 特性块 :用于描述产品或服务的特性 动态内容块 :与后端进行动画或交互的块 内部内容块 :在其他构建块内使用的块 在本章中,您将学习如何创建自定义的构建块和选项。 ......
正文 相关文章 请喝咖啡

    构建块,也称为片段,是用户设计和布局页面的方式。它们是设计中重要的 XML 元素。

    建筑模块分为四个类别:

    1. 结构块:为网站提供基本结构

    2. 特性块:用于描述产品或服务的特性

    3. 动态内容块:与后端进行动画或交互的块

    4. 内部内容块:在其他构建块内使用的块

    在本章中,您将学习如何创建自定义的构建块和选项。

    文件结构

    布局的文件结构如下。

    views
    ├── snippets
    │   └── options.xml
    │   └── s_snippet_name.xml
    

    样式文件的结构如下。

    static
    ├── src
    │   └── snippets
    │       └── options.scss
    │       └── s_snippet_name
    │           └── 000.js
    │           └── 000.scss
    │           └── 000.xml
    │           └── option.js
    

    布局

    Snippets 可以通过使用网站构建器进行用户编辑。一些 Bootstrap 类是重要的,因为 它们触发了一些网站构建器选项

    包装器

    任何片段的标准主容器是一个 section。任何 section 元素都可以像一个内容块一样进行编辑,您可以移动或复制。

    <section class="s_snippet_name" data-name="..." data-snippet="...">
        <!-- Content -->
    </section>
    

    对于内部内容片段,可以使用任何其他HTML标签。

    <div class="s_snippet_name" data-name="..." data-snippet="...">
        <!-- Content -->
    </div>
    

    属性

    描述

    此片段的唯一类名

    data-name

    在右侧面板中显示为片段的名称。如果找不到,则会回退到 Block

    数据片段

    用于系统识别片段的标识符

    系统会根据模板的名称,在拖放过程中自动添加 data-name 和 data-snippet 属性。

     警告

    当在主题页面上声明片段时,应特别添加这些属性。

     警告

    避免在另一个 section 标签内添加 section 标签:这将触发两次网站构建器的选项。您可以使用内部内容片段代替。

    列数

    任何直接从 .row 元素(遵循 Bootstrap 结构)下降的大型 Bootstrap 列,将被网站构建器触发,使它们可调整大小。

    .row > .col-lg-*
    

    在列和部分上添加填充。

    class="pt80 pb80"
    

    根据列和部分的调色板添加背景。

    class="o_cc o_cc*"
    

    使元素不可编辑。

    <div class="o_not_editable">
    

    启用列选择器。

    <div class="container s_allow_columns">
    

    禁用columns选项。

    <div class="row s_nb_column_fixed">
    

    禁用所有子列的大小选项。

    <div class="row s_col_no_resize">
    

    禁用一个列的大小选项。

    <div class="col-lg-* s_col_no_resize">
    

    禁用所有列的背景颜色选项。

    <div class="row s_col_no_bgcolor">
    

    禁用一列的背景颜色选项。

    <div class="col-lg-* s_col_no_bgcolor">
    

    添加视差效果。

    <section class="parallax s_parallax_is_fixed s_parallax_no_overflow_hidden" data-scroll-background-ratio="1">
        <span class="s_parallax_bg oe_img_bg o_bg_img_center" style="background-image: url('...'); background-position: 50% 75%;"/>
        <div class="container">
            <!-- Content -->
        </div>
    </section>
    

    添加一个不透明度为50%的黑色滤镜。

    <section>
        <div class="o_we_bg_filter bg-black-50"/>
        <div class="container">
            <!-- Content -->
        </div>
    </section>
    

    添加一个不透明度为85%的白色滤镜。

    <section>
        <div class="o_we_bg_filter bg-white-85"/>
        <div class="container">
            <!-- Content -->
        </div>
    </section>
    

    添加自定义颜色过滤器。

    <section>
        <div class="o_we_bg_filter" style="background-color: rgba(39, 110, 114, 0.54) !important;"/>
        <div class="container">
            <!-- Content -->
        </div>
    </section>
    

    添加自定义渐变滤镜。

    <section>
        <div class="o_we_bg_filter" style="background-image: linear-gradient(135deg, rgba(255, 204, 51, 0.5) 0%, rgba(226, 51, 255, 0.5) 100%) !important;"/>
        <div class="container">
            <!-- Content -->
        </div>
    </section>
    

    样式

    兼容性系统

    当一个片段有 data-vcss 或 data-vjs 属性时,意味着它是一个更新版本,而不是原始版本。

    <section class="s_snippet_name" data-vcss="..." data-js="...">
        <!-- Content -->
    </section>
    

    The data-vcss and data-js attributes indicate to the system which file version to load for that snippet (e.g., 001.js002.scss).

    自定义

    创建片段的内容。

    声明

    /website_airproof/views/snippets/s_airproof_snippet.xml
    <?xml version="1.0" encoding="utf-8"?>
    <odoo>
    
        <template id="s_airproof_snippet" name="...">
            <section class="s_airproof_snippet">
                <!-- Content -->
            </section>
        </template>
    
    </odoo>
    

     警告

    data-name 和 data-snippet 属性必须在主题页面上声明片段时指定。

     小技巧

    • 尽量使用Bootstrap原生类。

    • 为所有自定义类添加前缀。

    • 使用下划线小写命名类,例如 .x_nav , .x_nav_item 。

    • 避免使用ID标签。

    将您的自定义片段添加到默认片段列表中,以便用户可以直接从编辑面板上拖放它到页面上。

    /website_airproof/views/snippets/options.xml
    <template id="snippets" inherit_id="website.snippets" name="Custom Snippets">
        <xpath expr="//*[@id='default_snippets']" position="before">
            <t id="x_theme_snippets">
                <div id="x_theme_snippets_category" class="o_panel">
                    <div class="o_panel_header">Theme</div>
                    <div class="o_panel_body">
                        <t t-snippet="website_airproof.s_airproof_snippet" t-thumbnail="/website_airproof/static/src/img/wbuilder/s_airproof_snippet.svg">
                            <keywords>Snippet</keywords>
                        </t>
                    </div>
                </div>
            </t>
        </xpath>
    </template>
    

    属性

    描述

    t-snippet

    要使用的模板

    t-缩略图

    代码片段缩略图的路径

    选项

    选项允许用户使用网站构建器编辑片段的外观。您可以轻松创建片段选项,并自动将它们添加到网站构建器中。

    组属性

    选项被分组包裹。组可以具有定义包含的选项与用户界面交互的属性。

    data-selector 将组中的所有选项绑定到特定元素。它可以与 data-target 和 data-exclude 结合使用。

    <div data-selector="section, h1, .custom_class, #custom_id">
    

    data-js 绑定自定义 JavaScript 方法。

    <div data-js="CustomMethodName" data-selector="...">
    

    data-drop-in 定义了可以将片段放入的元素列表。

    <div data-selector="..." data-drop-in="...">
    

    data-drop-near 定义了代码片段可以被放置在旁边的元素列表。

    <div data-selector="..." data-drop-near="...">
    

    SCSS选项

    选项可以将标准或自定义的CSS类应用于代码片段。根据您选择的方法,用户界面的行为将有所不同。

    data-select-class="..."

    更多 data-select-class 在同一组中定义了用户可以应用的类列表。一次只能启用一个选项。

    /website_airproof/views/snippets/options.xml
    <template id="snippet_options" inherit_id="website.snippet_options" name="...">
        <xpath expr="." position="inside">
    
            <div data-selector="h1, h2, h3, h4, h5, h6">
                <we-select string="Headings">
                    <we-button data-select-class="">Default</we-button>
                    <we-button data-select-class="x_custom_class_01">01</we-button>
                    <we-button data-select-class="x_custom_class_02">02</we-button>
                </we-select>
            </div>
    
        </xpath>
    </template>
    

    JavaScript选项

    可以将 data-js 属性分配给选项组,以定义自定义方法。

    /** @odoo-module */
    
    import options from 'web_editor.snippets.options';
    
    options.registry.CustomMethodName = options.Class.extend({
        //
    });
    

    网站构建器提供了几个事件,您可以使用这些事件来触发自定义函数。

    活动

    描述

    开始

    当发布者在编辑会话中首次选择片段或将片段拖放到页面上时发生。

    onFocus

    每当用户选择片段或将片段拖放到页面上时发生。

    onBlur

    当片段失去焦点时发生。

    onClone

    在片段复制后立即发生。

    onRemove

    在片段被移除之前发生。

    onBuilt

    在将片段拖放到放置区域后立即发生。当触发此事件时,内容已经插入到页面中。

    cleanForSave

    在发布者保存页面之前发生。

    动态内容模板

    默认情况下,动态内容块在网站构建器中提供了一系列可用模板。您还可以将自己的模板添加到列表中。

    博客文章

    /website_airproof/views/snippets/options.xml
    <template id="dynamic_filter_template_blog_post_airproof" name="...">
        <div t-foreach="records" t-as="data" class="s_blog_posts_post">
            <t t-set="record" t-value="data['_record']"/>
            <!-- Content -->
        </div>
    </template>
    

    属性

    描述

    编号

    模板的ID。必须以 `dynamic_filter_template_blog_post_`开头

    名称

    模板的可读性高的名称

    产品

    /website_airproof/views/snippets/options.xml
    <template id="dynamic_filter_template_product_product_airproof" name="...">
        <t t-foreach="records" t-as="data" data-number-of-elements="4" data-number-of-elements-sm="1" data-number-of-elements-fetch="8">
            <t t-set="record" t-value="data['_record']"/>
            <!-- Content -->
        </t>
    </template>
    

    属性

    描述

    编号

    模板的ID。必须以 `dynamic_filter_template_product_product_`开头

    名称

    模板的可读性高的名称

    data-number-of-elements

    桌面上每个幻灯片的产品数量

    data-number-of-elements-sm

    移动设备上每个幻灯片的产品数量

    data-number-of-elements-fetch

    获取的产品总数

    活动

    /website_airproof/views/snippets/options.xml
    <template id="dynamic_filter_template_event_event_airproof" name="...">
        <div t-foreach="records" t-as="data" class="s_events_event">
            <t t-set="record" t-value="data['_record']._set_tz_context()"/>
            <!-- Content -->
        </div>
    </template>
    

    属性

    描述

    编号

    模板的ID。必须以 `dynamic_filter_template_event_event_`开头

    名称

    模板的可读性高的名称

    本文章从网上收集,如有侵权请联系tderp@tderp.com删除
  • 微信扫一扫,一分也是爱:
  • 微信

服务原则及地区范围

宜兴通达网络科技有限公司,地处中国宜兴环科园内,是一家高新技术企业。公司在企业网络维护和企业信息化建设与咨询方面,有10多年经验。

我公司愿与客户一道,力求彻底解决客户问题!
我们不是在给企业提供“头痛医头、脚痛医脚”的暂时解决方案,而是在部署根本性安全与稳定服务!!
我们愿携手客户,建立企业IT规划;杜绝随意安装系统、软件等操作;力求共同维护有序、安全、稳定的网络办公环境!!!
IT服务,服务是根本,客户是上帝;我们提供快速响应、快速上门、快速排查,提供优质高效的服务!!!!

通达科技提供全国范围内的服务,服务形式包括远程协助、电话咨询、电子邮件咨询、传真咨询、问答平台的问题解决等。

宜兴地区提供上门服务:

  • 市区服务:宜城街道、城北街道(屺亭街道)、新街街道、新庄街道、环科园、渚桥开发区
  • 市郊服务:张渚镇、西渚镇、太华镇、徐舍镇、官林镇、杨巷镇、新建镇、和桥镇、高塍镇、万石镇、周铁镇、芳桥镇、丁蜀镇、湖父镇。
  • 联系电话:189-21-343434
  • 在线沟通: