Changeset 22576


Ignore:
Timestamp:
2013/02/20 21:20:34 (11 years ago)
Author:
pineray
Message:

#2155 pageクラスからdtb_holidayテーブルを直接指定している箇所をなくす

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

Legend:

Unmodified
Added
Removed
  • branches/version-2_12-dev/data/class/SC_Date.php

    r22567 r22576  
    2929    var $day; 
    3030    var $end_year; 
     31 
     32    public static $arrHoliday = NULL; 
     33    public static $arrRegularHoliday = NULL; 
    3134 
    3235    // コンストラクタ 
     
    185188        return $minutes_array; 
    186189    } 
     190 
     191    /** 
     192     * 休日の判定. 
     193     *  
     194     * @param integer $year 
     195     * @param integer $month 
     196     * @param integer $day 
     197     * @return boolean 休日の場合はtrue 
     198     */ 
     199    public function isHoliday($year, $month, $day) 
     200    { 
     201        is_null(SC_Date_Ex::$arrHoliday) and $this->setArrHoliday(); 
     202        is_null(SC_Date_Ex::$arrRegularHoliday) and $this->setRegularHoliday(); 
     203 
     204        if (!empty(SC_Date_Ex::$arrHoliday[$month])) { 
     205            if (in_array($day, SC_Date_Ex::$arrHoliday[$month])) { 
     206                return true; 
     207            } 
     208        } 
     209        if (!empty(SC_Date_Ex::$arrRegularHoliday)) { 
     210            $day = date('w', mktime(0,0,0 ,$month, $day, $year)); 
     211            if (in_array($day, SC_Date_Ex::$arrRegularHoliday)) { 
     212                return true; 
     213            } 
     214        } 
     215        return false; 
     216    } 
     217 
     218    /** 
     219     * 休日情報をスタティック変数にセット. 
     220     *  
     221     * @return void 
     222     */ 
     223    private function setArrHoliday() 
     224    { 
     225        $objHoliday = new SC_Helper_Holiday_Ex(); 
     226        $holiday = $objHoliday->getList(); 
     227        $arrHoliday = array(); 
     228        foreach ($holiday AS $val) { 
     229            $arrHoliday[$val['month']][] = $val['day']; 
     230        } 
     231        SC_Date_Ex::$arrHoliday = $arrHoliday; 
     232    } 
     233 
     234    /** 
     235     * 定休日情報をスタティック変数にセット. 
     236     *  
     237     * @return void 
     238     */ 
     239    private function setRegularHoliday() 
     240    { 
     241        $arrInfo = SC_Helper_DB_Ex::sfGetBasisData(); 
     242        SC_Date_Ex::$arrRegularHoliday = explode('|', $arrInfo['regular_holiday_ids']); 
     243    } 
    187244} 
  • branches/version-2_12-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Calendar.php

    r22567 r22576  
    6868    { 
    6969 
    70         // 休日取得取得 
    71         $this->arrHoliday = $this->lfGetHoliday(); 
    72         // 定休日取得取得 
    73         $this->arrRegularHoliday = $this->lfGetRegularHoliday(); 
    7470        // カレンダーデータ取得 
    7571        $this->arrCalendar = $this->lfGetCalendar(2); 
     
    9692    function lfGetCalendar($disp_month = 1) 
    9793    { 
     94        $objDate = new SC_Date_Ex(); 
    9895        $arrCalendar = array(); 
    9996        $today = date('Y/m/d'); 
     
    115112                $arrCalendar[$j][$i]['month']       = $month; 
    116113                $arrCalendar[$j][$i]['day']         = $objDay->day; 
    117                 $arrCalendar[$j][$i]['holiday']     = $this->lfCheckHoliday($year, $month, $objDay->day); 
     114                $arrCalendar[$j][$i]['holiday']     = $objDate->isHoliday($year, $month, $objDay->day); 
    118115                $arrCalendar[$j][$i]['today']       = $today === sprintf('%04d/%02d/%02d', $year, $month, $objDay->day); 
    119116 
     
    124121        return $arrCalendar; 
    125122    } 
    126  
    127     /** 
    128      * 休日取得. 
    129      * 
    130      * @return array $arrHoliday 休日情報の配列を返す 
    131      */ 
    132     function lfGetHoliday() 
    133     { 
    134         $objQuery = SC_Query_Ex::getSingletonInstance(); 
    135         $objQuery->setOrder('rank DESC'); 
    136  
    137         $where = 'del_flg <> 1'; 
    138         $arrRet = $objQuery->select('month, day', 'dtb_holiday', $where); 
    139         foreach ($arrRet AS $key=>$val) { 
    140             $arrHoliday[$val['month']][] = $val['day']; 
    141         } 
    142         return $arrHoliday; 
    143     } 
    144  
    145     /** 
    146      * 定休日取得. 
    147      * 
    148      * @return array $arrRegularHoliday 定休日情報の配列を返す 
    149      */ 
    150     function lfGetRegularHoliday() 
    151     { 
    152         $arrInfo = SC_Helper_DB_Ex::sfGetBasisData(); 
    153         $arrRegularHoliday = explode('|', $arrInfo['regular_holiday_ids']); 
    154         return $arrRegularHoliday; 
    155     } 
    156  
    157     /** 
    158      * 休日チェック取得. 
    159      * 
    160      * @param integer $year 年 
    161      * @param integer $month 月 
    162      * @param integer $day 日 
    163      * @return boolean 休日の場合trueを返す 
    164      */ 
    165     function lfCheckHoliday($year, $month, $day) 
    166     { 
    167         if (!empty($this->arrHoliday[$month])) { 
    168             if (in_array($day, $this->arrHoliday[$month])) { 
    169                 return true; 
    170             } 
    171         } 
    172         if (!empty($this->arrRegularHoliday)) { 
    173             $day = date('w', mktime(0,0,0 ,$month, $day, $year)); 
    174             if (in_array($day, $this->arrRegularHoliday)) { 
    175                 return true; 
    176             } 
    177         } 
    178         return false; 
    179     } 
    180  
    181123} 
Note: See TracChangeset for help on using the changeset viewer.