Skip to content

akiyatkin/catalog

 
 

Repository files navigation

catalog используется с infrajs

Проект переехал на новый адрес 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 75.2%
  • Smarty 24.8%