loadCacheFile('admin')) && ($GLOBALS['cache_instance']->extensionVersionMatches('admins'))) { // Load cache $GLOBALS['cache_array']['admin'] = $GLOBALS['cache_instance']->getArrayFromCache(); // Check if valid if ((isset($GLOBALS['cache_array']['admin']['login'])) && (is_array($GLOBALS['cache_array']['admin']['login'])) && (is_array($GLOBALS['cache_array']['admin']['admin_id']))) { // Check count if (count($GLOBALS['cache_array']['admin']['login']) == count($GLOBALS['cache_array']['admin']['admin_id'])) { // Rewrite the cache $admins = array(); foreach ($GLOBALS['cache_array']['admin']['login'] as $idx => $admin) { // Rewrite all entries foreach ($GLOBALS['cache_array']['admin'] as $key => $entry) { // Do we have login or regular entries? if ($key == 'admin_id') { // Admin id, so use login $admins[$key][$GLOBALS['cache_array']['admin']['login'][$idx]] = $entry[$idx]; } else { // Regular entry so use id $admins[$key][$GLOBALS['cache_array']['admin']['admin_id'][$idx]] = $entry[$idx]; } } // END - foreach } // END - foreach // Transfer back to cache array and remove dummy $GLOBALS['cache_array']['admin'] = $admins; unset($admins); } else { // Nope, cache file is corrupted! $GLOBALS['cache_instance']->removeCacheFile(); unset($GLOBALS['cache_array']['admin']); } } else { // Nope, cache file is corrupted! $GLOBALS['cache_instance']->removeCacheFile(); unset($GLOBALS['cache_array']['admin']); } } elseif (isHtmlOutputMode()) { // Create cache file $GLOBALS['cache_instance']->init(); // Load every data from DB to cache file $add = runFilterChain('sql_admin_extra_data'); // Query the database about this $result = SQL_QUERY('SELECT `id` AS admin_id, `login`,`password`,`email`' . $add . ' FROM `{?_MYSQL_PREFIX?}_admins` ORDER BY `login` ASC', __FILE__, __LINE__); while ($row = SQL_FETCHARRAY($result)) { // Save row $GLOBALS['cache_instance']->addRow($row); } // END - while // Free memory SQL_FREERESULT($result); // Close cache $GLOBALS['cache_instance']->storeExtensionVersion('admins'); $GLOBALS['cache_instance']->finalize(); } // Next cached table are the admins_acls... if (isExtensionInstalledAndNewer('admins', '0.3')) { // Check for cache file if (($GLOBALS['cache_instance']->loadCacheFile('admin_acls')) && ($GLOBALS['cache_instance']->extensionVersionMatches('admins'))) { // Load referal system from cache $GLOBALS['cache_array']['admin_acls'] = $GLOBALS['cache_instance']->getArrayFromCache(); // Check if valid if ((isset($GLOBALS['cache_array']['admin_acls']['admin_id'])) && (is_array($GLOBALS['cache_array']['admin_acls']['admin_id'])) && (isset($GLOBALS['cache_array']['admin_acls']['access_mode'])) && (is_array($GLOBALS['cache_array']['admin_acls']['access_mode']))) { // Check count if (count($GLOBALS['cache_array']['admin_acls']['admin_id']) == count($GLOBALS['cache_array']['admin_acls']['access_mode'])) { // Rewrite the cache $admins = array(); foreach ($GLOBALS['cache_array']['admin_acls']['admin_id'] as $idx => $admin) { // Rewrite all entries foreach ($GLOBALS['cache_array']['admin_acls'] as $key => $entry) { // Do we have 'admin_id' or regular entries? if ($key != 'admin_id') { // Regular entry so use id $admins[$key][$GLOBALS['cache_array']['admin_acls']['admin_id'][$idx]][] = $entry[$idx]; } // END - if } // END - foreach } // END - foreach // Transfer back to cache array and remove dummy $GLOBALS['cache_array']['admin_acls'] = $admins; unset($admins); } else { // Nope, cache file is corrupted! $GLOBALS['cache_instance']->removeCacheFile(); unset($GLOBALS['cache_array']['admin_acls']); } } elseif (count($GLOBALS['cache_array']['admin_acls']) > 0) { // Nope, cache file is corrupted! $GLOBALS['cache_instance']->removeCacheFile(); unset($GLOBALS['cache_array']['admin_acls']); } elseif (isDebugModeEnabled()) { // This may drive a lot messages to the logfile //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'No entry found in admin_acls to rewrite.'); } } elseif (isHtmlOutputMode()) { // Create cache file here $GLOBALS['cache_instance']->init(); // Load all admins and their data $result = SQL_QUERY('SELECT * FROM `{?_MYSQL_PREFIX?}_admins_acls` ORDER BY `admin_id` ASC, `action_menu` ASC, `what_menu` ASC', __FILE__, __LINE__); // Add all rows while ($content = SQL_FETCHARRAY($result)) { // Add row to cache file $GLOBALS['cache_instance']->addRow($content); } // END - while // Free memory SQL_FREERESULT($result); // Close cache $GLOBALS['cache_instance']->storeExtensionVersion('admins'); $GLOBALS['cache_instance']->finalize(); } } // END - if // [EOF] ?>