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

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

1
Paypalエクスプレスレビューページにチェックアウトの進行状況を含めるにはどうすればよいですか?
OK ステップ1-列番号を変更する PayPalエクスプレスレビューページ(PayPalが注文を確認して最終的に送信するために購入者に送り返すペー​​ジ)は、1列のページです。もちろん、カスタムモジュールxmlファイルのレイアウトをオーバーライドすることにより、列の数を変更できます。 <paypal_express_review> <!-- maybe other references here --> <reference name="root"> <action method="setTemplate"><template>page/2columns-right.phtml</template></action> </reference> <!-- maybe other references here --> </paypal_express_review> ステップ2-右側の列のコンテンツを制限するコードを削除する これで右側の列が表示されますが、空白になります-これは次の行のためですapp/design/frontend/base/default/layout/paypal.xml-削除します: <remove name="right"/> ステップ3-XMLファイルにコンテンツを追加する キャッシュをクリアしてページを更新すると、デフォルトの右側の列のコンテンツが表示されます。そのため、そこから次の行(から借用app/design/frontend/base/default/layout/checkout.xml)をカスタムモジュールxmlファイルに追加すると、再び空白が表示されます。 <reference name="right"> <action method="unsetChildren"></action> <block type="page/html_wrapper" name="checkout.progress.wrapper" translate="label"> <label>Checkout Progress Wrapper</label> <action method="setElementId"><value>checkout-progress-wrapper</value></action> <block type="checkout/onepage_progress" name="checkout.progress" before="-" template="checkout/onepage/progress.phtml"/> </block> </reference> カスタムテンプレートを使用して行うことができるため、これがその列のコンテンツを取得する適切な方法であることを知っています。 <reference …

3
Magento 2 StoreManagerInterfaceはコンパイルのコンテキストオブジェクトに既に存在します
拡張機能でこのエラーが発生しています。 PackageName \ ModuleName \ Block \ Enhanced /var/www/html/app/code/PackageName/ModuleName/Block/Enhanced.phpのクラスPackageName \ ModuleName \ Block \ Enhancedの依存関係が正しくありません\ Magento \ Store \ Model \ StoreManagerInterfaceは既にコンテキストオブジェクト public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Catalog\Model\Session $catalogSession, \Magento\Store\Model\StoreManagerInterface $storeManager, array $data = [] ) { parent::__construct($context, $data); $this->_catalogSession = $catalogSession; $this->_storeManager = $storeManager; }

1
DIおよびMagento 2でのブロックの拡張
\ Magento \ Framework \ View \ Element \ Templateではないブロックを拡張しようとするたびに、Magento 2の依存関係の注入をブロックで把握するのに苦労しているようです。 Magento \ Theme \ Block \ Html \ Header \ Logoの非常に基本的なブロッククラスを拡張するブロックを作成したい-コンストラクトメソッド内で依存関係の注入を試みるまで、すべてが正常に機能します。 <?php namespace Creare\Test\Block\Header; class Logo extends \Magento\Theme\Block\Html\Header\Logo { protected $_creareHelper; public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Creare\Seo\Helper\Data $creareHelper, array $data = [] ) { $this->_creareHelper = $creareHelper; parent::__construct($context, $data); …

3
すでに書き換えられたクラスを書き換える方法は?
更新:実際に書き換える必要があるクラスはSMDesign_SMDZoom_Block_Product_View_Media、SMDesign_ColorswatchProductView_Block_Product_View_Media当初考えていたものではないことがわかりました。ただし、まったく同じ問題が引き続き適用されます。 SMDesign SMDZoom拡張機能は、ブロッククラス「catalog / product_view_media」を書き換えます。そのためのxmlは次のようになります。 <global> ... <blocks> <smdzoom> <class>SMDesign_SMDZoom_Block</class> </smdzoom> </blocks> <blocks> <catalog> <rewrite> <product_view_media>SMDesign_SMDZoom_Block_Product_View_Media</product_view_media> </rewrite> </catalog> </blocks> .... </global> このクラスをもう一度書き直したいと思います。このsmdzoomモジュールが書き換えているcatalog / product_view_mediaクラスを書き換えたいです。これはできますか?これを行うために私のモジュールではconfig xmlはどのように見えますか? 現在、これは私のモジュールinit xmlファイルです。 <config> <modules> <Goorin_SMDZoom> <active>true</active> <codePool>local</codePool> </Goorin_SMDZoom> <depends> <Mage_Catalog /> <SMDesign_SMDZoom /> </depends> </modules> </config> およびモジュールのconfig.xmlファイル: <global> <blocks> <gbismdzoom> <class>Goorin_SMDZoom_Block</class> </gbismdzoom> <catalog> <rewrite> <product_view_media>Goorin_SMDZoom_Block_Product_View_Media</product_view_media> …

2
外部で使用するためにMagentoルーティングの外でブロックをロード/取得する
外部Webページがあり、Magentoフレームワークからサイトヘッダーブロックを取得して、この外部ページのヘッダーとして使用しようとしています。これは私がこれまでに持っているものです: // initialize Magento $rootPath = dirname(dirname(__FILE__)); $mageInc = $rootPath . "/app/Mage.php"; include_once $mageInc; Mage::app('admin')->setCurrentStore(0); $headerBlock = Mage::app()->getLayout()->createBlock('page/html_header'); //also tried //$headerBlock = Mage::app()->getLayout()->createBlock('page/html_header', 'header'); ただし、そこで実行は停止し、エラーメッセージは表示されません。私の目標はblockをプルすることですMage_Page_Block_Html_Header。これを使用し<block type="page/html_header" name="header" as="header">て、page.xmlレイアウトファイルからすべてのコンテンツをロードできます。そのXMLタグは内側にラップされています <default translate="label" module="page"> <block type="page/html" name="root" output="toHtml" template="page/1column.phtml"> タグなので、どういうわけか指定する必要がありますか?私は何を間違えているのか、ここからどこへ行くのかわかりません

2
.phtmlファイルを無駄のないきれいな状態に保つ方法
そのファイル拡張子が示唆するように、.phtmlファイルはPHPコードをHTMLと混合することを可能にします。ただし、あなたがワイルドになるライセンスとして見られるべきではないという事実。 多くの.phtmlファイルが多くのPHPでいっぱいになっているのはなぜですか?そして、.phtmlファイル内のPHPの量を減らすための良いアプローチは何ですか?
14 php  blocks  template  phtml 

4
非オブジェクトのsetSaveParametersInSession()
私は得ています setSaveParametersInSession() on a non-object 管理モジュール上にあり、パスは Training/Distributor/Block/Adminhtml/ このフォルダに私は持っています Distributor/Grid.php そして Distributor.php class Training_Distributor_Block_Adminhtml_Distributor extends Mage_Adminhtml_Block_Widget_Grid_Container { /** * my understanding: * $this->_blockGroup . '/' . $this->_controller . '_grid' * i.e. training_distributor/adminhtml_distributor_grid */ public function _construct() { $this->_blockGroup = 'training_distributor'; $this->_controller = 'adminhtml_distributor'; $this->_headerText = $this->__('List Distributors'); $this->_addButtonLabel = $this->__('Add Distributor'); …
14 adminhtml  blocks 


4
v2.1でブロックをオーバーライドする方法
Magento 2.1のTopmenuブロックをオーバーライドしようとしていますが、そのためのガイドが見つかりません。私がここや他の場所で見つけたものはすべて、異なるフォルダ構造を使用しているように見えるバージョン2.0にのみ適用されるようです。 カスタムテーマの現在のフォルダー構造はapp/design/frontend/Vendor/theme_nameです。この中に、登録、テーマ、および作曲家のファイルと、さまざまなモジュールのフォルダー(例:Magento_Themeおよび)がありMagento_Searchます。 私が理解していることetc/di.xmlから、ここから編集された以下のようなファイルで始める必要があります: <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <preference for="Magento\Theme\Block\Html\Topmenu" type="[Namespace]\[Module]\Block\Html\Topmenu" /> </config> 私はまた、次のステップがBlock/Html/Topmenu.php以下のようなファイルを追加することであることも理解しています(再び上記のソースから編集): namespace [Namespace]\[Module]\Block\Html; class Topmenu extends \Magento\Theme\Block\Html\Topmenu { protected function _addSubMenu($child, $childLevel, $childrenWrapClass, $limit) { } } しかし、それは私がのために使うべきものを私に明らかではない[Namespace]と[Module]、あるいはどここれらのファイルを配置します。私は、ベンダーとテーマ名を使用してみました、と置いてきたetcとBlockのフォルダをapp/design/frontend/Vendor/theme_name、同様にそれらを置くことapp/design/frontend/Vendor/theme_name/Magento_Theme、に名前空間を修正Vendor\theme_name\Magento_Theme\Block\Htmlしますが、効果がありませんどちらも。 バージョン2.1でTopmenuブロックをオーバーライドするために(および他のブロックを推論するために)私が何をする必要があるかを正確に説明できる人がいれば幸いです。 補遺 Khoa TruongDinhの回答を試みましたが、影響はありませんでした。次のファイルを使用しました。 app/code/Vendor/MagentoTheme/Block/Html/Topmenu.php <?php namespace Vendor\MagentoTheme\Block\Html; class Topmenu extends \Magento\Theme\Block\Html\Topmenu { protected function _addSubMenu($child, $childLevel, $childrenWrapClass, …

4
Magento 2:構成設定に応じてブロックを削除
特定の構成フラグがに設定されてtrueいる場合にのみ、特定のページ(フロントエンドまたはバックエンド)からブロックを削除しようとしています。 例を見てみましょう。管理ダッシュボードから 名前dashboardを持つブロックを削除したい。 ブロックはモジュールのadminhtml_dashboard_index.xmlファイルで定義されますMagento_Backend: <referenceContainer name="content"> <block class="Magento\Backend\Block\Dashboard" name="dashboard"/> </referenceContainer> アダムの答えのおかげで、私はこれをadminhtml_dashboard_index.xml <body> <referenceBlock name="dashboard" remove="true" /> </body> しかし、パスdashboard/settings/removeを使用した構成設定に値がある場合にのみ、ノッチを取り、このブロックを削除します1。 レイアウトxmlアプローチは素晴らしいでしょうが、オブザーバーアプローチも取ります。


3
local.xmlを介して製品リストからツールバーを削除します
レイアウトの更新にlocal.xmlを使用することに慣れていますが、removeまたはunsetChildメソッドを使用して製品リストブロックからツールバーを削除することはできません。 これが実際に不可能な場合、または私が何か間違ったことをしている場合、誰でも言うことができますか? 私が試してみました: <action method="unsetChild"> <alias>toolbar</alias> </action> そして <action method="unsetChild"> <alias>product_list_toolbar</alias> </action> また、<remove name="" />メソッドもありますが、何も機能しません。
13 layout  blocks 

3
Magento 2で仮想タイプクラスをオーバーライドする方法
Magento 2でVirtualTypeブロックをオーバーライドする方法、次の仮想タイプブロックを独自のブロックでオーバーライドしたい <virtualType name="Magento\CatalogSearch\Block\SearchResult\ListProduct" type="Magento\Catalog\Block\Product\ListProduct"> <arguments> <argument name="catalogLayer" xsi:type="object">Magento\Catalog\Model\Layer\Search</argument> </arguments> </virtualType> だから私はdi.xmlこのように私のカスタムモジュールからそれをオーバーライドしようとしました、 <preference for="Magento\Catalog\Block\Product\ListProduct" type="My\Vendor\Block\Product\ListProductSearch" /> しかし、それは機能しません。 だから、Magento 2で仮想タイプクラスをオーバーライドする適切な方法は何ですか?

3
Magento 2成功ページで注文合計を取得しますか?
magento 2の成功ページで注文合計を取得しようとしていますが、このコードを追加しました <?php $order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId()); $totall = $order->getGrandTotal(); ?> しかし、注文後に成功ページに到達するとエラーが発生します。コードはmagento 1で機能しますが、2では機能しないと思います。これをmagento 2でも機能させるにはどうすればよいですか?

2
ブロックを他のコンテナに移動する方法
初めてなので、サインインとストアスイッチャーをからheader.panelに移動するための回避策を探していheader.containerます。私はこのコードを試したところ、うまくいきません <referenceContainer name="header.container"> <referenceBlock class="Magento\Store\Block\Switcher" name="store.settings.language" template="switch/languages.phtml"> </referenceBlock> </referenceContainer>

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