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

Как выводить еще одно поле в списке товаров в админке, например количество товаров

  • 18 марта 2013 г.
  • Доброго всем времени! Клиент какой-то нервный нынче пошел :) Одна дамочка мне только-что истерику устроила... не устраивает её что не видно в админке в каталоге текущего количества по каждой товарной позиции.
    Следовательно вопрос, а можно это прикрутить в админке Диафана или низя? :)
    • 18 марта 2013 г.
    • Думаю можно как-то делать запрос в базу и вылеплять количество строк в таблице,и вывести все это в админке отредактировав шаблон, но как это сделать щас не скажу, по-лазайте по форумам, где-то похожее будет (это про запрос в БД), а потом наложите на диафан.
    • 18 марта 2013 г.
    • Хм...ведь цену же админка на товар показывает... и эта цена наверное из {shop_price} поле price, или я ошибаюсь?
      В этой же таблице есть поле count_goods int(11)количество товара... или это не то, что нужно?
    • 18 марта 2013 г.
    • Однако пойду в пожеланиях темку создам :)
    • 18 марта 2013 г.
    • Решение:

      Файл shop.admin.php

      /**
      * @var array выводить в списке содержание полей:
      */
      public $config_other_row = array (
      // Эту строку я добавил...
      'id' => 'function',
      // Эта строка там была...
      'text' => 'text',
      );

      // И сразу после описания массива $config_other_row рисуем функцию...
      public function other_row_id($row)
      {
      $cnt = DB::query_result("SELECT count_goods FROM {shop_price} WHERE good_id=%d", $row['id']);
      return ''.$cnt.'';
      }
      // Ну и все собственно...

      з.ы. Век живи - век учись! 100%

      http://cms.diafan.ru/dokument/full-manual/examples/admin-view/
    • 18 марта 2013 г.
    • Ну или можно совсем извратится и раскрасить админку со списком товаров :)

      public function other_row_id($row)
      {
      $cnt = DB::query_result("SELECT count_goods FROM {shop_price} WHERE good_id=%d", $row['id']);
      if ($cnt > 0) {
      return '</td><td class="shop_id" width="100px" style="font-weight:bold;color:#009;">'.$cnt.'';
      }
      if ($cnt == 0) {
      return '</td><td class="shop_id" width="100px" style="font-weight:bold;color:#F00;">Нет';
      }
      }
      • 24 марта 2013 г.
      • А как таким же образом не количество выводить, а артикул?
        • 25 марта 2013 г.
        • Точно так же с поправками на артикул.
          Файл shop.admin.php

          Код
          /**
          * @var array выводить в списке содержание полей:
          */
          public $config_other_row = array (

          // Эту строку нужно добавить...
          'vyvodim_article' => 'function',

          // Эта строка там была...
          'text' => 'text',
          );

          // И сразу после описания массива $config_other_row добавляем функцию...
          public function other_row_vyvodim_article($row)
          //функция переопределения строк должна называться other_row_*****() и имя переменной из массива. Собственно, об этом в документации написано
          {
          $article = DB::query_result("SELECT article FROM {shop} WHERE id=%d", $row['id']);
          return '</td><td>'.$article.'';
          }
          // Ну и все!
          • 25 марта 2013 г. , редакция: 25 марта 2013 г.
          • Виталий, как всегда, спасибо вам большое!
            Буду пробовать.
          • 25 марта 2013 г.
          • Скопировал, как сказали. В результате получил полное отсутствие товаров. Скриншот: http://take.ms/VKVXD
            Помогите пожалуйста разобраться.
            • 25 марта 2013 г.
            • Это надо не "копировать", это лишь инструкция для программиста, который разбирается в том, что делать и как делать. Вы могли скобку какую-то не закрыть, или кавычку и вся функция перестанет работать. Тогда будет пусто.

              PS Если Вы пишете "получил полное отсутствие товаров", зачем прикреплять скриншот, где "полное отсутствие товаров"? Вы же об этом и так написали. Этот скриншот проблему решить не поможет.
              На будущее: лучше прикладывать скриншот кода, который Вы правили. По нему явно больше возможности помочь, чем по скриншоту, где "ничего нет"
              • 26 марта 2013 г. , редакция: 29 марта 2013 г.
              • Виталий, очень вы хотите чтобы каждый веб-мастер владел php на уровне разработчика :)
                Я бы поспорил по некоторым пунктам, но очень уж не хочу впадать в немилость к разработчикам моей любимой CMS системы (которая собственно позволяет мне почти не зная php удовлетворять почти все мои нужды)


                Режим профилирования запросов выдал следующее:
                Код

                Unknown column 'e.vyvodim_article' in 'field list' query: SELECT e.id, e.name1 AS name, e.vyvodim_article, e. text, e.act1 AS act, e.site_id, e.cat_id, e.sort FROM `diafan_s...


                А вот что я вставил в код http://take.ms/q9iqQ
  • 16 июня 2015 г.
  • Перечень данных, которые нужно отображать в списке, находится в массиве $config_other_row. Обратите внимание, в массиве $config_other_row обязательно должны использоваться переменные, объявленные в $variables. Если в списке нужно использовать свободные данные, используйте любое незанятое имя, например id.
  • 06 сентября 2015 г.
  • А как сделать чтобы выводилось количество товара к каждой цене характеристики а не самое большое количество товара?
    • 07 сентября 2015 г.
    • не знаю что такое "самое большое количество товара", но рекомендую включить в настройках каталога "Учитывать остатки товаров на складе".
      • 08 сентября 2015 г.
      • Учет включен, но когда подключаю код по решению проблемы, то он просто показывает одно число, оно получается самым большим количеством из характеристик товара.
        т.е. у меня есть: 5шт 42 размера, 3шт 46 и 24шт 48 размера.
        так он показывает мне что есть 24шт, а надо чтобы у каждого размера, в моем случае там есть окошко с ценой прописывалось кол-во товара еще, чтобы его можно было менять прям из админки не влезая в каждый товар.

Новости

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

Форум