Склонения Dle

Рейтинг: 0Ответов: 2Опубликовано: 18.01.2015

Всем привет. Есть такой код

    <?php

if (!defined('DATALIFEENGINE')) { 
    die('Доступ ограничен!'); 
}

$users = dle_cache('procore_users', $config['skin']);

if (!$users) { 
    $row = $db->super_query('SELECT COUNT(*) as count FROM '.PREFIX.'_users'); 
    $users = '<span class="red">'.$row['count'].'</span>'; 
    create_cache('procore_users', $users, $config['skin']); 
}

echo $users;
?>

Он выводит число, сколько зарегистрировалось пользователей. А как сделать так, что еще выводилось слово пользователь \ ля \ лей со склонением, в зависимости от числа зарегистрированных

Ответы

▲ 1Принят

Просто выпишите числа от 0 до, например, 30 вместе с соответствующими склонениями слова "пользователь" и посмотрите, какие окончания у каких чисел получаются. Несложно заметить закономерность:

  • если число заканчивается на 0, 5, 6, 7, 8, 9, 11, 12, 13 или 14, то "пользователей" (70 пользователей, 514 пользователей, 36 пользователей)
  • если число заканчивается на 1, но не на 11, то "пользователь" (51 пользователь, 301 пользователь)
  • если число заканчивается на 2, 3 или 4, но не на 12, 13 или 14, то "пользователя" (92 пользователя, 34 пользователя)

Вам остаётся только получить остаток от деления числа на 10 (и на 100 для проверки случая с окончаниями 11 - 14) и прописать соответствующее окончание.

▲ 1

Хм а зачем так усложнять? может проще изменить логику написния? напирмер:

На сайте зарегистрированных пользователей: 1

Зарегистрированных пользователей: 144

Пользователей: Стопиццот/Over9000