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

Создание таблицы prefix_profiler при активации плагина (в случае ее отсутствия).

This commit is contained in:
Alexey Kachayev 2009-12-30 22:27:54 +00:00
parent d64f7519b9
commit 9c4f597786
6 changed files with 66 additions and 20 deletions

View file

@ -16,6 +16,13 @@
*/
class PluginProfiler extends Plugin {
/**
* Активация плагина Профайлер.
* Создание таблицы в базе данных при ее отсутствии.
*/
public function Activate() {
$this->ExportSQL(dirname(__FILE__).'/sql.sql');
return true;
}
}
?>

View 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`)
);

View file

@ -35,7 +35,7 @@ abstract class ActionPlugin extends Action {
$this->sActionTemplate=$sTemplate;
if(preg_match('/^Plugin([\w]+)_Action([\w]+)$/i',$this->GetActionClass(),$aMatches)) {
$this->sActionTemplate=$this->Viewer_ReplacePluginSkinName($this->sActionTemplate,$aMatches[1]);
}
}
}
/**
@ -50,7 +50,7 @@ abstract class ActionPlugin extends Action {
if(preg_match('/^Plugin([\w]+)_Action([\w]+)$/i',$this->GetActionClass(),$aMatches)) {
$this->sActionTemplate=$this->Viewer_ReplacePluginSkinName($this->sActionTemplate,$aMatches[1]);
}
}
}
/**

View file

@ -28,7 +28,7 @@ abstract class Mapper extends Object {
* @param DbSimple_Generic_Database $oDb
*/
public function __construct(DbSimple_Generic_Database $oDb) {
$this->oDb = $oDb;
$this->oDb = $oDb;
}
}

View file

@ -32,7 +32,6 @@ abstract class Plugin extends Object {
public function Init() {
}
/**
* Функция активации плагина
*
@ -40,7 +39,6 @@ abstract class Plugin extends Object {
public function Activate() {
return true;
}
/**
* Функция деактивации плагина
*
@ -48,6 +46,48 @@ abstract class Plugin extends Object {
public function Deactivate() {
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) {
return Engine::getInstance()->_CallModule($sName,$aArgs);

View file

@ -135,17 +135,4 @@ ALTER TABLE `prefix_user` ADD `user_date_topic_last` DATETIME AFTER `user_dat
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_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` ) ;
ALTER TABLE `prefix_comment_online` ADD `target_parent_id` INT DEFAULT '0' NOT NULL AFTER `target_type` ;