カレンダー表を使用してカレンダー表を作成するメソッドを作成しました。この表は、カレンダークラスを使用してすべての月を表示します。カスタマイズカレンダー[今月のハイライト表示]
コントローラー:
<?php
class Calendar extends CI_Controller {
public function this_year() {
$data['title'] = 'Calendar: ' . date('Y');
$this->load->library('calendar');
$prefs = array(
'local_time' => 'none',
'start_day' => 'sunday',
'month_type' => 'long',
'day_type' => 'short',
'show_next_prev' => FALSE,
'show_other_days' => TRUE,
'template' => '
{table_open}<table class="table table-condensed">{/table_open}
{heading_row_start}<tr class="info">{/heading_row_start}
{cal_cell_start_today}<td class="today">{/cal_cell_start_today}
{cal_cell_start_other}<td class="other-day">{/cal_cell_start_other}
'
);
$this->load->library('calendar', $prefs);
$data['calendar'] = '<table class="table-calendar"><tr>';
for ($i = 1; $i <= 12; $i++) {
if ($i % 3 == 0) {
$data['calendar'].= "<td>{$this->calendar->generate(date('Y'), $i)}</td>";
$data['calendar'].= '</tr><tr>';
}
else {
$data['calendar'].= "<td>{$this->calendar->generate(date('Y'), $i)}</td>";
}
}
$data['calendar'].= '</tr></table>';
$this->template->load('template/index', __CLASS__ . "/" . __FUNCTION__, $data);
}
}
* VIEWで、ちょうどそれは同様に動作し、thisを返す '$カレンダー'
をエコー。
しかし、カレンダーのクラスのテンプレートを使用して現在の月のみを強調表示する方法が見つかりませんでした。私はデフォルトのテンプレートを修正しようとしましたが、それは{heading_title_cell}<th colspan="{colspan}">{heading}</th>{/heading_title_cell}
のクラスを変更すると、thisのようなすべての月のラベルが変更されるため動作しません。
私は、基本クラスのチュートリアルのデフォルトのメソッド(同じコード)を使用しています。なにか提案を?
いくつかのコードを追加します...あなたはおそらく、条件クラスを追加するには、いくつかのPHPを実行する必要があります。たとえば、 1月の場合: '<?php if(date( 'n')== 1){$ cssClass = 'active'; }?> ' そして' .heading_row_start.active'にスタイリングを適用してください – reinder
ちょっと@reinder、注目に感謝します。コントローラのソースコードを追加しました。このようなことをするには、CodeIgniterのコアを修正する必要があると私は考えています。私はネイティブメソッドを使用するか、ネイティブクラス/メソッドをアプリケーションコンテキストで独自のコードで拡張する方が好きです。助けになる意見はありますか? :) – ShutUpMagda