Секретные записки WEB-программиста




100mbru, bitrix, CentOS, cms, drupal, java, joomla, LAMP, linux, mysql, nicru, Open-Source, php, Red Hat, seo, Typo3, ubuntu, win, windows, авто, администрирование, алгоритмы, алкоголь, бизнес, битрикс, видео, военмех, выборы, германия, джино, домены, интересности, исследования, картинки, кино, компьютеры, ливия, магазин, маразм, мастерхост, обработка-изображений, пейнтбол, политика, политэкономия, прикольное-видео, программирование, путешествия, работа, религия, рунет, сайтостроение, сео, сми, технологии, украина, форум, хиханьки, холивары, хостинг

CMS для интернет-магазинов (QS-CMS)

02.04.2011

Занимаюсь развитием этой CMS c 2010 года по настоящее время.

концепция:

  • весь текстовый контент хранится в базе, фотографии регистрируются в базе, хранятся в виде отдельных файлов, в том виде в котором они были загружены, ресайз по месту - при отображении, имеется кеширование ресайзнутых фотографий
  • логика реализована в обработчиках - "хандлерах" (php-файлах), существуют системные (встроенные) обработчики, пользователь может создавать свои, пользуясь стандартным интерфейсом,
  • представление - шаблоны страниц и шаблоны хандлеров хранятся в базе, допускается произвольная вложенность шаблонов и обработчиков
  • многоуровневое кеширование - на уровне товара, хандлера, страницы,
  • допускается поиск товаров как по набору параметров, так и по произвольному тексту (имеется встроенная поисковая система)
  • имеется система кастомизации административной части.
  • разграничение доступа пользователей административной части

Справа - картинка главной страницы административной панели - на ней отображается текущее состояние магазина - список последних заказов, список последних обращений пользователей, общее количество товаров и заказов, наличие обновлений CMS (если сайт магазина прописан на сервере обновлений)

Встроенный HELP тут (на отдельном домене выложен весь контент встроенных в CMS контекстных подсказок - не полон, еще в разработке)

Примеры сайтов на этой CMS: z-i-v.ru , test7.z-i-v.ru , spell.ru , zdrav.club , anangaranga.ru , outlethome.ru , funevents.ru , bpm.su , only-fun.ru , casino-boom.ru , svet-it.ru , diaseptic30.ru ...

Редактирование глобального списка параметров товаров

для того, чтобы товару можно было задать какой-либо параметр следует сначала создать его этой странице, а потом - привязать его к одной из товарных групп (или к нескольким).

Редактирование параметра

Для каждого параметра в данном разделе административной панели можно задать:

  • Название (произвольный текст) - отображается в таблице параметров на странице товара
  • Внутреннее обозначение (произвольный текст латинскими символами) - используется для формирования шаблонов, сниппетов,
  • Тип
  • Список вариантов значений (только для параметра перечисляемого типа - см.далее)

В настоящее время поддерживаются слендующие типы параметров:

  • Целое число (i - integer)
  • Вещественное число - число с плавающей точкой (f - float)
  • Строка переменной длины до 255 символов (v - varchar)
  • Многострочный текст без ограничения длины (t - text)
  • Перечисляемый тип - значение назначается из заранее заданного списка значений (e - enum)
  • Мультивариантный тип - выбирается список значений из перечня (m-multi)
  • Дата - при редактировании значения выскакивает календарь

Параметры перечисляемого типа могут быть зависимыми - т.е. список вариантов значений одного параметра зависит от значения другого параметра (например: список брендов зависит от названия производителя).

Любой из параметров может быть вычисляемым - т.е при сохранении карточки товара это параметр вычисляется по значению других по зарангее заданному алгоритму (php-скрипту)

Редактирование групп параметров

Параметры можно группировать - при этом они будут также группироваться при отображениии в таблице параметров страницы товара (отображаться будет также и название группы)

Существуют две встроенные группы:

  • default - группа "по-умолчанию" - её название вовне не отображвется
  • hidden - группа "скрытых параметров" - вовне не отображается ни её название ни её параметры (если только они явно не присутствуют в шаблоне) - они могут быть использованы в служебных целях - например для установления связей между товарами (по значению скрытых параметров можно например отображать "список рекомендованных аксесуаров товара")

Пользователь имеет возможность создавать новые группы параметров и управлять видимостью параметров этой группы при отображении.

При создании новых параметров, они привязываются к группе default, в дальнейшем любой параметр можно переместить в любую группу

Редактирование внешнего представления каталога товаров

Разбиение товаров на группы во внешнем представлении не обязательно должно совпадать с группировкой товаров в административной панели.

CMS имеет гибкую структуру внешнего каталога, в ней можно задавать разбиенние товаров на группы по значению любого перечисляемого параметра (типа enum). причём для каждого узла дерева товаров можно задать собственный параметр для дальнейшего разбиения (кроме тех, что уже были использованы в текущем пути от корня дерева). Глубина разбиения не ограничена.

Редактирование списка товарных групп административной панели

эти товарные группы предназначены только для внутренней группировки товаров и привязки к ним шаблонов представления - во внешнем представлении товары группируются в соответствии с настройками "меню каталога товаров".

Редактирование списка параметров товарной группы

Список параметров товарной группы формируется путём отбора параметров из глобального списка параметров, порядок товаров в этом списке задаёт порядок параметров на странице товара в административной панели и в автоматически генерируемой таблице параметров страницы товара во внешнем представлении.

Замечание: на странице товара во внешнем представлении список параметров и их значений может быть сформирован или автоматически (полный список) или вручную прописаны избранные параметры в желаемом порядке. Тот или иной вариант представления задаётся шаблоном страницы товара.

Любой из параметров может быть объявлен "вариантным". Если хотя бы один параметр объявлен вариантным, то считается, что каждый товар этой товарной группы имеет варианты изготовления (модификации), отличающиеся только вариантными параметрами и имеющие остальные параметры совпадающие.

Фактически (как это реализовано в CMS) - если нет вариантных параметров - это означает, что все товары имеют только по одному варианту.

Для каждого варианта (товара - если нет вариантных параметров) создаются поля "артикул", "цена базовая", "цена розничная". Во внешнем представлении отображается розничная цена. Для цен можно задавать формулу, по которой из базовой цены может автоматически расчитываться розничная. Поле "Артикул" используется для синхронизации данных между CMS и внешней программой учёта товаров (например - 1С)

Редактирование темплейтов (шаблонов товарной группы)

Список товаров товарной группы

Для редактирования товара необходимо кликнуть по его названию.

Само название формируется из двух шаблонов: сниппет заголовка и сниппет товара.

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

это ещё не конец - это примерно 10% возможностей CMS

продолжение будет!

Редактирование глобального списка параметров товаров
Редактирование параметра
Редактирование внешнего представления каталога товаров
Редактирование списка товарных групп административной панели
Редактирование списка параметров товарной группы
Редактирование темплейтов (шаблонов товарной группы)
Список товаров товарной группы