Главная arrow Программирование arrow HTML arrow Joomla: исправление отображения количества статей Wednesday, August 23 2017  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Поделиться:

Joomla: исправление отображения количества статей Версия для печати
Написал microsin   
10.01.2008

При отображении списка категорий статей "не по-русски" выводится  количество статей в категории - применятеся вместо слова "статья" в нужном падеже всегда одно и то же слово "элементы".

Например:

  • HTML  ( 36 элементы )
    Кое-что по веб-дизайну.
  • AVR  ( 19 элементы )
    С чего начать, примеры, советы по программированию.
  • MSC51  ( 4 элементы )
    Примеры применения микроконтроллеров семейства MCS51 с исходниками.
  • PC  ( 31 элементы )
    Программирование для IBM PC, решение проблем, советы (...)

Проблема заключается в слишком простом коде отображения количества статей - не анализируется последняя цифра количества и не подставляется в зависимости от её значения нужный падеж (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. Теперь количество статей отображатся правильно:

  • HTML  ( 36 статей )
    Кое-что по веб-дизайну.
  • AVR  ( 19 статей )
    С чего начать, примеры, советы по программированию.
  • MSC51  ( 4 статьи )
    Примеры применения микроконтроллеров семейства MCS51 с исходниками.
  • PC  ( 31 статья )
    Программирование для IBM PC, решение проблем, советы (...)
Последнее обновление ( 29.01.2010 )
 

Комментарии  

  1. #1 Андрей
    2010-01-2901:59:09 В Joomla 1.5.15 я не смог найти файлов, которые здесь указаны. Часть такого кода через поиск по файлам тоже не нашел. Подскажите, где-то есть сейчас.

    microsin: у меня, к сожалению, Joomla версии 1.0.12, и я не могу указать новые имена файлов. Неудивительно, что файлы кода теперь называются по-другому. Совет - ищите файлы не по именам, а по содержимому в них (ищите операторы кода, который отображает количество статей). Наверняка сам код изменился незначительно.

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

Защитный код
Обновить

< Пред.   След. >

Top of Page
 
microsin © 2017