hashandsalt / kirby3-yasumi
Kirby 3 - Yasumi
v1.0.0
2020-02-14 21:12 UTC
Requires
- azuyalabs/yasumi: ^2.2
- getkirby/composer-installer: ^1.1
This package is auto-updated.
Last update: 2024-09-28 05:52:00 UTC
README
获取任何国家任何年份的官方公共假日及其日期。这是一个围绕Yasumi库的包装器,将其公开为Kirby站点方法。Yasumi能做的任何事情,你都应能够将其链接到站点方法。
安装
手动
要使用此插件,请将所有文件放在site/plugins/kirby3-yasumi
中。
Git子模块
git submodule add https://github.com/hashandsalt/kirby3-yasumi.git site/plugins/yasumi
Composer
composer require hashandsalt/kirby3-yasumi
商业用途
此插件免费,但如果您将其用于商业项目,请考虑
使用方法
获取2020年美国的所有假日 - 注意,这是一个包含翻译的大型数组。如果您只想获取日期,请继续阅读。
$site->holidays('USA', 2020);
如果想让它随着当前年份滚动,使用date()...
$site->holidays('Netherlands', date("Y"));
只想获取日期?
$holidays = $site->holidays('France', 2020); $days = []; foreach ($holidays->getHolidayDates() as $date) { $days[] = $date; } dump($days);
高级
以下示例使用Yasumi与我的Recurr插件结合使用,以过滤掉在公共假日上的重复事件日期。感谢Bruno Meilick提供的过滤器数组代码。
<?php // Get set of dates from Recurr $events = $site->recurr('2020-01-01 20:00:00', '2020-01-01 22:00:00', 'WEEKLY', ['WE', 'TH', 'FR'], '2021-01-26'); // Get Holidays for USA for Current Year $holidays = $site->holidays('USA', date("Y")); // Turn those holidays in to an array of just dates $filter = []; foreach ($holidays->getHolidayDates() as $date) { $filter[] = $date; } // Filter out those dates from events $filteredEvents = array_filter($events, function($event) use ($filter) { $event = implode('//', $event); foreach($filter as $day) { // if contains then discard if (strstr($event, $day) !== false) { return false; } } // else keep return true; }); dump($filteredEvents); ?>
集合
如果您想在面板中显示假日,可以使用提供的holidays
集合。它具有所有假日的标题、日期和类型。这需要Roman Steiner的Pages Display Section插件。
sections: holidays: type: pagesdisplay headline: "Holidays" text: "{{page.date.toDate('Y-m-d')}}: {{page.title}}" query: kirby.collection('holidays')
国家、年份和使用的区域设置可以在配置中设置
<?php return [ 'hashandsalt.yasumi' => [ 'country' => 'Germany/LowerSaxony', 'year' => '2020', 'locale' => 'de_DE' ] ]