mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-07-01 05:55:02 +03:00
Создание таблицы prefix_profiler при активации плагина (в случае ее отсутствия).
This commit is contained in:
parent
d64f7519b9
commit
9c4f597786
|
@ -16,6 +16,13 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class PluginProfiler extends Plugin {
|
class PluginProfiler extends Plugin {
|
||||||
|
/**
|
||||||
|
* Активация плагина Профайлер.
|
||||||
|
* Создание таблицы в базе данных при ее отсутствии.
|
||||||
|
*/
|
||||||
|
public function Activate() {
|
||||||
|
$this->ExportSQL(dirname(__FILE__).'/sql.sql');
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
12
classes/plugins/profiler/sql.sql
Normal file
12
classes/plugins/profiler/sql.sql
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
CREATE TABLE IF NOT EXISTS `prefix_profiler` (
|
||||||
|
`request_date` DATETIME NOT NULL ,
|
||||||
|
`request_id` VARCHAR( 32 ) NOT NULL ,
|
||||||
|
`time_full` DOUBLE( 9,6 ) NOT NULL ,
|
||||||
|
`time_start` DOUBLE( 17,7 ) NOT NULL ,
|
||||||
|
`time_stop` DOUBLE( 17,7 ) NOT NULL ,
|
||||||
|
`time_id` INT NOT NULL ,
|
||||||
|
`time_pid` INT NOT NULL ,
|
||||||
|
`time_name` VARCHAR( 250 ) NOT NULL ,
|
||||||
|
`time_comment` VARCHAR( 250 ) NOT NULL,
|
||||||
|
PRIMARY KEY (`request_id` , `time_id`)
|
||||||
|
);
|
|
@ -32,7 +32,6 @@ abstract class Plugin extends Object {
|
||||||
public function Init() {
|
public function Init() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Функция активации плагина
|
* Функция активации плагина
|
||||||
*
|
*
|
||||||
|
@ -40,7 +39,6 @@ abstract class Plugin extends Object {
|
||||||
public function Activate() {
|
public function Activate() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Функция деактивации плагина
|
* Функция деактивации плагина
|
||||||
*
|
*
|
||||||
|
@ -48,6 +46,48 @@ abstract class Plugin extends Object {
|
||||||
public function Deactivate() {
|
public function Deactivate() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Транслирует на базу данных запросы из указанного файла
|
||||||
|
*
|
||||||
|
* @param string $sFilePath
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected function ExportSQL($sFilePath) {
|
||||||
|
$sFileQuery = @file_get_contents($sFilePath);
|
||||||
|
/**
|
||||||
|
* Замена префикса таблиц
|
||||||
|
*/
|
||||||
|
$sFileQuery = str_replace('prefix_', Config::Get('db.table.prefix'), $sFileQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Массивы запросов и пустой контейнер для сбора ошибок
|
||||||
|
*/
|
||||||
|
$aErrors = array();
|
||||||
|
$aQuery=explode(';',$sFileQuery);
|
||||||
|
/**
|
||||||
|
* Выполняем запросы по очереди
|
||||||
|
*/
|
||||||
|
foreach($aQuery as $sQuery){
|
||||||
|
$sQuery = trim($sQuery);
|
||||||
|
/**
|
||||||
|
* Заменяем движек, если таковой указан в запросе
|
||||||
|
*/
|
||||||
|
if(Config::Get('db.tables.engine')!='InnoDB') $sQuery=str_ireplace('ENGINE=InnoDB', "ENGINE=".Config::Get('db.tables.engine'),$sQuery);
|
||||||
|
|
||||||
|
if($sQuery!='') {
|
||||||
|
$bResult=$this->Database_GetConnect()->query($sQuery);
|
||||||
|
if(!$bResult) $aErrors[] = mysql_error();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращаем результат выполнения, взависимости от количества ошибок
|
||||||
|
*/
|
||||||
|
if(count($aErrors)==0) {
|
||||||
|
return array('result'=>true,'errors'=>null);
|
||||||
|
}
|
||||||
|
return array('result'=>false,'errors'=>$aErrors);
|
||||||
|
}
|
||||||
|
|
||||||
public function __call($sName,$aArgs) {
|
public function __call($sName,$aArgs) {
|
||||||
return Engine::getInstance()->_CallModule($sName,$aArgs);
|
return Engine::getInstance()->_CallModule($sName,$aArgs);
|
||||||
|
|
13
patch.sql
13
patch.sql
|
@ -136,16 +136,3 @@ ALTER TABLE `prefix_user` DROP `user_date_topic_last`
|
||||||
|
|
||||||
ALTER TABLE `prefix_comment` ADD `target_parent_id` INT DEFAULT '0' NOT NULL AFTER `target_type` ;
|
ALTER TABLE `prefix_comment` ADD `target_parent_id` INT DEFAULT '0' NOT NULL AFTER `target_type` ;
|
||||||
ALTER TABLE `prefix_comment_online` ADD `target_parent_id` INT DEFAULT '0' NOT NULL AFTER `target_type` ;
|
ALTER TABLE `prefix_comment_online` ADD `target_parent_id` INT DEFAULT '0' NOT NULL AFTER `target_type` ;
|
||||||
|
|
||||||
CREATE TABLE `prefix_profiler` (
|
|
||||||
`request_date` DATETIME NOT NULL ,
|
|
||||||
`request_id` VARCHAR( 32 ) NOT NULL ,
|
|
||||||
`time_full` DOUBLE( 9,6 ) NOT NULL ,
|
|
||||||
`time_start` DOUBLE( 17,7 ) NOT NULL ,
|
|
||||||
`time_stop` DOUBLE( 17,7 ) NOT NULL ,
|
|
||||||
`time_id` INT NOT NULL ,
|
|
||||||
`time_pid` INT NOT NULL ,
|
|
||||||
`time_name` VARCHAR( 250 ) NOT NULL ,
|
|
||||||
`time_comment` VARCHAR( 250 ) NOT NULL
|
|
||||||
);
|
|
||||||
ALTER TABLE `prefix_profiler` ADD PRIMARY KEY ( `request_id` , `time_id` ) ;
|
|
Loading…
Reference in a new issue