Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP BLOCK.PRO правильные падежи в комментариях и просмотрах

BLOCK.PRO правильные падежи в комментариях и просмотрах


     19.10.2013    Общие вопросы по PHP    1030

вопрос
Как данный код прикрутить в BLOCK.PRO?
if(($row['comm_num']>4 AND $row['comm_num']<21) OR (substr($row['comm_num'],-2)>4 AND substr($row['comm_num'],-2)<21)) $comm_txt = " комментов";
elseif(substr($row['comm_num'],-1)==1) $comm_txt = " коммент";
elseif(substr($row['comm_num'],-1)>1 AND substr($row['comm_num'],-1)<5) $comm_txt = " коммента";
else $comm_txt = " комментов";
$tpl->set("{comments-text}",$row['comm_num'].$comm_txt);
if(($row['news_read']>4 AND $row['news_read']<21) OR (substr($row['news_read'],-2)>4 AND substr($row['news_read'],-2)<21)) $news_txt = " просмотров";
elseif(substr($row['news_read'],-1)==1) $news_txt = " просмотр";
elseif(substr($row['news_read'],-1)>1 AND substr($row['news_read'],-1)<5) $news_txt = " просмотра";
else $news_txt = " просмотров";
$tpl->set("{views-text}",$row['news_read'].$news_txt);

Ответил: ПафНутиЙ


https://gist.github.com/7055414
надеюсь объяснять не нужно ничего)

Комментарии пользователей (2)

vitnet
218

2174 | 930

vitnet - 19 октября 2013 17:37 - Эксперт

/* Функция правильных окончаний слов*/
function ok_type($n) {
        return ($n%10==1 && $n%100!=11 ? 0 : ($n%10>=2 && $n%10<=4 && ($n%100<10 || $n%100>=20) ? 1 : 2));
}

$user_num = array('просмотр', 'просмотра', 'просмотров');
$counts_u = $user_num[ok_type($row['news_read'])];

echo $counts_u;

dj-avtosh
39

1479 | 390

dj-avtosh - 20 октября 2013 06:56 - шашлычник

И ни один не знает как правильно это дело называется...

И кстати о функции:

function plural_form($number, $after) {
    $cases = array (2, 0, 1, 1, 1, 2);
    return $number.' '.$after[ ($number%100>4 && $number%100<20)? 2: $cases[min($number%10, 5)] ];
}

$c = array('комментарий','комментария','комментариев');

echo plural_form(0, $c) . '<br />';
echo plural_form(1, $c) . '<br />';
echo plural_form(2, $c) . '<br />';
echo plural_form(5, $c) . '<br />';
echo plural_form(7, $c) . '<br />';
echo plural_form(25, $c) . '<br />';

skype: elhan.isaev

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы