Beispiel #1
0
 /**
  * 2015-11-27
  * @override
  * @see \Df\Config\Source::toOptionArray()
  * @return array(array(string => string))
  */
 public function toOptionArray()
 {
     return df_map_to_options_t($this->map());
 }
Beispiel #2
0
 /**
  * 2016-09-04
  * @override
  * @see \Df\Framework\Form\Element\Select2::getValues()
  * @used-by \Df\Framework\Form\Element\Select2::setRenderer()
  * Делаем по аналогии с @see \Magento\Config\Model\Config\Structure\Element\Field::getOptions()
  * https://github.com/magento/magento2/blob/2.1.1/app/code/Magento/Config/Model/Config/Structure/Element/Field.php#L362-L379
  *
  * Наша реализация короче, чем здесь:
  * @see \Magento\Config\Model\Config\Structure\Element\Field::_getOptionsFromSourceModel()
  * https://github.com/magento/magento2/blob/2.1.1/app/code/Magento/Config/Model/Config/Structure/Element/Field.php#L421-L456
  *
  * И лучше, потому что @uses df_currencies_options() не вываливает список всех валют, как в ядре,
  * а показывает только доступные для данной витрины валюты.
  * Более того, проверяет, имеется ли в системе курс обмена данной валюты на учётную.
  *
  * Подумав, заметил, что вопрос-то тонкий...
  * Мы можем находиться, например, на области действия настроек website или default,
  * в то время как на области store настройки валют могут быть разными...
  * Вызов @uses df_currencies_options() без параметров использует именно настройки по-умолчанию.
  * Это неидеальное решение.
  * Пока клиенты не жалуются (и неочевидно, будут ли вообще жаловаться) — пусть будет так.
  * А если надо будет, то текущий scope можено получить так:
  * df_scope($this['scope_id'], $this['scope']);
  *
  * @return array(array(string => string))
  */
 public function getValues()
 {
     return dfc($this, function () {
         return $this->filter() ? df_currencies_options($this->filter()) : df_map_to_options_t([self::$ORDER => 'Order Currency', self::$BASE => 'Base Currency']) + df_currencies_options();
     });
 }