コード例 #1
0
ファイル: Trader.php プロジェクト: vidakk/trader
 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&amp;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']);
 }