Просмотр файла modules/padmin/controllers/IndexController.php

Размер файла: 22.93Kb
<?php
/*
* Padmin Module
* @package: PerfCMS
*/

class IndexController extends Controller
{
	public function actionIndex()
	{
		
		if(!User::loged() || User::level() < 2) 
		{
			header('location: /');
			exit;
		}
		
		$this->getHeader(array('title' => Lang::get('padmin_title', 'padmin')));
		$this->render('index');
		$this->getFooter();
	}
	
	public function actionSettings()
	{
		
		if(!User::loged() || User::level() < 2) 
		{
			header('location: /');
			exit;
		}
		
		if(isset($_GET['act']) && $_GET['act'] == 'save')
		{
			$saveConf = PadminSettings::model()->findByPk('auto');
			$saveConf->pts = (empty($_POST['pts']) || $_POST['pts'] < 5 ? 10 : substr(Filters::num($_POST['pts']), 0, 2));
			$saveConf->open_site = substr(Filters::num($_POST['open_site']), 0, 1);
			$saveConf->open_reg = substr(Filters::num($_POST['site_signup']), 0, 1);
			$saveConf->access_site = substr(Filters::num($_POST['access_site']), 0, 1);
			$saveConf->language = substr(Filters::input($_POST['language']), 0, 7);
			// $saveConf->copyright = substr(Filters::input($_POST['copyright']), 0, 12);
			$saveConf->timezone = Filters::input($_POST['timezone']);
			$saveConf->keywords = Filters::input($_POST['keywords']);
			$saveConf->description = Filters::input($_POST['description']);
			$saveConf->copyright = Filters::input($_POST['title']);
			$saveConf->save();
			//var_dump($saveConf);
			header('location: /padmin/index/settings?');
			exit();
		}
		$system = System::getSettings();
		$this->getHeader(array('title' => Lang::get('padmin_general_settings', 'padmin')));
		$langsDir = scandir(APP_ROOT.'/protected/messages');
		$this->render('settings', array('langs' => $langsDir, 'timezone' => $system['timezone']));
		$this->getFooter();
	}
	
	public function actionInfo()
	{
		
		if(!User::loged() || User::level() < 2) 
		{
			header('location: /');
			exit;
		}
		
		$serverSoftware = explode('/', System::Server('server_software'));
		$this->getHeader(array('title' => Lang::get('padmin_system_info', 'padmin')));
		$this->render('info', array('YiiVersion' => Yii::getVersion(), 'PHPVersion' => PHP_VERSION, 'server_software' => $serverSoftware));
		$this->getFooter();
	}
	
	public function versionInfo($version = 'remote')
	{
		$internalVersion = file_get_contents(APP_SYS.'/data/info/system_version.txt');
		$remoteVersion = file_get_contents('http://perfcms.net/perfcms/system_version.txt');
		
		$internalData = explode('|', $internalVersion);
		$remoteData = explode('|', $remoteVersion);
		
		switch($version)
		{
			case 'remote':
				echo $remoteData[0];
			break;
			
			case 'status':
				echo $remoteData[1];
			break;
			
			case 'name':
				echo $remoteData[2];
			break;
			
			case 'build':
				echo $remoteData[3];
			break;
			
			case 'compare':
				if($internalData[0] < $remoteData[0])
				{
					echo '[<a href="/padmin/index/info?changelog"><b>New version! ('.$remoteData[0].')</b></a>]';
					if(isset($_GET['changelog']))
					{
						$changelog = file_get_contents('http://perfcms.net/perfcms/system_version.txt');
						echo '<br/>'.Filters::output($changelog);
					}
				}
			break;
			
			default:
				echo $remoteData[0];
			break;
		}
	}
	
	public function actionDesign()
	{
		
		if(!User::loged() || User::level() < 2) 
		{
			header('location: /');
			exit;
		}
		if(isset($_GET['act']) && $_GET['act'] == 'save')
		{
			$saveConf = PadminSettings::model()->findByPk('auto');
			$saveConf->wap_theme = Filters::input($_POST['wap_theme']);
			$saveConf->web_theme = Filters::input($_POST['web_theme']);
			$saveConf->touch_theme = Filters::input($_POST['touch_theme']);
			$saveConf->active_switch = substr(Filters::num($_POST['active_switch']), 0, 1);
			$saveConf->default_type = substr(Filters::num($_POST['def_type']), 0, 1);
			$saveConf->save();
			header('location: /padmin/index/design?');
			exit();
		}
		
		$wapDir = scandir(APP_ROOT .'/design/themes/wap');
		$webDir = scandir(APP_ROOT .'/design/themes/web');
		$touchDir = scandir(APP_ROOT .'/design/themes/touch');
		$this->getHeader(array('title' => Lang::get('padmin_design_settings', 'padmin')));
		$this->render('design', array('waps' => $wapDir, 'webs' => $webDir, 'touchs' => $touchDir));
		$this->getFooter();
	}
	
	public function actionStats()
	{
		
		if(!User::loged() || User::level() < 2) 
		{
			header('location: /');
			exit;
		}
		
		$db = PerfDb::init();
		$this->getHeader(array('title' => Lang::get('padmin_stats_info', 'padmin')));
		$users = $db->query("SELECT * FROM `users` WHERE `time` > '".(time()-60*60*24)."' ORDER BY time DESC LIMIT 5");
		$regs = $db->query("SELECT * FROM `users` ORDER BY reg_time DESC LIMIT 5");
		$guests = $db->query("SELECT * FROM `guests` LIMIT 5");
		$all = $db->query("SELECT * FROM `users` WHERE `time` > '".(time()-60*60*24)."'")->rowCount();
		$this->render('stats', array('users' => $users, 'regs' => $regs, 'guests' => $guests, 'all' => $all));
		$this->getFooter();
	}
	
	public function actionThemes()
	{
		if(!User::loged() || User::level() < 2) 
		{
			$this->redirect('/');
		}
		
		$this->getHeader(Lang::get('padmin_themes_manager', 'padmin'));
		$this->render('themes');
		$this->getFooter();
	}
	
	public function listOfThemes()
	{
		echo '<div class="post">'. System::image('mobile-phone.png').' <a href="/padmin/index/themes?wap"><b>'.Lang::get('padmin_themes_wap', 'padmin').'</b></a></br/>';
		if(isset($_GET['wap']))
		{
			$wapThemesDir = scandir(APP_ROOT.'/design/themes/wap');
			foreach($wapThemesDir as $wapTheme)
			{
				if($wapTheme != '.' && $wapTheme != '..' && $wapTheme != '.htaccess')
				{
					$wap = new Ini(APP_ROOT.'/design/themes/wap/'.$wapTheme.'/theme.ini');
					echo Lang::get('name').': '.$wap->read('theme_name').'<br/>'.
					(file_exists(APP_ROOT.'/design/themes/wap/'.$wapTheme.'/preview.png') ? '<a href="/design/themes/wap/'.$wapTheme.'/preview.png"><img src="/design/themes/wap/'.$wapTheme.'/preview.png" alt="preview" height="150px" /></a><br/>' : false).'
						'.($wap->read('theme_author') != false ? Lang::get('padmin_author', 'padmin').': '.$wap->read('theme_author') : false).' '.($wap->read('theme_site') !=false ? '(<a href="'.$wap->read('theme_site').'">'.str_replace('http://', '', $wap->read('theme_site').')').'</a><br/>' : false).'<br/>';
				}
			}
		}
		echo '</div>';
		
		echo '<div class="post">'. System::image('android.png').' <a href="/padmin/index/themes?touch"><b>'.Lang::get('padmin_themes_touch', 'padmin').'</b></a><br/>';
		if(isset($_GET['touch']))
		{
			$touchThemesDir = scandir(APP_ROOT.'/design/themes/touch');
			foreach($touchThemesDir as $touchTheme)
			{
				if($touchTheme != '.' && $touchTheme != '..' && $touchTheme != '.htaccess')
				{
					$touch = new Ini(APP_ROOT.'/design/themes/touch/'.$touchTheme.'/theme.ini');
					echo Lang::get('name').': '.$touch->read('theme_name').'<br/>'.
					(file_exists(APP_ROOT.'/design/themes/touch/'.$touchTheme.'/preview.png') ? '<a href="/design/themes/touch/'.$touchTheme.'/preview.png"><img src="/design/themes/touch/'.$touchTheme.'/preview.png" alt="preview" height="150px" /></a><br/>' : false).'
						'.($touch->read('theme_author') != false ? Lang::get('padmin_author', 'padmin').':'.$touch->read('theme_author') : false).' '.($touch->read('theme_site') !=false ? '(<a href="'.$touch->read('theme_site').'">'.str_replace('http://', '', $touch->read('theme_site').')').'</a><br/>' : false).'<br/>';
				}
			}
		}
		echo '</div>';
		
		echo '<div class="post">'. System::image('computer.png').' <a href="/padmin/index/themes?web"><b>'.Lang::get('padmin_themes_web', 'padmin').'</b></a><br/>';
		if(isset($_GET['web']))
		{
			$webThemesDir = scandir(APP_ROOT.'/design/themes/web');
			foreach($webThemesDir as $webTheme)
			{
				if($webTheme != '.' && $webTheme != '..' && $webTheme != '.htaccess')
				{
					$web = new Ini(APP_ROOT.'/design/themes/web/'.$webTheme.'/theme.ini');
					echo Lang::get('name').': '.$web->read('theme_name').'<br/>'.
					(file_exists(APP_ROOT.'/design/themes/web/'.$webTheme.'/preview.png') ? '<a href="/design/themes/web/'.$webTheme.'/preview.png"><img src="/design/themes/web/'.$webTheme.'/preview.png" alt="preview" height="150px" /></a><br/>' : false).
					($web->read('theme_author') != false ? Lang::get('padmin_author', 'padmin').': '.$web->read('theme_author') : false).' '.($web->read('theme_site') !=false ? '(<a href="'.$web->read('theme_site').'">'.str_replace('http://', '', $web->read('theme_site').')').'</a><br/>' : false).'<br/>';
				}
			}
		}
		echo '</div>';
	}
		
	public function actionInstall_theme()
	{
		if(!User::loged() || User::level() < 2) 
		{
			$this->redirect('/');
		}
		
		$themeError = '';
		
		if(isset($_GET['upload']) && $_FILES['themeZip'])
		{
			$zipDir = APP_ROOT.'/tmp/';
			$themeType = '';
			$themeCDir = '';
						
			$themeZip = new Upload($_FILES['themeZip']);
			if($themeZip->uploaded)
			{
				$themeZip->allowed = array('application/zip');
				$themeZip->process($zipDir);
				if($themeZip->processed)
				{
					$zip = new PclZip($zipDir.$themeZip->file_src_name);
					$config = $zip->extract(PCLZIP_OPT_BY_NAME, "theme.ini", PCLZIP_OPT_PATH, APP_ROOT.'/tmp/');
					if($config != 0)
					{
						$zip->extract(PCLZIP_OPT_BY_NAME, "theme.ini", PCLZIP_OPT_PATH, APP_ROOT.'/tmp/');
						$ini = new Ini($zipDir."theme.ini");
						if($ini->read('theme_name') == false)
						{
							$themeError = 'Error #1: Argument <b>theme_name</b> is missed!';
						}
						elseif($ini->read('theme_dir') == false)
						{
							$themeError = 'Error #2: Argument <b>theme_dir</b> is missed!';
						}
						elseif($ini->read('theme_type') == false)
						{
							$themeError = 'Error #3: Argument <b>theme_type</b> is missed!';
						}
						elseif($ini->read('theme_author') == false)
						{
							$ini->write('theme_author', 'Unknown');
							$ini->updateFile();
						}
						
						if($themeError == '')
						{
							$themeType = $ini->read('theme_type');
							$themeCDir = $ini->read('theme_dir');
						}
					}
					else
					{
						$themeError = 'Error #4: Theme\'s descriptor is missed! ('.$zip->errorInfo(true).')';
					}
										
					if($themeError == '')
					{
						$zip->extract(PCLZIP_OPT_PATH, APP_ROOT.'/design/themes/'.$themeType.'/'.$themeCDir);
						unlink($zipDir.$themeZip->file_src_name);
						unlink($zipDir.'theme.ini');
						$themeZip->clean();
						$this->redirect('/padmin/index/themes#'.$themeCDir);
					}
				}
			}
		}
		
		$this->getHeader(Lang::get('padmin_themes_manager', 'padmin'));
		$this->render('install_theme');
		$this->getFooter();
	}
	
	public function actionWidgets()
	{
		if(!User::loged() || User::level() < 2) 
		{
			$this->redirect('/');
		}
		
		$this->getHeader(Lang::get('padmin_widgets_manager', 'padmin'));
		$widgets = scandir(APP_ROOT.'/protected/widgets');
		if(isset($_GET['config']) && in_array($_GET['config'], $widgets))
		{
			require_once(APP_ROOT.'/protected/widgets/'.Filters::input($_GET['config']).'/pages/settings.php');
			$this->getFooter();
			exit;
		}
		$this->render('widgets');
		$this->getFooter();
	}
	
	public function listOfWidgets()
	{
		$widgets = scandir(APP_ROOT.'/protected/widgets');
		foreach($widgets as $widget)
		{
			if($widget != '.' && $widget != '..' && $widget != '.htaccess')
			{
				$ini = new Ini(APP_ROOT.'/protected/widgets/'.$widget.'/widget.ini');
				echo '<div class="post">'. System::image('arrow.png').' <a href="/padmin/index/widgets?'.$widget.'"><b>'.$widget.' </b></a><br/>';
				if(isset($_GET[$widget]))
				{
					if(isset($_GET['activate']))
					{
						$ini->write('widget_active', 'true');
						$ini->updateFile();
						$this->redirect('/padmin/index/widgets?'.$widget);
					}
					elseif(isset($_GET['deactivate']))
					{
						$ini->write('widget_active', 'false');
						$ini->updateFile();
						$this->redirect('/padmin/index/widgets?'.$widget);
					}
					
					echo ($ini->read('widget_author') != false ? Lang::get('padmin_author', 'padmin').': '.$ini->read('widget_author') : false).' '.($ini->read('widget_link') !=false ? '(<a href="'.$ini->read('widget_link').'">'.str_replace('http://', '', $ini->read('widget_link').')').'</a>' : false).'<br/>
					'.($ini->read('widget_version') !=false ? Lang::get('padmin_version', 'padmin').': '.$ini->read('widget_version') : false).'<br/> 
					'.($ini->read('widget_type') !=false ? Lang::get('padmin_type', 'padmin').': '.$ini->read('widget_type') : false).'<br/> 
					'.($ini->read('widget_active') == 'true' ? '[<a href="/padmin/index/widgets?'.$widget.'&deactivate">'.Lang::get('padmin_deactive', 'padmin').'</a>]' : '[<a href="/padmin/index/widgets?'.$widget.'&activate">'.Lang::get('padmin_active', 'padmin').'</a>]').'<br/>
					'.(file_exists(APP_ROOT.'/protected/widgets/'.$widget.'/pages/settings.php') ? '[<a href="/padmin/index/widgets?config='.$widget.'">'. Lang::get('padmin_widgets_config', 'padmin') .'</a>]' : false);
				}
				echo '</div>';
			}
		}
	}
	
	public function actionInstall_widget()
	{
		if(!User::loged() || User::level() < 2) 
		{
			$this->redirect('/');
		}
		
		$widgetError = '';
		
		if(isset($_GET['upload']) && $_FILES['widgetZip'])
		{
			$zipDir = APP_ROOT.'/tmp/';
			$widgetCDir = '';
						
			$widgetZip = new Upload($_FILES['widgetZip']);
			if($widgetZip->uploaded)
			{
				$widgetZip->allowed = array('application/zip');
				$widgetZip->process($zipDir);
				if($widgetZip->processed)
				{
					$zip = new PclZip($zipDir.$widgetZip->file_src_name);
					$config = $zip->extract(PCLZIP_OPT_BY_NAME, "widget.ini", PCLZIP_OPT_PATH, APP_ROOT.'/tmp/');
					if($config != 0)
					{
						$zip->extract(PCLZIP_OPT_BY_NAME, "widget.ini", PCLZIP_OPT_PATH, APP_ROOT.'/tmp/');
						$ini = new Ini($zipDir."widget.ini");
						if($ini->read('widget_name') == false)
						{
							$widgetError = 'Error #1: Argument <b>widget_name</b> is missed!';
						}
						elseif($ini->read('widget_author') == false)
						{
							$ini->write('widget_author', 'Unknown');
							$ini->updateFile();
						}
						elseif($ini->read('widget_active') == false)
						{
							$ini->write('widget_active', 'true');
							$ini->updateFile();
						}
						
						if($widgetError == '')
						{
							$widgetCDir = $ini->read('widget_dir');
						}
					}
					else
					{
						$widgetError = 'Error #4: Widget\'s descriptor is missed! ('.$zip->errorInfo(true).')';
					}
										
					if($widgetError == '')
					{
						$zip->extract(PCLZIP_OPT_PATH, APP_ROOT.'/protected/widgets/'.$widgetCDir);
						unlink($zipDir.$widgetZip->file_src_name);
						unlink($zipDir.'widget.ini');
						$widgetZip->clean();
						$this->redirect('/padmin/index/widgets#'.$widgetCDir);
					}
				}
			}
		}
		
		$this->getHeader(Lang::get('padmin_widgets_install', 'padmin'));
		$this->render('install_widget');
		$this->getFooter();
	}
	
	public function actionMainpage()
	{
		if(!User::loged() || User::level() < 2) 
		{
			$this->redirect('/');
		}
		
		if(isset($_GET['save']))
		{
			$tags = array('<script(.*)>', '</script>', '<iframe(.*)>', '</iframe>', '<object(.*)>', '</object>');
			$content = str_replace($tags, '', $_POST['source']);
			$source = Filters::input($content);
			if($content != '')
			{
				$db = PerfDb::init();
				$db->query("UPDATE `system` SET `mainpage` = '$source'");
				$this->redirect('/padmin/index/mainpage');
			}
		}

		$this->getHeader(Lang::get('padmin_index_manager', 'padmin'));
		$this->render('mainpage');
		$this->getFooter();
	}
	
	public function actionAds()
	{
		if(!User::loged() || User::level() < 2) 
		{
			$this->redirect('/');
		}
		
		$this->getHeader(Lang::get('padmin_ads_manager', 'padmin'));
		$this->render('ads');
		$this->getFooter();
	}
	
	public function linksList()
	{
		$db = PerfDb::init();
		echo '<div class="menu">'.
		System::image('arrow.png').' <a href="/padmin/index/ads?header"><b>'. Lang::get('padmin_ads_header', 'padmin') .'</b></a></div>';
		if(isset($_GET['header']))
		{
			$headerLinks = $db->query("SELECT * FROM `ads` WHERE `type` = '1'");
			foreach($headerLinks as $link)
			{
				echo '<div class="post">» <a href="/padmin/index/link_edit?id='.$link['id'].'">'. $link['name'] .'</a></div>';
			}
		}
		
		echo '<div class="menu">'.
		System::image('arrow.png').' <a href="/padmin/index/ads?footer"><b>'. Lang::get('padmin_ads_footer', 'padmin') .'</b></a></div>';
		if(isset($_GET['footer']))
		{
			$footerLinks = $db->query("SELECT * FROM `ads` WHERE `type` = '2'");
			foreach($footerLinks as $link)
			{
				echo '<div class="post">» <a href="/padmin/index/link_edit?id='.$link['id'].'">'. $link['name'] .'</a></div>';
			}
		}
	}
	
	public function actionLink_add()
	{
		if(!User::loged() || User::level() < 2) 
		{
			$this->redirect('/');
		}
		
		$db = PerfDb::init();
		$error = false;
		if(isset($_GET['add']))
		{
			$linkUrl = Filters::input($_POST['link_url']);
			$linkName = Filters::input($_POST['link_name']);
			$linkImage = Filters::input($_POST['link_image']);
			$linkType = Filters::num($_POST['link_type']);
			if($linkType < 1 || $linkType > 2)
			{
				$linkType = 2;
			}
			$linkRedirect = (isset($_POST['link_redirect']) ? 1 : 0);
			if(!empty($linkUrl) && !empty($linkName))
			{
				$db->query("INSERT INTO `ads` SET `name` = '$linkName', `link` = '$linkUrl', `image` = '$linkImage', `type` = '$linkType', `redirect` = '$linkRedirect'");
				$this->redirect('/padmin/index/ads?'.($linkType == 1 ? 'header' : 'footer'));
			}
		}
			
			
		$this->getHeader(Lang::get('padmin_ads_add', 'padmin'));
		$this->render('link_add');
		$this->getFooter();
	}
	
	public function actionLink_edit()
	{
		if(!User::loged() || User::level() < 2) 
		{
			$this->redirect('/');
		}
		
		$db = PerfDb::init();
		
		if(!isset($_GET['id']) || $db->query("SELECT * FROM `ads` WHERE `id` = '".Filters::num($_GET['id'])."'")->rowCount() != 1)
		{
			$this->redirect('/padmin/index/ads?');
		}
		
		$error = false;
		
		if(isset($_GET['save']))
		{
			$linkUrl = Filters::input($_POST['link_url']);
			$linkName = Filters::input($_POST['link_name']);
			$linkImage = Filters::input($_POST['link_image']);
			$linkType = Filters::num($_POST['link_type']);
			if($linkType < 1 || $linkType > 2)
			{
				$linkType = 2;
			}
			$linkRedirect = (isset($_POST['link_redirect']) ? 1 : 0);
			// print_r($_POST);
			if(!empty($linkUrl) && !empty($linkName))
			{
				$db->query("UPDATE `ads` SET `name` = '$linkName', `link` = '$linkUrl', `image` = '$linkImage', `type` = '$linkType', `redirect` = '$linkRedirect' WHERE `id` = '".Filters::num($_GET['id'])."'");
				$this->redirect('/padmin/index/ads?'.($linkType == 1 ? 'header' : 'footer'));
			}
		}
		elseif(isset($_GET['delete']))
		{
			$db->query("DELETE FROM `ads` WHERE `id` = '".Filters::num($_GET['id'])."' LIMIT 1");
			$this->redirect('/padmin/index/ads');
		}
		
		$linkData = $db->query("SELECT * FROM `ads` WHERE `id` = '".Filters::num($_GET['id'])."'")->fetch();
		
		$this->getHeader(Lang::get('padmin_ads_edit', 'padmin'));
		$this->render('link_edit', array('link' => $linkData));
		$this->getFooter();
	}
	
	public function actionStatic_pages()
	{
		if(!User::loged() || User::level() < 2) 
		{
			$this->redirect('/');
		}
		
		$db = PerfDb::init();
		
		$pages = $db->query("SELECT * FROM `pages` ORDER BY name ASC");
		
		$this->getHeader(Lang::get('padmin_static_pages', 'padmin'));
		$this->render('pages', array('pages' => $pages));
		$this->getFooter();
	}
	
	public function actionPage_add()
	{
		if(!User::loged() || User::level() < 2) 
		{
			$this->redirect('/');
		}
		
		$db = PerfDb::init();
		
		if(isset($_GET['add']))
		{
			$name = Filters::input($_POST['page_name']);
			$code = Filters::input($_POST['text']);
			
			
			$_name = strtr($name, array("Ґ" => "G", "Ё" => "YO", "Є" => "YE", "Ї" => "YI", "І" => "I",
				"і" => "i", "ґ" => "g", "ё" => "yo", "є" => "ye",
				"ї" => "yi", "А" => "A", "Б" => "B", "В" => "V", "Г" => "G",
				"Д" => "D", "Е" => "E", "Ж" => "ZH", "З" => "Z", "И" => "I",
				"Й" => "Y", "К" => "K", "Л" => "L", "М" => "M", "Н" => "N",
				"О" => "O", "П" => "P", "Р" => "R", "С" => "S", "Т" => "T",
				"У" => "U", "Ф" => "F", "Х" =>  "H","Ц" => "TS", "Ч" => "CH",
				"Ш" => "SH", "Щ" => "SCH", "Ъ" => "", "Ы" => "I", "Ь" => "",
				"Э" => "E", "Ю" => "YU", "Я" => "YA", "а" => "a", "б" => "b",
				"в" => "v", "г" => "g", "д" => "d", "е" => "e", "ж" => "zh",
				"з" => "z", "и" => "i", "й" => "y", "к" => "k", "л" => "l",
				"м" => "m", "н" => "n", "о" => "o", "п" => "p", "р" => "r",
				"с" => "s", "т" => "t", "у" => "u", "ф" => "f", "х" => "h",
				"ц" => "ts", "ч" => "ch", "ш" => "sh", "щ" => "sch", "ъ" => "",
				"ы" => "i", "ь" => "", "э" => "e", "ю" => "yu", "я" => "ya",
				" " => "-", "_" => "-"));
			
			$_name = preg_replace('/[^а-яА-Яa-zA-Z0-9_-]/is', '', $_name);
			if(!empty($name) && !empty($code))
			{
				$db->query("INSERT INTO `pages` SET `name` = '$name', `translit_name` = '".strtolower($_name)."', `content` = '$code'");
				$this->redirect('/padmin/index/static_pages');
			}
		}
		
		$this->getHeader(Lang::get('padmin_static_pages', 'padmin'));
		$this->render('page_add');
		$this->getFooter();
	}
	
	public function actionPage_edit()
	{
		$db = PerfDb::init();
	
		if(!User::loged() || User::level() < 2 || $db->query("SELECT * FROM `pages` WHERE `id` = '". Filters::input($_GET['id']) ."'")->rowCount() != 1) 
		{
			$this->redirect('/');
		}
		
		if(isset($_GET['save']))
		{
			$name = Filters::input($_POST['page_name']);
			$code = Filters::input($_POST['text']);
			
			
			$_name = strtr($name, array("Ґ" => "G", "Ё" => "YO", "Є" => "YE", "Ї" => "YI", "І" => "I",
				"і" => "i", "ґ" => "g", "ё" => "yo", "є" => "ye",
				"ї" => "yi", "А" => "A", "Б" => "B", "В" => "V", "Г" => "G",
				"Д" => "D", "Е" => "E", "Ж" => "ZH", "З" => "Z", "И" => "I",
				"Й" => "Y", "К" => "K", "Л" => "L", "М" => "M", "Н" => "N",
				"О" => "O", "П" => "P", "Р" => "R", "С" => "S", "Т" => "T",
				"У" => "U", "Ф" => "F", "Х" =>  "H","Ц" => "TS", "Ч" => "CH",
				"Ш" => "SH", "Щ" => "SCH", "Ъ" => "", "Ы" => "I", "Ь" => "",
				"Э" => "E", "Ю" => "YU", "Я" => "YA", "а" => "a", "б" => "b",
				"в" => "v", "г" => "g", "д" => "d", "е" => "e", "ж" => "zh",
				"з" => "z", "и" => "i", "й" => "y", "к" => "k", "л" => "l",
				"м" => "m", "н" => "n", "о" => "o", "п" => "p", "р" => "r",
				"с" => "s", "т" => "t", "у" => "u", "ф" => "f", "х" => "h",
				"ц" => "ts", "ч" => "ch", "ш" => "sh", "щ" => "sch", "ъ" => "",
				"ы" => "i", "ь" => "", "э" => "e", "ю" => "yu", "я" => "ya",
				" " => "-", "_" => "-"));
			
			$_name = preg_replace('/[^а-яА-Яa-zA-Z0-9_-]/is', '', $_name);
			if(!empty($name) && !empty($code))
			{
				$db->query("UPDATE `pages` SET `name` = '$name', `translit_name` = '".strtolower($_name)."', `content` = '$code' WHERE `id` = '". Filters::input($_GET['id']) ."'");
				$this->redirect('/padmin/index/static_pages');
			}
		}
		elseif(isset($_GET['delete']))
		{
			$db->query("DELETE FROM `pages` WHERE `id` = '". Filters::input($_GET['id']) ."' LIMIT 1");
				$this->redirect('/padmin/index/static_pages');
		}
		
		$page = $db->query("SELECT * FROM `pages` WHERE `id` = '". Filters::input($_GET['id']) ."'")->fetch();
		
		$this->getHeader(Lang::get('padmin_static_pages_edit', 'padmin'));
		$this->render('page_edit', array('page' => $page));
		$this->getFooter();
	}
	
}