[oneBooking 3.2.0] Поддержка модулей

Представляю новую версию системы бронирования с улучшениями и дополнениями. Кроме оптимизации кода и небольших исправлений, есть существенные доработки. Самая важная — это поддержка модулей (о чем я писал в предыдущей статье). Теперь функционал системы будет расширяться исключительно модулями. Это дает хорошую масштабируемость и экономию средств. Можно купить только то, что необходимо в данный момент. Для примера, система бронирования для Wordpress стоит $50 плюс $15 за поддержку.
Про остальные изменения ниже.
Вот ченжлог:
- Добавлена поддержка модулей.
- Для объекта бронирования теперь можно самостоятельно указывать связь с продуктом miniShop2.
- Добавлены системные настройки для автоматически создаваемых продуктов miniShop2.
- Добавлен сниппет obGetPrice, возвращающий текущую стоимость объекта для указанного дня с учетом специальных предложений.
- Возвращена поддержка PHP 5.3.
- Оптимизирован код.
- Исправлены найденные ошибки.

Многие просили сделать бронирование ресурсов. oneBooking изначально не был рассчитан на такую возможность. Но в нем есть связь с продуктами miniShop2. Она нужна для подключения системы оплаты. Эта связь до данной версии была скрыта от пользователя. Т.е. создавался невидимый продукт. Теперь для объекта можно указать уже созданный продукт. Напомню, продукт miniShop — это ресурс MODX, имеющий класс msProduct.

Если при создании объекта не указать для него продукт, то он будет создан автоматически согласно системным настройкам. Связь пока односторонняя. При изменении объекта у продукта обновляется заголовок и цена. В дальнейшем попробую сделать и обратную связь.

Для продуктов miniShop2 появились дополнительные системные настройки.
  • Категория по-умолчанию — id родительского ресурса, являющегося категорией miniShop2, в которую будет добавлен автоматически созданный продукт. Если id не указан, то будет создана категория ms2OneBooking.
  • Шаблон по-умолчанию — шаблон, который будет указан для автоматически созданного продукта.
  • Обновлять продукт — определяет, будет ли изменяться продукт miniShop2 при изменении объекта oneBooking. Название объекта синхронизируется с заголовком (pagetitle) продукта, а цена объекта с ценой продукта. Связь односторонняя и работает только при изменении объекта.
  • Удалять продукт — если указано «Да», то при удалении объекта продукт также будет удален.
Также для удобного определения текущей цены добавлен сниппет obGetPrice. У него есть 3 параметра:
  • resource — id продукта (ресурса) miniShop2.
  • object — id объекта oneBooking.
  • date — дата. По-умолчанию берется текущая.
Обязательным является один из первых двух параметров. Можно указать id объекта oneBooking. Но для чанков и шаблонов удобно использовать второй
[[!obGetPrice? &resource=`[[*id]]`]]
Через связь найдется нужный объект. Это может пригодится при использовании модуля «Периоды», чтобы на странице ресурса отображалась цена с учетом спецпредложений. Можно, например, в чанке msProduct.content минишопа строчки
[[!+price]] [[%ms2_frontend_currency]]
[[!+old_price:gt=`0`:then=`<span class="old_price">[[+old_price]] [[%ms2_frontend_currency]]</span>`:else=``]]
заменить на
[[!obGetPrice? &resource=[[*id]]]]
Если в указанный (текущий) день есть спецпредложения, то выведется что-то типа
2000 руб. 1500 руб.

Потихоньку наполняется раздел помощи. В дальнейшем скорее всего он будет переделан на дерево.


Вот пока все.
Сергей Шлоков
11 ноября 2015, 08:42
modx.pro
2
1 340
+8
Поблагодарить автора Отправить деньги

Комментарии: 0

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0