public function editFeedbackAction() { $feedback_id = $this->request->variable('feedback_id', 0); $feedback_row = $this->manager->getAllFeedbackInfo($feedback_id); if (!$feedback_row) { trigger_error($this->user->lang('E_FEEDBACK_NOT_FOUND') . '<br /><br />'); } $return_user_id = $this->request->variable('u', $feedback_row['to_user_id']); $return_user = $this->getUser($return_user_id); $feedback_route = $this->helper->route('rfd_trader_view', array('u' => $return_user_id)); $trader_profile_url = $trader_profile_url = '<a href=' . $feedback_route . '>' . $this->user->lang['BACK_TO_PREV'] . '</a>'; if (!$this->canEditFeedback($feedback_row['date_created'], $feedback_row['from_user_id'])) { trigger_error($this->user->lang('E_CANNOT_EDIT') . '<br /><br />' . $trader_profile_url); } $edit_history = $this->manager->getFeedbackComments($feedback_id); // unset($edit_history[0]); $submit = $this->request->is_set_post('submit'); $to_user_row = $this->getUser($feedback_row['to_user_id']); $rating = $this->request->variable('trader_rating', $feedback_row['rating']); $new_short = utf8_normalize_nfc(trim($this->request->variable('short_comment', $feedback_row['short_comment'], true))); $new_long = utf8_normalize_nfc(trim($this->request->variable('long_comment', $feedback_row['long_comment'], true))); $delete_feedback = $this->request->variable('delete_feedback', $feedback_row['is_deleted']); if ($submit && (strlen($new_short) < self::MIN_SHORT_LENGTH || strlen($new_short) > self::MAX_SHORT_LENGTH)) { $err_comments['short'] = $this->user->lang['REQUIRED_CHARACTERS']; } if ($submit && strlen($new_long) > self::MAX_LONG_LENGTH) { $err_comments['long'] = true; } if ($this->user->data['user_timezone']) { $timezone = new \DateTimeZone($this->user->data['user_timezone']); } else { $timezone = new \DateTimeZone($this->config['board_timezone']); } foreach ($edit_history as $key => $revision) { $editor_row = $this->getUser($revision['editor_user_id']); $revision['username'] = $editor_row['username']; $revision['date_created'] = new \DateTime('@' . $revision['date_created']); $revision['date_created']->setTimezone($timezone); $edit_history[$key] = $revision; } if ($submit && !$err_comments['short'] && !$err_comments['long']) { if ($delete_feedback != $feedback_row['is_deleted']) { if ($delete_feedback) { $this->manager->deleteFeedback($feedback_row, $this->isEditMod()); } else { $this->manager->revertDelete($feedback_row); } } $this->manager->editFeedback($feedback_row, $rating, $new_short, $new_long, $delete_feedback, $this->user->data['user_id']); trigger_error($this->user->lang('E_SUCCESSFUL_EDIT') . '<br /><br />' . $trader_profile_url); } $this->template->assign_vars(array('EDIT' => true, 'MODERATOR' => $this->isEditMod(), 'HISTORY' => $edit_history, 'DELETED' => $delete_feedback, 'ERROR' => $err_comments, 'RATING' => $rating, 'SHORT' => $new_short, 'LONG' => $new_long, 'USERNAME' => $to_user_row['username'], 'TOPIC_TITLE' => $feedback_row['topic_title'], 'TOPIC_TYPE' => $feedback_row['topic_type'], 'TRADER_USERNAME' => $return_user['username'], 'U_TRADER_PROFILE' => append_sid("{$this->phpbb_root_path}memberlist.{$this->phpEx}", 'mode=viewprofile&u=' . $return_user_id), 'U_TRADER_FEEDBACK' => $feedback_route, 'U_DATE_FORMAT' => $this->user->data['user_dateformat'])); return $this->helper->render('TraderFeedback.html', $this->user->lang['FEEDBACK_TITLE_EDIT'] . $to_user_row['username']); }