mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-07-01 05:55:02 +03:00
Документация классов
This commit is contained in:
parent
47f17cd5f3
commit
8f84688a07
|
@ -21,6 +21,8 @@ require_once Config::Get('path.root.engine').'/lib/external/LiveImage/Image.php'
|
||||||
* Модуль обработки изображений
|
* Модуль обработки изображений
|
||||||
* Использует библиотеку LiveImage
|
* Использует библиотеку LiveImage
|
||||||
*
|
*
|
||||||
|
* @package engine.modules
|
||||||
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
class ModuleImage extends Module {
|
class ModuleImage extends Module {
|
||||||
/**
|
/**
|
||||||
|
@ -46,11 +48,10 @@ class ModuleImage extends Module {
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $aParamsDefault = array();
|
protected $aParamsDefault = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Тескт последней ошибки
|
* Тескт последней ошибки
|
||||||
*
|
*
|
||||||
* @var unknown_type
|
* @var string
|
||||||
*/
|
*/
|
||||||
protected $sLastErrorText = null;
|
protected $sLastErrorText = null;
|
||||||
|
|
||||||
|
@ -66,7 +67,7 @@ class ModuleImage extends Module {
|
||||||
/**
|
/**
|
||||||
* Получает текст последней ошибки
|
* Получает текст последней ошибки
|
||||||
*
|
*
|
||||||
* @return unknown
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function GetLastError() {
|
public function GetLastError() {
|
||||||
return $this->sLastErrorText;
|
return $this->sLastErrorText;
|
||||||
|
@ -74,7 +75,7 @@ class ModuleImage extends Module {
|
||||||
/**
|
/**
|
||||||
* Устанавливает текст последней ошибки
|
* Устанавливает текст последней ошибки
|
||||||
*
|
*
|
||||||
* @param unknown_type $sText
|
* @param string $sText Текст ошибки
|
||||||
*/
|
*/
|
||||||
public function SetLastError($sText) {
|
public function SetLastError($sText) {
|
||||||
$this->sLastErrorText=$sText;
|
$this->sLastErrorText=$sText;
|
||||||
|
@ -87,9 +88,9 @@ class ModuleImage extends Module {
|
||||||
$this->sLastErrorText=null;
|
$this->sLastErrorText=null;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Merge default and named params for images
|
* Возврашает параметры для группы, если каких то параметров в группе нет, то используются дефолтные
|
||||||
*
|
*
|
||||||
* @param string $sName
|
* @param string $sName Имя группы
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function BuildParams($sName=null) {
|
public function BuildParams($sName=null) {
|
||||||
|
@ -106,17 +107,17 @@ class ModuleImage extends Module {
|
||||||
* Resize,copy image,
|
* Resize,copy image,
|
||||||
* make rounded corners and add watermark
|
* make rounded corners and add watermark
|
||||||
*
|
*
|
||||||
* @param string $sFileSrc
|
* @param string $sFileSrc Исходный файл изображения
|
||||||
* @param string $sDirDest
|
* @param string $sDirDest Директория куда нужно сохранить изображение относительно корня сайта (path.root.server)
|
||||||
* @param string $sFileDest
|
* @param string $sFileDest Имя файла для сохранения, без расширения
|
||||||
* @param int $iWidthMax
|
* @param int $iWidthMax Максимально допустимая ширина изображения
|
||||||
* @param int $iHeightMax
|
* @param int $iHeightMax Максимало допустимая высота изображения
|
||||||
* @param int $iWidthDest
|
* @param int|null $iWidthDest Ширина необходимого изображения на выходе
|
||||||
* @param int $iHeightDest
|
* @param int|null $iHeightDest Высота необходимого изображения на выходе
|
||||||
* @param bool $bForcedMinSize
|
* @param bool $bForcedMinSize Растягивать изображение по ширине или нет, если исходное меньше. При false - изображение будет растянуто
|
||||||
* @param array $aParams
|
* @param array|null $aParams Параметры
|
||||||
* @param object $oImage
|
* @param LiveImage|null $oImage Объект изображения, если null то будет содано автоматически
|
||||||
* @return string
|
* @return string|bool Полный серверный путь до сохраненного изображения
|
||||||
*/
|
*/
|
||||||
public function Resize($sFileSrc,$sDirDest,$sFileDest,$iWidthMax,$iHeightMax,$iWidthDest=null,$iHeightDest=null,$bForcedMinSize=true,$aParams=null,$oImage=null) {
|
public function Resize($sFileSrc,$sDirDest,$sFileDest,$iWidthMax,$iHeightMax,$iWidthDest=null,$iHeightDest=null,$bForcedMinSize=true,$aParams=null,$oImage=null) {
|
||||||
$this->ClearLastError();
|
$this->ClearLastError();
|
||||||
|
@ -209,7 +210,7 @@ class ModuleImage extends Module {
|
||||||
/**
|
/**
|
||||||
* Вырезает максимально возможный квадрат
|
* Вырезает максимально возможный квадрат
|
||||||
*
|
*
|
||||||
* @param LiveImage $oImage
|
* @param LiveImage $oImage Объект изображения
|
||||||
* @return LiveImage
|
* @return LiveImage
|
||||||
*/
|
*/
|
||||||
public function CropSquare(LiveImage $oImage,$bCenter=true) {
|
public function CropSquare(LiveImage $oImage,$bCenter=true) {
|
||||||
|
@ -238,15 +239,14 @@ class ModuleImage extends Module {
|
||||||
*/
|
*/
|
||||||
return $oImage;
|
return $oImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Вырезает максимально возможный прямоугольный в нужной пропорции
|
* Вырезает максимально возможный прямоугольный в нужной пропорции
|
||||||
*
|
*
|
||||||
* @param LiveImage $oImage
|
* @param LiveImage $oImage Объект изображения
|
||||||
* @param int $iW
|
* @param int $iW Ширина для определения пропорции
|
||||||
* @param int $iH
|
* @param int $iH Высота для определения пропорции
|
||||||
* @param bool $bCenter
|
* @param bool $bCenter Вырезать из центра
|
||||||
* @return unknown
|
* @return LiveImage
|
||||||
*/
|
*/
|
||||||
public function CropProportion(LiveImage $oImage,$iW,$iH,$bCenter=true) {
|
public function CropProportion(LiveImage $oImage,$iW,$iH,$bCenter=true) {
|
||||||
|
|
||||||
|
@ -283,20 +283,20 @@ class ModuleImage extends Module {
|
||||||
return $oImage;
|
return $oImage;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Сохраняет(копирует) файл изображения
|
* Сохраняет(копирует) файл изображения на сервер
|
||||||
|
* Если переопределить данный метод, то можно сохранять изображения, например, на Amazon S3
|
||||||
*
|
*
|
||||||
* @param $sFileSource Полный путь до исходного файла
|
* @param string $sFileSource Полный путь до исходного файла
|
||||||
* @param $sDirDest Каталог для сохранения файла относительно корня сайта
|
* @param string $sDirDest Каталог для сохранения файла относительно корня сайта
|
||||||
* @param $sFileDest
|
* @param string $sFileDest Имя файла для сохранения
|
||||||
* @param null $iMode
|
* @param int|null $iMode Права chmod для файла, например, 0777
|
||||||
* @param bool $bRemoveSource
|
* @param bool $bRemoveSource Удалять исходный файл или нет
|
||||||
* @return bool | string
|
* @return bool | string
|
||||||
*/
|
*/
|
||||||
public function SaveFile($sFileSource,$sDirDest,$sFileDest,$iMode=null,$bRemoveSource=false) {
|
public function SaveFile($sFileSource,$sDirDest,$sFileDest,$iMode=null,$bRemoveSource=false) {
|
||||||
$sFileDestFullPath=rtrim(Config::Get('path.root.server'),"/").'/'.trim($sDirDest,"/").'/'.$sFileDest;
|
$sFileDestFullPath=rtrim(Config::Get('path.root.server'),"/").'/'.trim($sDirDest,"/").'/'.$sFileDest;
|
||||||
$this->CreateDirectory($sDirDest);
|
$this->CreateDirectory($sDirDest);
|
||||||
|
|
||||||
|
|
||||||
$bResult=copy($sFileSource,$sFileDestFullPath);
|
$bResult=copy($sFileSource,$sFileDestFullPath);
|
||||||
if ($bResult and !is_null($iMode)) {
|
if ($bResult and !is_null($iMode)) {
|
||||||
chmod($sFileDestFullPath,$iMode);
|
chmod($sFileDestFullPath,$iMode);
|
||||||
|
@ -315,7 +315,7 @@ class ModuleImage extends Module {
|
||||||
/**
|
/**
|
||||||
* Удаление файла изображения
|
* Удаление файла изображения
|
||||||
*
|
*
|
||||||
* @param $sFile
|
* @param string $sFile Полный серверный путь до файла
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function RemoveFile($sFile) {
|
public function RemoveFile($sFile) {
|
||||||
|
@ -327,7 +327,7 @@ class ModuleImage extends Module {
|
||||||
/**
|
/**
|
||||||
* Создает каталог по указанному адресу (с учетом иерархии)
|
* Создает каталог по указанному адресу (с учетом иерархии)
|
||||||
*
|
*
|
||||||
* @param string $sDirDest
|
* @param string $sDirDest Каталог относительно корня сайта
|
||||||
*/
|
*/
|
||||||
public function CreateDirectory($sDirDest) {
|
public function CreateDirectory($sDirDest) {
|
||||||
@func_mkdir(Config::Get('path.root.server'),$sDirDest);
|
@func_mkdir(Config::Get('path.root.server'),$sDirDest);
|
||||||
|
@ -335,7 +335,7 @@ class ModuleImage extends Module {
|
||||||
/**
|
/**
|
||||||
* Возвращает серверный адрес по переданному web-адресу
|
* Возвращает серверный адрес по переданному web-адресу
|
||||||
*
|
*
|
||||||
* @param string $sPath
|
* @param string $sPath WEB адрес изображения
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function GetServerPath($sPath) {
|
public function GetServerPath($sPath) {
|
||||||
|
@ -355,9 +355,9 @@ class ModuleImage extends Module {
|
||||||
return rtrim(Config::Get('path.root.server'),'/').'/'.$sPath;
|
return rtrim(Config::Get('path.root.server'),'/').'/'.$sPath;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Возвращает серверный адрес по переданному web-адресу
|
* Возвращает WEB адрес по переданному серверному адресу
|
||||||
*
|
*
|
||||||
* @param string $sPath
|
* @param string $sPath Серверный адрес(путь) изображения
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function GetWebPath($sPath) {
|
public function GetWebPath($sPath) {
|
||||||
|
@ -369,17 +369,17 @@ class ModuleImage extends Module {
|
||||||
* Получает директорию для данного пользователя
|
* Получает директорию для данного пользователя
|
||||||
* Используется фомат хранения данных (/images/us/er/id/yyyy/mm/dd/file.jpg)
|
* Используется фомат хранения данных (/images/us/er/id/yyyy/mm/dd/file.jpg)
|
||||||
*
|
*
|
||||||
* @param string $sUserId
|
* @param int $sId Целое число, обычно это ID пользователя
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function GetIdDir($sUserId) {
|
public function GetIdDir($sId) {
|
||||||
return Config::Get('path.uploads.images').'/'.preg_replace('~(.{2})~U', "\\1/", str_pad($sUserId, 6, "0", STR_PAD_LEFT)).date('Y/m/d');
|
return Config::Get('path.uploads.images').'/'.preg_replace('~(.{2})~U', "\\1/", str_pad($sId, 6, "0", STR_PAD_LEFT)).date('Y/m/d');
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Возвращает валидный Html код тега <img>
|
* Возвращает валидный Html код тега <img>
|
||||||
*
|
*
|
||||||
* @param string $sPath
|
* @param string $sPath WEB адрес изображения
|
||||||
* @param array $aParams
|
* @param array $aParams Параметры
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function BuildHTML($sPath,$aParams) {
|
public function BuildHTML($sPath,$aParams) {
|
||||||
|
@ -405,11 +405,5 @@ class ModuleImage extends Module {
|
||||||
|
|
||||||
return $sText;
|
return $sText;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Завершение работы модуля
|
|
||||||
*/
|
|
||||||
public function Shutdown() {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
|
@ -17,6 +17,8 @@
|
||||||
/**
|
/**
|
||||||
* Модуль поддержки языковых файлов
|
* Модуль поддержки языковых файлов
|
||||||
*
|
*
|
||||||
|
* @package engine.modules
|
||||||
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
class ModuleLang extends Module {
|
class ModuleLang extends Module {
|
||||||
/**
|
/**
|
||||||
|
@ -38,20 +40,21 @@ class ModuleLang extends Module {
|
||||||
*/
|
*/
|
||||||
protected $sLangPath;
|
protected $sLangPath;
|
||||||
/**
|
/**
|
||||||
|
* Список языковых текстовок
|
||||||
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $aLangMsg=array();
|
protected $aLangMsg=array();
|
||||||
/**
|
/**
|
||||||
* Список текстовок для JS
|
* Список текстовок для JS
|
||||||
*
|
*
|
||||||
* @var unknown_type
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $aLangMsgJs=array();
|
protected $aLangMsgJs=array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Инициализация модуля
|
* Инициализация модуля
|
||||||
*
|
*
|
||||||
* @return null
|
|
||||||
*/
|
*/
|
||||||
public function Init() {
|
public function Init() {
|
||||||
$this->Hook_Run('lang_init_start');
|
$this->Hook_Run('lang_init_start');
|
||||||
|
@ -64,7 +67,6 @@ class ModuleLang extends Module {
|
||||||
/**
|
/**
|
||||||
* Инициализирует языковой файл
|
* Инициализирует языковой файл
|
||||||
*
|
*
|
||||||
* @return null
|
|
||||||
*/
|
*/
|
||||||
protected function InitLang() {
|
protected function InitLang() {
|
||||||
/**
|
/**
|
||||||
|
@ -112,7 +114,7 @@ class ModuleLang extends Module {
|
||||||
/**
|
/**
|
||||||
* Добавляет текстовку к JS
|
* Добавляет текстовку к JS
|
||||||
*
|
*
|
||||||
* @param unknown_type $aKeys
|
* @param array $aKeys Список текстовок
|
||||||
*/
|
*/
|
||||||
public function AddLangJs($aKeys) {
|
public function AddLangJs($aKeys) {
|
||||||
if (!is_array($aKeys)) {
|
if (!is_array($aKeys)) {
|
||||||
|
@ -123,7 +125,7 @@ class ModuleLang extends Module {
|
||||||
/**
|
/**
|
||||||
* Загружает текстовки из языковых файлов
|
* Загружает текстовки из языковых файлов
|
||||||
*
|
*
|
||||||
* @return null
|
* @param $sLangName Язык для загрузки
|
||||||
*/
|
*/
|
||||||
protected function LoadLangFiles($sLangName) {
|
protected function LoadLangFiles($sLangName) {
|
||||||
$sLangFilePath = $this->sLangPath.'/'.$sLangName.'.php';
|
$sLangFilePath = $this->sLangPath.'/'.$sLangName.'.php';
|
||||||
|
@ -145,7 +147,6 @@ class ModuleLang extends Module {
|
||||||
}
|
}
|
||||||
closedir($hDirConfig);
|
closedir($hDirConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ищет языковые файлы актвиированных плагинов
|
* Ищет языковые файлы актвиированных плагинов
|
||||||
*/
|
*/
|
||||||
|
@ -165,17 +166,15 @@ class ModuleLang extends Module {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ищет языковой файл текущего шаблона
|
* Ищет языковой файл текущего шаблона
|
||||||
*/
|
*/
|
||||||
$this->LoadLangFileTemplate($sLangName);
|
$this->LoadLangFileTemplate($sLangName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Загружает языковой файл текущего шаблона
|
* Загружает языковой файл текущего шаблона
|
||||||
*
|
*
|
||||||
* @param unknown_type $sLangName
|
* @param string $sLangName Язык для загрузки
|
||||||
*/
|
*/
|
||||||
public function LoadLangFileTemplate($sLangName) {
|
public function LoadLangFileTemplate($sLangName) {
|
||||||
$sFile=Config::Get('path.smarty.template').'/settings/language/'.$sLangName.'.php';
|
$sFile=Config::Get('path.smarty.template').'/settings/language/'.$sLangName.'.php';
|
||||||
|
@ -186,7 +185,7 @@ class ModuleLang extends Module {
|
||||||
/**
|
/**
|
||||||
* Установить текущий язык
|
* Установить текущий язык
|
||||||
*
|
*
|
||||||
* @param string $sLang
|
* @param string $sLang Название языка
|
||||||
*/
|
*/
|
||||||
public function SetLang($sLang) {
|
public function SetLang($sLang) {
|
||||||
$this->sCurrentLang=$sLang;
|
$this->sCurrentLang=$sLang;
|
||||||
|
@ -211,17 +210,17 @@ class ModuleLang extends Module {
|
||||||
/**
|
/**
|
||||||
* Получить список текстовок
|
* Получить список текстовок
|
||||||
*
|
*
|
||||||
* @return unknown
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function GetLangMsg() {
|
public function GetLangMsg() {
|
||||||
return $this->aLangMsg;
|
return $this->aLangMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Получает текстовку по её имени
|
* Получает текстовку по её имени
|
||||||
*
|
*
|
||||||
* @param string $sName
|
* @param string $sName Имя текстовки
|
||||||
* @param array $aReplace
|
* @param array $aReplace Список параметром для замены в текстовке
|
||||||
|
* @param bool $bDelete Удалять или нет параметры, которые не были заменены
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function Get($sName,$aReplace=array(),$bDelete=true) {
|
public function Get($sName,$aReplace=array(),$bDelete=true) {
|
||||||
|
@ -255,11 +254,11 @@ class ModuleLang extends Module {
|
||||||
}
|
}
|
||||||
return $sLang;
|
return $sLang;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Добавить к текстовкам массив сообщений
|
* Добавить к текстовкам массив сообщений
|
||||||
*
|
*
|
||||||
* @param array $aMessages
|
* @param array $aMessages Список текстовок для добавления
|
||||||
|
* @param array|null $aBlock Параметры, позволяют хранить текстовки в структурированном виде, например, тестовки плагина "test" получать как Get('plugin.name.test')
|
||||||
*/
|
*/
|
||||||
public function AddMessages($aMessages, $aBlock = null) {
|
public function AddMessages($aMessages, $aBlock = null) {
|
||||||
if (is_array($aMessages)) {
|
if (is_array($aMessages)) {
|
||||||
|
@ -278,17 +277,15 @@ class ModuleLang extends Module {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Добавить к текстовкам отдельное сообщение
|
* Добавить к текстовкам отдельное сообщение
|
||||||
*
|
*
|
||||||
* @param string $sKey
|
* @param string $sKey Имя текстовки
|
||||||
* @param string $sMessage
|
* @param string $sMessage Значение текстовки
|
||||||
*/
|
*/
|
||||||
public function AddMessage($sKey, $sMessage) {
|
public function AddMessage($sKey, $sMessage) {
|
||||||
$this->aLangMsg[$sKey] = $sMessage;
|
$this->aLangMsg[$sKey] = $sMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Завершаем работу модуля
|
* Завершаем работу модуля
|
||||||
*
|
*
|
||||||
|
|
|
@ -18,7 +18,12 @@
|
||||||
/**
|
/**
|
||||||
* Модуль логирования
|
* Модуль логирования
|
||||||
* Имеет 3 уровня логирования: 'DEBUG','NOTICE','ERROR'
|
* Имеет 3 уровня логирования: 'DEBUG','NOTICE','ERROR'
|
||||||
|
* <pre>
|
||||||
|
* $this->Logger_Debug('Debug message');
|
||||||
|
* </pre>
|
||||||
*
|
*
|
||||||
|
* @package engine.modules
|
||||||
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
class ModuleLogger extends Module {
|
class ModuleLogger extends Module {
|
||||||
/**
|
/**
|
||||||
|
@ -66,11 +71,10 @@ class ModuleLogger extends Module {
|
||||||
/**
|
/**
|
||||||
* Случайное число
|
* Случайное число
|
||||||
*
|
*
|
||||||
* @var unknown_type
|
* @var int
|
||||||
*/
|
*/
|
||||||
protected $iRandom;
|
protected $iRandom;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Инициализация, устанавливает имя файла лога
|
* Инициализация, устанавливает имя файла лога
|
||||||
*
|
*
|
||||||
|
@ -80,11 +84,10 @@ class ModuleLogger extends Module {
|
||||||
$this->SetFileName(Config::Get('sys.logs.file'));
|
$this->SetFileName(Config::Get('sys.logs.file'));
|
||||||
$this->iRandom=rand(1000,9999);
|
$this->iRandom=rand(1000,9999);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Уставливает текущий уровень лога, тот уровень при котором будет производиться запись в файл лога
|
* Уставливает текущий уровень лога, тот уровень при котором будет производиться запись в файл лога
|
||||||
*
|
*
|
||||||
* @param int, string('DEBUG','NOTICE','ERROR') $level
|
* @param int, string('DEBUG','NOTICE','ERROR') $level Уровень логирования
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function SetWriteLevel($level) {
|
public function SetWriteLevel($level) {
|
||||||
|
@ -99,7 +102,6 @@ class ModuleLogger extends Module {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Возвращает текущий уровень лога
|
* Возвращает текущий уровень лога
|
||||||
*
|
*
|
||||||
|
@ -108,16 +110,14 @@ class ModuleLogger extends Module {
|
||||||
public function GetWriteLevel() {
|
public function GetWriteLevel() {
|
||||||
return $this->writeLevel;
|
return $this->writeLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Использовать трассировку или нет
|
* Использовать трассировку или нет
|
||||||
*
|
*
|
||||||
* @param bool $bool
|
* @param bool $bool Использовать или нет троссировку в логах
|
||||||
*/
|
*/
|
||||||
public function SetUseTrace($bool) {
|
public function SetUseTrace($bool) {
|
||||||
$this->bUseTrace=(bool)$bool;
|
$this->bUseTrace=(bool)$bool;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Использует трассировку или нет
|
* Использует трассировку или нет
|
||||||
*
|
*
|
||||||
|
@ -126,7 +126,6 @@ class ModuleLogger extends Module {
|
||||||
public function GetUseTrace() {
|
public function GetUseTrace() {
|
||||||
return $this->bUseTrace;
|
return $this->bUseTrace;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Использовать ротацию логов или нет
|
* Использовать ротацию логов или нет
|
||||||
*
|
*
|
||||||
|
@ -135,7 +134,6 @@ class ModuleLogger extends Module {
|
||||||
public function SetUseRotate($bool) {
|
public function SetUseRotate($bool) {
|
||||||
$this->bUseRotate=(bool)$bool;
|
$this->bUseRotate=(bool)$bool;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Использует ротацию логов или нет
|
* Использует ротацию логов или нет
|
||||||
*
|
*
|
||||||
|
@ -144,7 +142,6 @@ class ModuleLogger extends Module {
|
||||||
public function GetUseRotate() {
|
public function GetUseRotate() {
|
||||||
return $this->bUseRotate;
|
return $this->bUseRotate;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Устанавливает имя файла лога
|
* Устанавливает имя файла лога
|
||||||
*
|
*
|
||||||
|
@ -153,7 +150,6 @@ class ModuleLogger extends Module {
|
||||||
public function SetFileName($sFile){
|
public function SetFileName($sFile){
|
||||||
$this->sFileName=$sFile;
|
$this->sFileName=$sFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Получает имя файла лога
|
* Получает имя файла лога
|
||||||
*
|
*
|
||||||
|
@ -162,39 +158,35 @@ class ModuleLogger extends Module {
|
||||||
public function GetFileName(){
|
public function GetFileName(){
|
||||||
return $this->sFileName;
|
return $this->sFileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Запись в лог с уровнем логирования 'DEBUG'
|
* Запись в лог с уровнем логирования 'DEBUG'
|
||||||
*
|
*
|
||||||
* @param string $msg
|
* @param string $msg Сообщение для записи в лог
|
||||||
*/
|
*/
|
||||||
public function Debug($msg) {
|
public function Debug($msg) {
|
||||||
$this->log($msg,'DEBUG');
|
$this->log($msg,'DEBUG');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Запись в лог с уровнем логирования 'ERROR'
|
* Запись в лог с уровнем логирования 'ERROR'
|
||||||
*
|
*
|
||||||
* @param string $msg
|
* @param string $msg Сообщение для записи в лог
|
||||||
*/
|
*/
|
||||||
public function Error($msg) {
|
public function Error($msg) {
|
||||||
$this->log($msg,'ERROR');
|
$this->log($msg,'ERROR');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Запись в лог с уровнем логирования 'NOTICE'
|
* Запись в лог с уровнем логирования 'NOTICE'
|
||||||
*
|
*
|
||||||
* @param string $msg
|
* @param string $msg Сообщение для записи в лог
|
||||||
*/
|
*/
|
||||||
public function Notice($msg) {
|
public function Notice($msg) {
|
||||||
$this->log($msg,'NOTICE');
|
$this->log($msg,'NOTICE');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Записывает лог
|
* Записывает лог
|
||||||
*
|
*
|
||||||
* @param string $msg
|
* @param string $msg Сообщение для записи в лог
|
||||||
* @param string $sLevel
|
* @param string $sLevel Уровень логирования
|
||||||
*/
|
*/
|
||||||
protected function log($msg,$sLevel) {
|
protected function log($msg,$sLevel) {
|
||||||
/**
|
/**
|
||||||
|
@ -221,12 +213,11 @@ class ModuleLogger extends Module {
|
||||||
$this->write($msgOut);
|
$this->write($msgOut);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Выполняет форматирование трассировки
|
* Выполняет форматирование трассировки
|
||||||
*
|
*
|
||||||
* @param array $aTrace
|
* @param array $aTrace
|
||||||
* @return unknown
|
* @return string
|
||||||
*/
|
*/
|
||||||
protected function parserTrace($aTrace) {
|
protected function parserTrace($aTrace) {
|
||||||
$msg='';
|
$msg='';
|
||||||
|
@ -243,12 +234,11 @@ class ModuleLogger extends Module {
|
||||||
}
|
}
|
||||||
return $msg;
|
return $msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Производит сохранение в файл
|
* Производит сохранение в файл
|
||||||
*
|
*
|
||||||
* @param string $msg
|
* @param string $msg Сообщение
|
||||||
* @return unknown
|
* @return bool
|
||||||
*/
|
*/
|
||||||
protected function write($msg) {
|
protected function write($msg) {
|
||||||
/**
|
/**
|
||||||
|
@ -278,8 +268,8 @@ class ModuleLogger extends Module {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Производит ротацию логов
|
* Производит ротацию логов
|
||||||
*
|
*
|
||||||
|
@ -287,7 +277,7 @@ class ModuleLogger extends Module {
|
||||||
protected function rotate() {
|
protected function rotate() {
|
||||||
clearstatcache();
|
clearstatcache();
|
||||||
/**
|
/**
|
||||||
* Если размер файло лога привысил максимальный то сохраняем текущий файл в архивный, а текущий становится пустым
|
* Если размер файла лога привысил максимальный то сохраняем текущий файл в архивный, а текущий становится пустым
|
||||||
*/
|
*/
|
||||||
if (filesize($this->sPathLogs.$this->sFileName)>=$this->iSizeForRotate) {
|
if (filesize($this->sPathLogs.$this->sFileName)>=$this->iSizeForRotate) {
|
||||||
$pathinfo=pathinfo($this->sPathLogs.$this->getFileName());
|
$pathinfo=pathinfo($this->sPathLogs.$this->getFileName());
|
||||||
|
|
|
@ -23,14 +23,23 @@
|
||||||
* Так же вы можете благодаря этому получать уведомления о новых версиях установленных плагинов и шаблонов.
|
* Так же вы можете благодаря этому получать уведомления о новых версиях установленных плагинов и шаблонов.
|
||||||
* Вы всегда можете отключить передачу данных в конфиге, но просим этого не далать, тем самым вы поможете развитию LS CMS. Это важно для нас.
|
* Вы всегда можете отключить передачу данных в конфиге, но просим этого не далать, тем самым вы поможете развитию LS CMS. Это важно для нас.
|
||||||
*
|
*
|
||||||
|
* @package engine.modules
|
||||||
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
class ModuleLs extends Module {
|
class ModuleLs extends Module {
|
||||||
|
/**
|
||||||
|
* Адрес шлюза
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
protected $sUrlLs='http://sender.livestreetcms.com/push/';
|
protected $sUrlLs='http://sender.livestreetcms.com/push/';
|
||||||
|
/**
|
||||||
|
* Список данных для отправки
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
protected $aDataForSend=array();
|
protected $aDataForSend=array();
|
||||||
|
|
||||||
protected $oMapper;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Инициализируем модуль
|
* Инициализируем модуль
|
||||||
*
|
*
|
||||||
|
@ -38,7 +47,6 @@ class ModuleLs extends Module {
|
||||||
public function Init() {
|
public function Init() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Запуск сбора данных
|
* Запуск сбора данных
|
||||||
*
|
*
|
||||||
|
@ -48,7 +56,6 @@ class ModuleLs extends Module {
|
||||||
if (!Config::Get('module.ls.send_general')) {
|
if (!Config::Get('module.ls.send_general')) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Вставка счетчика
|
* Вставка счетчика
|
||||||
*/
|
*/
|
||||||
|
@ -56,13 +63,11 @@ class ModuleLs extends Module {
|
||||||
// лучше вставлять в html_head_end, но здесь нужно постараться вставить код в самом конце, чтобы уменьшить вероятность повторного вызова GA, если сайт его использует
|
// лучше вставлять в html_head_end, но здесь нужно постараться вставить код в самом конце, чтобы уменьшить вероятность повторного вызова GA, если сайт его использует
|
||||||
$this->Hook_AddExecModule('template_body_end','Ls_InjectCounter',-10000);
|
$this->Hook_AddExecModule('template_body_end','Ls_InjectCounter',-10000);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Отправка данных
|
* Отправка данных
|
||||||
*/
|
*/
|
||||||
$this->SendToLs();
|
$this->SendToLs();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Вставка счетчика GA с учетом его возможного повторного использования
|
* Вставка счетчика GA с учетом его возможного повторного использования
|
||||||
*
|
*
|
||||||
|
@ -92,9 +97,8 @@ class ModuleLs extends Module {
|
||||||
|
|
||||||
return $sCounter;
|
return $sCounter;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Отправка данных на сервер LS
|
* Отправка данных на шлюз LS
|
||||||
*/
|
*/
|
||||||
protected function SendToLs() {
|
protected function SendToLs() {
|
||||||
/**
|
/**
|
||||||
|
@ -134,7 +138,6 @@ class ModuleLs extends Module {
|
||||||
$this->ErrorSendToLs();
|
$this->ErrorSendToLs();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Отмечает факт ошибки при отправки данных, увеличиваем число попыток
|
* Отмечает факт ошибки при отправки данных, увеличиваем число попыток
|
||||||
*/
|
*/
|
||||||
|
@ -149,18 +152,16 @@ class ModuleLs extends Module {
|
||||||
}
|
}
|
||||||
$this->SetMarkerFile(date("Y-m-d"),$aData);
|
$this->SetMarkerFile(date("Y-m-d"),$aData);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Отмечает факт успешной отправки данных
|
* Отмечает факт успешной отправки данных
|
||||||
*/
|
*/
|
||||||
protected function SuccessfulSendToLs() {
|
protected function SuccessfulSendToLs() {
|
||||||
$this->SetMarkerFile(date("Y-m-d"),array('is_send'=>1));
|
$this->SetMarkerFile(date("Y-m-d"),array('is_send'=>1));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Читает данные из файла
|
* Читает данные из файла
|
||||||
*
|
*
|
||||||
* @param $sDate
|
* @param string $sDate Дата под которой сохранен файл
|
||||||
* @return bool|mixed
|
* @return bool|mixed
|
||||||
*/
|
*/
|
||||||
protected function GetMarkerFile($sDate) {
|
protected function GetMarkerFile($sDate) {
|
||||||
|
@ -173,12 +174,11 @@ class ModuleLs extends Module {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Записывает данные в файл
|
* Записывает данные в файл
|
||||||
*
|
*
|
||||||
* @param $sDate
|
* @param string $sDate Дата
|
||||||
* @param $aData
|
* @param array $aData Данные
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
protected function SetMarkerFile($sDate,$aData) {
|
protected function SetMarkerFile($sDate,$aData) {
|
||||||
|
@ -188,7 +188,6 @@ class ModuleLs extends Module {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Возвращает строчку для инжекции в шаблон
|
* Возвращает строчку для инжекции в шаблон
|
||||||
*
|
*
|
||||||
|
@ -199,7 +198,6 @@ class ModuleLs extends Module {
|
||||||
$sUrl=$this->sUrlLs.'img/?'.$this->makeGetParams($this->aDataForSend);
|
$sUrl=$this->sUrlLs.'img/?'.$this->makeGetParams($this->aDataForSend);
|
||||||
return '<img width="1" height="1" src="'.$sUrl.'">';
|
return '<img width="1" height="1" src="'.$sUrl.'">';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Возвращает данные для отправки
|
* Возвращает данные для отправки
|
||||||
*
|
*
|
||||||
|
@ -227,13 +225,12 @@ class ModuleLs extends Module {
|
||||||
|
|
||||||
return $aData;
|
return $aData;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Чтение URL
|
* Чтение URL
|
||||||
*
|
*
|
||||||
* @param $sUrl
|
* @param string $sUrl Урл
|
||||||
* @param $aParams
|
* @param array $aParams параметры
|
||||||
* @return bool|mixed|string
|
* @return bool|string
|
||||||
*/
|
*/
|
||||||
protected function getUrl($sUrl,$aParams) {
|
protected function getUrl($sUrl,$aParams) {
|
||||||
if (function_exists('curl_init')) {
|
if (function_exists('curl_init')) {
|
||||||
|
@ -283,12 +280,11 @@ class ModuleLs extends Module {
|
||||||
return $sData;
|
return $sData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Формирует строку GET параметров
|
* Формирует строку GET параметров
|
||||||
*
|
*
|
||||||
* @param array $aParams
|
* @param array $aParams Параметры
|
||||||
* @return array|string
|
* @return string
|
||||||
*/
|
*/
|
||||||
protected function makeGetParams($aParams=array()) {
|
protected function makeGetParams($aParams=array()) {
|
||||||
$sGetParams='';
|
$sGetParams='';
|
||||||
|
@ -297,7 +293,5 @@ class ModuleLs extends Module {
|
||||||
}
|
}
|
||||||
return $sGetParams;
|
return $sGetParams;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
|
@ -19,19 +19,63 @@ require_once(Config::Get('path.root.engine').'/lib/external/phpMailer/class.phpm
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Модуль для отправки почты(e-mail) через phpMailer
|
* Модуль для отправки почты(e-mail) через phpMailer
|
||||||
|
* <pre>
|
||||||
|
* $this->Mail_SetAdress('claus@mail.ru','Claus');
|
||||||
|
* $this->Mail_SetSubject('Hi!');
|
||||||
|
* $this->Mail_SetBody('How are you?');
|
||||||
|
* $this->Mail_setHTML();
|
||||||
|
* $this->Mail_Send();
|
||||||
|
* </pre>
|
||||||
*
|
*
|
||||||
|
* @package engine.modules
|
||||||
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
class ModuleMail extends Module {
|
class ModuleMail extends Module {
|
||||||
|
/**
|
||||||
|
* Основной объект рассылбщика
|
||||||
|
*
|
||||||
|
* @var phpmailer
|
||||||
|
*/
|
||||||
protected $oMailer;
|
protected $oMailer;
|
||||||
/**
|
/**
|
||||||
* Настройки SMTP сервера для отправки писем
|
* Настройки SMTP сервера для отправки писем
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* Хост smtp
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
protected $sHost;
|
protected $sHost;
|
||||||
|
/**
|
||||||
|
* Порт smtp
|
||||||
|
*
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
protected $iPort;
|
protected $iPort;
|
||||||
|
/**
|
||||||
|
* Логин smtp
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
protected $sUsername;
|
protected $sUsername;
|
||||||
|
/**
|
||||||
|
* Пароль smtp
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
protected $sPassword;
|
protected $sPassword;
|
||||||
|
/**
|
||||||
|
* Треубется или нет авторизация на smtp
|
||||||
|
*
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
protected $bSmtpAuth;
|
protected $bSmtpAuth;
|
||||||
|
/**
|
||||||
|
* Префикс соединения к smtp - "", "ssl" или "tls"
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
protected $sSmtpSecure;
|
protected $sSmtpSecure;
|
||||||
/**
|
/**
|
||||||
* Метод отправки почты
|
* Метод отправки почты
|
||||||
|
@ -64,7 +108,17 @@ class ModuleMail extends Module {
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
protected $sFromName;
|
protected $sFromName;
|
||||||
|
/**
|
||||||
|
* Тема письма
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
protected $sSubject='';
|
protected $sSubject='';
|
||||||
|
/**
|
||||||
|
* Текст письма
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
protected $sBody='';
|
protected $sBody='';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -115,46 +169,41 @@ class ModuleMail extends Module {
|
||||||
$this->oMailer->From=$this->sFrom;
|
$this->oMailer->From=$this->sFrom;
|
||||||
$this->oMailer->FromName=$this->sFromName;
|
$this->oMailer->FromName=$this->sFromName;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Устанавливает тему сообщения
|
* Устанавливает тему сообщения
|
||||||
*
|
*
|
||||||
* @param string $sText
|
* @param string $sText Тема сообщения
|
||||||
*/
|
*/
|
||||||
public function SetSubject($sText) {
|
public function SetSubject($sText) {
|
||||||
$this->sSubject=$sText;
|
$this->sSubject=$sText;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Устанавливает текст сообщения
|
* Устанавливает текст сообщения
|
||||||
*
|
*
|
||||||
* @param string $sText
|
* @param string $sText Текст сообщения
|
||||||
*/
|
*/
|
||||||
public function SetBody($sText) {
|
public function SetBody($sText) {
|
||||||
$this->sBody=$sText;
|
$this->sBody=$sText;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Добавляем новый адрес получателя
|
* Добавляем новый адрес получателя
|
||||||
*
|
*
|
||||||
* @param string $sMail
|
* @param string $sMail Емайл
|
||||||
* @param string $sName
|
* @param string $sName Имя
|
||||||
*/
|
*/
|
||||||
public function AddAdress($sMail,$sName=null) {
|
public function AddAdress($sMail,$sName=null) {
|
||||||
$this->oMailer->AddAddress($sMail,$sName);
|
$this->oMailer->AddAddress($sMail,$sName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Отправляет сообщение(мыло)
|
* Отправляет сообщение(мыло)
|
||||||
*
|
*
|
||||||
* @return unknown
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function Send() {
|
public function Send() {
|
||||||
$this->oMailer->Subject=$this->sSubject;
|
$this->oMailer->Subject=$this->sSubject;
|
||||||
$this->oMailer->Body=$this->sBody;
|
$this->oMailer->Body=$this->sBody;
|
||||||
return $this->oMailer->Send();
|
return $this->oMailer->Send();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Очищает все адреса получателей
|
* Очищает все адреса получателей
|
||||||
*
|
*
|
||||||
|
@ -162,18 +211,16 @@ class ModuleMail extends Module {
|
||||||
public function ClearAddresses() {
|
public function ClearAddresses() {
|
||||||
$this->oMailer->ClearAddresses();
|
$this->oMailer->ClearAddresses();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Устанавливает единственный адрес получателя
|
* Устанавливает единственный адрес получателя
|
||||||
*
|
*
|
||||||
* @param string $sMail
|
* @param string $sMail Емайл
|
||||||
* @param string $sName
|
* @param string $sName Имя
|
||||||
*/
|
*/
|
||||||
public function SetAdress($sMail,$sName=null) {
|
public function SetAdress($sMail,$sName=null) {
|
||||||
$this->ClearAddresses();
|
$this->ClearAddresses();
|
||||||
$this->oMailer->AddAddress($sMail,$sName);
|
$this->oMailer->AddAddress($sMail,$sName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Устанавливает режим отправки письма как HTML
|
* Устанавливает режим отправки письма как HTML
|
||||||
*
|
*
|
||||||
|
@ -181,7 +228,6 @@ class ModuleMail extends Module {
|
||||||
public function setHTML() {
|
public function setHTML() {
|
||||||
$this->oMailer->IsHTML(true);
|
$this->oMailer->IsHTML(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Устанавливает режим отправки письма как Text(Plain)
|
* Устанавливает режим отправки письма как Text(Plain)
|
||||||
*
|
*
|
||||||
|
|
|
@ -17,7 +17,13 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Модуль системных сообщений
|
* Модуль системных сообщений
|
||||||
|
* Позволяет показывать пользователю сообщения двух видов - об ошибке и об успешном действии.
|
||||||
|
* <pre>
|
||||||
|
* $this->Message_AddErrorSingle($this->Lang_Get('not_access'),$this->Lang_Get('error'));
|
||||||
|
* </pre>
|
||||||
*
|
*
|
||||||
|
* @package engine.modules
|
||||||
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
class ModuleMessage extends Module {
|
class ModuleMessage extends Module {
|
||||||
/**
|
/**
|
||||||
|
@ -32,14 +38,15 @@ class ModuleMessage extends Module {
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $aMsgNotice=array();
|
protected $aMsgNotice=array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Массив сообщений, который будут показаны на СЛЕДУЮЩЕЙ страничке
|
* Массив сообщений, который будут показаны на СЛЕДУЮЩЕЙ страничке
|
||||||
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $aMsgNoticeSession=array();
|
protected $aMsgNoticeSession=array();
|
||||||
/**
|
/**
|
||||||
* Массив ошибок, который будут показаны на СЛЕДУЮЩЕЙ страничке
|
* Массив ошибок, который будут показаны на СЛЕДУЮЩЕЙ страничке
|
||||||
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $aMsgErrorSession=array();
|
protected $aMsgErrorSession=array();
|
||||||
|
@ -61,7 +68,6 @@ class ModuleMessage extends Module {
|
||||||
$this->aMsgError = $aErrorSession;
|
$this->aMsgError = $aErrorSession;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* При завершении работы модуля передаем списки сообщений в шаблоны Smarty
|
* При завершении работы модуля передаем списки сообщений в шаблоны Smarty
|
||||||
*
|
*
|
||||||
|
@ -79,9 +85,9 @@ class ModuleMessage extends Module {
|
||||||
/**
|
/**
|
||||||
* Добавляет новое сообщение об ошибке
|
* Добавляет новое сообщение об ошибке
|
||||||
*
|
*
|
||||||
* @param string $sMsg
|
* @param string $sMsg Сообщение
|
||||||
* @param string $sTitle
|
* @param string $sTitle Заголовок
|
||||||
* @param bool $bUseSession
|
* @param bool $bUseSession Показать сообщение при следующем обращии пользователя к сайту
|
||||||
*/
|
*/
|
||||||
public function AddError($sMsg,$sTitle=null,$bUseSession=false) {
|
public function AddError($sMsg,$sTitle=null,$bUseSession=false) {
|
||||||
if(!$bUseSession) {
|
if(!$bUseSession) {
|
||||||
|
@ -90,13 +96,12 @@ class ModuleMessage extends Module {
|
||||||
$this->aMsgErrorSession[]=array('msg'=>$sMsg,'title'=>$sTitle);
|
$this->aMsgErrorSession[]=array('msg'=>$sMsg,'title'=>$sTitle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Создаёт идинственное сообщение об ошибке(т.е. очищает все предыдущие)
|
* Создаёт идинственное сообщение об ошибке(т.е. очищает все предыдущие)
|
||||||
*
|
*
|
||||||
* @param string $sMsg
|
* @param string $sMsg Сообщение
|
||||||
* @param string $sTitle
|
* @param string $sTitle Заголовок
|
||||||
* @param bool $bUseSession
|
* @param bool $bUseSession Показать сообщение при следующем обращии пользователя к сайту
|
||||||
*/
|
*/
|
||||||
public function AddErrorSingle($sMsg,$sTitle=null,$bUseSession=false) {
|
public function AddErrorSingle($sMsg,$sTitle=null,$bUseSession=false) {
|
||||||
$this->ClearError();
|
$this->ClearError();
|
||||||
|
@ -105,9 +110,9 @@ class ModuleMessage extends Module {
|
||||||
/**
|
/**
|
||||||
* Добавляет новое сообщение
|
* Добавляет новое сообщение
|
||||||
*
|
*
|
||||||
* @param string $sMsg
|
* @param string $sMsg Сообщение
|
||||||
* @param string $sTitle
|
* @param string $sTitle Заголовок
|
||||||
* @param bool $bUseSession
|
* @param bool $bUseSession Показать сообщение при следующем обращии пользователя к сайту
|
||||||
*/
|
*/
|
||||||
public function AddNotice($sMsg,$sTitle=null,$bUseSession=false) {
|
public function AddNotice($sMsg,$sTitle=null,$bUseSession=false) {
|
||||||
if(!$bUseSession) {
|
if(!$bUseSession) {
|
||||||
|
@ -116,19 +121,17 @@ class ModuleMessage extends Module {
|
||||||
$this->aMsgNoticeSession[]=array('msg'=>$sMsg,'title'=>$sTitle);
|
$this->aMsgNoticeSession[]=array('msg'=>$sMsg,'title'=>$sTitle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Создаёт идинственное сообщение, удаляя предыдущие
|
* Создаёт идинственное сообщение, удаляя предыдущие
|
||||||
*
|
*
|
||||||
* @param string $sMsg
|
* @param string $sMsg Сообщение
|
||||||
* @param string $sTitle
|
* @param string $sTitle Заголовок
|
||||||
* @param bool $bUseSession
|
* @param bool $bUseSession Показать сообщение при следующем обращии пользователя к сайту
|
||||||
*/
|
*/
|
||||||
public function AddNoticeSingle($sMsg,$sTitle=null,$bUseSession=false) {
|
public function AddNoticeSingle($sMsg,$sTitle=null,$bUseSession=false) {
|
||||||
$this->ClearNotice();
|
$this->ClearNotice();
|
||||||
$this->AddNotice($sMsg,$sTitle,$bUseSession);
|
$this->AddNotice($sMsg,$sTitle,$bUseSession);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Очищает стек сообщений
|
* Очищает стек сообщений
|
||||||
*
|
*
|
||||||
|
@ -137,7 +140,6 @@ class ModuleMessage extends Module {
|
||||||
$this->aMsgNotice=array();
|
$this->aMsgNotice=array();
|
||||||
$this->aMsgNoticeSession=array();
|
$this->aMsgNoticeSession=array();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Очищает стек ошибок
|
* Очищает стек ошибок
|
||||||
*
|
*
|
||||||
|
@ -146,7 +148,6 @@ class ModuleMessage extends Module {
|
||||||
$this->aMsgError=array();
|
$this->aMsgError=array();
|
||||||
$this->aMsgErrorSession=array();
|
$this->aMsgErrorSession=array();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Получает список сообщений об ошибке
|
* Получает список сообщений об ошибке
|
||||||
*
|
*
|
||||||
|
@ -155,7 +156,6 @@ class ModuleMessage extends Module {
|
||||||
public function GetError() {
|
public function GetError() {
|
||||||
return $this->aMsgError;
|
return $this->aMsgError;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Получает список сообщений
|
* Получает список сообщений
|
||||||
*
|
*
|
||||||
|
@ -164,7 +164,6 @@ class ModuleMessage extends Module {
|
||||||
public function GetNotice() {
|
public function GetNotice() {
|
||||||
return $this->aMsgNotice;
|
return $this->aMsgNotice;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Возвращает список сообщений,
|
* Возвращает список сообщений,
|
||||||
* которые необходимо поместить в сессию
|
* которые необходимо поместить в сессию
|
||||||
|
@ -174,7 +173,6 @@ class ModuleMessage extends Module {
|
||||||
public function GetNoticeSession() {
|
public function GetNoticeSession() {
|
||||||
return $this->aMsgNoticeSession;
|
return $this->aMsgNoticeSession;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Возвращает список ошибок,
|
* Возвращает список ошибок,
|
||||||
* которые необходимо поместить в сессию
|
* которые необходимо поместить в сессию
|
||||||
|
|
|
@ -16,8 +16,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Модуль управления плагинами сообщений
|
* Модуль управления плагинами
|
||||||
*
|
*
|
||||||
|
* @package engine.modules
|
||||||
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
class ModulePlugin extends Module {
|
class ModulePlugin extends Module {
|
||||||
/**
|
/**
|
||||||
|
@ -32,16 +34,15 @@ class ModulePlugin extends Module {
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
protected $sPluginsDir;
|
protected $sPluginsDir;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Список плагинов
|
* Список плагинов
|
||||||
*
|
*
|
||||||
* @var unknown_type
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $aPluginsList=array();
|
protected $aPluginsList=array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Список engine-rewrite`ов (модули, экшены, сущности, шаблоны)
|
* Список engine-rewrite`ов (модули, экшены, сущности, шаблоны)
|
||||||
|
* Определяет типы объектов, которые может переопределить/унаследовать плагин
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
|
@ -53,7 +54,6 @@ class ModulePlugin extends Module {
|
||||||
'template' => array(),
|
'template' => array(),
|
||||||
'block' => array(),
|
'block' => array(),
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Стек наследований
|
* Стек наследований
|
||||||
*
|
*
|
||||||
|
@ -68,7 +68,6 @@ class ModulePlugin extends Module {
|
||||||
public function Init() {
|
public function Init() {
|
||||||
$this->sPluginsDir=Config::Get('path.root.server').'/plugins/';
|
$this->sPluginsDir=Config::Get('path.root.server').'/plugins/';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Получает список информации о всех плагинах, загруженных в plugin-директорию
|
* Получает список информации о всех плагинах, загруженных в plugin-директорию
|
||||||
*
|
*
|
||||||
|
@ -122,13 +121,12 @@ class ModulePlugin extends Module {
|
||||||
}
|
}
|
||||||
return $this->aPluginsList;
|
return $this->aPluginsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Получает значение параметра из XML на основе языковой разметки
|
* Получает значение параметра из XML на основе языковой разметки
|
||||||
*
|
*
|
||||||
* @param SimpleXMLElement $oXml
|
* @param SimpleXMLElement $oXml XML узел
|
||||||
* @param string $sProperty
|
* @param string $sProperty Свойство, которое нужно вернуть
|
||||||
* @param string $sLang
|
* @param string $sLang Название языка
|
||||||
*/
|
*/
|
||||||
protected function Xlang($oXml,$sProperty,$sLang) {
|
protected function Xlang($oXml,$sProperty,$sLang) {
|
||||||
$sProperty=trim($sProperty);
|
$sProperty=trim($sProperty);
|
||||||
|
@ -138,7 +136,13 @@ class ModulePlugin extends Module {
|
||||||
}
|
}
|
||||||
$oXml->$sProperty->data=$this->Text_Parser(trim((string)array_shift($data)));
|
$oXml->$sProperty->data=$this->Text_Parser(trim((string)array_shift($data)));
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Переключает состояние плагина активный/не активный
|
||||||
|
*
|
||||||
|
* @param string $sPlugin Название плагина(код)
|
||||||
|
* @param $sAction Действие - activate/deactivate
|
||||||
|
* @return null|bool
|
||||||
|
*/
|
||||||
public function Toggle($sPlugin,$sAction) {
|
public function Toggle($sPlugin,$sAction) {
|
||||||
$aPlugins=$this->GetList();
|
$aPlugins=$this->GetList();
|
||||||
if(!isset($aPlugins[$sPlugin])) return null;
|
if(!isset($aPlugins[$sPlugin])) return null;
|
||||||
|
@ -309,7 +313,6 @@ class ModulePlugin extends Module {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Возвращает список активированных плагинов в системе
|
* Возвращает список активированных плагинов в системе
|
||||||
*
|
*
|
||||||
|
@ -324,16 +327,15 @@ class ModulePlugin extends Module {
|
||||||
|
|
||||||
return $aPlugins;
|
return $aPlugins;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Записывает список активных плагинов в файл PLUGINS.DAT
|
* Записывает список активных плагинов в файл PLUGINS.DAT
|
||||||
*
|
*
|
||||||
* @param array|string $aPlugins
|
* @param array|string $aPlugins Список плагинов
|
||||||
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function SetActivePlugins($aPlugins) {
|
public function SetActivePlugins($aPlugins) {
|
||||||
if(!is_array($aPlugins)) $aPlugins = array($aPlugins);
|
if(!is_array($aPlugins)) $aPlugins = array($aPlugins);
|
||||||
$aPlugins=array_unique(array_map('trim',$aPlugins));
|
$aPlugins=array_unique(array_map('trim',$aPlugins));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Записываем данные в файл PLUGINS.DAT
|
* Записываем данные в файл PLUGINS.DAT
|
||||||
*/
|
*/
|
||||||
|
@ -342,11 +344,10 @@ class ModulePlugin extends Module {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Удаляет плагины с сервера
|
* Удаляет плагины с сервера
|
||||||
*
|
*
|
||||||
* @param array $aPlugins
|
* @param array $aPlugins Список плагинов для удаления
|
||||||
*/
|
*/
|
||||||
public function Delete($aPlugins) {
|
public function Delete($aPlugins) {
|
||||||
if(!is_array($aPlugins)) $aPlugins=array($aPlugins);
|
if(!is_array($aPlugins)) $aPlugins=array($aPlugins);
|
||||||
|
@ -364,7 +365,6 @@ class ModulePlugin extends Module {
|
||||||
func_rmdir($this->sPluginsDir.$sPluginCode);
|
func_rmdir($this->sPluginsDir.$sPluginCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Перенаправление вызовов на модули, экшены, сущности
|
* Перенаправление вызовов на модули, экшены, сущности
|
||||||
*
|
*
|
||||||
|
@ -385,7 +385,6 @@ class ModulePlugin extends Module {
|
||||||
'sign'=>$sSign
|
'sign'=>$sSign
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Добавляет в стек наследника класса
|
* Добавляет в стек наследника класса
|
||||||
*
|
*
|
||||||
|
@ -403,13 +402,12 @@ class ModulePlugin extends Module {
|
||||||
);
|
);
|
||||||
$this->aInherits[trim($sFrom)]['position']=count($this->aInherits[trim($sFrom)]['items'])-1;
|
$this->aInherits[trim($sFrom)]['position']=count($this->aInherits[trim($sFrom)]['items'])-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Получает следующего родителя у наследника.
|
* Получает следующего родителя у наследника.
|
||||||
* ВНИМАНИЕ! Данный метод нужно вызвать только из __autoload()
|
* ВНИМАНИЕ! Данный метод нужно вызвать только из __autoload()
|
||||||
*
|
*
|
||||||
* @param unknown_type $sFrom
|
* @param string $sFrom
|
||||||
* @return unknown
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function GetParentInherit($sFrom) {
|
public function GetParentInherit($sFrom) {
|
||||||
if (!isset($this->aInherits[$sFrom]['items']) or count($this->aInherits[$sFrom]['items'])<=1 or $this->aInherits[$sFrom]['position']<1) {
|
if (!isset($this->aInherits[$sFrom]['items']) or count($this->aInherits[$sFrom]['items'])<=1 or $this->aInherits[$sFrom]['position']<1) {
|
||||||
|
@ -418,14 +416,24 @@ class ModulePlugin extends Module {
|
||||||
$this->aInherits[$sFrom]['position']--;
|
$this->aInherits[$sFrom]['position']--;
|
||||||
return $this->aInherits[$sFrom]['items'][$this->aInherits[$sFrom]['position']]['inherit'];
|
return $this->aInherits[$sFrom]['items'][$this->aInherits[$sFrom]['position']]['inherit'];
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Возвращает список наследуемых классов
|
||||||
|
*
|
||||||
|
* @param string $sFrom
|
||||||
|
* @return null|array
|
||||||
|
*/
|
||||||
public function GetInherits($sFrom) {
|
public function GetInherits($sFrom) {
|
||||||
if (isset($this->aInherits[trim($sFrom)])) {
|
if (isset($this->aInherits[trim($sFrom)])) {
|
||||||
return $this->aInherits[trim($sFrom)]['items'];
|
return $this->aInherits[trim($sFrom)]['items'];
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Возвращает последнего наследника в цепочке
|
||||||
|
*
|
||||||
|
* @param $sFrom
|
||||||
|
* @return null|string
|
||||||
|
*/
|
||||||
public function GetLastInherit($sFrom) {
|
public function GetLastInherit($sFrom) {
|
||||||
if (isset($this->aInherits[trim($sFrom)])) {
|
if (isset($this->aInherits[trim($sFrom)])) {
|
||||||
return $this->aInherits[trim($sFrom)]['items'][count($this->aInherits[trim($sFrom)]['items'])-1];
|
return $this->aInherits[trim($sFrom)]['items'][count($this->aInherits[trim($sFrom)]['items'])-1];
|
||||||
|
@ -448,7 +456,11 @@ class ModulePlugin extends Module {
|
||||||
}
|
}
|
||||||
return $sFrom;
|
return $sFrom;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @param string $sType
|
||||||
|
* @param string $sFrom
|
||||||
|
* @return array|null
|
||||||
|
*/
|
||||||
public function GetDelegates($sType,$sFrom) {
|
public function GetDelegates($sType,$sFrom) {
|
||||||
if (isset($this->aDelegates[$sType][$sFrom]['delegate'])) {
|
if (isset($this->aDelegates[$sType][$sFrom]['delegate'])) {
|
||||||
return array($this->aDelegates[$sType][$sFrom]['delegate']);
|
return array($this->aDelegates[$sType][$sFrom]['delegate']);
|
||||||
|
@ -457,12 +469,24 @@ class ModulePlugin extends Module {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Возвращает цепочку делегатов
|
||||||
|
*
|
||||||
|
* @param string $sType
|
||||||
|
* @param string $sTo
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
public function GetDelegationChain($sType,$sTo) {
|
public function GetDelegationChain($sType,$sTo) {
|
||||||
$sRootDelegater = $this->GetRootDelegater($sType,$sTo);
|
$sRootDelegater = $this->GetRootDelegater($sType,$sTo);
|
||||||
return $this->collectAllDelegatesRecursive($sType,array($sRootDelegater));
|
return $this->collectAllDelegatesRecursive($sType,array($sRootDelegater));
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Возвращает делегируемый класс
|
||||||
|
*
|
||||||
|
* @param string $sType
|
||||||
|
* @param string $sTo
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
public function GetRootDelegater($sType,$sTo) {
|
public function GetRootDelegater($sType,$sTo) {
|
||||||
$sItem = $sTo;
|
$sItem = $sTo;
|
||||||
$sItemDelegater = $this->GetDelegater($sType,$sTo);
|
$sItemDelegater = $this->GetDelegater($sType,$sTo);
|
||||||
|
@ -475,7 +499,13 @@ class ModulePlugin extends Module {
|
||||||
}
|
}
|
||||||
return $sRootDelegater;
|
return $sRootDelegater;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Составляет цепочку делегатов
|
||||||
|
*
|
||||||
|
* @param string $sType
|
||||||
|
* @param string $aDelegates
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
public function collectAllDelegatesRecursive($sType,$aDelegates) {
|
public function collectAllDelegatesRecursive($sType,$aDelegates) {
|
||||||
foreach($aDelegates as $sClass) {
|
foreach($aDelegates as $sClass) {
|
||||||
if($aNewDelegates=$this->GetDelegates($sType,$sClass)) {
|
if($aNewDelegates=$this->GetDelegates($sType,$sClass)) {
|
||||||
|
@ -484,7 +514,6 @@ class ModulePlugin extends Module {
|
||||||
}
|
}
|
||||||
return $aDelegates;
|
return $aDelegates;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Возвращает делегирующий объект по имени делегата
|
* Возвращает делегирующий объект по имени делегата
|
||||||
*
|
*
|
||||||
|
@ -511,7 +540,6 @@ class ModulePlugin extends Module {
|
||||||
}
|
}
|
||||||
return $sTo;
|
return $sTo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Возвращает подпись делегата модуля, экшена, сущности.
|
* Возвращает подпись делегата модуля, экшена, сущности.
|
||||||
*
|
*
|
||||||
|
@ -528,7 +556,6 @@ class ModulePlugin extends Module {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Возвращает true, если установлено правило делегирования
|
* Возвращает true, если установлено правило делегирования
|
||||||
* и класс является базовым в данном правиле
|
* и класс является базовым в данном правиле
|
||||||
|
@ -545,7 +572,6 @@ class ModulePlugin extends Module {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Возвращает true, если устано
|
* Возвращает true, если устано
|
||||||
*
|
*
|
||||||
|
@ -555,7 +581,7 @@ class ModulePlugin extends Module {
|
||||||
*/
|
*/
|
||||||
public function isDelegated($sType,$sTo) {
|
public function isDelegated($sType,$sTo) {
|
||||||
/**
|
/**
|
||||||
* Фильтруем меппер делегатов/наследников
|
* Фильтруем маппер делегатов/наследников
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
$aDelegateMapper=array_filter(
|
$aDelegateMapper=array_filter(
|
||||||
|
@ -576,7 +602,6 @@ class ModulePlugin extends Module {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Возвращает список объектов, доступных для делегирования
|
* Возвращает список объектов, доступных для делегирования
|
||||||
*
|
*
|
||||||
|
@ -585,12 +610,5 @@ class ModulePlugin extends Module {
|
||||||
public function GetDelegateObjectList() {
|
public function GetDelegateObjectList() {
|
||||||
return array_keys($this->aDelegates);
|
return array_keys($this->aDelegates);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* При завершении работы модуля
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function Shutdown() {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
|
@ -17,7 +17,17 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Модуль безопасности
|
* Модуль безопасности
|
||||||
|
* Необходимо использовать перед обработкой отправленной формы:
|
||||||
|
* <pre>
|
||||||
|
* if (getRequest('submit_add')) {
|
||||||
|
* $this->Security_ValidateSendForm();
|
||||||
|
* // далее код обработки формы
|
||||||
|
* ......
|
||||||
|
* }
|
||||||
|
* </pre>
|
||||||
*
|
*
|
||||||
|
* @package engine.modules
|
||||||
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
class ModuleSecurity extends Module {
|
class ModuleSecurity extends Module {
|
||||||
/**
|
/**
|
||||||
|
@ -27,14 +37,19 @@ class ModuleSecurity extends Module {
|
||||||
public function Init() {
|
public function Init() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Производит валидацию отправки формы/запроса от пользователя, позволяет избежать атаки CSRF
|
||||||
|
*/
|
||||||
public function ValidateSendForm() {
|
public function ValidateSendForm() {
|
||||||
if (!($this->ValidateSessionKey() && 1)) {
|
if (!($this->ValidateSessionKey())) {
|
||||||
die("Hacking attemp!");
|
die("Hacking attemp!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Проверка на соотвествие реферала
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
public function ValidateReferal() {
|
public function ValidateReferal() {
|
||||||
if (isset($_SERVER['HTTP_REFERER'])) {
|
if (isset($_SERVER['HTTP_REFERER'])) {
|
||||||
$aUrl=parse_url($_SERVER['HTTP_REFERER']);
|
$aUrl=parse_url($_SERVER['HTTP_REFERER']);
|
||||||
|
@ -49,6 +64,7 @@ class ModuleSecurity extends Module {
|
||||||
/**
|
/**
|
||||||
* Проверяет наличие security-ключа в сессии
|
* Проверяет наличие security-ключа в сессии
|
||||||
*
|
*
|
||||||
|
* @param null|string $sCode Код для проверки, если нет то берется из реквеста
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function ValidateSessionKey($sCode=null) {
|
public function ValidateSessionKey($sCode=null) {
|
||||||
|
@ -74,7 +90,9 @@ class ModuleSecurity extends Module {
|
||||||
protected function GenerateSessionKey() {
|
protected function GenerateSessionKey() {
|
||||||
return md5($this->Session_GetId().Config::Get('module.security.hash'));
|
return md5($this->Session_GetId().Config::Get('module.security.hash'));
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Завершение модуля
|
||||||
|
*/
|
||||||
public function Shutdown() {
|
public function Shutdown() {
|
||||||
$this->SetSessionKey();
|
$this->SetSessionKey();
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,27 +17,40 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Модуль для работы с сессиями
|
* Модуль для работы с сессиями
|
||||||
* Заменяет стандартный механизм сессий(session)
|
* Выступает в качестве врапера для стандартного механизма сессий
|
||||||
*
|
*
|
||||||
|
* @package engine.modules
|
||||||
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
class ModuleSession extends Module {
|
class ModuleSession extends Module {
|
||||||
|
/**
|
||||||
|
* ID сессии
|
||||||
|
*
|
||||||
|
* @var null|string
|
||||||
|
*/
|
||||||
protected $sId=null;
|
protected $sId=null;
|
||||||
|
/**
|
||||||
|
* Данные сессии
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
protected $aData=array();
|
protected $aData=array();
|
||||||
/**
|
/**
|
||||||
* Список user-agent'ов для флеш плеера
|
* Список user-agent'ов для флеш плеера
|
||||||
|
* Используется для передачи ID сессии при обращениии к сайту через flash, например, загрузка файлов через flash
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $aFlashUserAgent=array(
|
protected $aFlashUserAgent=array(
|
||||||
'Shockwave Flash'
|
'Shockwave Flash'
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Использовать или нет стандартный механизм сессий
|
* Использовать или нет стандартный механизм сессий
|
||||||
|
* ВНИМАНИЕ! Не рекомендуется ставить false - т.к. этот режим до конца не протестирован
|
||||||
*
|
*
|
||||||
* @var bool
|
* @var bool
|
||||||
*/
|
*/
|
||||||
protected $bUseStandartSession;
|
protected $bUseStandartSession=true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Инициализация модуля
|
* Инициализация модуля
|
||||||
|
@ -50,7 +63,6 @@ class ModuleSession extends Module {
|
||||||
*/
|
*/
|
||||||
$this->Start();
|
$this->Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Старт сессии
|
* Старт сессии
|
||||||
*
|
*
|
||||||
|
@ -80,8 +92,6 @@ class ModuleSession extends Module {
|
||||||
$this->ReadData();
|
$this->ReadData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Устанавливает уникальный идентификатор сессии
|
* Устанавливает уникальный идентификатор сессии
|
||||||
*
|
*
|
||||||
|
@ -105,7 +115,6 @@ class ModuleSession extends Module {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Получает идентификатор текущей сессии
|
* Получает идентификатор текущей сессии
|
||||||
*
|
*
|
||||||
|
@ -117,24 +126,21 @@ class ModuleSession extends Module {
|
||||||
return $this->sId;
|
return $this->sId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Гинерирует уникальный идентификатор
|
* Гинерирует уникальный идентификатор
|
||||||
*
|
*
|
||||||
* @return unknown
|
* @return string
|
||||||
*/
|
*/
|
||||||
protected function GenerateId() {
|
protected function GenerateId() {
|
||||||
return md5(func_generator().time());
|
return md5(func_generator().time());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Читает данные сессии
|
* Читает данные сессии в aData
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
protected function ReadData() {
|
protected function ReadData() {
|
||||||
$this->aData=$this->Cache_Get($this->sId);
|
$this->aData=$this->Cache_Get($this->sId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Сохраняет данные сессии
|
* Сохраняет данные сессии
|
||||||
*
|
*
|
||||||
|
@ -142,12 +148,11 @@ class ModuleSession extends Module {
|
||||||
protected function Save() {
|
protected function Save() {
|
||||||
$this->Cache_Set($this->aData,$this->sId,array(),Config::Get('sys.session.timeout'));
|
$this->Cache_Set($this->aData,$this->sId,array(),Config::Get('sys.session.timeout'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Получает значение из сессии
|
* Получает значение из сессии
|
||||||
*
|
*
|
||||||
* @param string $sName
|
* @param string $sName Имя параметра
|
||||||
* @return unknown
|
* @return mixed|null
|
||||||
*/
|
*/
|
||||||
public function Get($sName) {
|
public function Get($sName) {
|
||||||
if ($this->bUseStandartSession) {
|
if ($this->bUseStandartSession) {
|
||||||
|
@ -156,12 +161,11 @@ class ModuleSession extends Module {
|
||||||
return isset($this->aData[$sName]) ? $this->aData[$sName] : null;
|
return isset($this->aData[$sName]) ? $this->aData[$sName] : null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Записывает значение в сессию
|
* Записывает значение в сессию
|
||||||
*
|
*
|
||||||
* @param string $sName
|
* @param string $sName Имя параметра
|
||||||
* @param unknown_type $data
|
* @param mixed $data Данные
|
||||||
*/
|
*/
|
||||||
public function Set($sName,$data) {
|
public function Set($sName,$data) {
|
||||||
if ($this->bUseStandartSession) {
|
if ($this->bUseStandartSession) {
|
||||||
|
@ -171,11 +175,10 @@ class ModuleSession extends Module {
|
||||||
$this->Save();
|
$this->Save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Удаляет значение из сессии
|
* Удаляет значение из сессии
|
||||||
*
|
*
|
||||||
* @param string $sName
|
* @param string $sName Имя параметра
|
||||||
*/
|
*/
|
||||||
public function Drop($sName) {
|
public function Drop($sName) {
|
||||||
if ($this->bUseStandartSession) {
|
if ($this->bUseStandartSession) {
|
||||||
|
@ -185,7 +188,6 @@ class ModuleSession extends Module {
|
||||||
$this->Save();
|
$this->Save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Получает разом все данные сессии
|
* Получает разом все данные сессии
|
||||||
*
|
*
|
||||||
|
@ -198,7 +200,6 @@ class ModuleSession extends Module {
|
||||||
return $this->aData;
|
return $this->aData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Завершает сессию, дропая все данные
|
* Завершает сессию, дропая все данные
|
||||||
*
|
*
|
||||||
|
|
|
@ -19,7 +19,14 @@ require_once(Config::Get('path.root.engine').'/lib/external/Jevix/jevix.class.ph
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Модуль обработки текста на основе типографа Jevix
|
* Модуль обработки текста на основе типографа Jevix
|
||||||
|
* Позволяет вырезать из текста лишние HTML теги и предотвращает различные попытки внедрить в текст JavaScript
|
||||||
|
* <pre>
|
||||||
|
* $sText=$this->Text_Parser($sTestSource);
|
||||||
|
* </pre>
|
||||||
|
* Настройки парсинга находятся в конфиге /config/jevix.php
|
||||||
*
|
*
|
||||||
|
* @package engine.modules
|
||||||
|
* @since 1.0
|
||||||
*/
|
*/
|
||||||
class ModuleText extends Module {
|
class ModuleText extends Module {
|
||||||
/**
|
/**
|
||||||
|
@ -40,7 +47,6 @@ class ModuleText extends Module {
|
||||||
$this->oJevix = new Jevix();
|
$this->oJevix = new Jevix();
|
||||||
$this->JevixConfig();
|
$this->JevixConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Конфигурирует типограф
|
* Конфигурирует типограф
|
||||||
*
|
*
|
||||||
|
@ -49,12 +55,11 @@ class ModuleText extends Module {
|
||||||
// загружаем конфиг
|
// загружаем конфиг
|
||||||
$this->LoadJevixConfig();
|
$this->LoadJevixConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Загружает конфиг Jevix'а
|
* Загружает конфиг Jevix'а
|
||||||
*
|
*
|
||||||
* @param string $sType Тип конфига
|
* @param string $sType Тип конфига
|
||||||
* @param bool $bClear
|
* @param bool $bClear Очищать предыдущий конфиг или нет
|
||||||
*/
|
*/
|
||||||
public function LoadJevixConfig($sType='default',$bClear=true) {
|
public function LoadJevixConfig($sType='default',$bClear=true) {
|
||||||
if ($bClear) {
|
if ($bClear) {
|
||||||
|
@ -81,11 +86,10 @@ class ModuleText extends Module {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Возвращает объект Jevix
|
* Возвращает объект Jevix
|
||||||
*
|
*
|
||||||
* @return unknown
|
* @return Jevix
|
||||||
*/
|
*/
|
||||||
public function GetJevix() {
|
public function GetJevix() {
|
||||||
return $this->oJevix;
|
return $this->oJevix;
|
||||||
|
@ -93,8 +97,8 @@ class ModuleText extends Module {
|
||||||
/**
|
/**
|
||||||
* Парсинг текста с помощью Jevix
|
* Парсинг текста с помощью Jevix
|
||||||
*
|
*
|
||||||
* @param string $sText
|
* @param string $sText Исходный текст
|
||||||
* @param array $aError
|
* @param array $aError Возвращает список возникших ошибок
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function JevixParser($sText,&$aError=null) {
|
public function JevixParser($sText,&$aError=null) {
|
||||||
|
@ -105,11 +109,11 @@ class ModuleText extends Module {
|
||||||
$sResult=$this->oJevix->parse($sText,$aError);
|
$sResult=$this->oJevix->parse($sText,$aError);
|
||||||
return $sResult;
|
return $sResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Парсинг текста на предмет видео
|
* Парсинг текста на предмет видео
|
||||||
|
* Находит теги <pre><video></video></pre> и реобразовываетих в видео
|
||||||
*
|
*
|
||||||
* @param string $sText
|
* @param string $sText Исходный текст
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function VideoParser($sText) {
|
public function VideoParser($sText) {
|
||||||
|
@ -123,11 +127,11 @@ class ModuleText extends Module {
|
||||||
$sText = preg_replace('/<video>http:\/\/(?:www\.|)rutube.ru\/tracks\/\d+.html\?v=([a-zA-Z0-9_\-]+)(&.+)?<\/video>/Ui', '<OBJECT width="470" height="353"><PARAM name="movie" value="http://video.rutube.ru/$1"></PARAM><PARAM name="wmode" value="opaque"></PARAM><PARAM name="allowFullScreen" value="true"></PARAM><PARAM name="flashVars" value="uid=662118"></PARAM><EMBED src="http://video.rutube.ru/$1" type="application/x-shockwave-flash" wmode="opaque" width="470" height="353" allowFullScreen="true" flashVars="uid=662118"></EMBED></OBJECT>', $sText);
|
$sText = preg_replace('/<video>http:\/\/(?:www\.|)rutube.ru\/tracks\/\d+.html\?v=([a-zA-Z0-9_\-]+)(&.+)?<\/video>/Ui', '<OBJECT width="470" height="353"><PARAM name="movie" value="http://video.rutube.ru/$1"></PARAM><PARAM name="wmode" value="opaque"></PARAM><PARAM name="allowFullScreen" value="true"></PARAM><PARAM name="flashVars" value="uid=662118"></PARAM><EMBED src="http://video.rutube.ru/$1" type="application/x-shockwave-flash" wmode="opaque" width="470" height="353" allowFullScreen="true" flashVars="uid=662118"></EMBED></OBJECT>', $sText);
|
||||||
return $sText;
|
return $sText;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Парсит текст
|
* Парсит текст, применя все парсеры
|
||||||
*
|
*
|
||||||
* @param string $sText
|
* @param string $sText Исходный текст
|
||||||
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function Parser($sText) {
|
public function Parser($sText) {
|
||||||
$sResult=$this->FlashParamParser($sText);
|
$sResult=$this->FlashParamParser($sText);
|
||||||
|
@ -140,6 +144,8 @@ class ModuleText extends Module {
|
||||||
* Заменяет все вхождения короткого тега <param/> на длиную версию <param></param>
|
* Заменяет все вхождения короткого тега <param/> на длиную версию <param></param>
|
||||||
* Заменяет все вхождения короткого тега <embed/> на длиную версию <embed></embed>
|
* Заменяет все вхождения короткого тега <embed/> на длиную версию <embed></embed>
|
||||||
*
|
*
|
||||||
|
* @param string $sText Исходный текст
|
||||||
|
* @return string
|
||||||
*/
|
*/
|
||||||
protected function FlashParamParser($sText) {
|
protected function FlashParamParser($sText) {
|
||||||
if (preg_match_all("@(<\s*param\s*name\s*=\s*(?:\"|').*(?:\"|')\s*value\s*=\s*(?:\"|').*(?:\"|'))\s*/?\s*>(?!</param>)@Ui",$sText,$aMatch)) {
|
if (preg_match_all("@(<\s*param\s*name\s*=\s*(?:\"|').*(?:\"|')\s*value\s*=\s*(?:\"|').*(?:\"|'))\s*/?\s*>(?!</param>)@Ui",$sText,$aMatch)) {
|
||||||
|
@ -171,25 +177,31 @@ class ModuleText extends Module {
|
||||||
$sText=str_replace($aMatch[0][$key],$aMatch[0][$key].'<param name="wmode" value="opaque"></param>',$sText);
|
$sText=str_replace($aMatch[0][$key],$aMatch[0][$key].'<param name="wmode" value="opaque"></param>',$sText);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $sText;
|
return $sText;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Подсветка исходного кода
|
||||||
|
*
|
||||||
|
* @param string $sText Исходный текст
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
public function CodeSourceParser($sText) {
|
public function CodeSourceParser($sText) {
|
||||||
$sText=str_replace("<code>",'<pre class="prettyprint"><code>',$sText);
|
$sText=str_replace("<code>",'<pre class="prettyprint"><code>',$sText);
|
||||||
$sText=str_replace("</code>",'</code></pre>',$sText);
|
$sText=str_replace("</code>",'</code></pre>',$sText);
|
||||||
return $sText;
|
return $sText;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Производить резрезание текста по тегу <cut>.
|
* Производить резрезание текста по тегу cut.
|
||||||
* Возвращаем массив вида:
|
* Возвращаем массив вида:
|
||||||
|
* <pre>
|
||||||
* array(
|
* array(
|
||||||
* $sTextShort - текст до тега <cut>
|
* $sTextShort - текст до тега <cut>
|
||||||
* $sTextNew - весь текст за исключением удаленного тега
|
* $sTextNew - весь текст за исключением удаленного тега
|
||||||
* $sTextCut - именованное значение <cut>
|
* $sTextCut - именованное значение <cut>
|
||||||
* )
|
* )
|
||||||
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param string $sText
|
* @param string $sText Исходный текст
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function Cut($sText) {
|
public function Cut($sText) {
|
||||||
|
@ -214,13 +226,15 @@ class ModuleText extends Module {
|
||||||
|
|
||||||
return array($sTextShort,$sTextNew,$sTextCut ? htmlspecialchars($sTextCut) : null);
|
return array($sTextShort,$sTextNew,$sTextCut ? htmlspecialchars($sTextCut) : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Обработка тега <ls> в тексте
|
* Обработка тега ls в тексте
|
||||||
|
* <pre>
|
||||||
|
* <ls user="admin" />
|
||||||
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param unknown_type $sTag
|
* @param string $sTag Тег на ктором сработал колбэк
|
||||||
* @param unknown_type $aParams
|
* @param array $aParams Список параметров тега
|
||||||
* @return unknown
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function CallbackTagLs($sTag,$aParams) {
|
public function CallbackTagLs($sTag,$aParams) {
|
||||||
$sText='';
|
$sText='';
|
||||||
|
|
Loading…
Reference in a new issue