Всего 123 794 комментария

Артур Шевченко
20 августа 2023, 23:50
+1
Посмотреть какие плейсхолдеры доступны в чанке. Если там нужной информации нет, посмотреть схему таблиц и написать свой сниппет, который вытащит из БД эту информацию.
Артур Шевченко
20 августа 2023, 23:49
0
В системных настройках посмотри.
Артур Шевченко
20 августа 2023, 23:48
0
А чем для карты сайта страницы с видео отличаются от страниц без видео?
Артур Шевченко
20 августа 2023, 23:47
-1
Написать плагин, который пересчитает цены в корзине.
Артур Шевченко
20 августа 2023, 23:46
1
+2
{$_modx->config.site_url | ereplace: '/\/$/':''}
Артур Шевченко
20 августа 2023, 23:42
0
Так может надо в настройках CatalogFill смотреть какой класс для импортируемых ресурсов указан?
Антон
20 августа 2023, 15:54
0
такой вывод тоже не пашет
{$_modx->config.site_url | replace: ['/']:''}
Антон
20 августа 2023, 13:25
0
тогда ссылка выглядит как
https://site.com//assets/cache_image/
с двумя слэшами
Сергей Карпович
20 августа 2023, 10:31
0
добавить в начале пути {$_modx->config.site_url}
Ivan
19 августа 2023, 16:34
0
Еще 5 лет и наберется нужная сумма))
Дмитрий
18 августа 2023, 19:12
0
Добрый вечер Сергей!
У меня проблема в удалении minishop2 может конечно что то не заметил

1. Деинсталировал Minishop2
2. Почистил все чанки ms
3. В БД удалил все базы с ms2
4. Minishop2 еще раз установил все почистил… все равно нето!

Что еще надо сделать?

Сайт вроде работает фавориткерамика на shopkeeper и все вроде ок… начинаю товар импортировать через catalogfill его не видно в дереве и он импортируется с классом msProduct а должен modDocument как быть!?
Ольга
18 августа 2023, 15:25
0
Добрый день, а функционал объединения ячеек планируется? Или может быть уже есть? Не нашла.
Роман
18 августа 2023, 14:15
0
Понял, спасибо, думал есть готовое решение. Значит нужно разрабатывать свое решение.
Константин Ильин
18 августа 2023, 14:05
0
ну тут тогда код написать выборки и создания на основания выборки, в целом он простой, логика такая:
1. указываем id ресурса с потомками в переменную
2. сначала получаем его(ресурс родитель) и копируем через resource/create передавая процессору через toArray весь массив
3. После получаем потомков и в цикле через процессор resource/create создаем потомков уже у нового полученного ресурса.

если вам не нужно копировать сам родитель то второй шаг не нужен, т.е. просто получить потомки и создать такие же в новом родителе через resource/create, передавая через toArray весь массив, заменяя parent на нужный
Денис Усачев
18 августа 2023, 13:46
0
Недавно Chrome начал показывать предупреждение:
[Deprecation] Listener added for a synchronous 'DOMNodeInserted' DOM Mutation Event. This event type is deprecated (https://w3c.github.io/uievents/#legacy-event-types) and work is underway to remove it from this browser. Usage of this event listener will cause performance issues today, and represents a risk of future incompatibility. Consider using MutationObserver instead.
Всему причина msfavorites assets/components/msfavorites/js/default.js

а имеено DOMNodeInserted

$(window).on('load', function () {
        $('body').msfavorites('loadFavorites', true);
        $($.fn.msfavorites.selectors.main).msfavorites();

        $('body').on('DOMNodeInserted', function (event) {
            var html;
            if (event.target && (html = event.target.innerHTML) && typeof html === 'string' && html.match(new RegExp($.fn.msfavorites.defaults))) {
                $(document).trigger($.fn.msfavorites.CONTENT_CHANGE, jQuery.merge([html], arguments));
            }
        });
    });
заменить на

$(window).on('load', function () {
    $('body').msfavorites('loadFavorites', true);
    $($.fn.msfavorites.selectors.main).msfavorites();
    var observer = new MutationObserver(function (mutationsList) {
        for (var i = 0; i < mutationsList.length; i++) {
            var mutation = mutationsList[i];
            var target = mutation.target;
            if (mutation.type === 'childList' && target && target.innerHTML) {
                var html = target.innerHTML;
                if (typeof html === 'string' && html.match(new RegExp($.fn.msfavorites.defaults))) {
                    $(document).trigger($.fn.msfavorites.CONTENT_CHANGE, jQuery.merge([html], arguments));
                }
            }
        }
    });
    observer.observe($('body')[0], { childList: true, subtree: true });
});
пробелема решена
Артур Шевченко
18 августа 2023, 13:40
+2
В общем добавил что-то типа CSRF-токена извне теперь не достучаться.
Алексей Шумаев
18 августа 2023, 11:20
+1
Главное прикрыть запросы извне.
Какие заголовки передаются из js можно посмотреть и добавить нужный при необходимости.
Роман
18 августа 2023, 10:53
0
работает, pagetitle не меняет хотя бы, но алиасы все равно меняет, новые прописывает, можно алиасы сохранить как то?
Алексей Шумаев
18 августа 2023, 09:39
+1
В /assets/action.php добавьте старый добрый
if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') die;