質問
別のページに誘導する代わりに、製品のポップアップウィンドウを作成します。私は基本的に別のモデルとブロックを作成する必要なしに私のニーズを変更するために、基本的に製品ビューテンプレートのコピーを作成するための最善の方法についてのアドバイスを探しています。私はバージョン1.3.2.2を使用しています。何かが重要なことを必要かどうか私に知らせてください。
私はこれを行うモジュールがあることに気づいていますが、私は自分でやりたいです。部分的に学習のために。
解決
一般的なアプローチとして、JavaScriptを使用して製品ページのリンクを変更してポップアップで開くことができます(Ajaxレイヤまたは「実際のポップアップ」を意味する場合はクリアではありません。たとえば、ユーザーの多くのユーザーのブラウザはブロックします)。次に、レイアウトXMLファイルを変更して、必要なブロックを追加または削除します。
通常のページとホバリングされた「レイヤ」の両方を持ち、新しいコントローラを作成し、カタログビューレイアウトから継承している(IIRC、$this->loadLayout('catalog_product_view')
)。その後、もう一度、必要に応じて追加および削除するためにレイアウトタグのレイアウトを変更して削除します。
他のヒント
ジョセフの答えは私にはかなり明確ではなかったが、これは私がしたことです。ProductControllerを拡張する新しいコントローラを使用して、ポップアップ用の新しいモジュールを作成しました。私は視聴のコピーを作り、それを私の新しいコントローラの義務に変更しました。
その後、Catalog.xmlのコピーを作成し、Myモジュールに従って名前を変更しました。その後、Product Viewページに関連しないEverytingを削除しました。ビューテンプレートのコピーを作成し、テンプレートとしてXMLレイアウトに設定しました。それから、XMLレイアウトまたは新しいビューテンプレートのいずれかで必要な変更を加えました。
$this->loadLayout('catalog_product_view')
が私のために働くことができませんでした。