private function addEditHandler($p_sMode = 'create') { $this->loginCheck(); $bEdit = $p_sMode === 'edit'; $oTicket = new APP_Model_Ticket(); $oForm = new PPI_Model_Form(); $oForm->init('ticket_create'); $oForm->disableSubmit(); $oForm->setFormStructure($oTicket->getAddEditFormStructure($p_sMode, array('isAdmin' => $this->getAuthData(false)->role_name !== 'member'))); // Get the ticket ID $iTicketID = $this->get($p_sMode, 0); if ($oForm->isSubmitted() && $oForm->isValidated()) { $aSubmitValues = $oForm->getSubmitValues(); $aSubmitValues += array('status' => 'open', 'severity' => 'minor', 'assigned_user_id' => 0, 'user_id' => $this->getAuthData(false)->id, 'created' => time()); if ($bEdit && $iTicketID > 0) { $oTicket->update($aSubmitValues, $oTicket->getPrimaryKey() . " = " . $oTicket->quote($iTicketID)); } else { $iTicketID = $oTicket->insert($aSubmitValues); } $this->setFlashMessage('Ticket successfully ' . ($bEdit ? 'updated.' : 'created')); $this->redirect('ticket/view/' . $iTicketID . '/' . str_replace(' ', '-', $aSubmitValues['title'])); } if ($p_sMode === 'edit' && $iTicketID > 0) { $oForm->setDefaults($oTicket->find($iTicketID)); } $formBuilder = $oForm->getRenderInformation(); $aTicket = $oTicket->find($iTicketID); $this->load('ticket/create', compact('aTicket', 'formBuilder')); }