Всего 125 400 комментариев

Артур Шевченко
23 февраля 2025, 11:42
+1
Ты первый у кого с SendIt всё получилось с первого раза)))
Alex
23 февраля 2025, 03:16
0
Спасибо вам за то, что подсказали правильное направление — все получилось)
Артур Шевченко
22 февраля 2025, 21:04
0
Вообще не планировал, но раз вы спрашиваете, имеет смысл запланировать.
Максим
22 февраля 2025, 20:25
0
Как будто с MySQL 8 компонент не очень работает.
FastDevLab
22 февраля 2025, 20:24
0
Нет) Это просто шаблон — каркас так сказать для верстки на 4м бутстрапе. В шаблоне там свои шаблоны
Сергей Карпович
22 февраля 2025, 19:34
0
Планируется ли добавить в компонент переключатель вида товара (переключатель чанка вывода ресурса)?
Артур Шевченко
22 февраля 2025, 19:06
+1
Если решил делать пагинацию сам, то зачем используешь pdoPage? pdoPage твой js не понимает, больше скажу, pdoPage не умеет работать с динамическими параметрами, т.е. какие при вызове задал по таким выборку он и сделает и потом ничего пересчитывать не будет.
В твоём случае надо использовать вот это
Андрей
22 февраля 2025, 11:06
0
Не приходит информация: phone, street, comment
Остальные приходят. В чём может быть причина?
<?php
if($modx->event->name != 'msOnCreateOrder') return;
$token = $modx->getOption('mstelegram_token', null, false);
$recipients = explode(',', $modx->getOption('mstelegram_recipients', null, ''));
$contacts = $modx->getObject('msOrderAddress', array('id'=> $msOrder->id));
$_products = $msOrder->getMany('Products');
$profile = $msOrder->getOne('UserProfile');

// Список товаров в заказе
$i = 0;
$products = '';
foreach ($_products as $product) {
    $i++;
    $products .= "*{$i}. {$product->name}* \n    `↳ ". round($product->price) ." х {$product->count} шт. = ". round($product->price * $product->count)."` \n";
}

if ($msOrder->delivery == '1') {
    $deli = "Сами заберут \n---------- \nТелефон: {$contacts->phone} \nКомментарий: {$contacts->comment}\n";
    } else if ($msOrder->delivery == '2') {
        $deli = "Доставка {$contacts->city} `{$msOrder->delivery_cost} р.` \n---------- \nТелефон: {$contacts->phone} \nАдрес: {$contacts->city}, {$contacts->street} \nКомментарий: {$contacts->comment}\n";
    }

// Текст сообщения
$message = "
Новый заказ #{$msOrder->id}
на сумму: {$msOrder->cart_cost} р.
----------
{$products}
----------
{$deli}
_Статус заказа придёт повторно_";

$message = urlencode($message);
foreach($recipients as $id){
    $id = trim($id);
    if(!$id) continue;
    $url = "https://api.telegram.org/bot{$token}/sendMessage?chat_id={$id}&parse_mode=markdown&text={$message}";
    $ch = curl_init();
    curl_setopt_array($ch, array(CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true,));
    $result = curl_exec($ch);
    curl_close($ch);
}
Юрий Эффа
21 февраля 2025, 19:50
0
Пробовал по-разному. Умирает именно при подключении SCSS-файла, любого, даже самого простого. LESS-файл компилирует нормально.
Артур Шевченко
21 февраля 2025, 14:51
0
Ну если всё по-простому, то можно сохранять эти данные в extended и ExtraFields не нужен.
aziomav@likemovie.net
21 февраля 2025, 14:37
0
Мы с вами не так близко знакомы, поэтому лучше на Вы все же обращаться)

Клиент добавляет адрес сайта, может добавить сколько угодно их. Это банально поля.
Сайт 1
Сайт 2 и т.д.
К каждому сайту может добавить запросы 1 поле в textarea например.

Ничего фильтровать не надо. У него будет страничка где будет список сайтов добавлен и запросов.

По простому если: сайт 1, сайт 2, сайт 3. И поля запросы 1, запросы 2, запросы 3. Он может их редактировать — менять значения, удалять.

Ничего фильтровать не надо, просто добавить данные, отредактировать или удалить. Чтобы они были на личной странице клиента.
Артур Шевченко
21 февраля 2025, 14:27
0
Ты максимально абстрактно описываешь функционал. Что значит «добавить сайт»? Что за «запросы»? Что с этими данными будут делать в последствии: показ, фильтрация, отправка?

От ответов на эти вопросы зависит то, как лучше организовать хранение.
aziomav@likemovie.net
21 февраля 2025, 14:23
0
На счет компонентов понятно.

А как можно реализовать будет возможность добавления неограниченного кол-во сайтов для клиента. Т.е. клиент захочет добавить из ЛК не 1, а 5 скажем сайтов или больше и запросы к каждому. Я так понимаю поля в профиле, например через тот же ExtraFields добавляются мной вручную. Не очень понятно как такой момент обыграть
Артур Шевченко
21 февраля 2025, 13:56
0
Часть данных храниться в modx_user_attributes. Но это наверное не очень правильно туда лишние данные сохранять.
А что в этом неправильного? Атрибуты пользователя могут быть каким угодно.

Лучше это через компоненты все сделать?
Да, так как компоненты имеют документацию и тот, кто после тебя будет работать с сайтом сможет к ней обратиться и быстрее понять как и что работает.
aziomav@likemovie.net
21 февраля 2025, 13:15
0
Функции одинаковые у всех. У каждого клиента должна быть возможность добавить сайт, список запросов и выбрать тариф. По сути все, это информация должны сохранятся, редактироваться и удаляться через интерфейс.

Лучше это через компоненты все сделать?
Просто не очень понятно как данные и где будут храниться под пользователя. Часть данных храниться в modx_user_attributes. Но это наверное не очень правильно туда лишние данные сохранять.
Артур Шевченко
21 февраля 2025, 13:06
0
как сделать персональную страницу для каждого пользователя?
Если для всех пользователей должны быть доступны одинаковые функции, то страница должна быть одна и задача сводится не к генерации индивидуальных страниц, в к загрузке персональных данных для авторизованного пользователя.
Для вывода данных пользователя в Modx есть модификатор user. В pdoTools есть сниппет pdoUsers. Можно написать свой сниппет.
Так же очевидно, что кроме стандартных полей требуется хранить ещё какие-то данные пользователя. Для создания полей под эти данные имеет смысл использовать компонент ExtraFields версии не старше 2.0.3.
Когда организуешь место для хранения, нужно будет организовать отправку данных на сервер и обработку ответов. Для этого удобнее всего использовать компонент SendIt.

В целом этих трёх компонентов достаточно для создания личного кабинета любой сложности.
Наумов Алексей
21 февраля 2025, 10:26
0
Ну там явное отсутствие объявления переменной $skip в функции.

Можешь попробовать в начале добавить
$skip = 0;
.

Но это всего лишь PHP warning, работать должно и так)

А насчет второй — ну вот где-то ему скобочка не понравилась. Пробуйте частями может как-то файлы подключать? Найти эту скобочку.