mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-07-01 05:55:02 +03:00
функционал конфигов для модулей на примере модуля "page" - управление статическими страницами
This commit is contained in:
parent
49e6bd7ba4
commit
49f3d31ace
|
@ -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)));
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Установить текущий язык
|
||||
*
|
||||
|
|
|
@ -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");
|
||||
?>
|
|
@ -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
35
config/loader.php
Normal 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);
|
||||
}
|
||||
|
||||
?>
|
23
config/modules/page/config.php
Normal file
23
config/modules/page/config.php
Normal 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" - управление статическими страницами
|
||||
*/
|
||||
|
||||
|
||||
?>
|
31
config/modules/page/config.route.php
Normal file
31
config/modules/page/config.route.php
Normal 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',
|
||||
),
|
||||
);
|
||||
|
||||
?>
|
64
templates/language/modules/page/russian.php
Normal file
64
templates/language/modules/page/russian.php
Normal 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' => 'Вы действительно хотите удалить эту страницу со всеми вложенными страницами?_$$',
|
||||
);
|
||||
|
||||
?>
|
|
@ -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' => 'Вы действительно хотите удалить эту страницу со всеми вложенными страницами?_$$',
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Пользователь
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue