Выводим количество пользователей по группам
Популярные запросы: Open Graph, плагин Reading Time, тема Quebec, плагин Telegram, набор иконок Analogue
- 658 просмотров +1
- 23 января, 2023
- Обновлено: 16 января, 2026
- admin
- Время чтения: 2 минуты
Видимо, данная задача решается отдельным плагином, но мы просто напишем маленькую функцию. Для примера используем php-файл темы оформления, например, nemesis.php. Начальный вариант функции выглядит так:
function cot_count_users($group) {
$db_users = Cot::$db->users;
$group = (int)$group ? $group : 4;
$total = Cot::$db->query("
SELECT COUNT(*)
FROM $db_users
WHERE user_maingrp = $group
")->fetchColumn();
return $total;
}
Ничего сложного, как видим. Вначале проверяем аргумент (номер группы) на целое значение. Если номер не указан, используем значение 4 -- группа зарегистрированных пользователей. Добавляем нашу функцию в шаблон, например, index.tpl:
{PHP|cot_count_users('5')}
Поскольку с полученным значением все же надо что-то делать, передадим его в стандартную "коробочную" функцию Cotonti cot_declension, предварительно определив для нее языковую переменную типа $Ls:
$Ls['users'] = 'пользователь,пользователя,пользователей';
Теперь снова начинаем работать в шаблоне:
{PHP|cot_count_users('5')|cot_declension($this, 'users')}
Вместо сухого числа имеем фразу вида "5 пользователей". Уже неплохо. Но давайте не будем напрягать шаблонизатор и сформируем весь вывод в нашей функции:
function cot_count_users($group = 4, $decl = '') {
$db_users = Cot::$db->users;
$group = (int)$group ? $group : 4;
$total = Cot::$db->query("
SELECT COUNT(*)
FROM $db_users
WHERE user_maingrp = $group
")->fetchColumn();
$total = empty($decl) ? $total : cot_declension($total, $decl);
return $total;
}
Как видим, наша функция принимает два аргумента с указанными значениями по умолчанию. При использовании ее в шаблоне в виде:
{PHP|cot_count_users()}
получим простое количество в виде целого числа. Если же укажем оба аргумента, например, так:
{PHP|cot_count_users('5', 'users')}
, то получим на выходе красивое "5 пользователей".
Выводы
Наша несложная функция позволяет выводить в необходимой локации количество пользователей в группе, указанной в виде аргумента. Если функцию объявлять в php-файле темы, она может использоваться глобально. Если же глобально не требуется, к использованию ресурсов хостинга подходить рационально, возможно для ее размещения стоит использовать часть плагина с каким-либо "локальным" хуком. Например, page.tags или page.list.tags.
Новый комментарий
Ошибка
Выполнено