Joomla: исправление отображения количества статей |
![]() |
Добавил(а) microsin |
При отображении списка категорий статей "не по-русски" выводится количество статей в категории - применяется вместо слова "статья" в нужном падеже всегда одно и то же слово "элементы". Например:
Проблема заключается в слишком простом коде отображения количества статей - не анализируется последняя цифра количества и не подставляется в зависимости от её значения нужный падеж (36 статей, 1 статья и т. д.), а также слово "элементы" тупо берется из константы _CHECKED_IN_ITEMS, определенной в файле language/russian.php. Исправить ошибку довольно просто - добавляем в файл components/com_content/content.html.php следующий код: < ?php ... function PrintRusNumArticles ($num) { $remainder = $num % 100; if (($remainder >= 11)&&($remainder < = 14)) { return $num.' статей'; } $remainder = $num % 10; switch ($remainder) { case 0: case 5: case 6: case 7: case 8: case 9: return $num.' статей'; break; case 1: return $num.' статья'; break; case 2: case 3: case 4: return $num.' статьи'; break; } } ... < i>( < ?php echo /*$row->numitems; echo _CHECKED_IN_ITEMS*/PrintRusNumArticles($row->numitems);?> )< /i> ... Функция PrintRusNumArticles возвращает корректно слово "статья" в нужном падеже в зависимости от количества статей (достаточно проанализировать последнюю цифру количества, для чего используется деление по модулю 10). Потом в том месте, где выводилась константа _CHECKED_IN_ITEMS, вставляется вызов функции PrintRusNumArticles. Теперь количество статей отображается правильно: |