Improved compatiblity with Quercus PHP
This commit is contained in:
parent
1f2cafdead
commit
aedc4bb31a
@ -13,7 +13,7 @@
|
|||||||
| you will need to add that folder to the document root.
|
| you will need to add that folder to the document root.
|
||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
$document_root = realpath("../".__DIR__);
|
$document_root = './';
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
@ -33,7 +33,11 @@ require(APP_PATH.'config/config.php');
|
|||||||
require(SYS_PATH . "common.php");
|
require(SYS_PATH . "common.php");
|
||||||
|
|
||||||
//Set error handlers
|
//Set error handlers
|
||||||
|
// Quercus doesn't define error_get_last...
|
||||||
|
if(function_exists('error_get_last'))
|
||||||
|
{
|
||||||
register_shutdown_function('shutdown');
|
register_shutdown_function('shutdown');
|
||||||
|
}
|
||||||
set_error_handler('on_error');
|
set_error_handler('on_error');
|
||||||
set_exception_handler('on_exception');
|
set_exception_handler('on_exception');
|
||||||
|
|
||||||
|
@ -5,7 +5,6 @@ class Welcome extends MM_Controller {
|
|||||||
function __construct()
|
function __construct()
|
||||||
{
|
{
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function index()
|
function index()
|
||||||
|
@ -22,7 +22,7 @@ class db extends PDO {
|
|||||||
private $statement;
|
private $statement;
|
||||||
private static $instance;
|
private static $instance;
|
||||||
|
|
||||||
public static function get_instance($dbname="default", $options=array())
|
public static function &get_instance($dbname="default", $options=array())
|
||||||
{
|
{
|
||||||
if ( ! isset(self::$instance[$dbname]))
|
if ( ! isset(self::$instance[$dbname]))
|
||||||
{
|
{
|
||||||
|
@ -199,7 +199,7 @@ class miniMVC extends JSObject{
|
|||||||
*
|
*
|
||||||
* @return miniMVC object
|
* @return miniMVC object
|
||||||
*/
|
*/
|
||||||
public static function get_instance()
|
public static function &get_instance()
|
||||||
{
|
{
|
||||||
if( ! isset(self::$count))
|
if( ! isset(self::$count))
|
||||||
{
|
{
|
||||||
@ -306,66 +306,14 @@ class miniMVC extends JSObject{
|
|||||||
*/
|
*/
|
||||||
class MM_Controller extends miniMVC {
|
class MM_Controller extends miniMVC {
|
||||||
|
|
||||||
|
public $output, $page;
|
||||||
|
|
||||||
function __construct()
|
function __construct()
|
||||||
{
|
{
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
|
||||||
$this->output = new Output;
|
$this->output = new Output();
|
||||||
$this->page = new Page;
|
$this->page = new Page();
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function for loading a view
|
|
||||||
*
|
|
||||||
* @param string $file
|
|
||||||
* @param array $data
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
function load_view($file, $data, $return=FALSE)
|
|
||||||
{
|
|
||||||
$path = "";
|
|
||||||
|
|
||||||
// The module is the lower of the class name
|
|
||||||
// need to figure out a way to allow multiple controllers
|
|
||||||
// in one module
|
|
||||||
$module = strtolower(get_class($this));
|
|
||||||
|
|
||||||
$not_modules = array('miniMVC', 'page', 'db', 'output');
|
|
||||||
|
|
||||||
// If it's a module, look in the module view folder
|
|
||||||
if( ! in_array($module, $not_modules))
|
|
||||||
{
|
|
||||||
$path = MOD_PATH . "{$module}/views/{$file}.php";
|
|
||||||
}
|
|
||||||
|
|
||||||
// If it's not a module, or doesn't exist in the module view folder
|
|
||||||
// look in the app view folder
|
|
||||||
if( ! is_file($path))
|
|
||||||
{
|
|
||||||
$path = APP_PATH . "views/{$file}.php";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Contain the content for buffering
|
|
||||||
ob_start();
|
|
||||||
|
|
||||||
// Extract the data array
|
|
||||||
extract($data);
|
|
||||||
|
|
||||||
// Include the file
|
|
||||||
include($path);
|
|
||||||
|
|
||||||
$buffer = ob_get_contents();
|
|
||||||
ob_end_clean();
|
|
||||||
|
|
||||||
if($return == TRUE)
|
|
||||||
{
|
|
||||||
return $buffer;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->output->append_output($buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -15,16 +15,16 @@
|
|||||||
/**
|
/**
|
||||||
* Class for displaying output and setting http headers
|
* Class for displaying output and setting http headers
|
||||||
*
|
*
|
||||||
* @extends miniMVC
|
* @extends JSObject
|
||||||
*/
|
*/
|
||||||
class Output extends miniMVC {
|
class Output extends JSObject{
|
||||||
|
|
||||||
private $buffer, $headers;
|
private $buffer, $headers;
|
||||||
|
|
||||||
function __construct()
|
function __construct()
|
||||||
{
|
{
|
||||||
// Compression is good!
|
// Compression is good!
|
||||||
ob_start("ob_gzhandler");
|
//ob_start("ob_gzhandler");
|
||||||
|
|
||||||
$this->buffer = "";
|
$this->buffer = "";
|
||||||
$this->headers = array();
|
$this->headers = array();
|
||||||
@ -56,7 +56,7 @@ class Output extends miniMVC {
|
|||||||
if( ! empty($this->buffer))
|
if( ! empty($this->buffer))
|
||||||
{
|
{
|
||||||
echo $this->buffer;
|
echo $this->buffer;
|
||||||
ob_end_flush();
|
//ob_end_flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
79
sys/page.php
79
sys/page.php
@ -34,7 +34,8 @@ class Page
|
|||||||
$this->body_id = "";
|
$this->body_id = "";
|
||||||
$this->base = "";
|
$this->base = "";
|
||||||
|
|
||||||
$this->mm = miniMVC::get_instance();
|
$mm =& miniMVC::get_instance();
|
||||||
|
$this->output =& $mm->output;
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
@ -52,7 +53,7 @@ class Page
|
|||||||
*/
|
*/
|
||||||
private function _headers($xhtml, $html5)
|
private function _headers($xhtml, $html5)
|
||||||
{
|
{
|
||||||
$this->mm->output->set_header("Cache-Control", "must-revalidate, public");
|
$this->output->set_header("Cache-Control", "must-revalidate, public");
|
||||||
$mime = "";
|
$mime = "";
|
||||||
|
|
||||||
//Variable for accept keyword
|
//Variable for accept keyword
|
||||||
@ -120,9 +121,9 @@ class Page
|
|||||||
}
|
}
|
||||||
|
|
||||||
// finally, output the mime type and prolog type
|
// finally, output the mime type and prolog type
|
||||||
$this->mm->output->set_header("Content-Type", "{$mime};charset={$charset}");
|
$this->output->set_header("Content-Type", "{$mime};charset={$charset}");
|
||||||
$this->mm->output->set_header("X-UA-Compatible", "chrome=1, IE=edge");
|
$this->output->set_header("X-UA-Compatible", "chrome=1, IE=edge");
|
||||||
$this->mm->output->set_output($doctype_string);
|
$this->output->set_output($doctype_string);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@ -351,7 +352,7 @@ class Page
|
|||||||
$this->_headers($xhtml, $html5);
|
$this->_headers($xhtml, $html5);
|
||||||
|
|
||||||
//Output Header
|
//Output Header
|
||||||
$this->mm->load_view('header', $data);
|
$this->load_view('header', $data);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@ -368,7 +369,7 @@ class Page
|
|||||||
|
|
||||||
$data['foot_js'] = ($this->foot_js != "") ? $this->foot_js : '';
|
$data['foot_js'] = ($this->foot_js != "") ? $this->foot_js : '';
|
||||||
|
|
||||||
$this->mm->load_view('footer', $data);
|
$this->load_view('footer', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
@ -410,7 +411,7 @@ class Page
|
|||||||
$data['stat_class'] = $type;
|
$data['stat_class'] = $type;
|
||||||
$data['message'] = $message;
|
$data['message'] = $message;
|
||||||
|
|
||||||
return $this->mm->load_view('message', $data, $return);
|
return $this->load_view('message', $data, $return);
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
@ -423,8 +424,8 @@ class Page
|
|||||||
*/
|
*/
|
||||||
function redirect_303($url)
|
function redirect_303($url)
|
||||||
{
|
{
|
||||||
$this->mm->output->set_header("HTTP/1.1 303 See Other");
|
$this->output->set_header("HTTP/1.1 303 See Other");
|
||||||
$this->mm->output->set_header("Location:" . $url);
|
$this->output->set_header("Location:" . $url);
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
@ -439,7 +440,7 @@ class Page
|
|||||||
function render($view, $data=array())
|
function render($view, $data=array())
|
||||||
{
|
{
|
||||||
$this->build_header();
|
$this->build_header();
|
||||||
$this->mm->load_view($view, $data);
|
$this->load_view($view, $data);
|
||||||
$this->build_footer();
|
$this->build_footer();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -456,7 +457,7 @@ class Page
|
|||||||
function output_string($string)
|
function output_string($string)
|
||||||
{
|
{
|
||||||
$this->build_header();
|
$this->build_header();
|
||||||
$this->mm->output->append_output($string);
|
$this->output->append_output($string);
|
||||||
$this->build_footer();
|
$this->build_footer();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -501,6 +502,60 @@ class Page
|
|||||||
|
|
||||||
return $string;
|
return $string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function for loading a view
|
||||||
|
*
|
||||||
|
* @param string $file
|
||||||
|
* @param array $data
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
function load_view($file, $data, $return=FALSE)
|
||||||
|
{
|
||||||
|
$path = "";
|
||||||
|
|
||||||
|
// The module is the lower of the class name
|
||||||
|
// need to figure out a way to allow multiple controllers
|
||||||
|
// in one module
|
||||||
|
$module = strtolower(get_class($this));
|
||||||
|
|
||||||
|
$not_modules = array('miniMVC', 'page', 'db', 'output');
|
||||||
|
|
||||||
|
// If it's a module, look in the module view folder
|
||||||
|
if( ! in_array($module, $not_modules))
|
||||||
|
{
|
||||||
|
$path = MOD_PATH . "{$module}/views/{$file}.php";
|
||||||
|
}
|
||||||
|
|
||||||
|
// If it's not a module, or doesn't exist in the module view folder
|
||||||
|
// look in the app view folder
|
||||||
|
if( ! is_file($path))
|
||||||
|
{
|
||||||
|
$path = APP_PATH . "views/{$file}.php";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Contain the content for buffering
|
||||||
|
ob_start();
|
||||||
|
|
||||||
|
// Extract the data array
|
||||||
|
extract($data);
|
||||||
|
|
||||||
|
// Include the file
|
||||||
|
include($path);
|
||||||
|
|
||||||
|
$buffer = ob_get_contents();
|
||||||
|
ob_end_clean();
|
||||||
|
|
||||||
|
if($return == TRUE)
|
||||||
|
{
|
||||||
|
return $buffer;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->output->append_output($buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// End of page.php
|
// End of page.php
|
Loading…
Reference in New Issue
Block a user