Конфиг плагина

Интересует следующий вопрос:
Как в конфиге плагина (файл settings.php) можно получить все статусы (именно названия и id) заказов, которые доступны в бекэнде?

2 ответа

  • 2
    Владислав Горлов Webasyst 22 октября 2013 09:26 #
    Приведенный способ выше допустим но не рекомендуется, поскольку список опций обычно нужен более чем в одном месте.
    Доступны два способа указать опции для выбора:
    'options'=>myClass::getOptions(),
    либо (не очевидный, не документированный, но пока работающий, возможно, будет улучшен до более очевидного)
    'control_type' => waHtmlControl::SELECT.' '.'myClass::getOptions';
    • 0
      Дмитрий (BNP) Дмитрий (BNP) 22 октября 2013 11:28 #
      Вот спасибо, хорошо =)
      Осталось только понять насколько второй метод "опасен"? Т.е. что будет, если его улучшат?
      • 0
        Владислав Горлов Владислав Горлов Webasyst 23 октября 2013 08:07 #
        Ломать мы его вряд ли будем, скорее добавим документированные и более очевидные способы указать параметры (callback вместо массива options или как-нибудь еще)
    • 0
      Дмитрий (BNP) Дмитрий (BNP) 22 октября 2013 11:33 #
      И еще вопрос. Не нашел в базе данных таблицу, где хранятся доступные статусы?
      • 0
        Владислав Горлов Владислав Горлов Webasyst 23 октября 2013 08:10 #
        Если вы о статусах заказа, то shopWorkflow::getAvailableStates()
        • 0
          Дмитрий (BNP) Дмитрий (BNP) 23 октября 2013 13:43 #
          Да я уже разобрался. Но хотелось бы доков побольше, а то приходится "ковырять" базовые файлы и смотреть где, как и что вызывается.
          Да и чувствуется, что после появления документации полноценной, плагины придется переписывать, ибо наверняка существуют более оптимальные решения описание которых пока нет =(
    • 0
      Круто! очень неочевидно :)

      хотя можно было бы догадаться по аналогии с произвольными контролами.
  • 0
    Перед строкой вызовом return можно выполнить любой пхп код.

    Запишите нужные статусы в переменную и добавьте к результату.

    Вот пример файла settings.php с получением размеров изображения:
    <?php
    $sizes = wa('shop')->getConfig()->getImageSizes();
    $img_sizes = array();
    for($i = 0; $i<count($sizes); $i++)
    $img_sizes[$sizes[$i]] = $sizes[$i];

    return array(
    'img_size' => array(
    'value' => '96x96',
    'title' => 'Размер изображения',
    'control_type' => waHtmlControl::SELECT,
    'options' => $img_sizes
    ),
    );

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите