2011-11-14 15 views
0

次の問題があります。私はSmartyテンプレートエンジンを使用するPrestashop CMSでショップを作っています。だから、いくつかの製品を表示する文があります。今 - 英語で、それは簡単です - あなたがそのようにそれを行うことができます。SMARTY - ステムメント - 製品数(Prestashop)

{l s='Cart contains'} {$productNumber} {if $productNumber == 1}{l s='product'}{else}{l s='products'}{/if} 

しかし、この店はポーランド語で作られて - と問題が開始されます。 、2,3および4製品については、「PRODUKT」

  • と22,23のようなものを 番号を(含むすべての数 - あなたは一つの単語を持っている1つの製品について

    1. :それはこのようなはるかにcomplicated.Itさんです24,32,33,34,152,153,154,242,243,244、等) 別の単語 - ポイント2にこれらの番号を除いて4以上のすべてに "PRODUKTY"
    2. ()第 語 - "produktów"

    だから - 方法これにスマートな条件を書いてください。

    おかげ

  • +0

    ちょうど私は答え好奇心とないという。 Smartyでは、すべてのものを1行に追加する必要がありますか? – PeeHaa

    答えて

    1

    私はここに必要なロジックはプラグインを正当化するのに十分な再利用に十分な、おそらく冗長であると言うでしょう。使用に

    function smarty_modifier_nb_products_to_str($nbProducts){ 
        if($nbProducts > 1){ 
         $numbers = str_split((string) $nbProducts); 
         return count(array_intersect($numbers, array('2','3','4')) 
         ? 'produkty' 
         : 'produktów'; 
        } else { 
        return 'produkt'; 
        } 
    } 
    

    のような:

    {l s='Cart contains'} {nb_products_to_str($productNumber)} 
    
    関連する問題