Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.
Товары с 0 количеством
-
17 сентября 2014 г.
-
Доброго дня!
Может кто делал - как сделать так, чтобы товары, которых нет в наличии не были видны в магазине вообще. Нужно отображать только доступное. Все перерыл- ничего не нашел
Спасибо -
-
-
-
- Dmitry (weissfl)
- 161
-
17 сентября 2014 г.
-
Не самый оптимизированный вариант, но рабочий )
В файле shop.view.list.php в цикле "вывод списка товаров" сделать проверку
Кодif ( $row['count'])
а можно еще сделать так
Кодif ( $row['count'] && !$row['no_buy'] )
тогда не будут отображаться товары у которых количество 0 и у которых стоит галочка "нет в наличии" -
-
-
-
17 сентября 2014 г.
-
Вставил код- не помогло.
И у меня после выгрузки товаров из учетной программы у нулевых товаров стоит не "0" в кол-ве, а пусто просто - это равноценно?
Тогда может я вставляю код не туда куда-то?
Спасибо -
-
-
-
17 сентября 2014 г.
-
Так 0 и пусто - это одно и то же
Нашел цикл "вывод списка товаров"
Попробовал вставить- ничего. Пропадают все товары -
-
-
-
- Dmitry (weissfl)
- 161
-
17 сентября 2014 г.
-
Да кстати файл shop.view.list.php - это для версии 5.3
Для версии 5.4 - это условие надо добавлять в файл shop.view.rows.php
Какая у вас версия? -
-
-
-
- Dmitry (weissfl)
- 161
-
17 сентября 2014 г.
-
Если для 5.4 то вам надо в файле shop.view.rows.php - сделать проверку внутри цикла:
Кодforeach ($rows as $value)
{
echo '<div class="shop-col">';
foreach ($value as $row)
{
if ( $row['count'] && !$row['no_buy'] )
{
..............
}
Я сейчас попробовал специально, все работает. -
-
-
-
17 сентября 2014 г. , редакция: 17 сентября 2014 г.
-
5.4 стоит
Туплю видимо сильно сегодня - не понимаю куда именно вставить данный код -
-
-
-
17 сентября 2014 г. , редакция: 17 сентября 2014 г.
-
У меня вот есть код:Код
//вывод списка товаров
if (!empty($result["rows"]))
{
//вывод сортировки товаров
if(! empty($result["link_sort"]))
{
echo $this->get('sort_block', 'shop', $result);
}
echo '<div class="shop-pane">';
$rows = array(array(), array(), array(), array());
$t = 0;
foreach ($result["rows"] as $row => $value)
{
if($t > 3) $t = 0;
$rows[$t][] = $value;
$t++;
}
foreach ($rows as $value)
{
echo '<div class="shop-col">';
foreach ($value as $row)
{
echo '<div class="js_shop shop-item shop">';
и тд
Я так понимаю куда-то сюда:Кодforeach ($rows as $value)
{
echo '<div class="shop-col">';
foreach ($value as $row)
{
echo '<div class="js_shop shop-item shop">';
Куда здесь вставлять не соображу :( -
-
-
-
- Dmitry (weissfl)
- 161
-
17 сентября 2014 г.
-
Файл shop.view.rows.php
Код<?php
/**
* Шаблон списка товаров
*
* @package Diafan.CMS
* @author diafan.ru
* @version 5.4
* @license http://cms.diafan.ru/license.html
* @copyright Copyright (c) 2003-2014 OOO «Диафан» (http://diafan.ru)
*/if (!defined('DIAFAN'))
{
include dirname(dirname(dirname(__FILE__))).'/includes/404.php';
}
//вывод списка товаров
if (!empty($result["rows"]))
{
//вывод сортировки товаров
if(! empty($result["link_sort"]))
{
echo $this->get('sort_block', 'shop', $result);
}
echo '<div class="shop-pane">';
$rows = array(array(), array(), array(), array());
$t = 0;
foreach ($result["rows"] as $row => $value)
{
if($t > 3) $t = 0;
$rows[$t][] = $value;
$t++;
}
foreach ($rows as $value)
{
echo '<div class="shop-col">';
foreach ($value as $row)
{
if ( $row['count'] && !$row['no_buy'] ){
echo '<div class="js_shop shop-item shop">';
//вывод изображений товара
if (!empty($row["img"]))
{
echo '<div class="shop_img shop-photo">';
foreach ($row["img"] as $img)
{
switch ($img["type"])
{
case 'animation':
echo '<a href="'.BASE_PATH.$img["link"].'" rel="prettyPhoto[gallery'.$row["id"].'shop]">';
break;
case 'large_image':
echo '<a href="'.BASE_PATH.$img["link"].'" rel="large_image" width="'.$img["link_width"].'" height="'.$img["link_height"].'">';
break;
default:
echo '<a href="'.BASE_PATH_HREF.$img["link"].'">';
break;
}
echo '<img src="'.$img["src"].'" width="'.$img["width"].'" height="'.$img["height"].'" alt="'.$img["alt"].'" title="'.$img["title"].'" image_id="'.$img["id"].'" class="js_shop_img">';
echo '<span class="shop-photo-labels">';
if (!empty($row['hit']))
{
echo '<img src="' . BASE_PATH . Custom::path('img/label_hot.png').'"/>';
}
if (!empty($row['action']))
{
echo '<img src="' . BASE_PATH . Custom::path('img/label_special.png').'"/>';
}
if (!empty($row['new']))
{
echo '<img src="' . BASE_PATH . Custom::path('img/label_new.png').'"/>';
}
echo '</span>';
echo '</a> ';
}
echo '<span class="js_shop_wishlist shop_wishlist shop-like'.(! empty($row["wish"]) ? ' active' : '').'"> </span>';
echo '</div>';
}
//вывод названия и ссылки на товара
echo '<a href="'.BASE_PATH_HREF.$row["link"].'" class="shop-item-title">'.$row["name"].'</a>';
//рейтинг товара
if (!empty($row["rating"]))
{
echo ' '.$row["rating"];
}
//вывод краткого описания товара
if (!empty($row["anons"]))
{
echo '<div class="shop_anons">'.$row['anons'].'</div>';
}
//вывод производителя
if (!empty($row["brand"]))
{
echo '<div class="shop_brand">';
echo $this->diafan->_('Производитель').': ';
echo '<a href="'.BASE_PATH_HREF.$row["brand"]["link"].'">'.$row["brand"]["name"].'</a>';
echo '</div>';
}
//вывод артикула
if (!empty($row["article"]))
{
echo '<div class="shop_article">';
echo $this->diafan->_('Артикул').': ';
echo '<span class="shop_article_value">'.$row["article"].'</span>';
echo '</div>';
}
//вывод параметров товара
if (!empty($row["param"]))
{
echo $this->get('param', 'shop', array("rows" => $row["param"], "id" => $row["id"]));
}
//вывод скидки на товар
if (!empty($row["discount"]))
{
echo '<div class="shop_discount">'.$this->diafan->_('Скидка').': <span class="shop_discount_value">'.$row["discount"].' '.$row["discount_currency"].($row["discount_finish"] ? ' ('.$this->diafan->_('до').' '.$row["discount_finish"].')' : '').'</span></div>';
}
//теги товара
if (!empty($row["tags"]))
{
echo $row["tags"];
}
//вывод кнопки "Купить"
echo $this->get('buy_form', 'shop', array("row" => $row, "result" => $result));
if(empty($result["hide_compare"]))
{
echo $this->get('compare_form', 'shop', $row);
}
echo '</div>';
}
}
echo '</div>';
}
echo '</div>';
} -
-
-
-
-
-
-
17 сентября 2014 г.
-
Кеширование выключайте, не забывайте. А режим разработчика включайте на время правки кода, для порядку.
Иначе ничего не увидите из-за одних правок РНР, там запросы к БД в кеше. -
-
-
-
17 сентября 2014 г.
-
Хм, спасибо, попробовал. Отключил кэширование, включил режим разработки, пока так же все.
-
-
-
-
17 сентября 2014 г. , редакция: 17 сентября 2014 г.
-
Виталий, не подскажете в чём может быть дело? В админке, в Режиме разработки, отмечаю "Включить режим разработки" и "Отключить кэширование" и потом невозможно всё это отменить (снять галочки). Все кнопки "Сохранить" перестают функционировать (не сохраняют). В чём может быть причина, где смотреть?
Если это случается, то делаю восстановление сайта из бакапа, иначе всё будет висеть. -
-
-
-
17 сентября 2014 г.
-
Включение режима разработки выводит все ошибки в консоль под страницами сайта. Посмотрите, на что ругается, конфликты JS какие-нибудь.
Выключить режим разработки можно просто вписавКодdefine("MOD_DEVELOPER", false);
в config.php, а не восстанавливая весь сайт -
-
-
-
17 сентября 2014 г.
-
В общем никакие варианты не помогли. Лучшее чего смог добиться - не видно нулевые позиции, но при этом на их месте пропуски и каталог выглядит как шахматная доска :(
Странно, неужели у меня одного такая проблема? Вообще не понимаю зачем показывать товары, которых нет в наличии. -
-
-
-
- Dmitry (weissfl)
- 161
-
17 сентября 2014 г.
-
В версии 5.3 нет цикла который разбивает на колонки и все ок работает. Тут надо либо убрать разбиение на колонки, либо конкретно смотреть, тут все на уровне php начального уровня. В какую сторону двигаться вам подсказали. Я думаю если хоть чуть чуть знаете php, то немного посидев и разобравшись без проблем сделаете.
-
-
-
-
17 сентября 2014 г.
-
Спасибо, но конечно может и простая функция, но что-то не решается. И направление, может и не совсем верное.
Вообще обычно везде есть сразу опция отображать или нет 0 остатки. Тут же весь мозг сломал.
Оно или выводится все так, что в один столбец все товары или с пропусками.
Чуть знать php тут не помогает.
Вообще не понимаю что делать. -
-
-
-
17 сентября 2014 г.
-
черкните адрес, помогу.
реальнопросто интересно чего ж вы за столько сообщений не смогли сделать)) ужеможно было половину движка переписать)) -
-
-
-
-
17 сентября 2014 г.
-
И кроме всего прочего, когда добиваюсь "невидимости" нулевых товаров в каталоге с пропусками, на главной, в модуле вывода рандомных товаров, продолжают появляться нулевые товары
-
-
-
-
- Dmitry (weissfl)
- 161
-
17 сентября 2014 г.
-
Конечно, потому что у модуля вывода товаров другой шаблон.
-
-
-
-
-
18 сентября 2014 г.
-
В общем служба поддержки направила в правильном направлении:ЦитатаИнформаци о количестве товаров содержиться в таблице {shop_price}. По ней нужно сделать соединение и добавить в условие для этой таблицы count_goods>0.
На примере запроса товаров в категории. Функция list_category_elements_query(). Соединение по этой таблице есть, но при выполнении условия
$this->diafan->_route->sort == 1 || $this->diafan->_route->sort == 2
Значит надо убрать это условие, чтобы таблица подключалась всегда и добавить после WHERE
AND pr.count_good>0
Аналогично нужно сделать для всех других запросов, в том числе там, где идет подсчет всех товаров в категории (функция list_category_elements_query_count()).
Теперь вопрос- как лучше это все реализовать? Где что править?
Спасибо -
-
-
-
18 сентября 2014 г.
-
ЦитатаВообще не понимаю зачем показывать товары, которых нет в наличии.
Кроме добрых покупателей, которые приносят вам деньги на сайт заходят злые поисковики, которые в случае отсутствия у вас на сайте товаров нещадно выбрасывают ваши страницы с этими товарами из индекса.
А когда у вас товар появляется, то добрые покупатели не могут на них попасть из поисковика потому, что в поисковике их нет и опять появиться они там очень не скоро. Обычно они появляются в индексе, как раз тогда, когда их уже опять нет в наличии
Поэтому обычно отсутствующие товары не удаляют с сайта! Их можно затемнить или как нибудь еще обособить и задвинуть в конец, чтобы не смущали добрых посетителей.
И делается это в разы проще. -
-
-
-
- Dmitry (weissfl)
- 161
-
18 сентября 2014 г.
-
Но можно же не выводить товары в списке товаров, а карточки товаров оставлять доступными по своему адресу - тогда если товар проиндексирован ПС, то в следующий раз робот без проблем попадет на карточку, но покупатель ее видеть не будет.
-
-
-
-
18 сентября 2014 г.
-
Стандартно CMS работают так, что если товар не показывается, то не показывается везде:
и в списках нет и карточек нет.
А при желании и соловья можно научить квакать. -
-
-
-
- Dmitry (weissfl)
- 161
-
18 сентября 2014 г.
-
ЦитатаСтандартно CMS работают так
Что значит стандартно? Что за стандарты такие )) гост?
Как в логику заложите, так и будет. -
-
-
-
18 сентября 2014 г.
-
Поисковики - поисковиками - но вот клиентов точно раздражает смотреть на модели часов, которых нет в наличии и листать тонны страниц в каталоге.
А товар-то меняется по коллекциям из года в год. Думаю в 70-80% случаев у меня товары повторно уже не появляются в доступе. Новая коллекция - новые товары. Если все хранить, то через пару лет будет 100 страниц с товарами, которых нет.
Простейшай функция, а реализовать никто не может :( Очень странно что ее нет в diafane. Раньше был магазин на shopify - там это вс делалось за один клик. -
-
-
-
-
-
30 сентября 2014 г.
-
У меня примерно такой же вопрос, но с компромиссным вариантом решения- я бы не убирал с сайта товары, которых нет в наличии, а просто при выводе в списке товаров сортировал по этому признаку и выводил их в самом хвосте- такое реально? Второй вопрос- 80% товаров с картинками, а 20- пока нет. можно как-то выполнить сортировку по наличию картинки, чтобы точно так же в первую очередь выводить товары с картинками, потом без картинок, а потом которых нет в наличии.
-
-
-
-
- Андрей (R4W)
- 140
-
08 декабря 2014 г.
-
Кто-нибудь смог реализовать чтобы по умолчанию список товаров формировался так, чтобы "нулевые товары" отправлялись в самый зад списка?
У самого вот возникла надобность. Как бы в модельку лезть не пришлось... -
-
-
-
09 декабря 2014 г.
-
А "нулевые" - это в смысле отсутствующие?
Вроде и так должны уходить в конец https://user.diafan.ru/wishlist/show600/ -
-
-
Новости
-
18 июня
-
В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
-
24 апреля
-
В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
-
12 января
-
После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке.
Блоги
-
24.04.2024
-
Выпустили новую сборку DIAFAN.CMS 7.1.4.
Блоги
-
12.01.2024
-
В данном руководстве познакомим вас с панелью управления DIAFAN.CMS