Артур Шевченко

Артур Шевченко

С нами с 24 мая 2019; Место в рейтинге пользователей: #7
Отправить деньги
Артур Шевченко
22 февраля 2022, 17:47
0
У меня одного скриншоты не открываются?
Артур Шевченко
22 февраля 2022, 17:45
+1
1. Думаю надо вызов msProduct сделать некэшированным.
2. Вынести всё в чанк вместо @INLINE
Артур Шевченко
18 февраля 2022, 10:50
0
Я догадывался поэтому и не послал)))
Артур Шевченко
18 февраля 2022, 10:45
+1
Есть мнение и я с ним согласен, что jQuery морально устарела и большинство тех возможностей, из-за которых все ей пользовались, реализованы в нативном js. А весит jQuery очень много и когда у тебя лэндос, где только отправка формы и нужна невольно закрадывается мысль, что jQuery это лишнее 😀
Артур Шевченко
18 февраля 2022, 10:40
0
Спасибо, я забыл, что так можно было. Перепишу. Заодно и замечания Николая Савина учту.
Артур Шевченко
18 февраля 2022, 10:38
+1
А почему у тебя в объекте методы внутри метода? Это же нелогично. Вынеси их в корень объекта. Для чего нужна вложенность?
Да ни для чего))) Это пробный шар, мне для тренировки, сообществу для пользы.
И я правильно понимаю, что в твоем варианте оригинальный ajaxForm все равно нужно подключать, а потом этой штукой перезаписывать метод initialize?
Да. В идеале сделать pr и из коробки загружать этот код, но для этого нужно его до ума до вести.
Артур Шевченко
17 февраля 2022, 09:01
0
Если API нет, то нельзя ничего реализовать.
Артур Шевченко
17 февраля 2022, 08:05
0
Функция получает на вход массив заголовков запроса, адрес по которому этот запрос отправить, метод запроса (для Битрикс это POST) и массив с данными для тела запроса. Затем отправляет с помощью curl запрос и возвращает результат запроса в формате массива. Но я тут на функцию посмотрел, она немного нелогичная, параметр ispost лишний, проверять надо метод, т.е. if($ispost) лучше написать if($method == 'POST')
Артур Шевченко
16 февраля 2022, 21:42
0
Если функция публичная, думая можно попробовать либо $modx->getService либо $modx->addPackage а потом вызывать нужный метод.
Артур Шевченко
16 февраля 2022, 20:52
0
Не знаю что за index вам нужен, но как создавать товары minishop2 программно можно глянуть
тут
Артур Шевченко
16 февраля 2022, 20:47
0
1С Битрикс? CRM? Если да, то там подробная документация по работе с API есть, надо отправлять запрос и получать данные, а какой именно запрос отправлять можно почитать в документации. А если интересует как, то проще всего через curl. Ниже пример функции которую я использую для отправки запроса в 1С Битрикс
<?php
    /**
     * @param array $headers
     * @param string $url
     * @param string $method
     * @param array $post_data
     * @param boolean $ispost
     *
     * @return string
     */
    public function execCURL($headers,$url,$method,$post_data,$ispost = false){
        $post_data = http_build_query($post_data);
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_VERBOSE, 1);
        curl_setopt($curl, CURLOPT_URL, $url . $method);
        curl_setopt($curl, CURLINFO_HEADER_OUT, 1);
        if($ispost){
            curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
            curl_setopt($curl, CURLOPT_POST, true);
        }
        $result = curl_exec($curl);
        return json_decode($result,1);
    }
?>
Артур Шевченко
16 февраля 2022, 20:42
0
Наверное, я поздновато, но возможно параметр &toSeparatePlaceholders помог бы.
Артур Шевченко
16 февраля 2022, 20:39
0
Готового решения нет, надо брать mSync и писать плагины, которую реализуют необходимую логику.
Артур Шевченко
15 февраля 2022, 19:59
0
Зря ты ему правильный синтаксис правильный показал, теперь ему может стать лениво устанавливать clientConfig)))
Артур Шевченко
15 февраля 2022, 19:20
0
Рекомендую не изобретать велосипед, а установить clientConfig в режиме нескольких контекстов.
Артур Шевченко
15 февраля 2022, 18:49
0
Ну как бы стандартные методы показа уведомлений я оставил, т.е. AjaxForm.Message.success и AjaxForm.Message.error никуда не делись, просто я выпилил создание объекта AjaxForm.Message поэтому по умолчанию сообщения показываться не будут. Если лень возиться с подключением своих уведомлений, можно поставить SweetAlert2, либо определить объект AjaxForm.Message и подключить свои уведомления. Но с последним вариантом засада, т.к. хорошо бы сделать системную настройку которая бы хранила путь к файлу с уведомлениями и надо допилить сниппет, чтобы он эту настройку подхватывал если она указана. И тогда по умолчанию можно что-то подключить.
Артур Шевченко
15 февраля 2022, 15:57
0
Ошибку в консоли я видел, это 500, значит надо логи сервера смотреть, по-другому сложно понять где косяк. Другой путь внимательно свериться с докой по обоим компонентам, попробовать запустить на дефолтных настройках, потом найти отличия. Проверить версию php, может быть обновить админку, но это всё на всякий случай.