admin = $admin; switch($this->admin){ case false : $template_dir = $_SERVER['DOCUMENT_ROOT'] . '/templates/'; $compile_dir = $_SERVER['DOCUMENT_ROOT'] . '/templates_c/'; break; case true : $template_dir = $_SERVER['DOCUMENT_ROOT'] . '/templates/admin/'; $compile_dir = $_SERVER['DOCUMENT_ROOT'] . '/templates_c/admin/'; break; } $connect = "mysql://" . DB_USER . ":" . DB_PSW . "@" . DB_HOST . "/" . DB_BASE; $this->db = DB::connect($connect); if (PEAR::isError($this->db)) die($this->db->getMessage()); $this->db->query("set names cp1251"); $this->tree = new CDBTree($this->db, 'rules', 'id'); $this->cache = new Cache; $this->cache->path_cache = $_SERVER['DOCUMENT_ROOT'] . "/cache/sql/"; $this->tpl = new Smarty; $this->tpl->template_dir = $template_dir; $this->tpl->compile_dir = $compile_dir; $this->tpl->plugins_dir[] = $_SERVER['DOCUMENT_ROOT'] . '/plugins/'; } function setupClass($nameClass){ return new $nameClass($this->db,$this->tpl,$this->error,$this->cache); } function isAdminUser($user = array()){ if((isset($user['login']) && $user['login']==ADMIN_USER) && (isset($user['psw']) && $user['psw']==ADMIN_PSW)){ $_SESSION['admin']['login'] = $user['login']; $_SESSION['admin']['psw'] = $user['psw']; } if((isset($_SESSION['admin']['login']) && $_SESSION['admin']['login']==ADMIN_USER) && (isset($_SESSION['admin']['psw']) && $_SESSION['admin']['psw']==ADMIN_PSW))return true; return false; } function AdminUserExit(){ unset($_SESSION['admin']); } function getRulesOne($action,$lang = "ru"){ $sql = "SELECT A.id,A.action,M.modul"; if($lang=='ukr')$sql .= ",A.name_ukr as name,A.title_ukr as title,A.keywords_ukr as keywords,A.description_ukr as description,A.about_ukr as about"; else $sql .= ",A.name,A.title,A.keywords,A.description,A.about"; $sql .= " FROM rules A,modules M WHERE A.action=? AND M.id=A.modul_id limit 1"; $row = $this->db->getRow($sql,array($action),DB_FETCHMODE_ASSOC); $this->meta = array("title"=>$row['title'],"keywords"=>$row['keywords'],"description"=>$row['description'],"about"=>$row['about']); $this->tpl->assign('rules_info_one',$row); $this->tpl->assign('lang',$lang); $lang_prefix = ($lang == "ru") ? null : $lang . '/'; $this->tpl->assign('lang_prefix',$lang_prefix); return $row; } /* function includesElements(){ $dir = ($this->admin==true) ? "./includes/admin/" : "./includes/"; $includes_dir = opendir($dir); while ( ($inc_file = readdir($includes_dir)) != false ) if (strstr($inc_file,".php")) { include($dir . $inc_file); } } */ function trim(&$data){ foreach($data as $key=>$value){ if(is_array($data[$key]))$this->trim($data[$key]); else $data[$key] = trim($value); } } function valid($data){ if(isset($data['url_action'])){ if( !preg_match("/^.{1,20}$/i",$data['url_action']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ (URL - Íàçâàíèå)."; elseif($data['url_action'] == $this->rules) $this->error[] = "Îøèáêà. Èñïîëüçîâàíèÿ äàííîãî íàçâàíèÿ çàïðåùåíî!"; } if(isset($data['name'])){ if( !preg_match("/^.{1,50}$/i",$data['name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ (Íàçâàíèå)."; } return ( count($this->error) ) ? true : false; } function rulesSaveAction($data){ $id = (isset($data['action_id']) && $data['action_id']>0) ? $data['action_id'] : 1; $fields_values = array( "parent_id"=>$id ,"action"=>$data['url_action'] ,"name"=>$data['name'] ,"name_ukr"=>$data['name_ukr'] ,"title"=>$data['title'] ,"title_ukr"=>$data['title_ukr'] ,"about"=>$data['about'] ,"about_ukr"=>$data['about_ukr'] ,"description"=>$data['description'] ,"description_ukr"=>$data['description_ukr'] ,"keywords"=>$data['keywords'] ,"keywords_ukr"=>$data['keywords_ukr'] ,"modul_id"=>$data['modul_id'] ); if(isset($data['update_id']) && $data['update_id']>0){ $this->db->autoExecute("rules", $fields_values, DB_AUTOQUERY_UPDATE,"id={$data['update_id']}"); }else{ $this->tree->insert($id,$fields_values); } } function viewRules(){ $sql = "select * from rules where _level>0 ORDER BY _left"; $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); $this->tpl->assign('rules',$row); } function viewRulesBegin(){ $sql = "select * from rules where parent_id=1 ORDER BY _left"; $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); $this->tpl->assign('rules_begin',$row); } function viewRulesParent($id = 2){ $sql = "select * from rules where parent_id=? ORDER BY _left"; $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign('rules_parent',$row); } function viewOneRules($id){ $sql = "select * from rules where id=? limit 1"; $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign('rules_one',$row); } function linkLang(){ $REQUEST_URI = substr(str_replace(array("/ukr","/ru","/eng","lang=ukr","lang=ru","lang=eng"),null,$_SERVER['REQUEST_URI']),1); /* $link_rus = ( preg_match("/(ukr|rus|eng)/i", $_SERVER['REQUEST_URI']) ) ? substr(preg_replace("/(ukr|rus|eng)/i",'',$_SERVER['REQUEST_URI']),1) : 'uvg/'; $link_ukr = ( preg_match("/(ukr|rus|eng)/i", $_SERVER['REQUEST_URI']) ) ? substr(preg_replace("/(ukr|rus|eng)/i",'ukr',$_SERVER['REQUEST_URI']),1) : 'uvg/ukr' . $URL; $link_eng = ( preg_match("/(ukr|rus|eng)/i", $_SERVER['REQUEST_URI']) ) ? substr(preg_replace("/(ukr|rus|eng)/i",'eng',$_SERVER['REQUEST_URI']),1) : 'uvg/eng' . $URL; */ $REQUEST_URI = eregi_replace("^ucse\/", null, $REQUEST_URI); $link_ukr = "ukr/" . $REQUEST_URI; $link_rus = $REQUEST_URI; $this->tpl->assign('link_rus', $link_rus ); $this->tpl->assign('link_ukr', $link_ukr ); /* $this->tpl->assign('link_rus', 'http://'.$_SERVER['HTTP_HOST'] .'/'. $link_rus ); $this->tpl->assign('link_ukr', 'http://'.$_SERVER['HTTP_HOST'] .'/'. $link_ukr ); $this->tpl->assign('link_eng', 'http://'.$_SERVER['HTTP_HOST'] .'/'. $link_eng ); */ } function rulesDelete($id){ $this->tree->delete($id); } function meta(){ $this->tpl->assign('meta',$this->meta); } function error(){ $this->tpl->assign('error',$this->error); } function displayRules(){ $this->tpl->assign('action_modules',$this->db->getAll("select * from modules",array(),DB_FETCHMODE_ASSOC)); $this->tpl->assign('tpl',"rules.tpl"); } function displayAdmin(){ $this->tpl->display("admin.tpl"); } function display(){ $this->tpl->display("index.tpl"); } } ?>