1
wishcraft
Xoops Module ~ Please ~ Email Ticket's with Keyword(s) Grouping Supportives

Hi how are you all? I thought I would talk about the new module I am working on called: please (SVN). It is going to be an email ticketer a bit like Request Tracker but supporting attachments as well as HTML content etc.

It going to work by polling via eith a class lib or extensions, IMAP or POP3, as well as having other options I am yet to decide if they will be in the first version..

It is also going to have support for MantisBT.org so your departmental staff can raise to a support level two through mantis off the XOOPS portal..

The database concept looks like:-

CREATE TABLE `please_addresses` (
  `
idint(14NOT NULL,
  `
addressvarchar(198) DEFAULT '',
  `
uidint(11) DEFAULT '0',
  `
recievedint(12) DEFAULT '0',
  `
sentint(12) DEFAULT '0',
  `
ticketsint(12) DEFAULT '0',
  `
ticket-idmediumint(30) DEFAULT '0',
  `
createdint(12) DEFAULT '0',
  `
actionint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`address`(18),`uid`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_bcc` (
  `
idmediumint(30NOT NULL,
  `
ticket-idmediumint(30) DEFAULT '0',
  `
address-idint(14) DEFAULT '0',
  `
name-idint(14) DEFAULT '0',
  `
email-idmediumint(30) DEFAULT '0',
  `
createdint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`address-id`,`name-id`,`email-id`,`ticket-id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_cc` (
  `
idmediumint(30NOT NULL,
  `
ticket-idmediumint(30) DEFAULT '0',
  `
address-idint(14) DEFAULT '0',
  `
name-idint(14) DEFAULT '0',
  `
email-idmediumint(30) DEFAULT '0',
  `
createdint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`address-id`,`name-id`,`email-id`,`ticket-id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_contents` (
  `
idmediumint(30NOT NULL,
  `
keyvarchar(44) DEFAULT '',
  `
textlongtext,
  `
createdint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`key`(20))
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_correspondences` (
  `
idmediumint(38NOT NULL,
  `
methodenum('email','pm','staff','mantis','unknown') DEFAULT 'unknown',
  `
ticket-idmediumint(30) DEFAULT '0',
  `
department-idmediumint(6) DEFAULT '0',
  `
staff-idmediumint(18) DEFAULT '0',
  `
createdint(12) DEFAULT '0',
  `
sentint(12) DEFAULT '0',
  
PRIMARY KEY (`id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_correspondences_bcc` (
  `
idmediumint(38NOT NULL,
  `
bcc-idmediumint(30) DEFAULT '0',
  `
department-idmediumint(6) DEFAULT '0',
  `
ticket-idmediumint(30) DEFAULT '0',
  `
staff-idmediumint(18) DEFAULT '0',
  `
sentint(12) DEFAULT '0',
  `
viewedint(12) DEFAULT '0',
  
PRIMARY KEY (`id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_correspondences_cc` (
  `
idmediumint(38NOT NULL,
  `
cc-idmediumint(30) DEFAULT '0',
  `
department-idmediumint(6) DEFAULT '0',
  `
ticket-idmediumint(30) DEFAULT '0',
  `
staff-idmediumint(18) DEFAULT '0',
  `
sentint(12) DEFAULT '0',
  `
viewedint(12) DEFAULT '0',
  
PRIMARY KEY (`id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_correspondences_contents` (
  `
idmediumint(38NOT NULL,
  `
correspondence-idmediumint(38) DEFAULT '0',
  `
ticket-contents-idmediumint(30) DEFAULT '0',
  `
ticket-idmediumint(30) DEFAULT '0',
  `
staff-idmediumint(18) DEFAULT '0',
  `
createdint(12) DEFAULT '0',
  `
sentint(12) DEFAULT '0',
  
PRIMARY KEY (`id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_correspondences_relayed` (
  `
idmediumint(38NOT NULL,
  `
relayed-idmediumint(30) DEFAULT '0',
  `
department-idmediumint(6) DEFAULT '0',
  `
ticket-idmediumint(30) DEFAULT '0',
  `
staff-idmediumint(18) DEFAULT '0',
  `
sentint(12) DEFAULT '0',
  `
viewedint(12) DEFAULT '0',
  
PRIMARY KEY (`id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_correspondences_to` (
  `
idmediumint(38NOT NULL,
  `
to-idmediumint(30) DEFAULT '0',
  `
department-idmediumint(6) DEFAULT '0',
  `
ticket-idmediumint(30) DEFAULT '0',
  `
staff-idmediumint(18) DEFAULT '0',
  `
sentint(12) DEFAULT '0',
  `
viewedint(12) DEFAULT '0',
  
PRIMARY KEY (`id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_departments` (
  `
idint(6NOT NULL,
  `
codevarchar(3) DEFAULT 'ABC',
  `
namevarchar(128) DEFAULT '',
  `
descriptiontinytext,
  `
mantis-usernamevarchar(45) DEFAULT '',
  `
mantis-passwordvarchar(198) DEFAULT '',
  `
mantis-project-idint(11) DEFAULT '0',
  `
manager-uidint(11) DEFAULT '0',
  `
manager-bccenum('all-email','closed-email','all-pm','closed-pm','none') DEFAULT 'none',
  `
manager-mantis-usernamevarchar(45) DEFAULT '',
  `
manager-mantis-passwordvarchar(198) DEFAULT '',
  `
mantisenum('yes','no') DEFAULT 'no',
  `
gidint(8) DEFAULT '0',
  `
ticketsint(12) DEFAULT '0',
  `
staffint(12) DEFAULT '0',
  `
clientsint(12) DEFAULT '0',
  `
raisedint(12) DEFAULT '0',
  `
latest-idmediumint(30) DEFAULT '0',
  `
closed-idmediumint(30) DEFAULT '0',
  `
signaturevarchar(300) DEFAULT '',
  `
createdint(12) DEFAULT '0',
  
PRIMARY KEY (`id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_departments_keywords` (
  `
idint(18NOT NULL,
  `
department-idint(6) DEFAULT '0',
  `
keyword-idint(20NOT NULL,
  `
createdint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`keyword-id`,`department-id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_departments_mantis_projects` (
  `
idint(6NOT NULL,
  `
project-idint(12) DEFAULT '0',
  `
project-namevarchar(128) DEFAULT '',
  `
project-descriptiontinytext,
  `
ticketsint(12) DEFAULT '0',
  `
clientsint(12) DEFAULT '0',
  `
raisedint(12) DEFAULT '0',
  `
latest-mantis-idmediumint(30) DEFAULT '0',
  `
closed-mantis-idmediumint(30) DEFAULT '0',
  `
createdint(12) DEFAULT '0',
  
PRIMARY KEY (`id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_departments_staff` (
  `
idint(18NOT NULL,
  `
department-idint(6) DEFAULT '0',
  `
stateenum('active','inactive','holidays') DEFAULT 'active',
  `
messagingenum('email','pm','none') DEFAULT 'email',
  `
uidint(12) DEFAULT '0',
  `
openint(12) DEFAULT '0',
  `
ticketsint(12) DEFAULT '0',
  `
closedint(12) DEFAULT '0',
  `
clientsint(12) DEFAULT '0',
  `
raisedint(12) DEFAULT '0',
  `
votesint(12) DEFAULT '0',
  `
ratingint(12) DEFAULT '0',
  `
createdint(12) DEFAULT '0',
  `
mantis-usernamevarchar(45) DEFAULT '',
  `
mantis-passwordvarchar(198) DEFAULT '',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`department-id`,`state`,`uid`,`open`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_departments_staff_keywords` (
  `
idint(18NOT NULL,
  `
department-idint(6) DEFAULT '0',
  `
staff-idint(18NOT NULL,
  `
keyword-idint(20NOT NULL,
  `
createdint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`keyword-id`,`staff-id`,`department-id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_departments_staff_mantis_tickets` (
  `
idint(6NOT NULL,
  `
ticket-idint(12) DEFAULT '0',
  `
ticket-subject-idmediumint(30) DEFAULT '0',
  `
follow-upint(12) DEFAULT '0',
  `
closedint(12) DEFAULT '0',
  `
raisedint(12) DEFAULT '0',
  `
createdint(12) DEFAULT '0',
  
PRIMARY KEY (`id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_emails` (
  `
idmediumint(30NOT NULL,
  `
from-idint(14) DEFAULT '0',
  `
subject-idmediumint(30) DEFAULT '0',
  `
ticket-idmediumint(30) DEFAULT '0',
  `
content-keyvarchar(44) DEFAULT '',
  `
attachmentsint(6) DEFAULT '0',
  `
createdint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`content-key`(20),`from-id`,`subject-id`,`ticket-id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_keywords` (
  `
idmediumint(20NOT NULL,
  `
stateenum('actionable','historical') DEFAULT 'actionable',
  `
keywordvarchar(64) DEFAULT '',
  `
occurencesmediumint(30) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`keyword`(43),`state`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_messages` (
  `
idmediumint(30NOT NULL,
  `
email-idmediumint(30) DEFAULT '0',
  `
subject-idmediumint(30) DEFAULT '0',
  `
ticket-idmediumint(30) DEFAULT '0',
  `
message-idvarchar(64) DEFAULT '',
  `
from-idmediumint(30) DEFAULT '0',
  `
whenint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`email-id`,`subject-id`,`ticket-id`,`message-id`(32))
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_names` (
  `
idint(14NOT NULL,
  `
namevarchar(198) DEFAULT '',
  `
uidint(11) DEFAULT '0',
  `
createdint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`name`(18),`uid`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_relayed` (
  `
idmediumint(30NOT NULL,
  `
ticket-idmediumint(30) DEFAULT '0',
  `
staff-idint(18) DEFAULT '0',
  `
department-idint(6) DEFAULT '0',
  `
mantis-node-keyvarchar(44) DEFAULT '',
  `
mantis-ticket-idint(14) DEFAULT '0',
  `
mantis-project-idint(14) DEFAULT '0',
  `
mantis-assigned-tovarchar(64) DEFAULT '',
  `
createdint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`ticket-id`,`staff-id`,`department-id`,`mantis-node-key`(16),`mantis-ticket-id`,`mantis-project-id`,`mantis-assigned-to`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_subjects` (
  `
idmediumint(30NOT NULL,
  `
subjectvarchar(300) DEFAULT '',
  `
email-idint(30) DEFAULT '0',
  `
createdint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`subject`(30),`email-id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_tickets` (
  `
idmediumint(30NOT NULL,
  `
stateenum('new','waiting','resonded','mantis','ignored','spam','allocated','claimed') DEFAULT 'new',
  `
ticket-keyvarchar(20) DEFAULT 'XXX-00000001AA',
  `
subject-idmediumint(30) DEFAULT '0',
  `
from-idint(14) DEFAULT '0',
  `
from-uidint(11) DEFAULT '0',
  `
belong-uidint(11) DEFAULT '0',
  `
belong-gidint(11) DEFAULT '0',
  `
tagsvarchar(255) DEFAULT NULL,
  `
createdint(12) DEFAULT '0',
  `
respondedint(12) DEFAULT '0',
  `
sentint(12) DEFAULT '0',
  `
closedint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`ticket-key`(15),`state`,`subject-id`,`belong-uid`,`belong-gid`,`from-id`,`from-uid`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_tickets_attachments` (
  `
idmediumint(30NOT NULL,
  `
stateenum('from','sent','mantis') DEFAULT 'from',
  `
ticket-idmediumint(30) DEFAULT '0',
  `
ticket-contents-idmediumint(30) DEFAULT '0',
  `
file-keyvarchar(44) DEFAULT '',
  `
file-namevarchar(255) DEFAULT '',
  `
file-pathvarchar(255) DEFAULT '',
  `
bytesint(11) DEFAULT '0',
  `
whenint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`ticket-id`,`ticket-contents-id`,`file-key`(19),`state`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_tickets_contents` (
  `
idmediumint(30NOT NULL,
  `
stateenum('from','sent','mantis') DEFAULT 'from',
  `
ticket-idmediumint(30) DEFAULT '0',
  `
content-keyvarchar(44) DEFAULT '',
  `
by-idint(11) DEFAULT '0',
  `
by-uidint(11) DEFAULT '0',
  `
whenint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`ticket-id`,`content-key`(24),`state`,`by-id`,`by-uid`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_tickets_ownership` (
  `
idmediumint(30NOT NULL,
  `
stateenum('new','waiting','resonded','mantis','ignored','spam','allocated','claimed') DEFAULT 'new',
  `
ticket-idmediumint(30) DEFAULT '0',
  `
staff-idint(18) DEFAULT '0',
  `
department-idint(6) DEFAULT '0',
  `
whenint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`ticket-id`,`state`,`staff-id`,`department-id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


CREATE TABLE `please_to` (
  `
idmediumint(30NOT NULL,
  `
ticket-idmediumint(30) DEFAULT '0',
  `
address-idint(14) DEFAULT '0',
  `
name-idint(14) DEFAULT '0',
  `
email-idmediumint(30) DEFAULT '0',
  `
createdint(12) DEFAULT '0',
  
PRIMARY KEY (`id`),
  
KEY `SEARCH` (`address-id`,`name-id`,`email-id`,`ticket-id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8;


Which will change before the final first release.. I am looking for volunteers for the translation of the language files as well if your around bleekk (who did all the mail templated in XPayment) or someone to write some mail templates and give a hand with the other templates, you will be dually noted in the code stamp...

Just get in contact with me through the email address on here or my listed skype account, you can see here when logged in!

Login

Who's Online

303 user(s) are online (158 user(s) are browsing Support Forums)


Members: 0


Guests: 303


more...

Donat-O-Meter

Stats
Goal: $100.00
Due Date: Nov 30
Gross Amount: $0.00
Net Balance: $0.00
Left to go: $100.00
Make donations with PayPal!

Latest GitHub Commits