<?php
/*****************************************************************************
 * Template.php
 * Contains key Template interface.
 *
 * Kabuki CMS (C) 2013-2015, Aaron van Geffen
 *****************************************************************************/

abstract class Template
{
	protected $_subtemplates = [];

	abstract public function html_main();

	public function adopt(Template $template, $position = 'end')
	{
		// By default, we append it.
		if ($position == 'end')
			$this->_subtemplates[] = $template;
		// We can also add it to the beginning of the list, though.
		else
			array_unshift($this->_subtemplates, $template);
	}

	public function clear()
	{
		$this->_subtemplates = [];
	}

	public function pass($id, $data)
	{
		$this->{$id} = $data;
	}
}