Константин Ильин

Константин Ильин

С нами с 10 февраля 2014; Место в рейтинге пользователей: #149
Константин Ильин
17 марта 2024, 14:45
+1
База верстки. На одно странице не должно быть 2 или более элемента с одинаковым id.
У вас получается #form-fields и #form-thanks 2е штуки т.к. две формы. Надо перейти на классы и работать с конкретной формой, а не глобально.

<form action="[[~[[*id]]]]" method="post" id="callbackform" class="ajax_form">
			<div class="form-fields">
				<input type="text" id="fr_name" name="name" value="[[+fi.name]]">
				<input type="text" id="fr_phone" name="phone" class="m-phones" value="[[+fi.phone]]" required="">
				<input type="submit" class="btn" data-default="Заказать звонок" value="Заказать звонок">
			</div>
			<div class="form-thanks" style="display: none;">
				<span class="title">Спасибо за ваше обращение!</span>
				<p>Мы свяжемся с Вами в ближайшее время.</p>
			</div>
		</form>

js вроде так, с jquery давно не работал
if (form.attr('id') == 'callbackform') {
    $(form).find(".form-fields").fadeOut();
    $(form).find(".form-thanks").fadeIn();
}
Константин Ильин
03 февраля 2024, 09:06
0
Для начала попробуй
$resources = $modx->getIterator('modResource',$q);
Я так полагаю ошибок в логах нет?
Константин Ильин
02 февраля 2024, 15:25
0
он нормально работает под 7кой

Логи ошибок смотрите, там обязательно что-то есть

обновление минишоп чревато с такой разницей в версиях, скажем так процесс обновления может аукнуться, насколько помню там есть значительные изменения, лучше разобраться со скриптом.
Константин Ильин
02 февраля 2024, 11:19
0
из моего опыта это было либо из-за версии пхп или из-за mysql 8
Константин Ильин
13 января 2024, 12:00
0
Тоже столкнулся с такой проблемой, не понимал откуда спам. Стоял AjaxForm, поменял на FetchIt один фиг через день началось.
Как вариант конечно создать дубликат action.php, назвать аля fsdfjsfjsoidfjsofsdofsd.php, заменить везде обращения action.php на новый файл. в оригинальном action.php return можно какую то ошибку все время возвращать для правдоподобности.

Но если прям всерьез взялись за атаку, то и этот файл быстро найдут, посмотрят куда отправляются запросы.
Константин Ильин
28 декабря 2023, 14:39
0
Принял :)) Спасибо за все труды в текущем году) С наступающим)
Константин Ильин
27 декабря 2023, 10:12
0
При правильной настройке ошибок типа «Повторная отправка формы через ** секунд» быть не должно
При правильной настройки SendIt или FlatFilters?

Это решается удаление пути к файлам стилей из системной настройки.
Я в целом так и подумал(т.к. имею опыт), да я мог бы и в плагине найти строчку или еще как то, т.к. умею, но обычным пользователям же нужно: вызвало и чтоб заработало :)
Константин Ильин
26 декабря 2023, 19:04
+1
Чуть и я напишу
Попробовал установить, так скажем быстрый старт вроде норм, сам компонент запустился, но не фильтровал, оно понятно не было SendIt.

Пошел устанавливать SendIt, открываю страницу, а там начинается ад из сообщений «Повторная отправка формы через ** секунд»
disk.yandex.ru/i/89ZDlaiewiKMUA

Css от SendIt изменяет css сайта, первое, что бросилось в глаза размер .container увеличился
В журнале ошибки disk.yandex.ru/i/4sV0-QJWMNpByA

— сам вызов и настройка вроде хорошо-просто
— страница открывается быстро

К чему я это все, эта зависимость от SendIt удручает. На готовых сайтах могут проблемы от обязанности использовать SendIt. Наврно должен быть свой JS
Константин Ильин
28 ноября 2023, 17:43
0
Так причем тут jQuery?
AjaxForm(не только js имеется ввиду, а его php) на сколько я знаю вообще не адаптирован под MODX 3, FetchIt прямая и простая замена.
Константин Ильин
23 ноября 2023, 10:54
+2
После загрузки модального окна делаю так:
let a = document.querySelector(".modalTmp form").getAttribute('data-fetchit')
        FetchIt.create({
            action: a,
            assetsUrl: "/assets/components/fetchit/",
            actionUrl: "/assets/components/fetchit/action.php",
            inputInvalidClass: "is-invalid",
            customInvalidClass: "",
            clearFieldsOnSuccess: false,
            pageId: 1,
        });
пока такой костыль, но работает

а, еще чтобы FetchIt был подключен всегда и объявлена переменная FetchIt до запуска вышенаписанного кода, в футере например вызываю пустой FetchIt
{'!FetchIt' | snippet : ['form' => '@INLINE <div class="modalTmp"></div>']}
Константин Ильин
14 ноября 2023, 11:05
0
я как раз с намеком на SendIt))) для меня темный лес) ну и не желание вникать кончено же в непонятное)
Константин Ильин
14 ноября 2023, 10:11
0
Очень жду! на сайте 70к товаров — тормозит… еще и jquery тянет msearch2

тут выше говорится о вызове компонента, надеюсь будет все просто понятно и главное привычно(как все сниппеты модх) :)

наконец нашелся смельчак!)
Константин Ильин
08 ноября 2023, 16:11
0
Вы привязывали его к модх(минишоп фильтрам)?
Константин Ильин
25 октября 2023, 10:26
0
JS запрос к request.php(куда хотите его кладите в нем подключение index путь правьте), можете этот запрос повесить на клик кнопки
p = new URLSearchParams();
//тут передаем какие то параметры
p.set('action', 'runSnippet');
p.set('blabla', '1212');

fetch('/request.php', {
    method: 'POST',
    body: p
})
.then((response) => {
    return response.json();
})
.then(( r ) => {
    console.log( r);
   // тут получает ответ, делайте что угодно, например:
    document.querySelector('body').html(r.out);
});
PHP request.php
if(empty($_POST['action'])){
    return;
}

define('MODX_API_MODE', true);
require 'index.php';
$pdo = $modx->getService('pdoTools');
$resp = [
    'success' => 1
];
switch ($_POST['action']){
    case 'runSnippet':
        $resp['out'] = $modx->runSnippet('snippetBla', [ 'parents' => 1111] );
        echo json_encode($resp);return;
    break;
}
Константин Ильин
13 октября 2023, 10:11
0
Приветствую!
создал ТВ, в нем определенный путь хранения (/img/upload/*resid*/). Через админку все ок, закинул — загрузилось.

А как через апи это делать? Смотрел в сторону runProcessor, посмотрел upload, но что-то не сообразил какие параметры передавать
Константин Ильин
30 августа 2023, 13:53
0
Хотя бы вывод(where) для начала:) сразу куплю.
фильтрацию след этапом
Константин Ильин
30 августа 2023, 13:02
0
Так то вроде компонент многое может, устраивает, хочется купить, но вот вопрос в выводе товаров со скидкой и работы его с msOptionsPrice2, так уже учитывая mFilter2(тут пока вопрос следующего дня)

Заморочиться это как?)
Константин Ильин
23 августа 2023, 17:52
0
Вроде работает
(function(miniShop2, $){
        $(function(){
        var message = miniShop2.Message.show;

        miniShop2.Message.error = function(t) {
            FetchIt.Message.error(t);
        }
        miniShop2.Message.success = function(t) {
            FetchIt.Message.success(t);
        }

        $.extend(miniShop2.Message.show.prototype, message.prototype);
        })
    })(miniShop2, jQuery);