<?php
/**
 * Created by PhpStorm.
 * User: Maxim
 * Date: 06.06.2015
 * Time: 10:50
 */

class TemplateClass {

	private $dir_tmpl; // Директория с tpl-файлами
	private $data = array(); // Данные для вывода

	public function __construct($dir_tmpl)
	{
		$this->dir_tmpl = $dir_tmpl;
	}

	/* Метод для добавления новых значений в данные для вывода */
	public function set($name, $value)
	{
		$this->data[$name] = $value;
//		$this->data = $value;
	}

	/* Метод для удаления значений из данных для вывода */
	public function delete($name)
	{
		unset($this->data[$name]);
	}

	/* При обращении, например, к $this->title будет выводиться $this->data["title"] */
	public function __get($name)
	{
		if (isset($this->data[$name])) {
			return $this->data[$name];
		}

//		if (isset($this->data)) return $this->data[$name];
		return "";
	}

	/* Вывод tpl-файла, в который подставляются все данные для вывода */
	public function display($template, $module = 0)
	{
		if(file_exists($this->dir_tmpl . '/modules/'. $module . '/' . $template . '.tpl')){
			$template = $this->dir_tmpl . '/modules/'. $module . '/' . $template . '.tpl';
		}elseif (file_exists($this->dir_tmpl . '/customtpls/' . $template . ".tpl")) {
			$template = $this->dir_tmpl . '/customtpls/' . $template . ".tpl";
		} else {
			$template = $this->dir_tmpl . '/' . $template . ".tpl";
		}

		ob_start();
		include($template);
		echo ob_get_clean();
	}

	/* Вывод tpl-файла, в который подставляются все данные для вывода */
	public function out($template)
	{
		if (file_exists($this->dir_tmpl . '/customtpls/' . $template . ".tpl")) {
			$template = $this->dir_tmpl . '/customtpls/' . $template . ".tpl";
		} else {
			$template = $this->dir_tmpl . '/' . $template . ".tpl";
		}

		ob_start();
		include($template);

		return ob_get_clean();
	}

	public function createMenu($menu)
	{
		$outMenu = array();

		foreach ($menu as $value) {
			if ($value['id_parent'] == false) {
				$outMenu[$value['id']] = $value;
				$outMenu[$value['id']]['child'] = array();
			} else {
				if ($outMenu[$value['id_parent']] != false) {
					$outMenu[$value['id_parent']]['child'][] = $value;
				} else {
					$outMenu[] = $value;
				}
			}
		}

		return $outMenu;
	}

	public function addMenu($arrayItems, $id, $name, $link, $parent = false, $icon = false, $left_zona = false, $right_zona = false)
	{
		$newItem = array(
			'id'         => $id,
			'name'       => $name,
			'link'       => $link,
			'left_zona'  => $left_zona,
			'right_zona' => $right_zona,
			'icon'       => $icon,
			'id_parent'  => $parent
		);

		$arrayItems[$id] = $newItem;

		return $arrayItems;
	}
}