Андрей Чаплыгин

Андрей Чаплыгин

С нами с 24 августа 2020; Место в рейтинге пользователей: #76
Андрей Чаплыгин
20 ноября 2024, 16:25
0
В сниппете rcv3_html достаточно отложить загрузку через setTimeout (хотя кто-то делает через onClick). Не думаю что мой вариант самый правильный и что вообще стоит принудительно таймаутить что-либо, но меня пока так устраивает + поможет улучшить показатель TBT в PageSpeed.

Меняем вот эту строку:

$modx->regClientStartupScript('<script src="https://www.google.com/recaptcha/api.js?onload=ReCaptchaCallbackV3&render=' . $public . '" async></script>');

на

$modx->regClientScript('
        <script>
            function loadCaptcha() {
              let script = document.createElement("script");
              script.src = "https://www.google.com/recaptcha/api.js?onload=ReCaptchaCallbackV3&render=' . $public . '";
              script.async = true;
              document.body.append(script);
            }
            setTimeout(loadCaptcha, 2500);
        </script>
    ', true);

В итоге получаем отложенную загруку скрипта на 2,5 секунды + он будет не в head, а в body за счёт замены regClientStartupScript, на regClientScript.
Андрей Чаплыгин
25 октября 2024, 21:39
0
Alexey, большое спасибо! То что нужно!

Немного дополню для интересующихся:

Если добавить в набор передаваемых параметров
'SOLUTIONTYPE' => 'Sole',
и включить в аккаунте PayPal оплату без авторизации (PayPal Account Optional), при редиректе на оплату в PayPal вы увидите ту же форму входа в аккаунт + появится дополнительная кнопка «Оплатить дебетовой\кредетовой катрой», при клике на которую вас всё равно попросят ввести email адрес, уже после чего дадут заполнить данные карты для оплаты.

Чтобы и этого избежать и упростить жизнь пользователю, впишите в тот же набор параметров ещё вот это
'LANDINGPAGE' => 'Billing',
С этим параметром, пользователь сразу будет отправлен на страницу, где останется только заполнить данные карты, без необходимости нажимать дополнительные кнопки и вводить email.

PS. На всякий случай скажу, что делаю это для клиента из США, поэтому добавил ещё и эту опцию
'LOCALECODE' => 'US',
Не уверен, что она необходима, учитывая что код US вроде как ставится по дефолту, но тем не менее, может кому будет полезно.

Андрей Чаплыгин
24 октября 2024, 13:47
0
Допускаю что недостаточно хорошо разобрался с этим вопросом, поэтому сформулирую по проще.

Задача: по прежнему принимать оплату на свой аккаунт paypal, только чтобы у клиентов была возможность оплатить картой без необходимости входа в ЛК paypal.

На сколько понимаю эту возможность их система предоставляет, но могу ошибаться с методом интеграции, толи через Integrate PayPal Checkout, толи через API PayPal REST что больше похоже на правду. А может и через тот же NVP/SOAP это можно сделать например поменяв apiUrl…

В общем, буду рад любому вашему опыту.
Андрей Чаплыгин
25 августа 2020, 12:48
0
Нашел решение!
Можно либо вообще убрать конструкцию
&sort=`[{"sortby":"menuindex"}]`

либо можно указать вот так
&sort=`[[+idx]]`

А именно вот такая тема не работает
&sort=`[{"sortby":"idx"}]`
Андрей Чаплыгин
24 августа 2020, 20:54
0
idx тоже не работает… Может в самом json надо что-то дополнительно указать?

Мой код вкладок формы:
[
{"caption":"Услуги","fields":[
{"field":"serviceTitle","caption":"Услуга"},
{"field":"servicePrice","caption":"Стоимость услуги"}
]}
]
Мой код разметки колонок:
[
{"header":"ID", "width": "10", "dataIndex":"MIGX_id", "renderer":"", "sortable":"true", "show_in_grid":1},
{"header":"Услуга", "width": "150", "sortable": "false", "dataIndex":"serviceTitle", "editor": "this.textEditor"},
{"header":"Стоимость", "width": "150", "dataIndex":"servicePrice", "editor":"this.textEditor"}
]
Андрей Чаплыгин
24 августа 2020, 19:16
0
Ну да. Тоесть на сайте я хочу чтобы ресурсы выводились в том порядке, в котором я их расставил в админке.

menuindex не работает… вывожу результаты через сниппет:

[[!getImageList?
   &docid=`[[+id]]`
   &tvname=`priceList`
   &tpl=`row-item-price`
   &sort=`[{"sortby":"menuindex"}]`
]]
Андрей Чаплыгин
24 августа 2020, 12:23
0
Скажите плиз, как вывести на сайт элементы в том порядке, который я построил в админке?
что надо вписать в конструкцию
&sort=`[{"sortby":""}]`