Проект переехал на новый адрес infrajs/catalog
Каталог не использует базу данных. Имеет ограничение в ~1000 полных описаний на самом простом хостинге. При использовании memсache и хороших серверов ограничение можно подвинуть. ##Подключение
"childs":{
"catalog":{
"external":"*catalog/catalog.layer.json"
}
}
Excel документы в папке data/catalog/
будут интерпретироваться, как данные для каталога.
В папках data/catalog/{producer}/{article}/
должны лежать картинки и docx файлы с полным описанием позиций каталога.
Для автоматически сфомированных фильтров необходим отдельный слой
{
"external":"*catalog/filters.layer.json",
}
Список позиций можно фильтровать по разным параметрам.
Фильтрация реализуется с помощью магиченской метки-параметра в адресной строке &m=key:param1=value1:param2=value2
.
Где key
хэш уже переданных на сервер параметров, а param1
и param2
это только что добавленные параметры.
Метка m
должна передаваться во все php файлы, которые работают с выборкой. В описании слоя это делается подстановокой в шаблоне ...file.php?m={infra.Crumb.get.m}
Ответ сервера содержит уже новый хэш mark
включающий и только что переданные параметры.
В скрипте весь набор параметров с новыми и старыми получается методом $md=Catalog::initMark($ans);
где $md
ассоциативный массив со всеми параметрами.
В $ans
будет добавлено свойство mark
которое будет содержать хэш с новыми параметрами для использования в следующих ссылках.
initMark
настроена на работу с параметром &m=
из адресной строки.
Список доступных параметров указан в config.catalog.filters
, кроме указанных есть предопределённые
{
"count":10,
"reverse":false,
"sort":false,
"producer":{},
"group":{},
"search":false,
"more":{},
"cost":{}
}
Данные каталога получаются с помощью $data = Catalog::init();
Дальнейшая работа осуществляется средствами Xlsx::runGroups
, Xlsx::runPoss
из расширения itlife/files
У позиции значения Производитель
и Артикул
имеют свои копии с удалёнными некоторыми символами, которые нельзя использовать в адресной строке producer
и article
.
У групп descr.Наименование
и title
.
Уникальность позиции определяется парой producer
и article
эти параметры используются для ссылки на страницу полного описания позиции catalog/producer/article
.