server_info(); $max_execution_time = function_exists('ini_get') ? @ini_get('max_execution_time') : @get_cfg_var('max_execution_time'); $upload_max_filesize = function_exists('ini_get') ? @ini_get('upload_max_filesize') : @get_cfg_var('upload_max_filesize'); $post_max_size = function_exists('ini_get') ? @ini_get('post_max_size') : @get_cfg_var('post_max_size'); $memory_limit = function_exists('ini_get') ? @ini_get('memory_limit') : @get_cfg_var('memory_limit'); $s_last_google = $stat_last_google == 0 ? '[ ? ]' : kleeja_date($stat_last_google); $s_google_num = $stat_google_num; $s_last_bing = $stat_last_bing == 0 ? '[ ? ]' : kleeja_date($stat_last_bing); $s_bing_num = $stat_bing_num; $usernamelang = sprintf($lang['KLEEJA_CP_W'], $username); $current_year = date('Y'); $startBoxes = [ 'notifications' => ['title' => $lang['NOTIFICATIONS'], 'hidden' => (int) adm_is_start_box_hidden('notifications')], 'statsBoxes' => ['title' => $lang['STATS_BOXES'], 'hidden' => (int) adm_is_start_box_hidden('statsBoxes')], 'lastVisitActions' => ['title' => $lang['LAST_VISIT'], 'hidden' => (int) adm_is_start_box_hidden('lastVisitActions')], 'statsChart' => ['title' => $lang['STATS'], 'hidden' => (int) adm_is_start_box_hidden('statsChart')], 'hurryActions' => ['title' => $lang['HURRY_HURRY'], 'hidden' => (int) adm_is_start_box_hidden('hurryActions')], 'extraStats' => ['title' => $lang['OTHER_INFO'], 'hidden' => (int) adm_is_start_box_hidden('extraStats')], ]; $extra_adm_start_html = ''; //size board by percent $per = $stat_sizes / ($config['total_size'] * 1048576); $per1 = round($per*100, 2); $per1 = $per1 >= 100 ? 100 : $per1; //ppl must know about kleeja version! $kleeja_version = '' . KLEEJA_VERSION . ''; //admin messages system $ADM_NOTIFICATIONS = []; //useing IE6 ! and he is admin ? omg ! $u_agent = ! empty($_SERVER['HTTP_USER_AGENT']) ? htmlspecialchars((string) strtolower($_SERVER['HTTP_USER_AGENT'])) : (function_exists('getenv') ? getenv('HTTP_USER_AGENT') : ''); if (is_browser('ie6, ie8, ie7')) { $ADM_NOTIFICATIONS['IE6'] = ['id' => 'IE6', 'msg_type'=> 'error', 'title'=> $lang['NOTE'], 'msg'=> $lang['ADMIN_USING_IE6']]; } //if upgrading from 1rc6 to 1.0, some files must be deleted ! if (file_exists(PATH . 'includes/adm/files.php') || file_exists(PATH . 'admin.php')) { $ADM_NOTIFICATIONS['old_files'] = ['id' => 'old_files', 'msg_type'=> 'info', 'title'=> $lang['NOTE'], 'msg'=> $lang['ADM_UNWANTED_FILES']]; } //if html url is enabled but .htaccess is not available in the root dir ! if (! file_exists(PATH . '.htaccess') && (int) $config['mod_writer'] == 1) { $ADM_NOTIFICATIONS['htmlurlshtaccess'] = ['id' => 'htmlurlshtaccess', 'msg_type'=> 'info', 'title'=> $lang['NOTE'], 'msg'=> $lang['HTML_URLS_ENABLED_NO_HTCC']]; } //updating $v = @unserialize($config['new_version']); $new_version = isset($v['version_number']) ? $v['version_number'] : ''; if (version_compare(strtolower(KLEEJA_VERSION), strtolower($new_version), '<')) { $ADM_NOTIFICATIONS['up_ver_klj'] = [ 'id' => 'up_ver_klj',//this not so important row 'msg_type'=> 'error', 'title'=> $lang['R_CHECK_UPDATE'], 'msg' => sprintf($lang['UPDATE_NOW_S'], KLEEJA_VERSION, $v['version_number']) . '
' . 'kleeja.net' ]; is_array($plugin_run_result = Plugins::getInstance()->run('admin_update_now', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook } is_array($plugin_run_result = Plugins::getInstance()->run('default_admin_page', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook //check upload_max_filesize if (! empty($d_groups) && is_array($d_groups)) { $biggest_size = 0; foreach ($d_groups as $gid => $gdata) { if (! empty($d_groups[$gid]['exts']) && is_array($d_groups[$gid]['exts'])) { $u_e_s = $d_groups[$gid]['exts']; arsort($u_e_s); if (! empty($u_e_s)) { $current_size = array_shift($u_e_s); $biggest_size = $current_size > $biggest_size ? $current_size : $biggest_size; } } } if (strpos($upload_max_filesize, 'M') !== false) { $upload_max_filesize_s = ((int) trim(str_replace('M', '', $upload_max_filesize))) * 1048576; } elseif (strpos($upload_max_filesize, 'G') !== false) { $upload_max_filesize_s = ((int) trim(str_replace('G', '', $upload_max_filesize))) * 1073741824; } else { $upload_max_filesize_s = $upload_max_filesize; } if (! empty($upload_max_filesize) && $upload_max_filesize_s < $biggest_size) { $ADM_NOTIFICATIONS['file_size_ini_low'] = [ 'id' => 'file_size_ini_low', 'msg_type'=> 'info', 'title'=> $lang['NOTE'], 'msg' => sprintf($lang['PHPINI_FILESIZE_SMALL'], readable_size($biggest_size), readable_size($upload_max_filesize_s)) ]; } //check post_max_size if (strpos($post_max_size, 'M') !== false) { $post_max_size_s = ((int) trim(str_replace('M', '', $post_max_size))) * 1048576; } elseif (strpos($post_max_size, 'G') !== false) { $post_max_size_s = ((int) trim(str_replace('G', '', $post_max_size))) * 1073741824; } else { $post_max_size_s = $post_max_size; } $post_max_size_s_must_be = ($config['filesnum'] * $biggest_size) + 5242880;//+ 5 mega to make sure it's ok if (! empty($post_max_size) && $post_max_size_s < $post_max_size_s_must_be) { $ADM_NOTIFICATIONS['post_m_size_ini_low'] = [ 'id' => 'post_m_size_ini_low', 'msg_type'=> 'info', 'title'=> $lang['NOTE'], 'msg' => sprintf($lang['PHPINI_MPOSTSIZE_SMALL'], $config['filesnum'], readable_size($post_max_size_s_must_be)) ]; } } // // if 10 days, lets check again ! // rev: let's say cache is not refreshed, so we will redirect alots of time, // so update_done will be good solution // if ((empty($v['last_check']) || time() - $v['last_check'] > 3600 * 24 * 10) && ! ig('update_done')) { redirect(basename(ADMIN_PATH) . '?cp=p_check_update&show_msg=1'); $SQL->close(); exit; } //if config not safe if (function_exists('fileperms') && ! defined('KLEEJA_NO_CONFIG_CHECK') && strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') { if ((bool) (@fileperms(PATH . KLEEJA_CONFIG_FILE) & 0x0002)) { $ADM_NOTIFICATIONS['config_perm'] = ['id' => 'config_perm', 'msg_type'=> 'info', 'title'=> $lang['NOTE'], 'msg'=> $lang['CONFIG_WRITEABLE']]; } } //no htaccess if (is_dir(PATH . $config['foldername']) && ! file_exists(PATH . $config['foldername'] . '/.htaccess')) { $ADM_NOTIFICATIONS['htaccess_u'] = ['id' => 'htaccess_u', 'msg_type'=> 'error', 'title'=> $lang['WARN'], 'msg'=> sprintf($lang['NO_HTACCESS_DIR_UP'], $config['foldername'])]; } if (is_dir(PATH . $config['foldername']) && ! file_exists(PATH . $config['foldername'] . '/thumbs/.htaccess')) { $ADM_NOTIFICATIONS['htaccess_t'] = ['id' => 'htaccess_t', 'msg_type'=> 'error', 'title'=> $lang['WARN'], 'msg'=> sprintf($lang['NO_HTACCESS_DIR_UP_THUMB'], $config['foldername'] . '/thumbs')]; } //there is cleaning files process now if ((int) $config['klj_clean_files_from'] > 0) { $ADM_NOTIFICATIONS['klj_clean_files'] = ['id' => 'klj_clean_files', 'msg_type'=> 'info', 'title'=> $lang['NOTE'], 'msg'=> $lang['T_CLEANING_FILES_NOW']]; } //if there is no thumbs folder if (is_dir(PATH . $config['foldername']) && ! file_exists(PATH . $config['foldername'] . '/thumbs') && (int) $config['thumbs_imgs'] != 0) { $ADM_NOTIFICATIONS['no_thumbs'] = ['id' => 'no_thumbs', 'msg_type'=> 'info', 'title'=> $lang['NOTE'], 'msg'=> sprintf($lang['NO_THUMB_FOLDER'], PATH . $config['foldername'] . '/thumbs')]; } //is there copyrights for translator ? $translator_copyrights = isset($lang['S_TRANSLATED_BY']) ? $lang['S_TRANSLATED_BY'] : false; //secondary menu $go_menu = [ 'general' => ['name'=>$lang['GENERAL_STAT'], 'link'=> basename(ADMIN_PATH) . '?cp=start&smt=general', 'goto'=>'general', 'current'=> $current_smt == 'general'], 'other' => ['name'=>$lang['OTHER_INFO'], 'link'=> basename(ADMIN_PATH) . '?cp=start&smt=other', 'goto'=>'other', 'current'=> $current_smt == 'other'], 'team' => ['name'=>$lang['KLEEJA_TEAM'], 'link'=> basename(ADMIN_PATH) . '?cp=start&smt=team', 'goto'=>'team', 'current'=> $current_smt == 'team'], 'kj_news' => ['name'=> $lang['KJ_TWEETS'], 'link'=> basename(ADMIN_PATH) . '?cp=start&smt=kj_tweets', 'goto'=>'kj_tweets', 'current'=> $current_smt == 'kj_tweets'], ]; // is there a last visit of images and files ? $files_last_visit = filter_exists('f_lastvisit', 'filter_uid', 'lastvisit', $userinfo['id']) ? get_filter('f_lastvisit', 'lastvisit', true, 'filter_uid', $userinfo['id']) : false; $image_last_visit = filter_exists('i_lastvisit', 'filter_uid', 'lastvisit', $userinfo['id']) ? get_filter('i_lastvisit', 'lastvisit', true, 'filter_uid', $userinfo['id']) : false; //hurry, hurry section, get languages $hurry_lang_link = basename(ADMIN_PATH) . '?cp=g_users&smt=general&smt=group_data&' . $GET_FORM_KEY . '&lang_change='; $hurry_langs_list = ''; if ($dh = @opendir(PATH . 'lang')) { while (($file = @readdir($dh)) !== false) { if (strpos($file, '.') === false && $file != '..' && $file != '.') { $hurry_langs_list .= ''; } } @closedir($dh); } $hurry_groups_list = ''; $hurry_groups_list .= ''; foreach ($d_groups as $id=>$ddt) { $hurry_groups_list .= ''; } //hurry, hurry section, links $del_cache_link = basename(ADMIN_PATH) . '?cp=r_repair&case=clearc&' . kleeja_add_form_key_get('REPAIR_FORM_KEY'); // get stats filter so we can draw a chart for the user $stats_chart = false; $cf_query = [ 'SELECT' => 'f.filter_uid, f.filter_value, f.filter_time', 'FROM' => "{$dbprefix}filters f", 'WHERE' => "f.filter_type = 'stats_for_acp'", 'ORDER BY' => 'f.filter_time DESC', ]; $cf_result = $SQL->build($cf_query); $cf_num = $SQL->num_rows($cf_result); if ($cf_num > 3) { $stats_chart = 'arrayOfDataMulti = new Array('; $comma = false; //get currently right now stats $prv_files = get_actual_stats('files'); $prev_imgs = get_actual_stats('imgs'); $prev_date = date('d-n-Y'); $todayIsGone = false; while ($row=$SQL->fetch_array($cf_result)) { //jump today if ($prev_date == $row['filter_uid']) { continue; } //get this row data list($s_files, $s_imgs, $s_sizes) = explode(':', $row['filter_value']); $t_files = $prv_files - $s_files; $t_imgs = $prev_imgs - $s_imgs; if (date('d-n-Y') == $prev_date) { $day = $lang['TODAY'] . ' ~ ' . $lang['NOW']; if ($todayIsGone) { continue; } $todayIsGone = true; } else { $day = $prev_date; } $stats_chart .= ($comma ? ',': '') . "[[$t_files,$t_imgs],'" . ($cf_num > 6 ? str_replace(date('-Y'), '', $day) : $day) . "']"; $comma = true; $prv_files = $s_files; $prev_imgs = $s_imgs; $prev_date = $row['filter_uid']; } $stats_chart .= ');'; is_array($plugin_run_result = Plugins::getInstance()->run('stats_start_admin', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook $SQL->freeresult($cf_result); //clean old chart stats if ($cf_num > 10) { $query_del = [ 'DELETE' => "{$dbprefix}filters", 'WHERE' => "filter_type = 'stats_for_acp' AND filter_time < " . (time() - (3600 * 24 * 10)) ]; $SQL->build($query_del); } }