1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-01 05:55:02 +03:00

функционал конфигов для модулей на примере модуля "page" - управление статическими страницами

This commit is contained in:
Mzhelskiy Maxim 2009-04-10 12:34:20 +00:00
parent 49e6bd7ba4
commit 49f3d31ace
9 changed files with 207 additions and 50 deletions

View file

@ -68,8 +68,7 @@ class Router extends Object {
*
*/
protected function __construct() {
//Конфиг роутинга, содержит соответствия URL и классов экшенов
$this->aConfigRoute=include(DIR_SERVER_ROOT."/config/config.route.php");
$this->LoadConfig();
if (get_magic_quotes_gpc()) {
func_stripslashes($_REQUEST);
@ -107,6 +106,31 @@ class Router extends Object {
$this->Viewer_Display($this->oAction->GetTemplate());
}
/**
* Выполняет загрузку конфигов роутинга
*
*/
protected function LoadConfig() {
//Конфиг роутинга, содержит соответствия URL и классов экшенов
$this->aConfigRoute=include(DIR_SERVER_ROOT."/config/config.route.php");
/**
* Ищет конфиги модулей и объединяет их с текущим
*/
$sDirConfig=DIR_SERVER_ROOT.'/config/modules/';
if ($hDirConfig = opendir($sDirConfig)) {
while (false !== ($sDirModule = readdir($hDirConfig))) {
if ($sDirModule !='.' and $sDirModule !='..' and is_dir($sDirConfig.$sDirModule)) {
$sFileConfig=$sDirConfig.$sDirModule.'/config.route.php';
if (file_exists($sFileConfig)) {
$aConfigModule=include($sFileConfig);
$this->aConfigRoute=array_merge_recursive($this->aConfigRoute,$aConfigModule);
}
}
}
closedir($hDirConfig);
}
}
public function getStats() {
return array('sql'=>$this->Database_GetStats(),'cache'=>$this->Cache_GetStats(),'engine'=>array('time_load_module'=>round($this->oEngine->iTimeLoadModule,3)));
}

View file

@ -41,17 +41,40 @@ class LsLang extends Module {
*/
if (SYS_CACHE_TYPE=='memory') {
if (false === ($this->aLangMsg = $this->Cache_Get("lang_{$this->sCurrentLang}"))) {
$this->aLangMsg=include($this->sLangPath.'/'.$this->sCurrentLang.'.php');
$this->LoadLangFiles();
$this->Cache_Set($this->aLangMsg, "lang_{$this->sCurrentLang}", array(), 60*60);
}
} else {
$this->aLangMsg=include($this->sLangPath.'/'.$this->sCurrentLang.'.php');
$this->LoadLangFiles();
}
/**
* Загружаем в шаблон
*/
$this->Viewer_Assign('aLang',$this->aLangMsg);
}
/**
* Загружает текстовки из языковых файлов
*
*/
protected function LoadLangFiles() {
$this->aLangMsg=include($this->sLangPath.'/'.$this->sCurrentLang.'.php');
/**
* Ищет конфиги языковых файлов и объединяет их с текущим
*/
$sDirConfig=$this->sLangPath.'/modules/';
if ($hDirConfig = opendir($sDirConfig)) {
while (false !== ($sDirModule = readdir($hDirConfig))) {
if ($sDirModule !='.' and $sDirModule !='..' and is_dir($sDirConfig.$sDirModule)) {
$sFileConfig=$sDirConfig.$sDirModule.'/'.$this->sCurrentLang.'.php';
if (file_exists($sFileConfig)) {
$aLangModule=include($sFileConfig);
$this->aLangMsg=array_merge_recursive($this->aLangMsg,$aLangModule);
}
}
}
closedir($hDirConfig);
}
}
/**
* Установить текущий язык
*

View file

@ -155,4 +155,5 @@ setlocale(LC_ALL, "ru_RU.UTF-8");
require_once(DIR_SERVER_ROOT."/config/config.table.php");
require_once(DIR_SERVER_ROOT."/config/loader.php");
?>

View file

@ -30,7 +30,6 @@ define("ROUTE_PAGE_TOP",'top');
define("ROUTE_PAGE_INDEX",'index');
define("ROUTE_PAGE_NEW",'new');
define("ROUTE_PAGE_TOPIC",'topic');
define("ROUTE_PAGE_PAGE",'page');
define("ROUTE_PAGE_LOGIN",'login');
define("ROUTE_PAGE_PEOPLE",'people');
define("ROUTE_PAGE_SETTINGS",'settings');
@ -54,8 +53,7 @@ return array(
ROUTE_PAGE_TOP => 'ActionTop',
ROUTE_PAGE_INDEX => 'ActionIndex',
ROUTE_PAGE_NEW => 'ActionNew',
ROUTE_PAGE_TOPIC => 'ActionTopic',
ROUTE_PAGE_PAGE => 'ActionPage',
ROUTE_PAGE_TOPIC => 'ActionTopic',
ROUTE_PAGE_LOGIN => 'ActionLogin',
ROUTE_PAGE_PEOPLE => 'ActionPeople',
ROUTE_PAGE_SETTINGS => 'ActionSettings',
@ -67,6 +65,7 @@ return array(
ROUTE_PAGE_QUESTION => 'ActionQuestion',
ROUTE_PAGE_BLOGS => 'ActionBlogs',
ROUTE_PAGE_SEARCH => 'ActionSearch',
'tools' => 'ActionTools',
),
'config' => array(
'action_default' => ROUTE_PAGE_INDEX,

35
config/loader.php Normal file
View file

@ -0,0 +1,35 @@
<?
/*-------------------------------------------------------
*
* LiveStreet Engine Social Networking
* Copyright © 2008 Mzhelskiy Maxim
*
*--------------------------------------------------------
*
* Official site: www.livestreet.ru
* Contact e-mail: rus.engine@gmail.com
*
* GNU General Public License, version 2:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
---------------------------------------------------------
*/
/**
* Загружает конфиги модулей вида /config/modules/[module_name]/config.php
*/
$sDirConfig=DIR_SERVER_ROOT.'/config/modules/';
if ($hDirConfig = opendir($sDirConfig)) {
while (false !== ($sDirModule = readdir($hDirConfig))) {
if ($sDirModule !='.' and $sDirModule !='..' and is_dir($sDirConfig.$sDirModule)) {
$sFileConfig=$sDirConfig.$sDirModule.'/config.php';
if (file_exists($sFileConfig)) {
require_once($sFileConfig);
}
}
}
closedir($hDirConfig);
}
?>

View file

@ -0,0 +1,23 @@
<?
/*-------------------------------------------------------
*
* LiveStreet Engine Social Networking
* Copyright © 2008 Mzhelskiy Maxim
*
*--------------------------------------------------------
*
* Official site: www.livestreet.ru
* Contact e-mail: rus.engine@gmail.com
*
* GNU General Public License, version 2:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
---------------------------------------------------------
*/
/**
* Конфиг модуля "page" - управление статическими страницами
*/
?>

View file

@ -0,0 +1,31 @@
<?
/*-------------------------------------------------------
*
* LiveStreet Engine Social Networking
* Copyright © 2008 Mzhelskiy Maxim
*
*--------------------------------------------------------
*
* Official site: www.livestreet.ru
* Contact e-mail: rus.engine@gmail.com
*
* GNU General Public License, version 2:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
---------------------------------------------------------
*/
/**
* Настройки роутинга страниц модуля "page"
* Определяет какой экшен должен запускаться при определенном УРЛе
*/
define("ROUTE_PAGE_PAGE",'page');
return array(
'page' => array(
ROUTE_PAGE_PAGE => 'ActionPage',
),
);
?>

View file

@ -0,0 +1,64 @@
<?
/*-------------------------------------------------------
*
* LiveStreet Engine Social Networking
* Copyright © 2008 Mzhelskiy Maxim
*
*--------------------------------------------------------
*
* Official site: www.livestreet.ru
* Contact e-mail: rus.engine@gmail.com
*
* GNU General Public License, version 2:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*
---------------------------------------------------------
*/
/**
* Русский языковой файл для модуля "page"
*/
return array(
/**
* Статический страницы
*/
'page_about' => 'О проекте_$$',
'page_download' => 'Скачать_$$',
'page_admin' => 'Управление статическими страницами_$$',
'page_create' => 'Создание новой страницы_$$',
'page_edit' => 'Редактирование страницы_$$',
'page_new' => 'добавить страницу_$$',
'page_create_parent_page' => 'Вложить в_$$',
'page_create_parent_page_error' => 'Неверно выбрана страница для вложения_$$',
'page_create_title' => 'Название_$$',
'page_create_title_error' => 'Название страницы должно быть от 2 до 200 символов_$$',
'page_create_url' => 'URL_$$',
'page_create_url_error' => 'URL должен быть от 1 до 50 символов и только на латинице + цифры и знаки "-", "_"_$$',
'page_create_url_error_bad' => 'URL должен отличаться от:',
'page_create_text' => 'Текст_$$',
'page_create_text_error' => 'Текст страницы должен быть от 1 до 50000 символов_$$',
'page_create_seo_keywords' => 'SEO keywords_$$',
'page_create_seo_keywords_notice' => 'Ключевые слова для SEO-оптимизации_$$',
'page_create_seo_description' => 'SEO description_$$',
'page_create_seo_description_notice' => 'Описание для SEO-оптимизации_$$',
'page_create_active' => 'показывать страницу_$$',
'page_create_submit_save' => 'сохранить_$$',
'page_create_submit_save_ok' => 'Новая страница добавлена_$$',
'page_create_submit_cancel' => 'отмена_$$',
'page_edit_notfound' => 'Страница для редактирования не найдена_$$',
'page_edit_submit_save_ok' => 'Страница обновлена_$$',
'page_admin_title' => 'Название_$$',
'page_admin_url' => 'URL_$$',
'page_admin_active' => 'Активна_$$',
'page_admin_active_yes' => а_$$',
'page_admin_active_no' => ет_$$',
'page_admin_action' => ействие_$$',
'page_admin_action_edit' => 'Редактировать_$$',
'page_admin_action_delete' => 'Удалить_$$',
'page_admin_action_delete_ok' => 'Страница удалена_$$',
'page_admin_action_delete_error' => 'Возникла ошибка при удалении страницы_$$',
'page_admin_action_delete_confirm' => 'Вы действительно хотите удалить эту страницу со всеми вложенными страницами?_$$',
);
?>

View file

@ -269,49 +269,6 @@ return array(
'people' => 'Люди_$$',
/**
* Статический страницы
*/
'page_about' => 'О проекте_$$',
'page_download' => 'Скачать_$$',
'page_admin' => 'Управление статическими страницами_$$',
'page_create' => 'Создание новой страницы_$$',
'page_edit' => 'Редактирование страницы_$$',
'page_new' => 'добавить страницу_$$',
'page_create_parent_page' => 'Вложить в_$$',
'page_create_parent_page_error' => 'Неверно выбрана страница для вложения_$$',
'page_create_title' => 'Название_$$',
'page_create_title_error' => 'Название страницы должно быть от 2 до 200 символов_$$',
'page_create_url' => 'URL_$$',
'page_create_url_error' => 'URL должен быть от 1 до 50 символов и только на латинице + цифры и знаки "-", "_"_$$',
'page_create_url_error_bad' => 'URL должен отличаться от:',
'page_create_text' => 'Текст_$$',
'page_create_text_error' => 'Текст страницы должен быть от 1 до 50000 символов_$$',
'page_create_seo_keywords' => 'SEO keywords_$$',
'page_create_seo_keywords_notice' => 'Ключевые слова для SEO-оптимизации_$$',
'page_create_seo_description' => 'SEO description_$$',
'page_create_seo_description_notice' => 'Описание для SEO-оптимизации_$$',
'page_create_active' => 'показывать страницу_$$',
'page_create_submit_save' => 'сохранить_$$',
'page_create_submit_save_ok' => 'Новая страница добавлена_$$',
'page_create_submit_cancel' => 'отмена_$$',
'page_edit_notfound' => 'Страница для редактирования не найдена_$$',
'page_edit_submit_save_ok' => 'Страница обновлена_$$',
'page_admin_title' => 'Название_$$',
'page_admin_url' => 'URL_$$',
'page_admin_active' => 'Активна_$$',
'page_admin_active_yes' => а_$$',
'page_admin_active_no' => ет_$$',
'page_admin_action' => ействие_$$',
'page_admin_action_edit' => 'Редактировать_$$',
'page_admin_action_delete' => 'Удалить_$$',
'page_admin_action_delete_ok' => 'Страница удалена_$$',
'page_admin_action_delete_error' => 'Возникла ошибка при удалении страницы_$$',
'page_admin_action_delete_confirm' => 'Вы действительно хотите удалить эту страницу со всеми вложенными страницами?_$$',
/**
* Пользователь
*/