|
|
@ -14,17 +14,28 @@ |
|
|
|
{ |
|
|
|
{ |
|
|
|
public $_modules = []; |
|
|
|
public $_modules = []; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static $instance = null; |
|
|
|
|
|
|
|
|
|
|
|
function __construct() |
|
|
|
|
|
|
|
|
|
|
|
function __construct () |
|
|
|
{ |
|
|
|
{ |
|
|
|
$this->_modules = $this->getModules(); |
|
|
|
$this->_modules = $this->getModules(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static function init () |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (is_null(self::$instance)) |
|
|
|
|
|
|
|
self::$instance = new AVE_Module; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return self::$instance; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Метод, который обрабатывает все module.php и записывает как свойство класса списки модулей |
|
|
|
* Метод, который обрабатывает все module.php и записывает как свойство класса списки модулей |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
function getModules() |
|
|
|
function getModules () |
|
|
|
{ |
|
|
|
{ |
|
|
|
$modules = []; |
|
|
|
$modules = []; |
|
|
|
|
|
|
|
|
|
|
@ -61,7 +72,7 @@ |
|
|
|
if (! is_dir($module_dir)) |
|
|
|
if (! is_dir($module_dir)) |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
|
|
$module = array(); |
|
|
|
$module = array (); |
|
|
|
|
|
|
|
|
|
|
|
// Если не удалось подключить основной файл модуля module.php - Фиксируем ошибку |
|
|
|
// Если не удалось подключить основной файл модуля module.php - Фиксируем ошибку |
|
|
|
if (! (is_file($module_dir . '/info.php') && @include_once($module_dir . '/info.php'))) |
|
|
|
if (! (is_file($module_dir . '/info.php') && @include_once($module_dir . '/info.php'))) |
|
|
@ -122,23 +133,25 @@ |
|
|
|
* Метод, преданзначеный для выода модулей |
|
|
|
* Метод, преданзначеный для выода модулей |
|
|
|
* |
|
|
|
* |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
function moduleList() |
|
|
|
function moduleList () |
|
|
|
{ |
|
|
|
{ |
|
|
|
global $AVE_DB, $AVE_Template; |
|
|
|
global $AVE_DB, $AVE_Template; |
|
|
|
|
|
|
|
|
|
|
|
$assign = array(); // Массив для передачи в Smarty |
|
|
|
$assign = []; // Массив для передачи в Smarty |
|
|
|
$errors = array(); // Массив с ошибками |
|
|
|
$errors = []; // Массив с ошибками |
|
|
|
|
|
|
|
|
|
|
|
// Получаем список всех шаблонов |
|
|
|
// Получаем список всех шаблонов |
|
|
|
$sql = $AVE_DB->Query(" |
|
|
|
$sql = " |
|
|
|
SELECT |
|
|
|
SELECT |
|
|
|
Id, |
|
|
|
Id, |
|
|
|
template_title |
|
|
|
template_title |
|
|
|
FROM |
|
|
|
FROM |
|
|
|
" . PREFIX . "_templates |
|
|
|
" . PREFIX . "_templates |
|
|
|
"); |
|
|
|
"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$query = $AVE_DB->Query($sql); |
|
|
|
|
|
|
|
|
|
|
|
while ($row = $sql->FetchRow()) |
|
|
|
while ($row = $query->FetchRow()) |
|
|
|
$assign['all_templates'][$row->Id] = htmlspecialchars($row->template_title, ENT_QUOTES); |
|
|
|
$assign['all_templates'][$row->Id] = htmlspecialchars($row->template_title, ENT_QUOTES); |
|
|
|
|
|
|
|
|
|
|
|
// Заголовок: Автор модуля |
|
|
|
// Заголовок: Автор модуля |
|
|
@ -147,7 +160,7 @@ |
|
|
|
// Получаем список всех модулей |
|
|
|
// Получаем список всех модулей |
|
|
|
$modules = $this->_modules; |
|
|
|
$modules = $this->_modules; |
|
|
|
|
|
|
|
|
|
|
|
foreach ($modules as $module) |
|
|
|
foreach ($modules AS $module) |
|
|
|
{ |
|
|
|
{ |
|
|
|
$module['info'] = $module['ModuleDescription'] . (! $module['ModuleAutor'] |
|
|
|
$module['info'] = $module['ModuleDescription'] . (! $module['ModuleAutor'] |
|
|
|
? '<br /><br />' |
|
|
|
? '<br /><br />' |
|
|
@ -246,7 +259,7 @@ |
|
|
|
* Метод, предназначенный для обновления в БД информации о шаблонах модулей |
|
|
|
* Метод, предназначенный для обновления в БД информации о шаблонах модулей |
|
|
|
* |
|
|
|
* |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
function moduleOptionsSave() |
|
|
|
function moduleOptionsSave () |
|
|
|
{ |
|
|
|
{ |
|
|
|
global $AVE_DB; |
|
|
|
global $AVE_DB; |
|
|
|
|
|
|
|
|
|
|
@ -264,7 +277,7 @@ |
|
|
|
"); |
|
|
|
"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$this->clearModulesCache(); |
|
|
|
$this->clearModulesCache (); |
|
|
|
|
|
|
|
|
|
|
|
// Выполянем обновление страницы со списком модулей |
|
|
|
// Выполянем обновление страницы со списком модулей |
|
|
|
header('Location:index.php?do=modules&cp=' . SESSION); |
|
|
|
header('Location:index.php?do=modules&cp=' . SESSION); |
|
|
@ -276,7 +289,7 @@ |
|
|
|
* Метод, предназанченный для установки или переустановки модуля |
|
|
|
* Метод, предназанченный для установки или переустановки модуля |
|
|
|
* |
|
|
|
* |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
function moduleInstall() |
|
|
|
function moduleInstall () |
|
|
|
{ |
|
|
|
{ |
|
|
|
global $AVE_DB, $AVE_Template; |
|
|
|
global $AVE_DB, $AVE_Template; |
|
|
|
|
|
|
|
|
|
|
@ -359,12 +372,14 @@ |
|
|
|
* Метод, предназначенный для обновления модуля при увеличении номера версии модуля |
|
|
|
* Метод, предназначенный для обновления модуля при увеличении номера версии модуля |
|
|
|
* |
|
|
|
* |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
function moduleUpdate() |
|
|
|
function moduleUpdate () |
|
|
|
{ |
|
|
|
{ |
|
|
|
global $AVE_DB, $AVE_Template; |
|
|
|
global $AVE_DB, $AVE_Template; |
|
|
|
|
|
|
|
|
|
|
|
// Подключаем файл с запросами к БД для данного модуля |
|
|
|
// Подключаем файл с запросами к БД для данного модуля |
|
|
|
$module_sql_update = array(); |
|
|
|
$module_sql_update = []; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$module = []; |
|
|
|
|
|
|
|
|
|
|
|
$sql_file = BASE_DIR . '/modules/' . MODULE_PATH . '/sql.php'; |
|
|
|
$sql_file = BASE_DIR . '/modules/' . MODULE_PATH . '/sql.php'; |
|
|
|
|
|
|
|
|
|
|
@ -378,16 +393,16 @@ |
|
|
|
// Выполняем запросы обновления модуля |
|
|
|
// Выполняем запросы обновления модуля |
|
|
|
// из массива $module_sql_update файла sql.php |
|
|
|
// из массива $module_sql_update файла sql.php |
|
|
|
foreach ($module_sql_update as $sql) |
|
|
|
foreach ($module_sql_update as $sql) |
|
|
|
{ |
|
|
|
|
|
|
|
$AVE_DB->Query(str_replace('%%PRFX%%', PREFIX, $sql)); |
|
|
|
$AVE_DB->Query(str_replace('%%PRFX%%', PREFIX, $sql)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Обновляем модуль, если в нем не применяется (отсутствует) файл sql.php |
|
|
|
// Обновляем модуль, если в нем не применяется (отсутствует) файл sql.php |
|
|
|
elseif (file_exists($mod_file) && file_exists($sql_file) === false) |
|
|
|
elseif (file_exists($mod_file) && file_exists($sql_file) === false) |
|
|
|
{ |
|
|
|
{ |
|
|
|
include_once ($mod_file); |
|
|
|
include ($mod_file); |
|
|
|
|
|
|
|
|
|
|
|
$AVE_DB->Query(" |
|
|
|
if (isset ($module) && ! empty($module)) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
$sql = " |
|
|
|
UPDATE |
|
|
|
UPDATE |
|
|
|
" . PREFIX . "_module |
|
|
|
" . PREFIX . "_module |
|
|
|
SET |
|
|
|
SET |
|
|
@ -402,7 +417,11 @@ |
|
|
|
ModuleStatus = '1' |
|
|
|
ModuleStatus = '1' |
|
|
|
WHERE |
|
|
|
WHERE |
|
|
|
ModuleSysName = '" . MODULE_PATH . "' |
|
|
|
ModuleSysName = '" . MODULE_PATH . "' |
|
|
|
"); |
|
|
|
"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$AVE_DB->Query($sql); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
// Сохраняем системное сообщение в журнал |
|
|
|
// Сохраняем системное сообщение в журнал |
|
|
|
reportLog ($AVE_Template->get_config_vars('MODULES_ACTION_UPDATE') . ' (' . MODULE_PATH . ')'); |
|
|
|
reportLog ($AVE_Template->get_config_vars('MODULES_ACTION_UPDATE') . ' (' . MODULE_PATH . ')'); |
|
|
@ -419,7 +438,7 @@ |
|
|
|
* Метод, предназанченный для удаление модуля |
|
|
|
* Метод, предназанченный для удаление модуля |
|
|
|
* |
|
|
|
* |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
function moduleDelete() |
|
|
|
function moduleDelete () |
|
|
|
{ |
|
|
|
{ |
|
|
|
global $AVE_DB, $AVE_Template; |
|
|
|
global $AVE_DB, $AVE_Template; |
|
|
|
|
|
|
|
|
|
|
@ -462,7 +481,7 @@ |
|
|
|
* Метод, предназначенный для отключения/включение модуля в Панели управления |
|
|
|
* Метод, предназначенный для отключения/включение модуля в Панели управления |
|
|
|
* |
|
|
|
* |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
function moduleStatusChange() |
|
|
|
function moduleStatusChange () |
|
|
|
{ |
|
|
|
{ |
|
|
|
global $AVE_DB, $AVE_Template; |
|
|
|
global $AVE_DB, $AVE_Template; |
|
|
|
|
|
|
|
|
|
|
@ -490,7 +509,7 @@ |
|
|
|
ModuleSysName = '" . MODULE_PATH . "' |
|
|
|
ModuleSysName = '" . MODULE_PATH . "' |
|
|
|
"); |
|
|
|
"); |
|
|
|
|
|
|
|
|
|
|
|
$this->clearModulesCache(); |
|
|
|
$this->clearModulesCache (); |
|
|
|
|
|
|
|
|
|
|
|
// Сохраняем системное сообщение в журнал |
|
|
|
// Сохраняем системное сообщение в журнал |
|
|
|
reportLog ((($ModuleStatus == "0") |
|
|
|
reportLog ((($ModuleStatus == "0") |
|
|
@ -503,7 +522,7 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function moduleRemove($dir) |
|
|
|
function moduleRemove ($dir) |
|
|
|
{ |
|
|
|
{ |
|
|
|
global $AVE_DB, $AVE_Template; |
|
|
|
global $AVE_DB, $AVE_Template; |
|
|
|
|
|
|
|
|
|
|
@ -514,7 +533,7 @@ |
|
|
|
foreach ($files as $file) |
|
|
|
foreach ($files as $file) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if(substr($file, -1) == '/') |
|
|
|
if(substr($file, -1) == '/') |
|
|
|
moduleRemove($file); |
|
|
|
$this->moduleRemove($file); |
|
|
|
else |
|
|
|
else |
|
|
|
unlink($file); |
|
|
|
unlink($file); |
|
|
|
} |
|
|
|
} |
|
|
|