За последние 24 часа нас посетили 16750 программистов и 1679 роботов. Сейчас ищут 865 программистов ...

Изменение окончаний слов в зависимости от переменной

Тема в разделе "Прочие вопросы по PHP", создана пользователем deniskutovskiy, 23 апр 2014.

  1. deniskutovskiy

    deniskutovskiy Новичок

    С нами с:
    23 апр 2014
    Сообщения:
    1
    Симпатии:
    0
    Всем привет! Помогите пожалуйста новичку (полному) в php. Есть код:
    Код (Text):
    1.  <div id="ico_basket"><a href="/order/" class="ordabs"></a> В Вашей корзине <span> <span id="num">@num@</span>
    2. товар на <span id="sum">@sum@</span> @productValutaName@.</span> <span id="order"
    3. style="display:@orderEnabled@; "><a href="/order/" >Оформить заказ?</a></span> </div>
    Это html код корзины магазина в phpshop. Хочу сделать так, чтобы окончание слова "товар" изменялось в соответствии со значением переменной "@num@. Есть какие-нибудь идеи? Если есть, прошу поведать чуть попроще. Если нужны дополнительные сведения, попробую дать, но многого не требуйте. До этого работал на html/css только. Вот, решил расширить скилл, да и маме надо магазин сделать (деньги уже пропил), а готовые шаблоны - ни уму, ни сердцу.
     
  2. pixaye

    pixaye Активный пользователь

    С нами с:
    30 окт 2013
    Сообщения:
    67
    Симпатии:
    0
    Проверяйте если @num@ больше 1 то выводите "товаров", иначе "товар", и надо в таком случае заменить слово товар на другую переменную, думаю так, с phpshop не работал, но я думаю что именно так и надо делать.
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Боюсь, что @num@ на этом моменте не будет ничем.
     
  4. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Код (Text):
    1.  
    2. // $count - количество товаров
    3.  
    4. if (((($count - ($count % 10)) / 10) % 10) === 1) {
    5.     echo 'товаров';
    6. } else {
    7.     switch ($count % 10) {
    8.         case 0:
    9.             echo 'товаров';
    10.             break;
    11.         case 1:
    12.             echo 'товар';
    13.             break;
    14.         case 2:
    15.             echo 'товара';
    16.             break;
    17.         case 3:
    18.             echo 'товара';
    19.             break;
    20.         case 4:
    21.             echo 'товара';
    22.             break;
    23.         case 5:
    24.             echo 'товаров';
    25.             break;
    26.         case 6:
    27.             echo 'товаров';
    28.             break;
    29.         case 7:
    30.             echo 'товаров';
    31.             break;
    32.         case 8:
    33.             echo 'товаров';
    34.             break;
    35.         case 9:
    36.             echo 'товаров';
    37.             break;
    38.     }
    39. }
     
  5. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    ой ой
    Код (PHP):
    1. function morph($n, $f1, $f2, $f5) {
    2.     $n = abs($n) % 100;
    3.     $n1= $n % 10;
    4.     if ($n>10 && $n<20) return $f5;
    5.     if ($n1>1 && $n1<5) return $f2;
    6.     if ($n1==1) return $f1;
    7.     return $f5;
    8. }
    9. echo morph(rand(0,100),'слон','слона','слонов'); 
     
  6. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    йой
    Код (PHP):
    1. $num = 21;
    2. $plural = $num%10==1&&$num%100!=11?'товар':($num%10>=2&&$num%10<=4&&($num%100<10||$num%100>=20)?'товара':'товаров');
     
  7. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    тоже самое тока неудобно)
     
  8. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Автор, а чтобы заработало у тебя - тебе нужно переписать функцию, приведенную runcore или YSandro с php на JavaScript, встроить её в вёрстку и подумать, как ей воспользоваться :)
    Подсказка - циферку можешь выковырять из спана, id (по которому можно получить доступ) у него уже есть, додумать осталось немного