Jump to content

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

Featured Replies

Posted
comment_186279

Как для дефолтных виджетов статистики посчитать количество форумов в 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

 

Edited by Zero108

comment_186299
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

  • Author
comment_186315

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();

 

Edited by Zero108

comment_186544
В 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();

 

Edited by ZIKURIK

comment_186551
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();

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.