i-avatar777/widget-kolada-dar1

Виджет для рисования календаря Коляда Дар на лето

0.0.6 2020-03-25 20:15 UTC

This package is auto-updated.

Last update: 2024-04-26 05:56:20 UTC


README

Виджет для рисования календаря Коляда Дар на лето

Соответствует БОСТ 000006-7528 "О задании формата даты и времени в программном коде для русского календаря" http://avr3.ru/doHmJp

Выводит месяца в табличный календарь, визуально это выглядит так: месяца по 41 день справа месяца по 40 дней слева, всего таких строк 5, последняя соответственно с одним месяцем

Пример одного первого блока с заголовком

Инсталяция

Для инсталяции библиотеки используйте composer:

{
    "require": {
        "i-avatar777/widget-kolada-dar1": "*"
    }
}

Или через команду

composer require i-avatar777/widget-kolada-dar1

Пример использования

$v = \iAvatar777\widgets\KoladaDar\KoladaDar::init([
    'dayStart'    => 9,
]);
echo $v->run();

dayStart - день недели с которого начинается лето от 1 до 9

Расширенный вид запуска с параметрами стилей таблицы:

use iAvatar777\widgets\KoladaDar\KoladaDar;

$v = KoladaDar::init([
    'dayStart'    => 9,
    'isSacral'    => true,
    'optionsWeek' => [
         1 => ['style' => 'background-color: #000000; color: #ffffff;'],
         2 => ['style' => 'background-color: #ffa6a6;'],
         3 => ['style' => 'background-color: #ffd2a6;'],
         4 => ['style' => 'background-color: #ffffa6;'],
         5 => ['style' => 'background-color: #a7fca4;'],
         6 => ['style' => 'background-color: #a6a6ff;'],
         7 => ['style' => 'background-color: #bda5d1;'],
         8 => ['style' => 'background-color: #d4a6f7;'],
         9 => ['style' => 'background-color: #ffffff;'],
     ],
    'optionsColumn' => [
        1 => ['style' => 'width: 90px;'],
        2 => ['style' => 'width: 90px;'],
        3 => ['style' => 'width: 90px;'],
        4 => ['style' => 'width: 90px;'],
        5 => ['style' => 'width: 90px;'],
        6 => ['style' => 'width: 90px;'],
     ],
    'weekDays' => [
        1 => 'Понедельникъ',
        2 => 'Вторникъ',
        3 => 'Третейникъ',
        4 => 'Четверикъ',
        5 => 'Пятница',
        6 => 'Шестица',
        7 => 'Седьмица',
        8 => 'Осьмица',
        9 => 'Неделя',
    ],
    'emptyCell'         => ' ',
    'isDrawIds'         => true,
    'isDrawDateGrigor'  => true,
    'DateGrigorFormat'  => 'd.m.Y',
    'tableOptions'      => ['class' => 'table table-hover table-striped'],
    'monthNames'        => [
        1 => '1 Рамхатъ',
        2 => '2 Айлѣтъ',
        3 => '3 Бейлѣтъ',
        4 => '4 Гэйлѣтъ',
        5 => '5 Дайлѣтъ',
        6 => '6 Элѣтъ',
        7 => '7 Вэйлѣтъ',
        8 => '8 Хейлѣтъ',
        9 => '9 Тайлѣтъ',
    ],
    'cellFormat'       => function (DateTime $d, $options) {
        $day = $options['day'];

        return $day . KoladaDar::tag('span', ' / ' . \iAvatar777\services\DateRus\DateRus::format('j K', $d->format('U')), ['style' => 'color:#ccc; font-size:70%;']);
    },
]);
echo $v->run();

optionsWeek - массив опций для тега tr для каждой недели, индексы могут быть от 1 до 9

optionsColumn - массив опций для тега th для каждой колонки месяца, индексы могут быть от 1 до 6

weekDays - массив названий недель, индексы могут быть от 1 до 9

isSacral - флаг. Это священный год? Если да то все месяца будут по 41 дню

emptyCell - содержимое для отображения пустой ячейки дня

isDrawIds - bool - флаг. Добавлять атрибут id в тег td (формат day_[m]_[d]) для дней

isDrawDateGrigor - bool - флаг. Добавлять подсказки к каждому дню в виде григорианской даты? true - добавлять, false - не добавлять. По умолчанию добавлять - false.

DateGrigorFormat - string - форматы даты для подсказки если isDrawDateGrigor = true. По умолчанию PHP date() d.m.Y

DateGrigorClass - string - Название класса для григорианской даты если $isDrawDateGrigor=true

DateGrigorFirst - string - Дата первого дня года в григорианском календаре в формате 'Y-m-d', по умолчанию текущий год считается

monthNames - array - массив названий месяцев с индексами от 1 до 9

cellFormat - string | callable - формат даты для ячейки месяца по # БОСТ №000006-7528. Может быть задана в виде формата или как функция. Если задана в виде функции то формат следующий function(\DateTime $d, $arr), где $arr это массив пока с одним индектом day который содержит порядковый день месяца по русскому календарю, второй параметр будет в последствии дополнен до полной версии русского стандарта даты.

tableOptions - array - аттрибуты для тега table

Выдаст такой календарь:

Как вычислить день недели дня старта лета

В разработке.

  • для 7528 лета (2019-2020) день = 9
  • для 7529 лета (2020-2021) день = 5

Если вы используете bootstrap

Если вы используете bootstrap, то установите параметр tableOptions = ['class' => 'table table-hover table-striped']. Пример:

$v = \iAvatar777\widgets\KoladaDar\KoladaDar::init([
    'dayStart'    => 9,
    'tableOptions'      => ['class' => 'table table-hover table-striped'],
]);
echo $v->run();

Ссылки

Славяно-Арийский Календарь http://energodar.net/ha-tha.php?str=vedy%2Fkalendar

БОСТ №000006-7528 О задании формата даты и времени в программном коде для русского календаря https://github.com/i-avatar777/kon/blob/master/%D0%91%D0%9E%D0%A1%D0%A2/%D0%91%D0%9E%D0%A1%D0%A2000006-7528.md

Yii2 https://www.yiiframework.com/

Автор и Творец

Святослав Арханегльский @ArhandelSky999