Skip to content

Serokuz22/testmon

Repository files navigation

Тестовое задание

Задача может быть выполнена с удовлетворением минимального количества входных требований. Пример обязательного минимума выполнения задачи указан в конце документа. Для выполнения задания нельзя использовать сторонние подключаемые библиотеки. При выполнении использовать php 7. Максимальное время выполнения задания - 7 дней. Краткое описание Скрипт, получая на входе 2 файла с описанием иерархии групп товаров и самих товаров и их привязок к группам, должен вывести совместную иерархию групп и товаров. Дочерние группы связаны с родительскими по полям “родитель”-”id”. Формат входных файлов: groups.csv:

  1. id - идентификатор группы, используется для связи с дочерними элементами
  2. Наименование - наименование группы, должно выводиться как есть
  3. родитель - идентификатор родительской группы
  4. формат описания товаров - шаблон вывода описания товара с метками для интерполяции полей товара
  5. наследовать дочерним - наследовать ли дочерним группам формат описания товаров products.csv:
  6. id - идентификатор товара, не используется в приложении явно
  7. категория - идентификатор группы, к которой относится товар
  8. наименование товара
  9. цена - цена товара перечислен список обязательных полей. Требования Формат вывода группы Программа должна выводить для каждого уровня список групп с их заголовками, товарами и дочерними группами. Формат вывода группы: <h?>Заголовок группы</h?>
  • Описание товара 1 по формату
  • ...
  • Описание товара N по формату
  • [[ Дочерняя группа ]]
Где вместо [[ Дочерняя группа ]] рекурсивно отображается описание группы в том же формате. Заголовок группы должен соответствовать ее уровню. На первом уровне заголовок h1, на втором уровне заголовок h2 и т.д. Табуляция верстки должна соблюдаться. Для табуляции использовать символ [tab]. Формат описания товара Формат описания товара указан на группе и может наследоваться дочерним группам, если это указано в свойстве группы “наследовать дочерним”. В формате описания товара указаны метки для подстановки свойств товара по наименованию их во входном файле. Если метка в формате ссылается на несуществующее свойство товара, она должна быть заменена на UNDEFINED. Должна быть возможность указать дополнительные поля в файле products.csv и ссылаться на них метками в формате описания товара. Пример входных данных: group.csv:

id;наименование;родитель;формат описания товаров;наследовать дочерним 1;Группа 1;;Купите %наименование% по цене %цена%;1 2;Группа 1.1;1;;0 3;Группа 1.2;1;Покупайте больше %name%;1 4;Группа 1.2.1;3;;0

products.csv:

id;категория;наименование;цена; 1;1;супрадин;100 2;2;аспирин;200 3;3;йод;15 4;4;анальгин;20 Пример полного выполнения задачи

  • Группа 1

    • Купите супрадин по цене 100
    • Группа 1.1

      • Купите аспирин по цене 200
    • Группа 1.2

      • Покупайте больше йод
      • Группа 1.2.1

        • Покупайте больше анальгин
Пример обязательного минимума выполнения задачи Группа 1 Группа 1.1 Группа 1.2 Группа 1.2.1

Releases

No releases published

Packages

No packages published

Languages