• Как правильно написать цикл?

    myskif
    @myskif Автор вопроса
    Верстальщик
    Нужно было просто прервать цикл
    $(function(){
      $(window).scroll(function(){
        $(".dark-block").each(function() {
          var height = $(this).outerHeight();
          var top = $(this).position().top - 200;
          var screen = height + top;
          if ($(window).scrollTop() > top && $(window).scrollTop() < screen) {
            $('.ribbon').addClass('dark');
            return false;
          }
          else {
            $('.ribbon').removeClass('dark');
          }
        });
      });
    });
    Ответ написан
    Комментировать
  • Как вывести товары только со скидкой?

    myskif
    @myskif
    Верстальщик
    [[!mFilter2?
        &parents=`0`
        &class=`msProduct`
        &element=`msProducts`
        &tpl=`catalogTpl2`
        &suggestions=`0`
        &filters=`
            ms|price:number,
            msoption|flowers,
            ms|package,
        `
        &toSeparatePlaceholders=`my.`
        &limit=`0`
        &tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
        &tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
        &tplFilter.outer.ms|package=`tpl.mFilter2.package.outer`
        &tplFilter.row.ms|package=`tpl.mFilter2.package.radio`
        &tvPrefix=``
        &depth=`0`
        &includeThumbs=`big`
        &where=`{"Data.sale":"1"}`
    ]]


    Добавь &where=`{"Data.sale":"1"}` где sale это имя чекбокса отвечающего за скидку

    614c2ed788393176349387.jpeg
    Ответ написан
  • Как получить через js верный data параметр?

    myskif
    @myskif Автор вопроса
    Верстальщик
    Довольно быстро нашёл решение)

    В select добавил пустые data значения
    5f4dde3137840818876656.png
    В js же не создавал атрибут с data, а изменял чрез .data();

    $("#calculationform-product").on( "change", function() {
    		var product = $(this).val();
    		switch (product) {
    			case 'product1':
    				product1();
    				$(this).data('coefficient', coefficient1);
    				$(this).data('paper', countOnPaper1);
    				break;
    			case 'product2':
    				product2();
    				$(this).data('coefficient', coefficient2);
    				$(this).data('paper', countOnPaper2);
    				break;
    			case 'product3':
    				product3();
    				$(this).data('coefficient', coefficient3);
    				$(this).data('paper', countOnPaper3);
    				break;
    			case 'product4':
    				product4();
    				$(this).data('coefficient', coefficient4);
    				$(this).data('paper', countOnPaper4);
    				break;
    			case 'product5':
    				product5();
    				$(this).data('coefficient', coefficient5);
    				$(this).data('paper', countOnPaper5);
    				break;
    			case 'product6':
    				product6();
    				$(this).data('coefficient', coefficient6);
    				$(this).data('paper', countOnPaper6);
    				break;
    			case 'product7':
    				product7();
    				$(this).data('coefficient', coefficient7);
    				$(this).data('paper', countOnPaper7);
    				break;
    		}
    	});
    Ответ написан
    Комментировать
  • Как сделать пошаговую работу скрипта в MODX console?

    myskif
    @myskif Автор вопроса
    Верстальщик
    Проблема была на хостинге и заключалась в mod_security, проверить включен ли он можно через
    <?php
        phpinfo();
    ?>

    Если включен, то нужно попросить хостера выключить
    Ответ написан
    Комментировать
  • Как убрать доставку и оплату с корзины minishop2 в modx?

    myskif
    @myskif
    Верстальщик
    В чанке оформления заказа удалите выбор доставки и способа оплаты ( по дефолту они такие)

    <div class="col-12 col-md-6" id="payments">
                <h4>{'ms2_frontend_payments' | lexicon}:</h4>
                <div class="form-group row">
                    <div class="col-12">
                        {foreach $payments as $payment index=$index}
                            {var $checked = !($order.payment in keys $payments) && $index == 0 || $payment.id == $order.payment}
                            <div class="checkbox">
                                <label class="col-form-label payment input-parent">
                                    <input type="radio" name="payment" value="{$payment.id}" id="payment_{$payment.id}"{$checked ? 'checked' : ''}>
                                    {if $payment.logo?}
                                        <img src="{$payment.logo}" alt="{$payment.name}" title="{$payment.name}" class="mw-100"/>
                                    {else}
                                        {$payment.name}
                                    {/if}
                                    {if $payment.description?}
                                        <p class="small">{$payment.description}</p>
                                    {/if}
                                </label>
                            </div>
                        {/foreach}
                    </div>
                </div>
            </div>


    и

    <div class="col-12 col-md-6" id="deliveries">
                <h4>{'ms2_frontend_deliveries' | lexicon}:</h4>
                <div class="form-group row">
                    <div class="col-12">
                        {foreach $deliveries as $delivery index=$index}
                            {var $checked = !($order.delivery in keys $deliveries) && $index == 0 || $delivery.id == $order.delivery}
                            <div class="checkbox">
                                <label class="col-form-label delivery input-parent">
                                    <input type="radio" name="delivery" value="{$delivery.id}" id="delivery_{$delivery.id}"
                                           data-payments="{$delivery.payments | json_encode}"
                                            {$checked ? 'checked' : ''}>
                                    {if $delivery.logo?}
                                        <img src="{$delivery.logo}" alt="{$delivery.name}" title="{$delivery.name}"/>
                                    {else}
                                        {$delivery.name}
                                    {/if}
                                    {if $delivery.description?}
                                        <p class="small">
                                            {$delivery.description}
                                        </p>
                                    {/if}
                                </label>
                            </div>
                        {/foreach}
                    </div>
                </div>
            </div>


    и добавьте в форму это
    <input type="hidden" name="payment" value="1" id="payment_1" checked>
    <input type="hidden" name="delivery" value="1" id="delivery_1" checked>


    Также убедитесь что в настройках minishop2 есть и включен как минимум один способ доставки и оплаты, и его id используйте в value что в input выше.
    5e9179abd0857038685986.png

    Тем самым при оформлении заказа у пользователя не будет выбора способа доставки и оплаты, а в заказах в админке будет указан тот способ доставки и оплаты чей id прописали в инпутах.

    Так же необходимо будет поправить чанк письма, чтобы пользователю не приходила информация о способах оплаты и доставки
    Ответ написан
    Комментировать
  • Есть ли инструменты для выставления счета на сайте?

    myskif
    @myskif Автор вопроса
    Верстальщик
    Использовал эту статью для создания счета - https://snipp.ru/php/dompdf
    Ответ написан
    Комментировать
  • Какой самый простой способ редактирования контента в MODX?

    myskif
    @myskif
    Верстальщик
    Для галереи используй ms2Gallery - https://modstore.pro/packages/photos-and-files/ms2...
    А что касается редактирования текста, то разбей контент на смысловые блоки (преимущества, о нас и т.д.) , создай TV поля и сгруппируй их по смысловым категориям. И в них уже пусть клиент вносит контент без всяких тегов.
    Для списков (например где фото, название и описания, в тех же допустим преимуществах) используй migx
    Ответ написан
    2 комментария