Здравствуйте,
создали теги на сайте и заметили что на странице с меткой не работает "скрывать отсутствующие товары".
То есть не скрываются товары которых нет в наличии на страницах с метками (тегами).
Версия 6,0
Подскажите плиз, где копать ?
Открыть сайт в режиме инкогнито или с другого компьютера и убедиться, что товаров нет.
Вы смотрите сайт как админ, а админ видит все товары, включая отсутствующие
Всем привет,
у нас в тегах идет вывод товаров которых нет в наличии...
Галочка в товаре не стоит, определяется по остаткам . Все разделы работают нормально, а вот в тегах проблема. Отображаются товары которых нет в наличии ...
Где копать?
Здравствуйте,
поднимаем еще раз данный вопрос.
Тех поддержка решила данную проблему, но появилась еще одна проблема!
Теперь если поставить метку на новость или статью, то они не работают...
код тех поддержки
class Tags_model extends Model
{
replace public function list_module()
{
$row = DB::query_fetch_array("SELECT id, [name], [text], [title_meta], [keywords], [descr], timeedit FROM {tags_name} WHERE id=%d AND trash='0' LIMIT 1", $this->diafan->_route->show);
if (! $row)
{
Custom::inc('includes/404.php');
}
////pagination//
$this->diafan->_paginator->nastr = $this->diafan->configmodules("nastr");
$this->diafan->_paginator->nen = DB::query_result("SELECT COUNT(DISTINCT t.id) FROM {tags} AS t"
.($this->diafan->configmodules('where_access', 'all') ? " LEFT JOIN {access} AS a ON a.element_id=t.element_id AND a.module_name=t.module_name AND a.element_type=t.element_type" : "")
//custom
.($this->diafan->configmodules('use_count_goods', 'shop') ? " LEFT JOIN {shop_price} AS prc ON prc.good_id=t.element_id AND prc.count_goods>0" : "")
//custom
." WHERE t.tags_name_id=%d AND t.[act]='1' AND t.trash='0'"
//custom
.($this->diafan->configmodules('use_count_goods', 'shop') ? " AND prc.id IS NOT NULL" : "")
//custom
.($this->diafan->configmodules('where_access', 'all') ? " AND (t.access='0' OR t.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
.($this->diafan->configmodules('where_period', 'all') ? " AND t.date_start<=".$time." AND (t.date_finish=0 OR t.date_finish>=".$time.")" : ''), $this->diafan->_route->show);
$this->result["paginator"] = $this->diafan->_paginator->get();
////pagination///
$k = 0;
$includes = array();
$rows_module = array();
$rows_tags = DB::query_range_fetch_all("SELECT t.* FROM {tags} AS t"
.($this->diafan->configmodules('where_access', 'all') ? " LEFT JOIN {access} AS a ON a.element_id=t.element_id AND a.module_name=t.module_name AND a.element_type=t.element_type" : "")
//custom
.($this->diafan->configmodules('use_count_goods', 'shop') ? " LEFT JOIN {shop_price} AS prc ON prc.good_id=t.element_id AND prc.count_goods>0" : "")
//custom
." WHERE t.tags_name_id=%d AND t.[act]='1' AND t.trash='0'"
//custom
.($this->diafan->configmodules('use_count_goods', 'shop') ? " AND prc.id IS NOT NULL" : "")
//custom
.($this->diafan->configmodules('where_access', 'all') ? " AND (t.access='0' OR t.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
.($this->diafan->configmodules('where_period', 'all') ? " AND t.date_start<=".$time." AND (t.date_finish=0 OR t.date_finish>=".$time.")" : '')
." GROUP BY t.id ORDER BY t.id ASC", $this->diafan->_route->show, $this->diafan->_paginator->polog, $this->diafan->_paginator->nastr);
foreach ($rows_tags as $row)
{
$rows_module[$row["module_name"]][] = $row["element_id"];
}
foreach($rows_module as $module_name => $ids)
{
if($module_name == 'site')
{
$rows = DB::query_fetch_all("SELECT [name], [text], id FROM {".$module_name."} WHERE id IN (%s) AND trash='0' AND [act]='1' LIMIT ".count($ids), implode(',', $ids));
foreach($rows as $row)
{
$this->diafan->_route->prepare(0, $row["id"], 'site');
}
foreach($rows as $row)
{
$row["link"] = $this->diafan->_route->link($row["id"]);
$row["name"] = $this->diafan->short_text($row["name"], 20);
$row["snippet"] = $this->diafan->short_text($row["text"], 100);
$this->result["rows"][$module_name]["rows"][] = $row;
}
}
if (! isset($includes[$module_name]))
{
if (Custom::exists('modules/'.$module_name.'/views/'.$module_name.'.view.list_tags.php'))
{
$includes[$module_name]["view_class"] = $module_name;
$includes[$module_name]["view_func"] = 'list_tags';
}
else
{
$includes[$module_name]["view_class"] = $module_name;
$includes[$module_name]["view_func"] = 'list';
}
if (Custom::exists('modules/'.$module_name.'/'.$module_name.'.model.php'))
{
$name = ucfirst($module_name);
Custom::inc('modules/'.$module_name.'/'.$module_name.'.model.php');
$class = $name.'_model';
$func = 'tags';
if (method_exists($class, $func))
{
$includes[$module_name]["model_class"] = new $class($this->diafan);
$includes[$module_name]["model_func"] = $func;
}
else
{
$func = 'elements';
if (method_exists($class, $func))
{
$includes[$module_name]["model_class"] = new $class($this->diafan);
$includes[$module_name]["model_func"] = $func;
}
}
if (method_exists($class, 'format_data_element'))
{
$includes[$module_name]["model_format"] = 'format_data_element';
}
}
if (empty($includes[$module_name]["view_func"]) || empty($includes[$module_name]["model_func"]))
{
$includes[$module_name] = false;
}
}
if ($includes[$module_name])
{
$model = &$includes[$module_name]["model_class"];
$func = $includes[$module_name]["model_func"];
$format = $includes[$module_name]["model_format"];
if ($func == 'elements')
{
$rows = DB::query_fetch_all("SELECT *, [name], [anons] FROM {".$module_name."} WHERE id IN (%s) AND trash='0' AND [act]='1' LIMIT ".count($ids), implode(',', $ids));
там где //custom
это доработка тех поддержки...
если убрать то все ок, только возвращаемся к началу данного вопроса.
Как убрать с тегов показ товара которого нет в наличии (показ в админки отключены товара которого нет)
В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке.