Склонение числительных.

Автор kusak, 14 декабря 2011, 15:14:13

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

kusak

Здравствуйте уважаемые форумчане!
Хочу внести свой маленький вклад в развитие данного движка.Очень надеюсь,что свои новые решения и идеи также буду выкладывать...

При открытии любого форума лично мне всегда мозолит глаза, когда видишь напротив раздела количества тем и сообщений неправильное склонение данных слов, например: 1 Тем, 31 сообщений1 Ответов, 2 Просмотров за место положенного 1 Тема, 31 сообщение1 Ответ, 2 Просмотра
В данном моде мы исправим это несправедливое недоразумение.





1. Открыть Themes/Sources/Load.php

в самом начале перед:

// Load the $modSettings array
function reloadSettings()


добавить:

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



Далее для дефолтной темы.

Открыть:

Themes/default/BoardIndex.template.php


Найти:

', $board['is_redirect'] ? '' : comma_format($board['topics']) . ' ' . $txt['board_topics'], '

заменить на:

', $board['is_redirect'] ? '' : declOfNum(comma_format($board['topics']), array('тема', 'темы', 'тем')), '

найти:

', comma_format($board['posts']), ' ', $board['is_redirect'] ? $txt['redirects'] : $txt['posts'], '

заменить на:

', declOfNum(comma_format($board['posts']), array('Сообщение', 'Сообщения', 'Сообщений')), '


2. Открыть Themes/default/MessageIndex.template.php

Найти:

<td class="stats ', $color_class, '">
', $topic['replies'], ' ', $txt['replies'], '
<br />
', $topic['views'], ' ', $txt['views'], '
</td>


заменить на:

<td class="stats ', $color_class, '">
', declOfNum($topic['replies'], array('Ответ', 'Ответа', 'Ответов')), '
<br />
', declOfNum($topic['views'], array('Просмотр', 'Просмотра', 'Просмотров')), '
</td>


Всё!

Аналогичным образом слова склоняются в других темах оформления или в том месте, где Вам нужно просклонять числительные. Например: 41 гость и 22 пользователя.

Посмотреть можно тут http://jedi.net.in


thefate