From: <chr...@us...> - 2018-06-29 09:10:01
|
Revision: 13380 http://sourceforge.net/p/xoops/svn/13380 Author: chronolabscoop Date: 2018-06-29 09:09:55 +0000 (Fri, 29 Jun 2018) Log Message: ----------- Done for 37hr round-table going to work on entities api for a bit! Modified Paths: -------------- XoopsModules/authkey/trunk/modules/authkey/admin/index.php XoopsModules/authkey/trunk/modules/authkey/apis.php XoopsModules/authkey/trunk/modules/authkey/class/apis.php XoopsModules/authkey/trunk/modules/authkey/class/keys.php XoopsModules/authkey/trunk/modules/authkey/class/users.php XoopsModules/authkey/trunk/modules/authkey/language/english/admin.php XoopsModules/authkey/trunk/modules/authkey/language/english/modinfo.php XoopsModules/authkey/trunk/modules/authkey/xoops_version.php Added Paths: ----------- XoopsModules/authkey/trunk/modules/authkey/assets/images/32x32/exec.png XoopsModules/authkey/trunk/modules/authkey/assets/images/32x32/stats.png Modified: XoopsModules/authkey/trunk/modules/authkey/admin/index.php =================================================================== --- XoopsModules/authkey/trunk/modules/authkey/admin/index.php 2018-06-29 01:28:30 UTC (rev 13379) +++ XoopsModules/authkey/trunk/modules/authkey/admin/index.php 2018-06-29 09:09:55 UTC (rev 13380) @@ -26,12 +26,47 @@ $indexAdmin = new ModuleAdmin(); echo $indexAdmin->addNavigation(basename($_SERVER['PHP_SELF'])); - $category_handler = xoops_getmodulehandler('category', 'xcenter'); - $xcenter_handler = xoops_getmodulehandler('xcenter', 'xcenter'); $indexAdmin = new ModuleAdmin(); - $indexAdmin->addInfoBox(_XTR_ADMIN_COUNTS); - $indexAdmin->addInfoBoxLine(_XTR_ADMIN_COUNTS, "<label>"._XTR_ADMIN_THEREARE_CATEGORIES."</label>", $category_handler->getCount(NULL), 'Green'); - $indexAdmin->addInfoBoxLine(_XTR_ADMIN_COUNTS, "<label>"._XTR_ADMIN_THEREARE_ARTICLES."</label>", $xcenter_handler->getCount(NULL), 'Green'); + $indexAdmin->addInfoBox(_AM_AUTHKEY_DASHBOARD); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_DASHBOARD, "<label>"._AM_AUTHKEY_INDEX_APIS."</label>", xoops_getmodulehandler('apis', basename(dirname(__DIR__)))->getCount(NULL), 'Blue'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_DASHBOARD, "<label>"._AM_AUTHKEY_INDEX_APIS_AUTHWRITE."</label>", xoops_getmodulehandler('apis', basename(dirname(__DIR__)))->getCount(new Criteria('`api-write`', 'xoopskey')), 'Orange'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_DASHBOARD, "<label>"._AM_AUTHKEY_INDEX_APIS_AUTHREAD."</label>", xoops_getmodulehandler('apis', basename(dirname(__DIR__)))->getCount(new Criteria('`api-read`', 'xoopskey')), 'Orange'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_DASHBOARD, "<label>"._AM_AUTHKEY_INDEX_KEYS_NUMBER."</label>", xoops_getmodulehandler('keys', basename(dirname(__DIR__)))->getCount(NULL), 'Green'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_DASHBOARD, "<label>"._AM_AUTHKEY_INDEX_KEYS_ADVERAGE."</label>", number_format(xoops_getmodulehandler('keys', basename(dirname(__DIR__)))->getAveragePerUser(), 2), 'Green'); + + $indexAdmin->addInfoBox(_AM_AUTHKEY_LESTATS); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_LESTATS, "<label>"._AM_AUTHKEY_STATS_KEY_TYPE."</label>", xoops_getmodulehandler('keys', basename(dirname(__DIR__)))->getNextStatsType(), 'Green'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_LESTATS, "<label>"._AM_AUTHKEY_STATS_KEY_NAME."</label>", xoops_getmodulehandler('keys', basename(dirname(__DIR__)))->getNextStatsName(), 'Green'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_LESTATS, "<label>"._AM_AUTHKEY_STATS_KEY_ENDING."</label>", date('Y/m/d H:i:s', xoops_getmodulehandler('keys', basename(dirname(__DIR__)))->getNextStatsWhen()), 'Green'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_LESTATS, "<label>"._AM_AUTHKEY_STATS_USER_TYPE."</label>", xoops_getmodulehandler('users', basename(dirname(__DIR__)))->getNextStatsType(), 'Purple'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_LESTATS, "<label>"._AM_AUTHKEY_STATS_USER_NAME."</label>", xoops_getmodulehandler('users', basename(dirname(__DIR__)))->getNextStatsName(), 'Purple'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_LESTATS, "<label>"._AM_AUTHKEY_STATS_USER_ENDING."</label>", date('Y/m/d H:i:s', xoops_getmodulehandler('users', basename(dirname(__DIR__)))->getNextStatsWhen()), 'Purple'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_LESTATS, "<label>"._AM_AUTHKEY_STATS_API_TYPE."</label>", xoops_getmodulehandler('apis', basename(dirname(__DIR__)))->getNextStatsType(), 'Blue'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_LESTATS, "<label>"._AM_AUTHKEY_STATS_API_NAME."</label>", xoops_getmodulehandler('apis', basename(dirname(__DIR__)))->getNextStatsName(), 'Blue'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_LESTATS, "<label>"._AM_AUTHKEY_STATS_API_ENDING."</label>", date('Y/m/d H:i:s', xoops_getmodulehandler('apis', basename(dirname(__DIR__)))->getNextStatsWhen()), 'Blue'); + + $indexAdmin->addInfoBox(_AM_AUTHKEY_REPORTING); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_REPORTING, "<label>"._AM_AUTHKEY_REPORT_KEY_TYPE."</label>", xoops_getmodulehandler('keys', basename(dirname(__DIR__)))->getNextReportType(), 'Green'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_REPORTING, "<label>"._AM_AUTHKEY_REPORT_KEY_NAME."</label>", xoops_getmodulehandler('keys', basename(dirname(__DIR__)))->getNextReportName(), 'Green'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_REPORTING, "<label>"._AM_AUTHKEY_REPORT_KEY_ENDING."</label>", date('Y/m/d H:i:s', xoops_getmodulehandler('keys', basename(dirname(__DIR__)))->getNextReportWhen()), 'Green'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_REPORTING, "<label>"._AM_AUTHKEY_REPORT_USER_TYPE."</label>", xoops_getmodulehandler('users', basename(dirname(__DIR__)))->getNextReportType(), 'Purple'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_REPORTING, "<label>"._AM_AUTHKEY_REPORT_USER_NAME."</label>", xoops_getmodulehandler('users', basename(dirname(__DIR__)))->getNextReportName(), 'Purple'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_REPORTING, "<label>"._AM_AUTHKEY_REPORT_USER_ENDING."</label>", date('Y/m/d H:i:s', xoops_getmodulehandler('users', basename(dirname(__DIR__)))->getNextReportWhen()), 'Purple'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_REPORTING, "<label>"._AM_AUTHKEY_REPORT_API_TYPE."</label>", xoops_getmodulehandler('apis', basename(dirname(__DIR__)))->getNextReportType(), 'Blue'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_REPORTING, "<label>"._AM_AUTHKEY_REPORT_API_NAME."</label>", xoops_getmodulehandler('apis', basename(dirname(__DIR__)))->getNextReportName(), 'Blue'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_REPORTING, "<label>"._AM_AUTHKEY_REPORT_API_ENDING."</label>", date('Y/m/d H:i:s', xoops_getmodulehandler('apis', basename(dirname(__DIR__)))->getNextReportWhen()), 'Blue'); + + $indexAdmin->addInfoBox(_AM_AUTHKEY_ENDING); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_ENDING, "<label>"._AM_AUTHKEY_ENDING_KEY_STATS_WEEKLY."</label>", xoops_getmodulehandler('keys', basename(dirname(__DIR__)))->getCountStatsEnding(3600 * 24 * 7), 'Green'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_ENDING, "<label>"._AM_AUTHKEY_ENDING_KEY_STATS_DAILY."</label>", xoops_getmodulehandler('keys', basename(dirname(__DIR__)))->getCountStatsEnding(3600 * 24), 'Green'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_ENDING, "<label>"._AM_AUTHKEY_ENDING_KEY_REPORTS_MONTHLY."</label>", xoops_getmodulehandler('keys', basename(dirname(__DIR__)))->getCountReportsEnding(3600 * 24 * 7 * 4), 'Green'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_ENDING, "<label>"._AM_AUTHKEY_ENDING_USER_STATS_WEEKLY."</label>", xoops_getmodulehandler('users', basename(dirname(__DIR__)))->getCountStatsEnding(3600 * 24 * 7), 'Purple'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_ENDING, "<label>"._AM_AUTHKEY_ENDING_USER_STATS_DAILY."</label>", xoops_getmodulehandler('users', basename(dirname(__DIR__)))->getCountStatsEnding(3600 * 24), 'Purple'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_ENDING, "<label>"._AM_AUTHKEY_ENDING_USER_REPORTS_MONTHLY."</label>", xoops_getmodulehandler('users', basename(dirname(__DIR__)))->getCountReportsEnding(3600 * 24 * 7 * 4), 'Purple'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_ENDING, "<label>"._AM_AUTHKEY_ENDING_API_STATS_WEEKLY."</label>", xoops_getmodulehandler('apis', basename(dirname(__DIR__)))->getCountStatsEnding(3600 * 24 * 7), 'Blue'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_ENDING, "<label>"._AM_AUTHKEY_ENDING_API_STATS_DAILY."</label>", xoops_getmodulehandler('apis', basename(dirname(__DIR__)))->getCountStatsEnding(3600 * 24), 'Blue'); + $indexAdmin->addInfoBoxLine(_AM_AUTHKEY_ENDING, "<label>"._AM_AUTHKEY_ENDING_API_REPORTS_MONTHLY."</label>", xoops_getmodulehandler('apis', basename(dirname(__DIR__)))->getCountReportsEnding(3600 * 24 * 7 * 4), 'Blue'); + echo $indexAdmin->renderIndex(); xoops_cp_footer(); ?> \ No newline at end of file Modified: XoopsModules/authkey/trunk/modules/authkey/apis.php =================================================================== --- XoopsModules/authkey/trunk/modules/authkey/apis.php 2018-06-29 01:28:30 UTC (rev 13379) +++ XoopsModules/authkey/trunk/modules/authkey/apis.php 2018-06-29 09:09:55 UTC (rev 13380) @@ -44,8 +44,8 @@ if (substr($field, 0, 5) == 'calls') { $apiarr[str_replace("-", "_", $field)] = number_format($value, 0); } elseif (in_array($field, array('online', 'offline'))) { - if ($value = $api->getVar('status')) - $apiarr[str_replace("-", "_", $field)] = authkey_getTimePeriod($value + (time() - $api->getVar('checked'))); + if ($field = $api->getVar('status')) + $apiarr[str_replace("-", "_", $field)] = authkey_getTimePeriod($value + ((time() > $api->getVar('checked') ? time() - $api->getVar('checked') : $api->getVar('checked') - time()))); else $apiarr[str_replace("-", "_", $field)] = authkey_getTimePeriod($value); } elseif (in_array($field, array('stats-hour', 'stats-day', 'stats-week', 'stats-month', 'stats-quarter', 'stats-year', 'report-month', 'report-quarter', 'report-year', 'report-biannual', 'created', 'checked', 'checking', 'emailed'))) { Added: XoopsModules/authkey/trunk/modules/authkey/assets/images/32x32/exec.png =================================================================== (Binary files differ) Index: XoopsModules/authkey/trunk/modules/authkey/assets/images/32x32/exec.png =================================================================== --- XoopsModules/authkey/trunk/modules/authkey/assets/images/32x32/exec.png 2018-06-29 01:28:30 UTC (rev 13379) +++ XoopsModules/authkey/trunk/modules/authkey/assets/images/32x32/exec.png 2018-06-29 09:09:55 UTC (rev 13380) Property changes on: XoopsModules/authkey/trunk/modules/authkey/assets/images/32x32/exec.png ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Added: XoopsModules/authkey/trunk/modules/authkey/assets/images/32x32/stats.png =================================================================== (Binary files differ) Index: XoopsModules/authkey/trunk/modules/authkey/assets/images/32x32/stats.png =================================================================== --- XoopsModules/authkey/trunk/modules/authkey/assets/images/32x32/stats.png 2018-06-29 01:28:30 UTC (rev 13379) +++ XoopsModules/authkey/trunk/modules/authkey/assets/images/32x32/stats.png 2018-06-29 09:09:55 UTC (rev 13380) Property changes on: XoopsModules/authkey/trunk/modules/authkey/assets/images/32x32/stats.png ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Modified: XoopsModules/authkey/trunk/modules/authkey/class/apis.php =================================================================== --- XoopsModules/authkey/trunk/modules/authkey/class/apis.php 2018-06-29 01:28:30 UTC (rev 13379) +++ XoopsModules/authkey/trunk/modules/authkey/class/apis.php 2018-06-29 09:09:55 UTC (rev 13380) @@ -178,6 +178,216 @@ return $space . implode("\n".$space, $return); } + function getNextStatsType() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-hour` ASC LIMIT 1"; + $hour = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-day` ASC LIMIT 1"; + $day = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-week` ASC LIMIT 1"; + $week = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-month` ASC LIMIT 1"; + $month = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-quarter` ASC LIMIT 1"; + $quarter = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-year` ASC LIMIT 1"; + $year = $this->db->fetchArray($this->db->queryF($sql)); + + if ($hour['stats-hour'] >= $day['stats-day']) + if ($day['stats-day'] >= $week['stats-week']) + if ($week['stats-week'] >= $month['stats-month']) + if ($month['stats-month'] >= $quarter['stats-quarter']) + if ($quarter['stats-quarter'] >= $year['stats-year']) + return _MI_AUTHKEY_PERIODICALLY_YEAR; + else + return _MI_AUTHKEY_PERIODICALLY_QUARTER; + else + return _MI_AUTHKEY_PERIODICALLY_MONTH; + else + return _MI_AUTHKEY_PERIODICALLY_WEEK; + else + return _MI_AUTHKEY_PERIODICALLY_DAY; + else + return _MI_AUTHKEY_PERIODICALLY_HOUR; + } + + function getNextStatsName() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-hour` ASC LIMIT 1"; + $hour = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-day` ASC LIMIT 1"; + $day = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-week` ASC LIMIT 1"; + $week = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-month` ASC LIMIT 1"; + $month = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-quarter` ASC LIMIT 1"; + $quarter = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-year` ASC LIMIT 1"; + $year = $this->db->fetchArray($this->db->queryF($sql)); + + if ($hour['stats-hour'] >= $day['stats-day']) + if ($day['stats-day'] >= $week['stats-week']) + if ($week['stats-week'] >= $month['stats-month']) + if ($month['stats-month'] >= $quarter['stats-quarter']) + if ($quarter['stats-quarter'] >= $year['stats-year']) + return $year['api-name']; + else + return $quarter['api-name']; + else + return $month['api-name']; + else + return $week['api-name']; + else + return $day['api-name']; + else + return $hour['api-name']; + } + + function getNextStatsWhen() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-hour` ASC LIMIT 1"; + $hour = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-day` ASC LIMIT 1"; + $day = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-week` ASC LIMIT 1"; + $week = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-month` ASC LIMIT 1"; + $month = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-quarter` ASC LIMIT 1"; + $quarter = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `stats-year` ASC LIMIT 1"; + $year = $this->db->fetchArray($this->db->queryF($sql)); + + if ($hour['stats-hour'] >= $day['stats-day']) + if ($day['stats-day'] >= $week['stats-week']) + if ($week['stats-week'] >= $month['stats-month']) + if ($month['stats-month'] >= $quarter['stats-quarter']) + if ($quarter['stats-quarter'] >= $year['stats-year']) + return $year['stats-year']; + else + return $quarter['stats-quarter']; + else + return $month['stats-month']; + else + return $week['stats-week']; + else + return $day['stats-day']; + else + return $hour['stats-hour']; + } + + function getNextReportType() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `report-monthly` ASC LIMIT 1"; + $monthly = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `report-halfyear` ASC LIMIT 1"; + $halfyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `report-fullyear` ASC LIMIT 1"; + $fullyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `report-biannual` ASC LIMIT 1"; + $biannual = $this->db->fetchArray($this->db->queryF($sql)); + + if ($monthly['report-monthly'] >= $halfyear['report-halfyear']) + if ($halfyear['report-halfyear'] >= $fullyear['report-fullyear']) + if ($fullyear['report-fullyear'] >= $biannual['report-biannual']) + return _MI_AUTHKEY_PERIODICALLY_BIANNUAL; + else + return _MI_AUTHKEY_PERIODICALLY_FULLYEAR; + else + return _MI_AUTHKEY_PERIODICALLY_HALFYEAR; + else + return _MI_AUTHKEY_PERIODICALLY_MONTH; + } + + function getNextReportName() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `report-monthly` ASC LIMIT 1"; + $monthly = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `report-halfyear` ASC LIMIT 1"; + $halfyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `report-fullyear` ASC LIMIT 1"; + $fullyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `report-biannual` ASC LIMIT 1"; + $biannual = $this->db->fetchArray($this->db->queryF($sql)); + + if ($monthly['report-monthly'] >= $halfyear['report-halfyear']) + if ($halfyear['report-halfyear'] >= $fullyear['report-fullyear']) + if ($fullyear['report-fullyear'] >= $biannual['report-biannual']) + return $biannual['api-name']; + else + return $fullyear['api-name']; + else + return $halfyear['api-name']; + else + return $monthly['api-name']; + } + + function getNextReportWhen() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `report-monthly` ASC LIMIT 1"; + $monthly = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `report-halfyear` ASC LIMIT 1"; + $halfyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `report-fullyear` ASC LIMIT 1"; + $fullyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_apis') . "` ORDER BY `report-biannual` ASC LIMIT 1"; + $biannual = $this->db->fetchArray($this->db->queryF($sql)); + + if ($monthly['report-monthly'] >= $halfyear['report-halfyear']) + if ($halfyear['report-halfyear'] >= $fullyear['report-fullyear']) + if ($fullyear['report-fullyear'] >= $biannual['report-biannual']) + return $biannual['report-biannual']; + else + return $fullyear['report-fullyear']; + else + return $halfyear['report-halfyear']; + else + return $monthly['report-monthly']; + } + + + function getCountStatsEnding($seconds = 0) + { + $criteriahour = new CriteriaCompo(new Criteria('`stats-hour`', time() - $seconds, ">=")); + $criteriahour->add(new Criteria('`stats-hour`', time(), "<=")); + $criteriaday = new CriteriaCompo(new Criteria('`stats-day`', time() - $seconds, ">=")); + $criteriaday->add(new Criteria('`stats-day`', time(), "<=")); + $criteriaweek = new CriteriaCompo(new Criteria('`stats-week`', time() - $seconds, ">=")); + $criteriaweek->add(new Criteria('`stats-week`', time(), "<=")); + $criteriamonth = new CriteriaCompo(new Criteria('`stats-month`', time() - $seconds, ">=")); + $criteriamonth->add(new Criteria('`stats-month`', time(), "<=")); + $criteriaquarter = new CriteriaCompo(new Criteria('`stats-quarter`', time() - $seconds, ">=")); + $criteriaquarter->add(new Criteria('`stats-quarter`', time(), "<=")); + $criteriayear = new CriteriaCompo(new Criteria('`stats-year`', time() - $seconds, ">=")); + $criteriayear->add(new Criteria('`stats-year`', time(), "<=")); + $criteria = new CriteriaCompo($criteriahour); + $criteria->add($criteriaday, 'OR'); + $criteria->add($criteriaweek, 'OR'); + $criteria->add($criteriamonth, 'OR'); + $criteria->add($criteriaquarter, 'OR'); + $criteria->add($criteriayear, 'OR'); + return $this->getCount($criteria); + } + + + function getCountReportsEnding($seconds = 0) + { + $criteriamonthly = new CriteriaCompo(new Criteria('`report-monthly`', time() - $seconds, ">=")); + $criteriamonthly->add(new Criteria('`report-monthly`', time(), "<=")); + $criteriahalfyear = new CriteriaCompo(new Criteria('`report-halfyear`', time() - $seconds, ">=")); + $criteriahalfyear->add(new Criteria('`report-halfyear`', time(), "<=")); + $criteriafullyear = new CriteriaCompo(new Criteria('`report-fullyear`', time() - $seconds, ">=")); + $criteriafullyear->add(new Criteria('`report-fullyear`', time(), "<=")); + $criteriabiannual = new CriteriaCompo(new Criteria('`report-biannual`', time() - $seconds, ">=")); + $criteriabiannual->add(new Criteria('`report-biannual`', time(), "<=")); + $criteria = new CriteriaCompo($criteriamonthly); + $criteria->add($criteriahalfyear, 'OR'); + $criteria->add($criteriafullyear, 'OR'); + $criteria->add($criteriabiannual, 'OR'); + return $this->getCount($criteria); + } + function insert(AuthkeyApis $object, $force = true) { global $authkeyModule, $authkeyConfigsList, $authkeyConfigs, $authkeyConfigsOptions; Modified: XoopsModules/authkey/trunk/modules/authkey/class/keys.php =================================================================== --- XoopsModules/authkey/trunk/modules/authkey/class/keys.php 2018-06-29 01:28:30 UTC (rev 13379) +++ XoopsModules/authkey/trunk/modules/authkey/class/keys.php 2018-06-29 09:09:55 UTC (rev 13380) @@ -117,6 +117,228 @@ return $return; } + function getAveragePerUser() + { + $sql = "SELECT count(*) as `count`, `uid` FROM `" . $this->db->prefix('authkey_keys') . "` GROUP BY `uid`"; + $result = $this->db->queryF($sql); + $rows = $sum = 0; + while($row = $this->db->fetchArray($result)) + { + $sum += $row['count']; + $rows++; + } + return $sum / $rows; + } + + function getNextStatsType() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-hour` ASC LIMIT 1"; + $hour = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-day` ASC LIMIT 1"; + $day = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-week` ASC LIMIT 1"; + $week = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-month` ASC LIMIT 1"; + $month = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-quarter` ASC LIMIT 1"; + $quarter = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-year` ASC LIMIT 1"; + $year = $this->db->fetchArray($this->db->queryF($sql)); + + if ($hour['stats-hour'] >= $day['stats-day']) + if ($day['stats-day'] >= $week['stats-week']) + if ($week['stats-week'] >= $month['stats-month']) + if ($month['stats-month'] >= $quarter['stats-quarter']) + if ($quarter['stats-quarter'] >= $year['stats-year']) + return _MI_AUTHKEY_PERIODICALLY_YEAR; + else + return _MI_AUTHKEY_PERIODICALLY_QUARTER; + else + return _MI_AUTHKEY_PERIODICALLY_MONTH; + else + return _MI_AUTHKEY_PERIODICALLY_WEEK; + else + return _MI_AUTHKEY_PERIODICALLY_DAY; + else + return _MI_AUTHKEY_PERIODICALLY_HOUR; + } + + function getNextStatsName() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-hour` ASC LIMIT 1"; + $hour = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-day` ASC LIMIT 1"; + $day = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-week` ASC LIMIT 1"; + $week = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-month` ASC LIMIT 1"; + $month = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-quarter` ASC LIMIT 1"; + $quarter = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-year` ASC LIMIT 1"; + $year = $this->db->fetchArray($this->db->queryF($sql)); + + if ($hour['stats-hour'] >= $day['stats-day']) + if ($day['stats-day'] >= $week['stats-week']) + if ($week['stats-week'] >= $month['stats-month']) + if ($month['stats-month'] >= $quarter['stats-quarter']) + if ($quarter['stats-quarter'] >= $year['stats-year']) + return $year['title']; + else + return $quarter['title']; + else + return $month['title']; + else + return $week['title']; + else + return $day['title']; + else + return $hour['title']; + } + + function getNextStatsWhen() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-hour` ASC LIMIT 1"; + $hour = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-day` ASC LIMIT 1"; + $day = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-week` ASC LIMIT 1"; + $week = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-month` ASC LIMIT 1"; + $month = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-quarter` ASC LIMIT 1"; + $quarter = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `stats-year` ASC LIMIT 1"; + $year = $this->db->fetchArray($this->db->queryF($sql)); + + if ($hour['stats-hour'] >= $day['stats-day']) + if ($day['stats-day'] >= $week['stats-week']) + if ($week['stats-week'] >= $month['stats-month']) + if ($month['stats-month'] >= $quarter['stats-quarter']) + if ($quarter['stats-quarter'] >= $year['stats-year']) + return $year['stats-year']; + else + return $quarter['stats-quarter']; + else + return $month['stats-month']; + else + return $week['stats-week']; + else + return $day['stats-day']; + else + return $hour['stats-hour']; + } + + function getNextReportType() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `report-monthly` ASC LIMIT 1"; + $monthly = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `report-halfyear` ASC LIMIT 1"; + $halfyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `report-fullyear` ASC LIMIT 1"; + $fullyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `report-biannual` ASC LIMIT 1"; + $biannual = $this->db->fetchArray($this->db->queryF($sql)); + + if ($monthly['report-monthly'] >= $halfyear['report-halfyear']) + if ($halfyear['report-halfyear'] >= $fullyear['report-fullyear']) + if ($fullyear['report-fullyear'] >= $biannual['report-biannual']) + return _MI_AUTHKEY_PERIODICALLY_BIANNUAL; + else + return _MI_AUTHKEY_PERIODICALLY_FULLYEAR; + else + return _MI_AUTHKEY_PERIODICALLY_HALFYEAR; + else + return _MI_AUTHKEY_PERIODICALLY_MONTH; + } + + function getNextReportName() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `report-monthly` ASC LIMIT 1"; + $monthly = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `report-halfyear` ASC LIMIT 1"; + $halfyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `report-fullyear` ASC LIMIT 1"; + $fullyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `report-biannual` ASC LIMIT 1"; + $biannual = $this->db->fetchArray($this->db->queryF($sql)); + + if ($monthly['report-monthly'] >= $halfyear['report-halfyear']) + if ($halfyear['report-halfyear'] >= $fullyear['report-fullyear']) + if ($fullyear['report-fullyear'] >= $biannual['report-biannual']) + return $biannual['title']; + else + return $fullyear['title']; + else + return $halfyear['title']; + else + return $monthly['title']; + } + + function getNextReportWhen() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `report-monthly` ASC LIMIT 1"; + $monthly = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `report-halfyear` ASC LIMIT 1"; + $halfyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `report-fullyear` ASC LIMIT 1"; + $fullyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_keys') . "` ORDER BY `report-biannual` ASC LIMIT 1"; + $biannual = $this->db->fetchArray($this->db->queryF($sql)); + + if ($monthly['report-monthly'] >= $halfyear['report-halfyear']) + if ($halfyear['report-halfyear'] >= $fullyear['report-fullyear']) + if ($fullyear['report-fullyear'] >= $biannual['report-biannual']) + return $biannual['report-biannual']; + else + return $fullyear['report-fullyear']; + else + return $halfyear['report-halfyear']; + else + return $monthly['report-monthly']; + } + + function getCountStatsEnding($seconds = 0) + { + $criteriahour = new CriteriaCompo(new Criteria('`stats-hour`', time() - $seconds, ">=")); + $criteriahour->add(new Criteria('`stats-hour`', time(), "<=")); + $criteriaday = new CriteriaCompo(new Criteria('`stats-day`', time() - $seconds, ">=")); + $criteriaday->add(new Criteria('`stats-day`', time(), "<=")); + $criteriaweek = new CriteriaCompo(new Criteria('`stats-week`', time() - $seconds, ">=")); + $criteriaweek->add(new Criteria('`stats-week`', time(), "<=")); + $criteriamonth = new CriteriaCompo(new Criteria('`stats-month`', time() - $seconds, ">=")); + $criteriamonth->add(new Criteria('`stats-month`', time(), "<=")); + $criteriaquarter = new CriteriaCompo(new Criteria('`stats-quarter`', time() - $seconds, ">=")); + $criteriaquarter->add(new Criteria('`stats-quarter`', time(), "<=")); + $criteriayear = new CriteriaCompo(new Criteria('`stats-year`', time() - $seconds, ">=")); + $criteriayear->add(new Criteria('`stats-year`', time(), "<=")); + $criteria = new CriteriaCompo($criteriahour); + $criteria->add($criteriaday, 'OR'); + $criteria->add($criteriaweek, 'OR'); + $criteria->add($criteriamonth, 'OR'); + $criteria->add($criteriaquarter, 'OR'); + $criteria->add($criteriayear, 'OR'); + return $this->getCount($criteria); + } + + + function getCountReportsEnding($seconds = 0) + { + $criteriamonthly = new CriteriaCompo(new Criteria('`report-monthly`', time() - $seconds, ">=")); + $criteriamonthly->add(new Criteria('`report-monthly`', time(), "<=")); + $criteriahalfyear = new CriteriaCompo(new Criteria('`report-halfyear`', time() - $seconds, ">=")); + $criteriahalfyear->add(new Criteria('`report-halfyear`', time(), "<=")); + $criteriafullyear = new CriteriaCompo(new Criteria('`report-fullyear`', time() - $seconds, ">=")); + $criteriafullyear->add(new Criteria('`report-fullyear`', time(), "<=")); + $criteriabiannual = new CriteriaCompo(new Criteria('`report-biannual`', time() - $seconds, ">=")); + $criteriabiannual->add(new Criteria('`report-biannual`', time(), "<=")); + $criteria = new CriteriaCompo($criteriamonthly); + $criteria->add($criteriahalfyear, 'OR'); + $criteria->add($criteriafullyear, 'OR'); + $criteria->add($criteriabiannual, 'OR'); + return $this->getCount($criteria); + } + function insert(AuthkeyKeys $object, $force = true) { global $authkeyModule, $authkeyConfigsList, $authkeyConfigs, $authkeyConfigsOptions; Modified: XoopsModules/authkey/trunk/modules/authkey/class/users.php =================================================================== --- XoopsModules/authkey/trunk/modules/authkey/class/users.php 2018-06-29 01:28:30 UTC (rev 13379) +++ XoopsModules/authkey/trunk/modules/authkey/class/users.php 2018-06-29 09:09:55 UTC (rev 13380) @@ -85,6 +85,231 @@ parent::__construct($db, 'authkey_users', 'AuthkeyUsers', "uid", "uname"); } + function getNextStatsType() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-hour` ASC LIMIT 1"; + $hour = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-day` ASC LIMIT 1"; + $day = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-week` ASC LIMIT 1"; + $week = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-month` ASC LIMIT 1"; + $month = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-quarter` ASC LIMIT 1"; + $quarter = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-year` ASC LIMIT 1"; + $year = $this->db->fetchArray($this->db->queryF($sql)); + + if ($hour['stats-hour'] >= $day['stats-day']) + if ($day['stats-day'] >= $week['stats-week']) + if ($week['stats-week'] >= $month['stats-month']) + if ($month['stats-month'] >= $quarter['stats-quarter']) + if ($quarter['stats-quarter'] >= $year['stats-year']) + return _MI_AUTHKEY_PERIODICALLY_YEAR; + else + return _MI_AUTHKEY_PERIODICALLY_QUARTER; + else + return _MI_AUTHKEY_PERIODICALLY_MONTH; + else + return _MI_AUTHKEY_PERIODICALLY_WEEK; + else + return _MI_AUTHKEY_PERIODICALLY_DAY; + else + return _MI_AUTHKEY_PERIODICALLY_HOUR; + } + + function getNextStatsName() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-hour` ASC LIMIT 1"; + $hour = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-day` ASC LIMIT 1"; + $day = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-week` ASC LIMIT 1"; + $week = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-month` ASC LIMIT 1"; + $month = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-quarter` ASC LIMIT 1"; + $quarter = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-year` ASC LIMIT 1"; + $year = $this->db->fetchArray($this->db->queryF($sql)); + + if ($hour['stats-hour'] >= $day['stats-day']) + if ($day['stats-day'] >= $week['stats-week']) + if ($week['stats-week'] >= $month['stats-month']) + if ($month['stats-month'] >= $quarter['stats-quarter']) + if ($quarter['stats-quarter'] >= $year['stats-year']) + $user = xoops_getHandler('member')->getUser($year['uid']); + else + $user = xoops_getHandler('member')->getUser($quarter['uid']); + else + $user = xoops_getHandler('member')->getUser($month['uid']); + else + $user = xoops_getHandler('member')->getUser($week['uid']); + else + $user = xoops_getHandler('member')->getUser($day['uid']); + else + $user = xoops_getHandler('member')->getUser($hour['uid']); + + if (is_object($user)) + if (strlen($user->getVar('name'))) + return $user->getVar('name') . " (" . $user->getVar('uname') . ")"; + else + return $user->getVar('uname'); + return ''; + } + + function getNextStatsWhen() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-hour` ASC LIMIT 1"; + $hour = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-day` ASC LIMIT 1"; + $day = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-week` ASC LIMIT 1"; + $week = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-month` ASC LIMIT 1"; + $month = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-quarter` ASC LIMIT 1"; + $quarter = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `stats-year` ASC LIMIT 1"; + $year = $this->db->fetchArray($this->db->queryF($sql)); + + if ($hour['stats-hour'] >= $day['stats-day']) + if ($day['stats-day'] >= $week['stats-week']) + if ($week['stats-week'] >= $month['stats-month']) + if ($month['stats-month'] >= $quarter['stats-quarter']) + if ($quarter['stats-quarter'] >= $year['stats-year']) + return $year['stats-year']; + else + return $quarter['stats-quarter']; + else + return $month['stats-month']; + else + return $week['stats-week']; + else + return $day['stats-day']; + else + return $hour['stats-hour']; + } + + function getNextReportType() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `report-monthly` ASC LIMIT 1"; + $monthly = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `report-halfyear` ASC LIMIT 1"; + $halfyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `report-fullyear` ASC LIMIT 1"; + $fullyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `report-biannual` ASC LIMIT 1"; + $biannual = $this->db->fetchArray($this->db->queryF($sql)); + + if ($monthly['report-monthly'] >= $halfyear['report-halfyear']) + if ($halfyear['report-halfyear'] >= $fullyear['report-fullyear']) + if ($fullyear['report-fullyear'] >= $biannual['report-biannual']) + return _MI_AUTHKEY_PERIODICALLY_BIANNUAL; + else + return _MI_AUTHKEY_PERIODICALLY_FULLYEAR; + else + return _MI_AUTHKEY_PERIODICALLY_HALFYEAR; + else + return _MI_AUTHKEY_PERIODICALLY_MONTH; + } + + function getNextReportName() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `report-monthly` ASC LIMIT 1"; + $monthly = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `report-halfyear` ASC LIMIT 1"; + $halfyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `report-fullyear` ASC LIMIT 1"; + $fullyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `report-biannual` ASC LIMIT 1"; + $biannual = $this->db->fetchArray($this->db->queryF($sql)); + + if ($monthly['report-monthly'] >= $halfyear['report-halfyear']) + if ($halfyear['report-halfyear'] >= $fullyear['report-fullyear']) + if ($fullyear['report-fullyear'] >= $biannual['report-biannual']) + $user = xoops_getHandler('member')->getUser($biannual['uid']); + else + $user = xoops_getHandler('member')->getUser($fullyear['uid']); + else + $user = xoops_getHandler('member')->getUser($halfyear['uid']); + else + $user = xoops_getHandler('member')->getUser($monthly['uid']); + + if (is_object($user)) + if (strlen($user->getVar('name'))) + return $user->getVar('name') . " (" . $user->getVar('uname') . ")"; + else + return $user->getVar('uname'); + return ''; + + } + + function getNextReportWhen() + { + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `report-monthly` ASC LIMIT 1"; + $monthly = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `report-halfyear` ASC LIMIT 1"; + $halfyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `report-fullyear` ASC LIMIT 1"; + $fullyear = $this->db->fetchArray($this->db->queryF($sql)); + $sql = "SELECT * FROM `" . $this->db->prefix('authkey_users') . "` ORDER BY `report-biannual` ASC LIMIT 1"; + $biannual = $this->db->fetchArray($this->db->queryF($sql)); + + if ($monthly['report-monthly'] >= $halfyear['report-halfyear']) + if ($halfyear['report-halfyear'] >= $fullyear['report-fullyear']) + if ($fullyear['report-fullyear'] >= $biannual['report-biannual']) + return $biannual['report-biannual']; + else + return $fullyear['report-fullyear']; + else + return $halfyear['report-halfyear']; + else + return $monthly['report-monthly']; + } + + + function getCountStatsEnding($seconds = 0) + { + $criteriahour = new CriteriaCompo(new Criteria('`stats-hour`', time() - $seconds, ">=")); + $criteriahour->add(new Criteria('`stats-hour`', time(), "<=")); + $criteriaday = new CriteriaCompo(new Criteria('`stats-day`', time() - $seconds, ">=")); + $criteriaday->add(new Criteria('`stats-day`', time(), "<=")); + $criteriaweek = new CriteriaCompo(new Criteria('`stats-week`', time() - $seconds, ">=")); + $criteriaweek->add(new Criteria('`stats-week`', time(), "<=")); + $criteriamonth = new CriteriaCompo(new Criteria('`stats-month`', time() - $seconds, ">=")); + $criteriamonth->add(new Criteria('`stats-month`', time(), "<=")); + $criteriaquarter = new CriteriaCompo(new Criteria('`stats-quarter`', time() - $seconds, ">=")); + $criteriaquarter->add(new Criteria('`stats-quarter`', time(), "<=")); + $criteriayear = new CriteriaCompo(new Criteria('`stats-year`', time() - $seconds, ">=")); + $criteriayear->add(new Criteria('`stats-year`', time(), "<=")); + $criteria = new CriteriaCompo($criteriahour); + $criteria->add($criteriaday, 'OR'); + $criteria->add($criteriaweek, 'OR'); + $criteria->add($criteriamonth, 'OR'); + $criteria->add($criteriaquarter, 'OR'); + $criteria->add($criteriayear, 'OR'); + return $this->getCount($criteria); + } + + + function getCountReportsEnding($seconds = 0) + { + $criteriamonthly = new CriteriaCompo(new Criteria('`report-monthly`', time() - $seconds, ">=")); + $criteriamonthly->add(new Criteria('`report-monthly`', time(), "<=")); + $criteriahalfyear = new CriteriaCompo(new Criteria('`report-halfyear`', time() - $seconds, ">=")); + $criteriahalfyear->add(new Criteria('`report-halfyear`', time(), "<=")); + $criteriafullyear = new CriteriaCompo(new Criteria('`report-fullyear`', time() - $seconds, ">=")); + $criteriafullyear->add(new Criteria('`report-fullyear`', time(), "<=")); + $criteriabiannual = new CriteriaCompo(new Criteria('`report-biannual`', time() - $seconds, ">=")); + $criteriabiannual->add(new Criteria('`report-biannual`', time(), "<=")); + $criteria = new CriteriaCompo($criteriamonthly); + $criteria->add($criteriahalfyear, 'OR'); + $criteria->add($criteriafullyear, 'OR'); + $criteria->add($criteriabiannual, 'OR'); + return $this->getCount($criteria); + } + function insert(AuthkeyUsers $object, $force = true) { global $authkeyModule, $authkeyConfigsList, $authkeyConfigs, $authkeyConfigsOptions; Modified: XoopsModules/authkey/trunk/modules/authkey/language/english/admin.php =================================================================== --- XoopsModules/authkey/trunk/modules/authkey/language/english/admin.php 2018-06-29 01:28:30 UTC (rev 13379) +++ XoopsModules/authkey/trunk/modules/authkey/language/english/admin.php 2018-06-29 09:09:55 UTC (rev 13380) @@ -18,5 +18,43 @@ */ +// Dashboard Ledger +define('_AM_AUTHKEY_DASHBOARD', 'Dashboard Counts'); +define('_AM_AUTHKEY_LESTATS', 'Next Occuring Statistics'); +define('_AM_AUTHKEY_REPORTING', 'Next Occuring Reporting'); +define('_AM_AUTHKEY_ENDING', 'Number of Ending Items'); +// Dashboard Ledger Items +define('_AM_AUTHKEY_INDEX_APIS', 'Number of API\'s: %s'); +define('_AM_AUTHKEY_INDEX_APIS_AUTHWRITE', 'API\'s Requiring Xoopskey on Write: %s'); +define('_AM_AUTHKEY_INDEX_APIS_AUTHREAD', 'API\'s Requiring Xoopskey on Read: %s'); +define('_AM_AUTHKEY_INDEX_KEYS_NUMBER', 'Number of Xoopskeys/Authkeys: %s'); +define('_AM_AUTHKEY_INDEX_KEYS_ADVERAGE', 'Average number of keys per user: %s'); +define('_AM_AUTHKEY_STATS_KEY_TYPE', 'Next Key Statistics to Occur Type: %s'); +define('_AM_AUTHKEY_STATS_KEY_NAME', 'Next Key Statistics to Occur Name: %s'); +define('_AM_AUTHKEY_STATS_KEY_ENDING', 'When Next Key Statistics is to Occur: %s'); +define('_AM_AUTHKEY_STATS_USER_TYPE', 'Next User Statistics to Occur Type: %s'); +define('_AM_AUTHKEY_STATS_USER_NAME', 'Next User Statistics to Occur Name: %s'); +define('_AM_AUTHKEY_STATS_USER_ENDING', 'When Next User Statistics is to Occur: %s'); +define('_AM_AUTHKEY_STATS_API_TYPE', 'Next API Statistics to Occur Type: %s'); +define('_AM_AUTHKEY_STATS_API_NAME', 'Next API Statistics to Occur Name: %s'); +define('_AM_AUTHKEY_STATS_API_ENDING', 'When Next API Statistics is to Occur: %s'); +define('_AM_AUTHKEY_REPORT_KEY_TYPE', 'Next Key Reporting to Occur Type: %s'); +define('_AM_AUTHKEY_REPORT_KEY_NAME', 'Next Key Reporting to Occur Name: %s'); +define('_AM_AUTHKEY_REPORT_KEY_ENDING', 'When Next Key Reporting is to Occur: %s'); +define('_AM_AUTHKEY_REPORT_USER_TYPE', 'Next User Reporting to Occur Type: %s'); +define('_AM_AUTHKEY_REPORT_USER_NAME', 'Next User Reporting to Occur Name: %s'); +define('_AM_AUTHKEY_REPORT_USER_ENDING', 'When Next User Reporting is to Occur: %s'); +define('_AM_AUTHKEY_REPORT_API_TYPE', 'Next API Reporting to Occur Type: %s'); +define('_AM_AUTHKEY_REPORT_API_NAME', 'Next API Reporting to Occur Name: %s'); +define('_AM_AUTHKEY_REPORT_API_ENDING', 'When Next API Reporting is to Occur: %s'); +define('_AM_AUTHKEY_ENDING_KEY_STATS_WEEKLY', 'Number of Key Statistics Ending this Week: %s'); +define('_AM_AUTHKEY_ENDING_KEY_STATS_DAILY', 'Number of Key Statistics Ending Today: %s'); +define('_AM_AUTHKEY_ENDING_KEY_REPORTS_MONTHLY', 'Number of Key Reports Ending this Month: %s'); +define('_AM_AUTHKEY_ENDING_USER_STATS_WEEKLY', 'Number of User Statistics Ending this Week: %s'); +define('_AM_AUTHKEY_ENDING_USER_STATS_DAILY', 'Number of User Statistics Ending Today: %s'); +define('_AM_AUTHKEY_ENDING_USER_REPORTS_MONTHLY', 'Number of User Reports Ending this Month: %s'); +define('_AM_AUTHKEY_ENDING_API_STATS_WEEKLY', 'Number of API Statistics Ending this Week: %s'); +define('_AM_AUTHKEY_ENDING_API_STATS_DAILY', 'Number of API Statistics Ending Today: %s'); +define('_AM_AUTHKEY_ENDING_API_REPORTS_MONTHLY', 'Number of API Reports Ending this Month: %s'); ?> \ No newline at end of file Modified: XoopsModules/authkey/trunk/modules/authkey/language/english/modinfo.php =================================================================== --- XoopsModules/authkey/trunk/modules/authkey/language/english/modinfo.php 2018-06-29 01:28:30 UTC (rev 13379) +++ XoopsModules/authkey/trunk/modules/authkey/language/english/modinfo.php 2018-06-29 09:09:55 UTC (rev 13380) @@ -36,6 +36,9 @@ define('_MI_AUTHKEY_PERIODICALLY_MONTH', 'Monthly'); define('_MI_AUTHKEY_PERIODICALLY_QUARTER', 'Quarterly'); define('_MI_AUTHKEY_PERIODICALLY_YEAR', 'Yearly'); + define('_MI_AUTHKEY_PERIODICALLY_HALFYEAR', '6 x Monthly'); + define('_MI_AUTHKEY_PERIODICALLY_FULLYEAR', '12 x Monthly'); + define('_MI_AUTHKEY_PERIODICALLY_BIANNUALLY', 'Biannually'); // Periodical Based Constants define('_MI_AUTHKEY_PERIODICAL_HOUR', 'Hour'); @@ -44,6 +47,9 @@ define('_MI_AUTHKEY_PERIODICAL_MONTH', 'Month'); define('_MI_AUTHKEY_PERIODICAL_QUARTER', 'Quarter'); define('_MI_AUTHKEY_PERIODICAL_YEAR', 'Year'); + define('_MI_AUTHKEY_PERIODICAL_HALFYEAR', '6 Months'); + define('_MI_AUTHKEY_PERIODICAL_FULLYEAR', '12 Months'); + define('_MI_AUTHKEY_PERIODICAL_BIANNUALLY', 'Biannual'); // Admin Menu define('_MI_AUTHKEY_ADMENU0','Dashboard'); @@ -71,7 +77,7 @@ define('_MI_AUTHKEY_DELETE_SECONDS','Deleting statistical data when it is!'); define('_MI_AUTHKEY_DELETE_SECONDS_DESC','This is how long statistics are kept in retention on the statistics tabling!'); define('_MI_AUTHKEY_AUTOGENERATED','Auto-generate users 1st Authentication Key'); - define('_MI_AUTHKEY_AUTOGENERATED_DESC','When this is enabled the module will periodically search for users with no authkey/xoopskey allocate and generate them one!'); + define('_MI_AUTHKEY_AUTOGENERATED_DESC','When this is enabled the module will periodically search for users with no authkey/xoopskey allocate and generate them one! <strong><em>Remember to activate this once you have set all your permissions + constraints!</em></strong>'); define('_MI_AUTHKEY_AUTOGENERATED_SECONDS','How often should we search for auto-generating 1st time authkeys'); define('_MI_AUTHKEY_AUTOGENERATED_SECONDS_DESC','This is the total amount of time between queuing for searching for unallocate users for an authkey/xoopskey!'); define('_MI_AUTHKEY_NUMBER_AUTOGENERATED','Number unallocated authkey/xoopskey users to generate'); @@ -179,12 +185,5 @@ define('_MI_AUTHKEY_PERM_EMAILOWNER12MONTHLY_DESC', 'Email Yearly Key Owner\'s *.csv Report'); define('_MI_AUTHKEY_PERM_EMAILOWNER24MONTHLY_DESC', 'Email Biannual Key Owner\'s *.csv Report'); - // MENUs - define('_MI_AUTHKEY_ADMENU0','Dashboard'); - define('_MI_AUTHKEY_ADMENU8','About XCentre'); - - // MENU ICONS?IMAGES - define('_MI_AUTHKEY_ADMENU0_ICON','../../Frameworks/moduleclasses/icons/32/home.png'); - define('_MI_AUTHKEY_ADMENU8_ICON','../../Frameworks/moduleclasses/icons/32/about.png'); ?> \ No newline at end of file Modified: XoopsModules/authkey/trunk/modules/authkey/xoops_version.php =================================================================== --- XoopsModules/authkey/trunk/modules/authkey/xoops_version.php 2018-06-29 01:28:30 UTC (rev 13379) +++ XoopsModules/authkey/trunk/modules/authkey/xoops_version.php 2018-06-29 09:09:55 UTC (rev 13380) @@ -170,7 +170,7 @@ $modversion['config'][$i]['description'] = "_MI_AUTHKEY_AUTOGENERATED_DESC"; $modversion['config'][$i]['formtype'] = 'yesno'; $modversion['config'][$i]['valuetype'] = 'int'; -$modversion['config'][$i]['default'] = true; +$modversion['config'][$i]['default'] = false; $i++; $modversion['config'][$i]['name'] = 'auto-generate-seconds'; |