Я пытаюсь показать три календаря, один на текущий месяц и два на следующие два месяца.
Вот мой закомментированный контроллер
public function index($year = null, $month = null, $day = null)
{
if (empty($year)) {
redirect('book/index/' . date('Y/m/d', time()));
}
$this->load->model('book/Booking_Model');
// september
$data['cal_one'] = $this->Booking_Model->generateCalendar($year, $month, $day);
// october
$data['cal_two'] = $this->Booking_Model->generateCalendar($year, date('m', strtotime('+1 months')), $day);
// november
$data['cal_three'] = $this->Booking_Model->generateCalendar($year, date('m', strtotime('+2 months')), $day);
// to load the view
$data['module'] = 'book';
$data['view_file'] = 'select_date';
$this->load->module('templates');
$this->templates->frontend($data);
}
Это то, что я получаю на выходе
Как видите, месяцы отображаются правильно, однако все ячейки таблицы показывают один и тот же месяц, 09 (сентябрь).
Если вы посмотрите вверху слева, вы увидите, что я var_dumped для переменной $month в календарях, и они отображаются правильно, 09 ... 10 ... 11, однако внутри календаря они все 09.
Вот моя модель календаря...
public function generateCalendar($year, $month, $day)
{
var_dump($month);
// styling the calendar
$params = [
'show_next_prev' => true,
'next_prev_url' => base_url() . 'schedule/index',
'template' => '
{table_open}<table id="tt-calendar">{/table_open}
{heading_row_start}<tr>{/heading_row_start}
{heading_previous_cell}
<th class="text-center">
</th>
{/heading_previous_cell}
{heading_title_cell}
<th class="text-center" colspan="{colspan}">
<h4>
{heading}
</h4>
</th>
{/heading_title_cell}
{heading_next_cell}
<th class="text-center">
</th>
{/heading_next_cell}
{heading_row_end}</tr>{/heading_row_end}
{week_row_start}<tr>{/week_row_start}
{week_day_cell}
<td>
<strong>
{week_day}
</strong>
</td>
{/week_day_cell}
{week_row_end}</tr>{/week_row_end}
{cal_row_start}<tr>{/cal_row_start}
{cal_cell_start}<td>{/cal_cell_start}
{cal_cell_start_today}<td id="tt-calendar-today">{/cal_cell_start_today}
{cal_cell_start_other}<td id="tt-calendar-test">{/cal_cell_start_other}
{cal_cell_content}
<div class="day" href="" onclick="return getDate(' . $year . ' + /' . $month . '/ + {day});">
{day} ' . $month . '
</div>
{/cal_cell_content}
{cal_cell_content_today}
<div class="day" href="" onclick="return getDate(' . $year . ' + /' . $month . '/ + {day});">
{day} ' . $month . '
</div>
{/cal_cell_content_today}
{cal_cell_no_content}
<div class="day" href="" onclick="return getDate(' . $year . ' + /' . $month . '/ + {day});">
{day} ' . $month . '
</div>
{/cal_cell_no_content}
{cal_cell_no_content_today}
<div class="day" href="" onclick="return getDate(' . $year . ' + /' . $month . '/ + {day});">
{day} ' . $month . '
</div>
{/cal_cell_no_content_today}
{cal_cell_blank} {/cal_cell_blank}
{cal_cell_other}{day}{/cal_cel_other}
{cal_cell_end}</td>{/cal_cell_end}
{cal_cell_end_today}</td>{/cal_cell_end_today}
{cal_cell_end_other}</td>{/cal_cell_end_other}
{cal_row_end}</tr>{/cal_row_end}
{table_close}</table>{/table_close}'
];
// loading the calendar and passing the params and data
$this->load->library('calendar', $params);
return $this->calendar->generate($year, $month);
}
Если вы посмотрите на приведенную выше модель, вы увидите, что я передаю переменную $month
в модель и сразу же var_dumping, чтобы убедиться, что она передает в модель «+1 месяц». Это работает... однако я повторяю этот месяц в тегах {cal_cell_content}
и получаю только этот месяц (сентябрь) для каждого из трех календарей.