private function show_report_details() { global $request, $template, $user, $config, $db, $module; if (($report_id = $request->variable('report_id', 0)) == 0) { // no report id - show error message trigger_error('NO_REPORT'); } // fix mcp sidebar link $module->adjust_url('&report_id=' . $report_id); $report_row = $this->manager->get_report($report_id); if (!$report_row) { trigger_error('NO_REPORT'); } $feedback_row = $this->manager->getAllFeedbackInfo($report_row['feedback_id']); if ($user->data['user_timezone']) { $timezone = new \DateTimeZone($user->data['user_timezone']); } else { $timezone = new \DateTimeZone($config['board_timezone']); } $feedback_row['to_username'] = $this->get_username_full($db, $feedback_row['to_user_id']); $feedback_row['from_username'] = $this->get_username_full($db, $feedback_row['from_user_id']); $report_row['date_created'] = new \DateTime('@' . $report_row['date_created']); $report_row['date_created']->setTimezone($timezone); $feedback_row['date_created'] = new \DateTime('@' . $feedback_row['date_created']); $feedback_row['date_created']->setTimezone($timezone); $U_EDIT = $this->helper->route('rfd_trader_edit_feedback', array('feedback_id' => $report_row['feedback_id'])); $template->assign_vars(array('REPORT' => $report_row, 'FEEDBACK' => $feedback_row, 'S_REPORT_CLOSED' => !$report_row['status'], 'U_EDIT' => $U_EDIT)); add_form_key('mcp_trader'); $this->tpl_name = 'mcp_report_details'; }
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']); }