. * */ namespace Vvveb\Component; use function Vvveb\availableCurrencies; use function Vvveb\session; use Vvveb\System\Component\ComponentBase; use Vvveb\System\Event; class Currency extends ComponentBase { public static $defaultOptions = [ 'start' => 1, 'limit' => 1000, 'status' => 1, 'site_only' => true, //show only site available currencies otherwise show all active 'default' => null, ]; function cacheKey() { //disable caching return false; } function results() { $results = []; $results['active'] = false; $results['current'] = self :: $global['currency']; $results['currency'] = availableCurrencies(); if (isset($results['currency']) && $results['currency']) { if (isset($this->options['site_only']) && $this->options['site_only'] && self :: $global['currencies']) { $results['currency'] = array_intersect_key($results['currency'], self :: $global['currencies']); } $code = session('currency') ?? self :: $global['currency']; if ($code && isset($results['currency'][$code])) { $currency = $results['currency'][$code] ?? []; $results['current'] = $code; $results['active'] = ['name' => $currency['name'], 'code' => $currency['code'], 'id' => $currency['currency_id']]; } } list($results) = Event :: trigger(__CLASS__,__FUNCTION__, $results); return $results; } }