タグ付けされた質問 「layout」

最終的にテンプレートファイルをレンダリングするブロック階層を定義するために使用されるxmlファイルを示します。

4
Magento 2のUIコンポーネントグリッドの説明
Magento 2でUIコンポーネントグリッドを作成するために必要な最低限の構成の説明やサンプルはありますか? 私は次のような無数のコアコンポーネントがあることを知っています ./vendor/magento/module-catalog/view/adminhtml/ui_component/product_listing.xml ただし、これらのXMLファイルは広大であり、各ノードが何をするのか、またこれを使用してグリッドをゼロから構築する方法についてはほとんど説明がありません。 このサンプルモジュールもありますが、 フォームの前にあるように見える 各ノードの機能に関するコンテキスト/説明がありません 私は自分のCRUDモデルコレクションのグリッドを構築できる「はじめに」の情報を探しています。

6
Magento 2:ブロックのテンプレートの変更
Magento 1では、モジュール開発者として、次のようなレイアウトXMLコードを使用してブロックのテンプレートを変更できます。 <reference name="block_to_change"> <action method="setTemplate"> <param>/path/to/template.phtml</param> </action> </reference> そして、テンプレートを基本テーマに追加します。 app/design/frontend/base/default/template/path/to/template.phtml モジュール開発者として、Magento 2で同様のことを行うことは可能ですか?または、レイアウトXMLまたはPHPコードを使用して、興味のあるブロックを削除し、別のテンプレートで新しいブロックを挿入する必要があります(クラスは元のブロッククラスを拡張します) テンプレートを置き換えるカスタムテーマを作成できることは知っていますが、デフォルトのテンプレートを変更するモジュールを作成したいのですが、それでもカスタムテーマでそのテンプレートを置き換えることができます。

4
Magento 2:顧客セクション/sections.xmlはどのように機能しますか?
最近、Magento 2の新しいコンセプトに出くわしました。それは顧客のセクションです。 一部のsections.xmlユーザーは、次のようなファイルの存在に気付いているかもしれません。 <?xml version="1.0"?> <!-- /** * Copyright © 2016 Magento. All rights reserved. * See COPYING.txt for license details. */ --> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Customer:etc/sections.xsd"> <action name="sales/guest/reorder"> <section name="cart"/> </action> <action name="sales/order/reorder"> <section name="cart"/> </action> </config> 私が理解したことから、これらのファイルは、対応するアクションが呼び出されたときに更新される顧客セクションを指定します。 たとえばMagento/Checkout/etc/frontend/sections.xml、次の部分に気付きました。 <action name="checkout/cart/add"> <section name="cart"/> </action> 商品をカートに追加した後、ミニカートの更新をトリガーするものです。 etc/frontend/sections.xmlその機能をテストするために、次のファイルを使用してカスタムモジュールを作成しようとしました。 <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" …

6
レイアウトXMLロードのデバッグ
TL; DR:レイアウトの読み込みをデバッグする方法はありますか?あるモジュールのレイアウトは別のモジュールと競合していると思います。 前の質問に関連して:すべてのテーマに表示されるモジュールレイアウトを作成する方法 ローカルテスト環境(開発PC)にモジュールを正常にロードし、3つの異なるテーマ間の切り替えをテストしましたが、問題ありません。その後、私たちが持っているテスト環境または「運用前」環境でモジュールを更新しました。ここには、さまざまなモジュールがあります。この環境では、モジュールは製品フロントページで必要なものを表示しません。いくつかのテストの後、問題はレイアウトの読み込みプロセスにあるべきだという結論に至りました。 だから、レイアウトの読み込みをデバッグする方法、さまざまなモジュールが独自のブロックを置換または追加する方法はありますか?私のポイントは、私のモジュールと競合するモジュールが少なくとも1つあると信じていることです。そして、非常に多くのモジュールがあるため、モジュールを1つずつ無効にするのとは異なるアプローチを探しており、どれが問題のあるものかを確認しています。 私のconfig.xmlファイルは次のとおりです。 <?xml version="1.0" encoding="UTF-8"?> <config> <modules> <Dts_Banners> <version>0.1.0</version> </Dts_Banners> </modules> <global> <blocks> <banners> <class>Dts_Banners_Block</class> </banners> </blocks> .... <events> <controller_action_layout_load_before> <observers> <attributesethandle> <class>Dts_Banners_Model_Observer</class> <method>addAttributeSetHandle</method> </attributesethandle> </observers> </controller_action_layout_load_before> </events> </global> .... </config> 私のオブザーバーファイル: <?php class Dts_Banners_Model_Observer { /** * Checks if the search text on the list …

3
Magento 2のレイアウトからブロックを削除
Magento 1では、これをレイアウトブロックに追加することで、レイアウトファイルによって追加されたブロックを削除できました。 <remove ="block_id_here" /> Magento 2でも同じことができますか? 実際の演習として、管理ダッシュボードページからダッシュボードブロックを削除する独自のモジュールがあるとします。これ をapp/code/Magento/Backend/view/adminhtml/layout/adminhtml_dashboard_index.xml使用してブロックが追加されます。 <referenceContainer name="content"> <block class="Magento\Backend\Block\Dashboard" name="dashboard"/> </referenceContainer> view/adminhtml/layout/adminhtml_dashboard_index.xmlモジュールでファイルを作成する必要があると思いますが、何を入れる必要がありますか?

7
JavaScriptのすべてのインクルードを前に移動します</ body>
誰もが知っているがどのようにMagentoののJSスクリプトタグなどのすべてを持っているん&lt;script type="text/javascript" src="http://sitename.com/js/prototype/prototype.js"&gt;&lt;/script&gt;クロージング前にレンダリング&lt;/body&gt;? 私はこれを以前に一度試しましたが、おそらく参照フッターで使用したaddJSメソッドの行に沿ってエラーが発生したと思います。

3
レイアウトXMLで条件付きでブロックを表示/非表示
MagentoのレイアウトXMLに条件付きで(管理パネルの設定に応じて)ブロックを追加する方法は? configがアクションに対して真であるかどうかを確認できます。以下の例でsample/config/show_toplinksは、管理パネル(System-&gt; Configuration)の設定がtrueの場合、テンプレートファイルlinks.phtmlがトップリンクのレンダリングに使用されます。sample/config/show_toplinksがfalseの場合、デフォルトのテンプレートが使用されます。 &lt;reference name="top.links"&gt; &lt;action method="setTemplate" ifconfig="sample/config/show_toplinks"&gt; &lt;template&gt;page/template/links.phtml&lt;/template&gt; &lt;/action&gt; &lt;/reference&gt; この回避策はWebのどこかにありました。次のように、空のテンプレートをトップリンクのデフォルトテンプレートとして設定できます。 &lt;reference name="top.links"&gt; &lt;action method="setTemplate" ifconfig="sample/config/show_toplinks"&gt; &lt;template&gt;page/template/links.phtml&lt;/template&gt; &lt;/action&gt; &lt;!-- OR set completely empty template --&gt; &lt;action method="setTemplate"&gt; &lt;template&gt;page/template/empty_template_for_links.phtml&lt;/template&gt; &lt;/action&gt; &lt;/reference&gt; この場合、sample/config/show_toplinksがtrueの場合、テンプレートlinks.phtmlが使用され、トップリンクが表示されます。しかし、場合sample/config/show_toplinksではfalse、その後、empty_template_for_links.phtmlテンプレートが使用され、それが任意のHTMLを返さないとトップリンクが表示されませんので、そのテンプレートは、完全に空です。 管理パネルの構成に応じて、条件付きでブロックを表示または非表示にする他の方法はありますか? この回避策は安全ですか? これにより、予期しないエラーが発生する可能性がありますか? 編集: すべての回答に基づいて、Rick Kuipersのソリューションが私の場合に最も便利に見えると思います。しかし、別の関連する質問があります: &lt;block type="core/template" name="my_block" template="my/block.phtml" /&gt; &lt;!-- ...add more blocks here --&gt; &lt;reference …
32 template  layout  blocks  xml 

3
「名前」を使用する場合と「as」を使用する場合
unsetChildメソッドを使用しようとすると、「name」属性と「as」属性を使用しなければならないことがあります。ブロックが正常に追加される場合は「as」appendを使用しますが、メソッドを使用してブロックに追加される場合は「name」を使用する必要がある場合があります。この仮定は正しいですか? この背後にある理由は何ですか?どの属性を使用すべきかを理解する標準的な方法はありますか?

1
Magento 2:すべてのページの<head>に任意のHTMLを追加しますか?
Magento 2では、すべてのフロントエンド/カートページに任意のビットのHTMLを追加できます&lt;head/&gt;か? 私は&lt;body&gt;このようなコードでコンテンツ/ エリアにブロックを追加できることを知っています &lt;page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"&gt; &lt;body&gt; &lt;referenceBlock name="content"&gt; &lt;block type="Pulsestorm\Test\Block\Head" name="pulsestorm.head" as="pulsestorm.head" template="pulsestorm/head.phtml"/&gt; &lt;/referenceBlock&gt; &lt;/body&gt; &lt;/page&gt; ただし、&lt;head/&gt;ページの要素にコンテンツを追加するための同様のブロックがあるかどうかは明らかではありません。私はdev docsサイトとソースコードを調べましたが、タグで使用できる新しいタグへの参照がたくさんあります&lt;head/&gt; &lt;head&gt; &lt;css.../&gt; &lt;js.../&gt; &lt;/head&gt; しかし&lt;head/&gt;、Magento 2のページのセクションに任意のhtml / textを追加する方法のリファレンスは見つかりません。
23 php  layout  magento2 


4
Magentoトップリンクを編集するベストプラクティスの方法
Magentoのトップリンクの「マイカート」リンクの直前にショッピングカートアイコンを追加するとします(以下のトップリンクを参照)。 これを行う最良の方法は何ですか? toplinks.phpに何かしますか? links.phtmlに何かしますか? xmlファイル? 他のオプションはありますか? これはCSSで実行できることを理解していますが、カスタマイズのニーズが高まるにつれて、CSSなしでこれを実行する方法を知りたいので、より難しいことをカスタマイズできます。

3
レイアウトXMLで複数のレイアウトハンドルをターゲットにする
次のように、ノードにテンプレートを/custommodule/customer/infoロードするパスでアクセスされるカスタムコントローラーがあります。2columns-left.phtmlroot &lt;custommodule_customer_info&gt; &lt;reference name="root"&gt; &lt;action method="setTemplate"&gt;&lt;template&gt;page/2columns-left.phtml&lt;/template&gt;&lt;/action&gt; &lt;/reference&gt; &lt;/custommodule_customer_info&gt; 私がやりたいのは、ログインしていない顧客のルートテンプレートを更新することです。 &lt;customer_logged_out&gt; &lt;custommodule_customer_info&gt; &lt;reference name="root"&gt; &lt;action method="setTemplate"&gt;&lt;template&gt;page/1column.phtml&lt;/template&gt;&lt;/action&gt; &lt;/reference&gt; &lt;/custommodule_customer_info&gt; &lt;/customer_logged_out&gt; この方法で複数のレイアウトハンドルをターゲットにできないことは理解していますが、意図は明確でなければなりません。顧客がログインしていないときに、このレイアウトハンドルのルートテンプレートを更新します。 私はコントローラーのハンドルを次のものでターゲットにできると思っていました。 &lt;customer_logged_out&gt; &lt;reference name="custommodule_customer_info"&gt; &lt;reference name="root"&gt; &lt;action method="setTemplate"&gt;&lt;template&gt;page/1column.phtml&lt;/template&gt;&lt;/action&gt; &lt;/reference&gt; &lt;/reference&gt; &lt;/customer_logged_out&gt; これは実際にテンプレートでルートテンプレートを更新1column.phtmlしますが、referenceノードでターゲットになっているページだけでなく、すべてのページに見えるもので更新しています。 このレイアウト更新のいくつかの順列を試しましたが、どれも機能していないようです。レイアウトハンドルを使用しながら、この1つのレイアウトハンドルをターゲットにするにはどうすればよいcustomer_logged_outですか? -編集-明確にするために、これは実際にはサードパーティのモジュールです。
22 layout 


1
製品ビューページにレンダリングされないCachable = falseのブロック
magento2-1.0.0-beta4を使用しています checkout.rootブロックをapp/code/Magento/Checkout/view/frontend/layout/checkout_index_index.xml製品ページにコピーしました。 を有効にするまで、すべて正常に動作していpage_cacheます。そのブロックはcacheable="false"、レイアウトXMLに含まれています。 製品ページを開くと、ブロックはまったくレンダリングされません。 ページキャッシュを正しく理解していれば、AJAX呼び出しを介してそのようなブロックをロードするはずです。しかし、私のブレークポイントに到達することはないので、このようなAJAX呼び出しは発生しないようです\Magento\PageCache\Controller\Block\Render::execute。 開くとき、/checkout/または/checkout/cart/すべてが機能するとき。しかし、AJAX呼び出しも発生していないようです。代わりに、ページ全体がキャッシュからレンダリングされていないように見えるため、カートにとって意味があります。 だから、単に製品ビューページを除外する必要がありpage_cacheますか?しかし、私はそうする方法を見つけませんでしたか?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.