run('begin_go_page', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook switch($current_go_case) { // //Page of allowed extensions for all groups // case 'exts' : case 'guide' : $stylee = 'guide'; $titlee = $lang['GUIDE']; $tgroups = $ttgroups = array(); $tgroups = array_keys($d_groups); $same_group= $rando = 0; foreach($tgroups as $gid) { #if this is admin group, dont show it public if($gid == 1 && (int) $userinfo['group_id'] != 1) { continue; } #TODO: if no exts, show that foreach($d_groups[$gid]['exts'] as $ext=>$size) { $ttgroups[] = array( 'ext' => $ext, 'size' => readable_size($size), 'group' => $gid, 'group_name'=> str_replace(array('{lang.ADMINS}', '{lang.USERS}', '{lang.GUESTS}'), array($lang['ADMINS'], $lang['USERS'], $lang['GUESTS']), $d_groups[$gid]['data']['group_name']), 'most_firstrow'=> $same_group == 0 ? true : false, 'firstrow'=> $same_group ==0 or $same_group != $gid ? true : false, 'rando' => $rando, ); $same_group = $gid; } $rando = $rando ? 0 : 1; } is_array($plugin_run_result = Plugins::getInstance()->run('guide_go_page', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook break; // //Page of reporting // case 'report' : if(!user_can('access_report')) { is_array($plugin_run_result = Plugins::getInstance()->run('user_cannot_access_report', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook kleeja_info($lang['HV_NOT_PRVLG_ACCESS']); } //page info $stylee = 'report'; $titlee = $lang['REPORT']; $id_d = ig('id') ? g('id', 'int') : (ip('rid') ? p('rid', 'int') : 0); $url_id = (int) $config['mod_writer'] == 1 ? $config['siteurl'] . 'download' . $id_d . '.html' : $config['siteurl'] . 'do.php?id=' . $id_d; $action = $config['siteurl'] . 'go.php?go=report'; $H_FORM_KEYS = kleeja_add_form_key('report'); $NOT_USER = !$usrcp->name() ? true : false; $s_url = p('surl'); #Does this file exists ? if(ig('id') || ip('rid')) { $query = array( 'SELECT' => 'f.real_filename, f.name', 'FROM' => "{$dbprefix}files f", 'WHERE' => 'id=' . $id_d ); is_array($plugin_run_result = Plugins::getInstance()->run('qr_report_go_id', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook $result = $SQL->build($query); if ($SQL->num_rows($result)) { $row = $SQL->fetch_array($result); $filename_for_show = $row['real_filename'] == '' ? $row['name'] : $row['real_filename']; } else { is_array($plugin_run_result = Plugins::getInstance()->run('not_exists_qr_report_go_id', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook kleeja_err($lang['FILE_NO_FOUNDED']); } $SQL->freeresult($result); } //no error yet $ERRORS = false; //_post $t_rname = p('rname'); $t_rmail = p('rmail'); $t_rtext = p('rtext'); if (!ip('submit')) { // first is_array($plugin_run_result = Plugins::getInstance()->run('no_submit_report_go_page', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook } else { $ERRORS = array(); is_array($plugin_run_result = Plugins::getInstance()->run('submit_report_go_page', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook //check for form key if(!kleeja_check_form_key('report')) { $ERRORS['form_key'] = $lang['INVALID_FORM_KEY']; } if(!kleeja_check_captcha()) { $ERRORS['captcha'] = $lang['WRONG_VERTY_CODE']; } if ((empty(p('rname')) && $NOT_USER)) { $ERRORS['rname'] = $lang['EMPTY_FIELDS'] . ' : ' . (empty(p('rname')) && $NOT_USER ? ' [ ' . $lang['YOURNAME'] . ' ] ' : '') . (empty(p('rurl')) ? ' [ ' . $lang['URL'] . ' ] ': ''); } if(ip('surl') && trim(p('surl')) == '') { $ERRORS['surl'] = $lang['EMPTY_FIELDS'] . ' : [ ' . $lang['URL_F_FILE'] . ' ]'; } if (ip('rmail') && !preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i", trim(strtolower(p('rmail')))) && $NOT_USER) { $ERRORS['rmail'] = $lang['WRONG_EMAIL']; } if (strlen(p('rtext')) > 300) { $ERRORS['rtext'] = $lang['NO_ME300RES']; } if (!ip('surl') && !ip('rid')) { $ERRORS['rid'] = $lang['NO_ID']; } is_array($plugin_run_result = Plugins::getInstance()->run('submit_report_go_page2', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook //no error , lets do process if(empty($ERRORS)) { $name = $NOT_USER ? (string) $SQL->escape(p('rname')) : $usrcp->name(); $text = (string) $SQL->escape(p('rtext')); $mail = $NOT_USER ? (string) strtolower(trim($SQL->escape(p('rmail')))) : $usrcp->mail(); $url = (string) ip('rid') ? $SQL->escape($url_id) : $SQL->real_escape(p('surl')); $time = (int) time(); $rid = ip('rid') ? 0 : p('rid', 'int'); $ip = get_ip(); $insert_query = array( 'INSERT' => 'name ,mail ,url ,text ,time ,ip', 'INTO' => "{$dbprefix}reports", 'VALUES' => "'$name', '$mail', '$url', '$text', $time, '$ip'" ); is_array($plugin_run_result = Plugins::getInstance()->run('qr_insert_new_report', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook $SQL->build($insert_query); //update number of reports $update_query = array( 'UPDATE' => "{$dbprefix}files", 'SET' => 'report=report+1', 'WHERE' => 'id=' . $rid, ); is_array($plugin_run_result = Plugins::getInstance()->run('qr_update_no_file_report', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook $SQL->build($update_query); $to = $config['sitemail2']; //administrator e-mail $message = $text . "\n\n\n\n" . 'URL :' . $url . ' - TIME : ' . date('d-m-Y h:i a', $time) . ' - IP:' . $ip; $subject = $lang['REPORT']; send_mail($to, $message, $subject, $mail, $name); kleeja_info($lang['THNX_REPORTED']); } } is_array($plugin_run_result = Plugins::getInstance()->run('report_go_page', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook break; // //Pages of rules // case 'rules' : $stylee = 'rules'; $titlee = $lang['RULES']; $contents = strlen($ruless) > 3 ? stripslashes($ruless) : $lang['NO_RULES_NOW']; is_array($plugin_run_result = Plugins::getInstance()->run('rules_go_page', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook break; // //Page of call-us // case 'call' : //Not allowed to access this page ? if (!user_can('access_call')) { is_array($plugin_run_result = Plugins::getInstance()->run('user_cannot_access_call', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook kleeja_info($lang['HV_NOT_PRVLG_ACCESS']); } //page info $stylee = 'call'; $titlee = $lang['CALL']; $action = './go.php?go=call'; $H_FORM_KEYS = kleeja_add_form_key('call'); $NOT_USER = !$usrcp->name() ? true : false; //no error yet $ERRORS = false; //_post $t_cname = p('cname'); $t_cmail = p('cmail'); $t_ctext = p('ctext'); is_array($plugin_run_result = Plugins::getInstance()->run('no_submit_call_go_page', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook if (ip('submit')) { //after sumit $ERRORS = array(); is_array($plugin_run_result = Plugins::getInstance()->run('submit_call_go_page', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook //check for form key if(!kleeja_check_form_key('call')) { $ERRORS['form_key'] = $lang['INVALID_FORM_KEY']; } if(!kleeja_check_captcha()) { $ERRORS['captcha'] = $lang['WRONG_VERTY_CODE']; } if ((empty(p('cname')) && $NOT_USER) || empty(p('ctext')) ) { $ERRORS['cname'] = $lang['EMPTY_FIELDS'] . ' : ' . (empty(p('cname')) && $NOT_USER ? ' [ ' . $lang['YOURNAME'] . ' ] ' : '') . (empty(p('ctext')) ? ' [ ' . $lang['TEXT'] . ' ] ': ''); } if (ip('cmail') && !preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i", trim(strtolower(p('cmail')))) && $NOT_USER) { $ERRORS['cmail'] = $lang['WRONG_EMAIL']; } if (strlen(p('ctext')) > 300) { $ERRORS['ctext'] = $lang['NO_ME300TEXT']; } if($t_cname == '_kleeja_') { update_config('new_version', ''); } is_array($plugin_run_result = Plugins::getInstance()->run('submit_call_go_page2', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook //no errors ,lets do process if(empty($ERRORS)) { $name = $NOT_USER ? (string) $SQL->escape(p('cname')) : $usrcp->name(); $text = (string) $SQL->escape(p('ctext')); $mail = $NOT_USER ? (string) strtolower(trim($SQL->escape(p('cmail')))) : $usrcp->mail(); $timee = (int) time(); $ip = get_ip(); $insert_query = array( 'INSERT' => "name ,text ,mail ,time ,ip", 'INTO' => "`{$dbprefix}call`", 'VALUES' => "'$name', '$text', '$mail', $timee, '$ip'" ); is_array($plugin_run_result = Plugins::getInstance()->run('qr_insert_new_call', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook if ($SQL->build($insert_query)) { send_mail($config['sitemail2'], $text . "\n\n\n\n" . 'TIME : ' . date('d-m-Y h:i a', $timee) . ' - IP:' . $ip, $lang['CALL'], $mail, $name); kleeja_info($lang['THNX_CALLED']); } } } is_array($plugin_run_result = Plugins::getInstance()->run('call_go_page', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook break; // //Page for requesting delete file // case 'del' : is_array($plugin_run_result = Plugins::getInstance()->run('del_go_page', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook //stop .. check first .. if (!$config['del_url_file']) { kleeja_info($lang['NO_DEL_F'], $lang['E_DEL_F']); } //examples : //f2b3a82060a22a80283ed961d080b79f //aa92468375a456de21d7ca05ef945212 // $cd = preg_replace('/[^0-9a-z]/i', '', $SQL->escape(g('cd'))); // may.. will protect if (empty($cd)) { kleeja_err($lang['WRONG_URL']); } else { //to check if(ig('sure') && g('sure') == 'ok') { $query = array( 'SELECT'=> 'f.id, f.name, f.folder, f.size, f.type', 'FROM' => "{$dbprefix}files f", 'WHERE' => "f.code_del='" . $cd . "'", 'LIMIT' => '1', ); is_array($plugin_run_result = Plugins::getInstance()->run('qr_select_file_with_code_del', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook $result = $SQL->build($query); if ($SQL->num_rows($result) != 0) { while($row=$SQL->fetch_array($result)) { @kleeja_unlink($row['folder'] . '/' . $row['name']); //delete thumb if (file_exists($row['folder'] . '/thumbs/' . $row['name'])) { @kleeja_unlink($row['folder'] . '/thumbs/' . $row['name']); } $is_img = in_array($row['type'], array('png','gif','jpg','jpeg','tif','tiff', 'bmp')) ? true : false; $query_del = array( 'DELETE' => "{$dbprefix}files", 'WHERE' => 'id=' . $row['id'] ); is_array($plugin_run_result = Plugins::getInstance()->run('qr_del_file_with_code_del', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook $SQL->build($query_del); if($SQL->affected()) { //update number of stats $update_query = array( 'UPDATE' => "{$dbprefix}stats", 'SET' => ($is_img ? 'imgs=imgs-1':'files=files-1') . ',sizes=sizes-' . $row['size'], ); $SQL->build($update_query); kleeja_info($lang['DELETE_SUCCESFUL']); } else { kleeja_info($lang['ERROR_TRY_AGAIN']); } break;//to prevent divel actions } $SQL->freeresult($result); } } else { //fix for IE+ $extra_codes = ''; kleeja_info($lang['ARE_YOU_SURE_DO_THIS'], '', true, false, 0, $extra_codes); } }#else break; // //Page of Kleeja stats // case 'stats' : //Not allowed to access this page ? if (!user_can('access_stats')) { is_array($plugin_run_result = Plugins::getInstance()->run('user_cannot_access_stats', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook kleeja_info($lang['HV_NOT_PRVLG_ACCESS']); } //stop .. check first .. if (!$config['allow_stat_pg']) { kleeja_info($lang['STATS_CLOSED'], $lang['STATS_CLOSED']); } //stats of most online users if(empty($config['most_user_online_ever']) || trim($config['most_user_online_ever']) == '') { $most_online = 1;// 1 == you $on_muoe = time(); } else { list($most_online, $on_muoe) = @explode(':', $config['most_user_online_ever']); } //ok .. go on $titlee = $lang['STATS']; $stylee = 'stats'; $files_st = $stat_files; $imgs_st = $stat_imgs; $users_st = $stat_users; $sizes_st = readable_size($stat_sizes); $lst_dl_st = (int) $config['del_f_day'] <= 0 ? false : kleeja_date($stat_last_f_del); $lst_reg = empty($stat_last_user) ? $lang['UNKNOWN'] : $stat_last_user; $on_muoe = kleeja_date($on_muoe); is_array($plugin_run_result = Plugins::getInstance()->run('stats_go_page', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook break; // // Page for redirect to downloading a file // [!] depreacted from 1rc6+, see do.php // case 'down': //go.php?go=down&n=$1&f=$2&i=$3 if(ig('n')) { $url_file = (int) $config['mod_writer'] == 1 ? $config['siteurl'] . 'download' . g('i', 'int') . '.html' : $config['siteurl'] . 'do.php?id=' . g('n', 'int'); } else { $url_file = $config['siteurl']; } $SQL->close(); redirect($url_file); exit; break; // // for queue // case 'queue': #img header and print spacer gif header('Cache-Control: no-cache'); header('Content-type: image/gif'); header('Content-length: 43'); echo base64_decode('R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='); #do some of the queue .. if(preg_match('/:del_[a-z0-9]{0,3}calls:/i', $config['queue'])) { klj_clean_old('call', (strpos(':del_allcalls:', $config['queue']) !== false ? 'all': 30)); } elseif(preg_match('/:del_[a-z0-9]{0,3}reports:/i', $config['queue'])) { klj_clean_old('reports', (strpos(':del_allreports:', $config['queue']) !== false ? 'all': 30)); } elseif((int) $config['del_f_day'] > 0) { klj_clean_old_files($config['klj_clean_files_from']); } is_array($plugin_run_result = Plugins::getInstance()->run('go_queue', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook #end $SQL->close(); exit; break; // //this is a part of ACP, only admins can access this part of page // case 'resync': if(!user_can('enter_acp')) { kleeja_info($lang['HV_NOT_PRVLG_ACCESS']); exit; } #get admin functions include 'includes/functions_adm.php'; #get admin langauge get_lang('acp'); switch(g('case')): // //re-sync total files number .. // case 'sync_files': #no start ? or there $start = !ig('start') ? false : g('start', 'int'); $end = sync_total_files(true, $start); #no end, then sync'ing is done... if(!$end) { delete_cache('data_stats'); $text = $title = sprintf($lang['SYNCING_DONE'], $lang['ALL_FILES']); $link_to_go = './admin/?cp=r_repair#!cp=r_repair'; } else { $text = $title = sprintf($lang['SYNCING'], $lang['ALL_FILES']) . ' (' . (!$start ? 0 : $start) . '->' . (!$end ? '?' : $end) . ')'; $link_to_go = './go.php?go=resync&case=sync_files&start=' . $end; } //to be sure ! $text .= '' . "\n"; kleeja_info($text, $title, true, $link_to_go, 2); break; // //re-sync total images number .. // case 'sync_images': #no start ? or there $start = !ig('start') ? false : g('start', 'int'); $end = sync_total_files(false, $start); #no end, then sync'ing is done... if(!$end) { delete_cache('data_stats'); $text = $title = sprintf($lang['SYNCING_DONE'], $lang['ALL_IMAGES']) . ' (' . (!$start ? 0 : $start) . '->' . (!$end ? '?' : $end) . ')'; $link_to_go = './admin/?cp=r_repair#!cp=r_repair'; } else { $text = $title = sprintf($lang['SYNCING'], $lang['ALL_IMAGES']); $link_to_go = './go.php?go=resync&case=sync_images&start=' . $end; } //to be sure ! $text .= '' . "\n"; kleeja_info($text, $title, true, $link_to_go, 2); break; endswitch; break; /** * Ajax get uploading progress */ case 'uploading_progress': header('Content-type: application/json; charset=UTF-8'); $field_value = ig('value') ? g('value', 'int') : 0; $result_data = array( 'current_progress' => 0, ); // if($field_value == 0) // { // exit(json_encode($result_data)); // } if(!function_exists('ini_get')) { exit(json_encode($result_data)); } $key = ini_get("session.upload_progress.prefix") . $field_value; $progress_session_info = empty($_SESSION[$key]) ? null : $_SESSION[$key]; if(empty($progress_session_info)) { exit(json_encode($result_data)); } $result_data['current_progress'] = ($progress_session_info['bytes_processed'] / $progress_session_info['content_length']) * 100; exit(json_encode($result_data)); break; // // Default , if you are a developer , you can embed your page here with this hook // by using g('go') and your codes. // default: $no_request = true; is_array($plugin_run_result = Plugins::getInstance()->run('default_go_page', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook if($no_request) { kleeja_err($lang['ERROR_NAVIGATATION']); } break; }#end switch is_array($plugin_run_result = Plugins::getInstance()->run('end_go_page', get_defined_vars())) ? extract($plugin_run_result) : null; //run hook //no template ? $stylee = empty($stylee) ? 'info' : $stylee; $titlee = empty($titlee) ? '' : $titlee; //show style if($show_style) { Saaheader($titlee); echo $tpl->display($stylee , $styleePath); Saafooter(); }