Как в Ocstore поменять стиль выбора главной категории?

Тема в разделе "Общие вопросы", создана пользователем moytop, 18 мар 2022.

  1. moytop

    moytop Новичок

    Сообщения:
    13
    Симпатии:
    0
    В Ocstore главная категория выбирается в выпадающем списке, что жутко неудобно https://disk.yandex.com/i/9_-tQy-InNbtNA
    То есть в product_twig надо поменять select на input, но не совсем понятно как именно поменять внутри у них код для правильного выбора.

    Код:
    Обычная --------
    
                  <div class="form-group">
                    <label class="col-sm-2 control-label" for="input-category"><span data-toggle="tooltip" title="{{ help_category }}">{{ entry_category }}</span></label>
                    <div class="col-sm-10">
                      <input type="text" name="category" value="" placeholder="{{ entry_category }}" id="input-category" class="form-control" />
                      <div id="product-category" class="well well-sm" style="height: 150px; overflow: auto;"> {% for product_category in product_categories %}
                        <div id="product-category{{ product_category.category_id }}"><i class="fa fa-minus-circle"></i> {{ product_category.name }}
                          <input type="hidden" name="product_category[]" value="{{ product_category.category_id }}" />
                        </div>
                        {% endfor %}</div>
                    </div>
                  </div>
                  
                  
    Главная --------
                                <div class="form-group">
                <label class="col-sm-2 control-label" for="select-main_category_id"><span data-toggle="tooltip" title="{{ help_main_category }}">{{ entry_main_category }}</span></label>
                <div class="col-sm-10">
                <select name="main_category_id" class="form-control">
                    <option value="0" selected="selected">{{ text_none }}</option>
                    {% for category in categories %}
                      {% if category.category_id == main_category_id %}
                        <option value="{{ category.category_id }}" selected="selected">{{ category.name }}</option>
                        {% else %}
                        <option value="{{ category.category_id }}">{{ category.name }}</option>
                      {% endif %}
                    {% endfor %}
                </select>
                </div>
                </div>
     
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.931
    Симпатии:
    1.076
    Не надо так делать.. лучше сделайте поиск по select https://github.com/select2/select2
     
  3. moytop

    moytop Новичок

    Сообщения:
    13
    Симпатии:
    0
    спасибо, а может где инструкция на русском есть, как устанавливать и использовать?
     
  4. Ravilr

    Ravilr Специалист

    Сообщения:
    3.931
    Симпатии:
    1.076
  5. darius - Мошенник

    darius - Мошенник Новичок

    Сообщения:
    15
    Симпатии:
    1
    Переводчик вам зачем?
     
  6. Tom

    Tom Специалист

    Сообщения:
    743
    Симпатии:
    238
    Установка в админке (Расширения- Установка расширений).
    После этого обновить кэш модификаторов (Расширения - Модификаторы --> синяя иконка справа вверху.).
     

    Вложения:

    Ravilr, Romans и moytop нравится это.
  7. zeecel

    zeecel Пользователь

    Сообщения:
    31
    Симпатии:
    3
    Лучше отказаться от загрузки js-сок со сторонних ресурсов
     
  8. Tom

    Tom Специалист

    Сообщения:
    743
    Симпатии:
    238
    Можно скопировать в виде файлов. В ocmod все есть(пути, названия итд), лишь бы было желание.
     
  9. moytop

    moytop Новичок

    Сообщения:
    13
    Симпатии:
    0
    Да всё супер, отлично работает, то что нужно, искал неделю решение, спасиб!
     
  10. mazurik

    mazurik Пользователь

    Сообщения:
    66
    Симпатии:
    2
    Пожалуйста, поясните, что конкретно было сделано??? Установил Select2.ocmod.zip, который выложил Tom, результата никакого...
    Расскажите, пожалуйста, что конкретно вы сделали?
     
  11. Tom

    Tom Специалист

    Сообщения:
    743
    Симпатии:
    238
    А что вы ожидали увидеть после установки?
     
  12. mazurik

    mazurik Пользователь

    Сообщения:
    66
    Симпатии:
    2
    Я предполагал, что будет поиск по Select. Как вы и писали.
    Вижу, что добавился модификатор, вижу строки в коде со ссылками на библиотеки.

    Чего не хватает? Нужно в product_form.twig добавить какой-то стиль или что?
     
    Последнее редактирование: 5 ноя 2023
  13. Tom

    Tom Специалист

    Сообщения:
    743
    Симпатии:
    238
    Модификатор работает с элементами типа select. После установки , нужно обновить кеш модификаторов. После чего в селект появится поле поиска. Достаточно начать вводить название нужной категории и в выпада́ющем списке будут оставаться только категории содержащие данные которые вы ввели. Ну или сразу появится нужная категория, если название уникально.

    Так же можно внести правки в сам файл admin/view/template/catalog/product_form.twig , не устанавливая модификатор.
    Перед {{ footer }} добавить

    Код:
                    <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" />
                    <link href="https://cdnjs.cloudflare.com/ajax/libs/select2-bootstrap-css/1.4.6/select2-bootstrap.min.css" rel="stylesheet" />
                    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
                    <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/i18n/ru.js"></script>
                    <script type="text/javascript">
                    $(document).ready(function() {
                    $("select").select2();
                    language: "ru"
                    });
                    </script>
                    <style type="text/css">
                    .select2-dropdown { z-index: : 1 !Important;}
                    .select2-container {width:100% !Important;}
                    .select2-container .select2-selection--single {height: 35px !Important;}
                    .select2-container--default .select2-selection--single {border: 1px solid #ccc !Important;border-radius: 3px !Important;}
                    .select2-container--default .select2-selection--single .select2-selection__arrow b {margin-top: 1px!Important;}
                    }</style>
     

    Вложения:

    • 777.png
      777.png
      Размер файла:
      29,5 КБ
      Просмотров:
      10
    Последнее редактирование: 6 ноя 2023
  14. mazurik

    mazurik Пользователь

    Сообщения:
    66
    Симпатии:
    2
    Да, все так и делал. И модификатором пробовал, и просто код размещать. Поиска нет ((( Версия ocStore 3.0.3.7

    ЧТо может быть не так?
     

    Вложения:

  15. Tom

    Tom Специалист

    Сообщения:
    743
    Симпатии:
    238
    Смотрите что в исходном коде страницы и консоли браузера.
     
  16. mazurik

    mazurik Пользователь

    Сообщения:
    66
    Симпатии:
    2
    Я не понимаю, что должно быть? Данному селекту должен присвоиться новый класс select2? Или что?
     

    Вложения:

  17. Tom

    Tom Специалист

    Сообщения:
    743
    Симпатии:
    238
    Да. Select2 .
    Ctrl+U , откроется исходный код страницы, где должно быть то что в модификаторе (подключение скриптов и стилей).
     
  18. mazurik

    mazurik Пользователь

    Сообщения:
    66
    Симпатии:
    2
    Да это я понимаю ))) Я же выше скины кидал. Сам код со стилями и ссылками на библиотеки (внизу страницы) есть. Но ничего от этого не меняется :(
     
  19. mazurik

    mazurik Пользователь

    Сообщения:
    66
    Симпатии:
    2
    Покажите пожалуйста, как у вас выглядит этот код после применения модификатора

    <label class="col-sm-2 control-label" for="select-main_category_id"><span data-toggle="tooltip" title="{{ help_main_category }}">{{ entry_main_category }}</span></label>
    <div class="col-sm-10">
    <select name="main_category_id" class="form-control">
    <option value="0" selected="selected">{{ text_none }}</option>
    {% for category in categories %}
    {% if category.category_id == main_category_id %}
    <option value="{{ category.category_id }}" selected="selected">{{ category.name }}</option>
    {% else %}
    <option value="{{ category.category_id }}">{{ category.name }}</option>
    {% endif %}
    {% endfor %}
    </select>
     
  20. Tom

    Tom Специалист

    Сообщения:
    743
    Симпатии:
    238
    Код:
                  <div class="form-group">
                <label class="col-sm-2 control-label" for="select-main_category_id"><span data-toggle="tooltip" title="{{ help_main_category }}">{{ entry_main_category }}</span></label>
                <div class="col-sm-10">
                <select name="main_category_id" class="form-control">
                    <option value="0" selected="selected">{{ text_none }}</option>
                    {% for category in categories %}
                      {% if category.category_id == main_category_id %}
                        <option value="{{ category.category_id }}" selected="selected">{{ category.name }}</option>
                        {% else %}
                        <option value="{{ category.category_id }}">{{ category.name }}</option>
                      {% endif %}
                    {% endfor %}
                </select>
                </div>
                </div>