Ignore:
Timestamp:
2011/02/21 01:11:35 (11 years ago)
Author:
AMUAMU
Message:

r20207 の取り消し。CSV関連がでぐれってるのと、支払い方法を出力しないようになっているため(仕様変更に伴うエラーは別途解決します)。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/helper/SC_Helper_CSV.php

    r20270 r20276  
    164164        fwrite($this->fpOutput, $line); 
    165165        return true; 
     166    } 
     167 
     168    // CSVを送信する。(商品) 
     169    function sfDownloadProductsCsv($where, $arrval, $order, $is_download = false) { 
     170        // 実行時間を制限しない 
     171        @set_time_limit(0); 
     172 
     173        // CSV出力タイトル行の作成 
     174        $arrOutput = SC_Utils_Ex::sfSwapArray($this->sfGetCsvOutput(1, 'status = ' . CSV_COLUMN_STATUS_FLG_ENABLE)); 
     175        if (count($arrOutput) <= 0) return false; // 失敗終了 
     176        $arrOutputCols = $arrOutput['col']; 
     177 
     178        $objQuery =& SC_Query::getSingletonInstance(); 
     179        $objQuery->setOrder($order); 
     180         
     181        $objProduct = new SC_Product(); 
     182        $cols = SC_Utils_Ex::sfGetCommaList($arrOutputCols, true); 
     183        // このWhereを足さないと無効な規格も出力される。現行仕様と合わせる為追加。 
     184        $inner_where = 'dtb_products_class.del_flg = 0'; 
     185        $sql = $objQuery->getSql($cols, $objProduct->prdclsSQL($inner_where),$where); 
     186        $header = $this->sfArrayToCSV($arrOutput['disp_name']); 
     187        $header = mb_convert_encoding($header, 'SJIS-Win'); 
     188        $header .= "\r\n"; 
     189         
     190        //テンポラリファイル作成 
     191        // TODO: パフォーマンス向上には、ストリームを使うようにすると良い 
     192        //  環境要件がバージョン5.1以上になったら使うように変えても良いかと 
     193        //  fopen('php://temp/maxmemory:'. (5*1024*1024), 'r+'); 
     194        $tmp_filename = tempnam(CSV_TEMP_REALDIR, 'product_csv'); 
     195        $this->fpOutput = fopen($tmp_filename, "w+"); 
     196 
     197        fwrite($this->fpOutput, $header); 
     198 
     199        $objQuery->doCallbackAll(array(&$this, 'cbOutputProductCSV'), $sql, $arrval); 
     200 
     201        fclose($this->fpOutput); 
     202 
     203        if($is_download) { 
     204            // CSVを送信する。 
     205            $this->lfDownloadCSVFile($tmp_filename,"product_"); 
     206            $res = true; 
     207        }else{ 
     208            $res = SC_Utils_Ex::sfReadFile($tmp_filename); 
     209        } 
     210         
     211        //テンポラリファイル削除 
     212        unlink($tmp_filename); 
     213        return $res; 
    166214    } 
    167215 
Note: See TracChangeset for help on using the changeset viewer.