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

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

С нами с 24 мая 2019; Место в рейтинге пользователей: #3
Отправить деньги
04 декабря 2024, 20:49
0
Во-первых, radio это переключатель, это означает, что он должен иметь какое-то значение изначально, соответственно и валидация не нужна. Во-вторых, если выше сказанное противоречит твоему мировосприятию, попробуй валидатор checkbox.
03 декабря 2024, 15:27
+1
На смену колбэкам приходит система хуков, очень похожая на события в MODX.
А зачем хуки, если есть события в JS?
28 ноября 2024, 18:36
0
Я вижу три варианта:
1. Смотреть исходный код Office и добавлять нужный тебе функционал исходя из того что там написано.
2. Гуглить решения.
3. Перейти на SendIt и используя документацию решить свои задачи легко и быстро.
25 ноября 2024, 18:22
0
вы разделом ошиблись.
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
10 ноября 2024, 21:42
0
Учитывая кто автор компонента, есть сомнение в том, что данный компонент совместим Modx 3.