function store(&$data) { if (isset($data['id'])) { $row = JTable::getInstance('helpdeskpro', 'ticket'); $row->load($data['id']); $row->name = $data['name']; $row->email = $data['email']; $row->subject = $data['subject']; $row->message = $data['message']; $row->store(); return true; } jimport('joomla.user.helper'); $config = HelpdeskProHelper::getConfig(); $allowedFileTypes = explode('|', $config->allowed_file_types); for ($i = 0, $n = count($allowedFileTypes); $i < $n; $i++) { $allowedFileTypes[$i] = trim(strtoupper($allowedFileTypes[$i])); } $user = JFactory::getUser(); $row = JTable::getInstance('helpdeskpro', 'ticket'); $row->bind($data); if ($user->get('id') && !isset($data['name'])) { $row->name = $user->get('name'); $row->email = $user->get('email'); $row->user_id = $user->get('id'); } else { $sql = 'SELECT id FROM #__users WHERE email="' . $data['email'] . '"'; $this->_db->setQuery($sql); $row->user_id = $this->_db->loadResult(); } $uploadedFiles = $this->_storeAttachment($allowedFileTypes); if (count($uploadedFiles['names'])) { $row->attachments = implode('|', $uploadedFiles['names']); $row->original_filenames = implode('|', $uploadedFiles['original_names']); } $row->status_id = $config->new_ticket_status_id; while (true) { $ticketCode = strtolower(JUserHelper::genRandomPassword(10)); $sql = 'SELECT COUNT(*) FROM #__helpdeskpro_tickets WHERE ticket_code="' . $ticketCode . '"'; $this->_db->setQuery($sql); $total = $this->_db->loadResult(); if (!$total) { break; } } $row->ticket_code = $ticketCode; $row->created_date = $row->modified_date = gmdate('Y-m-d H:i:s'); $row->store(); //Store custom fields information for this ticket JCFields::saveFieldValues($row); HelpdeskProHelper::sendNewTicketNotificationEmails($row, $config); if (!$user->id) { $data['ticket_code'] = $ticketCode; } return true; }
/** * Store ticket from input data * @param array $data */ public static function storeTicket($data) { $db = JFactory::getDbo(); JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_helpdeskpro/tables'); jimport('joomla.user.helper'); $config = HelpdeskProHelper::getConfig(); $user = JFactory::getUser(); $row = JTable::getInstance('helpdeskpro', 'ticket'); $row->bind($data); if ($user->get('id')) { $row->user_id = $user->get('id'); } else { $sql = 'SELECT id FROM #__users WHERE email="' . $data['email'] . '"'; $db->setQuery($sql); $row->user_id = $db->loadResult(); } $row->status_id = $config->new_ticket_status_id; while (true) { $ticketCode = strtolower(JUserHelper::genRandomPassword(10)); $sql = 'SELECT COUNT(*) FROM #__helpdeskpro_tickets WHERE ticket_code="' . $ticketCode . '"'; $db->setQuery($sql); $total = $db->loadResult(); if (!$total) { break; } } $row->ticket_code = $ticketCode; $row->created_date = $row->modified_date = gmdate('Y-m-d H:i:s'); $row->store(); //Store custom fields information for this ticket HelpdeskProHelper::sendNewTicketNotificationEmails($row, $config); return true; }