Всего 125 977 комментариев

Roman
19 февраля 2022, 14:20
0
Спасибо, а на хостинге не будит работать?
Максим
19 февраля 2022, 11:04
0
В куках только ройстат айди! Остальная инфа для сделок хранится в базе.
Вот документация по формированию XML. Но я бы сначала пообщался с 1С-ником, на предмет работы с JSON. С ним легче работать и он меньше весит!
Константин
19 февраля 2022, 07:29
0
Спасибо, а можете подсказать, каким образом можно формировать подобный файл из куков и как дергать РойСтат Айди? Не силен в программировании…
Максим
18 февраля 2022, 20:26
0
Делал подобное 2 года назад опираясь на эту инфу. Была подобная задача учитывая ваш прошлый вопрос. Правда еще скопировал и немного переписал сам сниппет mFilter. В итоге ипользовал его вот так:
{extends 'file:templates/base/base.tpl'}

{block 'template'}

    {var $where = ['(`Data`.`available_sizes` > 0 OR `Data`.`available_rows` > 0 OR `Data`.`soon_available` > 0)']}
    {$_modx->setPlaceholder('sideBar', 'chunks/sidebar/vendors.tpl')}

    {var $breadSub = [469,470,76,77]}

    {var $parents = '2,' ~ $_modx->resource.id}
    {include 'file:chunks/base/breadcrumbs.tpl' parents=$parents submenu=$breadSub}

    {var $mFilter = '!juniorFilter' | snippet : [
        'element' => 'msProducts@cat',
        'limit' => '30',
        'maxLimit' => '5000',
        'toArray' => '1',
        'tpl' => '@FILE chunks/catalog/productList.tpl',
        'tplOuter' => '@FILE chunks/catalog/filterOuter.tpl',
        'parents' => '2',
        'includeThumbs' => 'list',
        'where' => $where,
        'ajax' => '1',
        'ajaxMode' => 'default',
        'ajaxHistory' => '1',
        'pageLimit' => '7',
        'aliases' => '
            ms|season==season,
            ms|sex==sex,
            ms|available_rows==available_rows,
            ms|available_sizes==available_sizes,
            remains|size==size,
            resource|parent==parent
        ',
        'filters' => '
            ms|season,
            ms|sex,
            ms|available_rows:sizerange,
            ms|available_sizes:sizerange,
            remains|size,
            resource|parent
        ',
        'tplFilter.outer.season' => '@FILE chunks/filters/spoiler.outer.tpl',
        'tplFilter.row.season' => '@FILE chunks/filters/spoiler.row.tpl',
        'tplFilter.outer.sex' => '@FILE chunks/filters/spoiler.outer.tpl',
        'tplFilter.row.sex' => '@FILE chunks/filters/spoiler.row.tpl',
        'tplFilter.outer.available_rows' => '@FILE chunks/filters/sizerange.outer.tpl',
        'tplFilter.row.available_rows' => '@FILE chunks/filters/sizerange.row.tpl',
        'tplFilter.outer.available_sizes' => '@FILE chunks/filters/sizerange.outer.tpl',
        'tplFilter.row.available_sizes' => '@FILE chunks/filters/sizerange.row.tpl',
        'tplFilter.outer.size' => '@FILE chunks/filters/spoiler.outer.tpl',
        'tplFilter.row.size' => '@FILE chunks/filters/spoiler.row.tpl',
        'tplFilter.outer.parent' => '@FILE chunks/filters/spoiler.outer.tpl',
        'tplFilter.row.parent' => '@FILE chunks/filters/spoiler.row.tpl',
        'tplPageWrapper' => '@INLINE <nav class="pagination"><div class="container"><ul>{$first}{$prev}{$pages}{$next}{$last}</ul></div></nav>',
        'tplPage' => '@INLINE <li><a href="{$href}">{$pageNo}</a></li>',
        'tplPageActive' => '@INLINE <li class="active"><a href="{$href}">{$pageNo}</a></li>',
        'tplPageFirst' => '@INLINE <li class="first"><a href="{$href}"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.79244 8.7921C9.01095 8.57348 9.12044 8.28676 9.12044 8.00001C9.12044 7.71336 9.0112 7.42665 8.79265 7.20792L1.91295 0.328386C1.47531 -0.109462 0.765763 -0.109462 0.328306 0.328386C-0.109152 0.765808 -0.109152 1.47514 0.328306 1.91278L6.41564 8.00001L0.328093 14.0872C-0.109364 14.5249 -0.109364 15.2343 0.328093 15.6717C0.765551 16.1094 1.4751 16.1094 1.91273 15.6717L8.79244 8.7921ZM14.7924 8.7921C15.011 8.57348 15.1204 8.28676 15.1204 8.00001C15.1204 7.71336 15.0112 7.42665 14.7927 7.20792L7.91295 0.328386C7.47531 -0.109462 6.76576 -0.109462 6.32831 0.328386C5.89085 0.765808 5.89085 1.47514 6.32831 1.91278L12.4156 8.00001L6.32809 14.0872C5.89064 14.5249 5.89064 15.2343 6.32809 15.6717C6.76555 16.1094 7.4751 16.1094 7.91273 15.6717L14.7924 8.7921Z"/></svg></a></li>',
        'tplPageFirstEmpty' => '@INLINE <li class="first disabled"><a href="{$href}"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.79244 8.7921C9.01095 8.57348 9.12044 8.28676 9.12044 8.00001C9.12044 7.71336 9.0112 7.42665 8.79265 7.20792L1.91295 0.328386C1.47531 -0.109462 0.765763 -0.109462 0.328306 0.328386C-0.109152 0.765808 -0.109152 1.47514 0.328306 1.91278L6.41564 8.00001L0.328093 14.0872C-0.109364 14.5249 -0.109364 15.2343 0.328093 15.6717C0.765551 16.1094 1.4751 16.1094 1.91273 15.6717L8.79244 8.7921ZM14.7924 8.7921C15.011 8.57348 15.1204 8.28676 15.1204 8.00001C15.1204 7.71336 15.0112 7.42665 14.7927 7.20792L7.91295 0.328386C7.47531 -0.109462 6.76576 -0.109462 6.32831 0.328386C5.89085 0.765808 5.89085 1.47514 6.32831 1.91278L12.4156 8.00001L6.32809 14.0872C5.89064 14.5249 5.89064 15.2343 6.32809 15.6717C6.76555 16.1094 7.4751 16.1094 7.91273 15.6717L14.7924 8.7921Z"/></svg></a></li>',
        'tplPageLast' => '@INLINE <li class="last"><a href="{$href}"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.79244 8.7921C9.01095 8.57348 9.12044 8.28676 9.12044 8.00001C9.12044 7.71336 9.0112 7.42665 8.79265 7.20792L1.91295 0.328386C1.47531 -0.109462 0.765763 -0.109462 0.328306 0.328386C-0.109152 0.765808 -0.109152 1.47514 0.328306 1.91278L6.41564 8.00001L0.328093 14.0872C-0.109364 14.5249 -0.109364 15.2343 0.328093 15.6717C0.765551 16.1094 1.4751 16.1094 1.91273 15.6717L8.79244 8.7921ZM14.7924 8.7921C15.011 8.57348 15.1204 8.28676 15.1204 8.00001C15.1204 7.71336 15.0112 7.42665 14.7927 7.20792L7.91295 0.328386C7.47531 -0.109462 6.76576 -0.109462 6.32831 0.328386C5.89085 0.765808 5.89085 1.47514 6.32831 1.91278L12.4156 8.00001L6.32809 14.0872C5.89064 14.5249 5.89064 15.2343 6.32809 15.6717C6.76555 16.1094 7.4751 16.1094 7.91273 15.6717L14.7924 8.7921Z"></svg></a></li>',
        'tplPageLastEmpty' => '@INLINE <li class="last disabled"><a href="{$href}"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.79244 8.7921C9.01095 8.57348 9.12044 8.28676 9.12044 8.00001C9.12044 7.71336 9.0112 7.42665 8.79265 7.20792L1.91295 0.328386C1.47531 -0.109462 0.765763 -0.109462 0.328306 0.328386C-0.109152 0.765808 -0.109152 1.47514 0.328306 1.91278L6.41564 8.00001L0.328093 14.0872C-0.109364 14.5249 -0.109364 15.2343 0.328093 15.6717C0.765551 16.1094 1.4751 16.1094 1.91273 15.6717L8.79244 8.7921ZM14.7924 8.7921C15.011 8.57348 15.1204 8.28676 15.1204 8.00001C15.1204 7.71336 15.0112 7.42665 14.7927 7.20792L7.91295 0.328386C7.47531 -0.109462 6.76576 -0.109462 6.32831 0.328386C5.89085 0.765808 5.89085 1.47514 6.32831 1.91278L12.4156 8.00001L6.32809 14.0872C5.89064 14.5249 5.89064 15.2343 6.32809 15.6717C6.76555 16.1094 7.4751 16.1094 7.91273 15.6717L14.7924 8.7921Z"></svg></a></li>',
        'tplPageNext' => '@INLINE <li class="next"><a href="{$href}"><svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.56021 8.00004C9.56021 8.2868 9.45072 8.57351 9.2322 8.79213L2.3525 15.6718C1.91487 16.1094 1.20532 16.1094 0.767859 15.6718C0.330402 15.2343 0.330402 14.5249 0.767859 14.0872L6.8554 8.00004L0.768072 1.91282C0.330614 1.47518 0.330614 0.765843 0.768072 0.328421C1.20553 -0.109426 1.91508 -0.109426 2.35271 0.328421L9.23242 7.20795C9.45097 7.42668 9.56021 7.7134 9.56021 8.00004Z"/></svg></a></li>',
        'tplPageNextEmpty' => '@INLINE <li class="next disabled"><a href="{$href}"><svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.56021 8.00004C9.56021 8.2868 9.45072 8.57351 9.2322 8.79213L2.3525 15.6718C1.91487 16.1094 1.20532 16.1094 0.767859 15.6718C0.330402 15.2343 0.330402 14.5249 0.767859 14.0872L6.8554 8.00004L0.768072 1.91282C0.330614 1.47518 0.330614 0.765843 0.768072 0.328421C1.20553 -0.109426 1.91508 -0.109426 2.35271 0.328421L9.23242 7.20795C9.45097 7.42668 9.56021 7.7134 9.56021 8.00004Z"/></svg></a></li>',
        'tplPagePrev' => '@INLINE <li class="prev"><a href="{$href}"><svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.56021 8.00004C9.56021 8.2868 9.45072 8.57351 9.2322 8.79213L2.3525 15.6718C1.91487 16.1094 1.20532 16.1094 0.767859 15.6718C0.330402 15.2343 0.330402 14.5249 0.767859 14.0872L6.8554 8.00004L0.768072 1.91282C0.330614 1.47518 0.330614 0.765843 0.768072 0.328421C1.20553 -0.109426 1.91508 -0.109426 2.35271 0.328421L9.23242 7.20795C9.45097 7.42668 9.56021 7.7134 9.56021 8.00004Z"/></svg></a></li>',
        'tplPagePrevEmpty' => '@INLINE <li class="prev disabled"><a href="{$href}"><svg width="10" height="16" viewBox="0 0 10 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.56021 8.00004C9.56021 8.2868 9.45072 8.57351 9.2322 8.79213L2.3525 15.6718C1.91487 16.1094 1.20532 16.1094 0.767859 15.6718C0.330402 15.2343 0.330402 14.5249 0.767859 14.0872L6.8554 8.00004L0.768072 1.91282C0.330614 1.47518 0.330614 0.765843 0.768072 0.328421C1.20553 -0.109426 1.91508 -0.109426 2.35271 0.328421L9.23242 7.20795C9.45097 7.42668 9.56021 7.7134 9.56021 8.00004Z"/></svg></a></li>',
        'tplPageSkip' => '@INLINE <li class="dots">...</li>'
    ]}


    <div class="msearch2" id="mse2_mfilter">
        <div class="container">
            <div class="header-wrapper">
                <h1 class="pink-color h2 beautifull-h">{$_modx->resource.pagetitle ?: $modx->resource.longtitle}</h1>
                <p class="pink-color header-wrapper_right-label">Найдено товаров: <span id="mse2_total" class="goods-count">{$mFilter.total}</span></p>
            </div>
            <button class="button filter-button">Фильтры</button>
        </div>

        <div class="container catalogue-content-wrapper">
            <div class="menu-filter-wrapper">
                {var $sideBar = $_modx->getPlaceholder('sideBar')}
                {if $sideBar ?}
                    <nav class="sidebar-catalogue-menu">
                        <ul>
                            {include ('file:' ~ $sideBar)}
                        </ul>
                    </nav>
                {/if}
                <form  action="{$_modx->resource.uri}" method="post" id="mse2_filters">
                    <div class="filter-wrapper">

                        <div class="filter-block round-white-block">
                            {$mFilter.filters.available_rows}
                            {$mFilter.filters.available_sizes}
                        </div>
                        <div class="filter-block round-white-block">
                            {if $mFilter.filters.parent ?}
                                {$mFilter.filters.parent}
                            {/if}
                            {$mFilter.filters.season}
                            {$mFilter.filters.sex}
                            {$mFilter.filters.size}
                            {if $mFilter.filters | length > 0 ?}
                                <button type="reset" class="reset-form like-link">Очистить фильтры</button>
                            {/if}
                        </div>
                    </div>
                </form>
                <div class="close-btn"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M0.92888 13.6568C0.538355 14.0474 0.538355 14.6805 0.92888 15.0711C1.3194 15.4616 1.95257 15.4616 2.34309 15.0711L7.99995 9.4142L13.6568 15.0711C14.0473 15.4616 14.6805 15.4616 15.071 15.0711C15.4616 14.6805 15.4616 14.0474 15.071 13.6568L9.41417 7.99999L15.071 2.34314C15.4615 1.95261 15.4615 1.31945 15.071 0.928925C14.6805 0.538401 14.0473 0.538401 13.6568 0.928925L7.99995 6.58577L2.34311 0.928927C1.95258 0.538402 1.31942 0.538402 0.928895 0.928927C0.538371 1.31945 0.538371 1.95262 0.928896 2.34314L6.58574 7.99999L0.92888 13.6568Z"/></svg></div>
            </div>

            <div class="content">

                <div class="round-white-block filters-row">
                    <div class="filters" id="mse2_selected_wrapper">
                        <ul id="mse2_selected"></ul>
                    </div>
                    {*<button type="reset" class="clear like-link">Очистить фильтры</button>*}
                </div>

                <div id="mse2_results" class="product-cards-wrapper">
                    {$mFilter.results}
                </div>

            </div>

        </div>
        <div class="mse2_pagination">
            {$_modx->getPlaceholder('page.nav')}
        </div>
        {if $_modx->getPlaceholder('pageCount') > 1}
            <div class="center">
                <a href="#" data-limit="5000" class="button type2 pag_btn">Смотреть все</a>
            </div>
        {/if}
    </div>


    {include 'file:chunks/base/footer_text.tpl'}
{/block}

{block 'scriptAfter'}
    <script>
        $(document).ready(function () {
            $(document)
                .on('click', '.pag_btn', function (e) {
                    e.preventDefault();
                    var hash = mSearch2.Hash.get();
                    var limit = $(this).data('limit');
                    hash.limit = $(this).data('limit');
                    mSearch2.Hash.set(hash);
                    mse2Config.limit = limit;
                    mSearch2.load(hash);
                })
                .on('mse2_load', function(e, data) {
                    var $btn_all = $('.pag_btn');
                    if (data.data.pages == data.data.page) {
                        $btn_all.hide();
                    }
                    else {
                        $btn_all.show();
                    }
                });
        });
    </script>
{/block}
Aleksandr Huz
18 февраля 2022, 20:13
0
s29016.h10.modhost.pro/manager/
s29016
ZrBDxrAgv7sw

Будет работать до 19.02.2022 19:59
Кирилл Киселев
18 февраля 2022, 17:03
0
Прекрасно тебя понимаю, я стакой же ситуацией ушел на фронт React
Roman
18 февраля 2022, 16:26
0
Хотел протестировать не работает на Modhost(
Scorp Satex
18 февраля 2022, 16:25
+1
Разобрался сам, выложил cвой вариант решения.
Андрей
18 февраля 2022, 13:27
0
Можно использовать upgradeModx, должно всё корректно обновить.
Артур Шевченко
18 февраля 2022, 10:50
0
Я догадывался поэтому и не послал)))
Артур Шевченко
18 февраля 2022, 10:45
+1
Есть мнение и я с ним согласен, что jQuery морально устарела и большинство тех возможностей, из-за которых все ей пользовались, реализованы в нативном js. А весит jQuery очень много и когда у тебя лэндос, где только отправка формы и нужна невольно закрадывается мысль, что jQuery это лишнее ?
Николай Савин
18 февраля 2022, 10:41
0
PR в таком виде у тебя не примут. Нет смысла слать.
Артур Шевченко
18 февраля 2022, 10:40
0
Спасибо, я забыл, что так можно было. Перепишу. Заодно и замечания Николая Савина учту.
Артур Шевченко
18 февраля 2022, 10:38
+1
А почему у тебя в объекте методы внутри метода? Это же нелогично. Вынеси их в корень объекта. Для чего нужна вложенность?
Да ни для чего))) Это пробный шар, мне для тренировки, сообществу для пользы.
И я правильно понимаю, что в твоем варианте оригинальный ajaxForm все равно нужно подключать, а потом этой штукой перезаписывать метод initialize?
Да. В идеале сделать pr и из коробки загружать этот код, но для этого нужно его до ума до вести.
Баха Волков
18 февраля 2022, 09:59
+3
Что-то вчера захотелось переписать самому, но потом перехотел, а так хотя бы толкну тебя в нужном направлении

class AjaxForm {
    constructor (config) {
        this.forms = document.querySelectorAll(config['formSelector'])
    }

    resetErrors (e) {
        // some code
    }

    success () {}

    sendAjax () {}
}

new AjaxForm(afConfig)
Кирилл Киселев
18 февраля 2022, 09:38
0
Ого. Давно хотел перебить на ванилу все связанные плагины с ms2, но руки не доходили, видимо не я один такой, кто хочет все на ванилу переписать, спасибо тебе!
Николай Савин
18 февраля 2022, 08:39
0
Я еще не встречал хостинга, на котором не было бы панели управления кроном или просто доступа к crontab.
Какие 4 часа? О чем вы?
Если задача отправить письмо о новом заказе то:
Проверить таблицу очередей. Если есть необработанная запись ОДНА — взять номер заказа, сформировать письмо о заказе — отправить его.

Если задача отправить письмо о регистрации клиента то:
Получить из таблицы очередей ID клиента — составить письмецо, отправить его.

Тут секунды 2 работы в худшем случае.
Vladimir
18 февраля 2022, 08:34
0
Другого не знал, да и не думал что на обычном хостинге есть доступ к крону, так как он делается через консоль, и получается даже если скрипт будет работать там часа 4, то так же будет выполнятся, или есть лимиты по которым задача убьётся?
Николай Савин
18 февраля 2022, 08:27
0
Зачем так сложно? Задания очередей можно писать в таблицу базы данных. Я обычно использую simpleQueue. Есть также встроенный механизм очередей в MODX.
Для выполнения заданий запускаете ежеминутно крон, который будет по одной записи за раз дергать и выполнять.