<?php
// an instance of the BaseController class can't be created directly; 
// it can only be extended/inherited by other classes
abstract class BaseController {

	protected $urlvalues;
	protected $action;
	
	public function __construct($action, $urlvalues, $postdata) {
		$this->action = $action;
		$this->urlvalues = $urlvalues;
		$this->postdata = $postdata;
	}
	
	public function ExecuteAction() {
		return $this->{$this->action}();
	}
	
	protected function ReturnView($viewmodel, $fullview) {
		$viewloc = 'views/' . get_class($this) . '/' . $this->action . '.php';
		if ($fullview) {
			require('views/maintemplate.php');
		} else {
			require($viewloc);
		}
	}
}
?>