YmNIK13 / tabel

Report Cart

Home Page:http://drupal.srv-t.pp.ua

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Учебный проект на Drupal

Идея: Реализовать сайт табельного учета рабочих дней сотрудников.

Тестовый адрес: http://drupal.srv-t.pp.ua/otdely

1. Part 1 - "Drupal 8 - Beginner"

Реализовано:

1. Создана сущность "sotrudnik" с полями:

  • Дата рождения
  • Отдел (таксономия)
  • Страна (плагином)
  • Ф.И.О.
  • Фото сотрудника
  • Был на работе (обрабатывается плагином)

2. Создана таксономия "Отдел"

3. Локально cгенерировались данные модулем DEVEL

4. Для таксономии "Отдел" создано представление (Отделы)

5. Созданы и привязаны две страницы:

  • Главная
  • About us

6. Все правки закомичены и запушены на github

2. Part 2 - "Drupal 8 - let’s practice"

Реализовано:

1. Создана своя тема "HRD" на основе 'bartik'

  • cконфигурирован twig
  • подключены свои стили
  • использовано два хука (доавбление данных и перегрузка темплейта для меню)
  • перегружены темплейты:
    • корневой
    • отдельно для страниц
    • отдельно для главной
    • для своего меню
    • для нод
  • добавлена своя настройка темы, со значением по умолчанию

2. Создан модуль "report_cart_block".

Цель модуля, оформить вывод дат посещений текущего месяца Report Cart

В модуле реализовано:

  • свой темплейт через хук
  • подключены стили
  • реализован свой хух изменения даты

3. Part 3 - "Drupal 8 - Practice makes perfect..."

1. Реализован модуль для работы через REST запросы.

В модуле реализовано:

1.1. Получение всех дат связанных с данным сотрудником

Запрос GET: http://drupal.srv-t.pp.ua/rc-rest/get.json?nid=2

где nid - id ноды сотрудника

Ответ:

{
    "success": true,
    "work_days": [
        "2019-03-01",
        "2019-03-02",
        "2019-03-03",
        "2019-03-04",
        "2019-03-08"
    ]
}

в случае не корректного ИД или если нода не содержит поля с датами

{
    "success": false,
    "error": "No id or wrong type"
}

==============================================

1.2 запрос POST - добавление рабочих дней связанных с данным сотрудником

Запрос POST: http://drupal.srv-t.pp.ua/rc-rest/post.json

В заголовке указываем: Content-Type: application/json

Без заголовка, данные не добавятся

В теле:

  • обязательный параметр nid - id ноды
  • не обязательный массив dates - даты которые добавляем, в случае отсутвия, добавит сегодняшнюю
{
    "nid": "1", 
    "dates":[
        "2019-03-01",
        "2019-03-02",
        "2019-03-03",
        "2019-03-04",
        "2019-03-08"
    ]
}

в ответ получим схожий JSON с GET-запросом:

{
    "work_days": [
        "2019-03-11",
        "2019-03-01",
        "2019-03-02",
        "2019-03-03",
        "2019-03-04",
        "2019-03-08",
        "2019-03-01",
        "2019-03-02",
        "2019-03-03",
        "2019-03-04",
        "2019-03-08"
    ],
    "success": true
}

как видно из ответа, данные не проверяются на дубли, так же не реализована ацтентификация.

В случае не корректного ИД или если нода не содержит поля с датами

{
    "success": false,
    "error": "No id or wrong type"
}

2. Проект развернут на тестовом хостинге по адресу

http://drupal.srv-t.pp.ua/otdely

3. В процессе изучения Drupal было реализовано еще ряд плагинов по учебным пособиям

  1. ITC - плагин добавляет поле выпадающий список со страной
  2. intro_config - плагин управляет настройкой темы
  3. pages - плагин выводит свой контент в своем шаблоне
  4. dummy - плагин добавляет/удаляет/модицирует сообщения, демонструю работу с хуками как системными так и своими

4. Источники информации

4.1. Видео

4.2. Статьи

About

Report Cart

http://drupal.srv-t.pp.ua

License:GNU General Public License v2.0


Languages

Language:PHP 88.9%Language:HTML 7.4%Language:CSS 3.5%Language:JavaScript 0.2%