<?php
|
|
/**
|
|
* @package uForum2
|
|
* @file inc/controller.class.php
|
|
* @copyright 2007-2015 (c) PioDer <[email protected]>
|
|
* @link http://www.pioder.pl/
|
|
* @license see LICENSE.txt
|
|
**/
|
|
|
|
require_once('./inc/askModel.class.php');
|
|
require_once('./inc/view.class.php');
|
|
|
|
abstract class Controller extends AskModel {
|
|
|
|
protected $views = array();
|
|
protected $db;
|
|
|
|
abstract public function loadDefault(); //domyślna metoda
|
|
|
|
public function __call($m, $arg)
|
|
{
|
|
if(method_exists($this, $m))
|
|
$this->$m($arg);
|
|
else
|
|
$this->forward('index.php');
|
|
}
|
|
|
|
public function __construct(&$db)
|
|
{
|
|
$this->db = $db;
|
|
}
|
|
|
|
public function forward($address)
|
|
{
|
|
header('Location: ' . $address);
|
|
}
|
|
|
|
public function loadView($view)
|
|
{
|
|
if (file_exists('./inc/views/'.$view.'.class.php') && !array_key_exists($view, $this->views))
|
|
{
|
|
require_once('./inc/views/'.$view.'.class.php');
|
|
$this->views[$view] = new $view($this->db);
|
|
}
|
|
else
|
|
{
|
|
throw new Exception('Could not load selected view: '.$view);
|
|
}
|
|
}
|
|
|
|
public function getView($view)
|
|
{
|
|
if (array_key_exists($view, $this->views))
|
|
return $this->views[$view];
|
|
else
|
|
throw new Exception('Could not get selected view: '.$widok);
|
|
}
|
|
}
|
|
|
|
?>
|