/** * Outputs cache to the user */ private function get_cache() { qa_report_process_stage('init_page'); qa_db_connect('qa_page_db_fail_handler'); qa_page_queue_pending(); qa_load_state(); qa_check_login_modules(); if (QA_DEBUG_PERFORMANCE) { if (qa_qa_version_below('1.7')) { qa_usage_mark('setup'); } else { //global $qa_usage; //$qa_usage->mark('setup'); null; } } qa_check_page_clicks(); qa_set_form_security_key(); if (!QA_CACHING_FILE) { $contents = $this->get_cache_db(); } else { $contents = $this->get_cache_file(); } $qa_content = array(); // Dummy contents $userid = qa_get_logged_in_userid(); $questionid = qa_request_part(0); $cookieid = qa_cookie_get(true); if (is_numeric($questionid)) { $question = qa_db_select_with_pending(qa_db_full_post_selectspec($userid, $questionid)); if (is_numeric($questionid) && qa_opt('do_count_q_views') && !preg_match("/^(?:POST|PUT)\$/i", $_SERVER["REQUEST_METHOD"]) && !qa_is_http_post() && qa_is_human_probably() && (!$question['views'] || ($question['lastviewip'] != qa_remote_ip_address() || !isset($question['lastviewip'])) && ($question['createip'] != qa_remote_ip_address() || !isset($question['createip'])) && ($question['userid'] != $userid || !isset($question['userid'])) && ($question['cookieid'] != $cookieid || !isset($question['cookieid'])))) { $qa_content['inc_views_postid'] = $questionid; } else { $qa_content['inc_views_postid'] = null; } qa_do_content_stats($qa_content); } if (QA_DEBUG_PERFORMANCE) { ob_start(); if (qa_qa_version_below('1.7')) { qa_usage_output(); } else { global $qa_usage; $qa_usage->output(); } $contents .= ob_get_contents(); ob_end_clean(); } qa_db_disconnect(); header('Content-type: ' . strtr('^type/^format; charset=utf-8', array('^type' => 'text', '^format' => $this->get_cache_file_extension()))); exit($contents); }
$themeclass->finish(); // End of output phase if (QA_DEBUG_PERFORMANCE) { qa_usage_mark('theme'); } // Increment question view counter (do at very end so page can be output first) if (isset($qa_content['inc_views_postid'])) { require_once QA_INCLUDE_DIR . 'qa-db-hotness.php'; qa_db_hotness_update($qa_content['inc_views_postid'], null, true); if (QA_DEBUG_PERFORMANCE) { qa_usage_mark('stats'); } } // Output the usage to the page if (QA_DEBUG_PERFORMANCE) { qa_usage_output(); } } // Disconnect from the database qa_base_db_disconnect(); // Functions used in this file, or made available to any other files that generate Q2A pages function qa_page_db_fail_handler($type, $errno = null, $error = null, $query = null) { $pass_failure_type = $type; $pass_failure_errno = $errno; $pass_failure_error = $error; $pass_failure_query = $query; require QA_INCLUDE_DIR . 'qa-install.php'; exit; } function qa_content_prepare($voting = false, $categoryids = null)