Wiki
Clone wikiMOODECx / 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; }
#!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