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

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

С нами с 24 мая 2019; Место в рейтинге пользователей: #4
Отправить деньги
Артур Шевченко
06 декабря 2024, 20:57
0
Завидую тебе, столько у тебя свободного времени или так тебе много платят, что ты можешь заниматься такой фигнёй)))
Артур Шевченко
04 декабря 2024, 20:49
0
Во-первых, radio это переключатель, это означает, что он должен иметь какое-то значение изначально, соответственно и валидация не нужна. Во-вторых, если выше сказанное противоречит твоему мировосприятию, попробуй валидатор checkbox.
Артур Шевченко
03 декабря 2024, 15:27
+1
На смену колбэкам приходит система хуков, очень похожая на события в MODX.
А зачем хуки, если есть события в JS?
Артур Шевченко
28 ноября 2024, 18:36
0
Я вижу три варианта:
1. Смотреть исходный код Office и добавлять нужный тебе функционал исходя из того что там написано.
2. Гуглить решения.
3. Перейти на SendIt и используя документацию решить свои задачи легко и быстро.
Артур Шевченко
24 ноября 2024, 21:06
0
Какие задачи ты решаешь с помощью Vue?

Например я так и не смог заставить себя освоить Vue, потому что не вижу куда могу применить эти знания.
Мне в работу попадают обычные интернет-магазины, сайты визитки, лэндинги для чего там может понадобится Vue не представляю.

Самый сложный с точки зрения интерфейса сайт это сайт-каталог образовательных программ, там довольно заковыристая форма оформления заказа. Но, учитывая то, как работает Modx (сниппеты, чанки, шаблоны), я для себя решил, что проще отправлять запросы на сервер и вставлять на страницу полученный от него html. На долю JS остаётся только отправка запроса, вставка html и открыть\закрыть модалку.

во вторых нода однопоточная
А PHP многопоточный? Думаю скорость ответа NodeJs не от этого высокая.

А ещё хотелось бы понять для кого и для чего компонент gtsAPI? Какие практические задачи ты с его помощью решаешь?
Артур Шевченко
24 ноября 2024, 13:39
0
Моя кофейная гуща говорит о том, что это код html и там есть смайлики, а кодировка бд не utf8mb4.
Артур Шевченко
22 ноября 2024, 21:57
+1
Лучше деинсталировать и установить новую версию. Там полностью переписан JS.
Артур Шевченко
21 ноября 2024, 22:15
1
0
надо как то подгружать через Ajax, разные формы
Можно и подгружать. Устанавливаешь SendIt. Разметка будет такая
<form action="">
    <select name="realty_type" data-si-preset="load_fields" data-si-event="change" data-si-form>
        <option value="квартира" selected>квартира</option>
        <option value="земельный участок">земельный участок</option>
    </select>
    <div id="results">{'loadFields' | snippet: ['type' => 'квартира']}</div>
</form>
Пресет такой
'load_fields' => [
    'hooks' => '',
    'resultBlockSelector' => '#results',
    'resultShowMethod' => 'insert',
    'snippet' => 'loadFields'
]
Сниппет loadFields примерно такой
$type = $type ?? $_POST['realty_type'];
$html = '';
switch ($type) {
    case 'квартира':
        $html = $modx->getChunk('flatFields', []);
        break;
    case 'земельный участок':
        $html = $modx->getChunk('groundFields', []);
        break;
}
if($SendIt){
    if($result['success']){
        return $SendIt->success(true, ['html' => $html]);
    }else{
        return $SendIt->error(false, []);
    }
}
return $html;
Ну а в чанках соответственно поля.
Артур Шевченко
21 ноября 2024, 11:40
0
как вообще можно реализовать подгрузку разных параметров недвижимости, в зависимости от того, жилая это недвижимость или коммерческая?
В простом варианте решения все параметры сразу есть в форме, а ты с помощью JS скрываешь те, которые не относятся к выбранному типу недвижимости. Примерно так
<style>
    .d-none {
        display: none;
    }
</style>
<form action="">
    <select name="realty_type">
        <option value="квартира" selected>квартира</option>
        <option value="земельный участок">земельный участок</option>
    </select>
    <input type="number" name="room_count" data-type="квартира">
    <input type="number" name="square_for_live" data-type="квартира">
    <input type="number" name="total_square">
    <select name="destination" data-type="земельный участок" class="d-none">
        <option value="ИЖС">ИЖС</option>
        <option value="Земли сельхоз назначения">Земли сельхоз назначения</option>
    </select>
</form>

<script>
    const realtyType = document.querySelector('[name="realty_type"]');
    const linkedFields = document.querySelectorAll('[data-type]');
    realtyType && realtyType.addEventListener('change', e => {
      linkedFields.forEach(field => field.classList[field.dataset.type === e.target.value ? 'remove' : 'add']('d-none'));
    })
</script>
Артур Шевченко
18 ноября 2024, 15:11
0
Предположим, что объявления это ресурсы. Тогда я бы создал отдельную таблицу для хранения данных об оплаченных услугах для конкретных ресурсов. Сами услуги и оплату сделал бы через minishop2. Ещё повесил бы на крон задачу, которая будет проверять когда заканчивается оплаченный период.
Артур Шевченко
18 ноября 2024, 13:34
0
Скорее всего дело в том, что за короткое время происходит изменение нескольких полей заказа и, поскольку данные записываются в сессию, она не успевает обновится. Тут либо переходить на хранение данных в БД, если версия minishop2 позволяет, или ставить задержку через setTimeout().
Артур Шевченко
16 ноября 2024, 19:59
0
Подскажите, что не так делаю?
Ты вызываешь сниппет в инлайновом чанке.
Артур Шевченко
13 ноября 2024, 10:55
+1
Не все пожелания клиента нужно реализовывать. Одно дело когда желание обосновано бизнес-процессами, а другое дело клиент так видит. В данном случае, на мой взгляд, это бессмысленное усложнение.
Артур Шевченко
12 ноября 2024, 20:36
0
Но как указать при Авторизации, сделать так, что бы проверяло логины только собственников, и если там вводят логин Риелтора, выдало ошибку, и писало ошибку.
А зачем выдавать ошибку, если у риеторов тоже есть лк?
Артур Шевченко
12 ноября 2024, 20:26
0
И что бы даже если пытаются зайти через страницу авторизации собственника, не пускало риелтора.
Нужно создать две группы ресурсов одну для риелторов, другую для собственников, и в каждую группу положить соответствующие ресурсы.

при авторизации, были две разные ссылки, для Риелторов отдельно, для собственников отдельно.
Наверное плагином на событие OnWebLogin можно сделать редирект.
Артур Шевченко
11 ноября 2024, 11:20
+1
Да, Tickets тоже не адаптирован, и если никто не возьмётся, то и не будет адаптирован.
Артур Шевченко
11 ноября 2024, 10:35
0
На modstore полно компонентов, которые не дружат с modx 3 и их можно скачать из админки. А создать календарь ты не можешь, потому что данный компонент не адаптирован по modx 3. Вариантов у тебя два: адаптировать самой или понизить версию modx