Что хотется получить
Стандартная конструкция вывода информации о количестве комментариев к записи выглядит следущим образом: «комментариев: N». Это самое нормальное, что можно сделать с помощью стандартных средств. Иначе получается что-то типа «21 комментариев», что совершенно неприемлимо.
Нужно сделать так, чтобы в зависимости от количества комментариев слово «комментарий» выводилось в правильной форме. Например:
Сделать это нужно только с помощью языка шаблонов Movable Type.
Моё решение
<MTEntries lastn="10">
<mt:SetVarBlock name="CommentsCount"><$MTEntryCommentCount$></mt:SetVarBlock>
<h3><$MTEntryTitle$></h3>
<mt:if name="CommentsCount" eq="0">
<p>нет комментариев</p>
</mt:if>
<mt:if name="CommentsCount" eq="1">
<p>1 комментарий</p>
</mt:if>
<mt:if name="CommentsCount" like="^(21|31|41|51|61|71|81|91|101|121|131|141|151|161|171|181|191|201|221)">
<p><$MTEntryCommentCount$> комментарий</p>
</mt:if>
<mt:if name="CommentsCount" like="^(2|3|4|22|23|24|32|33|34|42|43|44|52|53|54|62|63|64)">
<p><$MTEntryCommentCount$> комментария</p>
</mt:if>
<mt:if name="CommentsCount" like="^(5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|25|26|27|28|29|30|35|36|37|38|39|40|45|46|47|48|49|50|55|56|57|58|59|60)">
<p><$MTEntryCommentCount$> комментариев</p>
</mt:if>
</MTEntries>
(Этот пример приложен к письму отдельным файлом.)
Возникшие проблемы
Задача — описать эти числа с помощью регулярных выражений.
Изначально мы имеем три формы слова, изменяющееся в зависимости от числа, точнее от окончаний числа:
Главный вопрос — как это сделать с помощью регулярных выражений?
Ссылки
--