Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.

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

  • 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
    это доработка тех поддержки...
    если убрать то все ок, только возвращаемся к началу данного вопроса.
    Как убрать с тегов показ товара которого нет в наличии (показ в админки отключены товара которого нет)

Новости

  • 30 декабря, четверг
  • 2021-ый доживает свои последние часы, а значит самое время подвести итоги и разослать поздравления.
  • 26 октября 2021 г.
  • Чтобы ваш сайт работал стабильно и без сбоев – мы постоянно совершенствуем систему. На днях вышла очередная сборка: DIAFAN.CMS 7.0.0.2.
  • 03 августа 2021 г.
  • С 1 сентября 2021 года увеличивается стоимость аренды сайтов на платформе Diafan.Cloud. Это ежегодное небольшое повышение, связанное с инфляцией и ростом стоимости услуг провайдеров. Кроме того, любые изменения ценовой политики Diafan направлены на развитие системы и улучшение качества предоставляемых услуг. С сентября стоимость месяца аренды вырастет: для интернет-магазинов – с 1180 до 1260 рублей; для бизнес-сайтов – с 680 до 730 рублей.

Блоги

  • 3.01.2022
  • Сдавая сайт заказчику, я, как правило, помогаю ему с его наполнением на первых порах. И на данном отрезке развития сайта хорошо видно, как большинство пользователей работают с контентом, т.к. заполняются разделы, пишутся статьи и новости. И наблюдая за типичными ошибками в работе с редактором, я разработал дополнение к визуальному редактору TinyMCE, которое бонусом устанавливал всем своим клиентам. А теперь вот решил описать эти ошибки в данной статье.

Блоги

  • 29.12.2021
  • 2021-ый год доживает свои последние часы, а значит самое время подвести итоги. Все подводят и мы подведем, раз уж есть такая традиция :)

    На самом деле, год выдался невероятно тяжелый и напряженный. Ограничения, связанные с пандемией, рост цен поставщиков цифровых услуг, растущая все сильнее и сильнее конкуренция. Но были и события, которыми мы гордимся. По мелочам таких много, но глобальных, масштабных и особенно значимых – всего три. О них и хочется рассказать, подводя итоги года.

Форум