vics80/calendar
Composer 安装命令:
composer require vics80/calendar
包简介
Laravel 5 Calendar, based on gloudemans/calendar
README 文档
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:
| Preference | Default Value | Options | Description |
|---|---|---|---|
| template | None | None | A string containing your calendar template. See the template section below. |
| local_time | time() | None | A Unix timestamp corresponding to the current time. |
| start_day | sunday | Any week day (sunday, monday, tuesday, etc.) | Sets the day of the week the calendar should start on. |
| month_type | long | long, short | Determines what version of the month name to use in the header. long = January, short = Jan. |
| day_type | abr | long, short, abr | Determines what version of the weekday names to use in the column headers. long = Sunday, short = Sun, abr = Su. |
| show_next_prev | false | true/false | Determines whether to display links allowing you to toggle to next/previous months. See information on this feature below. |
| segments | false | true/false | Default the next/prev link will use a query string, if you set this var to true, URI segments will be used |
| eventContainer | <p {attr}>{event} | Some HTML containing {event} and optional {attr} | HTML DOM to show the event ({event} is the string with the event's description and {attr} are the attributes defined in data array) |
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();
vics80/calendar 适用场景与选型建议
vics80/calendar 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5.15k 次下载、GitHub Stars 达 8, 最近一次更新时间为 2015 年 05 月 12 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「calendar」 「laravel」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 vics80/calendar 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 vics80/calendar 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 vics80/calendar 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A modern PHP library for generating iCalendar v2.0 events
A powerful event calendar Tool for Laravel's Nova 5.
Check for holidays - localeaware
This TYPO3 distribution provides a sample website using bootstrap and the extensions pizpalue and container_elements. The distribution tailors Swiss market featuring German as default language and additional translations to French, English and Finnish.
Alfabank REST API integration
Shim repository for FullCalendar
统计信息
- 总下载量: 5.15k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 7
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2015-05-12
