Wiki
Clone wikiMOODECx / Dev_Notes_3-5
##Media Collection Delete sample Feature###
Classe : /mod/mediagallery/renderer.php
Méthode : renderer_gallery Mission : Commenter 4 lignes
#!php public function render_gallery(rengallery $renderable) { $gallery = $renderable->gallery; $o = $this->gallery_heading($gallery); if (!$renderable->nosample) { $class = ''; $pix = 't/check'; if (!$gallery->moral_rights_asserted()) { $class = ' no'; $pix = 'i/invalid'; } // $indicator = html_writer::empty_tag('img', array('src' => $this->output->image_url($pix))); // $o .= html_writer::tag('div', $indicator, array('class' => 'moralrights'.$class)); // $link = html_writer::link('#', get_string('sample', 'mediagallery'), array('id' => 'mg_sample')); // $o .= html_writer::tag('div', $link, array('class' => 'moralrights_title')); }
##Autorisation de créer plusieurs badges avec le même nom##
**/badges/edit_form.php
Méhtode : validation
Commenter la ligne suivante :
#!php if ($duplicate) { // $errors['name'] = get_string('error:duplicatename', 'badges'); }
##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; } }
1.1 Modifier la fonction suivante :
#!php function workshop_supports($feature) { switch($feature) { case FEATURE_GRADE_HAS_GRADE: return true; case FEATURE_GROUPS: return true; case FEATURE_GROUPINGS: return true; case FEATURE_MOD_INTRO: return true; case FEATURE_BACKUP_MOODLE2: return true; case FEATURE_COMPLETION_TRACKS_VIEWS: return true; case FEATURE_COMPLETION_HAS_RULES: return true; case FEATURE_SHOW_DESCRIPTION: return true; case FEATURE_PLAGIARISM: return true; default: return null; } }
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
##Correction des warning dans les badges de cours en 3.5 (vérifier si toujours présent en 3.6)##
**/lib/badgeslib.php
Méhtode : badges_get_badges
Cast en int les deux variables $page et $perpage à cette ligne :
#!php $records = $DB->get_records_sql($sql, $params, (int)$page * (int)$perpage, $perpage);
##Correction des warning dans le forum de cours en 3.5 (vérifier si toujours présent en 3.6)##
**/mod/forumqta/q2a/qa-include/qa-page.php
Méhtode : qa_content_prepare
Rajouter un "@" avant la méthode count() à cette ligne :
#!php $lastcategoryid=@count($categoryids) ? end($categoryids) : null;
**/mod/forumqta/q2a/qa-include/qa-theme-base.php
Méthode : widgets
Rajouter un "@" avant la méthode count() à ces lignes :
#!php if (@count(@$this->content['widgets'][$region][$place])) {
#!php if (@count(@$navlink['subnav']))
Updated