Exemple #1
0
 /**
  * 调整考试学科顺序
  *
  * @param int $id 学科id
  * @return void
  */
 public function edit_index($id = 0, $type = 'forward')
 {
     if (!$this->check_power('exam_manage')) {
         return;
     }
     $exam = ExamModel::get_exam($id, 'exam_pid,exam_index');
     if ($exam === false or $exam['exam_pid'] == 0) {
         message('考试学科不存在');
         return;
     }
     if ($exam['exam_index'] < 1) {
         ExamModel::resort_index($exam['exam_pid']);
     } else {
         if ($type == 'forward') {
             if ($exam['exam_index'] > 1) {
                 $prev_where = array('exam_pid' => $exam['exam_pid'], 'exam_index' => $exam['exam_index'] - 1);
                 $query = $this->db->select('exam_id')->get_where('exam', $prev_where, 1);
                 $prev = $query->row_array();
                 if ($prev) {
                     $this->db->update('exam', array('exam_index' => $exam['exam_index'] - 1), array('exam_id' => $id));
                     $this->db->update('exam', array('exam_index' => $exam['exam_index']), array('exam_id' => $prev['exam_id']));
                 } else {
                     ExamModel::resort_index($exam['exam_pid']);
                 }
             }
         } else {
             $next_where = array('exam_pid' => $exam['exam_pid'], 'exam_index' => $exam['exam_index'] + 1);
             $query = $this->db->select('exam_id')->get_where('exam', $next_where, 1);
             $next = $query->row_array();
             if ($next) {
                 $this->db->update('exam', array('exam_index' => $exam['exam_index'] + 1), array('exam_id' => $id));
                 $this->db->update('exam', array('exam_index' => $exam['exam_index']), array('exam_id' => $next['exam_id']));
             }
         }
     }
     $back_url = empty($_SERVER['HTTP_REFERER']) ? 'admin/exam/index/' : $_SERVER['HTTP_REFERER'];
     redirect($back_url);
 }