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

Вывод дополнительной информации о товаре в корзине

  • 28 октября 2014 г.
  • При оформлении товара в корзине хочу вывести некоторые характеристики товара.
    Вот редактирую сейчас cart.view.table.php. Есть там таблица. Вот в таблице
    Код
    echo '<span>Категория:</span><p>'.$row["cat"]["name"].'</p>';
    . Тут нормально. А вто я хочу вывести Фирму производителя этого товара. Пишу
    Код
    echo '<span>Производитель:</span><p>'.$row["brand"].'</p>';
    . Но пусто. Помогите как решить такую задачу.
    • 28 октября 2014 г.
    • в какой же раз я говорю это)) - "посомотрите на модель" )
      • 28 октября 2014 г.
      • Я смотрел Пробовал дописывать в запросах слово brand но корзина вообще не хотела выводить товары. Оказывается что такая штука http://www.diafan.ru/dokument/full-manual/examples/extra-goods-prop/ не везде работает . Судя по всему она работает в страницах которые обрабатываются шопом. Но странно ведь корзина это та вещь которая должна быть в шопе (модели) обязательно. Зачем ее было отделять? А теперь придется вручную лезть в модель корзины и экспериментировать. Если б была б в шопе - функциональность с выводом и отображением товара была бы по мощнее.

        Может подскажете в каком месте запрос менять? Если с этим кто-то сталкивался...
      • 28 октября 2014 г.
      • Вот в cart.model.php.
        Ищем цикл запроса на выборку с БД тех характеристик (данных) которых хотим.
        Вот показываю пример на вывод бренда товара:
        Код
        foreach ($cart as $good_id => $array)
        {
        if (!$row = DB::query_fetch_array("SELECT id, [name], article, cat_id, brand_id, site_id FROM {shop} WHERE [act]='1' AND id = %d AND trash='0' LIMIT 1", $good_id))
        {
        continue;
        }
        $link = $this->diafan->_route->link($row["site_id"], $row["id"], "shop");
        $img = $this->diafan->_images->get('medium', $good_id, 'shop', 'element', $row["site_id"], $row["name"]);
        foreach ($array as $param => $c)
        {
        $this->result["rows"][$k]["name"] = $row["name"];
        $this->result["rows"][$k]["article"] = $row["article"];
        $this->result["rows"][$k]["link"] = $link;
        $query = array();
        $params = unserialize($param);
        if($row["cat_id"])
        {
        if (empty($select_cats[$row["cat_id"]]))
        {
        $select_cats[$row["cat_id"]] = array(
        "name" => DB::query_result("SELECT [name] FROM {shop_category} WHERE id=%d LIMIT 1", $row["cat_id"]),
        "link" => $this->diafan->_route->link($row["site_id"], $row["cat_id"], "shop", 'cat')
        );
        }
        $this->result["rows"][$k]["cat"]["name"] = $select_cats[$row["cat_id"]]["name"];
        $this->result["rows"][$k]["cat"]["link"] = $select_cats[$row["cat_id"]]["link"];
        }
        if($row["brand_id"])
        {
        if (empty($select_cats[$row["brand_id"]]))
        {
        $select_cats[$row["brand_id"]] = array(
        "name" => DB::query_result("SELECT [name] FROM {shop_brand} WHERE id=%d LIMIT 1", $row["brand_id"]),
        );
        }
        $this->result["rows"][$k]["brand"]["name"] = $select_cats[$row["brand_id"]]["name"];
        }
        • 28 октября 2014 г. , редакция: 28 октября 2014 г.
        • Елы палы... с таблицой shop еще понятно...а вто shop.param, shop.param.element... очень много связок...отдельную характеристику не так то просто будет вытянуть....
          Хотя в моделе нашел такое:
          Код
          foreach ($params as $id => $value)
          {
          $query[] = 'p'.$id.'='.$value;
          if (empty($param_names[$id]))
          {
          $param_names[$id] = DB::query_result("SELECT [name] FROM {shop_param} WHERE id=%d LIMIT 1", $id);
          }
          if (empty($select_names[$id][$value]))
          {
          $select_names[$id][$value] =
          DB::query_result("SELECT [name] FROM {shop_param_select} WHERE param_id=%d AND id=%d LIMIT 1", $id, $value);
          }

          $this->result["rows"][$k]["name"] .= ', '.$param_names[$id].': '.$select_names[$id][$value];
          }
          • 28 октября 2014 г.
          • Была похожая тема по-ищите на форуме
            • 28 октября 2014 г.
            • Такого не нашел.
              Я думаю может в диафане уже все готово для вывода характеристик, ведь выше приведенный код за них судя по всему отвечает....
              Как правильно во вьюхе запросить вывод определенного параметра или всех параметров?
              • 28 октября 2014 г.
              • Код

                if (empty($select_cats[$row["brand_id"]]))
                {
                $select_cats[$row["brand_id"]] = array(
                "name" => DB::query_result("SELECT [name] FROM {shop_brand} WHERE id=%d LIMIT 1", $row["brand_id"]),
                );
                }


                имя переменной "select_cats" не смущает?

                дальше (ниже), за условием напишите что-то вроде
                Код

                $this->result["rows"][$k]["brand"] = DB::query_result("SELECT [name] FROM {shop_brand} WHERE id=%d", $row["brand_id"])

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум