public static function reorder_course_competency($courseid, $competencyidfrom, $competencyidto) {
        static::require_enabled();
        // Check the user have access to the course.
        self::validate_course($courseid);

        // First we do a permissions check.
        $context = context_course::instance($courseid);

        require_capability('moodle/competency:coursecompetencymanage', $context);

        $down = true;
        $coursecompetency = new course_competency();
        $matches = $coursecompetency->get_records(array('courseid' => $courseid, 'competencyid' => $competencyidfrom));
        if (count($matches) == 0) {
             throw new coding_exception('The link does not exist');
        }

        $competencyfrom = array_pop($matches);
        $matches = $coursecompetency->get_records(array('courseid' => $courseid, 'competencyid' => $competencyidto));
        if (count($matches) == 0) {
             throw new coding_exception('The link does not exist');
        }

        $competencyto = array_pop($matches);

        $all = $coursecompetency->get_records(array('courseid' => $courseid), 'sortorder', 'ASC', 0, 0);

        if ($competencyfrom->get('sortorder') > $competencyto->get('sortorder')) {
            // We are moving up, so put it before the "to" item.
            $down = false;
        }

        foreach ($all as $id => $coursecompetency) {
            $sort = $coursecompetency->get('sortorder');
            if ($down && $sort > $competencyfrom->get('sortorder') && $sort <= $competencyto->get('sortorder')) {
                $coursecompetency->set('sortorder', $coursecompetency->get('sortorder') - 1);
                $coursecompetency->update();
            } else if (!$down && $sort >= $competencyto->get('sortorder') && $sort < $competencyfrom->get('sortorder')) {
                $coursecompetency->set('sortorder', $coursecompetency->get('sortorder') + 1);
                $coursecompetency->update();
            }
        }
        $competencyfrom->set('sortorder', $competencyto->get('sortorder'));
        return $competencyfrom->update();
    }
public static function reorder_course_competency($courseid, $competencyidfrom, $competencyidto) {
        static::require_enabled();
        // Check the user have access to the course.
        self::validate_course($courseid);

        // First we do a permissions check.
        $context = context_course::instance($courseid);

        require_capability('moodle/competency:coursecompetencymanage', $context);

        $down = true;
        $coursecompetency = new course_competency();
        $matches = $coursecompetency->get_records(array('courseid' => $courseid, 'competencyid' => $competencyidfrom));
        if (count($matches) == 0) {
             throw new coding_exception('The link does not exist');
        }

        $competencyfrom = array_pop($matches);
        $matches = $coursecompetency->get_records(array('courseid' => $courseid, 'competencyid' => $competencyidto));
        if (count($matches) == 0) {
             throw new coding_exception('The link does not exist');
        }

        $competencyto = array_pop($matches);

        $all = $coursecompetency->get_records(array('courseid' => $courseid), 'sortorder', 'ASC', 0, 0);

        if ($competencyfrom->get('sortorder') > $competencyto->get('sortorder')) {
            // We are moving up, so put it before the "to" item.
            $down = false;
        }

        foreach ($all as $id => $coursecompetency) {
            $sort = $coursecompetency->get('sortorder');
            if ($down && $sort > $competencyfrom->get('sortorder') && $sort <= $competencyto->get('sortorder')) {
                $coursecompetency->set('sortorder', $coursecompetency->get('sortorder') - 1);
                $coursecompetency->update();
            } else if (!$down && $sort >= $competencyto->get('sortorder') && $sort < $competencyfrom->get('sortorder')) {
                $coursecompetency->set('sortorder', $coursecompetency->get('sortorder') + 1);
                $coursecompetency->update();
            }
        }
        $competencyfrom->set('sortorder', $competencyto->get('sortorder'));
        return $competencyfrom->update();
    }
public static function reorder_course_competency ( $ courseid , $ competencyidfrom , $ competencyidto ) { static :: require_enabled ( ) ; // Check the user have access to the course. self :: validate_course ( $ courseid ) ; // First we do a permissions check. $ context = context_course :: instance ( $ courseid ) ; require_capability ( 'moodle/competency:coursecompetencymanage' , $ context ) ; $ down = true ; $ coursecompetency = new course_competency ( ) ; $ matches = $ coursecompetency -> get_records ( array ( 'courseid' => $ courseid , 'competencyid' => $ competencyidfrom ) ) ; if ( count ( $ matches ) == 0 ) { throw new coding_exception ( 'The link does not exist' ) ; } $ competencyfrom = array_pop ( $ matches ) ; $ matches = $ coursecompetency -> get_records ( array ( 'courseid' => $ courseid , 'competencyid' => $ competencyidto ) ) ; if ( count ( $ matches ) == 0 ) { throw new coding_exception ( 'The link does not exist' ) ; } $ competencyto = array_pop ( $ matches ) ; $ all = $ coursecompetency -> get_records ( array ( 'courseid' => $ courseid ) , 'sortorder' , 'ASC' , 0 , 0 ) ; if ( $ competencyfrom -> get ( 'sortorder' ) > $ competencyto -> get ( 'sortorder' ) ) { // We are moving up, so put it before the "to" item. $ down = false ; } foreach ( $ all as $ id => $ coursecompetency ) { $ sort = $ coursecompetency -> get ( 'sortorder' ) ; if ( $ down && $ sort > $ competencyfrom -> get ( 'sortorder' ) && $ sort <= $ competencyto -> get ( 'sortorder' ) ) { $ coursecompetency -> set ( 'sortorder' , $ coursecompetency -> get ( 'sortorder' ) - 1 ) ; $ coursecompetency -> update ( ) ; } else if ( ! $ down && $ sort >= $ competencyto -> get ( 'sortorder' ) && $ sort < $ competencyfrom -> get ( 'sortorder' ) ) { $ coursecompetency -> set ( 'sortorder' , $ coursecompetency -> get ( 'sortorder' ) + 1 ) ; $ coursecompetency -> update ( ) ; } } $ competencyfrom -> set ( 'sortorder' , $ competencyto -> get ( 'sortorder' ) ) ; return $ competencyfrom -> update ( ) ; }
Move the course competency up or down in the display list.

Requires moodle/competency:coursecompetencymanage capability at the course context.

@param int $courseid The course
@param int $competencyidfrom The id of the competency we are moving.
@param int $competencyidto The id of the competency we are moving to.
@return boolean
Move the course competency up or down in the display list .