From 00a2ba53a12e31420eae8740a2d35194da5ad19b Mon Sep 17 00:00:00 2001 From: Alexey Kachayev Date: Wed, 19 Aug 2009 12:01:35 +0000 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20rewrite=20rules=20=D0=B2?= =?UTF-8?q?=20=D1=80=D0=BE=D1=83=D1=82=D0=B5=D1=80=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/config.db.php | 2 +- engine/classes/Router.class.php | 46 +++++++++++++------ .../modules/viewer/plugs/function.router.php | 2 +- templates/skin/new/header_top.tpl | 18 ++++---- 4 files changed, 43 insertions(+), 25 deletions(-) diff --git a/config/config.db.php b/config/config.db.php index 4f537c9d..f1734d57 100644 --- a/config/config.db.php +++ b/config/config.db.php @@ -24,6 +24,6 @@ return array( 'user' => 'root', 'pass' => '', 'type' => 'mysql', - 'dbname' => 'ls_core', + 'dbname' => 'social', ); ?> \ No newline at end of file diff --git a/engine/classes/Router.class.php b/engine/classes/Router.class.php index cf05681c..c34d7dba 100644 --- a/engine/classes/Router.class.php +++ b/engine/classes/Router.class.php @@ -97,6 +97,13 @@ class Router extends Object { protected function LoadConfig() { //Конфиг роутинга, содержит соответствия URL и классов экшенов $this->aConfigRoute = Config::Get('router'); + // Переписываем конфиг согласно правилу rewrite + foreach ((array)$this->aConfigRoute['rewrite'] as $sPage=>$sRewrite) { + if(isset($this->aConfigRoute['page'][$sPage])) { + $this->aConfigRoute['page'][$sRewrite] = $this->aConfigRoute['page'][$sPage]; + unset($this->aConfigRoute['page'][$sPage]); + } + } } /** @@ -120,15 +127,15 @@ class Router extends Object { /** * Сначала запускаем инициализирующий экшен */ - require_once(DIR_SERVER_ROOT.'/classes/actions/Init.class.php'); + require_once(Config::Get('path.root.server').'/classes/actions/Init.class.php'); $oActionInit=new Init($this->oEngine); $oActionInit->InitAction(); $sActionClass=$this->DefineActionClass(); - require_once(DIR_SERVER_ROOT.'/classes/actions/'.$sActionClass.'.class.php'); + require_once(Config::Get('path.root.server').'/classes/actions/'.$sActionClass.'.class.php'); $sPrefixCustom=''; - if (file_exists(DIR_SERVER_ROOT."/classes/actions/".$sActionClass.'.class.custom.php')) { - require_once(DIR_SERVER_ROOT."/classes/actions/".$sActionClass.'.class.custom.php'); + if (file_exists(Config::Get('path.root.server')."/classes/actions/".$sActionClass.'.class.custom.php')) { + require_once(Config::Get('path.root.server')."/classes/actions/".$sActionClass.'.class.custom.php'); $sPrefixCustom='_custom'; } $sClassName=$sActionClass.$sPrefixCustom; @@ -296,22 +303,33 @@ class Router extends Object { } /** - * Функция, возвращающая ссылку на Action по переданому названию страницы + * Функция, возвращающая правильную адресацию по переданому названию страницы * * @param string $action * @return string */ static public function GetPath($action) { - $aRoutes = array_flip(self::getInstance()->aConfigRoute['page']); // Если пользователь запросил action по умолчанию - if($action == 'default') { - $action = self::getInstance()->aConfigRoute['config']['action_default']; - } - // Пытаемся найте соответствующий роут - if(!$sPage = @$aRoutes['Action'.ucfirst($action)]) { - return false; - } - return DIR_WEB_ROOT."/$sPage/"; + $sPage = ($action == 'default') + ? self::getInstance()->aConfigRoute['config']['action_default'] + : $action; + + // Смотрим, есть ли правило rewrite + $sPage = self::getInstance()->Rewrite($sPage); + return Config::Get('path.root.web')."/$sPage/"; + } + + /** + * Try to find rewrite rule for given page. + * On success return rigth page, else return given param. + * + * @param string $sPage + * @return string + */ + protected function Rewrite($sPage) { + return (isset($this->aConfigRoute['rewrite'][$sPage])) + ? $this->aConfigRoute['rewrite'][$sPage] + : $sPage; } } ?> \ No newline at end of file diff --git a/engine/modules/viewer/plugs/function.router.php b/engine/modules/viewer/plugs/function.router.php index db2d4a5a..5664122e 100644 --- a/engine/modules/viewer/plugs/function.router.php +++ b/engine/modules/viewer/plugs/function.router.php @@ -28,7 +28,7 @@ function smarty_function_router($aParams,&$oSmarty) { $oSmarty->trigger_error("Router: missing 'page' parametr"); return ; } - require_once(DIR_SERVER_ROOT.'/classes/engine/Router.class.php'); + require_once(Config::Get('path.root.engine').'/classes/Router.class.php'); if(!$sPath = Router::GetPath($aParams['page'])) { $oSmarty->trigger_error("Router: unknown 'page' given"); diff --git a/templates/skin/new/header_top.tpl b/templates/skin/new/header_top.tpl index 23bc7f23..cc9893b0 100644 --- a/templates/skin/new/header_top.tpl +++ b/templates/skin/new/header_top.tpl @@ -23,31 +23,31 @@

LiveStreet

{if $oUserCurrent}
{$oUserCurrent->getLogin()}
{else}
- {$aLang.user_login_submit} {$aLang.or} - {$aLang.registration_submit} + {$aLang.user_login_submit} {$aLang.or} + {$aLang.registration_submit}
{/if}