バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 2.12系 お気に入り、表示順変更、検索ができない

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
acidorange
投稿日時: 2015/2/10 9:42
対応状況: −−−
半人前
登録日: 2015/2/9
居住地:
投稿: 12
2.12系 お気に入り、表示順変更、検索ができない
------------------------------------------
EC-CUBEバージョン 2.12.6
PHPバージョン PHP 5.2.17
DBバージョン MySQL 5.5.38
------------------------------------------

現在、上記環境にて、カスタマイズを行っていますが、
・お気に入りが効かない
・表示順/表示件数が変わらない
・商品検索がかからない
など、多くの機能が働かない状態です。

どなたかのお知恵をお借りできれば幸いです。
IPLOGIC
投稿日時: 2015/2/12 21:00
対応状況: −−−
一人前
登録日: 2014/12/8
居住地: 東京都
投稿: 96
Re: 2.12系 お気に入り、表示順変更、検索ができない
acidorange 様

いくつか確認させていただきたいのですが、

>・お気に入りが効かない
商品詳細(カート投入画面)でのお気に入りボタンがそもそも押せない

>・表示順/表示件数が変わらない
商品一覧(products/list.php)の並び替えリンクを押すと、POSTはされるが表示の仕方は変わらない

>・商品検索がかからない
商品名を入力しても検索が0件になる

ということでしょうか?

具体的な不具合の症状をお教え頂けますでしょうか。


----------------
アイピーロジック株式会社
EC-CUBE専用メール配信サービス「PostCarrier for EC-CUBE」
[url=http://www.rakusite.net/]EC-CUBE専用サイト保守監視サービス「らくらくサイト保守

acidorange
投稿日時: 2015/2/12 21:50
対応状況: −−−
半人前
登録日: 2015/2/9
居住地:
投稿: 12
Re: 2.12系 お気に入り、表示順変更、検索ができない
IPLOGIC様

ご返信ありがとうございます。
不具合の詳細な症状をお伝えいたします。

>・お気に入りが効かない
ボタンを押下はできていますが、
画面表示では、何らの変化も起きない状態です。
システムエラー画面にも遷移致しません。
この機能に関しては、カスタマイズは一切おこなっていません。

>・表示順/表示件数が変わらない
カスタマイズを入れている部分です。
○○順を押下すると、POSTは行われ、LC_Page_Products_List.phpまで、
到達しておりますが、商品一覧は何らの変化も起きない状態です。
表示件数についても同様です。
挙動を見ている様子ですと、
----------------------------
$this->arrForm['orderby'];
----------------------------
ここで、値が渡ってきていないように見受けられます。

>・商品検索がかからない
カスタマイズを入れている部分です。
検索条件を入力し、検索ボタンを押下しますと、
検索ワードは一覧上部に表示されますが、
商品一覧はデフォルトの1200件以上の商品がヒットしてしまいます。
カテゴリの検索は働きます。
カスタマイズの仕様としては、
3種類以上の複数の条件での検索を意図しています。

何か思い当たる、カスタマイズの不手際などありましたら、
ご教授いただけましたら、幸いです。
yuh
投稿日時: 2015/2/12 22:41
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 2.12系 お気に入り、表示順変更、検索ができない
テンプレートの
<input type="hidden" name="orderby" value="<!--{$orderby|h}-->" />
を削除してませんか?
acidorange
投稿日時: 2015/2/12 22:47
対応状況: −−−
半人前
登録日: 2015/2/9
居住地:
投稿: 12
Re: 2.12系 お気に入り、表示順変更、検索ができない
yuh様

ご返信ありがとうございます。

ご指摘の点は、どう考えても必要な箇所ですので、
まったく触っていません。

何かほかにお気づきの点ありますでしょうか?
yuh
投稿日時: 2015/2/12 22:53
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 2.12系 お気に入り、表示順変更、検索ができない
orderbyは想像つきませんが、結構やらかしがちなミスとして

$searchCondition['where'] .= 〜〜〜〜

$searchCondition['where'] = 〜〜〜〜

と書いてしまって条件が消えるというのは多いですね

実際詳細に調べるのであればソースが無いとどうしても想像でしか答えれないです・・・。
acidorange
投稿日時: 2015/2/12 23:13
対応状況: −−−
半人前
登録日: 2015/2/9
居住地:
投稿: 12
Re: 2.12系 お気に入り、表示順変更、検索ができない
yuh様

詳細にご覧いただきたいので、
ロジックを載せます。

whereの上書きでもないように見受けられますが...。
---------------------------------------------------
/**
* 表示用検索条件の設定
*
* @return array
*/
function lfGetSearchConditionDisp($arrSearchData) {
$objQuery =& SC_Query_Ex::getSingletonInstance();
$arrSearch = array('category' => '指定なし', 'maker' => '指定なし', 'name1' => '指定なし', 'name2' => '指定なし', 'name3' => '指定なし');
// カテゴリ検索条件
if ($arrSearchData['category_id'] > 0) {
$arrSearch['category'] = $objQuery->get('category_name', 'dtb_category', 'category_id = ?', array($arrSearchData['category_id']));
}

// メーカー検索条件
if (strlen($arrSearchData['maker_id']) > 0) {
$arrSearch['maker'] = $objQuery->get('name', 'dtb_maker', 'maker_id = ?', array($arrSearchData['maker_id']));
}

// 商品名検索条件
if (strlen($arrSearchData['name1']) > 0) {
$arrSearch['name1'] = $arrSearchData['name1'];
}
if (strlen($arrSearchData['name2']) > 0) {
$arrSearch['name2'] = $arrSearchData['name2'];
}
if (strlen($arrSearchData['name3']) > 0) {
$arrSearch['name3'] = $arrSearchData['name3'];
}

return $arrSearch;
}
---------------------------------------------------
/**
* 該当件数の取得
*
* @return int
*/
function lfGetProductAllNum($searchCondition) {
// 検索結果対象となる商品の数を取得
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->setWhere($searchCondition['where_for_count']);
$objProduct = new SC_Product_Ex();
return $objProduct->findProductCount($objQuery, $searchCondition['arrval']);
}

/**
* 検索条件のwhere文とかを取得
*
* @return array
*/
function lfGetSearchCondition($arrSearchData) {
$searchCondition = array(
'where' => '',
'arrval' => array(),
'where_category' => '',
'arrvalCategory' => array()
);

// カテゴリからのWHERE文字列取得
if ($arrSearchData['category_id'] != 0) {
list($searchCondition['where_category'], $searchCondition['arrvalCategory']) = SC_Helper_DB_Ex::sfGetCatWhere($arrSearchData['category_id']);
}
// ▼対象商品IDの抽出
// 商品検索条件の作成(未削除、表示)
$searchCondition['where'] = 'alldtl.del_flg = 0 AND alldtl.status = 1 ';

if (strlen($searchCondition['where_category']) >= 1) {
$searchCondition['where'] .= ' AND EXISTS (SELECT * FROM dtb_product_categories WHERE ' . $searchCondition['where_category'] . ' AND product_id = alldtl.product_id)';
$searchCondition['arrval'] = array_merge($searchCondition['arrval'], $searchCondition['arrvalCategory']);
}

// 条件1をwhere文に
$name1 = $arrSearchData['name1'];
$name1 = str_replace(',', '', $name1);
// 全角スペースを半角スペースに変換
$name1 = str_replace(' ', ' ', $name1);
// スペースでキーワードを分割
$names1 = preg_split('/ +/', $name1);
// 分割したキーワードを一つずつwhere文に追加
foreach ($names1 as $val1) {
if (strlen($val) > 0) {
$searchCondition['where'] .= ' AND ( alldtl.条件1 ILIKE ? OR alldtl.comment3 ILIKE ?) ';
$searchCondition['arrval'][] = "%$val1%";
$searchCondition['arrval'][] = "%$val1%";
}
}

// 条件2をwhere文に
$name2 = $arrSearchData['name2'];
$name2 = str_replace(',', '', $name2);
// 全角スペースを半角スペースに変換
$name2 = str_replace(' ', ' ', $name2);
// スペースでキーワードを分割
$names2 = preg_split('/ +/', $name2);
// 分割したキーワードを一つずつwhere文に追加
foreach ($names2 as $val2) {
if (strlen($val) > 0) {
$searchCondition['where'] .= ' AND ( alldtl.条件2 ILIKE ? OR alldtl.comment3 ILIKE ?) ';
$searchCondition['arrval'][] = "%$val2%";
$searchCondition['arrval'][] = "%$val2%";
}
}

// 条件3をwhere文に
$name3 = $arrSearchData['name3'];
$name3 = str_replace(',', '', $name3);
// 全角スペースを半角スペースに変換
$name3 = str_replace(' ', ' ', $name3);
// スペースでキーワードを分割
$names3 = preg_split('/ +/', $name3);
// 分割したキーワードを一つずつwhere文に追加
foreach ($names3 as $val3) {
if (strlen($val) > 0) {
$searchCondition['where'] .= ' AND ( alldtl.条件3 ILIKE ? OR alldtl.comment3 ILIKE ?) ';
$searchCondition['arrval'][] = "%$val3%";
$searchCondition['arrval'][] = "%$val3%";
}
}

// メーカーらのWHERE文字列取得
if ($arrSearchData['maker_id']) {
$searchCondition['where'] .= ' AND alldtl.maker_id = ? ';
$searchCondition['arrval'][] = $arrSearchData['maker_id'];
}

$searchCondition['where_for_count'] = $searchCondition['where'];

// 在庫無し商品の非表示
if (NOSTOCK_HIDDEN) {
$searchCondition['where'] .= ' AND EXISTS(SELECT * FROM dtb_products_class WHERE product_id = alldtl.product_id AND del_flg = 0 AND (stock >= 1 OR stock_unlimited = 1))';
$searchCondition['where_for_count'] .= ' AND EXISTS(SELECT * FROM dtb_products_class WHERE product_id = alldtl.product_id AND del_flg = 0 AND (stock >= 1 OR stock_unlimited = 1))';
}

return $searchCondition;
}
---------------------------------------------------

いかがでしょうか...?
yuh
投稿日時: 2015/2/12 23:29
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 2.12系 お気に入り、表示順変更、検索ができない
ぱっとわかる範囲で

キーワードでの検索自体はnameという名前ですが、書かれているのは
name1なのでそもそも条件に引っかからなくなってます。
actionの
$this->arrSearchData = array(
'category_id' => $this->lfGetCategoryId(intval($this->arrForm['category_id'])),
'maker_id' => intval($this->arrForm['maker_id']),
'name' => $this->arrForm['name']
);
の部分に
name1
name2
name3
を追加してください。
その部分に追加してないので、
lfGetSearchConditionDisp($arrSearchData) に対してname1〜3が渡されずに処理が行われている為、うまく動いてないんだと思います。


acidorange
投稿日時: 2015/2/12 23:55
対応状況: −−−
半人前
登録日: 2015/2/9
居住地:
投稿: 12
Re: 2.12系 お気に入り、表示順変更、検索ができない
yuh様

ご指摘の点、修正し、
Smartyのfrontparts/search_productsも併せて修正したところ、
システムエラー画面に遷移致しました。

何か修正を取りこぼしている点、ありますでしょうか?
質問ばかりで申し訳ありません。

POSTはされているようです。
URL:〜mode=search&category_id=&name1=&name2=&name3=白
yuh
投稿日時: 2015/2/13 0:13
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 2.12系 お気に入り、表示順変更、検索ができない
エラーログをお願いします。

一応修正する部分はLC_Page_Products_Listの方だと思います
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,037名です
総投稿数は110,020件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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