Changeset 19957


Ignore:
Timestamp:
2011/01/18 16:18:58 (10 years ago)
Author:
eccuore
Message:

#792(ダウンロード販売機能) TODOの対応、暫定的な修正をしていた部分の対応

Location:
branches/version-2_5-dev/data/class/pages
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/pages/error/LC_Page_Error.php

    r19860 r19957  
    149149                $this->tpl_error="設定ファイルに書き込めません。\n設定ファイルに書き込み権限を与えてください。"; 
    150150                break; 
     151            case DOWNFILE_NOT_FOUND: 
     152                $this->tpl_error="ダウンロードファイルが存在しません。<br />申し訳ございませんが、店舗までお問合わせ下さい。"; 
     153                break; 
    151154            case FREE_ERROR_MSG: 
    152155                $this->tpl_error=$this->err_msg; 
  • branches/version-2_5-dev/data/class/pages/mypage/LC_Page_Mypage_DownLoad.php

    r19911 r19957  
    3333class LC_Page_Mypage_DownLoad extends LC_Page { 
    3434 
     35    // {{{ properties 
     36 
     37    /** フォームパラメータの配列 */ 
     38    var $objFormParam; 
     39 
    3540    // }}} 
    3641    // {{{ functions 
     
    5358    function process() { 
    5459        ob_end_clean(); 
    55  
     60        parent::process(); 
     61        $this->action(); 
     62        $this->sendResponse(); 
     63    } 
     64 
     65    /** 
     66     * Page のAction. 
     67     * 
     68     * @return void 
     69     */ 
     70    function action() { 
     71        // ログインチェック 
     72        $objCustomer = new SC_Customer(); 
     73        if (!$objCustomer->isLoginSuccess()){ 
     74            SC_Utils_Ex::sfDispSiteError(DOWNFILE_NOT_FOUND,"",true); 
     75        } 
     76 
     77        // パラメータチェック 
     78        $this->objFormParam = new SC_FormParam(); 
     79        $this->lfInitParam(); 
     80        // GET、SESSION['customer']値の取得 
     81        $this->objFormParam->setParam($_SESSION['customer']); 
     82        $this->objFormParam->setParam($_GET); 
     83        $this->arrErr = $this->lfCheckError(); 
     84        if (count($this->arrErr)!=0){ 
     85            SC_Utils_Ex::sfDispSiteError(DOWNFILE_NOT_FOUND,"",true); 
     86        } 
     87    } 
     88 
     89    /** 
     90     * Page のResponse. 
     91     * @return void 
     92     */ 
     93    function sendResponse() { 
     94        $this->objDisplay->noAction(); 
     95 
     96        // パラメータ取得 
    5697        $customer_id = $_SESSION['customer']['customer_id']; 
    5798        $order_id = $_GET['order_id']; 
     
    59100        $product_class_id = $_GET['product_class_id']; 
    60101 
    61         // ID の数値チェック 
    62         // TODO SC_FormParam でチェックした方が良い? 
    63         if (!is_numeric($customer_id) 
    64             || !is_numeric($order_id) 
    65             || !is_numeric($product_id) 
    66             || !is_numeric($product_class_id)) { 
    67             SC_Utils_Ex::sfDispSiteError(""); 
    68         } 
    69  
    70         $objCustomer = new SC_Customer(); 
    71         //ログインしていない場合エラー 
    72         if (!$objCustomer->isLoginSuccess()){ 
    73             SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR); 
    74         } 
    75  
    76102        //DBから商品情報の読込 
    77103        $arrForm = $this->lfGetRealFileName($customer_id, $order_id, $product_id, $product_class_id); 
     
    96122        $sdown_filename = mb_convert_encoding($arrForm["down_filename"], $encoding, "auto"); 
    97123 
    98         //TODO SC_Display利用に変更 
     124        // flushなどを利用しているので、現行のSC_Displayは利用できません。 
     125        // SC_DisplayやSC_Responseに大容量ファイルレスポンスが実装されたら移行可能だと思います。 
     126 
    99127        //タイプ指定 
    100128        header("Content-Type: Application/octet-stream"); 
     
    161189    } 
    162190 
     191 
     192    /* パラメータ情報の初期化 */ 
     193    function lfInitParam() { 
     194        $this->objFormParam->addParam("customer_id", "customer_id", INT_LEN, "n", array("EXIST_CHECK","NUM_CHECK")); 
     195        $this->objFormParam->addParam("order_id", "order_id", INT_LEN, "n", array("EXIST_CHECK", "NUM_CHECK")); 
     196        $this->objFormParam->addParam("product_id", "product_id", INT_LEN, "n", array("EXIST_CHECK","NUM_CHECK")); 
     197        $this->objFormParam->addParam("product_class_id", "product_class_id", INT_LEN, "n", array("EXIST_CHECK","NUM_CHECK")); 
     198    } 
     199 
     200    /* 入力内容のチェック */ 
     201    function lfCheckError() { 
     202        // 入力データを渡す。 
     203        $arrRet = $this->objFormParam->getHashArray(); 
     204        $objErr = new SC_CheckError($arrRet); 
     205        $objErr->arrErr = $this->objFormParam->checkError(); 
     206        return $objErr->arrErr; 
     207    } 
     208 
    163209    /** 
    164210     * デストラクタ. 
Note: See TracChangeset for help on using the changeset viewer.