Перейти к содержанию

Как для дефолтных виджетов статистики посчитать количество форумов в Forums и количество категорий в Files?


Рекомендуемые сообщения

Как для дефолтных виджетов статистики посчитать количество форумов в Forums и количество категорий в Files?

Примеры из других виджетов:

$stats['total_videos'] = \IPS\Db::i()->select( 'COUNT(*)', 'videos_cat', array( 'file_open=?', 1 ) )->first();
$stats['totalAlbums'] = \IPS\gallery\Album\Item::databaseTableCount( TRUE );

Планирую использовать тут:

/applications/forums/widgets/forumStatistics.php
/applications/downloads/widgets/downloadStats.php

 

Изменено пользователем Zero108
Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, Zero108 сказал:

Как для дефолтных виджетов статистики посчитать количество форумов в Forums и количество категорий в Files?

Примеры из других виджетов:

$stats['total_videos'] = \IPS\Db::i()->select( 'COUNT(*)', 'videos_cat', array( 'file_open=?', 1 ) )->first();
$stats['totalAlbums'] = \IPS\gallery\Album\Item::databaseTableCount( TRUE );

Планирую использовать тут:

/applications/forums/widgets/forumStatistics.php
/applications/downloads/widgets/downloadStats.php

 

в запросе к бд изменить на таблицу с форумами и можно без where

Ссылка на комментарий
Поделиться на другие сайты

ZIKURIK 

Еще подскажите, пожалуйста, как для приложения Pages подсчитать сумму всех просмотров всех записей (статей)? image.thumb.jpeg.ffbf0e80cf128fa2f86aa036e062c3fb.jpeg

Как заменить cms_custom_database_3 на универсальное значение в запросе? Ведь на других сайтах это значение может быть cms_custom_database_4 и т.п. Или же баз данных может быть несколько. Есть какой-то универсальный несложный способ? Что-то вроде, но учитывая все возможные имена таблицы баз данных, которые пользователи могут создать (cms_custom_database_x) :

$stats['total_views'] = \IPS\Db::i()->select( "SUM(record_views)", 'cms_custom_database_3', array( 'record_approved=1' ) )->first();

 

Изменено пользователем Zero108
Ссылка на комментарий
Поделиться на другие сайты

В 19.09.2022 в 11:30, Zero108 сказал:

ZIKURIK 

Еще подскажите, пожалуйста, как для приложения Pages подсчитать сумму всех просмотров всех записей (статей)? image.thumb.jpeg.ffbf0e80cf128fa2f86aa036e062c3fb.jpeg

Как заменить cms_custom_database_3 на универсальное значение в запросе? Ведь на других сайтах это значение может быть cms_custom_database_4 и т.п. Или же баз данных может быть несколько. Есть какой-то универсальный несложный способ? Что-то вроде, но учитывая все возможные имена таблицы баз данных, которые пользователи могут создать (cms_custom_database_x) :

$stats['total_views'] = \IPS\Db::i()->select( "SUM(record_views)", 'cms_custom_database_3', array( 'record_approved=1' ) )->first();

 

Не проверял но должно работать

foreach ( \IPS\cms\Databases::databases() as $db )
{
	$dbNames .= !isset($dbNames) ? 'cms_custom_database_'.$db->id : '.cms_custom_database_'.$db->id;
}
$stats['total_views'] = \IPS\Db::i()->select( "SUM(record_views)", $dbNames, array( 'record_approved=1' ) )->first();

 

Изменено пользователем ZIKURIK
Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, ZIKURIK сказал:

Не проверял но должно работать

foreach ( \IPS\cms\Databases::databases() as $db )
{
	$dbNames .= !isset($dbNames) ? 'cms_custom_database_'.$db->id : '.cms_custom_database_'.$db->id;
}
$stats['total_views'] = \IPS\Db::i()->select( "SUM(record_views)", $dbNames, array( 'record_approved=1' ) )->first();

 

Или так, еще меньше кода:

foreach ( \IPS\cms\Databases::databases() as $db )
{
	$dbNames[] = 'cms_custom_database_'.$db->id;
}
$stats['total_views'] = \IPS\Db::i()->select( "SUM(record_views)", $dbNames, array( 'record_approved=1' ) )->first();

 

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...