Capítulo 3 - Customization, Part I

カスタムSCSSを追加

OdooとBootstrapの変数を調整してプリセットを設定しましたが、ウェブサイトとクライアントのデザインの間に違いがあります。 唯一の解決策はカスタムSCSSを組み込むことです。

theme.scss では、次のデザイン要素を再現します。

  • アクティブなナビゲーションアイテムに 緑色の下線 を追加します。

  • 矢印 を折りたたみ可能なナビ項目に変更します。

  • スライダーの矢印 を緑色の背景を追加してデザインを変更します。

media here があります。

関連項目

:ref:`SCSS ルール <theming/assets/styles> ` の参照ドキュメントを参照してください。

../../../_images/menu.png ../../../_images/slider.png

注釈

すべての SCSS ルールを #wrapwrap に含めることを常に推奨します。 このIDは、すべてのページの headerfooter、および :guilabel:`main`コンテンツをグループ化するdivに適用されます。
あなたの規則がウェブサイトの部品にのみ影響を与えることを確かめる。

header.scsscaroussel.scss の解決策を見つけます。

カスタムJSを追加

では、ウェブサイトにマウスフォロワーを追加しましょう。このインタラクティブな要素は、ブラウジング体験を向上させ、より魅力的で視覚的に魅力的にします。

../../../_images/mouse-follower.gif

これを実装するためにJavaScriptのスキルを使用してください。

関連項目

:ref:`add Javascript code <theming/assets/interactivity> ` の参照ドキュメントを参照してください。

mouse_follower.jsmouse_follower.scss の解決策を見つけます。

カスタムヘッダーを作成

変数、プリセット、およびカスタムSCSSを使用すると、ヘッダーから始めて、レイアウトを絞り込み、キーをクロスページ要素を追加する時が来ます。

防護設計に基づいて、次の要素を使用してカスタムヘッダーを作成します。

  • 中心となるロゴ。ヘッダーに自動的に表示されるようにロゴを宣言してください。

  • カスタムショッピングカートアイコン。

  • ボタンとしてのログイン/ユーザー

  • 14pxへのナビゲーションテキスト。

ロゴカートアイコンテンプレート イラストレーション があります。

関連項目

次の方法についてのリファレンスドキュメントを参照してください:

  • :ref:`custom headers <website_themes/layout/header/custom> `を作成する

  • XPath を実行します

  • 会社のロゴ を宣言します。

../../../_images/header.png

ちなみに

  • odoo/addons/website/views/website_templates.xml にある既存のヘッダーテンプレートのコードをベースにしてください。

  • カスタムビューとテンプレートを管理するための異なるファイルを作成することが良い習慣です。例えば、一般的なレイアウト(ヘッダー、フッター)に関するすべてのものです。 を入力します。 website_templates.xmlwebsite_blog_templates.xml のブログに関連するすべてのもの、 website_event_templates.xml などでイベントを行います。

  • カートアイコンを変更するには、 XPath を使用します。
    これはeCommerceにリンクされているため、 website_sale_templates.xml という新しいファイルに配置します。
  • Bootstrap変数primary variables (フォント、色、サイズ) でできるだけ多くの変更を続けることを忘れないでください。 . ). このエクササイズを支援するために使用できます.

解決策を見つけるには、以下の例をご覧ください:

  • xml構造を指定し、website_template.xml のオプションリストにテンプレートを追加します。

  • デフォルトヘッダを無効にします:

    /website_airproof/data/presets.xml
    <!-- Disable default header -->
    <record id="website.template_header_default" model="ir.ui.view">
       <field name="active" eval="False"/>
    </record>
    
  • ロゴを記録します。

    /website_airproof/data/images.xml
    <!-- Set as the logo of the website -->
    <record id="website.default_website" model="website">
       <field name="logo" type="base64" file="website_airproof/static/src/img/content/branding/airproof-logo.svg"/>
    </record>
    
  • website_templates.xml ファイルと、 manifest 内のすべての新しいファイルを宣言します。

  • presets 経由でヘッダーに含まれないオプションを無効にします。

  • primariesheader-templatenavbar-font`header-font-size`のように使用します...

  • bootstrap_overrided like $navbar-light-color, $navbar-light-hover-color, $navbar-padding-y...

  • scss ルールを追加します。

カスタムビルディングブロックを作成する

あなたのクライアントがさらに彼のウェブサイトをカスタマイズすることを可能にするために、彼は自由にドラッグ&ドロップすることができますオーダーメイドのビルディングブロックを作成します。

防空設計に基づいて、ドローンを紹介するカスタムカルーセルスニペットを作成します。その後、ホームページにカバーセクションとして追加します。

  1. スニペットテンプレートを作成し、ウェブサイトビルダーで利用可能なビルディングブロックのリストに追加します。 ここでは imagesnippet イラスト があります。

    関連項目

    :ref:`カスタムビルディングブロック <website_themes/building_blocks/custom> ` の作成方法については、リファレンスドキュメントを参照してください。

    ../../../_images/custom-building-block.png
  2. Website Builder で、ユーザーが青色または緑色のバブルシャドウを選択できるようにするオプションを追加します。

    関連項目

    :ref:`スニペットオプション <website_themes/building_blocks/custom/options> ` の追加方法については、リファレンスドキュメントを参照してください。

    ../../../_images/custom-building-block-option.png
  3. ホームページにスニペットを追加します。

ちなみに

Don't forget to always properly declare your new files in your __manifest__.py and follow the good folder structure seen previously.

この課題を完了するには、次のようにする必要があります:

  1. テンプレートを作成

    • 必要なすべての情報は s_airproof_carousel.xml ファイルと s_airproof_caroussel/000.scss ファイルにあります。

    • images.xml で画像を記録します。

    • __manifest__.py でファイルを宣言します。

    • ブロックのリストに追加します。この例では次のようになります。

      /website_airproof/views/snippets/options.xml
      <!-- Add custom snippets to the builder -->
      <template id="snippets" inherit_id="website.snippets" name="Airproof - Custom Snippets">
         <xpath expr="//*[@id='default_snippets']" position="before">
            <t id="x_theme_snippets">
               <div id="x_airproof_snippets" class="o_panel">
                  <div class="o_panel_header">Airproof</div>
                  <div class="o_panel_body">
                     <!-- Carousel snippet -->
                     <t t-snippet="website_airproof.s_airproof_carousel"
                     t-thumbnail="/website_airproof/static/src/img/wbuilder/s-airproof-snippet.svg">
                        <keywords>Carousel block</keywords>
                     </t>
                  </div>
               </div>
            </t>
         </xpath>
      </template>
      
  2. ウェブサイトビルダーにオプションを追加します。この例では、次のようになります。

    /website_airproof/views/snippets/s_airproof_carousel.xml
    <!-- Add options to snippets -->
    <template id="snippet_options" inherit_id="website.snippet_options" name="Airproof -
    Snippets Options">
       <xpath expr="." position="inside">
          <!-- *** Carousel snippet : blue or green bubble *** -->
          <div data-selector=".x_bubble_item">
             <we-button-group string="Bubble shadow">
                <we-button data-select-class="x_bubble1">Blue</we-button>
                <we-button data-select-class="x_bubble2">Green</we-button>
             </we-button-group>
          </div>
       </xpath>
    </template>
    

    さらに、s_airproof_caroussel/000.scss ファイル中のバブルに関連する SCSS もあります。

  3. ホームページにスニペットを追加します。サンプルモジュールの home.xml ファイルから必要な情報をすべて見つけることができます。

新しい動的スニペットテンプレートを作成

動的スニペットは構成ブロックです。これらはバックエンドから情報を取得し、特定のフィルタに応じてウェブサイトに表示することができます。
動的スニペットを表示するためのいくつかのレイアウトテンプレートがすでにありますが、既存のテンプレートはクライアントのニーズに完全に一致しません。

エアプルーフデザインに基づいて、ホームページの製品動的スニペットに適用するカスタムテンプレートを作成します。

  1. まず、動的な製品テンプレートのリストに追加されるカスタムテンプレートを作成します。次の要素を含める必要があります:

    • もっと知る リンクを追加します。

    • カードにホバー効果を追加します。

    • ナビゲーション矢印を移動します。

    icons here があります。

    関連項目

    See reference documentation on how to create a template for dynamic snippets.

    ../../../_images/custom-template.png

    ちなみに

    Website Builder で、製品の動的スニペットで使用可能なテンプレートのリストにテンプレートが表示されることを確認できます。

  2. 次に、ホームページに作成したテンプレートで製品の動的スニペットを追加します。

    関連項目

    :ref:`テンプレート <website_themes/building_blocks/custom/dynamic/call> `を呼び出す方法については、リファレンスドキュメントを参照してください。

この課題を完了するには、次のようにする必要があります:

  1. スニペットテンプレートを作成します。必要な情報は options. ml file and karossel.scss file from our example module.

  2. ホームページで製品の動的スニペットにテンプレートを適用します。 必要なすべての情報は、サンプルモジュールから home.xml ファイルにあります。