Panel/modules/tickets/module.php
2025-09-17 21:14:45 -04:00

109 lines
4.5 KiB
PHP

<?php
/*
*
* OGP - Open Game Panel
* Copyright (C) 2008 - 2017 The OGP Development Team
*
* http://www.opengamepanel.org/
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
$module_title = "Tickets";
$module_version = "1.0a";
$db_version = 3;
$module_required = false;
$module_menus = array(
array(
'name' => 'Support Tickets',
'group' => 'user',
),
array(
'name' => 'Support Ticket Settings',
'group' => 'admin',
'subpage' => 'ticket_settings',
),
);
$install_queries[0] = array(
"DROP TABLE IF EXISTS `".OGP_DB_PREFIX."ticket_replies`",
"DROP TABLE IF EXISTS `".OGP_DB_PREFIX."ticket_messages`",
"DROP TABLE IF EXISTS `".OGP_DB_PREFIX."ticket_attachments`",
"DROP TABLE IF EXISTS `".OGP_DB_PREFIX."ticket_settings`",
"DROP TABLE IF EXISTS `".OGP_DB_PREFIX."tickets`",
"CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."tickets` (
`tid` int NOT NULL AUTO_INCREMENT,
`uid` varchar(32) NOT NULL UNIQUE,
`user_id` int NOT NULL,
`parent_id` int NOT NULL,
`user_ip` varbinary(16) NOT NULL,
`subject` varchar(64) NOT NULL,
`service_id` int,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`last_updated` varchar(22),
`status` tinyint NOT NULL,
`assigned_to` tinyint,
PRIMARY KEY (`tid`)
);",
"CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."ticket_messages` (
`reply_id` int NOT NULL AUTO_INCREMENT,
`ticket_id` int NOT NULL,
`user_id` int NOT NULL,
`user_ip` varbinary(16) NOT NULL,
`message` TEXT NOT NULL,
`date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`rating` tinyint DEFAULT '0',
`is_admin` int DEFAULT '0',
PRIMARY KEY (`reply_id`)
);",
"ALTER TABLE `".OGP_DB_PREFIX."ticket_messages` ADD CONSTRAINT `".OGP_DB_PREFIX."ticket_messages_fk0` FOREIGN KEY (`ticket_id`) REFERENCES `".OGP_DB_PREFIX."tickets`(`tid`);",
);
$install_queries[1] = array(
"CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."ticket_attachments` (
`attachment_id` int NOT NULL AUTO_INCREMENT,
`ticket_id` int NOT NULL,
`reply_id` int,
`original_name` varchar(255) NOT NULL,
`unique_name` varchar(32) NOT NULL UNIQUE,
PRIMARY KEY (`attachment_id`)
);",
);
$install_queries[2] = array(
"CREATE TABLE IF NOT EXISTS `".OGP_DB_PREFIX."ticket_settings` (
`id` INT NOT NULL AUTO_INCREMENT,
`setting_name` varchar(32) NOT NULL UNIQUE,
`setting_value` TEXT NOT NULL,
PRIMARY KEY (`id`)
);",
"INSERT INTO `".OGP_DB_PREFIX."ticket_settings` (setting_name, setting_value) VALUES ('ratings_enabled', true) ON DUPLICATE KEY UPDATE `setting_name` = 'ratings_enabled', `setting_value` = true",
"INSERT INTO `".OGP_DB_PREFIX."ticket_settings` (setting_name, setting_value) VALUES ('attachments_enabled', true) ON DUPLICATE KEY UPDATE `setting_name` = 'attachments_enabled', `setting_value` = true",
"INSERT INTO `".OGP_DB_PREFIX."ticket_settings` (setting_name, setting_value) VALUES ('attachment_max_size', '52428800') ON DUPLICATE KEY UPDATE `setting_name` = 'attachment_max_size', `setting_value` = '52428800'",
"INSERT INTO `".OGP_DB_PREFIX."ticket_settings` (setting_name, setting_value) VALUES ('attachment_limit', '5') ON DUPLICATE KEY UPDATE `setting_name` = 'attachment_limit', `setting_value` = '5'",
"INSERT INTO `".OGP_DB_PREFIX."ticket_settings` (setting_name, setting_value) VALUES ('attachment_save_dir', '".__DIR__ . '/uploads' ."') ON DUPLICATE KEY UPDATE `setting_name` = 'attachment_save_dir', `setting_value` = '".__DIR__ . '/uploads' ."'",
"INSERT INTO `".OGP_DB_PREFIX."ticket_settings` (setting_name, setting_value) VALUES ('attachment_extensions', 'jpg, gif, jpeg, jpg, png, pdf, txt, sql, zip') ON DUPLICATE KEY UPDATE `setting_name` = 'attachment_extensions', `setting_value` = 'jpg, gif, jpeg, jpg, png, pdf, txt, sql, zip'",
);
$install_queries[3] = array(
"INSERT INTO `".OGP_DB_PREFIX."ticket_settings` (setting_name, setting_value) VALUES ('notifications_enabled', true) ON DUPLICATE KEY UPDATE `setting_name` = 'notifications_enabled', `setting_value` = true",
);