<?php
/*
* @package LabCMS
* @copyright (c) 2006 Alexander Levin aka Loki (loki_angel@mail.ru)
* @support http://labcms.ru
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*/
	$tree_id=intval($_GET['var1']);
	$reload=0;

	$mod_template='edit.tpl';
	LabVars::$template='blank.tpl';
	LabVars::$break=true;

	if ($_SERVER['REQUEST_METHOD']=="POST")
	{
		User::checkToken();
		$path=trim($_POST['path']);
		if ($path && $_POST['external'])
		{
			
		}
		elseif ($path)
		{
			$path=convert_url($path);
		}
		else
		{
			$path=NULL;
		}

		if ($_POST['symlink']==$tree_id) $_POST['symlink']=0;
		
		if ($tree_id)
		{
			//изменяем родителя
			$result=Db::i()->query("UPDATE ?_tree SET parent_id=?, tree_name=?, path=?, symlink=?, external=? WHERE tree_id=?",$_POST['parent'], $_POST['tree_name'], $path, $_POST['symlink'], $_POST['external']?1:0, $tree_id);
			//если изменился родитель или название - перезагружаем главное окно
			$reload+=$result;

			$query=array('params'=>$_POST['params'],
			'template'=>$_POST['template'],
			'lang_id'=>(!empty($_POST['lang_id'])?intval($_POST['lang_id']):0));
			Db::i()->query("UPDATE ?_tree SET ?a WHERE tree_id=?",$query ,$tree_id);
			unset($query);

			Db::i()->query("DELETE FROM ?_includes WHERE tree_id=?", $tree_id);
		}
		else
		{
			$query=array('tree_id'=>$tree_id, 
			'tree_name'=>$_POST['tree_name'],
			'params'=>$_POST['params'],
			'template'=>$_POST['template'],
			'path'=>$path,
			'parent_id'=>$_POST['parent'],
			'symlink'=>$_POST['symlink'],
			'external'=>$_POST['external']?1:0,
			'lang_id'=>(!empty($_POST['lang_id'])?intval($_POST['lang_id']):0),
			'show'=>1);
			$tree_id=Db::i()->query("INSERT INTO ?_tree SET ?a",$query);
			unset($query);
			$reload+=$tree_id;
		}

		if (count($_POST['module']))
		{
			foreach ($_POST['module'] as $key=>$val)
			{
				Db::i()->query("INSERT INTO ?_includes (tree_id, module_id) VALUES(?, ?)", $tree_id, $key);
			}
		}
		Tpl::i()->assign('reload', $reload);
		Tpl::i()->assign('close', true);
		LabCMS::i()->reset_cache('all');
		return;
	}

	/////////////////////////////////////////
	//тут пошло построение формы
	//выбираем из базы данные о конкретной записи
	$item=Db::i()->selectRow("SELECT t.tree_id, symlink,  tree_name, template, params, path, parent_id, lang_id, external FROM ?_tree t WHERE t.tree_id=?", $tree_id);

	Tpl::i()->assign(array("tree_id"=>$tree_id,
						  "tree_name"=>(!empty($item['tree_name'])?$item['tree_name']:''),
						  "params"=>(!empty($item['params'])?$item['params']:''),
						  "tree_path"=>(!empty($item['path'])?$item['path']:''),
						  "lang_id"=>(!empty($item['lang_id'])?$item['lang_id']:''),
						  'external'=>$item['external']));

	$templates=array();
	foreach (glob(LAB_PATH_TEMPLATE.'/'.LabConfig::$cfg['skin']."/*.tpl") as $tpl_name)
	{
		$templates[basename($tpl_name)]=basename($tpl_name,".tpl");
	}  
	Tpl::i()->assign('cur_template', (empty($item['template'])?'':$item['template']));
	Tpl::i()->assign('templates', $templates);
 
	function select_tree($active=null, $parent_id=0, $level=0)
	{
		$parent_select=array();
		$result=Db::i()->select("SELECT t.tree_id,  tree_name  FROM ?_tree t  WHERE t.parent_id=? ORDER BY pos", $parent_id);
		if (count($result))
		{
			foreach($result as $tree)
			{
				if (is_numeric($active) && $tree['tree_id']==$active) continue;
				$margin="";
				for($i=0; $i<$level*3; $i++) $margin.="&nbsp;";
				$parent_select[$tree['tree_id']]=$margin.$tree['tree_name'];
				$parent_select+=select_tree($active, $tree['tree_id'], $level+1);
			}
			
		}
		return $parent_select;
	}

	$symlink_select=select_tree();
	Tpl::i()->assign('symlink_current', (empty($item['symlink'])?'':$item['symlink']));
	Tpl::i()->assign('symlink_select', $symlink_select);

	$parent_select=select_tree(empty($item['tree_id'])?0:$item['tree_id']);
	Tpl::i()->assign('parent_id_sel', (empty($item['parent_id'])?0:$item['parent_id']));
	Tpl::i()->assign('parent_select', $parent_select);


	//выбираем список модулей
	$result=Db::i()->select("SELECT m.module_id, name, i.tree_id, component, `static` FROM ?_modules m LEFT JOIN ?_includes i ON m.module_id=i.module_id   AND i.tree_id=? WHERE m.disable = 0 ORDER BY name", $tree_id);

	foreach($result as $modules)
	{
		$component_js=0; //отображение js в чекбоксе
		$checked=0; //отметка чекбокса
		//если модуль является компонентом, то заносим его идентификатор в массив и вставляем яваскрипт в его чекбокс
		if ($modules['component'])
		{
			$mult[]=$modules['module_id'];
			$component_js=1; //отображаем js для многостраничного модуля
		}
		//если текущий модуль выбран, то помечаем его
		if ($modules['tree_id'])
		{
			$checked=1; //отмечаем чекбокс
			//если модeль выбранный и является компонентом, то заносим его идентификатор в яваскрипт вызываемый из боди
			if ($modules['component']) Tpl::i()->assign("imp_module_id", $modules['module_id']);
		}
		$modules_list[]=array("id"=>$modules['module_id'], "name"=>$modules['name'], 'checked'=>$checked, 'component_js'=>$component_js, 'static'=>$modules['static']);
	}
	Tpl::i()->assign('modules_list', $modules_list);
	Tpl::i()->assign("component", implode(",", $mult));

	Tpl::i()->assign('langs', Db::i()->selectCol("SELECT lang_id AS ARRAY_KEY, lang_name FROM ?_langs"));
	