バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > フロント機能 > 商品一覧

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
AMUAMU
投稿日時: 2009/7/27 14:37
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: 商品一覧
引用:
ramrunさんは書きました:
ええと、もともと正式に用意されている機能を私が潰したみたいに聞こえるのですが...(汗)。 いや、そのとおりかもしれませんが...


いや、そういうつもりでも(汗
個人的には、可能な限り適切な表示をする派なだけです(苦笑

ただ気になっているのは、ほとんど同じ処理を2回通しているという点と
「list.php?category_id= → 全リスト」は環境によっては「list.php?」と同値になる場合があるっていう点で、
これらはリファクタリングレベルに近い話なので、あくまでも今後の検討課題としてですね

※実際、全リストを一切出さず、あえて制限を掛けるカスタマイズとかも経験があるので一概に言えないですからね


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

ramrun
投稿日時: 2009/7/27 14:16
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: 商品一覧
引用:
不具合修正以外で動いていた物を動かなくするというのは既存利用している人のテンプレート資産に対して微妙かな

ええと、もともと正式に用意されている機能を私が潰したみたいに聞こえるのですが...(汗)。 いや、そのとおりかもしれませんが...

リンク先をあらためて引用します。 現在は下記のとおりです。
引用:
一応、現状のpc用list.phpは実質CATEGORY_NOT_FOUNDにならないので、
 list.php → CATEGORY_NOT_FOUND(mobileでは全リスト)
 list.php?category_id= → 全リスト(検索で使っている)
 list.php?category_id=0 → 全リスト(一応キープ)
 list.php?category_id=1 → カテゴリ1の商品
 list.php?category_id=01 → CATEGORY_NOT_FOUND(0詰め無効)
 list.php?category_id=hoge → CATEGORY_NOT_FOUND
としました。


で、変更する前は
引用:
 list.php → 全リスト
 list.php?category_id= → 全リスト
 list.php?category_id=0 → エラー(正式版のバグ)
 list.php?category_id=1 → カテゴリ1の商品
 list.php?category_id=01 → カテゴリ1の商品
 list.php?category_id=hoge → 全リスト
 list.php?hoge=fuga → 全リスト

です。

ですので、チェックなどしていないに等しい... というか何でも許容しているのが現在の正式版となります。

AMUAMUさんが先に指摘している下記
引用:
その前の
引用:
if (!defined('MOBILE_SITE') && !isset($_REQUEST['category_id']))
SC_Utils_Ex::sfDispSiteError(CATEGORY_NOT_FOUND);

が余計なのかも。

が当該部分となりますので、削除すればlist.phpにパラメータ無しで全リストとなります。

ちなみに全商品リストに対してサーバーの負荷を心配するよりも「頻繁にアクセスされたい」とか「検索エンジンにクロールされたい」とか思う人が多いのでしたら、その部分を削除してよいかと思います。

追記:
一応、このチェンジセット 18142の目的は、複製コンテンツを極力排除するというのが目的です。
さくらのレンタルサーバでのURL静的化
seasoft
投稿日時: 2009/7/27 13:13
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品一覧
> ただ、不具合修正以外で動いていた物を動かなくするというのは既存利用している人のテンプレート資産に対して微妙かなと個人的には思ってます。

EC-CUBEコミュニティ(eccube-comu) では、ある程度の切り捨ては仕方がないのかなとは思います。

しかし、暗黙的に行われるのは避けた方が良いのかなとは思います。が、そもそもパラメータ無しで動作していたのも暗黙的なものだと思いますし・・・

ドキュメントがあれば、そこでカバーできそうですが、現状でそこまで保守するのも厳しそう。拡張ページクラスで書き換えすることで、従来互換も保てると思いますが、そんな重隅まで、ドキュメントでカバーするのも難しいですよね・・・

現状では、このスレッドを読んで、仕様変更が行われたことを把握できた人はちょっと幸せといったところですかね。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

AMUAMU
投稿日時: 2009/7/27 12:12
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: 商品一覧
引用:
EC-CUBEのデフォルトのリンクで、list.php(パラメータ無し)ってありましたっけ(もしくはリダイレクト)?
 ※確認漏れでしたら修正します


デフォルトで入っているテンプレートですと、パラメーター無しは無さそうです。
パラメータはありますが検索フォームなどで空文字設定でのリンクは多数あるので、ちょっと気にはなりましたが問題は無いと思います(気になった理由は蛇足気味なので後述)。

ここらへんは明確にEC-CUBEで仕様を定義されていないものをどうするかって所なので、厳密なチェックを入れるのは悪いことではないですよね。

ただ、不具合修正以外で動いていた物を動かなくするというのは既存利用している人のテンプレート資産に対して微妙かなと個人的には思ってます。


※蛇足気味にちょっと細かい話
CGI/1.1(RFC 3875)の仕様上、Webサーバ側処理においてリクエスト外部変数の扱い定義では、""値はNULL値と「区別しない」となっているので、Webサーバ側が空クエリー(=で終わる変数)を受け取った場合に、変数のキーがあっても値にNULLを与えてくる可能性があるって事になります。もしNULL値が来ると!isset()に引っかかる事になります。

[RFC3875より引用]
>4.1. Request Meta-Variables
>[中略]
>This specification does not distinguish between zero-length (NULL)
> values and missing values.

この理由から実際Windows環境とかでは値無しの場合に対象クエリーストリング自体を設定次第で削る事が出来た気がします。
(一部Windows環境はデフォルトで削る設定になっていて、大昔にはまった経験がありまして・・・(汗

実際、NULL値設定やクエリーストリング自体を削る扱いをしている環境は限られているし、元々EC-CUBEのサポート環境外になりそうな感じなので、考慮しなくても良いレベルですが、あくまでも外部変数へのissetは環境依存を起こす可能性があるという話で、蛇足として


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

rst
投稿日時: 2009/7/27 11:55
対応状況: −−−
一人前
登録日: 2008/8/17
居住地:
投稿: 80
Re: 商品一覧
皆様お返事ありがとうございます。
URLを掲載する訳でもなく入力させる訳でもないのですが前回はlist.php(パラメータなし)で表示できていたので気になり質問させて頂きました。
パラメータなしの方がURLがすっきりして見えるのも理由の1つです。

確かにパラメータなしの時は表示に時間が掛かっていたのですが今回はその傾向も見られないようです。

詳しくないもので定かではないのですがパラメータを付加する事により表示速度が改善されるのであれば現状にて様子を見ようかと思います。
ramrun
投稿日時: 2009/7/27 10:05
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: 商品一覧
こちらにまとめて返事を書きます。

引用:
もしかして、(ramrun 様的仕様では)こっちがバグ?

> products/list.php?category_id=0にすると全商品表示されました。

バグではないです。 参照先にも書いてありますが一応キープ...です(汗)。

引用:
うちではよくlist.php へのダイレクトなリンクを中に張ったりしますね

EC-CUBEのデフォルトのリンクで、list.php(パラメータ無し)ってありましたっけ(もしくはリダイレクト)?
 ※確認漏れでしたら修正します

デフォルトの状態で全商品リストを表示させる方法は、検索ブロックで何も指定せずに検索することだと思います。
または全商品リストを表示する「全商品」カテゴリを用意すべきかと。
個人的にはその代替としてcategory_id=0を残しておいたほうがいいかな? と思ったもので...
AMUAMU
投稿日時: 2009/7/27 9:51
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: 商品一覧
意図的なんですね
どの環境をターゲットに捉えていくかにもよるので一概に言えない点かと思います

専用サーバとかサーバーのパワーが使える環境で構築することが多いので、うちではよくlist.php へのダイレクトなリンクを中に張ったりしますね(負荷を理解したうえで、デザイナにも利用を許可してる)。

このページをベースにデフォルト並び順を新着順とかにして、新着商品一覧としての役割を持たせたりして使います。

全商品一覧をOn/Offさせるぐらいが妥当な線かと


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

seasoft
投稿日時: 2009/7/27 9:49
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品一覧
もしかして、(ramrun 様的仕様では)こっちがバグ?

> products/list.php?category_id=0にすると全商品表示されました。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

ramrun
投稿日時: 2009/7/27 9:33
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: 商品一覧
意図しているのか、していないのか、と言われたら
意図してやりましたので「(俺的)仕様」かな(汗)。

Re: さくらのレンタルサーバでのURL静的化

商品点数にもよりますが
EC-CUBEで一番処理が重いと思われるのは商品一覧(list.php)かと。

デフォルトのEC-CUBEでは商品一覧に規格が表示され、購入までできるようになっており、ユーザーからは便利です。
ですが、構築事例のサイトを見てまわると一覧ページはリストのみで詳細ページからの購入にカスタマイズしているところが多く見受けられます。
また、カテゴリ別にSEO的な改良を加えているところもありますが、全商品リストに対しては無いでしょうし。

逆になぜ
http://site.ec-cube.net/products/list.php
で全商品リストを表示したいのでしょう?
どこかにこのURLを掲載するのですか?
それともユーザーに入力させるのですか?
検索エンジンのクロールも入ってきやすいでしょうから、サーバーに対する負荷を考慮して外したつもりです。
AMUAMU
投稿日時: 2009/7/27 9:30
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: 商品一覧
気になったので自分でさらに調べてみました

!$objDb->sfIsRecord('dtb_category', 'category_id', (array)$category_id, 'del_flg = 0')

という、存在問い合わせを足したって感じのようですが、
その前の
        if (!defined('MOBILE_SITE') && !isset($_REQUEST['category_id'])) 
SC_Utils_Ex::sfDispSiteError(CATEGORY_NOT_FOUND); 

が余計なのかも。
sfGetCategoryIdの関数仕様としては、有効でなければ空を返す仕様で、LC_Page_Products_List的には空であれば全商品として扱うルーチンが入っていたのですが、それを無視しちゃうチェック処理を足してしまった感じですね。

このlfCheckCategoryIdで、LC_Page_Products_Listで個別にチェックすべき内容なのか微妙。
sfGetCategoryId関数に追加チェック処理をマージするのが美しい感じもしますが、SC_Helper_DBの挙動を変えるのは影響範囲が大きいので確認すること多いので怖いな・・・


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

« 1 (2) 3 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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