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

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

С нами с 24 мая 2019; Место в рейтинге пользователей: #3
Отправить деньги
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, может быть обновить админку, но это всё на всякий случай.
15 февраля 2022, 12:29
+1
Ну ок.
15 февраля 2022, 12:20
+1
Я не сомневался, что там не всё идеально))) У себя проверял ошибок не было. Не знаю как лучше поступить в этом случае, отдельный репозиторий делать, чтобы могли туда правки вносить?
14 февраля 2022, 22:30
0
Журнал ошибок посмотри.
14 февраля 2022, 22:18
+1
Я не уверен, что без уведомлений его примут. Хотя с другой стороны, попытка не пытка. Но уже завтра.
09 февраля 2022, 19:43
0
Попробуй
{if $address.extfld_type | match: '*Бизнес заказ*' }
08 февраля 2022, 20:54
0
Если ты используешь fenom, то вот так
<!-- получаем значение и преобразуем в массив -->
{set $array = $migxName | resource: 'tv-name' | fromJSON}
<!-- смотрим на структуру массива чтобы понять где нужное поле -->
{$array | print}
02 февраля 2022, 22:09
0
Ну это тоже не проблема.
$products = $modx->getIterator('msProduct', array('published:!=' => 1));
foreach($products as $product){
$dir = MODX_CORE_PATH.'assets/images/products/'.$product->get('id').'/';
removeDirectory($dir);
$product->remove();
}

 function removeDirectory($dir) {
        if ($objs = glob($dir."/*")) {
            foreach($objs as $obj) {
                is_dir($obj) ? removeDirectory($obj) : unlink($obj);
            }
        }
        rmdir($dir);
    }