Pandemic

Pandemic

Был в сети 10 февраля 2025, 19:24
Заказы не принимаю
Оказывается чтобы офис заработал на авторизацию через модалку, нужно после вызова модалки инициализировать форму,
Office.Auth.initialize('.fancybox-inner form');
чудо что рядом был сайт где это было, хз как такое можно было найти в доках, там такого нет.

И обязательно в обе формы нужно добавить action
action="{1 | url}"
как в настройках, так как на других страницах оно работает вообще неправильно либо не работает вообще.

Письма так же приходят через раз, как это исправить, иной раз есть ошибках в логах что не может запустить функцию mail() а иногда и её нет, но и письма так же нет. В СПАМЕ ТОЖЕ НЕТ.

Ручная активация пользователя не работает, пользователь не активируется.
Вывел minishop2 и нашёл там такое, есть объект
sendData
в нём хранится та форма которая будет изменятся при клике, он формируется вовремя клика, и затем если вызвать
miniShop2.Cart.change();
То изменения отправятся. Суть такая собрать все данные с формы под вид объекта
sendData
пример можно посмотреть когда вы вручную нажмёте на кнопку, оно заполнится, потом можно по аналогии.

if(miniShop2){
	miniShop2.sendData = {
		$form: $(el),
		action: "cart/change",
		formData: [
			{
				name: "key",
				value: getElement('input[name="key"]', el).value
			},
			{
				name: "options",
				value: getElement('input[name="options"]', el).value
			},
			{
				name: "count",
				value: getElement('input[name="count"]', el).value
			},
			{
				name: "ms2_action",
				value: "cart/change"
			},
			{
				name: "ctx",
				value: "web"
			},
			{
				name: "ctx",
				value: "web"
			},
		]
	}
	miniShop2.Cart.change();

}
Возможно у меня была проблема из-за того что в настройках мсинка установлена галка, чтобы публиковать в любом случае, и получается мои плагины на событие отрабатывают верно, но настройка мсинка отрабатывает позже, и перебивает друг друга, а на на импорте торговых предложений просто, отрабатывает как надо.
Но всё же как-то это событие должно лучше подходить «mSyncOnBeforeImportProduct» так как оно убирает доп сохранение ресурса, вместо условно двух, будет 1.
Обновлённые методы
pdoPage.Hash = {
get: function () {
    coockieHash = readCookie('pdoPage');
    var vars = {}, hash, splitter, hashes;

    hashes = decodeURIComponent(coockieHash.substr(1)).replace('+', ' ');
    splitter = '/';
    
    if (hashes.length == 0) {
        return vars;
    }
    else {
        hashes = hashes.split(splitter);
    }
    
    var matches, key;
    for (var i in hashes) {
        if (hashes.hasOwnProperty(i)) {
            hash = hashes[i].split('=');
            if (typeof hash[1] == 'undefined') {
                vars['anchor'] = hash[0];
            }
            else {
                matches = hash[0].match(/\[(.*?|)\]$/);
                if (matches) {
                    key = hash[0].replace(matches[0], '');
                    if (!vars.hasOwnProperty(key)) {
                        // Array
                        if (matches[1] == '') {
                            vars[key] = [];
                        }
                        // Object
                        else {
                            vars[key] = {};
                        }
                    }
                    if (vars[key] instanceof Array) {
                        vars[key].push(hash[1]);
                    }
                    else {
                        vars[key][matches[1]] = hash[1];
                    }
                }
                else {
                    vars[hash[0]] = hash[1];
                }
            }
        }
    }
    return vars;
},

set: function (vars) {
    var hash = '';
    for (var i in vars) {
        if (vars.hasOwnProperty(i)) {
            if (typeof vars[i] == 'object') {
                for (var j in vars[i]) {
                    if (vars[i].hasOwnProperty(j)) {
                        if (vars[i] instanceof Array) {
                            hash += '&' + i + '[]=' + vars[i][j];
                        }
                        else {
                            hash += '&' + i + '[' + j + ']=' + vars[i][j];
                        }
                    }
                }
            }
            else {
                hash += '&' + i + '=' + vars[i];
            }
        }
    }
    if (hash.length != 0) {
        hash = '?' + hash.substr(1);
    }
    eraseCookie('pdoPage');
    createCookie('pdoPage', hash, 2);
},
}
Единственный рабочий обходной метод, это просто отловить поле мсинком как обычно, запихнуть в твшку, и потом на событие mSyncOnProductOffers обработать, остальные действительно подходящее для этого события просто не работают.
case 'mSyncOnProductOffers':
    $isUploadOnSite = $resource->getTVValue('uploadToSite');
    $isPublished = $resource->get('published');
    
	$isPublish = 1;
	if(($count == 0 || $count < 0) || ($isUploadOnSite == 'Нет' && $isPublished == 1)){
	    $isPublish = 0;
	} elseif($isUploadOnSite == 'Да' && $isPublished == 0){
	    $isPublish = 1;
	}
	
	$resource->set('published', $isPublish);

	$resource->save();
    break;
Если убрать торговое предложение, делает вид что что-то происходит с товарами, но резко обрывается, и так же раз там в неизвестность проскакивает нормально, при том я ничего не меняю.

P.S. Ошибок нет нигде, буквально пусто везде
Довольно странно, раз есть человека понятная навигация, то почему нет аякс режима из коробки? Ведь проще простого оказалось.

А так же не прокидываются доп переменные в кфг, допустим той же переменной «pageLinkScheme» нет, так можно было бы зацепиться за неё, и просто в инит методе определить схему регулярки.

Поскольку не нашёл(не долго искал) как прокинуть свою переменную в джс с админки в pdopage конфиг, то просто везде регулярку заменил со знака "=" на "-" согласно моей навигации, само собой подключив кастомный скрипт копии самого pdopage.

Заменил везде "=(\\d+)" на "-(\\d+)" и всё заработало…
Да, оно работало до того как я добавил Человека понятную навигацию, аякс загрузка работала, после уже не работает именно аякс загрузка, если перейти по ссылке вручную то страницу отработает как положено.
Получилось, можете ещё подсказать при клике на ссылку, обычную ни одного атрибута нет, не переходит, клик просто игнорируется, если перейду по ссылке вручную, то всё работает, но при ручном клике именно на ссылку не работает.

В консоли ничего нет, в админке тоже пусто.
Вот ведь docs.modx.pro/components/xparser/parser-html prnt.sc/flyj-r7cCiHA
Вам нужно пользоваться xpath, есть куча сервисов где вы можете засунуть ту структуру html которая у вас есть, писать xpath и тестировать находит ли он что вам нужно погуглите «xpath online» в вашем случае нужен такой xpath
//*[@class="chairs_page_list"]/*/@href
проверил на этих онлайн сервисах, всё находит без проблем, если у вас xparser будет морозиться, в начало добавьте точку перед двумя слэшами, чтобы было так
.//*[@class="chairs_page_list"]/*/@href