From 5fa57edc19778ab9d4d3b63463a3b38eb33c7cf4 Mon Sep 17 00:00:00 2001 From: Peter Rotich <peter@osticket.com> Date: Tue, 19 Aug 2014 19:03:52 +0000 Subject: [PATCH] Initialize search backend on install/upgrade. Make table prefix consistent --- include/class.search.php | 14 ++++++++-- .../streams/core/8f99b8bf-03ff59bf.task.php | 3 +++ setup/inc/class.installer.php | 26 ++++++++++--------- 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/include/class.search.php b/include/class.search.php index e34d03224..1beeb2d5c 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 8c717837e..f7bb36f7d 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 1e3ae346e..0c7ea1f5b 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']); -- GitLab