Лабораторна робота №5
Робота з багаторівневою структурою даних
Проект: PHP-Advanced
Завдання 1 (PHP). Дано масив категорій
https://gist.github.com/alexanderkuzmenko/9da6b08b826d62df57cf4ef1cbcfc80a
Побудувати дерево категорій та вивести його багаторівневим списком
Прохід по масиву для формування дерева категорій був лінійними (використовувався лише один цикл)
Другий крок - рекурсивно відобразити дерево у вигляді списку
Завдання 2 (Yii2 Advanced). Створити структуру таблиць даних, задати правильно типи, індекси, зв'язки
department | |||
department_id | department_name | parent_id | type_id |
1 | Рада директорів | 0 | 1 |
2 | Головна виконавча рада | 1 | 1 |
3 | Операційний центр | 2 | 2 |
4 | Фінансовий центр | 2 | 2 |
5 | Центр розробки | 2 | 2 |
6 | Відділ кадрів | 3 | 3 |
7 | Відділ продажів | 3 | 3 |
8 | Маркетинговий центр | 2 | 2 |
9 | Відділ аудиту | 4 | 3 |
10 | Відділ податків | 4 | 3 |
11 | Казначейський відділ | 4 | 3 |
12 | Рекламний відділ | 8 | 3 |
13 | Відділ аналізу потреб споживачів | 8 | 3 |
14 | Відділ зв'язків з громадськістю | 8 | 3 |
15 | Відділ розробки | 5 | 3 |
16 | Відділ досліджень | 5 | 3 |
17 | Відділ внутрішньої інфраструктури | 5 | 3 |
18 | Відділ статистики | 3 | 3 |
19 | Відділ ризиків | 4 | 3 |
department_type | |
type_id | name |
1 | Board |
2 | Center |
3 | Department |
Завдання 2. За даними із завдання 2 розробити сторінку з представленням структури організації у вигляді ієрархії за таким зразком
Не обов'язково, але бажано:
Завдання 3. Створити віджет для виводу списку категорій.
Шаблон віджету https://gist.github.com/alexanderkuzmenko/61c3c94049f5db2fae60522a1f9771a0
Категорії повинні виводитись у вигляді акордеону, або випадного списку select в залежності від назви темплейту, який ми передаємо в віджет:
<?= \app\components\MenuWidget::widget(['tpl' => 'menu'])?>
<?= \app\components\MenuWidget::widget(['tpl' => 'select'])?>