Как добавить "Показать все" в список лимитов

Тема в разделе "Общие вопросы", создана пользователем garfild304, 4 янв 2017.

  1. garfild304

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

    Сообщения:
    128
    Симпатии:
    1
    Здраствутке данная строка отвечает за лимит вывода товаров.

    Как добавить в список "Показать все"...

    $limits = array_unique(array($this->config->get('config_product_limit'), 25, 50, 75, 1000,));
     
  2. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    $limits = array_unique(array($this->config->get('config_product_limit'), 25, 50, 75, 1000,'all'));

    Но это не так просто сделать
    Потому что нужно переделать и сам select в шаблоне
     
  3. garfild304

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

    Сообщения:
    128
    Симпатии:
    1
    могли бы помочь...в контроллере я так понимаю то же?
     
  4. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Это комплекс решений

    1. Нужен массив значений, массив текстов
    приблизительно так
    Controller
    Код:
               $limits = array_unique(array($this->config->get('config_product_limit'), 25, 50, 75, 100));
    
               sort($limits);
    
               foreach($limits as $value) {
                   $data['limits'][] = array(
                       'text'  => $value,
                       'value' => ($value == 'all')?'Показать все'?$value,
                       'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value)
                   );
               }
    
    И, конечно в модели
    Код:
    if (isset($data['limit']) && $data['limit'] != 'all') {
            if (isset($data['start']) || isset($data['limit'])) {
                if ($data['start'] < 0) {
                    $data['start'] = 0;
                }
    
                if ($data['limit'] < 1) {
                    $data['limit'] = 20;
                }
    
                $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
            }
    }
    
     
    Vlad нравится это.
  5. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    А что вывелось?
    А модификаторы обновили?
     
  6. garfild304

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

    Сообщения:
    128
    Симпатии:
    1
    Он белаю страницу показал....да модификатор обновил

    Вот контроллер мой прикрепил файл.
     

    Вложения:

  7. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Ну так ищите ошибку в коде

    Писал с листа

    'value' => ($value == 'all')?'Показать все'?$value,

    'value' => ($value == 'all')?'Показать все':$value,
     
  8. garfild304

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

    Сообщения:
    128
    Симпатии:
    1
    А после чего это дело вставить?


    if (isset($data['limit']) && $data['limit'] != 'all') {
    if (isset($data['start']) || isset($data['limit'])) {
    if ($data['start'] < 0) {
    $data['start'] = 0;
    }

    if ($data['limit'] < 1) {
    $data['limit'] = 20;
    }

    $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
    }
    }
     
  9. garfild304

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

    Сообщения:
    128
    Симпатии:
    1

    Не вывел...
     
  10. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Этот мод добавляет строку в списке limit - показать все
    Применяется в категориях, производителях, акциях

    Несколько нюансов
    по умолчанию список выглядит следующим образом

    $limits = array_unique(array($this->config->get('config_product_limit'), 25, 50, 75, 100));

    Если у вас эта строка изменена, то в код нужно внести изменения со своими значениями
     

    Вложения:

    Romans и Vlad нравится это.