1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-17 07:10:48 +03:00

Адаптация к новой структуре

This commit is contained in:
Mzhelskiy Maxim 2013-08-06 16:14:48 +07:00
parent 96b3a7c713
commit 5f3e68fde3
29 changed files with 122 additions and 551 deletions

View file

@ -30,20 +30,20 @@ $config['db']['params']['type'] = 'mysql';
$config['db']['params']['dbname'] = 'social_newstruct';
$config['db']['table']['prefix'] = 'prefix_';
$config['path']['root']['web'] = 'http://localhost/livestreet-b-new-struct';
$config['path']['root']['server'] = '/Users/ort/Develop/php/livestreet-b-new-struct';
$config['path']['offset_request_url'] = '1';
$config['db']['tables']['engine'] = 'InnoDB';
$config['view']['name'] = 'Your Site';
$config['view']['description'] = 'Description your site';
$config['view']['keywords'] = 'site, google, internet';
$config['view']['skin'] = 'developer';
$config['sys']['mail']['from_email'] = 'admin@admin.adm';
$config['sys']['mail']['from_name'] = 'Почтовик Your Site';
$config['general']['close'] = false;
$config['general']['reg']['activation'] = false;
$config['general']['reg']['invite'] = false;
$config['lang']['current'] = 'ru';
$config['lang']['default'] = 'ru';
$config['path']['root']['web'] = 'http://localhost/livestreet-b-new-struct';
$config['path']['root']['server'] = '/Users/ort/Develop/php/livestreet-b-new-struct';
$config['path']['offset_request_url'] = '1';
$config['db']['tables']['engine'] = 'InnoDB';
$config['view']['name'] = 'Your Site3';
$config['view']['description'] = 'Description your site';
$config['view']['keywords'] = 'site, google, internet';
$config['view']['skin'] = 'developer';
$config['sys']['mail']['from_email'] = 'admin@admin.adm';
$config['sys']['mail']['from_name'] = 'Почтовик Your Site';
$config['general']['close'] = false;
$config['general']['reg']['activation'] = false;
$config['general']['reg']['invite'] = false;
$config['lang']['current'] = 'ru';
$config['lang']['default'] = 'ru';
return $config;
?>

View file

@ -50,106 +50,6 @@ $config['block']['blogs']['row'] = 10; // сколько
$config['block']['tags']['tags_count'] = 70; // сколько тегов выводить в блоке "теги"
$config['block']['tags']['personal_tags_count'] = 70; // сколько тегов пользователя выводить в блоке "теги"
/**
* Настройка пагинации
*/
$config['pagination']['pages']['count'] = 4; // количество ссылок на другие страницы в пагинации
/**
* Настройка путей
* Если необходимо установить движек в директорию(не корень сайта) то следует сделать так:
* $config['path']['root']['web'] = 'http://'.$_SERVER['HTTP_HOST'].'/subdir';
* $config['path']['root']['server'] = $_SERVER['DOCUMENT_ROOT'].'/subdir';
* и возможно придёться увеличить значение $config['path']['offset_request_url'] на число вложенных директорий,
* например, для директории первой вложенности www.site.ru/livestreet/ поставить значение равное 1
*/
if (isset($_SERVER['HTTP_HOST'])) {
$config['path']['root']['web'] = 'http://'.$_SERVER['HTTP_HOST']; // полный WEB адрес сайта
} else {
// for CLI scripts. or you can append "HTTP_HOST=http://yoursite.url" before script run command
$config['path']['root']['web'] = null;
}
$config['path']['root']['server'] = dirname(dirname(__FILE__)); // полный путь до сайта в файловой системе
/**
* Для CLI режима использовать
* $config['path']['root']['server'] = dirname(dirname(__FILE__)); // полный путь до сайта в файловой системе
*/
$config['path']['root']['engine'] = '___path.root.server___/engine'; // полный путь до сайта в файловой системе;
$config['path']['root']['engine_lib'] = '___path.root.web___/engine/lib'; // полный путь до сайта в файловой системе
$config['path']['static']['root'] = '___path.root.web___'; // чтоб можно было статику засунуть на отдельный сервер
$config['path']['static']['skin'] = '___path.static.root___/templates/skin/___view.skin___';
$config['path']['static']['assets'] = '___path.static.skin___/assets'; // Папка с ассетами (js, css, images)
$config['path']['static']['framework'] = "___path.static.root___/templates/framework"; // Front-end framework
$config['path']['uploads']['root'] = '/uploads'; // директория для загрузки файлов
$config['path']['uploads']['images'] ='___path.uploads.root___/images';
$config['path']['offset_request_url'] = 0; // иногда помогает если сервер использует внутренние реврайты
/**
* Настройки шаблонизатора Smarty
*/
$config['path']['smarty']['template'] = '___path.root.server___/templates/skin/___view.skin___';
$config['path']['smarty']['compiled'] = '___path.root.server___/templates/compiled';
$config['path']['smarty']['cache'] = '___path.root.server___/templates/cache';
$config['path']['smarty']['plug'] = '___path.root.engine___/modules/viewer/plugs';
$config['smarty']['compile_check'] = true; // Проверять или нет файлы шаблона на изменения перед компиляцией, false может значительно увеличить быстродействие, но потребует ручного удаления кеша при изменения шаблона
$config['smarty']['force_compile'] = false; // Принудительно компилировать шаблоны при каждом запросе, true - существенно снижает производительность
/**
* Настройки плагинов
*/
$config['sys']['plugins']['activation_file'] = 'plugins.dat'; // файл со списком активных плагинов в каталоге /plugins/
/**
* Настройки куков
*/
$config['sys']['cookie']['host'] = null; // хост для установки куков
$config['sys']['cookie']['path'] = '/'; // путь для установки куков
$config['sys']['cookie']['time'] = 60 * 60 * 24 * 3; // время жизни куки когда пользователь остается залогиненым на сайте, 3 дня
/**
* Настройки сессий
*/
$config['sys']['session']['standart'] = true; // Использовать или нет стандартный механизм сессий
$config['sys']['session']['name'] = 'PHPSESSID'; // название сессии
$config['sys']['session']['timeout'] = null; // Тайм-аут сессии в секундах
$config['sys']['session']['host'] = '___sys.cookie.host___'; // хост сессии в куках
$config['sys']['session']['path'] = '___sys.cookie.path___'; // путь сессии в куках
/**
* Настройки почтовых уведомлений
*/
$config['sys']['mail']['type'] = 'mail'; // Какой тип отправки использовать
$config['sys']['mail']['from_email'] = 'admin@admin.adm'; // Мыло с которого отправляются все уведомления
$config['sys']['mail']['from_name'] = 'Почтовик Your Site'; // Имя с которого отправляются все уведомления
$config['sys']['mail']['charset'] = 'UTF-8'; // Какую кодировку использовать в письмах
$config['sys']['mail']['smtp']['host'] = 'localhost'; // Настройки SMTP - хост
$config['sys']['mail']['smtp']['port'] = 25; // Настройки SMTP - порт
$config['sys']['mail']['smtp']['user'] = ''; // Настройки SMTP - пользователь
$config['sys']['mail']['smtp']['password'] = ''; // Настройки SMTP - пароль
$config['sys']['mail']['smtp']['secure'] = ''; // Настройки SMTP - протокол шифрования: tls, ssl
$config['sys']['mail']['smtp']['auth'] = true; // Использовать авторизацию при отправке
$config['sys']['mail']['include_comment'] = true; // Включает в уведомление о новых комментах текст коммента
$config['sys']['mail']['include_talk'] = true; // Включает в уведомление о новых личных сообщениях текст сообщения
/**
* Настройки кеширования
*/
// Устанавливаем настройки кеширования
$config['sys']['cache']['use'] = true; // использовать кеширование или нет
$config['sys']['cache']['type'] = 'file'; // тип кеширования: file, xcache и memory. memory использует мемкеш, xcache - использует XCache
$config['sys']['cache']['dir'] = '___path.root.server___/tmp/'; // каталог для файлового кеша, также используется для временных картинок. По умолчанию подставляем каталог для хранения сессий
$config['sys']['cache']['prefix'] = 'livestreet_cache'; // префикс кеширования, чтоб можно было на одной машине держать несколько сайтов с общим кешевым хранилищем
$config['sys']['cache']['directory_level'] = 1; // уровень вложенности директорий файлового кеша
$config['sys']['cache']['solid'] = true; // Настройка использования раздельного и монолитного кеша для отдельных операций
/**
* Настройки логирования
*/
$config['sys']['logs']['file'] = 'log.log'; // файл общего лога
$config['sys']['logs']['sql_query'] = false; // логировать или нет SQL запросы
$config['sys']['logs']['sql_query_file'] = 'sql_query.log'; // файл лога SQL запросов
$config['sys']['logs']['sql_error'] = true; // логировать или нет ошибки SQl
$config['sys']['logs']['sql_error_file'] = 'sql_error.log'; // файл лога ошибок SQL
$config['sys']['logs']['cron'] = true; // логировать или нет cron скрипты
$config['sys']['logs']['cron_file'] = 'cron.log'; // файл лога запуска крон-процессов
$config['sys']['logs']['profiler'] = false; // логировать или нет профилирование процессов
$config['sys']['logs']['profiler_file'] = 'profiler.log'; // файл лога профилирования процессов
$config['sys']['logs']['hacker_console'] = false; // позволяет удобно выводить логи дебага через функцию dump(), использя "хакерскую" консоль Дмитрия Котерова
/**
* Общие настройки
*/
@ -157,14 +57,6 @@ $config['general']['close'] = false; // использовать з
$config['general']['rss_editor_mail'] = '___sys.mail.from_email___'; // мыло редактора РСС
$config['general']['reg']['invite'] = false; // использовать режим регистрации по приглашению или нет. Если использовать, то регистрация будет доступна ТОЛЬКО по приглашениям!
$config['general']['reg']['activation'] = false; // использовать активацию при регистрации или нет
/**
* Языковые настройки
*/
$config['lang']['current'] = 'ru'; // текущий язык текстовок
$config['lang']['default'] = 'ru'; // язык, который будет использовать на сайте по умолчанию
$config['lang']['dir'] = 'i18n'; // название директории с языковыми файлами
$config['lang']['path'] = '___path.root.server___/templates/___lang.dir___'; // полный путь до языковых файлов
$config['lang']['load_to_js'] = array(); // Массив текстовок, которые необходимо прогружать на страницу в виде JS хеша, позволяет использовать текстовки внутри js
/**
* Настройки ACL(Access Control List список контроля доступа)
@ -379,13 +271,7 @@ $config['db']['table']['geo_target'] = '___db.table.prefix___geo_target
$config['db']['table']['user_changemail'] = '___db.table.prefix___user_changemail';
$config['db']['tables']['engine'] = 'InnoDB'; // InnoDB или MyISAM
/**
* Настройка memcache
*/
$config['memcache']['servers'][0]['host'] = 'localhost';
$config['memcache']['servers'][0]['port'] = '11211';
$config['memcache']['servers'][0]['persistent'] = true;
$config['memcache']['compression'] = true;
/**
* Настройки роутинга
*/
@ -600,23 +486,6 @@ $config['head']['default']['css'] = array(
"___path.static.framework___/css/toolbar.css"
);
/**
* Параметры компрессии css-файлов
*/
$config['compress']['css']['merge'] = true; // указывает на необходимость слияния файлов по указанным блокам.
$config['compress']['css']['use'] = false; // указывает на необходимость компрессии файлов. Компрессия используется только в активированном режиме слияния файлов.
$config['compress']['css']['case_properties'] = 1;
$config['compress']['css']['merge_selectors'] = 0;
$config['compress']['css']['optimise_shorthands'] = 1;
$config['compress']['css']['remove_last_;'] = true;
$config['compress']['css']['css_level'] = 'CSS2.1';
$config['compress']['css']['template'] = "highest_compression";
/**
* Параметры компрессии js-файлов
*/
$config['compress']['js']['merge'] = true; // указывает на необходимость слияния файлов по указанным блокам.
$config['compress']['js']['use'] = true; // указывает на необходимость компрессии файлов. Компрессия используется только в активированном режиме слияния файлов.
/**
* Установка локали
*/
@ -626,8 +495,7 @@ date_default_timezone_set('Europe/Moscow'); // See http://php.net/manual/en/time
/**
* Настройки типографа текста Jevix
*/
$config['jevix']=require(dirname(__FILE__).'/jevix.php');
//$config['jevix']=require(dirname(__FILE__).'/jevix.php');
return $config;
?>
return $config;

View file

@ -0,0 +1,2 @@
Order Deny,Allow
Deny from all

Binary file not shown.

Binary file not shown.

View file

@ -43,7 +43,7 @@ abstract class ActionPlugin extends Action {
* Проверяем в списке шаблонов
*/
$aMatches[1]=strtolower($aMatches[1]);
$aPaths=glob(Config::Get('path.root.server').'/plugins/'.$aMatches[1].'/templates/skin/*/actions/Action'.ucfirst($aMatches[2]),GLOB_ONLYDIR);
$aPaths=glob(Config::Get('path.root.application').'/plugins/'.$aMatches[1].'/templates/skin/*/actions/Action'.ucfirst($aMatches[2]),GLOB_ONLYDIR);
$sTemplateName=($aPaths and in_array(
Config::Get('view.skin'),
array_map(
@ -57,7 +57,7 @@ abstract class ActionPlugin extends Action {
? Config::Get('view.skin')
: 'default';
$sDir=Config::Get('path.root.server')."/plugins/{$aMatches[1]}/templates/skin/{$sTemplateName}/";
$sDir=Config::Get('path.root.application')."/plugins/{$aMatches[1]}/templates/skin/{$sTemplateName}/";
$this->sTemplatePathPlugin = is_dir($sDir) ? $sDir : null;
}

View file

@ -16,7 +16,7 @@
*/
set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__));
require_once(Config::Get('path.root.engine').'/lib/internal/ProfilerSimple/Profiler.class.php');
require_once(Config::Get('path.root.framework').'/libs/application/ProfilerSimple/Profiler.class.php');
require_once("LsObject.class.php");
require_once("Plugin.class.php");
@ -422,7 +422,7 @@ class Engine extends LsObject {
*
*/
protected function InitHooks() {
$sDirHooks=Config::Get('path.root.server').'/classes/hooks/';
$sDirHooks=Config::Get('path.root.application').'/classes/hooks/';
$aFiles=glob($sDirHooks.'Hook*.class.php');
if($aFiles and count($aFiles)) {
@ -448,7 +448,7 @@ class Engine extends LsObject {
*/
protected function InitPluginHooks() {
if($aPluginList = func_list_plugins()) {
$sDirHooks=Config::Get('path.root.server').'/plugins/';
$sDirHooks=Config::Get('path.root.application').'/plugins/';
foreach ($aPluginList as $sPluginName) {
$aFiles=glob($sDirHooks.$sPluginName.'/classes/hooks/Hook*.class.php');
@ -1004,7 +1004,8 @@ class Engine extends LsObject {
$oObject,
self::CI_OBJECT
);
$sPath = Config::get('path.root.server').'/';
$sPath = Config::get('path.root.application').'/';
$sPathFramework = Config::get('path.root.framework').'/';
if($aInfo[self::CI_ENTITY]){
// Сущность
if($aInfo[self::CI_PLUGIN]){
@ -1015,11 +1016,12 @@ class Engine extends LsObject {
;
}else{
// Сущность модуля ядра
$sPath .= 'classes/modules/'.strtolower($aInfo[self::CI_MODULE])
$sFile='classes/modules/'.strtolower($aInfo[self::CI_MODULE])
.'/entity/'.$aInfo[self::CI_ENTITY].'.entity.class.php'
;
$sPath.=$sFile;
if(!is_file($sPath)){
$sPath = str_replace('/classes/modules/','/engine/modules/',$sPath);
$sPath = $sPathFramework.$sFile;
}
}
}elseif($aInfo[self::CI_MAPPER]){
@ -1032,11 +1034,12 @@ class Engine extends LsObject {
;
}else{
// Маппер модуля ядра
$sPath .= 'classes/modules/'.strtolower($aInfo[self::CI_MODULE])
$sFile='classes/modules/'.strtolower($aInfo[self::CI_MODULE])
.'/mapper/'.$aInfo[self::CI_MAPPER].'.mapper.class.php'
;
$sPath.=$sFile;
if(!is_file($sPath)){
$sPath = str_replace('/classes/modules/','/engine/modules/',$sPath);
$sPath = $sPathFramework.$sFile;
}
}
}elseif($aInfo[self::CI_EVENT]){
@ -1075,11 +1078,12 @@ class Engine extends LsObject {
;
}else{
// Модуль ядра
$sPath .= 'classes/modules/'.strtolower($aInfo[self::CI_MODULE])
$sFile='classes/modules/'.strtolower($aInfo[self::CI_MODULE])
.'/'.$aInfo[self::CI_MODULE].'.class.php'
;
$sPath.=$sFile;
if(!is_file($sPath)){
$sPath = str_replace('/classes/modules/','/engine/modules/',$sPath);
$sPath = $sPathFramework.$sFile;
}
}
}elseif($aInfo[self::CI_HOOK]){
@ -1114,7 +1118,7 @@ class Engine extends LsObject {
;
}else{
$sClassName = is_string($oObject) ? $oObject : get_class($oObject);
$sPath .= 'engine/classes/'.$sClassName.'.class.php';
$sPath=$sPathFramework.'classes/engine/'.$sClassName.'.class.php';
}
return is_file($sPath) ? $sPath : null;
}
@ -1249,6 +1253,4 @@ class LS extends LsObject {
public static function __callStatic($sName,$aArgs=array()) {
return call_user_func_array(array(self::E(),$sName),$aArgs);
}
}
?>
}

View file

@ -228,7 +228,7 @@ abstract class Plugin extends LsObject {
*/
public function GetVersion() {
preg_match('/^Plugin([\w]+)$/i',get_class($this),$aMatches);
$sPluginXML = Config::Get('path.root.server').'/plugins/'.func_underscore($aMatches[1]).'/'.ModulePlugin::PLUGIN_XML_FILE;
$sPluginXML = Config::Get('path.root.application').'/plugins/'.func_underscore($aMatches[1]).'/'.ModulePlugin::PLUGIN_XML_FILE;
if($oXml = @simplexml_load_file($sPluginXML)) {
return (string)$oXml->version;
}
@ -256,7 +256,7 @@ abstract class Plugin extends LsObject {
? func_underscore($aMatches[1])
: func_underscore($sName);
return Config::Get('path.root.server').'/plugins/'.$sName.'/';
return Config::Get('path.root.application').'/plugins/'.$sName.'/';
}
/**
* Возвращает полный web-адрес до плагина
@ -269,7 +269,7 @@ abstract class Plugin extends LsObject {
? func_underscore($aMatches[1])
: func_underscore($sName);
return Config::Get('path.root.web').'/plugins/'.$sName.'/';
return Config::Get('path.root.web').'/application/plugins/'.$sName.'/';
}
/**
* Возвращает правильный серверный путь к директории шаблонов с учетом текущего шаблона
@ -283,12 +283,12 @@ abstract class Plugin extends LsObject {
? func_underscore($aMatches[1])
: func_underscore($sName);
if(!isset(self::$aTemplatePath[$sName])) {
$aPaths=glob(Config::Get('path.root.server').'/plugins/'.$sName.'/templates/skin/*',GLOB_ONLYDIR);
$aPaths=glob(Config::Get('path.root.application').'/plugins/'.$sName.'/templates/skin/*',GLOB_ONLYDIR);
$sTemplateName=($aPaths and in_array(Config::Get('view.skin'),array_map('basename',$aPaths)))
? Config::Get('view.skin')
: 'default';
$sDir=Config::Get('path.root.server')."/plugins/{$sName}/templates/skin/{$sTemplateName}/";
$sDir=Config::Get('path.root.application')."/plugins/{$sName}/templates/skin/{$sTemplateName}/";
self::$aTemplatePath[$sName] = is_dir($sDir) ? $sDir : null;
}
return self::$aTemplatePath[$sName];
@ -305,12 +305,12 @@ abstract class Plugin extends LsObject {
? func_underscore($aMatches[1])
: func_underscore($sName);
if(!isset(self::$aTemplateWebPath[$sName])) {
$aPaths=glob(Config::Get('path.root.server').'/plugins/'.$sName.'/templates/skin/*',GLOB_ONLYDIR);
$aPaths=glob(Config::Get('path.root.application').'/plugins/'.$sName.'/templates/skin/*',GLOB_ONLYDIR);
$sTemplateName=($aPaths and in_array(Config::Get('view.skin'),array_map('basename',$aPaths)))
? Config::Get('view.skin')
: 'default';
self::$aTemplateWebPath[$sName]=Config::Get('path.root.web')."/plugins/{$sName}/templates/skin/{$sTemplateName}/";
self::$aTemplateWebPath[$sName]=Config::Get('path.root.web')."/application/plugins/{$sName}/templates/skin/{$sTemplateName}/";
}
return self::$aTemplateWebPath[$sName];
}

View file

@ -252,9 +252,9 @@ class Router extends LsObject {
* Если класс экешна начинается с Plugin*_, значит необходимо загрузить объект из указанного плагина
*/
if(!preg_match('/^Plugin([\w]+)_Action([\w]+)$/i',$sActionClass,$aMatches)) {
require_once(Config::Get('path.root.server').'/classes/actions/'.$sActionClass.'.class.php');
//require_once(Config::Get('path.root.application').'/classes/actions/'.$sActionClass.'.class.php');
} else {
require_once(Config::Get('path.root.server').'/plugins/'.func_underscore($aMatches[1]).'/classes/actions/Action'.ucfirst($aMatches[2]).'.class.php');
//require_once(Config::Get('path.root.application').'/plugins/'.func_underscore($aMatches[1]).'/classes/actions/Action'.ucfirst($aMatches[2]).'.class.php');
}
$sClassName=$sActionClass;

View file

@ -15,7 +15,7 @@
---------------------------------------------------------
*/
require_once(Config::Get('path.root.engine').'/lib/external/DklabCache/config.php');
require_once(Config::Get('path.root.framework').'/libs/vendor/DklabCache/config.php');
require_once(LS_DKCACHE_PATH.'Zend/Cache.php');
require_once(LS_DKCACHE_PATH.'Cache/Backend/MemcachedMultiload.php');
require_once(LS_DKCACHE_PATH.'Cache/Backend/TagEmuWrapper.php');
@ -137,9 +137,11 @@ class ModuleCache extends Module {
*/
if ($this->sCacheType==SYS_CACHE_TYPE_FILE) {
require_once(LS_DKCACHE_PATH.'Zend/Cache/Backend/File.php');
$sDirCache=Config::Get('sys.cache.dir').'/system/';
if (!is_dir($sDirCache)) @mkdir($sDirCache,0777,true);
$oCahe = new Zend_Cache_Backend_File(
array(
'cache_dir' => Config::Get('sys.cache.dir'),
'cache_dir' => $sDirCache,
'file_name_prefix' => Config::Get('sys.cache.prefix'),
'read_control_type' => 'crc32',
'hashed_directory_level' => Config::Get('sys.cache.directory_level'),

View file

@ -15,7 +15,7 @@
---------------------------------------------------------
*/
require_once(Config::Get('path.root.engine').'/lib/external/DbSimple/Generic.php');
require_once(Config::Get('path.root.framework').'/libs/vendor/DbSimple/Generic.php');
/**
* Модуль для работы с базой данных
* Создаёт объект БД библиотеки DbSimple Дмитрия Котерова

View file

@ -15,7 +15,7 @@
---------------------------------------------------------
*/
require_once Config::Get('path.root.engine').'/lib/external/LiveImage/Image.php';
require_once Config::Get('path.root.framework').'/libs/vendor/LiveImage/Image.php';
/**
* Модуль обработки изображений

View file

@ -152,7 +152,7 @@ class ModuleLang extends Module {
*/
if($aPluginList = Engine::getInstance()->GetPlugins()) {
$aPluginList=array_keys($aPluginList);
$sDir=Config::Get('path.root.server').'/plugins/';
$sDir=Config::Get('path.root.application').'/plugins/';
foreach ($aPluginList as $sPluginName) {
$aFiles=glob($sDir.$sPluginName.'/templates/'.Config::Get('lang.dir').'/'.$sLangName.'.php');

View file

@ -80,7 +80,7 @@ class ModuleLogger extends Module {
*
*/
public function Init() {
$this->sPathLogs=Config::Get('path.root.server').'/logs/';
$this->sPathLogs=Config::Get('path.root.application').'/logs/';
$this->SetFileName(Config::Get('sys.logs.file'));
$this->iRandom=rand(1000,9999);
}

View file

@ -15,7 +15,7 @@
---------------------------------------------------------
*/
require_once(Config::Get('path.root.engine').'/lib/external/phpMailer/class.phpmailer.php');
require_once(Config::Get('path.root.framework').'/libs/vendor/phpMailer/class.phpmailer.php');
/**
* Модуль для отправки почты(e-mail) через phpMailer

View file

@ -67,7 +67,7 @@ class ModulePlugin extends Module {
*
*/
public function Init() {
$this->sPluginsDir=Config::Get('path.root.server').'/plugins/';
$this->sPluginsDir=Config::Get('path.root.application').'/plugins/';
}
/**
* Получает список информации о всех плагинах, загруженных в plugin-директорию

View file

@ -15,7 +15,7 @@
---------------------------------------------------------
*/
require_once(Config::Get('path.root.engine').'/lib/external/Jevix/jevix.class.php');
require_once(Config::Get('path.root.framework').'/libs/vendor/Jevix/jevix.class.php');
/**
* Модуль обработки текста на основе типографа Jevix

View file

@ -59,7 +59,7 @@ class ModuleValidate_EntityValidatorDate extends ModuleValidate_EntityValidator
return true;
}
require_once(Config::Get('path.root.engine').'/lib/external/DateTime/DateTimeParser.php');
require_once(Config::Get('path.root.framework').'/libs/vendor/DateTime/DateTimeParser.php');
$aFormats=is_string($this->format) ? array($this->format) : $this->format;
$bValid=false;

View file

@ -75,7 +75,7 @@ class ModuleValidate_EntityValidatorType extends ModuleValidate_EntityValidator
return true;
}
require_once(Config::Get('path.root.engine').'/lib/external/DateTime/DateTimeParser.php');
require_once(Config::Get('path.root.framework').'/libs/vendor/DateTime/DateTimeParser.php');
if($this->type==='integer') {
$bValid=preg_match('/^[-+]?[0-9]+$/',trim($sValue));

View file

@ -15,10 +15,10 @@
---------------------------------------------------------
*/
require_once(Config::Get('path.root.engine').'/lib/external/Smarty/libs/Smarty.class.php');
require_once(Config::Get('path.root.engine').'/lib/internal/SmartyLS/SmartyLS.class.php');
require_once(Config::Get('path.root.engine').'/lib/external/CSSTidy-1.3/class.csstidy.php');
require_once(Config::Get('path.root.engine').'/lib/external/JSMin-1.1.1/jsmin.php');
require_once(Config::Get('path.root.framework').'/libs/vendor/Smarty/libs/Smarty.class.php');
require_once(Config::Get('path.root.framework').'/libs/application/SmartyLS/SmartyLS.class.php');
require_once(Config::Get('path.root.framework').'/libs/vendor/CSSTidy-1.3/class.csstidy.php');
require_once(Config::Get('path.root.framework').'/libs/vendor/JSMin-1.1.1/jsmin.php');
/**
* Модуль обработки шаблонов используя шаблонизатор Smarty
@ -207,16 +207,18 @@ class ModuleViewer extends Module {
*/
$this->oSmarty = $this->CreateSmartyObject();
$this->oSmarty->error_reporting=error_reporting() & ~E_NOTICE; // подавляем NOTICE ошибки - в этом вся прелесть смарти )
$this->oSmarty->setTemplateDir(array_merge((array)Config::Get('path.smarty.template'),array(Config::Get('path.root.server').'/plugins/')));
$this->oSmarty->setTemplateDir(array_merge((array)Config::Get('path.smarty.template'),array(Config::Get('path.root.application').'/plugins/')));
$this->oSmarty->compile_check=Config::Get('smarty.compile_check');
$this->oSmarty->force_compile=Config::Get('smarty.force_compile');
/**
* Для каждого скина устанавливаем свою директорию компиляции шаблонов
*/
$sCompilePath = Config::Get('path.smarty.compiled').'/'.Config::Get('view.skin');
if(!is_dir($sCompilePath)) @mkdir($sCompilePath);
if(!is_dir($sCompilePath)) @mkdir($sCompilePath,0777,true);
$this->oSmarty->setCompileDir($sCompilePath);
$this->oSmarty->setCacheDir(Config::Get('path.smarty.cache'));
$sCachePath=Config::Get('path.smarty.cache');
if(!is_dir($sCachePath)) @mkdir($sCachePath,0777,true);
$this->oSmarty->setCacheDir($sCachePath);
$this->oSmarty->addPluginsDir(array(Config::Get('path.smarty.plug'),'plugins'));
$this->oSmarty->default_template_handler_func=array($this,'SmartyDefaultTemplateHandler');
/**
@ -1428,15 +1430,15 @@ class ModuleViewer extends Module {
*/
if (Config::Get('view.skin')!='default') {
// /root/plugins/[plugin name]/templates/skin/[skin name]/dir/test.tpl
if (preg_match('@^'.preg_quote(Config::Get('path.root.server')).'/plugins/([\w\-_]+)/templates/skin/'.preg_quote(Config::Get('view.skin')).'/@i',$sName,$aMatch)) {
$sFile=str_replace($aMatch[0],Config::Get('path.root.server').'/plugins/'.$aMatch[1].'/templates/skin/default/',$sName);
if (preg_match('@^'.preg_quote(Config::Get('path.root.application')).'/plugins/([\w\-_]+)/templates/skin/'.preg_quote(Config::Get('view.skin')).'/@i',$sName,$aMatch)) {
$sFile=str_replace($aMatch[0],Config::Get('path.root.application').'/plugins/'.$aMatch[1].'/templates/skin/default/',$sName);
if ($this->TemplateExists($sFile)) {
return $sFile;
}
}
// [plugin name]/templates/skin/[skin name]/dir/test.tpl
if (preg_match('@^([\w\-_]+)/templates/skin/'.preg_quote(Config::Get('view.skin')).'/@i',$sName,$aMatch)) {
$sFile=Config::Get('path.root.server').'/plugins/'.str_replace($aMatch[0],$aMatch[1].'/templates/skin/default/',$sName);
$sFile=Config::Get('path.root.application').'/plugins/'.str_replace($aMatch[0],$aMatch[1].'/templates/skin/default/',$sName);
if ($this->TemplateExists($sFile)) {
return $sFile;
}

View file

@ -28,7 +28,7 @@ function smarty_function_cfg($aParams,&$oSmarty) {
trigger_error("Config: missing 'name' parametr",E_USER_WARNING);
return ;
}
require_once(Config::Get('path.root.engine').'/lib/internal/ConfigSimple/Config.class.php');
require_once(Config::Get('path.root.framework').'/libs/application/ConfigSimple/Config.class.php');
if(!isset($aParams['instance'])) {
$aParams['instance'] = Config::DEFAULT_CONFIG_INSTANCE;
}

View file

@ -39,7 +39,7 @@
* @return string
*/
function smarty_function_date_format($aParams,&$oSmarty) {
require_once(Config::Get('path.root.engine').'/classes/Engine.class.php');
require_once(Config::Get('path.root.framework').'/classes/engine/Engine.class.php');
$oEngine = Engine::getInstance();
$sFormatDefault = "d F Y, H:i"; // формат даты по умолчанию

View file

@ -28,7 +28,7 @@ function smarty_function_router($aParams,&$oSmarty) {
trigger_error("Router: missing 'page' parametr",E_USER_WARNING);
return ;
}
require_once(Config::Get('path.root.engine').'/classes/Router.class.php');
require_once(Config::Get('path.root.framework').'/classes/engine/Router.class.php');
if(!$sPath = Router::GetPath($aParams['page'])) {
trigger_error("Router: unknown 'page' given",E_USER_WARNING);

View file

@ -19,7 +19,7 @@
* !!!!! ВНИМАНИЕ !!!!!
*
* Ничего не изменяйте в этом файле!
* Все изменения нужно вносить в файл config/config.local.php
* Все изменения нужно вносить в файл /config/config.local.php
*/
/**
@ -31,24 +31,6 @@ $config['view']['description'] = 'Description your site'; // seo description
$config['view']['keywords'] = 'site, google, internet'; // seo keywords
$config['view']['wysiwyg'] = false; // использовать или нет визуальный редактор TinyMCE
$config['view']['noindex'] = true; // "прятать" или нет ссылки от поисковиков, оборачивая их в тег <noindex> и добавляя rel="nofollow"
$config['view']['img_resize_width'] = 570; // до какого размера в пикселях ужимать картинку по щирине при загрузки её в топики и комменты
$config['view']['img_max_width'] = 5000; // максимальная ширина загружаемых изображений в пикселях
$config['view']['img_max_height'] = 5000; // максимальная высота загружаемых изображений в пикселях
$config['view']['img_max_size_url'] = 500; // максимальный размер картинки в kB для загрузки по URL
/**
* Настройки СЕО для вывода топиков
*/
$config['seo']['description_words_count'] = 20; // количество слов из топика для вывода в метатег description
/**
* Настройка основных блоков
*/
$config['block']['stream']['row'] = 20; // сколько записей выводить в блоке "Прямой эфир"
$config['block']['stream']['show_tip'] = true; // выводить или нет всплывающие сообщения в блоке "Прямой эфир"
$config['block']['blogs']['row'] = 10; // сколько записей выводить в блоке "Блоги"
$config['block']['tags']['tags_count'] = 70; // сколько тегов выводить в блоке "теги"
$config['block']['tags']['personal_tags_count'] = 70; // сколько тегов пользователя выводить в блоке "теги"
/**
* Настройка пагинации
@ -70,27 +52,25 @@ if (isset($_SERVER['HTTP_HOST'])) {
// for CLI scripts. or you can append "HTTP_HOST=http://yoursite.url" before script run command
$config['path']['root']['web'] = null;
}
$config['path']['root']['server'] = dirname(dirname(__FILE__)); // полный путь до сайта в файловой системе
/**
* Для CLI режима использовать
* $config['path']['root']['server'] = dirname(dirname(__FILE__)); // полный путь до сайта в файловой системе
*/
$config['path']['root']['engine'] = '___path.root.server___/engine'; // полный путь до сайта в файловой системе;
$config['path']['root']['engine_lib'] = '___path.root.web___/engine/lib'; // полный путь до сайта в файловой системе
$config['path']['root']['server'] = dirname(dirname(dirname(__FILE__))); // полный путь до сайта в файловой системе
$config['path']['root']['application'] = '___path.root.server___/application'; // полный путь до сайта в файловой системе
$config['path']['root']['engine'] = LS_FRAMEWORK_PATH; // полный путь до сайта в файловой системе;
$config['path']['root']['engine_lib'] = '___path.root.engine___/libs'; // полный путь до сайта в файловой системе
$config['path']['root']['framework'] = '___path.root.engine___';
$config['path']['static']['root'] = '___path.root.web___'; // чтоб можно было статику засунуть на отдельный сервер
$config['path']['static']['skin'] = '___path.static.root___/templates/skin/___view.skin___';
$config['path']['static']['skin'] = '___path.static.root___/application/frontend/skin/___view.skin___';
$config['path']['static']['assets'] = '___path.static.skin___/assets'; // Папка с ассетами (js, css, images)
$config['path']['static']['framework'] = "___path.static.root___/templates/framework"; // Front-end framework
$config['path']['static']['framework'] = "___path.root.framework___/frontend/framework"; // Front-end framework
$config['path']['uploads']['root'] = '/uploads'; // директория для загрузки файлов
$config['path']['uploads']['images'] ='___path.uploads.root___/images';
$config['path']['offset_request_url'] = 0; // иногда помогает если сервер использует внутренние реврайты
/**
* Настройки шаблонизатора Smarty
*/
$config['path']['smarty']['template'] = '___path.root.server___/templates/skin/___view.skin___';
$config['path']['smarty']['compiled'] = '___path.root.server___/templates/compiled';
$config['path']['smarty']['cache'] = '___path.root.server___/templates/cache';
$config['path']['smarty']['plug'] = '___path.root.engine___/modules/viewer/plugs';
$config['path']['smarty']['template'] = '___path.root.application___/frontend/skin/___view.skin___';
$config['path']['smarty']['compiled'] = '___path.root.application___/tmp/templates/compiled';
$config['path']['smarty']['cache'] = '___path.root.application___/tmp/templates/cache';
$config['path']['smarty']['plug'] = '___path.root.framework___/classes/modules/viewer/plugs';
$config['smarty']['compile_check'] = true; // Проверять или нет файлы шаблона на изменения перед компиляцией, false может значительно увеличить быстродействие, но потребует ручного удаления кеша при изменения шаблона
$config['smarty']['force_compile'] = false; // Принудительно компилировать шаблоны при каждом запросе, true - существенно снижает производительность
/**
@ -132,7 +112,7 @@ $config['sys']['mail']['include_talk'] = true; // Вклю
// Устанавливаем настройки кеширования
$config['sys']['cache']['use'] = true; // использовать кеширование или нет
$config['sys']['cache']['type'] = 'file'; // тип кеширования: file, xcache и memory. memory использует мемкеш, xcache - использует XCache
$config['sys']['cache']['dir'] = '___path.root.server___/tmp/'; // каталог для файлового кеша, также используется для временных картинок. По умолчанию подставляем каталог для хранения сессий
$config['sys']['cache']['dir'] = '___path.root.application___/tmp/'; // каталог для файлового кеша, также используется для временных картинок. По умолчанию подставляем каталог для хранения сессий
$config['sys']['cache']['prefix'] = 'livestreet_cache'; // префикс кеширования, чтоб можно было на одной машине держать несколько сайтов с общим кешевым хранилищем
$config['sys']['cache']['directory_level'] = 1; // уровень вложенности директорий файлового кеша
$config['sys']['cache']['solid'] = true; // Настройка использования раздельного и монолитного кеша для отдельных операций
@ -150,96 +130,17 @@ $config['sys']['logs']['cron_file'] = 'cron.log'; // файл лога
$config['sys']['logs']['profiler'] = false; // логировать или нет профилирование процессов
$config['sys']['logs']['profiler_file'] = 'profiler.log'; // файл лога профилирования процессов
$config['sys']['logs']['hacker_console'] = false; // позволяет удобно выводить логи дебага через функцию dump(), использя "хакерскую" консоль Дмитрия Котерова
/**
* Общие настройки
*/
$config['general']['close'] = false; // использовать закрытый режим работы сайта, сайт будет доступен только авторизованным пользователям
$config['general']['rss_editor_mail'] = '___sys.mail.from_email___'; // мыло редактора РСС
$config['general']['reg']['invite'] = false; // использовать режим регистрации по приглашению или нет. Если использовать, то регистрация будет доступна ТОЛЬКО по приглашениям!
$config['general']['reg']['activation'] = false; // использовать активацию при регистрации или нет
/**
* Языковые настройки
*/
$config['lang']['current'] = 'ru'; // текущий язык текстовок
$config['lang']['default'] = 'ru'; // язык, который будет использовать на сайте по умолчанию
$config['lang']['dir'] = 'i18n'; // название директории с языковыми файлами
$config['lang']['path'] = '___path.root.server___/templates/___lang.dir___'; // полный путь до языковых файлов
$config['lang']['path'] = '___path.root.application___/frontend/___lang.dir___'; // полный путь до языковых файлов
$config['lang']['load_to_js'] = array(); // Массив текстовок, которые необходимо прогружать на страницу в виде JS хеша, позволяет использовать текстовки внутри js
/**
* Настройки ACL(Access Control List список контроля доступа)
*/
$config['acl']['create']['blog']['rating'] = 1; // порог рейтинга при котором юзер может создать коллективный блог
$config['acl']['create']['comment']['rating'] = -10; // порог рейтинга при котором юзер может добавлять комментарии
$config['acl']['create']['comment']['limit_time'] = 10; // время в секундах между постингом комментариев, если 0 то ограничение по времени не будет работать
$config['acl']['create']['comment']['limit_time_rating'] = -1; // рейтинг, выше которого перестаёт действовать ограничение по времени на постинг комментов. Не имеет смысла при $config['acl']['create']['comment']['limit_time']=0
$config['acl']['create']['topic']['limit_time'] = 240;// время в секундах между созданием записей, если 0 то ограничение по времени не будет работать
$config['acl']['create']['topic']['limit_time_rating'] = 5; // рейтинг, выше которого перестаёт действовать ограничение по времени на создание записей
$config['acl']['create']['topic']['limit_rating'] = -20;// порог рейтинга при котором юзер может создавать топики (учитываются любые блоги, включая персональные), как дополнительная защита от спама/троллинга
$config['acl']['create']['talk']['limit_time'] = 300; // время в секундах между отправкой инбоксов, если 0 то ограничение по времени не будет работать
$config['acl']['create']['talk']['limit_time_rating'] = 1; // рейтинг, выше которого перестаёт действовать ограничение по времени на отправку инбоксов
$config['acl']['create']['talk_comment']['limit_time'] = 10; // время в секундах между отправкой инбоксов, если 0 то ограничение по времени не будет работать
$config['acl']['create']['talk_comment']['limit_time_rating'] = 5; // рейтинг, выше которого перестаёт действовать ограничение по времени на отправку инбоксов
$config['acl']['create']['wall']['limit_time'] = 20; // рейтинг, выше которого перестаёт действовать ограничение по времени на отправку сообщений на стену
$config['acl']['create']['wall']['limit_time_rating'] = 0; // рейтинг, выше которого перестаёт действовать ограничение по времени на отправку сообщений на стену
$config['acl']['vote']['comment']['rating'] = -3; // порог рейтинга при котором юзер может голосовать за комментарии
$config['acl']['vote']['blog']['rating'] = -5; // порог рейтинга при котором юзер может голосовать за блог
$config['acl']['vote']['topic']['rating'] = -7; // порог рейтинга при котором юзер может голосовать за топик
$config['acl']['vote']['user']['rating'] = -1; // порог рейтинга при котором юзер может голосовать за пользователя
$config['acl']['vote']['topic']['limit_time'] = 60*60*24*20; // ограничение времени голосования за топик
$config['acl']['vote']['comment']['limit_time'] = 60*60*24*5; // ограничение времени голосования за комментарий
/**
* Настройки модулей
*/
// Модуль Blog
$config['module']['blog']['per_page'] = 20; // Число блогов на страницу
$config['module']['blog']['users_per_page'] = 20; // Число пользователей блога на страницу
$config['module']['blog']['personal_good'] = -5; // Рейтинг топика в персональном блоге ниже которого он считается плохим
$config['module']['blog']['collective_good'] = -3; // рейтинг топика в коллективных блогах ниже которого он считается плохим
$config['module']['blog']['index_good'] = 8; // Рейтинг топика выше которого(включительно) он попадает на главную
$config['module']['blog']['encrypt'] = 'livestreet'; // Ключ XXTEA шифрования идентификаторов в ссылках приглашения в блоги
$config['module']['blog']['avatar_size'] = array(100,64,48,24,0); // Список размеров аватаров у блога. 0 - исходный размер
$config['module']['blog']['category_allow'] = true; // Разрешить использование категорий бля блогов
$config['module']['blog']['category_only_admin'] = true; // Задавать и менять категории для блога может только админ
$config['module']['blog']['category_only_children'] = true; // Для блога можно выбрать только конечную категорию, у которой нет других вложенных
$config['module']['blog']['category_allow_empty'] = true; // Разрешить блоги без категории
// Модуль Topic
$config['module']['topic']['new_time'] = 60*60*24*1; // Время в секундах в течении которого топик считается новым
$config['module']['topic']['per_page'] = 10; // Число топиков на одну страницу
$config['module']['topic']['max_length'] = 15000; // Максимальное количество символов в одном топике
$config['module']['topic']['link_max_length'] = 500; // Максимальное количество символов в одном топике-ссылке
$config['module']['topic']['question_max_length'] = 500;// Максимальное количество символов в одном топике-опросе
$config['module']['topic']['allow_empty_tags'] = false; // Разрешать или нет не заполнять теги
// Модуль User
$config['module']['user']['per_page'] = 15; // Число юзеров на страницу на странице статистики и в профиле пользователя
$config['module']['user']['friend_on_profile'] = 15; // Ограничение на вывод числа друзей пользователя на странице его профиля
$config['module']['user']['friend_notice']['delete'] = false; // Отправить talk-сообщение в случае удаления пользователя из друзей
$config['module']['user']['friend_notice']['accept'] = false; // Отправить talk-сообщение в случае одобрения заявки на добавление в друзья
$config['module']['user']['friend_notice']['reject'] = false; // Отправить talk-сообщение в случае отклонения заявки на добавление в друзья
$config['module']['user']['avatar_size'] = array(100,64,48,24,0); // Список размеров аватаров у пользователя. 0 - исходный размер
$config['module']['user']['login']['min_size'] = 3; // Минимальное количество символов в логине
$config['module']['user']['login']['max_size'] = 30; // Максимальное количество символов в логине
$config['module']['user']['login']['charset'] = '0-9a-z_\-'; // Допустимые в имени пользователя символы
$config['module']['user']['time_active'] = 60*60*24*7; // Число секунд с момента последнего посещения пользователем сайта, в течение которых он считается активным
$config['module']['user']['usernote_text_max'] = 250; // Максимальный размер заметки о пользователе
$config['module']['user']['usernote_per_page'] = 20; // Число заметок на одну страницу
$config['module']['user']['userfield_max_identical'] = 2; // Максимальное число контактов одного типа
$config['module']['user']['profile_photo_width'] = 250; // ширина квадрата фотографии в профиле, px
$config['module']['user']['name_max'] = 30; // максимальная длинна имени в профиле пользователя
$config['module']['user']['captcha_use_registration'] = true; // проверять поле капчи при регистрации пользователя
// Модуль Comment
$config['module']['comment']['per_page'] = 20; // Число комментариев на одну страницу(это касается только полного списка комментариев прямого эфира)
$config['module']['comment']['bad'] = -5; // Рейтинг комментария, начиная с которого он будет скрыт
$config['module']['comment']['max_tree'] = 7; // Максимальная вложенность комментов при отображении
$config['module']['comment']['use_nested'] = false; // Использовать или нет nested set при выборке комментов, увеличивает производительность при большом числе комментариев + позволяет делать постраничное разбиение комментов
$config['module']['comment']['nested_per_page'] = 0; // Число комментов на одну страницу в топике, актуально только при use_nested = true
$config['module']['comment']['nested_page_reverse'] = true; // Определяет порядок вывода страниц. true - последние комментарии на первой странице, false - последние комментарии на последней странице
$config['module']['comment']['favourite_target_allow'] = array('topic'); // Список типов комментов, которые разрешено добавлять в избранное
// Модуль Talk
$config['module']['talk']['per_page'] = 30; // Число приватных сообщений на одну страницу
$config['module']['talk']['encrypt'] = 'livestreet'; // Ключ XXTEA шифрования идентификаторов в ссылках
$config['module']['talk']['max_users'] = 15; // Максимальное число адресатов в одном личном сообщении
// Модуль Lang
$config['module']['lang']['delete_undefined'] = true; // Если установлена true, то модуль будет автоматически удалять из языковых конструкций переменные вида %%var%%, по которым не была произведена замена
// Модуль Notify
@ -265,65 +166,19 @@ $config['module']['image']['default']['watermark_min_height'] = 130;
$config['module']['image']['default']['round_corner'] = false;
$config['module']['image']['default']['round_corner_radius'] = '18';
$config['module']['image']['default']['round_corner_rate'] = '40';
$config['module']['image']['default']['path']['watermarks'] = '___path.root.server___/engine/lib/external/LiveImage/watermarks/';
$config['module']['image']['default']['path']['fonts'] = '___path.root.server___/engine/lib/external/LiveImage/fonts/';
$config['module']['image']['default']['path']['watermarks'] = '___path.root.framework___/libs/vendor/LiveImage/watermarks/';
$config['module']['image']['default']['path']['fonts'] = '___path.root.framework___/libs/vendor/LiveImage/fonts/';
$config['module']['image']['default']['jpg_quality'] = 95; // Число от 0 до 100
$config['module']['image']['foto']['watermark_use'] = false;
$config['module']['image']['foto']['round_corner'] = false;
$config['module']['image']['topic']['watermark_use'] = false;
$config['module']['image']['topic']['round_corner'] = false;
// Модуль Security
$config['module']['security']['hash'] = "livestreet_security_key"; // "примесь" к строке, хешируемой в качестве security-кода
$config['module']['userfeed']['count_default'] = 10; // Число топиков в ленте по умолчанию
$config['module']['stream']['count_default'] = 20; // Число топиков в ленте по умолчанию
$config['module']['stream']['disable_vote_events'] = false;
// Модуль Ls
$config['module']['ls']['send_general'] = true; // Отправка на сервер LS общей информации о сайте (домен, версия LS и плагинов)
$config['module']['ls']['use_counter'] = true; // Использование счетчика GA
// Модуль Wall - стена
$config['module']['wall']['count_last_reply'] = 3; // Число последних ответов на сообщени на стене для отображения в ленте
$config['module']['wall']['per_page'] = 10; // Число сообщений на стене на одну страницу
$config['module']['wall']['text_max'] = 250; // Ограничение на максимальное количество символов в одном сообщении на стене
$config['module']['wall']['text_min'] = 1; // Ограничение на минимальное количество символов в одном сообщении на стене
/**
* Настройка топика-фотосета
*/
$config['module']['image']['photoset']['jpg_quality'] = 100; // настройка модуля Image, качество обработки фото
$config['module']['topic']['photoset']['photo_max_size'] = 6*1024; // максимально допустимый размер фото, Kb
$config['module']['topic']['photoset']['count_photos_min'] = 2; // минимальное количество фоток
$config['module']['topic']['photoset']['count_photos_max'] = 30; // максимальное количество фоток
$config['module']['topic']['photoset']['per_page'] = 20; // число фоток для одновременной загрузки
$config['module']['topic']['photoset']['size'] = array( // список размеров превью, которые необходимо делать при загрузке фото
array(
'w' => 1000,
'h' => null,
'crop' => false,
),
array(
'w' => 500,
'h' => null,
'crop' => false,
),
array(
'w' => 100,
'h' => 65,
'crop' => true,
),
array(
'w' => 50,
'h' => 50,
'crop' => true,
)
);
// Какие модули должны быть загружены на старте
$config['module']['autoLoad'] = array('Hook','Cache','Security','Session','Lang','Message','User');
$config['module']['autoLoad'] = array('Hook','Cache','Security','Session','Lang','Message');
/**
* Настройка базы данных
*/
@ -337,47 +192,7 @@ $config['db']['params']['dbname'] = 'social';
* Настройка таблиц базы данных
*/
$config['db']['table']['prefix'] = 'prefix_';
$config['db']['table']['user'] = '___db.table.prefix___user';
$config['db']['table']['blog'] = '___db.table.prefix___blog';
$config['db']['table']['blog_category'] = '___db.table.prefix___blog_category';
$config['db']['table']['topic'] = '___db.table.prefix___topic';
$config['db']['table']['topic_tag'] = '___db.table.prefix___topic_tag';
$config['db']['table']['comment'] = '___db.table.prefix___comment';
$config['db']['table']['vote'] = '___db.table.prefix___vote';
$config['db']['table']['topic_read'] = '___db.table.prefix___topic_read';
$config['db']['table']['blog_user'] = '___db.table.prefix___blog_user';
$config['db']['table']['favourite'] = '___db.table.prefix___favourite';
$config['db']['table']['favourite_tag'] = '___db.table.prefix___favourite_tag';
$config['db']['table']['talk'] = '___db.table.prefix___talk';
$config['db']['table']['talk_user'] = '___db.table.prefix___talk_user';
$config['db']['table']['talk_blacklist'] = '___db.table.prefix___talk_blacklist';
$config['db']['table']['friend'] = '___db.table.prefix___friend';
$config['db']['table']['topic_content'] = '___db.table.prefix___topic_content';
$config['db']['table']['topic_question_vote'] = '___db.table.prefix___topic_question_vote';
$config['db']['table']['user_administrator'] = '___db.table.prefix___user_administrator';
$config['db']['table']['comment_online'] = '___db.table.prefix___comment_online';
$config['db']['table']['invite'] = '___db.table.prefix___invite';
$config['db']['table']['page'] = '___db.table.prefix___page';
$config['db']['table']['reminder'] = '___db.table.prefix___reminder';
$config['db']['table']['session'] = '___db.table.prefix___session';
$config['db']['table']['notify_task'] = '___db.table.prefix___notify_task';
$config['db']['table']['userfeed_subscribe'] = '___db.table.prefix___userfeed_subscribe';
$config['db']['table']['stream_subscribe'] = '___db.table.prefix___stream_subscribe';
$config['db']['table']['stream_event'] = '___db.table.prefix___stream_event';
$config['db']['table']['stream_user_type'] = '___db.table.prefix___stream_user_type';
$config['db']['table']['user_field'] = '___db.table.prefix___user_field';
$config['db']['table']['user_field_value'] = '___db.table.prefix___user_field_value';
$config['db']['table']['topic_photo'] = '___db.table.prefix___topic_photo';
$config['db']['table']['subscribe'] = '___db.table.prefix___subscribe';
$config['db']['table']['wall'] = '___db.table.prefix___wall';
$config['db']['table']['user_note'] = '___db.table.prefix___user_note';
$config['db']['table']['geo_country'] = '___db.table.prefix___geo_country';
$config['db']['table']['geo_region'] = '___db.table.prefix___geo_region';
$config['db']['table']['geo_city'] = '___db.table.prefix___geo_city';
$config['db']['table']['geo_target'] = '___db.table.prefix___geo_target';
$config['db']['table']['user_changemail'] = '___db.table.prefix___user_changemail';
$config['db']['tables']['engine'] = 'InnoDB'; // InnoDB или MyISAM
/**
* Настройка memcache
@ -391,133 +206,14 @@ $config['memcache']['compression'] = true;
*/
$config['router']['rewrite'] = array();
// Правила реврайта для REQUEST_URI
$config['router']['uri'] = array(
// короткий вызов топиков из личных блогов
'~^(\d+)\.html~i' => "blog/\\1.html",
);
$config['router']['uri'] = array();
// Распределение action
$config['router']['page']['error'] = 'ActionError';
$config['router']['page']['registration'] = 'ActionRegistration';
$config['router']['page']['profile'] = 'ActionProfile';
$config['router']['page']['my'] = 'ActionMy';
$config['router']['page']['blog'] = 'ActionBlog';
$config['router']['page']['personal_blog'] = 'ActionPersonalBlog';
$config['router']['page']['index'] = 'ActionIndex';
$config['router']['page']['topic'] = 'ActionTopic';
$config['router']['page']['login'] = 'ActionLogin';
$config['router']['page']['people'] = 'ActionPeople';
$config['router']['page']['settings'] = 'ActionSettings';
$config['router']['page']['tag'] = 'ActionTag';
$config['router']['page']['talk'] = 'ActionTalk';
$config['router']['page']['comments'] = 'ActionComments';
$config['router']['page']['rss'] = 'ActionRss';
$config['router']['page']['link'] = 'ActionLink';
$config['router']['page']['question'] = 'ActionQuestion';
$config['router']['page']['blogs'] = 'ActionBlogs';
$config['router']['page']['search'] = 'ActionSearch';
$config['router']['page']['admin'] = 'ActionAdmin';
$config['router']['page']['ajax'] = 'ActionAjax';
$config['router']['page']['feed'] = 'ActionUserfeed';
$config['router']['page']['stream'] = 'ActionStream';
$config['router']['page']['photoset'] = 'ActionPhotoset';
$config['router']['page']['subscribe'] = 'ActionSubscribe';
// Глобальные настройки роутинга
$config['router']['config']['action_default'] = 'index';
$config['router']['config']['action_not_found'] = 'error';
/**
* Настройки вывода блоков
*/
$config['block']['rule_index_blog'] = array(
'action' => array(
'index', 'blog' => array('{topics}','{topic}','{blog}')
),
'blocks' => array(
'right' => array('stream'=>array('priority'=>100),'tags'=>array('priority'=>50),'blogs'=>array('params'=>array(),'priority'=>1))
),
'clear' => false,
);
$config['block']['rule_index'] = array(
'action' => array( 'index' ),
'blocks' => array( 'right' => array('blogNav'=>array('priority'=>500)) ),
);
$config['block']['rule_topic_type'] = array(
'action' => array(
'link' => array('add','edit'),
'question' => array('add','edit'),
'topic' => array('add','edit'),
'photoset' => array('add','edit')
),
'blocks' => array( 'right' => array('blocks/block.blogInfo.tpl', 'blocks/block.blogInfoNote.tpl') ),
);
$config['block']['rule_personal_blog'] = array(
'action' => array( 'personal_blog' ),
'blocks' => array( 'right' => array('stream','tags') ),
);
$config['block']['rule_tag'] = array(
'action' => array( 'tag' ),
'blocks' => array( 'right' => array('tags','stream') ),
);
$config['block']['rule_blogs'] = array(
'action' => array( 'blogs' ),
'blocks' => array(
'right' => array(
'blocks/block.blogAdd.tpl' => array('priority' => 100),
'blogCategories' => array('priority' => 50)
)
),
);
$config['block']['userfeedBlogs'] = array(
'action' => array('feed'),
'blocks' => array(
'right' => array(
'userfeedBlogs'=> array()
)
)
);
$config['block']['userfeedUsers'] = array(
'action' => array('feed'),
'blocks' => array(
'right' => array(
'userfeedFriends'=> array(),
'userfeedUsers'=> array()
)
)
);
$config['block']['rule_blog_info'] = array(
'action' => array(
'blog' => array('{topic}')
),
'blocks' => array(
'right' => array('blocks/block.blog.tpl'=>array('priority'=>300))
),
'clear' => false,
);
$config['block']['rule_users'] = array(
'action' => array('people'),
'blocks' => array(
'right' => array(
'blocks/block.usersStatistics.tpl',
'tagsCountry',
'tagsCity',
)
)
);
$config['block']['rule_profile'] = array(
'action' => array( 'profile', 'talk', 'settings' ),
'blocks' => array(
'right' => array(
'blocks/block.userPhoto.tpl' =>array('priority' => 100),
'blocks/block.userActions.tpl' =>array('priority' => 50),
'blocks/block.userNote.tpl' =>array('priority' => 25),
'blocks/block.userNav.tpl' =>array('priority' => 1),
)
)
);
$config['head']['default']['js'] = array(
/* Vendor libs */
"___path.static.framework___/js/vendor/html5shiv.js" => array('browser'=>'lt IE 9'),
@ -580,8 +276,6 @@ $config['head']['default']['js'] = array(
"___path.static.framework___/js/livestreet/admin.userfield.js",
"___path.static.framework___/js/livestreet/captcha.js",
"___path.static.framework___/js/livestreet/init.js",
"http://yandex.st/share/share.js" => array('merge'=>false),
);
$config['head']['default']['css'] = array(
@ -629,5 +323,4 @@ date_default_timezone_set('Europe/Moscow'); // See http://php.net/manual/en/time
$config['jevix']=require(dirname(__FILE__).'/jevix.php');
return $config;
?>
return $config;

View file

@ -19,19 +19,26 @@
* Основные константы
*/
define('LS_VERSION','1.1.0.dev');
define('LS_FRAMEWORK_PATH',dirname(dirname(__FILE__)));
/**
* Operations with Config object
*/
require_once(dirname(dirname(__FILE__))."/engine/lib/internal/ConfigSimple/Config.class.php");
require_once(LS_FRAMEWORK_PATH."/libs/application/ConfigSimple/Config.class.php");
/**
* Загружаем основной конфиг фреймворка
*/
Config::LoadFromFile(dirname(__FILE__).'/config.php');
/**
* Загружаем основной конфиг приложения
*/
Config::LoadFromFile(Config::Get('path.root.application').'/config/config.php',false);
$fGetConfig = create_function('$sPath', '$config=array(); return include $sPath;');
/**
* Загружает конфиги модулей вида /config/modules/[module_name]/config.php
*/
$sDirConfig=Config::get('path.root.server').'/config/modules/';
$sDirConfig=Config::get('path.root.application').'/config/modules/';
if ($hDirConfig = opendir($sDirConfig)) {
while (false !== ($sDirModule = readdir($hDirConfig))) {
if ($sDirModule !='.' and $sDirModule !='..' and is_dir($sDirConfig.$sDirModule)) {
@ -60,9 +67,9 @@ if ($hDirConfig = opendir($sDirConfig)) {
/**
* Инклудим все *.php файлы из каталога {path.root.engine}/include/ - это файлы ядра
* Инклудим все *.php файлы из каталога {path.root.framework}/include/ - это файлы ядра
*/
$sDirInclude=Config::get('path.root.engine').'/include/';
$sDirInclude=Config::get('path.root.framework').'/include/';
if ($hDirInclude = opendir($sDirInclude)) {
while (false !== ($sFileInclude = readdir($hDirInclude))) {
$sFileIncludePathFull=$sDirInclude.$sFileInclude;
@ -77,9 +84,9 @@ if ($hDirInclude = opendir($sDirInclude)) {
}
/**
* Инклудим все *.php файлы из каталога {path.root.server}/include/ - пользовательские файлы
* Инклудим все *.php файлы из каталога {path.root.application}/include/ - пользовательские файлы
*/
$sDirInclude=Config::get('path.root.server').'/include/';
$sDirInclude=Config::get('path.root.application').'/include/';
if ($hDirInclude = opendir($sDirInclude)) {
while (false !== ($sFileInclude = readdir($hDirInclude))) {
$sFileIncludePathFull=$sDirInclude.$sFileInclude;
@ -97,7 +104,7 @@ if ($hDirInclude = opendir($sDirInclude)) {
* Ищет routes-конфиги модулей и объединяет их с текущим
* @see Router.class.php
*/
$sDirConfig=Config::get('path.root.server').'/config/modules/';
$sDirConfig=Config::get('path.root.application').'/config/modules/';
if ($hDirConfig = opendir($sDirConfig)) {
while (false !== ($sDirModule = readdir($hDirConfig))) {
if ($sDirModule !='.' and $sDirModule !='..' and is_dir($sDirConfig.$sDirModule)) {
@ -128,8 +135,8 @@ if(isset($_SERVER['HTTP_APP_ENV']) && $_SERVER['HTTP_APP_ENV']=='test') {
/**
* Подгружаем файл тестового конфига
*/
if(file_exists(Config::Get('path.root.server').'/config/config.test.php')) {
Config::LoadFromFile(Config::Get('path.root.server').'/config/config.test.php',false);
if(file_exists(Config::Get('path.root.application').'/config/config.test.php')) {
Config::LoadFromFile(Config::Get('path.root.application').'/config/config.test.php',false);
} else {
throw new Exception("Config for test envirenment is not found.
Rename /config/config.test.php.dist to /config/config.test.php and rewrite DB settings.
@ -139,11 +146,11 @@ if(isset($_SERVER['HTTP_APP_ENV']) && $_SERVER['HTTP_APP_ENV']=='test') {
/**
* Подгружаем файлы локального и продакшн-конфига
*/
if(file_exists(Config::Get('path.root.server').'/config/config.local.php')) {
Config::LoadFromFile(Config::Get('path.root.server').'/config/config.local.php',false);
if(file_exists(Config::Get('path.root.application').'/config/config.local.php')) {
Config::LoadFromFile(Config::Get('path.root.application').'/config/config.local.php',false);
}
if(file_exists(Config::Get('path.root.server').'/config/config.stable.php')) {
Config::LoadFromFile(Config::Get('path.root.server').'/config/config.stable.php',false);
if(file_exists(Config::Get('path.root.application').'/config/config.stable.php')) {
Config::LoadFromFile(Config::Get('path.root.application').'/config/config.stable.php',false);
}
}
@ -151,7 +158,7 @@ if(isset($_SERVER['HTTP_APP_ENV']) && $_SERVER['HTTP_APP_ENV']=='test') {
* Загружает конфиги плагинов вида /plugins/[plugin_name]/config/*.php
* и include-файлы /plugins/[plugin_name]/include/*.php
*/
$sPluginsDir = Config::Get('path.root.server').'/plugins';
$sPluginsDir = Config::Get('path.root.application').'/plugins';
$sPluginsListFile = $sPluginsDir.'/'.Config::Get('sys.plugins.activation_file');
if($aPluginsList=@file($sPluginsListFile)) {
$aPluginsList=array_map('trim',$aPluginsList);
@ -186,6 +193,4 @@ if($aPluginsList=@file($sPluginsListFile)) {
}
}
}
}
?>
}

View file

@ -20,18 +20,15 @@ ini_set('display_errors', 1);
header('Content-Type: text/html; charset=utf-8');
header('X-Powered-By: LiveStreet CMS');
set_include_path(get_include_path().PATH_SEPARATOR.dirname(__FILE__));
chdir(dirname(__FILE__));
// Получаем объект конфигурации
require_once("./config/loader.php");
require_once(Config::Get('path.root.engine')."/classes/Engine.class.php");
$sPathToFramework=dirname(__FILE__).'/framework/';
require_once("{$sPathToFramework}/config/loader.php");
require_once(Config::Get('path.root.framework')."/classes/engine/Engine.class.php");
$oProfiler=ProfilerSimple::getInstance(Config::Get('path.root.server').'/logs/'.Config::Get('sys.logs.profiler_file'),Config::Get('sys.logs.profiler'));
$oProfiler=ProfilerSimple::getInstance(Config::Get('path.root.application').'/logs/'.Config::Get('sys.logs.profiler_file'),Config::Get('sys.logs.profiler'));
$iTimeId=$oProfiler->Start('full_time');
$oRouter=Router::getInstance();
$oRouter->Exec();
$oProfiler->Stop($iTimeId);
?>
$oProfiler->Stop($iTimeId);