Новые дополнения и их версии
[modRetailCRM 2.5.0] Сниппет выгрузки товаров, нормальная поддержка msOptionsPrice2
Выпустил долгожданное (мной) обновление компонента.
Под капотом первый сниппет ICML, реализующий XML выгрузку товаров в базу RetailCRM
Также реализована полноценная поддержка модификаций товаров msOptionsPrice2
Ниже подробности.
Под капотом первый сниппет ICML, реализующий XML выгрузку товаров в базу RetailCRM
Также реализована полноценная поддержка модификаций товаров msOptionsPrice2
Ниже подробности.
Контроль версий базы данных в GIT (бесплатно)
Всем привет, это не совсем дополнение, сколько приятная возможность для тех кто пользуется git-ом (и не только) при создании своих проектов. Все скрипты написаны на BASH и теоретически должны работать практически на любой машине в которой работает данная оболочка. Если же вы не пользуетесь гитом, ничего, Вы можете делать любые бекапы и импорты своего приложения. А теперь вздохни полной грудью и почувствуй свободу в разработке! без цепей зависимости БД )
[UserTest] - новая версия. Добавлено событие OnTestCalculate.
Если не устраивает стандартная логика расчета (по сумме баллов), то теперь в UserTest можно реализовать свою логику расчета. Для этого добавлено событие OnTestCalculate. На него можно создать свой плагин.
Под катом пример плагина UserTestCalculate.
Под катом пример плагина UserTestCalculate.
msTimeStamp - Снятие метки новинка, особый или популярный по времени
Приложение добавляет дополнительное поле "действителен до" с выбором даты до которой будет действовать метка о том что товар Новинка, Особый или Популярный.
Проверка даты действия метки происходит во время входа пользователя на страницу. Если время действия метки истекло, то запись автоматически удаляется а у товара автоматически снимается метка.
Например можно установить у товара чекбокс Новинка и выбрать дату по наступлению которой товар перестанет быть новинкой
Проверка даты действия метки происходит во время входа пользователя на страницу. Если время действия метки истекло, то запись автоматически удаляется а у товара автоматически снимается метка.
Например можно установить у товара чекбокс Новинка и выбрать дату по наступлению которой товар перестанет быть новинкой
msPre - фильтры по опциям minishop2
[UserTest] - новая версия
Компонент UserTest потихоньку совершенствуется. В новой версии добавлены функции
- Сделаны отдельные таблицы вопросов и результатов теста. Их теперь можно прикреплять к нескольким тестам одновременно. Теперь не нужно делать кучу дубликатов вопросов и результатов.
- Управление порядком ответов и вывод ответов в случайном порядке.
- Валидация ответов на вопрос. Если стоит галочка «ответ обязателен», пользователь должен будет ответить на вопрос прежде чем перейти к следующим вопросам.
- Очистка приглашений.
- Крон оповещения о непройденном тесте для приглашенного пользователя.
- При переходе на новую страницу теста скрол в начало страницы.
Quiz или как не потерять клиента.
Что такое Quiz?
Quiz – в переводе с английского — это викторина, опрос.
Quiz — самая удобная форма для восприятия потенциального клиента, которая позволяет вам продать какой-либо товар(услугу) или получить необходимые данные от клиента.
[sOneDumper] 1.0.0-beta - Импорт/Экспорт резервных копий MySQL
Хочу представить вашему вниманию первую версию компонента sOneDumper, которая позволяет делать резервное копирование баз данных, а также восстанавливать копии из бекапа. За основу был взят более не поддерживаемый Sypex Dumper 2. Переписан скрипт полностью + добавлена поддержка PHP 7.1
Исходник лежит на GitHub.com
Исходник лежит на GitHub.com
[msPromoCode] 1.4.0 Фильтрация заказов по промокоду в списке miniShop2
Обновление затрагивает список заказов miniShop2, а именно форму для фильтрации, в которой можно указать параметр, по которому будет сделана выборка списка заказов.
В новой версии добавлено
Спонсор сего чуда Muscat Catering, все вместе их благодарим! А под катом скриншот того, как это выглядит и рекомендованное действие, которое нужно совершить после обновления компонента.
[jwtSession] Перенос сессии в куки браузера
Привет, друзья!
Вы задумывались, как работают сессии в MODX? Каждый раз, когда кто-то заходит на сайт, PHP генерирует ему уникальный id и сохраняет его в куку PHPSESSID. При этом в базе данных создаётся запись modSession с этим id и содержимым текущей сессии.
При каждом запросе на сайт передаётся кука с id, MODX делает запрос в БД, загружает сессию, а потом сохраняет в неё изменения. Минимум 2 запроса в БД каждый раз.
Что же нам предлагает JWT? Отказаться от всех этих действий на сервере, и выдавать всё нужное сразу в одном токене. Он может храниться в кукисах или в локальном хранилище браузера. Ну а дальше, при запросе, из него будет создана сессия пользователя. Соответственно, мы выкидываем работу с БД и не храним пользовательские сессии на сервере вовсе.
Конечно, сразу же встаёт вопрос — а что будет, если пользователь такую сессию подделает? Стандарт JWT ему этого не позволит. Токены можно прочитать, но не изменить, потому что они все подписаны надёжным алгоритмом с ключом на сервере, который пользователь не знает. Это теория, а теперь переходим к практике в MODX.
Вы задумывались, как работают сессии в MODX? Каждый раз, когда кто-то заходит на сайт, PHP генерирует ему уникальный id и сохраняет его в куку PHPSESSID. При этом в базе данных создаётся запись modSession с этим id и содержимым текущей сессии.
При каждом запросе на сайт передаётся кука с id, MODX делает запрос в БД, загружает сессию, а потом сохраняет в неё изменения. Минимум 2 запроса в БД каждый раз.
Что же нам предлагает JWT? Отказаться от всех этих действий на сервере, и выдавать всё нужное сразу в одном токене. Он может храниться в кукисах или в локальном хранилище браузера. Ну а дальше, при запросе, из него будет создана сессия пользователя. Соответственно, мы выкидываем работу с БД и не храним пользовательские сессии на сервере вовсе.
Конечно, сразу же встаёт вопрос — а что будет, если пользователь такую сессию подделает? Стандарт JWT ему этого не позволит. Токены можно прочитать, но не изменить, потому что они все подписаны надёжным алгоритмом с ключом на сервере, который пользователь не знает. Это теория, а теперь переходим к практике в MODX.