Перейти к содержанию
gandre

[Решено] Помогите доработать модуль AnyList

Рекомендуемые сообщения

Здравствуйте Гуру программирования. Все известен, наверное, бесплатный модуль AnyList http://www.opencart.com/index.php?route=extension/extension/info&extension_id=9086, модуль мне подходит, но надо немного доработать.

Суть доработке заключается в следующем. Если выставить модуль в карточку товара и поставить сортировку по цене. Мне надо запрограммировать так что бы сортировка по цене была такая, что бы показывались те товары с ценой в пределе +10% и -10% от цены товара на которой показывается данный модуль.

Вроде нашел код где сортировка выставляется catalog\model\anylist.php

 if (isset($filter['sort']) and $filter['sort']!='') {
            $cols = $this->db->query("SELECT COLUMN_NAME FROM `information_schema`.`COLUMNS` WHERE TABLE_NAME='".DB_PREFIX."product' and TABLE_SCHEMA='".DB_DATABASE."' and COLUMN_NAME='".$filter['sort']."'");
            if ($cols) {
                $sql .= " ORDER BY ".$filter['sort'];
                if (isset($filter['order']) and trim(strtolower($filter['order']))=='desc')
                    $sql .= ' DESC';
            } else {
                die("AnyList: SORT FIELD ".$filter['sort']." not found in product table. Only fields in product table are allowed.");
            }
        }

 

Но как ту поставить мое условие незнаю.

Заранее благодарен за дельные советы.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А если таких товаров нет, то что выводить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проценты задаются на 4-ой строчек, переменная $procent; 0.15 это 15%. Работает с учетом акций. Пробуйте.

 

Заменить файл catalog/controller/module/anylist.php

anylist.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, но что то не работает. Выдает ошибку в строке 175

    if (count($res)>$limit) {
                $randomRes =  ($limit>1) ? array_rand($res,$limit) : array(rand(0,count($res)-1));

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Перед условием   if (count($res)>$limit) {

$randomRes =  ($limit>1) ? array_rand($res,$limit) : array(rand(0,count($res)-1));

добавьте 

$randomRes = array();

anylist.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не работает все равно на эту же строчку выдается ошибка. И еще вы удалили один блок

// If ANY of product's category exists in filter  
                //foreach($rc as $c) {
                //    $ok = ($ok OR array_search($c['category_id'],$limitprc)!==false);
                //}

И оставили закоментированый блок

// If EXACT of product's categories exists in filter  
                // foreach($rc as $c) {
                //     $ok = ($ok AND array_search($c['category_id'],$limitprc)!==false);
                // }

Я раскоментировал нижний блок, и поэтому у меня модуль показывается или в товарах определенных производителях или в товарах определенной категории.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я ничего не комментировал, это комментарии разработчика :) У вас какая версия OpenCart?

И пришлите текст ошибки:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я поставил на тестовом сайте вот страница http://test.prostomag.odessa.ua/melkaja-bytovaja-tehnika/aerogrili/ajerogril-supra-ags-1211.html

Notice: Undefined variable: limit in

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я поставил на тестовом сайте вот страница http://test.prostomag.odessa.ua/melkaja-bytovaja-tehnika/aerogrili/ajerogril-supra-ags-1211.html

Notice: Undefined variable: limit in

Подскажите, как вы сделали чтобы товары показывались в карточке продукта только в определенной категории а не во всех категориях?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, как вы сделали чтобы товары показывались в карточке продукта только в определенной категории а не во всех категориях?

да, очень интересно!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.