別のページに移動するのではなく、製品のポップアップ ウィンドウを作成したいと考えています。基本的に製品ビュー テンプレートのコピーを作成して、個別のモデルやブロックを作成することなく、ニーズに合わせて変更するための最良の方法についてアドバイスを求めています。バージョン 1.3.2.2 を使用しています。説明が必要な場合はお知らせください。
これを行うモジュールがあることは認識していますが、自分でやりたいと思います。一部は学習用です。
別のページに移動するのではなく、製品のポップアップ ウィンドウを作成したいと考えています。基本的に製品ビュー テンプレートのコピーを作成して、個別のモデルやブロックを作成することなく、ニーズに合わせて変更するための最良の方法についてアドバイスを求めています。バージョン 1.3.2.2 を使用しています。説明が必要な場合はお知らせください。
これを行うモジュールがあることは認識していますが、自分でやりたいと思います。一部は学習用です。
一般的なアプローチとして、Javascript を使用して製品ページのリンクを変更し、ポップアップで開くことができます (AJAX レイヤーを意味するのか、多くのユーザーのブラウザーがブロックする「実際の」ポップアップを意味するのかは明確ではありません)。次に、レイアウト XML ファイルを変更して、必要なブロックを追加または削除します。
通常のページとホバーされた「レイヤー」の両方が必要な場合は、新しいコントローラーを作成し、カタログ ビュー レイアウトから継承します (IIRC で$this->loadLayout('catalog_product_view')
実行する必要があります)。次に、レイアウト タグのレイアウトを変更して、必要に応じて追加および削除します。
ジョセフの答えは私にはよくわかりませんでしたが、これが私がしたことです。ProductController を拡張した新しいコントローラーを使用して、ポップアップ用の新しいモジュールを作成しました。viewAction のコピーを作成し、新しいコントローラーで popupAction に名前を変更しました。
次に、catalog.xml のコピーを作成し、モジュールに従って名前を変更しました。その後、商品一覧ページに関係のないものはすべて削除。ビュー テンプレートのコピーを作成し、それを xml レイアウトのテンプレートとして設定しました。次に、xml レイアウトまたは新しいビュー テンプレート内で必要な変更を行いました。
私は私のために働くことができませんでし$this->loadLayout('catalog_product_view')
た。