[xCalc] Универсальный конструктор калькуляторов

После msWallpapers у меня родилась идея разработать универсальный конструктор калькуляторов. Мне как раз поступил заказ на разработку двух калькуляторов, было решено делать по ним базу (и их на базе) нового компонента.

Хотелось разработать что-то такое универсальное, что могло бы решить большинство задач по калькуляторам (не без кастомизации, конечно). Я считаю, что у меня это получилось!
Друзья, представляю вашему вниманию xCalcУниверсальный конструктор калькуляторов!

Потыкать:
* Калькулятор стоимости подоконников

Особенности


  • Компонент разрабатывается с опорой на универсальность и внешнюю кастомизацию.
  • Для произведения расчётов в каждом конкретном калькуляторе используется свой сниппет (PHP).
  • Каждый конкретный калькулятор можно стилизовать, как угодно (HTML + CSS + Fenom).
  • Поля не привязываются жёстко к конкретному калькулятору. Это значит, что одно поле можно использовать в нескольких калькуляторах сразу.
  • Полю можно указать шаблон вывода, а при подключении к калькулятору подменить его, тоже самое и со значениями по-умолчанию.
  • Можно задать обязательность заполнения любого поля.

Для кого


Любой калькулятор требует определённой степени настройки. Для произведения расчётов в каждом конкретном калькуляторе используется свой сниппет. Следовательно, разработчик взявшийся за настройку калькулятора, должен хоть немножко знать PHP, чтобы можно было в сниппете описать взаимодействие полей друг с другом.

Типы полей


Компонент имеет список типов полей, каждое из которых работает по своему.

Radio
Одиночный выбор. Пожалуй, самый востребованный тип поля во многих калькуляторах. Тип msProducts частично реализован на нём.

Checkbox
Множественный выбор или вообще без выбора значения. Можно использовать для каких-то дополнительных опций.

msProducts
Очень интересный тип поля. Позволяет вывести список товаров с возможностью выбора одного из них для использования его цены в расчёте.

Number
Числовое поле. Можно использовать для указания длины/ширины/высоты/кол-ва и т.п.

Text
Текстовое поле. Можно использовать для указания комментария или чего-то подобного.

Развитие


Я планирую развивать и расширять компонент. Сейчас в планах внедрить:
  • Пару событий плагинов для пущей кастомизации,
  • Возможность добавлять свои типы полей,
  • Возможность расширять функционал JS не прибегая к правкам исходного default.js,
  • Взаимодействие с miniShop2 (добавление «результатов расчёта» в корзину),
  • Взаимодействие с FormIt + AjaxForm (подача заявки по результатам расчёта, отсылка расчёта на мыло юзеру),
  • Пару демо калькуляторов при установке компонента.
Принимаю идеи и советы по развитию компонента. Самые интересные и востребованные реализую в новых версиях.

Примеры


Кейсы создания калькуляторов на базе xCalc.

Цена


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

Как скачать


Компонент можно купить в магазине дополнений Modstore.pro.
Павел Гвоздь
08 декабря 2018, 18:23
modx.pro
4
2 779
+15
Поблагодарить автора Отправить деньги

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

Павел Гвоздь
10 декабря 2018, 12:24
+2
Друзья, компонент появился в Modstore.pro!
modstore.pro/xcalc
    Karpunin Alexey
    10 декабря 2018, 14:51
    +2
    Это прекрасно!))
      Рамис Хамидуллин
      14 декабря 2018, 22:53
      0
      Супер! Документация будет на docs.modx.pro?
      Сергей Шлоков
      24 декабря 2018, 21:33
      0
      а вы научили компонент нормально удаляться?
      Андрей
      29 июня 2019, 13:51
      0
      Добрый день.
      Можно ли сделать так, чтобы какие-то поля были выбраны по-умолчанию и отменить выбор было бы нельзя?
        Павел Гвоздь
        29 июня 2019, 18:58
        0
        По-умолчанию — можно.
        Отменить нельзя — не пойму смысла.
        Андрей
        29 июня 2019, 14:17
        0
        также интересно — можно ли результат считать на лету, без нажатия кнопки «Рассчитать»?
          Павел Гвоздь
          29 июня 2019, 19:00
          0
          Допилить кусочек в JS (там буквально 1 строчка). Однако надо понимать, что это постоянно, при любом действии, обращение к серверу.
          Filipp
          06 августа 2019, 12:14
          0
          добрый день, столкнулся со странной проблемой.
          На своём сайте установил xcalc и попробовал реплицировать кейс с подоконниками из документации.
          Относительно все работает, практически — нет. Вся проблема в том что не подтягивается в калькуляции цена товара из msProducts, хотя сами товары «материал» в сетке выдаются и с картинкой и с ценой установленной, но в расчете она почему то не участвует.
            Павел Гвоздь
            06 августа 2019, 12:55
            0
            Пишите в ТП на Modstore. Сразу приложите версии MODX, miniShop2, PHP и доступы к сайту.
            Murashkin
            20 сентября 2019, 15:24
            0
            Можно ли сделать тип select? Очень не хватает.
              Павел Гвоздь
              20 сентября 2019, 20:26
              0
              Он в точности повторяет Radio, используйте его с шаблоном под select.
              Filipp
              01 ноября 2019, 10:08
              0
              Добрый день, в калькуляторе почему-то не выводит больше 10 значений msProducts, можно ли как то увеличить?
                Павел Гвоздь
                01 ноября 2019, 10:13
                0
                В чанке tpl.xCalc.field.msproducts укажите параметр limit перед вызовом сниппета msProducts:
                {var $params['limit'] = 100}
                И впредь пишите в ТП на Модстор, пжл.
                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                17