2011-07-21 47 views
1

我將寫一個magento的常見問題和一個最適合我的解決方案。如何更改Magento 1.5中的價格格式或區域選項?

我一直在網上搜索和反映數小時的magento代碼來找到解決上述問題的方法。我希望匈牙利價格格式爲1 000 Ft而不是1 000,00 Ft

我已將值'precision'替換爲0,但沒有成功。 這裏是我探測列表:

  • 應用程序/代碼/核心/法師/核心/型號/ Store.php

    function formatPrice(){ $option = array('precison' => 2); ... }

  • 應用程序/代碼/核心/法師/目錄/Model/Currency.php

    function format() { $this->formatPrecision($price, 0, $options, $includeContainer, $addBrackets); }

反映代碼後,我意識到這一切都沒有關係,因爲數字格式信息是基於區域設置信息,這是由Zend核心API提供的信息。

所以這裏是我找到的解決方案,希望價格格式化將成爲整個應用程序的標準。

你會發現你YY.xml文件的lib/Zend公司/地點/數據/,其中YY是你的國家設置代碼。我的是hu.xml

您找到部分:

<currencyFormats> 
    <currencyFormatLength> 
     <currencyFormat> 
      <pattern>#,##0 ¤</pattern> 
     </currencyFormat> 
    </currencyFormatLength> 
    <unitPattern count="other">{0} {1}</unitPattern> 
</currencyFormats> 

關於格式字符串,你可以找到在http://framework.zend.com/manual/en/zend.locale.parsing.html一個不是不惜一切有用的信息

+0

格式字符串鏈接是死 – hellimac

回答

-2

複製「應用程序/代碼/ core/Mage/Directory/Model/Currency.php「改爲」app/code/local/Mage/Directory/Model/Currency.php「並替換格式化函數。

public function format($price, $options=array(), $includeContainer = true, $addBrackets = false) 
    { 
     return str_replace(',00', '', $this->formatPrecision($price, 2, $options, $includeContainer, $addBrackets));   
    } 
+1

你不需要使用str_replace函數,只需修改第二parametr從2比0 –

相關問題