Вход • Регистрация

Теги - "нет в наличии"

  • 05 июня 2020 г.
  • Здравствуйте,
    создали теги на сайте и заметили что на странице с меткой не работает "скрывать отсутствующие товары".
    То есть не скрываются товары которых нет в наличии на страницах с метками (тегами).
    Версия 6,0
    Подскажите плиз, где копать ?
    • 06 июня 2020 г.
    • Открыть сайт в режиме инкогнито или с другого компьютера и убедиться, что товаров нет.
      Вы смотрите сайт как админ, а админ видит все товары, включая отсутствующие
      • 06 июня 2020 г.
      • посмотрел с другого браузера как гость, все тоже самое...
        В тегах не скрыто "нет в наличии"
        • 06 июня 2020 г.
        • Прикладывайте сайт и url со страницей с тегами в багтрек
  • 12 июня 2020 г.
  • Всем привет,
    у нас в тегах идет вывод товаров которых нет в наличии...
    Галочка в товаре не стоит, определяется по остаткам . Все разделы работают нормально, а вот в тегах проблема. Отображаются товары которых нет в наличии ...
    Где копать?
  • 29 марта 2021 г.
  • Здравствуйте,
    поднимаем еще раз данный вопрос.
    Тех поддержка решила данную проблему, но появилась еще одна проблема!
    Теперь если поставить метку на новость или статью, то они не работают...
    код тех поддержки
    Код
    <?php
    /**
    * Модель
    *
    * @package DIAFAN.CMS
    * @author diafan.ru
    * @version 6.0
    * @license http://www.diafan.ru/license.html
    * @copyright Copyright (c) 2003-2018 OOO «Диафан» (http://www.diafan.ru/)
    */

    if (! defined('DIAFAN'))
    {
    $path = __FILE__;
    while(! file_exists($path.'/includes/404.php'))
    {
    $parent = dirname($path);
    if($parent == $path) exit;
    $path = $parent;
    }
    include $path.'/includes/404.php';
    }



    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');
    }

    if ($this->diafan->configmodules("images_element"))
    {
    $this->result["img"] = $this->diafan->_images->get(
    'medium', $row["id"], 'tags', 'element',
    0, $row["name"], 0, 0, 'large'
    );
    }
    $this->meta($row);
    $this->result["text"] = $this->diafan->_tpl->htmleditor($row["text"]);

    $time = mktime(23, 59, 0, date("m"), date("d"), date("Y"));

    ////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));

    call_user_func_array (array(&$model, $func), array(&$rows));
    $result["rows"] = $rows;
    }
    else
    {
    $result = call_user_func_array (array(&$model, $func), array($ids));
    }
    if($format)
    {
    foreach($result["rows"] as &$row)
    {
    call_user_func_array (array(&$model, $format), array(&$row));
    }
    }
    $result["view_rows"] = ! empty($result["view_rows"]) ? $result["view_rows"] : 'rows';
    $result["class"] = $includes[$module_name]["view_class"];
    $result["func"] = $includes[$module_name]["view_func"];
    $this->result["rows"][$module_name] = $result;
    }
    }

    $this->result["view_rows"] = 'rows';
    $this->result["show_more"] = $this->diafan->_tpl->get('show_more', 'paginator', $this->result["paginator"]);
    $this->result["paginator"] = $this->diafan->_tpl->get('get', 'paginator', $this->result["paginator"]);

    $this->result["view"] = 'list';
    }
    }

    там где //custom
    это доработка тех поддержки...
    если убрать то все ок, только возвращаемся к началу данного вопроса.
    Как убрать с тегов показ товара которого нет в наличии (показ в админки отключены товара которого нет)

Новости

  • Вчера, 09:05
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 
  • 15 декабря 2023 г.
  • Подводим итоги 2023 года. Выпустили новую сборку DIAFAN.CMS 7.1.1, вводим новые тарифы на аренду сайта и коммерческую поддержку и автообновления с января 2024 г., строим планы на будущий год.