バージョン選択

フォーラム

メニュー

オンライン状況

33 人のユーザが現在オンラインです。 (8 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 33
もっと...

サイト内検索

質問 > フロント機能 > 商品検索フォームの設置

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 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全てで同じ変更を
加える必要があります。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン

右上バナー


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は73,739名です
総投稿数は102,973件です

投稿数ランキング

1
seasoft
7333
2
468
3132
3
AMUAMU
2712
4
nanasess
2192
5
umebius
2042
6
yuh
1664
7
red
1456
8
h_tanaka
1169
9
tsuji
942
10
fukap
907
11
shutta
835
12
tao_s
794
13 ramrun 789
14 karin 689
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.