2015-05-22 12:36:26 -04:00
|
|
|
<?php
|
|
|
|
|
2015-06-11 16:44:52 -04:00
|
|
|
/**
|
|
|
|
* Base class for controllers, defines output methods
|
|
|
|
*/
|
2015-05-22 12:36:26 -04:00
|
|
|
class BaseController {
|
|
|
|
|
2015-06-11 16:44:52 -04:00
|
|
|
/**
|
|
|
|
* The global configuration object
|
|
|
|
* @var object $config
|
|
|
|
*/
|
2015-06-09 18:18:53 -04:00
|
|
|
protected $config;
|
2015-05-22 12:36:26 -04:00
|
|
|
|
2015-06-11 16:44:52 -04:00
|
|
|
/**
|
|
|
|
* Constructor
|
|
|
|
*/
|
2015-06-09 18:18:53 -04:00
|
|
|
public function __construct()
|
2015-05-22 12:36:26 -04:00
|
|
|
{
|
2015-06-09 18:18:53 -04:00
|
|
|
global $config;
|
|
|
|
$this->config = $config;
|
2015-05-22 12:36:26 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Output a template to HTML, using the provided data
|
|
|
|
*
|
|
|
|
* @param string $template
|
|
|
|
* @param array/object $data
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
public function outputHTML($template, $data=[])
|
|
|
|
{
|
|
|
|
global $router;
|
|
|
|
$route = $router->get_route();
|
|
|
|
$data['route_path'] = ($route) ? $router->get_route()->path : "";
|
|
|
|
|
2015-06-11 16:44:52 -04:00
|
|
|
$path = _dir(APP_DIR, 'views', "{$template}.php");
|
2015-05-22 12:36:26 -04:00
|
|
|
|
|
|
|
if ( ! is_file($path))
|
|
|
|
{
|
|
|
|
throw new Exception("Invalid template : {$path}");
|
|
|
|
}
|
|
|
|
|
|
|
|
ob_start();
|
|
|
|
extract($data);
|
2015-06-11 16:44:52 -04:00
|
|
|
include _dir(APP_DIR, 'views', 'header.php');
|
2015-05-22 12:36:26 -04:00
|
|
|
include $path;
|
|
|
|
$buffer = ob_get_contents();
|
|
|
|
ob_end_clean();
|
|
|
|
|
|
|
|
header("Content-type: text/html;charset=utf-8");
|
|
|
|
echo $buffer;
|
|
|
|
die();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Output json with the proper content type
|
|
|
|
*
|
|
|
|
* @param mixed data
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
public function outputJSON($data)
|
|
|
|
{
|
|
|
|
if ( ! is_string($data))
|
|
|
|
{
|
|
|
|
$data = json_encode($data);
|
|
|
|
}
|
|
|
|
|
|
|
|
header("Content-type: application/json");
|
|
|
|
echo $data;
|
|
|
|
}
|
2015-06-11 16:44:52 -04:00
|
|
|
}
|
|
|
|
// End of BaseController.php
|