Wiki

Clone wiki

MOODECx / Dev_Notes

##Suppression des pages de l'ancien forum dans le profile de l'utilisateur##

/mod/forum/lib.php

Méthode : mod_forum_myprofile_navigation

Commmenter les deux lignes :

#!php

$tree->add_node($node);

Modification du plugin Workshop pour ajouter un nouvel état de completion

Fichier à modifier :

1) /mod/workshop/lib.php

Ajouter la fonction suivante :

#!php

/**
 * Obtains the automatic completion state for this forum based on any conditions
 * in forum settings.
 *
 * @param object $course Course
 * @param object $cm Course-module
 * @param int $userid User ID
 * @param bool $type Type of comparison (or/and; can be used as return value if no conditions)
 * @return bool True if completed, false if not, $type if conditions not set.
 */
function workshop_get_completion_state($course,$cm,$userid,$type) {
    global $CFG,$DB;

    // Get workshop details
    if(!($workshop=$DB->get_record('workshop',array('id'=>$cm->instance)))) {
        throw new Exception("Can't find workshop {$cm->instance}");
    }

    // If completion option is enabled, evaluate it and return true/false
    if($workshop->completionevals) {
        return $workshop->completionevals <= $DB->get_field_sql("
        SELECT
            COUNT(1)
        FROM
            {workshop_assessments} wa
            INNER JOIN {workshop_submissions} ws ON wa.submissionid=ws.id
        WHERE
            wa.reviewerid=:userid AND ws.workshopid=:workshopid AND wa.grade IS NOT NULL",
            array('userid'=>$userid,'workshopid'=>$workshop->id));
    } else {
        // Completion option is not enabled so just return $type
        return $type;
    }
}

2) /mod/workshop/locallib.php : Modifier la fonction suivante

#!php

 /**
     * Saves a raw grade for submission as calculated from the assessment form fields
     *
     * @param array $assessmentid assessment record id, must exists
     * @param mixed $grade        raw percentual grade from 0.00000 to 100.00000
     * @return false|float        the saved grade
     */
    public function set_peer_grade($assessmentid, $grade) {
        global $DB, $COURSE;

        $course = $COURSE ;

        $assessment = $DB->get_record('workshop_assessments',array('id'=>$assessmentid));
        $submission = $DB->get_record('workshop_submissions',array('id'=>$assessment->submissionid));
        $cm = get_coursemodule_from_instance('workshop', $submission->workshopid, $course->id) ;

        if(!($workshop=$DB->get_record('workshop',array('id'=>$submission->workshopid)))) {
            throw new Exception("Can't find workshop");
        }


        if (is_null($grade)) {
            return false;
        }
        $data = new stdclass();
        $data->id = $assessmentid;
        $data->grade = $grade;
        $data->timemodified = time();
        $DB->update_record('workshop_assessments', $data);

        // Update completion state
        $completion=new completion_info($course);
        if($completion->is_enabled($cm) && $workshop->completionevals) {
            $completion->update_state($cm,COMPLETION_COMPLETE);
        }
        return $grade;
    }
3) /mod/workshop/mod_form.php : Modifier le formulaire

#!php
 function add_completion_rules() {
        $mform =& $this->_form;

        $group=array();
        $group[] =& $mform->createElement('checkbox', 'completionevalenabled', '', get_string('completioneval','workshop'));
        $group[] =& $mform->createElement('text', 'completionevals', '', array('size'=>3));
        $mform->setType('completionevals',PARAM_INT);
        $mform->addGroup($group, 'completionevalsgroup', get_string('completionevalsgroup','workshop'), array(' '), false);
        $mform->disabledIf('completionevals','completionevalenabled','notchecked');

        return array('completionevalsgroup');
    }

    function completion_rule_enabled($data) {
        return (!empty($data['completionevalenabled']) && $data['completionevals']!=0);
    }

    function get_data() {
        $data = parent::get_data();
        if (!$data) {
            return $data;
        }

        if (!empty($data->completionunlocked)) {
            // Turn off completion settings if the checkboxes aren't ticked
            $autocompletion = !empty($data->completion) && $data->completion==COMPLETION_TRACKING_AUTOMATIC;
            if (empty($data->completionevalenabled) || !$autocompletion) {
                $data->completionevals = 0;
            }
        }
        return $data;
    }

4) /mod/workshop/backup/moodle2/backup_workshop_stepslib.php : Modifier le backup de l'activité

#!php

// root element describing workshop instance
        $workshop = new backup_nested_element('workshop', array('id'), array(
            'name', 'intro', 'introformat', 'instructauthors',
            'instructauthorsformat', 'instructreviewers',
            'instructreviewersformat', 'timemodified', 'phase', 'useexamples',
            'usepeerassessment', 'useselfassessment', 'grade', 'gradinggrade',
            'strategy', 'evaluation', 'gradedecimals', 'nattachments', 'submissionfiletypes',
            'latesubmissions', 'maxbytes', 'examplesmode', 'submissionstart',
            'submissionend', 'assessmentstart', 'assessmentend',
            'conclusion', 'conclusionformat', 'overallfeedbackmode',
            'overallfeedbackfiles', 'overallfeedbackfiletypes', 'overallfeedbackmaxbytes','completionevals'));

5) /mod/workshop/db/install.xml Modifier le fichier de la bdd pour ajouter ce champ à la table workshop :

#!xml

<FIELD NAME="completionevals" TYPE="int" LENGTH="9" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Nonzero if a certain number of evals are required to mark this workshop complete for a user."/>

6) /mod/workshop/lang Modifier / créer les fichiers de lang pour le FR/EN/DE

DE :

#!php

$string['completioneval'] = 'Anzahl der Beurteilungen abgeschlossen';
$string['completionevalsgroup'] = 'Anzahl der Bewertungen';

FR :

#!php

$string['completioneval'] = 'Nombre d\'évaluation à compléter';
$string['completionevalsgroup'] = 'Nombre d\'évaluation';

EN :

#!php

$string['completioneval'] = 'Number of assessments to complete';
$string['completionevalsgroup'] = 'Number of assessments';
  • Rajouter la police pour le certificat sous : /moodecx/lib/tcpdf/fonts Ajouter Oswald et Helvetica

Updated