Программирование HTML Joomla: исправление отображения количества статей Thu, November 21 2024  

Поделиться

Нашли опечатку?

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


Joomla: исправление отображения количества статей Печать
Добавил(а) microsin   

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

Например:

  • 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;
   }
}
...
   &nbsp;< 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, решение проблем, советы (...)
 

Комментарии  

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

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

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


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

Top of Page