+// Get login_failures number from administrator's login name
+function getAdminLoginFailures ($adminId) {
+ // Admin login should not be empty
+ if (empty($adminId)) {
+ debug_report_bug(__FUNCTION__, __LINE__, 'adminId is empty.');
+ } // END - if
+
+ // By default no admin is found
+ $data['login_failures'] = -1;
+
+ // Check cache
+ if (isset($GLOBALS['cache_array']['admin']['login_failures'][$adminId])) {
+ // Use it if found to save SQL queries
+ $data['login_failures'] = $GLOBALS['cache_array']['admin']['login_failures'][$adminId];
+
+ // Update cache hits
+ incrementStatsEntry('cache_hits');
+ } elseif (!isExtensionActive('cache')) {
+ // Load from database
+ $result = SQL_QUERY_ESC("SELECT `login_failures` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `id`=%s LIMIT 1",
+ array($adminId), __FUNCTION__, __LINE__);
+
+ // Do we have an entry?
+ if (SQL_NUMROWS($result) == 1) {
+ // Get it
+ $data = SQL_FETCHARRAY($result);
+ } // END - if
+
+ // Free result
+ SQL_FREERESULT($result);
+ }
+
+ // Return the login_failures
+ return $data['login_failures'];
+}
+
+// Get last_failure number from administrator's login name
+function getAdminLastFailure ($adminId) {
+ // Admin login should not be empty
+ if (empty($adminId)) {
+ debug_report_bug(__FUNCTION__, __LINE__, 'adminId is empty.');
+ } // END - if
+
+ // By default no admin is found
+ $data['last_failure'] = -1;
+
+ // Check cache
+ if (isset($GLOBALS['cache_array']['admin']['last_failure'][$adminId])) {
+ // Use it if found to save SQL queries
+ $data['last_failure'] = $GLOBALS['cache_array']['admin']['last_failure'][$adminId];
+
+ // Update cache hits
+ incrementStatsEntry('cache_hits');
+ } elseif (!isExtensionActive('cache')) {
+ // Load from database
+ $result = SQL_QUERY_ESC("SELECT UNIX_TIMESTAMP(`last_failure`) AS `last_failure` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `id`=%s LIMIT 1",
+ array($adminId), __FUNCTION__, __LINE__);
+
+ // Do we have an entry?
+ if (SQL_NUMROWS($result) == 1) {
+ // Get it
+ $data = SQL_FETCHARRAY($result);
+ } // END - if
+
+ // Free result
+ SQL_FREERESULT($result);
+ }
+
+ // Return the last_failure
+ return $data['last_failure'];
+}
+
+//-----------------------------------------------------------------------------
+// Wrapper functions
+//-----------------------------------------------------------------------------
+
+// Wrapper function to check wether expert setting warning is enabled
+function isAdminsExpertWarningEnabled () {
+ return (getAminsExpertWarning() == 'Y');
+}
+