HummingBirdAnimeClient/app/base/BaseController.php

72 lines
1.2 KiB
PHP
Raw Normal View History

2015-05-22 12:36:26 -04:00
<?php
/**
* Base class for controllers, defines output methods
*/
2015-05-22 12:36:26 -04:00
class BaseController {
/**
* The global configuration object
* @var object $config
*/
protected $config;
2015-05-22 12:36:26 -04:00
/**
* Constructor
*/
public function __construct()
2015-05-22 12:36:26 -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 : "";
$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);
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;
}
}
// End of BaseController.php