Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- Copyright © Eleanor CMS
- URL: http://eleanor-cms.su, http://eleanor-cms.ru, http://eleanor-cms.com, http://eleanor-cms.net
- E-mail: support@eleanor-cms.su, support@eleanor-cms.ru
- Developing: Alexander Sunvas*
- Interface: Rumin Sergey
- =====
- *Pseudonym. See addons/copyrights/info.txt for more information.
- */
- $start=microtime();#Начало отсчета времени движка.
- define('CMS',true);
- require dirname(__file__).'/classes/mainclass.php';
- $Mainclass=MainClass::getInstance();
- $Mainclass->start_time=$start;
- $Mainclass->service_id='2';#ID сервиса
- $Mainclass->file_name=basename(__file__);
- if(0<$t=strpos($Mainclass->site_path,$Mainclass->file_name))
- $Mainclass->site_path=$t==1 ? '' : substr($Mainclass->site_path,0,$t-1);
- $Mainclass->on_begin_callback='SiteHead';
- $Mainclass->LoadService();#Эта строка должна быть выше следующей! Иначе бан работать не будет.
- $Mainclass->LoadOptions(array('system','blocker','login','mailer','public'));
- $Mainclass->Url->furl=$Mainclass->vars['furl'];
- $Mainclass->Template->default_replace['site']=$Mainclass->domain.$Mainclass->site_path;
- $Mainclass->Template->default_replace['sitename']=$Mainclass->vars['site_name'];
- $Mainclass->Template->default_replace['multilang']=$Mainclass->vars['multilang'];
- $title=$head_addon='';
- $jscripts=array('js/jquery.min.js');//http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js');
- $Mainclass->Url->s_delimeter=$Mainclass->vars['url_static_delimeter'];
- $Mainclass->Url->s_defis=$Mainclass->vars['url_static_defis'];
- $Mainclass->Url->ending=$Mainclass->vars['url_static_ending'];
- $Mainclass->Url->rep_space=$Mainclass->vars['url_rep_space'];
- if(isset($_GET['newtpl']) and $Mainclass->vars['templates'] and $themes=@unserialize($Mainclass->vars['templates']) and in_array($_GET['newtpl'],$themes))
- {
- if($Mainclass->Login->IsUser())
- $Mainclass->Account->Manage->UpdateUser(array('theme'=>$_GET['newtpl']));
- else
- $Mainclass->SCookie('theme',$_GET['newtpl']);
- ExitBack();
- }
- $Mainclass->get_lang='';#Этот параметр отвечает за язык, содержащийся в ссылке.
- if($Mainclass->vars['multilang'])
- {
- if(isset($_GET['language']) and is_string($_GET['language']) and isset($Mainclass->langs[$_GET['language']]))
- {
- if($Mainclass->Login->IsUser())
- $Mainclass->Account->Manage->UpdateUser(array('lang'=>$_GET['language']));
- else
- $Mainclass->Functions->SetLangCookie($_GET['language'],$Mainclass->service.'_lang');
- $ref=$Mainclass->MyGetEnv('HTTP_REFERER');
- if(!$ref)
- Functions::Redirect($Mainclass->Functions->CorrectLangUrl('','',false));
- else
- try
- {
- Functions::Redirect($Mainclass->Functions->CorrectLangUrl($ref,$_GET['language']==ELEANOR_DEFAULT_LANGUAGE ? '' : substr($_GET['language'],0,3)));
- }
- catch(EE $e)
- {
- ExitBack();
- }
- die;
- }
- if($Mainclass->Login->IsUser() and $lang=$Mainclass->Account->GetValue('lang') and isset($Mainclass->langs[$lang]))
- $Mainclass->lang_name=$lang;
- else
- $Mainclass->Functions->GetLangCookie(true,$Mainclass->service.'_lang');
- if($Mainclass->lang_name!=ELEANOR_DEFAULT_LANGUAGE)
- $Mainclass->get_lang=substr($Mainclass->lang_name,0,3);
- $lang=$Mainclass->Url->ParseToValue('lang',false);
- $match=false;
- do
- {
- if(strlen($lang)==3)
- foreach($Mainclass->langs as $k=>$v)
- if(stripos($k,$lang)===0)
- {
- $match=true;
- break;
- }
- if(!$match)
- {
- if($Mainclass->lang_name!=ELEANOR_DEFAULT_LANGUAGE)
- {
- $k=ELEANOR_DEFAULT_LANGUAGE;
- $match=true;
- if($Mainclass->Login->IsUser())
- $Mainclass->Account->Manage->UpdateUser(array('lang'=>ELEANOR_DEFAULT_LANGUAGE));
- else
- $Mainclass->Functions->SetLangCookie(false,$Mainclass->service.'_lang');
- }
- break;
- }
- if($Mainclass->lang_name!=$k)
- $Mainclass->Functions->SetLangCookie($k,$Mainclass->service.'_lang');
- if($k==ELEANOR_DEFAULT_LANGUAGE)
- $match=false;
- $Mainclass->Url->string=substr($Mainclass->Url->string,stripos($Mainclass->Url->string,$lang)+4);
- }
- while(false);
- if($match)
- {
- $Mainclass->lang_name=$k;
- $Mainclass->get_lang=$lang;
- }
- }
- $Mainclass->LoadLanguage('langs','main','user-%');
- $Mainclass->Cache->FilterLangVars();
- if($Mainclass->services[$Mainclass->service_id]['login']==$Mainclass->services[1]['login'])
- {
- $old_service=$Mainclass->service;
- $old_id=$Mainclass->service_id;
- $Mainclass->service='admin';
- $Mainclass->service_id='1';
- }
- if(!$Mainclass->Login->IsUser())
- {
- $Mainclass->Login->Login();
- $Mainclass->LoadLanguage('langs','main','user-%');
- }
- $theme=$Mainclass->Login->IsUser() ? $Mainclass->Account->GetValue('theme') : $Mainclass->GCookie('theme');
- if($Mainclass->vars['templates'] and $themes=@unserialize($Mainclass->vars['templates']) and in_array($theme,$themes))
- $Mainclass->Template->theme=$theme;
- if($Mainclass->vars['site_closed'] and !$Mainclass->Permission->IsAdmin())
- {
- $Mainclass->Cache->FilterLangVars();
- $Mainclass->ShowDecoration(true,'');
- die($Mainclass->Template->GetThemeFile('Denied',array('domain'=>$Mainclass->domain)));
- }
- if(isset($old_service))
- {
- $Mainclass->service=$old_service;
- $Mainclass->service_id=$old_id;
- }
- $Mainclass->Account->AddSession();
- if($Mainclass->Permission->IsBanned())
- throw new EE(null,EE::BAN);
- $Mainclass->Account->CheckBanned();
- if($Mainclass->GetModVal('not_load_module'))
- die;
- if(strcasecmp('index'.$Mainclass->Url->ending,$Mainclass->Url->string)==0 or !$Mainclass->MyGetEnv('QUERY_STRING'))
- {
- $Mainclass->Url->string='';
- MainPage();
- }
- $module_name=isset($_GET['module']) ? $_GET['module'] : $Mainclass->Url->ParseToValue('module');
- if(!$module_name and isset($_POST['module']))
- $module_name=$_POST['module'];
- if($module_name)
- {
- $Mainclass->Db->FQuery('SELECT `id`,`services`,`name`,`title`,`path`,`multiservice`,`file`,`is_class`,`resources`,`image`,`user_groups`,`blocks`,`editor` FROM {"0"} WHERE `name`={"1"} AND `active`=1 LIMIT 1',array('modules','s_'.$module_name),__file__,__line__);
- if($Mainclass->Db->Num_rows()==0)
- MainPage($module_name);
- $arr=$Mainclass->Db->Fetch_Assoc();
- if($arr['user_groups'])
- {
- $groups=explode(',',trim($arr['user_groups'],','));
- $user_groups=$Mainclass->Account->GetUserGroups();
- if(count(array_intersect($groups,$user_groups))==0)
- {
- Head();
- echo $Mainclass->Template->Message($Mainclass->lang['main']['acc_den'],'error');
- die;
- }
- }
- if(strpos($arr['services'],','.$Mainclass->service_id.',')===false and $arr['resources'])
- {
- $resources=explode('·',$arr['resources']);
- foreach($resources as &$v)
- {
- $temp=explode('=',$v,2);
- if($Mainclass->service==$temp[0])
- {
- $arr['file']=$temp[1];
- break;
- }
- }
- }
- if(!$arr['file'])
- MainPage();
- $Mainclass->module['name']=$arr['name'];
- $Mainclass->module['title']=$arr['title'];
- $Mainclass->module['image']=$arr['image'];
- $Mainclass->module['path']=$arr['path'];
- $Mainclass->module['int_name']=strpos($Mainclass->module['path'],'modules/')==0 ? basename($arr['path']) : $arr['name'];
- $Mainclass->module['general']=false;
- $Mainclass->module['id']=$arr['id'];
- if($arr['editor']>=0)
- $Mainclass->module['editor']=$arr['editor'];
- if($arr['blocks'])
- $Mainclass->Blocks->hidden_types=explode(',',$arr['blocks']);
- $Mainclass->Url->SetPrefix($Mainclass->vars['multilang'] ? array('lang'=>$Mainclass->get_lang,'module'=>$Mainclass->module['name']) : array('module'=>$Mainclass->module['name']));
- if(!$Mainclass->LoadModule($arr['path'],$arr['multiservice'],$arr['file'] ? $arr['file'] : 'index',$arr['is_class']))
- {
- $Mainclass->Url->SetPrefix('');
- ExitPage(false);
- }
- }
- elseif(isset($_REQUEST['direct']) and is_string($_REQUEST['direct']) and is_file($f=$Mainclass->root_path.'addons/direct/'.preg_replace('#[^a-z0-9]+#i','',$_REQUEST['direct']).'.php'))
- include $f;
- else
- MainPage();
- function ExitPage($redirect=true)
- {global $Mainclass;
- if($redirect)
- {
- header('HTTP/1.1 404 Not Found');
- Functions::Redirect(ELEANOR_PROTOCOL.$Mainclass->domain.$Mainclass->site_path.'/'.$Mainclass->Url->DynamicBegin().htmlspecialchars_decode($Mainclass->Url->ConstructUrl(array('module'=>'errors','url'=>'404'),false)));
- }
- else
- {
- #Страница с Error
- $oldm=$Mainclass->module;
- $Mainclass->module['name']='errors';
- $Mainclass->module['path']='modules/errors';
- $Mainclass->Url->string='';
- $_GET['url']=404;
- $Mainclass->Url->SetPrefix($Mainclass->vars['multilang'] ? array('lang'=>$Mainclass->get_lang,'module'=>'errors') : array('module'=>'errors'),false);
- if(!include $Mainclass->root_path.'modules/errors/user/index.php')
- ExitPage(true);
- $Mainclass->module=$oldm;
- die;
- }
- }
- function SiteHead()
- {global $title,$jscripts,$Mainclass,$head_addon;
- if($site_title=$Mainclass->GetModVal('site_title'));
- elseif(!$title or !empty($Mainclass->module['general']))
- $site_title=$Mainclass->vars['site_name'];
- else
- $site_title=(is_array($title) ? implode($Mainclass->vars['site_defis'],$title) : $title).($Mainclass->vars['site_name'] ? $Mainclass->vars['site_defis'].$Mainclass->vars['site_name'] : '');
- $descr=$Mainclass->GetModVal('general') ? $Mainclass->vars['site_description'] : $Mainclass->GetModVal('description');
- if($descr)
- $descr="\r\n".'<meta name="description" content="'.str_replace('"','"',$descr).'" />';
- $head='<meta http-equiv="content-type" content="text/html; charset='.ELEANOR_DISPLAYCHARSET.'" />
- <title>'.$site_title.'</title>
- <meta name="resource-type" content="document" />
- <meta name="generator" content="Eleanor CMS" />
- <meta name="copyright" content="'.str_replace('"','"',$Mainclass->vars['site_name']).'" />
- <meta name="keywords" content="'.(($keywords=$Mainclass->GetModVal('keywords')) ? $keywords : $Mainclass->vars['site_keywords']).'" />'
- .$descr
- .'<meta name="robots" content="index, follow" />
- <meta name="revisit-after" content="1 days" />
- <meta name="rating" content="general" />
- <meta name="eleanor_version" content="'.ELEANOR_VERSION.'" />
- <base href="'.ELEANOR_PROTOCOL.$Mainclass->domain.$Mainclass->site_path.'/" />'
- .(isset($head_addon) ? "\r\n".$head_addon."\r\n" : '');
- $head.='<script type="text/javascript">//<![CDATA[
- if(self.parent.frames.length != 0) self.parent.location="'.ELEANOR_PROTOCOL.$Mainclass->domain.$Mainclass->site_path.'";
- '.Strings::JsVars(
- array(
- 'cookie_domain' =>$Mainclass->vars['cookie_domain'],
- 'cookie_prefix' =>$Mainclass->vars['cookie_prefix'],
- 'cookie_path' =>$Mainclass->vars['cookie_path'],
- 'cookie_time' =>$Mainclass->vars['cookie_save_time'],
- 'site_path' =>$Mainclass->site_path,
- ),
- false
- ).'//]]></script>';
- $jscripts[]='js/lang-'.$Mainclass->lang_name.'.js';
- $jscripts[]='js/class_ajax.js';
- $jscripts[]='js/jMainclass.js';
- $jscripts=array_unique($jscripts);
- foreach($jscripts as &$v)
- $head.="\r\n".Strings::AddJS($v);
- $Mainclass->Template->default_replace['HEAD']=$head;
- }
- function ExitPrefix($addon=array())
- {global $Mainclass;
- if(!$addon)
- $addon=$Mainclass->Url->Prefix();
- elseif(is_array($addon))
- $addon=html_entity_decode($Mainclass->Url->ConstructUrl($addon));
- Functions::Redirect(ELEANOR_PROTOCOL.$Mainclass->domain.$Mainclass->site_path.'/'.$addon);
- }
- function ExitBack()
- {global $Mainclass;
- $ref=$Mainclass->MyGetEnv('HTTP_REFERER');
- if(!$ref)
- return ExitPrefix();
- else
- Functions::Redirect($ref);
- }
- function Head($now=true)
- {global $Mainclass;
- $Mainclass->ShowDecoration($now);
- }
- function MainPage($trystatic=false)
- {global $Mainclass;
- $Mainclass->Url->Parse();
- #Попробуем загрузить статическую страницу...
- if($trystatic)
- {
- require $Mainclass->root_path.'modules/static/plugins.php';
- $Plug=new $class_name($Mainclass);
- if($content=$Plug->GetPage($trystatic))
- {
- global $jscripts,$title;
- $title[]=$content['title'];
- $jscripts[]='js/rating.js';
- Head();
- echo $content['text'];
- die;
- }
- else
- ExitPage(false);#Functions::Redirect(ELEANOR_PROTOCOL.$Mainclass->domain.$Mainclass->site_path.'/');
- }
- #Тут мы по-умолчанию грузим модуль главной страницы, который настраивается в админке. Но никто не мешает пихануть сюда что-то свое.
- $Mainclass->module['general']=true;
- $Mainclass->LoadModule('modules/mainpage');
- die;
- }
- function DeleteEdit($darr,$earr)
- {global $Mainclass;
- if(!$Mainclass->Permission->IsAdmin())
- return '';
- $res='';
- if(is_array($earr))
- $res.='<a href="'.$Mainclass->services[1]['file'].'?section=modules&module='.$Mainclass->GetModVal('name').'&no_back=1&'.$Mainclass->Url->ConstructUrl($earr,false,false,false).'" title="'.$Mainclass->lang['main']['edit'].'"><img src="'.$Mainclass->Template->GetImage('edit.png').'" alt="'.$Mainclass->lang['main']['edit'].'" /></a>';
- if(is_array($darr))
- $res.='<a href="'.$Mainclass->services[1]['file'].'?section=modules&module='.$Mainclass->GetModVal('name').'&no_back=1&'.$Mainclass->Url->ConstructUrl($darr,false,false,false).'" title="'.$Mainclass->lang['main']['delete'].'"><img src="'.$Mainclass->Template->GetImage('delete.png').'" alt="'.$Mainclass->lang['main']['delete'].'" /></a>';
- return $res;
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement