Создание ресурсов из фронтенда сайта, зарегистрированными пользователями.

Добрый день!

Делаю сайт доски объявлений недвижимости.
Реализовал каталог недвижимости с помошью miniShop2. Ну то-есть каждая недвижимость это товар со своими параметрами ТВ для фильтрации.
Теперь возник вопрос, как дать возможность зарегистрированным пользователям сайта, добавлять и редактировать недвижимость из фронта?
Установил плагин ms2form но там неразобрался с шаблонизатором, и как вообще можно реализовать подгрузку разных параметров недвижимости, в зависимости от того, жилая это недвижимость или коммерческая?

Тут дизайн формы добавления недвижимости
dropmefiles.com/fiDW4

Например если тут поменять Тип недвижимости с «квартиры» на «земельный участок», то нижние параметры должны будут поменяться.

Подскажите как такое можно реализовать, может надо делать связку создания ресурсов через FormIt? Но в таком случае я не знаю как загрузить галлерею фотографий.
Буду благодарен любой помощи.

Если же готовы реализовать данный функционал за вознаграждение, я не против, напишите мне в Телеграм: @Ruslan_Dev
Ruslan
21 ноября 2024, 10:24
modx.pro
559
0

Комментарии: 4

Артур Шевченко
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>
    Ruslan
    21 ноября 2024, 13:56
    0
    Мне кажется. это не совсем правильно, и придется писать много проверок на JS.
    В идеале, я думаю надо как то подгружать через Ajax, разные формы, в зависимости от выбранных параметров.
      Артур Шевченко
      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;
      Ну а в чанках соответственно поля.
    Ruslan
    22 ноября 2024, 09:31
    0
    А кто подскажет, как в форму Создания/Редактирования ресурса, через ms2Form, добавить возможность выбирать несоклько параметров в одном TV?
    Ну то-есть например у меня есть у карточки недвижимости TV c select и checkbox значениями.
    Как мне в самой форме создания/редактирования ресурса, вывести список значений TV параметра так же выпадающим списком, или чекоксом?
    Перекопал форум, и ненашел никакой документации с примером такой реализации.
    Подскажите где посмотреть?
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4