[OCMOD] Настройка лимита автозаполнения через админку

Тема в разделе "Готовые модули и модификаторы. Бесплатно", создана пользователем RoS, 12 фев 2016.

  1. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    220
    Соавторы: @XDX , @mars1an

    box-rus3.jpg
    limit.jpg

    Написал модификатор, чтоб закрыть вопросы про лимит в 5 элементов в автозаполнении.

    Установка:
    1. Установите Limit_Autocomplete_v3.x.ocmod.zip файл через "Модули - Установка расширений";
    2. Обновите модификатор;
    3. Перейти в "Настройки" вкладка "Опции" в поле "Лимит в поле Автозаполнения (Admin)" назначит количество элементов.
    Проблемы с установкой:
    Настроить правильно FTP в админке
    или
    Делаем как тут
    или
    Сначала устанавливаем это

    Работает в:
    • Категории;
    • Товары;
    • Фильтр;
    • Опции:
    • Атрибуты;
    • Производители;
    • Загрузки;
    • Модули;
    • Каналы продвижения - Google Base;
    • Партнерская программа;
    • Клиенты.
    Версия v3.1.1 - Работает на версиях:
    • Opencart 2.0.3.1
    • Opencart 2.1.0.1
    • Opencart 2.1.0.2
    • Opencart PRO 2.1.0.x
    • ocStore 2.1.0.x
    Версия v3.2.1 - Работает на версиях:
    • Opencart 2.2.0.0
    • Opencart 2.3.0.x
    Версия v3.3 - Работает на версиях:
    • Opencart 3.x
     

    Вложения:

    Последнее редактирование: 25 янв 2018
    SiteMix, Dalaz2005, Cycless и 20 другим нравится это.
  2. optimlab

    optimlab Продвинутый пользователь

    Сообщения:
    924
    Симпатии:
    240
    Отличная идея! Супер! Я в восторге!
    Чё я сам раньше не догадался)))

    PHP:
    <?xml version="1.0" encoding="utf-8"?>
    <modification>
      <name>LimitAutocomplete</name>
      <version>3.0</version>
      <author>RoS</author>
      <code>Limit Autocomplete</code>
      <link></link>

      <file path="admin/controller/setting/setting.php">
        <operation>
          <search><![CDATA[
            $data['entry_product_limit'] = $this->language->get('entry_product_limit');
          ]]></search>
          <add position="after"><![CDATA[
            $data['entry_autocomplete_limit'] = $this->language->get('entry_autocomplete_limit');
          ]]></add>
        </operation>  
        <operation>
          <search><![CDATA[
            $data['help_product_limit'] = $this->language->get('help_product_limit');
          ]]></search>
          <add position="after"><![CDATA[
            $data['help_autocomplete_limit'] = $this->language->get('help_autocomplete_limit');
          ]]></add>
        </operation>  
        <operation>  
          <search><![CDATA[
            if (isset($this->error['encryption'])) {
          ]]></search>
          <add position="before"><![CDATA[
            if (isset($this->error['autocomplete_limit'])) {
              $data['error_autocomplete_limit'] = $this->error['autocomplete_limit'];
            } else {
              $data['error_autocomplete_limit'] = '';
            }
          ]]></add>
        </operation>  
        <operation>  
          <search><![CDATA[
            if (isset($this->request->post['config_product_count'])) {
          ]]></search>
          <add position="before"><![CDATA[
            if (isset($this->request->post['config_autocomplete_limit'])) {
              $data['config_autocomplete_limit'] = $this->request->post['config_autocomplete_limit'];
            } else {
              $data['config_autocomplete_limit'] = $this->config->get('config_autocomplete_limit');
            }
          ]]></add>
        </operation>  
        <operation>  
          <search><![CDATA[
            if (!$this->request->post['config_limit_admin']) {
          ]]></search>
          <add position="before"><![CDATA[
            if (!$this->request->post['config_autocomplete_limit']) {
              $this->error['autocomplete_limit'] = $this->language->get('error_limit');
            }
          ]]></add>
        </operation>
      </file>
      <file path="admin/language/russian/setting/setting.php">
        <operation>
          <search><![CDATA[
            $_['entry_product_limit']
          ]]></search>
          <add position="before"><![CDATA[
            $_['entry_autocomplete_limit']              = 'Лимит в поле Автозаполнения (Admin)';
          ]]></add>
        </operation>  
        <operation>
          <search><![CDATA[
            $_['help_product_limit']
          ]]></search>
          <add position="before"><![CDATA[
            $_['help_autocomplete_limit']  = 'Определяет, сколько элементов отображать при автозаполении (в панели администрирования: товары, категории, Клиенты итд).';
          ]]></add>
        </operation>
      </file>
    <file path="admin/view/template/setting/setting.tpl">
        <operation>
          <search><![CDATA[
            <legend><?php echo $text_review?></legend>
          ]]></search>
          <add position="before" offset="2"><![CDATA[
            <div class="form-group required">
              <label class="col-sm-2 control-label" for="input-autocomplete-limit"><span data-toggle="tooltip" title="<?php echo $help_autocomplete_limit?>"><?php echo $entry_autocomplete_limit?></span></label>
              <div class="col-sm-10">
                <input type="text" name="config_autocomplete_limit" value="<?php echo $config_autocomplete_limit?>" placeholder="<?php echo $entry_autocomplete_limit?>" id="input-autocomplete-limit" class="form-control" />
                <?php if ($error_autocomplete_limit) { ?>
                  <div class="text-danger"><?php echo $error_autocomplete_limit?></div>
                <?php ?>
              </div>
            </div>
          ]]></add>
        </operation>
      </file>  
      <file path="admin/controller/*/*.php">
        <operation>
          <search><![CDATA[
            'limit'       => 5
          ]]></search>
          <add position="replace"><![CDATA[
            'limit'        => $this->config->get('config_autocomplete_limit')
          ]]></add>
        </operation>
        <operation>
          <search><![CDATA[
            'limit'        => 5
          ]]></search>
          <add position="replace"><![CDATA[
            'limit'        => $this->config->get('config_autocomplete_limit')
          ]]></add>
        </operation>
        <operation>
          <search><![CDATA[
            $limit = 5;
          ]]></search>
          <add position="replace"><![CDATA[
            $limit = $this->config->get('config_autocomplete_limit');
          ]]></add>
        </operation>
      </file>
    </modification>
     
    RoS нравится это.
  3. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    220
    Спасибо:), в скором времени обновлю до 3.0
     
  4. mars1an

    mars1an Специалист

    Сообщения:
    629
    Симпатии:
    516
    Для Opencart 2.2.0.0, при поиске и замене limit, нужно добавить error="skip".
     
  5. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    220
  6. kompik96

    kompik96 Новичок

    Сообщения:
    17
    Симпатии:
    0
    Почему то больше 15 не получается сделать. 2.1.0.1
     
  7. mars1an

    mars1an Специалист

    Сообщения:
    629
    Симпатии:
    516
    Внесу свои 5 копеек.
    Иногда хочется видеть вообще весь список, и если выставить для условного безлимита 10000, то получим прокрутку экрана (если элементов реально много). Добавив же стиль (во вложении) для списка, получим скролл именно в списке.
    screenshot-shop.prime.local 2016-08-03 09-19-29.png
    Подключаем в xml файле:
    Код:
      <file path="admin/view/template/common/header.tpl">
        <operation>
          <search><![CDATA[<link type="text/css" href="view/stylesheet/stylesheet.css" rel="stylesheet" media="screen" />
          ]]></search>
          <add position="after" ><![CDATA[<link type="text/css" href="view/stylesheet/autocomplete.css" rel="stylesheet" media="screen" />]]></add>
        </operation>
      </file>
     

    Вложения:

    SiteMix, KorsarSL, PSWD и 2 другим нравится это.
  8. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    220
    Проверил, на разных количествах, все корректно работает.
     
  9. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    220
    Добавил в модификатор предложение от @mars1an
    ----------
    @XDX , @mars1an , в файле добавил вас как авторов.
     
    optimlab и mars1an нравится это.
  10. Cart157

    Cart157 Новичок

    Сообщения:
    2
    Симпатии:
    0
    Это у меня что-то не так или все-таки что-то поломалось при смене версии: при попытки установки в "Модули - Установка расширений" в 2.2.0.0 пишет "неправильный формат файла"
     
  11. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    220
    Забыл тему тут подправить=(
    Архив не надо распаковывать. В "Модули - Установка расширений" выбираете "Limit_Autocomplete_v3.2.1.ocmod.zip" и устанавливаете. Но возможна ошибка если у вас не настроен FTP в админке
     
  12. Cart157

    Cart157 Новичок

    Сообщения:
    2
    Симпатии:
    0
    спасибо, победил :)
     
  13. DmitriyVo

    DmitriyVo Новичок

    Сообщения:
    1
    Симпатии:
    0
    Спасибо большое! Полезная вещь!
     
  14. Ecsiron

    Ecsiron Продвинутый пользователь

    Сообщения:
    415
    Симпатии:
    53
    Уже сделал лимит в ручную, но раз есть такое расширение, то нужно брать и ставить)
    Спасибо автору за OCMOD! После внесения изменений, он мои изменения исправил.
    Я устанавливал через ftp и install.xml переименовал в install.ocmod.xml, а содержимое upload залил в корень сайта)

    P.S. Daniel мне ответил, что установка лимита
    - 'предел' => 9999
    + 'предел' => 5
    приведет к краху серверов. Вернул обратно. Так что модификация будет жить вечно)
    И вроде бы мой пул до сих пор не забраковали:
    https://github.com/opencart/opencart/pull/4760/commits
    Если кому интересно конечно)
     
    Последнее редактирование: 21 авг 2016
  15. Djon

    Djon Новичок

    Сообщения:
    19
    Симпатии:
    12

    Вложения:

    Ecsiron и RoS нравится это.
  16. arhangel

    arhangel Новичок

    Сообщения:
    4
    Симпатии:
    0
    А для 1.5.6 нету модуля ?
     
  17. Ecsiron

    Ecsiron Продвинутый пользователь

    Сообщения:
    415
    Симпатии:
    53
    Наверняка есть где-то. Но мы помогаем друг другу с последними версиями.
    Если будете переходить, то используйте этот платный модуль: http://www.opencart.com/index.php?route=extension/extension/info&extension_id=24347
    На гитхабе плевались от перехода встроенными методами. Бог в помощь)
     
  18. gree

    gree Новичок

    Сообщения:
    2
    Симпатии:
    0
    help
    сделал все как вы пишите
    модуль установил, нажимаю обновить, и приехали:

    Fatal error: Cannot redeclare ModelCatalogProduct::getProductTabbyProductID() in /var/www/vhosts/u0152259.plsk.regruhosting.ru/httpdocs/bulat-group.ru/system/storage/modification/admin/model/catalog/product.php on line 486

    Opencart 2.1.0.1, поэтому ставил 3.1.1
     
  19. arhangel

    arhangel Новичок

    Сообщения:
    4
    Симпатии:
    0
    Мне не надо перехоить на 2 потому что у меня из опенкарта осталось уже только название - перепилена вдоль и поперек
    Но и хотелось бы что бы из админки управлять лимитом отображения
     
  20. Ecsiron

    Ecsiron Продвинутый пользователь

    Сообщения:
    415
    Симпатии:
    53
    Можете вплетать в ваш узор и лимит. Принцип тот же, что и тут.
    Найти у запросов в моделях, что их ограничивает и поменять эти значения.
    На счет ограничений, вот я поставил лимит в 1к, а товаров уже внес больше 2к, так подтормаживать начало.
    А у меня вообще редактирование все в экселе происходит.
    Мне интерфейс товара чисто для проверки выгрузки нужен.
    Сейчас я вернул все к заводским настройкам и жалею о потраченном времени))))
    Но вот то что подсказка мне находит по нескольким уникальным буквам в любом месте названия - важно!
    Вот я все время вспоминаю криворуких 1С вот почему они так сделать не могут.
    Почему все через открыть форму нужно делать? В которой нужно открыть еще одну форму, чтоб открыть другую форму, в которой открыть вкладку, изменить, сохранить, закрыть, выбрать и тогда изменения подхватятся) И 8 версия между прочим...
    тут уже не так все запущено)))) Не гонитесь вы за лимитами...