AutorÃa | Ultima modificación | Ver Log |
<?php// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// Moodle is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Moodle. If not, see <http://www.gnu.org/licenses/>./*** Completion Progress block configuration form definition** @package block_completion_progress* @copyright 2016 Michael de Raadt* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/defined('MOODLE_INTERNAL') || die;use block_completion_progress\completion_progress;use block_completion_progress\defaults;require_once($CFG->dirroot.'/blocks/completion_progress/block_completion_progress.php');/*** Completion Progress block config form class** @copyright 2016 Michael de Raadt* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/class block_completion_progress_edit_form extends block_edit_form {/*** Settings specific to this block.** @param moodleform $mform*/protected function specific_definition($mform) {global $COURSE, $OUTPUT;$progress = (new completion_progress($COURSE))->for_block_instance($this->block->instance, false);$activities = $progress->get_activities(completion_progress::ORDERBY_COURSE);// The My home version is not configurable.if (block_completion_progress::on_site_page()) {return;}// Start block specific section in config form.$mform->addElement('header', 'configheader', get_string('blocksettings', 'block'));// Control order of items in Progress Bar.$expectedbystring = get_string('completionexpected', 'completion');$options = array(completion_progress::ORDERBY_TIME => get_string('config_orderby_due_time','block_completion_progress', $expectedbystring),completion_progress::ORDERBY_COURSE => get_string('config_orderby_course_order','block_completion_progress'),);$label = get_string('config_orderby', 'block_completion_progress');$mform->addElement('select', 'config_orderby', $label, $options);$mform->setDefault('config_orderby', defaults::ORDERBY);$mform->addHelpButton('config_orderby', 'how_ordering_works', 'block_completion_progress');// Check if all elements have an expect completion by time set.$allwithexpected = true;foreach ($activities as $activity) {if ($activity->expected == 0) {$allwithexpected = false;break;}}if (!$allwithexpected) {$warningstring = get_string('not_all_expected_set', 'block_completion_progress', $expectedbystring);$expectedwarning = html_writer::tag('div', $warningstring, array('class' => 'warning'));$mform->addElement('static', $expectedwarning, '', $expectedwarning);}// Control how long bars wrap/scroll.$options = array('squeeze' => get_string('config_squeeze', 'block_completion_progress'),'scroll' => get_string('config_scroll', 'block_completion_progress'),'wrap' => get_string('config_wrap', 'block_completion_progress'),);$label = get_string('config_longbars', 'block_completion_progress');$mform->addElement('select', 'config_longbars', $label, $options);$defaultlongbars = get_config('block_completion_progress', 'defaultlongbars') ?: defaults::LONGBARS;$mform->setDefault('config_longbars', $defaultlongbars);$mform->addHelpButton('config_longbars', 'how_longbars_works', 'block_completion_progress');// Allow icons to be turned on/off on the block.if (get_config('block_completion_progress', 'forceiconsinbar') !== "1") {$mform->addElement('selectyesno', 'config_progressBarIcons',get_string('config_icons', 'block_completion_progress').' '.$OUTPUT->pix_icon('tick', '', 'block_completion_progress', array('class' => 'iconOnConfig')).$OUTPUT->pix_icon('cross', '', 'block_completion_progress', array('class' => 'iconOnConfig')));$mform->setDefault('config_progressBarIcons', defaults::PROGRESSBARICONS);$mform->addHelpButton('config_progressBarIcons', 'why_use_icons', 'block_completion_progress');}// Allow progress percentage to be turned on for students.$mform->addElement('selectyesno', 'config_showpercentage',get_string('config_percentage', 'block_completion_progress'));$mform->setDefault('config_showpercentage', defaults::SHOWPERCENTAGE);$mform->addHelpButton('config_showpercentage', 'why_show_precentage', 'block_completion_progress');// Allow the block to be visible to a single group or grouping.$groups = groups_get_all_groups($COURSE->id);$groupings = groups_get_all_groupings($COURSE->id);if (!empty($groups) || !empty($groupings)) {$options = array();$options['0'] = get_string('allparticipants');foreach ($groups as $group) {$options['group-' . $group->id] = format_string($group->name);}foreach ($groupings as $grouping) {$options['grouping-' . $grouping->id] = format_string($grouping->name);}$label = get_string('config_group', 'block_completion_progress');$mform->addElement('select', 'config_group', $label, $options);$mform->setDefault('config_group', '0');$mform->addHelpButton('config_group', 'how_group_works', 'block_completion_progress');$mform->setAdvanced('config_group', true);}// Set block instance title.$mform->addElement('text', 'config_progressTitle',get_string('config_title', 'block_completion_progress'));$mform->setDefault('config_progressTitle', '');$mform->setType('config_progressTitle', PARAM_TEXT);$mform->addHelpButton('config_progressTitle', 'why_set_the_title', 'block_completion_progress');$mform->setAdvanced('config_progressTitle', true);// Control which activities are included in the bar.$options = array('activitycompletion' => get_string('config_activitycompletion', 'block_completion_progress'),'selectedactivities' => get_string('config_selectedactivities', 'block_completion_progress'),);$label = get_string('config_activitiesincluded', 'block_completion_progress');$mform->addElement('select', 'config_activitiesincluded', $label, $options);$mform->setDefault('config_activitiesincluded', defaults::ACTIVITIESINCLUDED);$mform->addHelpButton('config_activitiesincluded', 'how_activitiesincluded_works', 'block_completion_progress');$mform->setAdvanced('config_activitiesincluded', true);// Check that there are activities to monitor.if (empty($activities)) {$warningstring = get_string('no_activities_config_message', 'block_completion_progress');$activitieswarning = html_writer::tag('div', $warningstring, array('class' => 'warning'));$mform->addElement('static', '', '', $activitieswarning);} else {$options = array();foreach ($activities as $activity) {$options[$activity->type.'-'.$activity->instance] = format_string($activity->name);}$label = get_string('config_selectactivities', 'block_completion_progress');$mform->addElement('select', 'config_selectactivities', $label, $options);$mform->getElement('config_selectactivities')->setMultiple(true);$mform->getElement('config_selectactivities')->setSize(count($activities));$mform->setAdvanced('config_selectactivities', true);$mform->disabledif('config_selectactivities', 'config_activitiesincluded', 'neq', 'selectedactivities');$mform->addHelpButton('config_selectactivities', 'how_selectactivities_works', 'block_completion_progress');}}}