バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

機能要望 > その他 > EC-CUBE2.5残課題 開発者急募!!? CSVアップロード/ダウンロード

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
KAJI
投稿日時: 2010/12/10 19:33
対応状況: −−−
一人前
登録日: 2008/1/24
居住地:
投稿: 121
EC-CUBE2.5残課題 開発者急募!!? CSVアップロード/ダウンロード
株式会社ロックオンの梶原でございます。
お世話になっております。

今回は、開発の募集をさせていただきます。
結構困ってます。。。

現状、EC-CUBE2.5の開発を鋭意対応中ですが、作業ボリュームが多く
今年中目処での正式版リリースも既に危うい状況で、このままですと、
今後のリリーススケジュールも伸びていきそうな状況です。

そこで、まずは以下部分の機能を開発していただけるコミッター様
を募集いたします!

【開発完了期限の希望】
2010/12/17(金)まで

【残課題?】
管理画面 CSV アップロード/ダウンロード(特に商品登録CSV)について

管理画面 CSV アップロード/ダウンロード機能が、EC-CUBE2.5のデータ構造等に
対応できておらず、正常にCSVアップロード/ダウンロードが行えるよう開発する
というミッションです!
開発にご協力いただける方は、本スレッドに返信をいただくか、または直接ソースの
コミット等いただければありがたいです!

以下、問題点と課題点をまとめました。

#781(規格のデータベースを木構造に) の影響から全般的に動作していません
 * product_class_id の項目追加が必要
 * できれば、数万件のアップロード/ダウンロードに耐えるよう考慮できればベター
#823(商品種別によってカートを分ける) に対応させる必要があり
○dtb_products.product_flag は別テーブルとなりましたので対応が必要
○CSV出力項目設定、高度な設定への連携が必要


それでは、何卒よろしくお願い致します <(_ _)>

AMUAMU
投稿日時: 2010/12/13 23:27
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: EC-CUBE2.5残課題 開発者急募!!? CSVアップロード/ダウンロード
年末に向けて仕事の方も詰まっているのですが、こちらの残課題の方を当方にて手を付けたいと思います。
あと残課題にありませんがセキュリティ向上関係の方も手を付けようかと思います。
取り急ぎ表明まで。


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

[url=h

KAJI
投稿日時: 2010/12/14 9:21
対応状況: −−−
一人前
登録日: 2008/1/24
居住地:
投稿: 121
Re: EC-CUBE2.5残課題 開発者急募!!? CSVアップロード/ダウンロード
AMUAMU様

お疲れ様です。
株式会社ロックオンの梶原です。

こちらのお申し出、非常に助かります。
誠にありがとうございます!

CSV部分は大雑把に言うと、2.5の開発にて変更したDB構造にまだ対応できておりません。
細かな調整作業も必要になってくるかと思われますが、何卒よろしくお願い致します。

とにかく、とても、期待しております!>AMUAMU様
AMUAMU
投稿日時: 2010/12/14 9:36
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: EC-CUBE2.5残課題 開発者急募!!? CSVアップロード/ダウンロード
一応、合宿でやりたかったけど地味すぎてパスした、CSV出力でメモリオーバーしちゃう件も解決出来たらと思います


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

[url=h

patapata
投稿日時: 2010/12/17 0:00
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: EC-CUBE2.5残課題 開発者急募!!? CSVアップロード/ダウンロード
引用:
一応、合宿でやりたかったけど地味すぎてパスした、CSV出力でメモリオーバーしちゃう件も解決出来たらと思います

ちょっくら失礼いたします。私自身コミッターでもありませんし合宿にも参加していませんし、新参者なので現状の理解が乏しいですが、↑この件って・・・・
↓この関数のことですか?

    /**
     * CSVを送信する。
     */
    function lfDownloadCsv($arrayData, $prefix = ""){

        if($prefix == "") {
            $dir_name = SC_Utils::sfUpDirName();
            $file_name = $dir_name . date("ymdHis") .".csv";
        } else {
            $file_name = $prefix . date("ymdHis") .".csv";
        }

        /* HTTPヘッダの出力 */
        Header("Content-disposition: attachment; filename=${file_name}");
        Header("Content-type: application/octet-stream; name=${file_name}");
        Header("Cache-Control: ");
        Header("Pragma: ");

        /* データを出力 */
        foreach ($arrayData as $lineArray) {
            $lineString = $this->sfArrayToCsv($lineArray);
            $lineString = mb_convert_encoding($lineString, 'SJIS-Win');
            echo $lineString . "\r\n";
        }
    }

もちっと突っ込んでお尋ねするなら・・・
単純に以下でやってるようなことを実装したいということでしょうか?
http://ombmot.s301.xrea.com/wiki/wiki.cgi?page=PHP
AMUAMU
投稿日時: 2010/12/17 8:46
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: EC-CUBE2.5残課題 開発者急募!!? CSVアップロード/ダウンロード
基本的にはメモリに全件展開してから書き出す現状から、逐次テンポラリに書き出しですね


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

[url=h

patapata
投稿日時: 2010/12/17 11:57
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: EC-CUBE2.5残課題 開発者急募!!? CSVアップロード/ダウンロード
あ〜、もっと根が深いのか

//一時ファイルを作成
 //分割でSELECT
  //一時ファイルに変換して書き込み

//ダウンロード開始
 //一時ファイルから分割読み込み
  //吐き出し

//一時ファイル削除

ってことですか・・・
片手間にやろうかと思ったけど、ちと荷が重いな。
ECCUORE
投稿日時: 2010/12/17 13:22
対応状況: −−−
長老
登録日: 2009/10/22
居住地: 東京
投稿: 248
Re: EC-CUBE2.5残課題 開発者急募!!? CSVアップロード/ダウンロード
横から失礼します。

多分、全件をメモリに載せる事自体に問題有るのだとすると、$arrayDataを取得する処理を変更するってことじゃないですか?
取得と同時にフラッシュしてく感じになる気がします。

//$arrayData取得処理
 //$arrayDataの1〜n1をセレクト
  //HTTPヘッダの出力
  //行データ出力(Flush)
 //$arrayDataのn1〜n2をセレクト
  //行データ出力(Flush)
 //以下Loop

一時ファイルを作成するってのは削除処理も考えると微妙じゃないでしょうかね。



----------------
EC CUORE 株式会社クオーレ
カスタマイズ御相談下さい。

seasoft
投稿日時: 2010/12/17 13:23
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: EC-CUBE2.5残課題 開発者急募!!? CSVアップロード/ダウンロード
この辺り、対応すると、速度低下に繋がることも多く、共用サーバなどではタイムアウトに触れるケースもあったりして、バランスが難しいですよね。

理想は、パラメータで設定できたら良さそうですが、今度はメンテナンスコストが上がるし・・・

どっちかをベース(標準実装)として、他方は「高速化カスタマイズ」or「省(少・低)メモリ対応カスタマイズ」って感じが妥協点かな。

で、EC-CUBE としてはカスタマイズを容易にできるように、リファクタリングを進めるなどして、フックしやすい状況を作っておくのが重要なのかなと思います。


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

patapata
投稿日時: 2010/12/17 13:38
対応状況: −−−
仙人
登録日: 2010/7/7
居住地: 神奈川県
投稿: 502
Re: EC-CUBE2.5残課題 開発者急募!!? CSVアップロード/ダウンロード
因みに昼休みに見よう見真似で適当につくって諦めた、
動作確認もしていないソースですが・・・

なにかの参考になるかもしれませんので
アップします。


    function lfDownloadCsv($arrayData, $prefix = ""){
        $tmp_file_name;
        
        if($prefix == "") {
            $dir_name = SC_Utils::sfUpDirName();
            $tmp_file_name = "tmp_". $dir_name . date("ymdHis") .".csv";
        } else {
            $tmp_file_name = "tmp_" . $prefix . date("ymdHis") .".csv";
        }
        $handle = fopen($tmp_file_name, "w");

        
        foreach ($arrayData as $lineArray) {
            $lineString = $this->sfArrayToCsv($lineArray);
            $lineString = mb_convert_encoding($lineString, 'SJIS-Win');
            $lineString .= "\n";
            fwrite($handle, $lineString);
        }

        // 一時ファイルクローズ
        fclose($handle);

        $fd = fopen($tmp_file_name, "r");
        if (!$fd) {
            // ToDo:エラー
        } else {

            /* HTTPヘッダの出力 */
            Header("Content-disposition: attachment; filename=${file_name}");
            Header("Content-type: application/octet-stream; name=${file_name}");
            Header("Cache-Control: ");
            Header("Pragma: ");

            while ( !feof($fd) ){
                ob_start();
                 //1行読み込み(テキストデータに改行が含まれる場合失敗すると思われるので却下)
                //$getdata = fgets($fd);
                //$binarydata = pack( $getdata , 0x1234, 0x5678, 65, 66);	//バイナリ変換
                //echo $binarydata;

                $getdata = fgetcsv($fd,1024,',','""');
                echo $getdata;
                while (@ob_end_flush());
            }
        }
        fclose ($fd);

        // 一時ファイルの削除
        unlink($tmp_file_name);
    }


追記:
よく見たら色々間違ってるのでまず間違いなく動きません
だめだめだね。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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
1304
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.