2

menuitem にアイコンを設定しようとすると、アイコン属性がサポートされていることがわかりますが、その値を変更しても変更はありません。

odoo v7/8 の menuitem でまだサポートされているかどうかを知りたいです。そうでない場合、メニュー項目にアイコンを追加する方法は?

編集:

odoo のメニューの表示をカスタマイズしようとしています。そこで、Web モジュールから「webClient_templates.xml」でメニューをレンダリングするテンプレートを次のようにオーバーライドします。

<template id="my_menu_link" inherit_id="web.menu_link">
  <span position="replace">
     <span class="oe_menu_text">
        <i class="fa fa-check"></i>
        <t t-esc="menu['name']"/>
     </span>
  </span>
</template>

おそらく、すべてのメニュー項目に font-awesome lib の同じアイコン (つまり、fa-check) が表示されます。ここで、各メニュー項目に特定のアイコンを追加しようとします。これは、menuitem の xml 記述で一種の属性またはその他として何らかの形で定義し、次のように取得できます。

<i t-attrs-class="menu['icon']"></i>

メニューアイテムのアイコン属性を使用しようとしましたが、非推奨であっても、テンプレート レベルで menu['icon'] が認識されません。

提案をお願いします。

4

2 に答える 2

0

私の知る限り、メニュー項目にアイコンを表示することは推奨されておらず、Web クライアントでは機能しません。おそらく、その機能を拡張する Web クライアント用のモジュールを作成する必要があります。

于 2015-05-04T15:34:08.957 に答える
0

現在 odoo v12 を使用していますが、ir.ui.menu モデルのアイコン用に未使用のフィールドもあります。

バックエンドのメニューにアイコンを表示することができました。コードとの違いは次のとおりです。

  • アイコン フィールドの名前は ですweb_icon。これは v10+ に固有のものである可能性があります。これを確認するための v8 はありません。
  • 属性を設定するためのテンプレート構文は ist-att-<name>および notですt-attrs-<name>
  • そして最も重要なこと: バックエンドのメニューは JavaScript を使用して生成されるため、変更するテンプレートはweb/static/src/xml/menu.xml
  • <i>2 つのテンプレートにマークアップ を追加する場所は 3 つあります。
    • <t t-name="Menu.link">
      • 47 行目:<span><i t-att-class="menu.web_icon"></i> <t t-esc="menu.name"/></span>
      • 59 行目:<span><i t-att-class="menu.web_icon"></i> <t t-esc="menu.name"/></span>
    • <t t-name="Menu.sections">
      • 81 行目:<i t-att-class="second_level_menu.web_icon"></i> <t t-esc="second_level_menu.name"/>

メニューのアイコン フィールドに設定するデータは、font-awesome CSS クラス全体です。
fa fa-check

これは、アイコン セットをさらに追加する場合に適しています。テンプレートを再度変更する必要はありません。ただし、font-awesome の使用を強制したい場合、または font-awesome solid のような別のアイコン セットを (fasクラスを使用して) 使用したい場合は、テンプレートでこのマークアップを使用できます。

<i t-attf-class="fas fa-#{menu.web_icon}"></i>
( t-attf-<name>「属性関数」を使用する場合の注意)

そのため、フィールド内のデータはcheck...

そして最後に、テンプレートを継承するモジュールを作成し、私が行ったように直接変更するのではなく、この変更を行うことをお勧めします...
また、アイコンとテキストを正しく配置するための CSS スタイルを追加します (ここでは、アイコンは同じサイズではありません)。 )。

于 2020-03-08T12:08:27.087 に答える