diff --git a/include/class.search.php b/include/class.search.php index e34d032248f0faec48cfcf6d83a9bb14319c30ef..1beeb2d5c26fa7b1e3aeba5dc4ed0bb2d29475df 100644 --- a/include/class.search.php +++ b/include/class.search.php @@ -382,7 +382,7 @@ class MysqlSearchBackend extends SearchBackend { } static function createSearchTable() { - $sql = 'CREATE TABLE '.TABLE_PREFIX.'_search ( + $sql = 'CREATE TABLE IF NOT EXISTS '.TABLE_PREFIX.'_search ( `object_type` varchar(8) not null, `object_id` int(11) unsigned not null, `title` text collate utf8_general_ci, @@ -406,7 +406,8 @@ class MysqlSearchBackend extends SearchBackend { return true; // Create the search table automatically - $class::createSearchTable(); + $class::__init(); + }; // THREADS ---------------------------------- @@ -558,5 +559,14 @@ class MysqlSearchBackend extends SearchBackend { return true; } + + static function __init() { + self::createSearchTable(); + } + } + +Signal::connect('system.install', + array('MysqlSearchBackend', '__init')); + MysqlSearchBackend::register(); diff --git a/include/upgrader/streams/core/8f99b8bf-03ff59bf.task.php b/include/upgrader/streams/core/8f99b8bf-03ff59bf.task.php index 8c717837e24f0bebaf5ad5796483ba87473d15b7..f7bb36f7db2da78056a307b730543f6cc43ad5b0 100644 --- a/include/upgrader/streams/core/8f99b8bf-03ff59bf.task.php +++ b/include/upgrader/streams/core/8f99b8bf-03ff59bf.task.php @@ -30,6 +30,9 @@ class SequenceLoader extends MigrationTask { foreach ($statuses as $s) { TicketStatus::__create($s); } + + // Initialize MYSQL search backend + MysqlSearchBackend::__init(); } } diff --git a/setup/inc/class.installer.php b/setup/inc/class.installer.php index 1e3ae346e35784331d16d4ebc3d2c895c3746f58..0c7ea1f5b2a7029062e40969e3312cccd4a8be08 100644 --- a/setup/inc/class.installer.php +++ b/setup/inc/class.installer.php @@ -115,8 +115,8 @@ class Installer extends SetupWizard { /*************** We're ready to install ************************/ define('ADMIN_EMAIL',$vars['admin_email']); //Needed to report SQL errors during install. - define('PREFIX',$vars['prefix']); //Table prefix - Bootstrap::defineTables(PREFIX); + define('TABLE_PREFIX',$vars['prefix']); //Table prefix + Bootstrap::defineTables(TABLE_PREFIX); Bootstrap::loadCode(); $debug = true; // Change it to false to squelch SQL errors. @@ -157,23 +157,25 @@ class Installer extends SetupWizard { $i18n = new Internationalization($vars['lang_id']); $i18n->loadDefaultData(); - $sql='SELECT `id` FROM '.PREFIX.'sla ORDER BY `id` LIMIT 1'; + Signal::send('system.install', $this); + + $sql='SELECT `id` FROM '.TABLE_PREFIX.'sla ORDER BY `id` LIMIT 1'; $sla_id_1 = db_result(db_query($sql, false)); - $sql='SELECT `dept_id` FROM '.PREFIX.'department ORDER BY `dept_id` LIMIT 1'; + $sql='SELECT `dept_id` FROM '.TABLE_PREFIX.'department ORDER BY `dept_id` LIMIT 1'; $dept_id_1 = db_result(db_query($sql, false)); - $sql='SELECT `tpl_id` FROM '.PREFIX.'email_template_group ORDER BY `tpl_id` LIMIT 1'; + $sql='SELECT `tpl_id` FROM '.TABLE_PREFIX.'email_template_group ORDER BY `tpl_id` LIMIT 1'; $template_id_1 = db_result(db_query($sql, false)); - $sql='SELECT `group_id` FROM '.PREFIX.'groups ORDER BY `group_id` LIMIT 1'; + $sql='SELECT `group_id` FROM '.TABLE_PREFIX.'groups ORDER BY `group_id` LIMIT 1'; $group_id_1 = db_result(db_query($sql, false)); - $sql='SELECT `value` FROM '.PREFIX.'config WHERE namespace=\'core\' and `key`=\'default_timezone_id\' LIMIT 1'; + $sql='SELECT `value` FROM '.TABLE_PREFIX.'config WHERE namespace=\'core\' and `key`=\'default_timezone_id\' LIMIT 1'; $default_timezone = db_result(db_query($sql, false)); //Create admin user. - $sql='INSERT INTO '.PREFIX.'staff SET created=NOW() ' + $sql='INSERT INTO '.TABLE_PREFIX.'staff SET created=NOW() ' .", isactive=1, isadmin=1, group_id='$group_id_1', dept_id='$dept_id_1'" .", timezone_id='$default_timezone', max_page_size=25" .', email='.db_input($vars['admin_email']) @@ -189,14 +191,14 @@ class Installer extends SetupWizard { //Create default emails! $email = $vars['email']; list(,$domain)=explode('@',$vars['email']); - $sql='INSERT INTO '.PREFIX.'email (`name`,`email`,`created`,`updated`) VALUES ' + $sql='INSERT INTO '.TABLE_PREFIX.'email (`name`,`email`,`created`,`updated`) VALUES ' ." ('Support','$email',NOW(),NOW())" .",('osTicket Alerts','alerts@$domain',NOW(),NOW())" .",('','noreply@$domain',NOW(),NOW())"; $support_email_id = db_query($sql, false) ? db_insert_id() : 0; - $sql='SELECT `email_id` FROM '.PREFIX."email WHERE `email`='alerts@$domain' LIMIT 1"; + $sql='SELECT `email_id` FROM '.TABLE_PREFIX."email WHERE `email`='alerts@$domain' LIMIT 1"; $alert_email_id = db_result(db_query($sql, false)); //Create config settings---default settings! @@ -248,7 +250,7 @@ class Installer extends SetupWizard { /************* Make the system happy ***********************/ - $sql='UPDATE '.PREFIX."email SET dept_id=$dept_id_1"; + $sql='UPDATE '.TABLE_PREFIX."email SET dept_id=$dept_id_1"; db_query($sql, false); global $cfg; @@ -271,7 +273,7 @@ class Installer extends SetupWizard { //Log a message. $msg=__("Congratulations osTicket basic installation completed!\n\nThank you for choosing osTicket!"); - $sql='INSERT INTO '.PREFIX.'syslog SET created=NOW(), updated=NOW(), log_type="Debug" ' + $sql='INSERT INTO '.TABLE_PREFIX.'syslog SET created=NOW(), updated=NOW(), log_type="Debug" ' .', title="osTicket installed!"' .', log='.db_input($msg) .', ip_address='.db_input($_SERVER['REMOTE_ADDR']);