Ignore:
Timestamp:
2011/03/17 10:38:39 (10 years ago)
Author:
tao
Message:

#refs 寄付ポイント数上限設定機能、現在の寄付状況表示ブロック、csvファイルのファイルロックを追加。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eccube-donation/html/frontparts/bloc/index.php

    r20639 r20674  
    3636define('DONATION_VERSION', '0.0.1'); 
    3737 
     38 
     39 
    3840$objQuery = new SC_Query(); 
    3941// 全顧客取得 
     
    6365    $correct_point += $arrDn[2]; 
    6466} 
     67$limit = 0; 
     68if($fp = fopen(DATA_PATH.'downloads/donation_summary.csv','a+')){ 
     69    flock($fp2,LOCK_EX); 
     70    $summary = file_get_contents(DATA_PATH.'downloads/donation_summary.csv'); 
     71    $summary = explode(",",$summary); 
     72    $num   = intval($summary[0]); 
     73    $total = intval($summary[1]); 
     74    $limit = intval($summary[2]); 
     75     
     76    if(isset($_POST["limit"]) and isValidToken()){ 
     77        $limit = mb_convert_kana(trim($_POST["limit"]),"n"); 
     78        $limit = intval($limit); 
     79        ftruncate($fp,0); 
     80        fwrite($fp,$num.','.$total.','.$limit); 
     81    } 
     82    fclose($fp); 
     83} 
     84$token = getToken(); 
     85 
     86function getToken() { 
     87    if (empty($_SESSION[TRANSACTION_ID_NAME])) { 
     88        $_SESSION[TRANSACTION_ID_NAME] = sha1(uniqid(rand(), true)); 
     89    } 
     90    return $_SESSION[TRANSACTION_ID_NAME]; 
     91} 
     92 
     93 
     94function isValidToken() { 
     95 
     96    $checkToken = ""; 
     97 
     98    // $_POST の値を優先する 
     99    if (isset($_POST[TRANSACTION_ID_NAME])) { 
     100 
     101        $checkToken = $_POST[TRANSACTION_ID_NAME]; 
     102    } elseif (isset($_GET[TRANSACTION_ID_NAME])) { 
     103 
     104        $checkToken = $_GET[TRANSACTION_ID_NAME]; 
     105    } 
     106 
     107    $ret = false; 
     108    // token の妥当性チェック 
     109    if ($checkToken === $_SESSION[TRANSACTION_ID_NAME]) { 
     110 
     111        $ret = true; 
     112    } 
     113 
     114    unset($_SESSION[TRANSACTION_ID_NAME]); 
     115    return $ret; 
     116} 
     117 
    65118 
    66119?> 
     
    79132<h1><?php echo DONATION_TITLE; ?></h1> 
    80133<h2>現在のステータス</h2> 
     134<form method="post"> 
     135<input type="hidden" name="<?php echo TRANSACTION_ID_NAME ;?>" value="<?php echo $token; ?>" /> 
    81136<table> 
    82137  <tr> 
     
    89144    <th>顧客の保持ポイント合計</th><td><?php printf('%d', $total_point); ?>pt</td> 
    90145  </tr> 
     146  <tr> 
     147    <th>寄付ポイント上限設定</th><td><input type="text" value="<?php echo $limit; ?>" name="limit" /><input type="submit" value="設定" /><br />「0」は無制限</td> 
     148  </tr> 
    91149</table> 
     150</form> 
    92151 
    93152<p>集まった義援金総額を, 義援金として日本赤十字社などにお贈り下さい</p> 
Note: See TracChangeset for help on using the changeset viewer.