バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 管理ページ 商品検索 並び順

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
IPLOGIC
投稿日時: 2015/2/9 20:17
対応状況: −−−
一人前
登録日: 2014/12/8
居住地: 東京都
投稿: 96
Re: 管理ページ 商品検索 並び順
dondon 様

簡易的ですが、試しに価格順で表示させるプログラムを書いてみました。

data/Smarty/templates/admin/products/index.tplの検索条件設定テーブルに以下を追記
        <tr>
            <th>並び順</th>
            <td colspan="3">
                <!--{assign var=key value="search_sort_products"}-->
                <span class="attention"><!--{$arrErr[$key]|h}--></span>
                <input type="checkbox" name="<!--{$key}-->" value="1" >安い順
            </td>
        </tr>


data/class/pages/admin/products/LC_Page_Admin_Products.phpの128行目あたりからのプログラムを

                if (count($this->arrErr) == 0) {
                    $where = 'del_flg = 0';
                    $arrWhereVal = array();
                    $sort = NULL;
                    foreach ($arrParam as $key => $val) {
                        if ($val == '') {
                            continue;
                        }
                        $this->buildQuery($key, $where, $arrWhereVal, $objFormParam, $objDb);
                        if ($key == "search_sort_products") {
                            $sort = 'price02_min ASC';
                        }
                    }
                    if ($sort) {
                        $order = $sort;
                    } else {
                        $order = 'update_date DESC';
                    }


に改修

さらに212行目付近にあるメソッドlfInitParamに

$objFormParam->addParam('並び順', 'search_sort_products', INT_LEN, 'n', array('MAX_LENGTH_CHECK'));


を追記

あくまで一例です。参考までにお考え下さい。


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

dondon
投稿日時: 2015/2/10 11:46
対応状況: −−−
一人前
登録日: 2012/2/23
居住地:
投稿: 136
Re: 管理ページ 商品検索 並び順
IPLOGIC様

ご迷惑おかけし申し訳ございません。
本当にありがとうございます。
やってみたところ、下記のエラーが出るのですが単純に記述箇所のミスでしょうか。
ご指導頂けたら幸いです。



▼▼▼ デバッグ情報ここから ▼▼▼
http://○○○○○.com/admin/products/??

SERVER_ADDR: 211.1.229.66
REMOTE_ADDR: 133.208.250.178
USER_AGENT: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36

/home/○○○○○-com/public_html/admin/products/index.php 34:LC_Page_Admin_Products_Ex->process
/home/○○○○○-com/public_html/data/class_extends/page_extends/admin/products/LC_Page_Admin_Products_Ex.php 56:LC_Page_Admin_Products->process
/home/○○○○○-com/public_html/data/class/pages/admin/products/LC_Page_Admin_Products.php 81:LC_Page_Admin_Products->action
/home/○○○○○-com/public_html/data/class/pages/admin/products/LC_Page_Admin_Products.php 161:LC_Page_Admin_Products->getNumberOfLines
/home/○○○○○-com/public_html/data/class/pages/admin/products/LC_Page_Admin_Products.php 400:SC_Query->count
/home/○○○○○-com/public_html/data/class/SC_Query.php 135:SC_Query->getOne
/home/○○○○○-com/public_html/data/class/SC_Query.php 606:SC_Query->execute
/home/○○○○○-com/public_html/data/class/SC_Query.php 909:trigger_error
▼▼▼ エラーメッセージ ▼▼▼
https://○○○○○.com/admin/products/?

SERVER_ADDR: 211.1.229.66
REMOTE_ADDR: 133.208.250.178
USER_AGENT: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36

SQL: PREPARE mdb2_statement_mysql_356008bb0d5f106b2f39359497faccf2d1081d142 FROM 'SELECT COUNT(*) FROM dtb_products WHERE del_flg = 0 AND ( name LIKE ? OR comment3 LIKE ?)'

PlaceHolder: NULL

MDB2 Error: not found

[Error message: Unable to bind to missing placeholder: 0]


/home/○○○○○-com/public_html/admin/products/index.php 34:LC_Page_Admin_Products_Ex->process
/home/○○○○○-com/public_html/data/class_extends/page_extends/admin/products/LC_Page_Admin_Products_Ex.php 56:LC_Page_Admin_Products->process
/home/○○○○○-com/public_html/data/class/pages/admin/products/LC_Page_Admin_Products.php 81:LC_Page_Admin_Products->action
/home/○○○○○-com/public_html/data/class/pages/admin/products/LC_Page_Admin_Products.php 161:LC_Page_Admin_Products->getNumberOfLines
/home/○○○○○-com/public_html/data/class/pages/admin/products/LC_Page_Admin_Products.php 400:SC_Query->count
/home/○○○○○-com/public_html/data/class/SC_Query.php 135:SC_Query->getOne
/home/○○○○○-com/public_html/data/class/SC_Query.php 606:SC_Query->execute
/home/○○○○○-com/public_html/data/class/SC_Query.php 894:MDB2_Statement_Common->execute
/home/○○○○○-com/public_html/data/module/MDB2.php 4152:MDB2_Statement_mysql->_execute
/home/○○○○○-com/public_html/data/module/MDB2/Driver/mysql.php 1618:MDB2_Driver_Common->raiseError
/home/○○○○○-com/public_html/data/module/MDB2.php 1497:PEAR->raiseError
/home/○○○○○-com/public_html/data/module/PEAR.php 557:MDB2_Error->MDB2_Error
/home/○○○○○-com/public_html/data/module/MDB2.php 1009:PEAR_Error->PEAR_Error
▲▲▲ エラーメッセージ ▲▲▲

▲▲▲ デバッグ情報ここまで ▲▲▲
○○○○○
yuh
投稿日時: 2015/2/10 11:58
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 管理ページ 商品検索 並び順
ソート部分とは別に商品名で検索したときに検索ワードでも検索できるようにカスタマイズしてませんか?
おそらくその部分のエラーと思います。
dondon
投稿日時: 2015/2/10 13:08
対応状況: −−−
一人前
登録日: 2012/2/23
居住地:
投稿: 136
Re: 管理ページ 商品検索 並び順
yuh様

はい!してます、、、

「検索ワードでも検索できるようにカスタマイズ」

と共存はできないモノなんでしょうか。
yuh
投稿日時: 2015/2/10 14:00
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 管理ページ 商品検索 並び順
「検索ワードでも検索できるようにカスタマイズ」の部分でエラーが起こっているので別の問題ですね。

ソートとは共存できると思いますよ。
dondon
投稿日時: 2015/2/10 14:15
対応状況: −−−
一人前
登録日: 2012/2/23
居住地:
投稿: 136
Re: 管理ページ 商品検索 並び順
yuh様

あ、、そうゆう事ですね、、。

並び替えのコードを入れなければ動作するんですが、

並び替えコードを入れた事によって

「検索ワードでも検索できるようにカスタマイズ」部分の欠陥が

明らかになったという事でしょうか。
yuh
投稿日時: 2015/2/10 14:25
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 管理ページ 商品検索 並び順
LC_Page_Admin_ProductsのbuildQueryで
case 'search_name':
の部分で
$arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key));
を一つしか設定してないと思うので、

$arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key));
$arrValues[] = sprintf('%%%s%%', $objFormParam->getValue($key));
このように変更すれば動くとは思いますが、元のソースを想像して書いてるので間違ってるかもしれないです。
dondon
投稿日時: 2015/2/10 14:36
対応状況: −−−
一人前
登録日: 2012/2/23
居住地:
投稿: 136
Re: 管理ページ 商品検索 並び順
yuh様

case 'search_name':部分は以下の様な感じなのですが、

もしかして、case 'search_product_code':の方に問題があったりしますか?


case 'search_name':
// 商品名をwhere文に
$name = $objFormParam->getValue($key);
$name = str_replace(",", "", $name);
// 全角スペースを半角スペースに変換
$name = str_replace(' ', ' ', $name);
// 全角英数を半角英数に変換 2015/1/28 IKEDA追記
$name = mb_convert_kana($name, "KVa");
// スペースでキーワードを分割
$names = preg_split("/ +/", $name);
// 分割したキーワードを一つずつwhere文に追加
foreach ($names as $val) {
if ( strlen($val) > 0 ) {
$where .= " AND ( name ILIKE ? OR comment3 ILIKE ?)";
$arrValues[] = sprintf('%%%s%%', $val);
$arrValues[] = sprintf('%%%s%%', $val);
}
}
break;
yuh
投稿日時: 2015/2/10 14:46
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 管理ページ 商品検索 並び順
引用:
SQL: PREPARE mdb2_statement_mysql_356008bb0d5f106b2f39359497faccf2d1081d142 FROM 'SELECT COUNT(*) FROM dtb_products WHERE del_flg = 0 AND ( name LIKE ? OR comment3 LIKE ?)'


エラーログがsearch_name部分なのでsearch_nameが問題ありそうです。

                if (count($this->arrErr) == 0) {
                    $where = 'del_flg = 0';
                    $arrWhereVal = array();
                    $sort = NULL;
                    foreach ($arrParam as $key => $val) {
                        if ($val == '') {
                            continue;
                        }
                        if ($key == "search_sort_products") {
                            $sort = 'price02_min ASC';
                        }else{
                            $this->buildQuery($key, $where, $arrWhereVal, $objFormParam, $objDb);
                        }
                    }
                    if ($sort) {
                        $order = $sort;
                    } else {
                        $order = 'update_date DESC';
                    }


こんな感じで試してみてください
dondon
投稿日時: 2015/2/10 15:04
対応状況: −−−
一人前
登録日: 2012/2/23
居住地:
投稿: 136
Re: 管理ページ 商品検索 並び順
yuh様

ありがとうございます。

ご指示頂いたコードに変更したところ、今度は以下のエラーになりました。
若干エラー文が変わった様ですが、、

SQL: PREPARE mdb2_statement_mysql_307e835f3cff0f490e7b09eb16cfbee54e02a9e76 FROM 'SELECT COUNT(*) FROM dtb_products WHERE del_flg = 0 AND ( name LIKE ? OR comment3 LIKE ?)'
« 1 (2) 3 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1305
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.