コード例 #1
0
ファイル: management.php プロジェクト: abhilash1994/moodle
     // They must have specified a category.
     required_param('categoryid', PARAM_INT);
     $sort = required_param('resort', PARAM_ALPHA);
     \core_course\management\helper::action_category_resort_courses($category, $sort);
     break;
 case 'showcourse':
     $redirectback = \core_course\management\helper::action_course_show($course);
     break;
 case 'hidecourse':
     $redirectback = \core_course\management\helper::action_course_hide($course);
     break;
 case 'movecourseup':
     // They must have specified a category and a course.
     required_param('categoryid', PARAM_INT);
     required_param('courseid', PARAM_INT);
     $redirectback = \core_course\management\helper::action_course_change_sortorder_up_one($course, $category);
     break;
 case 'movecoursedown':
     // They must have specified a category and a course.
     required_param('categoryid', PARAM_INT);
     required_param('courseid', PARAM_INT);
     $redirectback = \core_course\management\helper::action_course_change_sortorder_down_one($course, $category);
     break;
 case 'showcategory':
     // They must have specified a category.
     required_param('categoryid', PARAM_INT);
     $redirectback = \core_course\management\helper::action_category_show($category);
     break;
 case 'hidecategory':
     // They must have specified a category.
     required_param('categoryid', PARAM_INT);
コード例 #2
0
 /**
  * Tests moving a course up and down by one.
  */
 public function test_action_course_movedown_and_moveup()
 {
     global $DB;
     $this->resetAfterTest(true);
     $generator = $this->getDataGenerator();
     $category = $generator->create_category();
     $course3 = $generator->create_course(array('category' => $category->id));
     $course2 = $generator->create_course(array('category' => $category->id));
     $course1 = $generator->create_course(array('category' => $category->id));
     $context = $category->get_context();
     // Update category object from DB so the course count is correct.
     $category = coursecat::get($category->id);
     list($user, $roleid) = $this->get_user_objects($generator, $context->id);
     $caps = course_capability_assignment::allow(self::CATEGORY_MANAGE, $roleid, $context->id);
     $courses = $category->get_courses();
     $this->assertInternalType('array', $courses);
     $this->assertEquals(array($course1->id, $course2->id, $course3->id), array_keys($courses));
     $dbcourses = $DB->get_records('course', array('category' => $category->id), 'sortorder', 'id');
     $this->assertEquals(array_keys($dbcourses), array_keys($courses));
     // Move a course down.
     $this->assertTrue(\core_course\management\helper::action_course_change_sortorder_down_one(new course_in_list(get_course($course1->id)), $category));
     $courses = $category->get_courses();
     $this->assertInternalType('array', $courses);
     $this->assertEquals(array($course2->id, $course1->id, $course3->id), array_keys($courses));
     $dbcourses = $DB->get_records('course', array('category' => $category->id), 'sortorder', 'id');
     $this->assertEquals(array_keys($dbcourses), array_keys($courses));
     // Move a course up.
     $this->assertTrue(\core_course\management\helper::action_course_change_sortorder_up_one(new course_in_list(get_course($course3->id)), $category));
     $courses = $category->get_courses();
     $this->assertInternalType('array', $courses);
     $this->assertEquals(array($course2->id, $course3->id, $course1->id), array_keys($courses));
     $dbcourses = $DB->get_records('course', array('category' => $category->id), 'sortorder', 'id');
     $this->assertEquals(array_keys($dbcourses), array_keys($courses));
     // Move a course down by record.
     $this->assertTrue(\core_course\management\helper::action_course_change_sortorder_down_one_by_record(get_course($course2->id), $category));
     $courses = $category->get_courses();
     $this->assertInternalType('array', $courses);
     $this->assertEquals(array($course3->id, $course2->id, $course1->id), array_keys($courses));
     $dbcourses = $DB->get_records('course', array('category' => $category->id), 'sortorder', 'id');
     $this->assertEquals(array_keys($dbcourses), array_keys($courses));
     // Move a course up by record.
     $this->assertTrue(\core_course\management\helper::action_course_change_sortorder_up_one_by_record(get_course($course2->id), $category));
     $courses = $category->get_courses();
     $this->assertInternalType('array', $courses);
     $this->assertEquals(array($course2->id, $course3->id, $course1->id), array_keys($courses));
     $dbcourses = $DB->get_records('course', array('category' => $category->id), 'sortorder', 'id');
     $this->assertEquals(array_keys($dbcourses), array_keys($courses));
     // Try move the bottom course down. This should return false and nothing changes.
     $this->assertFalse(\core_course\management\helper::action_course_change_sortorder_down_one(new course_in_list(get_course($course1->id)), $category));
     $courses = $category->get_courses();
     $this->assertInternalType('array', $courses);
     $this->assertEquals(array($course2->id, $course3->id, $course1->id), array_keys($courses));
     $dbcourses = $DB->get_records('course', array('category' => $category->id), 'sortorder', 'id');
     $this->assertEquals(array_keys($dbcourses), array_keys($courses));
     // Try move the top course up. This should return false and nothing changes.
     $this->assertFalse(\core_course\management\helper::action_course_change_sortorder_up_one(new course_in_list(get_course($course2->id)), $category));
     $courses = $category->get_courses();
     $this->assertInternalType('array', $courses);
     $this->assertEquals(array($course2->id, $course3->id, $course1->id), array_keys($courses));
     $dbcourses = $DB->get_records('course', array('category' => $category->id), 'sortorder', 'id');
     $this->assertEquals(array_keys($dbcourses), array_keys($courses));
     // Prohibit the ability to move.
     $caps->assign(CAP_PROHIBIT);
     // Reload the category.
     $category = coursecat::get($category->id);
     try {
         \core_course\management\helper::action_course_change_sortorder_down_one(new course_in_list(get_course($course2->id)), $category);
         $this->fail('Course moved without having the required permissions.');
     } catch (moodle_exception $exception) {
         // Check nothing has changed.
         $courses = $category->get_courses();
         $this->assertInternalType('array', $courses);
         $this->assertEquals(array($course2->id, $course3->id, $course1->id), array_keys($courses));
         $dbcourses = $DB->get_records('course', array('category' => $category->id), 'sortorder', 'id');
         $this->assertEquals(array_keys($dbcourses), array_keys($courses));
     }
 }