douhun7609 2015-02-07 13:00
浏览 51
已采纳

将php函数应用到Magento价格中

i wanna change Magento price view to my language. i mean i want to change numbers.

i have this php function:

function fanum($englishnumbers)
{
$englishnumbers = str_replace(’0′ , ‘٠’ , $englishnumbers);
$englishnumbers = str_replace(’1′ , ‘١’ , $englishnumbers);
$englishnumbers = str_replace(’2′ , ‘٢’ , $englishnumbers);
$englishnumbers = str_replace(’3′ , ‘٣’ , $englishnumbers);
$englishnumbers = str_replace(’4′ , ‘۴’ , $englishnumbers);
$englishnumbers = str_replace(’5′ , ‘۵’ , $englishnumbers);
$englishnumbers = str_replace(’6′ , ‘۶’ , $englishnumbers);
$englishnumbers = str_replace(’7′ , ‘٧’ , $englishnumbers);
$englishnumbers = str_replace(’8′ , ‘٨’ , $englishnumbers);
$englishnumbers = str_replace(’9′ , ‘٩’ , $englishnumbers);

return $englishnumbers;
}

and:

$echo fanum($en_number);

how to apply these in magento price

  • 写回答

1条回答 默认 最新

  • doujiong2533 2015-02-07 14:40
    关注

    You can use below snippet

    public function convertNumber($num)
    {
    
    
       list($num, $dec) = explode(".", $num);
    
       $output = "";
    
       if($num{0} == "-")
       {
          $output = "negative ";
          $num = ltrim($num, "-");
       }
       else if($num{0} == "+")
       {
          $output = "positive ";
          $num = ltrim($num, "+");
       }
    
    
       if($num{0} == "0")
       {
          $output .= "Zero";
       }
       else
       {
          $num = str_pad($num, 36, "0", STR_PAD_LEFT);
          $group = rtrim(chunk_split($num, 3, " "), " ");
          $groups = explode(" ", $group);
    
          $groups2 = array();
          foreach($groups as $g) {
          $groups2[] = $this->convertThreeDigit($g{0}, $g{1}, $g{2});
          }
    
          for($z = 0; $z < count($groups2); $z++)
          {
             if($groups2[$z] != "")
             {
                $output .= $groups2[$z].$this->convertGroup(11 - $z).($z < 11 && !array_search('', array_slice($groups2, $z + 1, -1))
                 && $groups2[11] != '' && $groups[11]{0} == '0' ? " and " : ", ");
             }
          }
    
          $output = rtrim($output, ", ");
       }
    
       if($dec > 0)
       {
          $output .= " point";
          for($i = 0; $i < strlen($dec); $i++) $output .= " ".$this->convertDigit($dec{$i});
       }
    
       return $output;
    }
    
    public function convertGroup($index)
    {
       switch($index)
       {
          case 11: return " Decillion";
          case 10: return " Nonillion";
          case 9: return " Octillion";
          case 8: return " Septillion";
          case 7: return " Sextillion";
          case 6: return " Quintrillion";
          case 5: return " Quadrillion";
          case 4: return " Trillion";
          case 3: return " Billion";
          case 2: return " Million";
          case 1: return " Thousand";
          case 0: return "";
       }
    }
    
    public function convertThreeDigit($dig1, $dig2, $dig3)
    {
    
       $output = "";
    
       if($dig1 == "0" && $dig2 == "0" && $dig3 == "0") return "";
    
       if($dig1 != "0")
       {
          $output .= $this->convertDigit($dig1)." Hundred";
          if($dig2 != "0" || $dig3 != "0") $output .= " and ";
       }
    
       if($dig2 != "0") $output .= $this->convertTwoDigit($dig2, $dig3);
       else if($dig3 != "0") $output .= $this->convertDigit($dig3);
    
       return $output;
    }
    
    public function convertTwoDigit($dig1, $dig2)
    {
       if($dig2 == "0")
       {
          switch($dig1)
          {
             case "1": return "Ten";
             case "2": return "Twenty";
             case "3": return "Thirty";
             case "4": return "Forty";
             case "5": return "Fifty";
             case "6": return "Sixty";
             case "7": return "Seventy";
             case "8": return "Eighty";
             case "9": return "Ninety";
          }
       }
       else if($dig1 == "1")
       {
    
    
          switch($dig2)
          {
             case "1": return "Eleven";
             case "2": return "Twelve";
             case "3": return "Thirteen";
             case "4": return "Fourteen";
             case "5": return "Fifteen";
             case "6": return "Sixteen";
             case "7": return "Seventeen";
             case "8": return "Eighteen";
             case "9": return "Nineteen";
          }
       }
       else
       {
          $temp = $this->convertDigit($dig2);
          switch($dig1)
          {
             case "2": return "Twenty-$temp";
             case "3": return "Thirty-$temp";
             case "4": return "Forty-$temp";
             case "5": return "Fifty-$temp";
             case "6": return "Sixty-$temp";
             case "7": return "Seventy-$temp";
             case "8": return "Eighty-$temp";
             case "9": return "Ninety-$temp";
          }
       }
    }
    
    public function convertDigit($digit)
    {
       switch($digit)
       {
          case "0": return "Zero";
          case "1": return "One";
          case "2": return "Two";
          case "3": return "Three";
          case "4": return "Four";
          case "5": return "Five";
          case "6": return "Six";
          case "7": return "Seven";
          case "8": return "Eight";
          case "9": return "Nine";
       }
    }
    

    you can call like below

    $this->convertNumber(round($_price));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元