+// Get login_failures number from administrator's login name
+function getAdminLoginFailures ($adminId) {
+ // Admin login should not be empty
+ if (empty($adminId)) {
+ reportBug(__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 = sqlQueryEscaped('SELECT `login_failures` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `id`=%s LIMIT 1',
+ array($adminId), __FUNCTION__, __LINE__);
+
+ // Is there an entry?
+ if (sqlNumRows($result) == 1) {
+ // Get it
+ $data = sqlFetchArray($result);
+ } // END - if
+
+ // Free result
+ sqlFreeResult($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)) {
+ reportBug(__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 = sqlQueryEscaped('SELECT UNIX_TIMESTAMP(`last_failure`) AS `last_failure` FROM `{?_MYSQL_PREFIX?}_admins` WHERE `id`=%s LIMIT 1',
+ array($adminId), __FUNCTION__, __LINE__);
+
+ // Is there an entry?
+ if (sqlNumRows($result) == 1) {
+ // Get it
+ $data = sqlFetchArray($result);
+ } // END - if
+
+ // Free result
+ sqlFreeResult($result);
+ }
+
+ // Return the last_failure
+ return $data['last_failure'];
+}
+
+//-----------------------------------------------------------------------------
+// Wrapper functions
+//-----------------------------------------------------------------------------
+
+// Wrapper function to check whether expert setting warning is enabled
+function isAdminsExpertWarningEnabled () {
+ return (getAminsExpertWarning() == 'Y');
+}
+
+// Wrapper function to check whether expert setting is enabled
+function isAdminsExpertSettingEnabled () {
+ return (getAminsExpertSettings() == 'Y');
+}
+