Сергей Карпович

Сергей Карпович

С нами с 29 декабря 2020; Место в рейтинге пользователей: #315
Сергей Карпович
29 февраля 2024, 19:19
0
так ругается на вывод снипппета влог modx и страничка также не грузится
Сергей Карпович
29 февраля 2024, 17:43
0
без запятой такая же ситуация, она не причем.
сервис забанил IP сайта почему то, т.е не отвечает на запрос и сниппет рушит страничку.
Вчера еще все работало
Сергей Карпович
29 февраля 2024, 15:42
0
Ребята, помогите решить проблему.
Если morpher.ru не отвечает, то у меня падает вся станица (все что после вызова идет)

Вызываю так:
{caseChanger' | snippet : ['w' => $players_country_title, 'm' => 1, 'p' => 3,]}
С параметром debug, также ни каких изменений, в логах ничего не появляется.
Сергей Карпович
23 февраля 2024, 13:09
0
У меня такой плагин работает на событие «mSyncOnProductImport»

<?php
/*
    https://docs.modx.pro/components/msync/events-and-plugins
    mSyncOnProductImport:
    $mode: Строка "category" для категорий или "create" для новых товаров или "update" для обновления товара. 
    $resource: Объект msCategory или msProduct. Объект минишопа, созданный или обновленный в данный момент
    $properties: array Массив свойств товара, извлеченных из XML, пустой для категории.
    $data: Объект mSyncCategoryData или mSyncProductData. Объект привязки категории или товара 1С к объектам минишопа
*/

if ($modx->event->name != 'mSyncOnProductImport') return;

/*
    Проверим, что свойство "Исключить из публикации на веб-сайтах" передано в выгрузке из 1С 
    (может и не быть). Если его нет значит данное свойство не поддерживается в базе 1С и 
    ничего не делаем. Если есть и это товар тогда делаем что надо.
*/
if ( is_a($resource, 'msProduct') ) {
    if ( array_key_exists('Исключить из публикации на веб-сайтах', $properties) ) {
        $hide = mb_strtoupper($properties['Исключить из публикации на веб-сайтах']) === mb_strtoupper('Да');
        if ( !isset($mSync) ) {
            $mSync = $modx->getService('msync', 'mSync', $modx->getOption('msync_core_path', null, $modx->getOption('core_path') . 'components/msync/') . 'model/msync/', array());
        }
        if ($hide) {
            // Если параметр передан и имеет значение Да, скрываем номенклатуру:
            $resource->set('deleted', 1);
            $resource->set('deletedby', $mSync->config['user_id_import']);
            $resource->set('deletedon', time());
            $resource->save();
            $mSync->log('Товар с идентификатором ' . $resource->get('id') . ' помечен удаленным.', 1);
        } else {
            // Если параметр передан и имеет другое значение, восстанавливаем номенклатуру:
            if ($resource->get('deleted') == 1) {
                $resource->set('deleted', 0);
                $resource->save();
                $mSync->log('Товар с идентификатором ' . $resource->get('id') . ' восстановлен из корзины.', 1);    
            }
        }
    }
}
Сергей Карпович
20 февраля 2024, 15:24
0
Подскажите, как вывести список ID ресурсов избранного, что бы он обновлялся при изменении ресурсов в избранном, без перезагрузки страницы?
Сергей Карпович
01 февраля 2024, 11:40
+1
если тебе нужны просто данные c ipinfo, то почитай их доку, у них API есть.
Сергей Карпович
01 февраля 2024, 11:23
0
Там как раз в настройках можно привязываться к гео позиции ipinfo
Сергей Карпович
01 февраля 2024, 09:06
+1
Попробуй обратиться не к одному элементу getElementById, а ко всем: querySelectorAll
Сергей Карпович
01 февраля 2024, 09:01
0
polylang из коробки так умеет.
1. нужно создать локализации.
2. в ресурсе добавить эти локализации к нем и переводы
3. в выводе ресурсов чререз pdotools добавить параметр 'onlyWithLocalization' => 1,
Сергей Карпович
30 января 2024, 21:47
0
Если убрать хотя бы сортировку по остаткам, то в 10 раз быстрее грузятся категории.
Причем замечено, чем больше товаров категории, тем затуп сильнее.
От 50 товаров уже становится заметно.

Все вызовы по инструкциям компонентов, ни каких велосипедов.

Если интересно посмотреть на это, могу в теле доступ дать
Сергей Карпович
30 января 2024, 16:43
0
Проблема не в минишоп, а в фильтрах.
у меня например тоже 20к товаров, все шустро работает, пока к mfliter2 мне не пришлось прицепить остатки. и теперь каталог грузится по 30 секунд.

никто из разработчиков плагинов mfilter и remains так и не разобрались.

Понятно стало только то что при подключении remains к выводу, идет огромное количество запросов
Сергей Карпович
28 января 2024, 18:50
0
Это понятно, но ресурс всегда физически должен находиться в какой то категории, вот про ее выбор через tv я и говорю.
Т.е. 1Tv — родительская категория, 2tv — виртуальные
Сергей Карпович
13 января 2024, 09:53
0
1. нужно манагевам и админам отметить права видеть неопубликованные ресурсы.
2. в сниппетах вывода ресурсов, включить отображение неопубликованных.

Это должно сработать, но я не проверял
Сергей Карпович
08 января 2024, 16:39
0
Хз, но на другом сайте где стоит AjaxFormit + Formit там с disabled работает.
Сергей Карпович
08 января 2024, 16:23
0
Ну с AjaxFormit как раз с disabled работало, это позволяло в select показать подсказку, которую нельзя выбрать.

Поэтому тут бился в стену какое то время =)
Сергей Карпович
08 января 2024, 11:20
0
Временно решил проблему убрав disabled у первого option
<option disabled selected value="">Выбор отдела*</option>
Сергей Карпович
08 января 2024, 10:40
0
Подскажите, почему можете не работать валидация select?
форма:
<form action="{$_modx->resource.id | url}" method="post" enctype="multipart/form-data">
    <input type="hidden" name="page" value="{$_modx->resource.pagetitle | htmlent}">
    <div class="form">
        <div class="pole pole-icon">
            <input type="tel" name="phone" placeholder="Ваш телефон" autocomplete="off">
            <span class="error-info error_phone"></span>
        </div>
        <div class="pole pole-icon">
            <input type="text" name="name" placeholder="Как Вас зовут?" autocomplete="off">
            <span class="error-info error_name"></span>
        </div>
        <div class="pole">
            <select name="otdel">
                <option disabled selected value="">Выбор отдела*</option>
                <option value="Сервис"[[!+fi.otdel:FormItIsSelected=`Сервис`]]>Сервис</option>
                <option value="Запчасти"[[!+fi.otdel:FormItIsSelected=`Запчасти`]]>Запчасти</option>
                <option value="Автомобили"[[!+fi.otdel:FormItIsSelected=`Автомобили`]]>Автомобили</option>
            </select>
           <span class="error-info error_otdel"></span>
        </div>
        <div class="pole pole-btn">
            <button type="submit" class="btn bg"><span>Свяжитесь со мной</span></button>
        </div>
    </div>
    
    <div class="police">
    «я ознакомлен(-а) и принимаю условия публичной оферты и даю согласие на обработку персональных данных на условиях»
    </div>
</form>
вызов:
{'!AjaxFormitLogin' | snippet : [
            'form' =>  'tpl_form_popup',
            'emailTpl' => 'tpl_email',
            'snippet' => 'FormIt',
            'hooks' => 'FormItSaveForm,email',
            'emailTo' => $_modx->config.email_address,
            'emailFrom' => $_modx->config.emailsender,
            'formName' => 'Заявка на консультацию с сайта ' ~ $_modx->config.site_name,
            'emailSubject' => 'Заявка на консультацию с сайта ' ~ $_modx->config.site_name,
            'successMessage' => '',
            'clearFieldsOnSuccess' => 1,
            'transmittedParams' => ["success" => 'ym_goal', "error" => 'aliases'],
            'aliases' => 'phone==Телефон,name==Имя',
            'showUploadProgress' => 1,
            'spamProtection' => 1,
            'ym_goal' => 'FORM_GOAL',
            'validate' => 'otdel:required,name:required:minLength=^5^,phone:required:minLength=^18^',
            'validationErrorMessage' => 'Исправьте, пожалуйста, ошибки!',
            'otdel.vTextRequired' => 'Выберите отдел',
            'name.vTextRequired' => ' ',
            'name.vTextMinLength' => 'Слишком короткое ФИО.',
            'phone.vTextRequired' => ' ',
            'phone.vTextMinLength' => 'Слишком короткий телефон.',
            'secret.vTextContains' => 'Кажется Вы робот. Если это не так, обновите страницу.',
        ]}
Сергей Карпович
29 декабря 2023, 09:50
0
Насколько знаю почта по миру отправляет.
Но возможно тебе больше подойдет: modstore.pro/packages/delivery/eshoplogistic3