/** * 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()); }
/** * 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(); }); }