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

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

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コードを使用して、興味のあるブロックを削除し、別のテンプレートで新しいブロックを挿入する必要があります(クラスは元のブロッククラスを拡張します) テンプレートを置き換えるカスタムテーマを作成できることは知っていますが、デフォルトのテンプレートを変更するモジュールを作成したいのですが、それでもカスタムテーマでそのテンプレートを置き換えることができます。

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モジュールでファイルを作成する必要があると思いますが、何を入れる必要がありますか?


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

3
特定のセクションまたはブロックのキャッシュを無効にするにはどうすればよいですか
カートに追加された最新の3つの製品を表示する店頭用のトップバーカート機能を開発しました。これは、キャッシュが無効になっているときに最適ですが、キャッシュを有効にすると、トップカートに奇妙な小計が表示され、カートに奇妙な製品が表示されます。 これは私を悲しくさせます: '( これはキャッシュのために起こっていることを知っています。このセクションでのみキャッシュを無効にできるものはありますか?ブロックHTMLキャッシュを無効にしてみて、これがうまく機能していることを確認しましたが、ブロックHTMLが無効になっている場合、カテゴリflatに不特定の問題があることがわかりました。


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

4
多言語静的ブロックを作成する方法
多言語の静的ブロックを作成する必要があります。これまでに、「delivery_returns」というIDの静的ブロックを作成しました。 次のように、catalog \ product \ view.phtmlで呼び出しています。 $deliveryBlock = Mage::getModel('cms/block')->load('delivery_returns'); echo $deliveryBlock->getTitle(); echo $deliveryBlock->getContent(); 私はこのブロックを翻訳することを理解しています: 別のものを作成する必要があります。 store_viewフィールドから希望の言語を選択します 静的ブロック識別子を元のものと同じに保ちます。 このメソッドは、「footer_links」および「header_links」と呼ばれる別の静的ブロックで機能しますが、「delivery_returns」ブロックでは機能していないようです。ストア言語を変更しても、対応する翻訳された「delivery_returns」ブロックはロードされません 私は何が欠けていますか?これを達成するためのより良い方法はありますか?


1
DEBUG(7):セキュリティの問題:block_nameはホワイトリストに登録されていません。(マゼンタsystem.log)
ではsystem.log私のMagentoのファイル、私は次のエラーメッセージを持っているインストール DEBUG(7):セキュリティの問題:block_nameホワイトリストに登録されていません。 どこblock_nameが私の店で使用されるブロックの名前です。 それはどういう意味ですか、どうすれば修正できますか?

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ますか?しかし、私はそうする方法を見つけませんでしたか?


3
「無効なブロックタイプ..」エラーを診断する方法
このエラーを理解する方法がわからない、私は1週間グーグルをしてきましたが、解決策を見つけることができません。何か案は? 2013-06-10T04:04:28+00:00 ERR (3): exception 'Mage_Core_Exception' with message 'Invalid block type: ' in /home/xxxxxxx/public_html/app/Mage.php:594 Stack trace: #0 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(495): Mage::throwException('Invalid block t...') #1 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(437): Mage_Core_Model_Layout->_getBlockInstance('', Array) #2 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('', 'checkout.cart') #3 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('', 'checkout.cart') #4 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element)) #5 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element)) #6 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks() #7 /home/xxxxxxx/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(269): Mage_Core_Controller_Varien_Action->generateLayoutBlocks() #8 /home/xxxxxxx/public_html/app/code/core/Mage/Checkout/controllers/CartController.php(159): Mage_Core_Controller_Varien_Action->loadLayout() #9 …

1
magento 2でブロックを呼び出すときに、メンバー関数dispatch()を呼び出す致命的なエラー
これは私のブロックファイルです: <?php namespace ChennaiBox\Mymail\Block\Mail; class MailContent extends \Magento\Framework\View\Element\Template { protected $_objectManager; protected $customerSession; public function __construct( \Magento\Customer\Model\Session $customerSession, \Magento\Framework\ObjectManagerInterface $objectManager ) { $this->customerSession = $customerSession; $this->_objectManager = $objectManager; } public function mymailData() { try{ if ($this->customerSession->isLoggedIn()) { $cutomerEmail =(string)$this->customerSession->getCustomer()->getEmail(); echo $cutomerEmail; else{ $this->_redirect('customer/account/login/'); } }catch (Exception $e) { $e->getMessage(); } …

6
製品ページから「製品情報、レビュー、タグ」ブロックを削除する
Magentoの製品ページから特定のブロックを削除しようとしていますが、削除する場所が見つからないようです。XMLファイルのどこかにあると思いますが、私はWeb開発者があまり得意ではないので、いくつかのファイルを削除しようとするのは愚かなことだと考えました。 Magentoの管理者では、「タグ」機能を無効にして(admin -> system -> configuration -> advanced -> disable Mage_Tag)いますが、ブロック全体を削除する場所が見つかりません。 写真の赤い丸で囲まれたブロックは、削除しようとしているブロックです。また、「productomschrijving」と「extra informatie」もあります。

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