vics80 / calendar
Laravel 5 Calendar, based on gloudemans/calendar
Requires
- php: >=5.3.0
- illuminate/support: ~4|~5
This package is auto-updated.
Last update: 2024-12-15 23:24:06 UTC
README
Installation
Install the package through Composer. Edit your project's composer.json
file by adding:
"require": { "laravel/framework": "4.0.*", "vics80/calendar": "dev-master" }
Next, run the Composer update command from the Terminal:
composer update
Now all you have to do is add the service provider of the package and alias the package. To do this open your config/app.php
file.
Add a new line to the service providers
array:
'Vics80\Calendar\CalendarServiceProvider'
And finally add a new line to the aliases
array:
'Calendar' => 'Vics80\Calendar\Facades\Calendar',
Now you're ready to start using the calendar package in your application.
Usage
You can use the generate
method to generate a calendar.
// Generate a calendar for the current month and year Calendar::generate(); // Generate a calendar for the specified year and month Calendar::generate(2012, 6);
If you want to add events you have two ways to do it: The first way is to adding single events without attributes to the event's wrapper
// 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);
The second way is to adding multiple events in a same day. You cal also add somre attributes to the event's wrapper
// 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);
There are a few config variables you can set to change the layout of the calendar:
You can set these values using the initialize
method
$config = array( 'start_day' => 'monday', 'month_type' => 'long' ); Calendar::initialize($config);
Template
You can also change the template used for the calendar.
$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}"><<</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>{/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} {/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();