Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 /**
  * 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;
 }