質問 > フロント機能 > 商品検索フォームの設置 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ゲスト |
投稿日時: 2007/8/16 0:11
対応状況: −−−
|
商品検索フォームの設置 EC CUBE には商品検索ブロックが用意されていますが、このブロック内ではなく、各ページの任意の場所に検索フォームを設置したいと考えています。
そこで search_products.tpl のフォーム部分の html をそのまま写したところ、検索自体は正常にできるのですが、カテゴリ選択のプルダウンリストにカテゴリが反映されませんでした。 この現象は同ページ内の商品検索ブロックの有無に関わらず起きています。 どうやら、<!--{html_options options=$arrCatList selected=$category_id}--> の部分が機能していないような感じなのですが、これを商品検索ブロック以外の場所で正常に機能させるには、どのようにすれば良いかお教えください。 よろしくお願いします。 |
|
ゲスト |
投稿日時: 2007/8/17 23:23
対応状況: −−−
|
Re: 商品検索フォームの設置 自己レスです。
勉強のための試行錯誤のひとつとして、require.php に frontparts/bloc/search_products.php の内容をそのまま付け加えてみたところ、ページ表示はメチャクチャになりましたが、ページの任意の場所に設置した検索フォームのカテゴリ選択プルダウンリストにカテゴリを反映すること自体は成功しました。 そこで search_products.php の中の一部分、特にテンプレートファイル読み込み部分だけを除外して require.php に付け加えれば、希望の動作が得られるのではないかと思い、様々なことを試してみたのですが、なかなかうまくいきませんでした(表示が崩れるか、プルダウンリストが機能しないかのどちらかになります)。 個人的な考えですが、<!--{html_options options=$arrCatList selected=$category_id}--> を機能させる PHP コードを require.php に付加すればどのページでも検索が機能できるのようになるのだろうと思うのですが、その具体的な方法が分かりません。 よろしければお知恵をお貸しください。よろしくお願いします。 |
|
drednote |
投稿日時: 2007/8/24 14:50
対応状況: −−−
|
常連 登録日: 2007/7/30 居住地: 滋賀 投稿: 41 |
Re: 商品検索フォームの設置 tpl中でPHP変数を使用する為、SC_SiteViewクラスのインスタンスに
目的の変数を設定する必要があるわけですが、SC_SiteViewクラスのインスタンスは 各ページの各パーツごとにばらばらで存在している為、結果的に 任意のページの任意の場所に検索を出す為にrequireに一文加えるだけ、 というのは実現不可能という事になるんじゃないかと思います。 SC_SiteViewを特定出来るならそのインスタンスに インスタンス->_smarty->assign($key, $value); で設定してやればそれで使えるんじゃないかと。 実際にはSC_SiteViewが特定出来る状況というのはそのパーツ部分のPHP内という 事になると思うんで、そうなるとLC_Pageの登録がある筈なんで assignobjする前にLC_Pageのインスタンスに変数を設定してやれば それで終わりになります。 |
ゲスト |
投稿日時: 2007/8/24 21:38
対応状況: −−−
|
Re: 商品検索フォームの設置 drednote さん、お返事ありがとうございます。
恥ずかしながら、おっしゃっている意味が高度すぎてさっぱり理解できません。しかしながら「やればできる」ということが分かっただけでも光明を見た思いです。 今から猛勉強して必ずや理解できるようになりたいと思いますので、今しばらくお時間をください。 成功できたら、また改めてお礼を申し上げに来ます。 まずはお礼かたがたお返事まで。 |
|
drednote |
投稿日時: 2007/8/24 22:37
対応状況: −−−
|
常連 登録日: 2007/7/30 居住地: 滋賀 投稿: 41 |
Re: 商品検索フォームの設置 噛み砕いて簡単に言うなら、
検索フォームをつけようとしているパーツの担当しているPHPを変更すれば 出来ますよ というだけの内容です。 上記が必要な理由をプログラマ視点で述べたに過ぎません。 尚、1ページ内においてもブロックやメインコンテンツ部分では 別PHPとなる場合があり、またメインコンテンツ部分でも商品詳細や 商品一覧画面でまたPHPが異なるので、夫々のPHP全てで同じ変更を 加える必要があります。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |