コード例 #1
0
 /**
  * Render month row
  */
 static function monthRow($first, $last, $month, $rooms, $ari, $filter_room = false, $start_empty_days = 0, $end_empty_days = 0)
 {
     $html = [];
     $today_int = CHLibDate::getDate()->format('Ymd');
     $currency = isset($ari->currency) ? CHLibDisplay::currencySymbol($ari->currency) : '';
     foreach ($rooms as $room) {
         // check room
         if ($filter_room && $room->id != $filter_room) {
             continue;
         }
         // prepare available & rates keys
         $room_ari = isset($ari->ari) ? CHLibData::getObjectFromList($ari->ari, $room->id, 'room_id') : 0;
         // generate html
         if (!$filter_room) {
             $title = '<div class="uk-vertical-align-middle">' . $room->title . '</div>';
             $html[] = '<div class="uk-vertical-align ch-month-cell ch-month-cell-row ch-month-cell-title">' . $title . '</div>';
         }
         // empty rows
         for ($i = 0; $i < $start_empty_days; $i++) {
             $html[] = '<div class="ch-month-cell ch-month-cell-row"></div>';
         }
         foreach ($month->dates as $date) {
             // month rows
             $day = $date->day;
             if ($day < $first || $day > $last) {
                 continue;
             }
             // get day data
             $date_int = str_replace('-', '', $date->date);
             $rate = '-';
             $aclass = '';
             $is_not_in_past = $date_int >= $today_int;
             if ($room_ari) {
                 $has_availability = isset($room_ari->availability[$day - 1]);
                 $has_rate_and_is_not_zero = isset($room_ari->rates[0]->rate[$day - 1]) && $room_ari->rates[0]->rate[$day - 1] > 0;
                 if ($is_not_in_past && $has_availability && $has_rate_and_is_not_zero) {
                     $rate = CHLibDisplay::money($room_ari->rates[0]->rate[$day - 1], $currency);
                     $available = $room_ari->availability[$day - 1];
                     $aclass = 'ch-month-cell-span-available-' . ($available ? $available > 2 ? 'ok' : 'low' : 'no');
                 }
             }
             // cells
             $html[] = '<div class="ch-month-cell ch-month-cell-row ch-month-cell-day-' . $date->day_week . '">';
             $html[] = '<small class="uk-text-muted ch-month-cell-span ch-month-cell-span-available ' . $aclass . '">' . $rate . '</small>';
             $html[] = '</div>';
         }
         // empty rows
         for ($i = 0; $i < $end_empty_days; $i++) {
             $html[] = '<div class="ch-month-cell ch-month-cell-row"></div>';
         }
     }
     return implode("\n", $html);
 }
コード例 #2
0
 /**
  * Load required assets
  */
 static function chassets()
 {
     // check if already loaded
     $app = self::getApp();
     if (isset($app->chclient->assets)) {
         return;
     }
     // config
     $config = self::getConfig();
     // chclient assets
     CHAssets::script('chclient', 'chclient.min.js');
     CHAssets::style('chclient', 'chclient.min.css');
     // credit card validator
     CHAssets::script('chclient/jquery-creditcardvalidator', 'jquery.creditCardValidator.min.js');
     // required uikit components
     CHAssets::uikit_component('accordion');
     CHAssets::uikit_component('datepicker');
     CHAssets::uikit_component('form-select');
     CHAssets::uikit_component('notify');
     CHAssets::uikit_component('sticky');
     CHAssets::uikit_component('tooltip');
     // optional components
     if ($config->settings_uikit_form_advanced) {
         CHAssets::uikit_component('form-advanced');
     }
     // javascript options
     $localeconv = CHLibDisplay::getLocaleconv();
     $js = (object) [];
     $js->string_error = self::string('error_occurred');
     $js->string_check_form = self::string('error_check_form');
     $js->string_people = self::string('people');
     $js->money_decimal = $localeconv['mon_decimal_point'];
     $js->money_thousands = $localeconv['mon_thousands_sep'];
     $js->datepicker_i18n = self::datePickerLocale();
     $js->datepicker_min_date = CHLibDate::getDate()->format(CHLibDate::dateLocale());
     $js->datepicker_format = str_replace('Y', 'YYYY', str_replace('m', 'MM', str_replace('d', 'DD', CHLibDate::dateLocale())));
     $js->datepicker_weekstart = CHLibDate::weekStart();
     $js->bootstrap_adapter = (int) $config->settings_bootstrap_adapter;
     CHAssets::script_declaration('window.chclient_options = ' . json_encode($js) . ';');
     $app->chclient->assets = true;
 }