Изменение склонений

Даже жалко топик для этого создавать. Но есть маленький, никому не заметный момент — при добавлении комментариев, или при удалении, при подключении к блогу и пр. ajax-функциях меняется цифра (число комментов или подписчиков), но не склонение. Иногда получается «5 комментария» или «1 читателей». Мелочь конечно, просто напишу это здесь, может когда то вернетесь к этому. Спасибо.

3 комментария

0
Этим можно управлять с помощью модификатора Smarty — spellcount
Положите сюда: /engine/lib/external/Smarty/libs/plugins файл modifier.spellcount.php с таким содержимым:
<?php

function smarty_modifier_spellcount($num, $one, $two, $many) {
    if ($num%10==1 && $num%100!=11){
        echo $num.' '.$one;
    }
    elseif($num%10>=2 && $num%10<=4 && ($num%100<10 || $num%100>=20)){
        echo $num.' '.$two;
    }
    else{
        echo $num.' '.$many;
    }
}

и выводите в шаблоне переменную таким способом:
{$oTopic->getCountComment()|spellcount:"комментарий":"комментария":"комментариев"}


Я бы посоветовал взять этот способ разработчикам на вооружение (;
+1
В поставке движка есть функция смарти declension, которая уже используется в движке, поэтому рекомендую использовать ее, а не дублировать функционал.

@mif — топик не совсем об этом. Количество комментов при рендеринге страницы уже склоняется, и уже взято «на вооружение». Вопрос Вячеслава был в том, что после ajax добавления нового комментария склонение не срабатывает.
0
оу. точно. тогда откланиваюсь (:
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.