Ответить Новая тема Новый опрос 
 Лишние кнопки
Striatum
Новичок
Сообщений: 77
Регистрация: 25-03-2010


15-04-2010 23:00
Посмотрите скрин, пожалуйста. Товаров со скидками всего три. А судя по кнопкам - много. При нажатии на них выходит на страницу - "скидок не найдено". Как лишние кнопки убрать?

Скрин во вложении.


Изображения:
ml.JPG - Размер файла69.12KB, Скачиваний: 302 (Нажмите для увеличения)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Striatum
Новичок
Сообщений: 77
Регистрация: 25-03-2010


03-05-2010 02:57
Ап!

Проблему так и не могу решить.
При этом заметил, что количество кнопок растет с увеличением количества товаров, то есть кнопки отражают общее количество товара, а не количество товаров со скидкой.

Пожалуйста, подскажите - где и что править?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


03-05-2010 13:03
в 0.7, вродебы, эту ошибку решили, обновитесь.
Есть локальное решение, на форуме, пользуйтесь поиском.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Striatum
Новичок
Сообщений: 77
Регистрация: 25-03-2010


03-05-2010 14:29
Локального решения не нашел, нашел только тему http://prestadev.ru/forum/tema-359.html
Там ты тоже предлагаешь обновиться. Обновляться не хочу - во первых всё работает, кроме этого бага, как часы, во-вторых так и не понял, что нужно сделать для обновления - какие каталоги из новой сборки заливать?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


03-05-2010 16:41
classes/Product.php
Заменяем функцию getPricesDrop

Код:
static public function getPricesDrop($id_lang, $pageNumber = 0, $nbProducts = 10, $count = false, $orderBy = NULL, $orderWay = NULL, $beginning = false, $ending = false)
{
    global $link, $cookie;
    if (!Validate::isBool($count))
        die(Tools::displayError());

    if ($pageNumber < 0) $pageNumber = 0;
    if ($nbProducts < 1) $nbProducts = 10;
    if (empty($orderBy) || $orderBy == 'position') $orderBy = 'myprice';
    if (empty($orderWay)) $orderWay = 'DESC';
    if ($orderBy == 'id_product' OR $orderBy == 'price' OR $orderBy == 'date_add')
        $orderByPrefix = 'p';
    elseif ($orderBy == 'name')
        $orderByPrefix = 'pl';
    if (!Validate::isOrderBy($orderBy) OR !Validate::isOrderWay($orderWay))
        die (Tools::displayError());
    $currentDate = date('Y-m-d');
    if ($count)
    {
        $sql = '
        SELECT COUNT(DISTINCT p.`id_product`) AS nb
        FROM `'._DB_PREFIX_.'product` p
        WHERE p.`active` = 1
        AND (`reduction_price` > 0 OR `reduction_percent` > 0)
        '.((!$beginning AND !$ending) ?
        '    AND (`reduction_from` = `reduction_to` OR (`reduction_from` <= \''.pSQL($currentDate).'\' AND `reduction_to` >= \''.pSQL($currentDate).'\'))'
        :
            ($beginning ? 'AND `reduction_from` <= \''.pSQL($beginning).'\'' : '').($ending ? 'AND `reduction_to` >= \''.pSQL($ending).'\'' : '')).'
        AND p.`id_product` IN (
            SELECT cp.`id_product`
            FROM `'._DB_PREFIX_.'category_group` cg
            LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
            WHERE cg.`id_group` '.(!$cookie->id_customer ?  '= 1' : 'IN (SELECT id_group FROM '._DB_PREFIX_.'customer_group WHERE id_customer = '.intval($cookie->id_customer).')').'
        )';
        $result = Db::getInstance()->getRow($sql);
        return intval($result['nb']);
    }
    $sql = '
    SELECT p.*, pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, p.`ean13`, i.`id_image`, il.`legend`, t.`rate`, (p.`reduction_price` + (p.`reduction_percent` * p.`price`)) AS myprice, m.`name` AS manufacturer_name
    FROM `'._DB_PREFIX_.'product` p
    LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.intval($id_lang).')
    LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1)
    LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.intval($id_lang).')
    LEFT JOIN `'._DB_PREFIX_.'tax` t ON (t.`id_tax` = p.`id_tax`)
    LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (m.`id_manufacturer` = p.`id_manufacturer`)
    WHERE (`reduction_price` > 0 OR `reduction_percent` > 0)
    '.((!$beginning AND !$ending) ?
        'AND (`reduction_from` = `reduction_to` OR (`reduction_from` <= \''.pSQL($currentDate).'\' AND `reduction_to` >= \''.pSQL($currentDate).'\'))'
    :
        ($beginning ? 'AND `reduction_from` <= \''.pSQL($beginning).'\'' : '').($ending ? 'AND `reduction_to` >= \''.pSQL($ending).'\'' : '')).'
    AND p.`active` = 1
    AND p.`id_product` IN (
        SELECT cp.`id_product`
        FROM `'._DB_PREFIX_.'category_group` cg
        LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`)
        WHERE cg.`id_group` '.(!$cookie->id_customer ?  '= 1' : 'IN (SELECT id_group FROM '._DB_PREFIX_.'customer_group WHERE id_customer = '.intval($cookie->id_customer).')').'
    )
    ORDER BY '.(isset($orderByPrefix) ? pSQL($orderByPrefix).'.' : '').'`'.pSQL($orderBy).'`'.' '.pSQL($orderWay).'
    LIMIT '.intval($pageNumber * $nbProducts).', '.intval($nbProducts);
    $result = Db::getInstance()->ExecuteS($sql);
    if($orderBy == 'price')
    {
        Tools::orderbyPrice($result,$orderWay);
    }
    if (!$result)
        return false;
    return Product::getProductsProperties($id_lang, $result);
}
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Striatum
Новичок
Сообщений: 77
Регистрация: 25-03-2010


03-05-2010 19:13
Спасибо, помогло!
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос