function CurrencyExchange::processCallback in Currency 8.3
Implements preg_replace_callback() callback.
See also
File
- src/
Plugin/ Filter/ CurrencyExchange.php, line 93
Class
- CurrencyExchange
- Provides a filter to exchange currencies.
Namespace
Drupal\currency\Plugin\FilterCode
function processCallback(array $matches) {
$currency_code_from = $matches[1];
$currency_code_to = $matches[2];
$amount = str_replace(':', '', $matches[3]);
if (strlen($amount) !== 0) {
$amount = $this->input
->parseAmount($amount);
// The amount is invalid, so return the token.
if (!$amount) {
return $matches[0];
}
}
else {
$amount = 1;
}
$exchange_rate = $this->exchangeRateProvider
->load($currency_code_from, $currency_code_to);
$this->currentFilterProcessResult
->addCacheableDependency($exchange_rate);
if ($exchange_rate) {
return bcmul($amount, $exchange_rate
->getRate(), 6);
}
// No exchange rate could be loaded, so return the token.
return $matches[0];
}