teragon/calendar

本包最新版本(1.02)的许可信息不可用。

Laravel 5 Calendar,基于 gloudemans/calendar 和 vics80/calendar

1.02 2015-05-12 10:36 UTC

This package is not auto-updated.

Last update: 2024-09-20 19:30:04 UTC


README

通过 Composer 安装此包。编辑你的项目的 composer.json 文件,添加以下内容:

"require": {
	"laravel/framework": "4.0.*",
	"teragon/calendar": "dev-master"
}

然后,从终端运行 Composer 更新命令。

composer update

现在,你只需将包的服务提供者添加到项目中,并为包设置别名。为此,打开你的 config/app.php 文件。

service providers 数组中添加新行

'Teragon\Calendar\CalendarServiceProvider'

最后,在 aliases 数组中添加新行

'Calendar' => 'Teragon\Calendar\Facades\Calendar',

现在,你就可以开始在应用中使用日历包了。

用法

你可以使用 generate 方法生成一个日历。

// Generate a calendar for the current month and year
Calendar::generate();

// Generate a calendar for the specified year and month
Calendar::generate(2012, 6);

如果你要添加事件,有两种方式:第一种是在事件包装器中添加没有属性的单独事件

// Add an array of events as the third parameter to add them to the calendar, 
// keys should be the days of the month.
$data = array(
	3  => 'http://example.com/news/article/2006/03/',
	7  => 'http://example.com/news/article/2006/07/',
	13 => 'http://example.com/news/article/2006/13/',
	26 => 'http://example.com/news/article/2006/26/'
);

Calendar::generate(2006, 6, $data);

第二种方式是在同一天添加多个事件。你也可以给事件包装器添加一些属性

// Add an array of events as the third parameter to add them to the calendar, 
// keys should be the days of the month.
$data = array();
$data[3][] = array(	
                'content' => 'http://example.com/news/article/2006/03/',
                'attr'    => array(
                        'class' => 'some-css-class'
                    )
                );
$data[3][] = array(
                'content' => 'http://example.com/news/article/2006/04/',
                'attr'    => array(
                        'class' => 'some-css-class'
                    )
                ),
$data[12][] = array(
                'content' => 'http://example.com/news/article/2006/10/',
                'attr'    => array(
                        'class' => 'another-css-class'
                    )
                ),

Calendar::generate(2006, 6, $data);

有几个配置变量你可以设置以更改日历布局

你可以使用 initialize 方法设置这些值

$config = array(
	'start_day' => 'monday',
	'month_type' => 'long'
);

Calendar::initialize($config);

模板

你也可以更改用于日历的模板。

$template = '
   {table_open}<table border="0" cellpadding="0" cellspacing="0">{/table_open}

   {heading_row_start}<tr>{/heading_row_start}

   {heading_previous_cell}<th><a href="{previous_url}">&lt;&lt;</a></th>{/heading_previous_cell}
   {heading_title_cell}<th colspan="{colspan}">{heading}</th>{/heading_title_cell}
   {heading_next_cell}<th><a href="{next_url}">&gt;&gt;</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>{/cal_row_start}
   {cal_cell_start}<td>{/cal_cell_start}

   {cal_cell_content}<a href="{content}">{day}</a>{/cal_cell_content}
   {cal_cell_content_today}<div class="highlight"><a href="{content}">{day}</a></div>{/cal_cell_content_today}

   {cal_cell_no_content}{day}{/cal_cell_no_content}
   {cal_cell_no_content_today}<div class="highlight">{day}</div>{/cal_cell_no_content_today}

   {cal_cell_blank}&nbsp;{/cal_cell_blank}

   {cal_cell_end}</td>{/cal_cell_end}
   {cal_row_end}</tr>{/cal_row_end}

   {table_close}</table>{/table_close}
';

Calendar::initialize(array('template' => $template));

echo Calendar::generate();