hashandsalt/kirby3-yasumi

Kirby 3 - Yasumi

v1.0.0 2020-02-14 21:12 UTC

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'
    ]
]