Ubercart 3 (Drupal 7) 的多币种
Posted
技术标签:
【中文标题】Ubercart 3 (Drupal 7) 的多币种【英文标题】:Mulitcurrency for Ubercart 3 (Drupal 7) 【发布时间】:2011-12-03 01:43:04 【问题描述】:是否存在适用于 Ubercart 3 (drupal 7) 的任何解决方案(如 Drupal Ubercart: multi-currency? )或更好地实现此类事情的提示?
【问题讨论】:
朋友去过那里,恐怕目前那里什么都没有。最接近您的方法是将 Multi-currency Support for Ubercart 模块的自定义端口执行到 Drupal 7 似乎如此。我唯一的解决方案是破解 uc_store.module 文件以提供类似多币种的东西 【参考方案1】:作为解决方案之一,我找到并使用了这个:
在ubercart/store/uc_store.module中添加新的define,例如
define('RUR',0.33);
其中 0.33 - 是默认货币和新货币 (RUR) 之间的差值。 卢尔/美元 = 0.33
并在 uc_currency_format 函数中添加:
global $language;
if ($language->language=='ru')
$sign = ' RUB';
$thou = ',';
$dec = '.';
$value = $value / RUR;
$sign_after = FALSE;
;
功能齐全:
function uc_currency_format($value, $sign = NULL, $thou = NULL, $dec = NULL)
if ($value === NULL)
return NULL;
$output = '';
$sign_after = variable_get('uc_sign_after_amount', FALSE);
$prec = variable_get('uc_currency_prec', 2);
if (is_null($sign))
$sign = variable_get('uc_currency_sign', '$');
if (is_null($thou))
$thou = variable_get('uc_currency_thou', ',');
if (is_null($dec))
$dec = variable_get('uc_currency_dec', '.');
;
// If the value is significantly less than the minimum precision, zero it.
if ($prec > 0 && round(abs($value), $prec + 1) < pow(10, -$prec))
$value = 0;
global $language;
if ($language->language=='ru')
$sign = '$';
$thou = ',';
$dec = '.';
$value = $value / RUR;
$sign_after = FALSE;
;
// Force the price to a positive value and add a negative sign if necessary.
if ($value < 0)
$value = abs($value);
$output .= '-';
// Add the currency sign first if specified.
if ($sign && !$sign_after)
$output .= $sign;
// Format the number, like 1234.567 => 1,234.57
$output .= number_format($value, $prec, $dec, $thou);
// Add the currency sign last if specified.
if ($sign && $sign_after)
$output .= $sign;
;
if ($value=='0')
$output = t('free');
;
return $output;
【讨论】:
此解决方案的 10 倍。看起来如此简单和干净。使用这种方法有缺点吗? 缺点:在这个例子中是核心变化。同样在 Ubercart 的管理和其他部分,它仍然是商店的默认货币。【参考方案2】:我不建议您对其进行硬编码。您将在下次更新时丢失所有更改。试试看这个话题:http://drupal.org/node/1434470#comment-5582812
【讨论】:
以上是关于Ubercart 3 (Drupal 7) 的多币种的主要内容,如果未能解决你的问题,请参考以下文章
主题为Drupal 7的Ubercart“/ cart”页面
Ubercart 和 Drupal 7 - hook_add_to_cart