月間カレンダーを表示するカレンダー コントローラーとモデルがあります。ユーザーは、前と次のハイパーリンクをクリックして、月を繰り返すことができます。また、毎日固有の URL を生成することもできたので、たとえば 2012 年 4 月 10 日をクリックすると、.../2012/04/10 のような URL が得られます。私の問題は、別の月に移動すると、すべての日付の URL で 4 月が月として表示されることです。
コントローラ
function display($year = null, $month = null) {
$this->load->model('CalendarModel');
if ($day = $this->input->post('day'))
{
$this->CalendarModel->add_calendar_data("$year-$month-$day", $this->input->post('data'));
}
$data['Calendar'] = $this->CalendarModel->generate($year, $month);
$this->load->view('Calendar', $data);
}
モデル
class CalendarModel extends CI_Model
{
var $conf;
function CalendarModel()
{
$date = (!isset($_GET['month']) && !isset($_GET['year'])) ? time() : strtotime($_GET['month'] . '/1/' . $_GET['year']);
$day = date('d', $date);
$month = date('m', $date);
$year = date('Y', $date);
$this->conf = array(
'start_day' => 'sunday',
'show_next_prev' => true,
'next_prev_url' => '/CodeIgniter/index.php/Calendar/display'
);
$this->conf['template'] = '
{table_open}<table border="0" cellpadding="0" cellspacing="0" class="calendar">{/table_open}
{heading_row_start}<tr>{/heading_row_start}
{heading_previous_cell}<th><a href="{previous_url}"><<</a></th>{/heading_previous_cell}
{heading_title_cell}<th colspan="{colspan}">{heading}</th>{/heading_title_cell}
{heading_next_cell}<th><a href="{next_url}">>></a></th>{/heading_next_cell}
{heading_row_end}</tr>{/heading_row_end}
{week_row_start}<tr>{/week_row_start}
{week_day_cell}<td>{week_day}</td>{/week_day_cell}
{week_row_end}</tr>{/week_row_end}
{cal_row_start}<tr class="days">{/cal_row_start}
{cal_cell_start}<td class="day">{/cal_cell_start}
{cal_cell_content}
<div class="day_num">{day}</div>
<div class="content">{content}</div>
{/cal_cell_content}
{cal_cell_content_today}
<div class="day_num highlight">{day}</div>
<div class="content">{content}</div>
{/cal_cell_content_today}
{cal_cell_no_content}<div class="day_num"><a href="/'.$year.'/'.$month.'/{day}">{day}</a></div>{/cal_cell_no_content}
{cal_cell_no_content_today}<div class="day_num"><a href="/'.$year.'/'.$month.'/{day}">{day}</a></div>{/cal_cell_no_content_today}
{cal_cell_blank} {/cal_cell_blank}
{cal_cell_end}</td>{/cal_cell_end}
{cal_row_end}</tr>{/cal_row_end}
{table_close}</table>{/table_close}
';
}
function generate ($year, $month)
{
$this->load->library('calendar', $this->conf);
//$cal_data = $this->get_calendar_data($year, $month);
return $this->calendar->generate($year, $month);
}
}