Posted 18 сентября, 20222 yr 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 18 сентября, 20222 yr by Zero108
18 сентября, 20222 yr 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
19 сентября, 20222 yr Author comment_186315 ZIKURIK Еще подскажите, пожалуйста, как для приложения Pages подсчитать сумму всех просмотров всех записей (статей)? Как заменить 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 19 сентября, 20222 yr by Zero108
22 сентября, 20222 yr comment_186544 В 19.09.2022 в 11:30, Zero108 сказал: ZIKURIK Еще подскажите, пожалуйста, как для приложения Pages подсчитать сумму всех просмотров всех записей (статей)? Как заменить 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 22 сентября, 20222 yr by ZIKURIK
22 сентября, 20222 yr 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.