AjaxModal - компонент загружающий по ajax и показывающий указанный чанк с модальным окном

AjaxModal — простой компонент загружающий по ajax и показывающий указанный чанк с модальным окном, с указанными параметрами.
Создавался для кнопки быстрого просмотра товаров Minishop2.

Пример использования:
На странице подключить jQuery, стиль и скрипт компонента:

<script src="/assets/templates/js/jquery-1.8.3.min.js"></script>
	[[MinifyX?
    	&minifyCss=`1`
    	&minifyJs=`1`
    	®isterJs=`default`
    	®isterCss=`default`
    	&jsSources=`
    		/assets/components/ajaxmodal/js/web/default.js,
    	`
    	&cssSources=`
    		/assets/components/ajaxmodal/css/web/default.css,
    	`
    ]]
Вызов в чанке tpl.msProducts.row

<div style="width:300px;display: inline-block;">
	<div class="block_img">
	    <a href="[[~[[+id]]]]">
	        <img src="[[+thumb:default=`[[++assets_url]]components/minishop2/img/web/ms2_small.png`]]" width="298" height="200" />
	    </a>
    	[[!AjaxModal?
        	&button=`ajaxmodal.button.tpl`
        	&modal=`ajaxmodal.modal.tpl`
        	&id=`[[+id]]`
        	&image=`[[+image]]`
        	&pagetitle=`[[+pagetitle]]`
        	&price=`[[+price]]`
        ]]
	</div>
	<h3><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h3>
	<div class="price">[[+price]] бел.руб. </div>
</div>
Выводит кнопку
<a href="#" class="ajaxmodal" onclick='ajaxmodal([[+params]]);return false;'>БЫСТРЫЙ ПРОСМОТР</a>
В [[+params]] передает объект с параметрами сниппета. При нажатии на кнопку, по ajax, подгружается чанк modal с параметрами [[+params]] и показывается модальное окно, которое прописано в чанке.

Вызывать сниппет внутри чанка вредно для скорости ответа сайта. Сниппет AjaxModal просто выводит кнопку с вызовом ява функции. Если скорость важна, то лучше приписать эту кнопку вручную. Чанк tpl.msProducts.row:

<div style="width:300px;display: inline-block;">
	<div class="block_img">
	    <a href="[[~[[+id]]]]">
	        <img src="[[+thumb:default=`[[++assets_url]]components/minishop2/img/web/ms2_small.png`]]" width="298" height="200" />
	    </a>
    	<a href="#" class="ajaxmodalbutton" onclick='ajaxmodal({ "modal":"ajaxmodal.modal.tpl","id":"[[+id]]","image":"[[+image]]","pagetitle":"[[+pagetitle]]","price":"[[+price]]" });return false;'>БЫСТРЫЙ ПРОСМОТР</a>
	</div>
	<h3><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h3>
	<div class="price">[[+price]] бел.руб. </div>
</div>
Компонент на модерации в Modstore. Стоимость компонента 99р. Вообще говоря, компонент стоит сделать бесплатным, но у меня финансовое положение не очень :(. Если кто-то хочет подарить AjaxModal сообществу, то 2 000р мне и я сделаю компонент бесплатным :).
Модератор Modstore ответил:
7. Отсутствие пересечений с платными компонентами — Есть прямой аналог: QuickView
К сожалению, вынуждены отклонить размещение дополнения Наши правила не допускают размещение прямых аналогов дополнений.
Так что я обломался с заработком :). Если кому-то интересно дополнение качайте с гитхаб бесплатно :) https://github.com/touol/AjaxModal.
Александр Туниеков
06 августа 2018, 01:16
modx.pro
4
2 182
+2
Поблагодарить автора Отправить деньги

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

Михаил
06 августа 2018, 05:42
0
Делал как то такой, даже функционал тут был)) github
    Александр Туниеков
    06 августа 2018, 07:04
    0
    У вас функционал похожий, но явно другой зачем-то табличка в базе создается и какое-то ограничение по пользователям и группам. А у меня все просто скрипт загружает чанк, что указали в параметрах и запускает модальное окно в нем. Если конечно оно там есть. И больше ничего не делает. Функционала на 2 часа работы :). И то в основном на то чтобы из modExtra лишнее вырезать и описание написать.
      Михаил
      06 августа 2018, 09:16
      0
      Да у меня там разделение по группам, либо по пользователям. ))
    Павел Гвоздь
    06 августа 2018, 07:30
    0
    От этого оно не станет лучше, уж поверь. :)
    Стоимость компонента 99р. Вообще говоря, компонент стоит сделать бесплатным, но у меня финансовое положение не очень
      Александр Туниеков
      06 августа 2018, 07:34
      0
      Хм… ну не станет :) но жаба пока давит :)
        Сергей Шлоков
        06 августа 2018, 08:51
        0
        Наверно уже машину подбираешь? ))
          Павел Гвоздь
          06 августа 2018, 08:56
          0
          Угу, вторую…
            Сергей Шлоков
            06 августа 2018, 09:04
            0
            Вопрос был не тебе )) Глаз подвёл.
              Павел Гвоздь
              06 августа 2018, 09:06
              0
              Слепота по Фрейду?)
                Сергей Шлоков
                06 августа 2018, 09:07
                0
                Просто старый уже )
                Хотел спросить жабу, которая Александра давит. )
                  Павел Гвоздь
                  06 августа 2018, 09:09
                  +1
                  Правительство так не думает)
                  Просто старый уже )
                    Сергей Шлоков
                    06 августа 2018, 09:20
                    0
                    А ещё Росстат недавно сообщил, что у нас доходы растут. И тут у правительства фантазия разыгралась.
        Сергей Шлоков
        06 августа 2018, 08:50
        +2
        Если кто-то хочет подарить AjaxModal сообществу, то 2 000р мне и я сделаю компонент бесплатным :).
        На пиво не хватает? )) Просто даже интересно, после чего в голове рождаются такие мысли.

        П.С. Спасибо за утренний фан.)
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          13