2011-11-15 8 views
1

私は自分のウェブサイトに静的CMSページを持っています。プライベートポリシー、Mony Back Guranteeなど。私はこれらのページがヘッダー、フッター、サイドバーを含む標準レイアウトで開かれるウェブサイトのフッターに配置しました。Magento setTemplate実行時/プログラムで

私はこれらのリンクを自分の製品にアイコンとして配置したいページを開きますが、新しいウィンドウで開く必要はありません。私はこれのためのfancybox/thickboxを好むが、私はページコンテンツが表示され、ヘッダ、フッタ、サイドバーなどは表示されないようにしたい。要するに、これらのCMSページの空のテンプレートは、製品ページにあるリンクからのみ設定したいと考えています。

誰でも私にこれを達成するための最良の方法を教えていただけますか?

答えて

1

バックエンドのCMS編集ページで[デザイン]タブを使用すると、使用するテンプレートを「上書き」することができます。ドロップダウンから「レイアウト」を選択して、そのページのみに適用できます。新しいレイアウトを追加するための2つのアプローチがありますが、一つは、あなたのモジュールのレイアウトXMLでのように1つの何かを定義して、独自のモジュールを構築することです

<new_layout translate="label" module="page"> 
    <label>My New Layout</label> 
    <block type="page/html" name="root" output="toHtml" template="page/new-layout.phtml"> 
</new_layout> 

他の選択肢はのpage.xmlにこれを追加するだけですあなたのテンプレートのレイアウトファイル(そしてテンプレートフォルダで使いたいnew-layout.phtml)で、これはページ間でブロックを編集するだけでも面倒ですが、単純な方法です。

このコードはすべてテストされておらず、メモリから書かれていますが、必要なものに非常に近いはずです。

アラン

+0

アラン、返事ありがとうございます。 – Farrukh

+0

問題ありません、私を投票してください:-) –

+0

アラン、私は完全にそれを理解していませんでしたが、返信ありがとうございます。私はそれをうまく説明していないと思う。私はそれをもう少し明確にしましょう。 2列のレイアウトをセットアップしてあり、通常のページビューではうまく動作します。 フッター以外のリンクからクリックすると、空のレイアウトで同じページを開くことができます。すなわち フッターには正常に動作する通常のページが表示されます。 他のリンクでは、同じページを空のレイアウトで開く必要があります。何かのように Farrukh

0

これはのみ

魔道士/ページ/ヘルパーに行くCMSのページです/ layput.php

変更: -

public function applyHandle($pageLayout){  

    $pageLayout = $this->_getConfig()->getPageLayout($pageLayout); 

    if(isset('emptylayout')) { 
      $pageLayout->setCode('empty'); 
      $pageLayout->setTemplate('page/empty.phtml'); // this will work 
      $pageLayout->setLayoutHandle('empty'); 

     } 
      . 
      . 
      . 

    } 

// jqueryのコード

jQuery('.f-left li a').click(function(e){ 
      e.preventDefault();       

      var url=jQuery(this).attr('href')+'?emptylayout'; 

      var data= '<iframe width="100%" height="550" frameborder="0" src="'+url+'"></iframe>'; 
      jQuery('#mask').html(data); 
      jQuery.fancybox({ 
        'href': '#mask', 
        'afterClose': function() { 
             jQuery('#mask').html(''); 

             }, 
        }); 

}); 
関連する問題