Андрей

Андрей

С нами с 09 декабря 2019; Место в рейтинге пользователей: #496
Андрей
07 декабря 2022, 15:12
0
«В лоб» не совсем правильно, лучше было бы доработать SweetAlert2 полностью под работу с Tickets.
Для этого понадобится:
  1. Доработать assets/components/sweetalert2/js/default.js (выбрав его в параметре swal2_frontend_js)
  2. Добавить соответствующий системный параметр типа swal2_tickets
  3. Прописать этот параметр в sweetalert2.class.php
После этого обновление компонента Tickets ничего не сломает.
А для обновления самого SweetAlert2, скорее всего, достаточно будет только заменить файл sweetalert2.all.min.js
Андрей
07 декабря 2022, 13:45
0
Раз уж после установки SweetAlert2 все необходимые скрипты уже подключены, то можно «прямо в лоб» изменить сообщения в скрипте самого Tickets.
В файле assets/components/tickets/js/web/default.js можно поменять
<script>
//...
success: function (message) {
    if (message) {
        $.jGrowl(message, {theme: 'tickets-message-success'});
    }
}
//...
</script>
на
<script>
//...
success: function (message) {
    if (message) {
        Swal.fire({
            position: 'top-end',
            icon: 'success',
            title: message,
            showConfirmButton: false,
            timer: 1500,
            toast: true
        })
    }
}
//...
</script>
Ну и, конечно, сообщения с остальными статусами.
Андрей
07 декабря 2022, 11:50
0
Конечно уже много времени и несколько обновлений назад это было, но вряд-ли в каком-либо из обновлений изменились события или статусы.
Пробуйте, должно работать.
Андрей
28 апреля 2022, 23:03
0
Разобрался!
Нужно изменить request_param_id
Андрей
28 апреля 2022, 20:40
0
Если сниппет вызвать в шаблоне 404, тоже срабатывает, но остается на ней после авторизации.
Как сделать чтобы
site.ru/?Id=000&first_name=Name
обрабатывался, а не выдавал 404?
Андрей
28 апреля 2022, 20:22
0
Прикол )
Если в качестве страницы 404 указать главную, то работает.
Андрей
28 апреля 2022, 18:40
0
Вход работает с любой страницы кроме главной.
Кидает на адрес:
site.ru/?Id=000&first_name=Name&last_name=Name&username=Name&auth_date=000&hash=000
Андрей
10 сентября 2021, 17:38
0
Не совсем точно. Подставлять нужно идентификатор не пользователя, а картинки.
Поэтому менять нужно на:
$userProfile->photoURL = 'https://avatars.yandex.net/get-yapic/' . $data->get('default_avatar_id') . '/islands-200';
Андрей
27 ноября 2020, 23:37
0
Артур, получилось по решению в первом комменте. Намудрил с условиями. Вынес за скобки и все заработало.
Андрей
19 ноября 2020, 03:33
0
if ($product = $modx->getObject('msProduct', 65)) {
    $option['key'] = 15;
    $product->set('options', $option);
}
Нашел такое решение. В сниппете работает, а в плагине нет…
Андрей
06 сентября 2020, 18:31
0
Работает!
Сам не допер, извини уж, за такое количество вопросов. Да и в примере ты направление сортировки показал как надо.
Ты меня прокачал теперь я — мастер сниппетов!
Андрей
06 сентября 2020, 17:29
0
Дружище, спасибо! Я бы тебе 500 плюсов поставил за отзывчивость.
Пример подробнейший, все вроде делал правильно, просто другими способами.
Взял из твоего примера:
<?php
$array = array_slice($array, $offset, $limit); //обрезаем, сдвигаем
и все заработало.

Сортировку, из-за многомерного массива, приходится делать так:
<?php
foreach ($arry_all as $idx => $res) {
    $sort_array[] .= $res->snippet->$sortby;
}
array_multisort($sort_array, SORT_DESC, $arry_all);
и никак не работает
array_multisort
если выношу
SORT_DESC
в переменную.
Андрей
06 сентября 2020, 14:10
0
Перебирается json массив.
Андрей
05 сентября 2020, 19:57
0
И еще…
Никак не получается вынести порядок сортировки в переменную:
$sortdirvalue = 'SORT_ASC'
array_multisort($sort_array, $sortdirvalue, $arry_all);
Андрей
05 сентября 2020, 19:41
0
Павел, с сортировкой я разобрался, а постраничный вывод не работает (
limit и offset работают так:
foreach (new LimitIterator($array_index, $offset, $limit) as $idx => $res) {
    $output .= $modx->getChunk($tpl);
}
Андрей
05 сентября 2020, 15:17
0
Вариант работает, только проблема не в нем была.
Андрей
05 сентября 2020, 15:16
0
Спасибо, Павел! Навел на решение.
Я почему-то думал, что это делает pdoPage.
Андрей
29 мая 2020, 13:29
+1
Плагин на событие
msOnSubmitOrder
Создаёшь новый плагин, вешаешь на указанное событие, в коде указываешь свою минимальную сумму и ID способа доставки для которого она действует. В моем примере ограничение минимальной суммы действует для всех доставок кроме самовывоза
$order_status['delivery'] <> 1
для конкретного способа доставки будет, например, —
$order_status['delivery'] == 2
Андрей
14 мая 2020, 16:31
1
0
<?php
$cart_status = $order->ms2->cart->status();
$order_status = $order->get();

if ($modx->event->name == 'msOnSubmitOrder'){
    if ($cart_status['total_cost'] < 10000 && $order_status['delivery'] <> 1) {
        $modx->event->output('Минимальная сумма заказа для выбранного способа доставки 10000 рублей!');
    } 
}
Вот так получилось.