Puzzler
Движок для проектно-фрагментных сайтов
Пэт-проект
Веб-разработка
Легковесное решение для построения независимых от БД проектно-фрагментных сайтов с адаптацией под архитектуру контента, основанную на ориентированном ацикличном дереве с автономными узлами
Puzzler 1.1
Движок построен по принципу иерархического разделения:
Ядро
+ Шаблоны темизации
Маршрутизация
Проект
&& конфигурациЯ
⥁
Контентные фрагменты
&& конфигурациИ
Добавочные модули для торговых предложений:
Маркетинг
,
Логистика
,
Лингвистика и лексика
,
Трейдинг
Особенности и преимущества
Минимальные эксплуатационные издержки и требование к инфраструктуре
- полная независимость и отсутствие необходимости в выделенных ресурсах для управления СУБД, абстракций над хранилищем и накладных расходов ORM
- совместимость с PHP 5.2+
- эффективное функционирование даже на low-end серверах с ограничениями нагрузок
- упрощённая переносимость и развёртывание с минимизацией компонентных зависимостей
Недетерминированный роутинг с URI-декодингом и предсказуемой интерпретацией маршрутов
- гибкая динамическая регистрация маршрутов и связей полагаясь на физическую файловую структуру, что позволяет легко переопределять точки входа без модификации кодовой базы
- безопасность на уровне файловой системы, механизмов контроля доступа серверного ПО, перехвата и обслуживания запросов
- защиты от PHP-инъекций и отсутствие SQL-инъекций по определению
Многопроектность и автономность контентных фрагментов
- поддержка многосайтовости с параметризованными конфигурациями независимых изолированных проектов и возможностью переключения между ними
- возможность повторного использование контентных фрагментов в различных узлах с минимальными каскадными изменениями связей
- уникализация фрагментов через инкапсуляцию их слоёв представления, стилей и сценариев с динамической инъекцией в узел без нарушения целостности окружения проекта
Темизация и шаблонизация
- динамическое переключение тем проектов в режиме выполнения
- файловый рендеринг шаблонов (PHP-based)
- кэширование статических ресурсов с механизмом принудительного сброса кэша user-agent’а (через хэш-значения только для изменённых ресурсов)
- базовый шаблон на основе Semantic UI framework и 3rd party компонентов
Дополнительные возможности
- Встроенная система отладки и логирования
- Ролевая модель идентификации, аутентификации и авторизации
Структурированная преднастройка проекта
Проект рассматривается как полнофункциональная бизнес-единица с параметризуемыми атрибутами и мета-данными, полностью масштабируемыми в его рамках и задействуемыми движком при формировании результатов:
- Брендирование и идентификация — имеет уникальное имя (name), торговую марку (trademark или brandname), спецификацию вида деятельности (specification), слоган (slogan) и описание (about), год запуска проекта (launchyear), ценовой диапазон (pricerange) в свободной форме (по запросу / от ? / от ? до ? / по размерам изделия м2 ...), фраза-стимул в контактной информации (stimulus), ключевые слова (keywords) для маркетингового продвижения
- Локализация и региональные настройки — поддержка многозначных языковых и валютных параметров: коды валют в соответствии с ISO 4217 (currency), языки по регистру языковых меток IANA (language), локализацию объектов по лексической единице (lexical unit) или словарю $lu (используя адаптер констант "def" с программной среды, лексические и единицы языка)
-
Контактная информация и мультимодальная коммуникация — конфигурация поддерживает:
- contact — контактная информация, способ связи/схема → данные
- location — местонахождение
- region — регион по регистру языковых меток IANA
- country — страна
- timezone — временная зона по базе данных 2019.1
- city — город или населённый пункт, район, область, посёлок, село, деревня...
- postcode — почтовый индекс
- address — название улицы, номер дома, корпус, строение, павильон, офис, комната, квартира...
- geo — географические координаты (широта, долгота)
- lat — широта
- lon — долгота
- phone — телефонный номер по закрытому плану нумерации (рекомендации ITU-T номер E.164)
- pref — префикс
- intl — международный
- locl — местные вызовы/внутризоновой (8)
- code — код геозоны
- num — номер абонента
- ext — добавочный номер
- pref — префикс
- email — электронная почта
- other — другие способы связи (можно использовать HTML и CSS разметку)
- location — местонахождение
- contact — контактная информация, способ связи/схема → данные
- Динамическое управление временем работы — массив workhours задаёт гибкий график, адаптируемый под специфику (например, почасовое расписание или круглосуточный режим), compact – компактная форма (несколько или промежутки дней и время, пн–пт с 9:00 до 24:00, сб–вс - выходной / ежедневно с 9 до 24 / ежедневно, круглосуточно / график разный), micro - для корректного использования в стандарте схем семантической разметки данных SCHEMA.ORG и микроданных. Используется для составления компактной и микро формы, расчёта оставшегося рабочего времени или времени до открытия
- Инъекции для верификации и встроенного контента: verify — коды для подтверждения прав на ресурс, embed — коды сторонних ресурсов и сервисов для встраивания (веб-аналитика, счётчики, отчёты, расширенная электронная торговля (Enhanced Ecommerce UA), виджеты, кнопки, офлайн-данные и т. д.)
- uvp - Уникальное ценностное предложение (Unique Value Proposition), масштабируется на весь проект
- specials - Особые и необычные предложения (Specials && Uncommon offers)
- usp - Дополнительные торговые преимущества (Unique Selling Points)
- clients - Значимые клиенты
Фрагменты могут представлять не только статический контент, но и структурированные товарные предложения, включающие:
- title, =name, название
- description для человека (direct), для ПС (SE) составиться из данных юнита, его айтемсов
- уникальное торговое предложение (Unique Selling Proposition, Unique Selling Point)
- предложения, основываясь на семантической разметке SCHEMA.ORG по схемам product -> aggregateoffer (=aggregate, совокупное) -> offer
Автоматически добавляются:
- total - их кол-во
- lowPrice - минимальная цена
- highPrice - максимальная цена
- image - дополнительные изображения (если файлы существуют)
- available - и юниту и айтемсам наличие (по умолчанию, всегда в наличии), можно использовать: Discontinued, InStock, InStoreOnly, LimitedAvailability, OnlineOnly, OutOfStock, PreOrder, PreSale, SoldOut
- date - дата публикации (по умолчанию, всегда сегодняшняя, если не указана конкретно)
- кол-во перекрёстных юнитов (cross-promotion, cross-reference, xRef), 3-5-7 (для перелинковки)
- кол-во доступных(!) способов доставки
- найденное наименьшее время ожидания доставки в минутах
- доступные временные интервалы доставки
- кол-во свободных доставщиков/курьеров каждые n минут (0..60)
Для поисковых систем (ПС) и страниц результатов (SERP) автоматически генерируются релевантные мета- и структурированные данные, учитывающие:
- разделители , - // | / > · ... (может предотвратить урезание заголовка и не включение в него бренда)
- предотвращение возможного усечения meta tags ПС
- минимальные размеры для эффективного отображения сниппета
- оптимальные размеры для избегания пенальти по урезанию сниппета (пенальти по размеру)