0

Magento では、できればまったく新しいモジュールを作成せずに、既存のモジュールのレイアウトを自分のテンプレートにロードするにはどうすればよいですか?

例: 「ユーザー アカウント ダッシュボード」レイアウトを読み込みたいが、デフォルトとは別に外観を制御できるように読み込みたい。

構造は次のとおりです。

  1. URL「ポータル」で CMS ページを作成しました。したがって、ナビゲーションは「http://website.com/portal」です。

  2. CMS ページは「include()」を使用して「/root/portal/portal.php」をロードします。ここで、Mage_Page_Block_Html を拡張するクラスを定義します。

  3. 次に、既存のダッシュボード レイアウトからダッシュボードにロードする関数「renderDashboard()」を追加しました。

  4. テンプレートとして使用するために、「/app/base/default/customer/account/dashboard.phtml」を「/root/portal/content/dashboard.phtml」にコピーしました。「dashboard.phtml」内で、「$this」オブジェクトを以前の「dashboard.phtml」とまったく同じように機能させたい

"/root/portal/portal.php"

class Portal_Block extends Mage_Page_Block_Html 
{
    public function renderDashboard()
    {
        $layout = Mage::getSingleton('core/layout');

        //Load existing "customer/account_dashboard" block into my own "dashboard.phtml"
        $block = $layout->createBlock('customer/account_dashboard')->setTemplate('/root/portal/content/dashboard.phtml');

        //Need to now add it
        //$block->renderLayout(); 
    }
}

これが不可能な場合は、ポータルのアカウント ダッシュボード モジュール全体を書き直す必要があります。

4

1 に答える 1