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

`Block`クラスに関する質問を示します。

4
「section-config.js」でのMagento 2ストアスイッチャーエラーUncaught TypeError:undefined(…)のプロパティ「*」を読み取れません
カスタムテーマにカスタムストアスイッチャーを実装しています。 ブロックテンプレートは次のとおりです。 <?php if (count($block->getStores())>1): ?> <?php $id = $block->getIdModifier() ? '-' . $block->getIdModifier() : ''?> <span><?php echo $block->escapeHtml($block->getStoreName()) ?></span> <span>/</span> <?php foreach ($block->getStores() as $_lang): ?> <?php if ($_lang->getId() != $block->getCurrentStoreId()): ?> <span class="view-<?php echo $block->escapeHtml($_lang->getCode()); ?> switcher-option"> <a href="#" data-post='<?php /* @escapeNotVerified */ echo $block->getTargetStorePostData($_lang); ?>'> <?php echo …

3
Magentoの新しいカスタムブロックモジュール
Magentoバージョン1.8.1.0を使用しています。 新しいホームページを作成するために使用する新しいカスタムブロックモジュールを作成しようとしています。 名前空間:十字軍 モジュール:CLHomePage ブロックタイプ:十字軍の家 クラス:Qwerty(テスト中のみ) デザインパッケージ:クルセイダー テーマ:デフォルト これは私がこれまでに持っているものです: \ app \ etc \ modules \ Crusader_All.xml <?xml version="1.0"?> <config> <modules> <Crusader_CLHomePage> <active>true</active> <codePool>local</codePool> </Crusader_CLHomePage> </modules> </config> \ app \ code \ local \ Crusader \ CLHomePage \ etc \ config.xml <?xml version="1.0"?> <config> <modules> <Crusader_CLHomePage> <version>0.0.1</version> </Crusader_CLHomePage> </modules> <global> …

4
getChildHtml()にデータを渡すか、子ブロックのメソッドを呼び出します
getChildHtml()呼び出しにデータを渡すことができます。その理由は、ブロックの出力は製品タイプに依存しているからです。したがって、出力を決定できるように、製品をgetChildHtmlに渡します。 私はこれを内部で行っていtemplate/checkout/cart/item/default.phtmlます。 理想的には、呼び出しは次のようになります。 echo $this->getChildHtml('child_block_name', $_item); 次に、ブロックはアイテムから製品タイプを取得し、正しい出力を表示できます。 このデータを渡すことは絶対に不可能であるgetChildHtmlため、コアブロックを書き換えずにこのタイプの動作をどのように実現できるか 私が現在持っている2つのソリューションは次のとおりです(どちらも非常に魅力的ではありません): 1-ヘルパーを作成し、ブロックとテンプレートにalaをレンダリングさせる代わりに、ヘルパーを介してhtml出力にアクセスします $this->helper('my_module')->getItemHtml($_item); 2-子ブロックにアクセスし、テンプレート内のその上でsetData: $this->getChild('child_name')->setData('item', $_item); echo $this->getChildHtml('child_name') Magentoアーキテクチャに関しては、2番は2つの悪のうち小さいほうだと思いますが、テンプレートの内部は見苦しいです。
12 layout  blocks 

3
名前のないレイアウトからブロックを削除する
サードパーティの拡張機能で宣言されているmagento 2のレイアウトからブロックを削除したいのですが、ブロックに名前がありません。 それをしてもいいですか? ブロックは次のように宣言されています <referenceContainer name="before.body.end"> <block class="Magento\Backend\Block\Template" template="[Vendor_Module]::template.phtml"/> </referenceContainer> 使えない <referenceBlock name="..." remove="true" /> ご覧のとおり、名前はありません。

3
Magento 1でブロッククラスをオーバーライド/書き換えするにはどうすればよいですか?
注:これは、ブロックの書き換えがどのように機能するかを完全に説明する標準的な質問であり、「ブロックXをオーバーライドする方法」または「書き換えが機能しない理由」の質問の重複ターゲットとして使用できます。 参照:Magento 1のオーバーライドに関する正規の質問を探す たとえば、カスタムモジュールのコアブロッククラスを変更する必要がある(メソッドの変更またはメソッドの追加)。これをどのようにして段階的に行うのですか?


1
Magento 2:XMLを介してコンテナー内にテキストを追加する方法
フッターのリンクリストの前に1行のテキストを表示しようとしています。これを行うためのテンプレートファイルを作成することは、このタスクのリソースの無駄遣いのようです。私はそれを理解していたので、Magento\Framework\View\Element\Textレイアウトにブロックを含むテキストを出力できました。 XML <referenceContainer name="footer"> <container name="footer.column.about_us" htmlTag="div" htmlClass="column about-us" before="-"> <container name="column.about_us.label" htmlTag="div" htmlClass="label"> <block class="Magento\Framework\View\Element\Text" name="about_us.label"> <arguments> <argument name="data" xsi:type="array"> <item name="text" xsi:type="string">About Us</item> </argument> </arguments> </block> </container> <block class="Magento\Framework\View\Element\Html\Links" name="footer_links.about_us"> <arguments> <argument name="css_class" xsi:type="string">footer links</argument> </arguments> </block> </container> </referenceContainer> 上記は何も出力せず、これがサポートされているかどうか、私が間違っているだけなのか、これを達成するためのより適切な方法があるかどうかはわかりません。 明確にするために、私が現在見ているのは: <div class="column about-us"> <ul class="footer links">...</ul> </div> …

1
getChildHtmlとgetBlockHtmlの違いは何ですか
あらすじ 違いは何であるgetChildHtmlとはgetBlockHtml? テンプレートでcms / blockタイトルを取得するにはどうすればよいですか? 基本的にフッターを自分のフッターに置き換え、自分のフッターを設定しました。<?= $this->getChildHtml('...') ?>これは、使用するまで機能しませんでした<?= $this->getBlockHtml('...') ?>。 レイアウトXML: <layout> <default> <block type="core/template" name="custom_footer" as="footer" template="page/html/footer.phtml"> <block type="cms/block" name="child_1"> <action method="setBlockId"><block_id>footer_child_1</block_id></action> </block> </block> </layout> </default> テンプレート(機能しません): <footer> <div class="row"> <div class="col-sp4"><?= $this->getChildHtml('child_1') ?></div> </div> </footer> テンプレート(作品): <footer> <div class="row"> <div class="col-sp4"><?= $this->getBlockHtml('child_1') ?></div> </div> </footer> 解決: 最初に、次の方法でフッターをオーバーライドする必要がありlocal.xmlました。 <default> …

2
バックエンドでのMagento 1ウィジェットのセットアップ-上に移動するには
バックエンド-> CMS->ウィジェットを介してすべてのカテゴリページにウィジェットを設定しています この方法を使用する場合、カテゴリページのブロックを選択すると、ブロックがうまく表示されます。左側の列にある他のすべての情報の一番下にあります。 しかし、どうすればブロックを上に移動できますか?(上層など)... 代わりにを使用するlocal.xmlこともできます。これは、私が好むものではありません。+同じテーマを使用するすべての私のWebサイトにも表示されます。

3
Magento 2:チェックアウトページにブロックを追加する方法
上記のファイルを上書きして、カスタムブロックをに表示したいと思いますli。 magento \ vendor \ magento \ module-checkout \ view \ frontend \ web \ template \ shipping.html <li id="shipping" class="checkout-shipping-address" data-bind="fadeVisible: visible()"> <div class="step-title" data-bind="i18n: 'Shipping Address'" data-role="title"></div> </li> <!-- ko if:myBlock --> // Mine need to call block created from Admin <li> <p data-bind="html: myBlock"></p> </li> <!-- /ko …

3
無効なブロックタイプ:[名前空間] \ [モジュール] \ Block \ Timeline
私はフッターにブロックを追加しようとしましたが、これまでのところそれは戻り続けます Invalid block type: [Namespace]\[Module]\Block\Timeline 私がこれまでに持っているもののソースもここにあります:https : //github.com/sandermangel/magento2-twitterfeed 俺の layout/default.xml <?xml version="1.0"?> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <body> <referenceBlock name="footer"> <block class="[Namespace]\[Module]\Block\Timeline" name="twitterfeed-timeline" template="footer/timeline.phtml"></block> </referenceBlock> </body> </page> そして私のブロッククラス vendor/[namespace]/[module]/Block/Timeline.php namespace [Namespace]\[Module]\Block; use Magento\Framework\View\Element\Template; class Timeline extends Template { /** * Timeline constructor. * @param Template\Context $context * @param array $data */ public …
10 blocks  magento2 


1
Magento 2-ブロック名vs名前
私はMagento 2でいくつかの作業を行っており、(フロントエンドに)インストールしたモジュールを上書きしています。 しかし、今日私は今までに出会ったことのない何かに出くわしました。私が使用しているモジュールには、次のようなブロックが含まれています。 <referenceBlock name="product.info.details"> <block class="Vender\Module\Block\Catalog\Related" name="posts.tab" as="blog.posts" template="Vender_Module::catalog/posts.phtml" group="detailed_info"> </block> </referenceBlock> それはその名前を設定します: posts.tab 次にasを使用して、次のようにして呼び出せるようにします。 as = "blog.posts" asの名前を使用して削除するブロックを参照しようとしたときに、ページから削除されていないことに気付きました。 <referenceBlock name="product.info.details"> <referenceBlock as="blog.posts" remove="true"/> </referenceBlock> それで、フロントエンドで実際にページが呼び出されているところを見に行きました(他の場所で名前が変更されていたり、posts.tab名を使用していない場合に備えて)-ブロック名は、posts.tabで呼び出されています。私はそのブロックを参照して削除することができます。それはうまくいきました。 しかし、私の質問は、なぜブロックは使用して引っ張られていないされて、代わりに使用して引かれる名前を。 2番目に、asのポイントは何ですか?明らかに、ブロックはとにかく競合する名前を持つことができず、一意である必要があります-しかし、私は完全に間違っているかもしれません。


4
Magento 2:「名前」のないブロックのテンプレートを変更する方法
カスタムテンプレートでブロックのテンプレートを上書きするように変更したい。ただし、「名前」はなく、「as」のみがあります。私がオーバーライドしたいのは: <block class="Magento\Sales\Block\Adminhtml\Order\View\Items\Renderer\DefaultRenderer" as="default" template="order/view/items/renderer/default.phtml"/>

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