Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 110 комментариев

Алексей
Алексей
Еще снова вернулась проблемка, после выбора способа доставки почтой РФ — появляется стоимость доставки, но она «прилипает» и не исчезает после переключение способа доставки на СдэкКурьер.
(а до переключения на почту, Сдэк курьер рассчитывает нормально) Неправильно что-то сделал.
<h2 class="border h1">{'ms2_deliveries'|lexicon}</h2>
[[!msRussianPost]]
[[!ms_CDEK2]]
<div id="ms_cdek2_status"></div>
Алексей
Алексей
Помогите пожалуйста, с настройками напутал.

По msRussianPost в этом году примерно началось, возможно при установке 4.0.13-beta 2024-10-21.
При выборе города из выпадающего списка в ранее заполненное поле индекс подставляется Undified.
И сдэк компонент примерно также (Undified не ставится, просто заполненный индекс удаляет)


Есть 2 выпадающих списка городов с разным дизайном, один при выборе просто стирает индекс, надо вводить заново, а второй список подставляет Undified.

Включаю Автокомплит у Почты (Индекс Undified ставится)
Надо выбрать и включить только один из автокомплитов городов, так задумано?
Ruslan
Ruslan
А кто подскажет, как в форму Создания/Редактирования ресурса, через ms2Form, добавить возможность выбирать несоклько параметров в одном TV?
Ну то-есть например у меня есть у карточки недвижимости TV c select и checkbox значениями.
Как мне в самой форме создания/редактирования ресурса, вывести список значений TV параметра так же выпадающим списком, или чекоксом?
Перекопал форум, и ненашел никакой документации с примером такой реализации.
Подскажите где посмотреть?
Роман
Роман
Подскажите, если на странице будет две формы, они будут работать? К примеру reCaptchaV3 этого сделать не может, нужно через костыль в виде скрипта, который сбрасывал через указанное время отправку и обновлял ключи.
Артур Шевченко
Артур Шевченко
надо как то подгружать через 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;
Ну а в чанках соответственно поля.
Ruslan
Ruslan
Мне кажется. это не совсем правильно, и придется писать много проверок на JS.
В идеале, я думаю надо как то подгружать через Ajax, разные формы, в зависимости от выбранных параметров.
Артур Шевченко
Артур Шевченко
как вообще можно реализовать подгрузку разных параметров недвижимости, в зависимости от того, жилая это недвижимость или коммерческая?
В простом варианте решения все параметры сразу есть в форме, а ты с помощью 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>
Alexey
Alexey
Что-то показания путаные! То ошибка 404, то все то же самое…
Можно попробовать вообще строку 'parents' => $id, убрать на время и проверить. По умолчанию в parent подставляется $id текущего ресурса.

Повторюсь, навскидку все должно работать. Тут либо шаблон не тот, либо лыжи не те)))

И что за сниппет setlocale? Он не может как-то влиять?