RSS Git Download  Clone
Raw Blame History
<?php 
namespace Lib;

class Controller_base {

	public function __construct() {
		if (defined('DEBUG_SLOW_DOWN_AJAX') && $this->is_ajax_request()) {
			// microseconds 1 sec = 1000000 microsecond
			usleep(DEBUG_SLOW_DOWN_AJAX * 1000);
		}
	}
	
	public function set_no_cache($set_no_cache = true)
	{
		if (!$set_no_cache) {
			return;
		}
		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
		header("Cache-Control: no-cache, must-revalidate");
	}

	public function set_javascript_content_type() {
		header('Content-Type: application/x-javascript; charset=UTF-8');		
	}
	
	public function set_json_content_type() {
		if (defined('DEBUG')) {
			header('Content-Type: application/x-javascript; charset=UTF-8');						
		} else {
			header('Content-Type: application/json');				
		}
	}
	
	public function is_ajax_request() {
	    return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'));
	}	
	
	public function send_json($php_var, $set_no_cache = true) {
		$this->set_no_cache($set_no_cache);			
		$this->set_json_content_type();
		echo Json::encode($php_var);
	}
	
	public function send_javascript_var($var_name, $php_var, $add_var_text = true,$set_no_cache = true) {
		$this->set_no_cache($set_no_cache);			
		$this->set_javascript_content_type();			
		echo Json::get_var($var_name, $php_var, $add_var_text);
	}
}