忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2017/08/24 04:23 |
EC-CUBE 商品情報を追加

商品情報テーブルはdtb_productsですが、ここに適当に商品情報のカラムを追加したら商品リストですぐに表示できるかというとできません。
検索ブロックなどからの検索は/data/class/pages/products/LC_Page_Products_List.phpLC_Page_Products_List::lfDispProductsList()で実行されています。

450行目あたり、▼商品詳細取得の部分で、検索対象となるカラムを羅列しています。
ここに追加したカラムを記入すると、表示できるようになるかというとシステムエラーになりました。

そこらへんの処理をよく見てみると、実はvw_products_allclassという得体の知れないテーブルから検索を行っています。
実際にデータベースを覗いてみてもvw_products_allclassは存在しません。
名前の通りvw_products_allclassはビューなのですが、MySQLの場合は何故か実際にビューを作成せずに、ビューに相当するSQL文を毎回作成して実行しているみたいです。
どうしてこんな作りなのかは謎。

実際にそのビュー的なSQLを作成しているところは
/data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.phpSC_DB_DBFactory_MYSQL::viewToSubQuery()です。
最初に$sql['vw_products_allclass_detail']を作成するところでdtb_products.***なんかがいっぱい並んでいますが、そこにカラムを追加することでようやくテンプレートから参照できるようになります。
このビューですが、なにやら尋常ではないJOINを行っていてとんでもなく訳がわからないことになっています。
どうしてこんな作りなのかは謎。
 

EC-CUBEの記事
PR


2010/03/12 22:29 | Comments(0) | TrackBack(0) | PHP

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<買ったものリスト 2010/03/14 | HOME | ==NOVEL PHILOSOMA== 05>>
忍者ブログ[PR]