Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Прикрутить автоподстановку


toni13

Recommended Posts

Всем привет. Решил сделать собственный модуль. По аналогии с разными модулями "товары во вкладках" задумал категории во вкладках. Нашел подходящую "болванку" для админки вывел все в пользовательскую часть все работает. Но хотелось бы немного усовершенствовать админку. На скрине впринципе видно механизм действия - кнопкой добавляются блоки, в блоках три текстовых поля - category1, category2 и sort_order. Поля для категорий заполняю через запятую. Хотелось бы для поля category1 сделать выпадающий select со всеми категориями(так как по логике там должно присутствовать только одно значение) а для поля category2 сделать автоподстановку категорий (как в модуле рекомендуемых товаров) Приблизительно понимаю что для начала в контроллере модуля нужно вытащить category_id и name категорий, а затем правильно добавить их в шаблон, но там идет динамическое добавление блоков... а я не сильно силен в синтаксисе - может кто поможет. 
Делаю на ocstore 2.3.0.2.1
Вот как выглядит админка 

5a0c692946393_mymodule.jpg.0bc664067131bf949c902a1083d59baf.jpg

 

вот часть кода из контроллера которая у меня отвечает за вывод данных модуля

        $data['mymodule'] = array();
        $sort_order = array();
        foreach ($results as $sort_od){
        $sort_order[] = $sort_od['sort_order'];
        }
        array_multisort($sort_order, $results);
                
        foreach ($results as $result) {
            $data['mymodule'][] = array(
                'category1'       => $result['category1'],
                'category2'       => $result['category2'],
                'sort_order'      => $result['sort_order'],
            );
        }

а это часть шаблона модуля, отвечающая за мой модуль

<fieldset>
                  <legend>Модуль</legend>
                  <table id="mymodule" class="table table-striped table-bordered table-hover">
                     <thead>
                        <tr>
                           <td class="text-left" width="40%">Категория 1</td>
                           <td class="text-left" width="40%">Категории</td>
                           <td class="text-left" width="20%">Сортировка</td>
                           <td></td>
                        </tr>
                     </thead>
                     <tbody>
                        <?php $module_row = 0; ?>
                        <?php foreach ($mymodule as $value) { ?>
                        <tr id="module-row<?php echo $module_row; ?>">
                           <td class="text-left">
                              <input type="text" name="mymodule[<?php echo $module_row; ?>][category1]" value="<?php echo isset($value['category1']) ? $value['category1'] : ''; ?>" placeholder="" class="form-control" />
                           </td>
                           <td class="text-left">
                              <input type="text" name="mymodule[<?php echo $module_row; ?>][category2]" value="<?php echo isset($value['category1']) ? $value['category2'] : ''; ?>" placeholder="" class="form-control" />
                           </td>   
                           <td class="text-left">
                              <input type="text" name="mymodule[<?php echo $module_row; ?>][sort_order]" value="<?php echo isset($value['sort_order']) ? $value['sort_order'] : ''; ?>" placeholder="" class="form-control" />
                           </td>                               
                           <td class="text-left"><button type="button" onclick="$('#module-row<?php echo $module_row; ?>, .tooltip').remove();"  class="btn btn-danger"><i class="fa fa-minus-circle"></i></button></td>
                        </tr>
                        <?php $module_row++; ?>
                        <?php } ?>
                     </tbody>
                     <tfoot>
                        <tr>
                           <td colspan="3"></td>
                           <td class="text-left"><button type="button" onclick="addModule();" data-toggle="tooltip" title="" class="btn btn-primary"><i class="fa fa-plus-circle"></i></button></td>
                        </tr>
                     </tfoot>
                  </table>
               </fieldset>               
            </form>
         </div>
      </div>
   </div>   
   <script type="text/javascript">
      var module_row = <?php echo $module_row; ?>;
      
      function addModule() {
          html  = '<tr id="module-row' + module_row + '">';
          html += '    <td class="text-left">';
          html += '    <input type="text" name="mymodule[' + module_row + '][category1]" value="0" placeholder="" class="form-control" />';   
          html += '    </td>';           
          html += '    <td class="text-left">';
          html += '    <input type="text" name="mymodule[' + module_row + '][category2]" value="0" placeholder="" class="form-control" />';   
          html += '    </td>';       
          html += '    <td class="text-left">';
          html += '    <input type="text" name="mymodule[' + module_row + '][sort_order]" value="0" placeholder="" class="form-control" />';   
          html += '    </td>';   
          html += '      <td class="text-left"><button type="button" onclick="$(\'#module-row' + module_row  + '\').remove();" data-toggle="tooltip" title="<?php echo $button_remove; ?>" class="btn btn-danger"><i class="fa fa-minus-circle"></i></button></td>';
          html += '</tr>';
          
          
          $('#mymodule>tbody').append(html);
          module_row++;
      }
   </script>  

Был бы очень признателен за помощь. С меня на пиво!

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.