2017-11-11 2 views
1

でifconfigコマンドを追加したいですMagentoの2:私は、私は私のファイルに</p> <p>ベンダー Magentoのモジュールチェックアウトビューフロントエンドの success.phtml</p> <p>からPHTMLファイルとブロックを上書きしようとしたオーバーライドブロックXML

アプリは\ code \カスタム\モジュール\ビュー\フロントエンド\チェックアウト\ success.phtml

とxmlファイルはcheckout_onepage_success.xmlある

<referenceBlock name="checkout.success"> 
     <action method="setTemplate" ifconfig="custom_general/general/active"> 
      <argument name="template" xsi:type="string">Custom_Module::checkout/success.phtml</argument> 
     </action> 
</referenceBlock> 

私は設定から​​モジュールを有効にして、私のブロックとphtmlファイルで実行します。

モジュールを無効にしてから、デフォルトファイルを実行してブロックします。

しかし、デフォルトのファイルとブロックは、設定からモジュールを無効にすると実行されません。

この問題を解決して解決してください。

ありがとうございます。

答えて

0

configに値がtrueの場合にのみテンプレートが表示され、else条件として機能しません。

問題を解決するために、ヘルパー関数を作成し、ヘルパーメソッドで条件を追加することをお勧めします。

このような何か:

<?php 

namespace Custom\Module\Helper; 

class Data extends \Magento\Framework\App\Helper\AbstractHelper 
{ 
    protected $_request; 

    public function __construct 
    (
     \Magento\Framework\App\Request\Http $request 
    ) { 
     $this->_request = $request; 
    } 

    public function getTemplate() 
    { 
     if ($this->_scopeConfig->isSetFlag('custom_general/general/active')) { 
      $template = 'Custom_Module::checkout/success.phtml'; 
     } else { 
      $template = 'Vendor_Module::checkout/success.phtml'; 
     } 

     return $template; 
    } 
} 

その後、レイアウト の代わりに、それは私のために働いているリプレイ ため、この

<referenceBlock name="checkout.success"> 
    <action method="setTemplate"> 
     <argument name="template" xsi:type="helper" helper="Custom\Module\Helper\Data::getTemplate"></argument> 
    </action> 
</referenceBlock> 
+0

のおかげで、あなたのブロックが含まれます –

関連する問題

 関連する問題