mirror of
https://github.com/moodle/moodle.git
synced 2025-06-04 23:25:35 +02:00
MDL-18910 moving modedit features to modname_supports()
This commit is contained in:
parent
b763c2d904
commit
42f103be4c
@ -1,11 +1,8 @@
|
||||
<?php //$Id$
|
||||
require_once ($CFG->libdir.'/formslib.php');
|
||||
if(!empty($CFG->enablecompletion)) {
|
||||
if (!empty($CFG->enablecompletion) or !empty($CFG->enableavailability)) {
|
||||
require_once($CFG->libdir.'/completionlib.php');
|
||||
}
|
||||
if(!empty($CFG->enableavailability)) {
|
||||
require_once($CFG->libdir.'/conditionlib.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* This class adds extra methods to form wrapper specific to be used for module
|
||||
@ -20,38 +17,65 @@ class moodleform_mod extends moodleform {
|
||||
*
|
||||
* @var mixed
|
||||
*/
|
||||
var $_instance;
|
||||
protected $_instance;
|
||||
/**
|
||||
* Section of course that module instance will be put in or is in.
|
||||
* This is always the section number itself (column 'section' from 'course_sections' table).
|
||||
*
|
||||
* @var mixed
|
||||
*/
|
||||
var $_section;
|
||||
protected $_section;
|
||||
/**
|
||||
* Coursemodle record of the module that is being updated. Will be null if this is an 'add' form and not an
|
||||
* update one.
|
||||
*
|
||||
* @var mixed
|
||||
*/
|
||||
var $_cm;
|
||||
protected $_cm;
|
||||
/**
|
||||
* List of modform features
|
||||
*/
|
||||
var $_features;
|
||||
|
||||
protected $_features;
|
||||
/**
|
||||
* @var array Custom completion-rule elements, if enabled
|
||||
*/
|
||||
var $_customcompletionelements;
|
||||
protected $_customcompletionelements;
|
||||
/**
|
||||
* @var string name of module
|
||||
*/
|
||||
protected $_modname;
|
||||
|
||||
function moodleform_mod($instance, $section, $cm) {
|
||||
$this->_instance = $instance;
|
||||
$this->_section = $section;
|
||||
$this->_cm = $cm;
|
||||
// Guess module name
|
||||
$matches = array();
|
||||
if (!preg_match('/^mod_([^_]+)_mod_form$/', get_class($this), $matches)) {
|
||||
debugging('Use $modname parameter or rename form to mod_xx_mod_form, where xx is name of your module');
|
||||
print_error('unknownmodulename');
|
||||
}
|
||||
$this->_modname = $matches[1];
|
||||
$this->init_features();
|
||||
parent::moodleform('modedit.php');
|
||||
}
|
||||
|
||||
protected function init_features() {
|
||||
global $CFG;
|
||||
|
||||
$this->_features = new object();
|
||||
$this->_features->groups = plugin_supports('mod', $this->_modname, FEATURE_GROUPS, true);
|
||||
$this->_features->groupings = plugin_supports('mod', $this->_modname, FEATURE_GROUPINGS, false);
|
||||
$this->_features->groupmembersonly = plugin_supports('mod', $this->_modname, FEATURE_GROUPMEMBERSONLY, false);
|
||||
$this->_features->outcomes = (!empty($CFG->enableoutcomes) and plugin_supports('mod', $this->_modname, FEATURE_GRADE_OUTCOMES, true));
|
||||
$this->_features->hasgrades = plugin_supports('mod', $this->_modname, FEATURE_GRADE_HAS_GRADE, false);
|
||||
$this->_features->idnumber = plugin_supports('mod', $this->_modname, FEATURE_IDNUMBER, true);
|
||||
$this->_features->introeditor = plugin_supports('mod', $this->_modname, FEATURE_MODEDIT_INTRO_EDITOR, true);
|
||||
$this->_features->defaultcompletion = plugin_supports('mod', $this->_modname, FEATURE_MODEDIT_DEFAULT_COMPLETION, true);
|
||||
|
||||
$this->_features->gradecat = ($this->_features->outcomes or $this->_features->hasgrades);
|
||||
}
|
||||
|
||||
/**
|
||||
* Only available on moodleform_mod.
|
||||
*
|
||||
@ -276,70 +300,13 @@ class moodleform_mod extends moodleform {
|
||||
|
||||
/**
|
||||
* Adds all the standard elements to a form to edit the settings for an activity module.
|
||||
*
|
||||
* @param mixed $features array or object describing supported features - groups, groupings, groupmembersonly, etc.
|
||||
* @param string $modname Name of module e.g. 'label'
|
||||
*/
|
||||
function standard_coursemodule_elements($features=null, $modname=null){
|
||||
function standard_coursemodule_elements(){
|
||||
global $COURSE, $CFG, $DB;
|
||||
$mform =& $this->_form;
|
||||
|
||||
// Guess module name if not supplied
|
||||
if (!$modname) {
|
||||
$matches=array();
|
||||
if (!preg_match('/^mod_([^_]+)_mod_form$/', $this->_formname, $matches)) {
|
||||
debugging('Use $modname parameter or rename form to mod_xx_mod_form, where xx is name of your module');
|
||||
print_error('unknownmodulename');
|
||||
}
|
||||
$modname=$matches[1];
|
||||
}
|
||||
|
||||
// deal with legacy $supportgroups param
|
||||
if ($features === true or $features === false) {
|
||||
$groupmode = $features;
|
||||
$this->_features = new object();
|
||||
$this->_features->groups = $groupmode;
|
||||
|
||||
} else if (is_array($features)) {
|
||||
$this->_features = (object)$features;
|
||||
|
||||
} else if (empty($features)) {
|
||||
$this->_features = new object();
|
||||
|
||||
} else {
|
||||
$this->_features = $features;
|
||||
}
|
||||
|
||||
if (!isset($this->_features->groups)) {
|
||||
$this->_features->groups = true;
|
||||
}
|
||||
|
||||
if (!isset($this->_features->groupings)) {
|
||||
$this->_features->groupings = false;
|
||||
}
|
||||
|
||||
if (!isset($this->_features->groupmembersonly)) {
|
||||
$this->_features->groupmembersonly = false;
|
||||
}
|
||||
|
||||
if (!isset($this->_features->outcomes)) {
|
||||
$this->_features->outcomes = true;
|
||||
}
|
||||
|
||||
if (!isset($this->_features->gradecat)) {
|
||||
$this->_features->gradecat = true;
|
||||
}
|
||||
|
||||
if (!isset($this->_features->idnumber)) {
|
||||
$this->_features->idnumber = true;
|
||||
}
|
||||
|
||||
if (!isset($this->_features->defaultcompletion)) {
|
||||
$this->_features->defaultcompletion = true;
|
||||
}
|
||||
|
||||
$outcomesused = false;
|
||||
if (!empty($CFG->enableoutcomes) and $this->_features->outcomes) {
|
||||
if ($this->_features->outcomes) {
|
||||
if ($outcomes = grade_outcome::fetch_all_available($COURSE->id)) {
|
||||
$outcomesused = true;
|
||||
$mform->addElement('header', 'modoutcomes', get_string('outcomes', 'grades'));
|
||||
@ -401,9 +368,9 @@ class moodleform_mod extends moodleform {
|
||||
$mform->setHelpButton('availableuntil', array('conditiondates', get_string('help_conditiondates', 'condition'), 'condition'));
|
||||
|
||||
// Conditions based on grades
|
||||
$gradeoptions=array();
|
||||
$items=grade_item::fetch_all(array('courseid'=>$COURSE->id));
|
||||
$items=$items ? $items : array();
|
||||
$gradeoptions = array();
|
||||
$items = grade_item::fetch_all(array('courseid'=>$COURSE->id));
|
||||
$items = $items ? $items : array();
|
||||
foreach($items as $id=>$item) {
|
||||
// Do not include grades for current item
|
||||
if (!empty($this->_cm) && $this->_cm->instance == $item->iteminstance
|
||||
@ -411,12 +378,12 @@ class moodleform_mod extends moodleform {
|
||||
&& $item->itemtype == 'mod') {
|
||||
continue;
|
||||
}
|
||||
$gradeoptions[$id]=$item->get_name();
|
||||
$gradeoptions[$id] = $item->get_name();
|
||||
}
|
||||
asort($gradeoptions);
|
||||
$gradeoptions=array(0=>get_string('none','condition'))+$gradeoptions;
|
||||
$gradeoptions = array(0=>get_string('none','condition'))+$gradeoptions;
|
||||
|
||||
$grouparray=array();
|
||||
$grouparray = array();
|
||||
$grouparray[] =& $mform->createElement('select','conditiongradeitemid','',$gradeoptions);
|
||||
$grouparray[] =& $mform->createElement('static', '', '',' '.get_string('grade_atleast','condition').' ');
|
||||
$grouparray[] =& $mform->createElement('text', 'conditiongrademin','',array('size'=>3));
|
||||
@ -431,22 +398,22 @@ class moodleform_mod extends moodleform {
|
||||
// Get version with condition info and store it so we don't ask
|
||||
// twice
|
||||
if(!empty($this->_cm)) {
|
||||
$ci = new condition_info($this->_cm,CONDITION_MISSING_EXTRATABLE);
|
||||
$this->_cm=$ci->get_full_course_module();
|
||||
$count=count($this->_cm->conditionsgrade)+1;
|
||||
$ci = new condition_info($this->_cm, CONDITION_MISSING_EXTRATABLE);
|
||||
$this->_cm = $ci->get_full_course_module();
|
||||
$count = count($this->_cm->conditionsgrade)+1;
|
||||
} else {
|
||||
$count=1;
|
||||
$count = 1;
|
||||
}
|
||||
|
||||
$this->repeat_elements(array($group),$count,array(),'conditiongraderepeats','conditiongradeadds',2,
|
||||
get_string('addgrades','condition'),true);
|
||||
$this->repeat_elements(array($group), $count, array(), 'conditiongraderepeats', 'conditiongradeadds', 2,
|
||||
get_string('addgrades', 'condition'), true);
|
||||
$mform->setHelpButton('conditiongradegroup[0]', array('gradecondition', get_string('help_gradecondition', 'condition'), 'condition'));
|
||||
|
||||
// Conditions based on completion
|
||||
$completion = new completion_info($COURSE);
|
||||
if ($completion->is_enabled()) {
|
||||
$completionoptions=array();
|
||||
$modinfo=get_fast_modinfo($COURSE);
|
||||
$completionoptions = array();
|
||||
$modinfo = get_fast_modinfo($COURSE);
|
||||
foreach($modinfo->cms as $id=>$cm) {
|
||||
// Add each course-module if it:
|
||||
// (a) has completion turned on
|
||||
@ -456,7 +423,7 @@ class moodleform_mod extends moodleform {
|
||||
}
|
||||
}
|
||||
asort($completionoptions);
|
||||
$completionoptions=array(0=>get_string('none','condition'))+$completionoptions;
|
||||
$completionoptions = array(0=>get_string('none','condition'))+$completionoptions;
|
||||
|
||||
$completionvalues=array(
|
||||
COMPLETION_COMPLETE=>get_string('completion_complete','condition'),
|
||||
@ -464,13 +431,13 @@ class moodleform_mod extends moodleform {
|
||||
COMPLETION_COMPLETE_PASS=>get_string('completion_pass','condition'),
|
||||
COMPLETION_COMPLETE_FAIL=>get_string('completion_fail','condition'));
|
||||
|
||||
$grouparray=array();
|
||||
$grouparray = array();
|
||||
$grouparray[] =& $mform->createElement('select','conditionsourcecmid','',$completionoptions);
|
||||
$grouparray[] =& $mform->createElement('select','conditionrequiredcompletion','',$completionvalues);
|
||||
$group = $mform->createElement('group','conditioncompletiongroup',
|
||||
get_string('completioncondition', 'condition'),$grouparray);
|
||||
|
||||
$count=empty($this->_cm) ? 1 : count($this->_cm->conditionscompletion)+1;
|
||||
$count = empty($this->_cm) ? 1 : count($this->_cm->conditionscompletion)+1;
|
||||
$this->repeat_elements(array($group),$count,array(),
|
||||
'conditioncompletionrepeats','conditioncompletionadds',2,
|
||||
get_string('addcompletions','condition'),true);
|
||||
|
@ -300,11 +300,27 @@ define ('PASSWORD_NONALPHANUM', '.,;:!?_-+/*@#&$');
|
||||
|
||||
/** True if module can provide a grade */
|
||||
define('FEATURE_GRADE_HAS_GRADE', 'grade_has_grade');
|
||||
/** True if module supports outcomes */
|
||||
define('FEATURE_GRADE_OUTCOMES', 'outcomes');
|
||||
|
||||
/** True if module has code to track whether somebody viewed it */
|
||||
define('FEATURE_COMPLETION_TRACKS_VIEWS', 'completion_tracks_views');
|
||||
/** True if module has custom completion rules */
|
||||
define('FEATURE_COMPLETION_HAS_RULES', 'completion_has_rules');
|
||||
|
||||
/** True if module supports outcomes */
|
||||
define('FEATURE_IDNUMBER', 'idnumber');
|
||||
/** True if module supports groups */
|
||||
define('FEATURE_GROUPS', 'groups');
|
||||
/** True if module supports groupings */
|
||||
define('FEATURE_GROUPINGS', 'groupings');
|
||||
/** True if module supports groupmembersonly */
|
||||
define('FEATURE_GROUPMEMBERSONLY', 'groupmembersonly');
|
||||
|
||||
/** True if module supports intro editor */
|
||||
define('FEATURE_MODEDIT_INTRO_EDITOR', 'modedit_intro_editor');
|
||||
/** True if module has default completion */
|
||||
define('FEATURE_MODEDIT_DEFAULT_COMPLETION', 'modedit_default_completion');
|
||||
|
||||
|
||||
/// PARAMETER HANDLING ////////////////////////////////////////////////////
|
||||
|
@ -3238,9 +3238,14 @@ class assignment_portfolio_caller extends portfolio_module_caller_base {
|
||||
*/
|
||||
function assignment_supports($feature) {
|
||||
switch($feature) {
|
||||
case FEATURE_GROUPS: return true;
|
||||
case FEATURE_GROUPINGS: return true;
|
||||
case FEATURE_GROUPMEMBERSONLY: return true;
|
||||
case FEATURE_MODEDIT_INTRO_EDITOR: return true;
|
||||
case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return true;
|
||||
case FEATURE_GRADE_OUTCOMES: return true;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -60,16 +60,10 @@ class mod_assignment_mod_form extends moodleform_mod {
|
||||
$mform->addElement('header', 'typedesc', get_string('type'.$type,'assignment'));
|
||||
$assignmentinstance->setup_elements($mform);
|
||||
|
||||
$features = new stdClass;
|
||||
$features->groups = true;
|
||||
$features->groupings = true;
|
||||
$features->groupmembersonly = true;
|
||||
$this->standard_coursemodule_elements($features);
|
||||
$this->standard_coursemodule_elements();
|
||||
|
||||
$this->add_action_buttons();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
|
@ -971,4 +971,21 @@ class chat_portfolio_caller extends portfolio_module_caller_base {
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
/**
|
||||
* @param string $feature FEATURE_xx constant for requested feature
|
||||
* @return mixed True if module supports feature, null if doesn't know
|
||||
*/
|
||||
function chat_supports($feature) {
|
||||
switch($feature) {
|
||||
case FEATURE_GROUPS: return true;
|
||||
case FEATURE_GROUPINGS: return true;
|
||||
case FEATURE_GROUPMEMBERSONLY: return true;
|
||||
case FEATURE_MODEDIT_INTRO_EDITOR: return true;
|
||||
case FEATURE_COMPLETION_TRACKS_VIEWS: return false;
|
||||
case FEATURE_GRADE_HAS_GRADE: return false;
|
||||
case FEATURE_GRADE_OUTCOMES: return true;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -50,11 +50,7 @@ class mod_chat_mod_form extends moodleform_mod {
|
||||
|
||||
$mform->addElement('selectyesno', 'studentlogs', get_string('studentseereports', 'chat'));
|
||||
|
||||
$features = new stdClass;
|
||||
$features->groups = true;
|
||||
$features->groupings = true;
|
||||
$features->groupmembersonly = true;
|
||||
$this->standard_coursemodule_elements($features);
|
||||
$this->standard_coursemodule_elements();
|
||||
|
||||
$this->add_action_buttons();
|
||||
}
|
||||
|
@ -762,7 +762,14 @@ function choice_get_extra_capabilities() {
|
||||
*/
|
||||
function choice_supports($feature) {
|
||||
switch($feature) {
|
||||
case FEATURE_GROUPS: return true;
|
||||
case FEATURE_GROUPINGS: return true;
|
||||
case FEATURE_GROUPMEMBERSONLY: return true;
|
||||
case FEATURE_MODEDIT_INTRO_EDITOR: return true;
|
||||
case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return false;
|
||||
case FEATURE_GRADE_OUTCOMES: return false;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
@ -91,11 +91,6 @@ class mod_choice_mod_form extends moodleform_mod {
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
$features = new stdClass;
|
||||
$features->groups = true;
|
||||
$features->groupings = true;
|
||||
$features->groupmembersonly = true;
|
||||
$features->gradecat = false;
|
||||
$this->standard_coursemodule_elements($features);
|
||||
//-------------------------------------------------------------------------------
|
||||
$this->add_action_buttons();
|
||||
|
@ -2325,10 +2325,16 @@ function data_get_extra_capabilities() {
|
||||
*/
|
||||
function data_supports($feature) {
|
||||
switch($feature) {
|
||||
case FEATURE_GROUPS: return true;
|
||||
case FEATURE_GROUPINGS: return true;
|
||||
case FEATURE_GROUPMEMBERSONLY: return true;
|
||||
case FEATURE_MODEDIT_INTRO_EDITOR: return true;
|
||||
case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return true;
|
||||
case FEATURE_GRADE_OUTCOMES: return true;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
function data_export_csv($export, $delimiter_name, $dataname, $count, $return=false) {
|
||||
global $CFG;
|
||||
|
@ -62,7 +62,7 @@ class mod_data_mod_form extends moodleform_mod {
|
||||
$mform->disabledIf('scale', 'assessed');
|
||||
|
||||
|
||||
$this->standard_coursemodule_elements(array('groups'=>true, 'groupings'=>true, 'groupmembersonly'=>true));
|
||||
$this->standard_coursemodule_elements();
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
// buttons
|
||||
|
@ -35,7 +35,14 @@ if(!isset($SESSION->feedback) OR !is_object($SESSION->feedback)) {
|
||||
*/
|
||||
function feedback_supports($feature) {
|
||||
switch($feature) {
|
||||
case FEATURE_GROUPS: return true;
|
||||
case FEATURE_GROUPINGS: return true;
|
||||
case FEATURE_GROUPMEMBERSONLY: return true;
|
||||
case FEATURE_MODEDIT_INTRO_EDITOR: return true;
|
||||
case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return false;
|
||||
case FEATURE_GRADE_OUTCOMES: return false;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
@ -85,13 +85,7 @@ class mod_feedback_mod_form extends moodleform_mod {
|
||||
$mform->addElement('htmleditor', 'page_after_submit', get_string("page_after_submit", "feedback"), array('rows' => 20));
|
||||
$mform->setType('page_after_submit', PARAM_RAW);
|
||||
//-------------------------------------------------------------------------------
|
||||
$features = new stdClass;
|
||||
$features->groups = true;
|
||||
$features->groupings = true;
|
||||
$features->groupmembersonly = true;
|
||||
$features->gradecat = false;
|
||||
$features->idnumber = false;
|
||||
$this->standard_coursemodule_elements($features);
|
||||
$this->standard_coursemodule_elements();
|
||||
//-------------------------------------------------------------------------------
|
||||
// buttons
|
||||
$this->add_action_buttons();
|
||||
|
@ -237,8 +237,15 @@ function forum_delete_instance($id) {
|
||||
*/
|
||||
function forum_supports($feature) {
|
||||
switch($feature) {
|
||||
case FEATURE_GROUPS: return true;
|
||||
case FEATURE_GROUPINGS: return true;
|
||||
case FEATURE_GROUPMEMBERSONLY: return true;
|
||||
case FEATURE_MODEDIT_INTRO_EDITOR: return true;
|
||||
case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
|
||||
case FEATURE_COMPLETION_HAS_RULES: return true;
|
||||
case FEATURE_COMPLETION_HAS_RULES: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return true;
|
||||
case FEATURE_GRADE_OUTCOMES: return true;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
@ -141,11 +141,7 @@ class mod_forum_mod_form extends moodleform_mod {
|
||||
$mform->disabledIf('warnafter', 'blockperiod', 'eq', 0);
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
$features = new stdClass;
|
||||
$features->groups = true;
|
||||
$features->groupings = true;
|
||||
$features->groupmembersonly = true;
|
||||
$this->standard_coursemodule_elements($features);
|
||||
$this->standard_coursemodule_elements();
|
||||
//-------------------------------------------------------------------------------
|
||||
// buttons
|
||||
$this->add_action_buttons();
|
||||
|
@ -2274,8 +2274,14 @@ function glossary_get_extra_capabilities() {
|
||||
*/
|
||||
function glossary_supports($feature) {
|
||||
switch($feature) {
|
||||
case FEATURE_GROUPS: return false;
|
||||
case FEATURE_GROUPINGS: return false;
|
||||
case FEATURE_GROUPMEMBERSONLY: return true;
|
||||
case FEATURE_MODEDIT_INTRO_EDITOR: return true;
|
||||
case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return true;
|
||||
case FEATURE_GRADE_OUTCOMES: return true;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ class mod_glossary_mod_form extends moodleform_mod {
|
||||
$mform->disabledIf('assesstimefinish', 'ratingtime');
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
$this->standard_coursemodule_elements(array('groups'=>false, 'groupmembersonly'=>true));
|
||||
$this->standard_coursemodule_elements();
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
// buttons
|
||||
|
@ -135,4 +135,23 @@ function lable_get_extra_capabilities() {
|
||||
return array('moodle/site:accessallgroups');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $feature FEATURE_xx constant for requested feature
|
||||
* @return mixed True if module supports feature, null if doesn't know
|
||||
*/
|
||||
function label_supports($feature) {
|
||||
switch($feature) {
|
||||
case FEATURE_IDNUMBER: return false;
|
||||
case FEATURE_GROUPS: return false;
|
||||
case FEATURE_GROUPINGS: return false;
|
||||
case FEATURE_GROUPMEMBERSONLY: return true;
|
||||
case FEATURE_MODEDIT_INTRO_EDITOR: return false;
|
||||
case FEATURE_COMPLETION_TRACKS_VIEWS: return false;
|
||||
case FEATURE_GRADE_HAS_GRADE: return false;
|
||||
case FEATURE_GRADE_OUTCOMES: return false;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
@ -12,9 +12,7 @@ class mod_label_mod_form extends moodleform_mod {
|
||||
$mform->addRule('content', get_string('required'), 'required', null, 'client');
|
||||
$mform->setHelpButton('content', array('questions', 'richtext2'), false, 'editorhelpbutton');
|
||||
|
||||
$features = array('groups'=>false, 'groupings'=>false, 'groupmembersonly'=>true,
|
||||
'outcomes'=>false, 'gradecat'=>false, 'idnumber'=>false);
|
||||
$this->standard_coursemodule_elements($features);
|
||||
$this->standard_coursemodule_elements();
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
// buttons
|
||||
|
@ -717,8 +717,14 @@ function lesson_get_extra_capabilities() {
|
||||
*/
|
||||
function lesson_supports($feature) {
|
||||
switch($feature) {
|
||||
case FEATURE_GROUPS: return false;
|
||||
case FEATURE_GROUPINGS: return false;
|
||||
case FEATURE_GROUPMEMBERSONLY: return true;
|
||||
case FEATURE_MODEDIT_INTRO_EDITOR: return true;
|
||||
case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return true;
|
||||
case FEATURE_GRADE_OUTCOMES: return true;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
@ -281,11 +281,7 @@ class mod_lesson_mod_form extends moodleform_mod {
|
||||
$mform->setDefault('lessondefault', 0);
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
$features = new stdClass;
|
||||
$features->groups = false;
|
||||
$features->groupings = true;
|
||||
$features->groupmembersonly = true;
|
||||
$this->standard_coursemodule_elements($features);
|
||||
$this->standard_coursemodule_elements();
|
||||
//-------------------------------------------------------------------------------
|
||||
// buttons
|
||||
$this->add_action_buttons();
|
||||
|
@ -1252,8 +1252,14 @@ function quiz_num_attempt_summary($quiz, $cm, $returnzero = false, $currentgroup
|
||||
*/
|
||||
function quiz_supports($feature) {
|
||||
switch($feature) {
|
||||
case FEATURE_GRADE_HAS_GRADE: return true;
|
||||
case FEATURE_GROUPS: return true;
|
||||
case FEATURE_GROUPINGS: return true;
|
||||
case FEATURE_GROUPMEMBERSONLY: return true;
|
||||
case FEATURE_MODEDIT_INTRO_EDITOR: return true;
|
||||
case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return true;
|
||||
case FEATURE_GRADE_OUTCOMES: return true;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
@ -317,11 +317,7 @@ class mod_quiz_mod_form extends moodleform_mod {
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
$features = new stdClass;
|
||||
$features->groups = true;
|
||||
$features->groupings = true;
|
||||
$features->groupmembersonly = true;
|
||||
$this->standard_coursemodule_elements($features);
|
||||
$this->standard_coursemodule_elements();
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
// buttons
|
||||
|
@ -761,7 +761,14 @@ class resource_portfolio_caller extends portfolio_module_caller_base {
|
||||
*/
|
||||
function resource_supports($feature) {
|
||||
switch($feature) {
|
||||
case FEATURE_GROUPS: return false;
|
||||
case FEATURE_GROUPINGS: return false;
|
||||
case FEATURE_GROUPMEMBERSONLY: return true;
|
||||
case FEATURE_MODEDIT_INTRO_EDITOR: return true;
|
||||
case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return false;
|
||||
case FEATURE_GRADE_OUTCOMES: return false;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ class mod_resource_mod_form extends moodleform_mod {
|
||||
$mform->addElement('header', 'typedesc', resource_get_name($type));
|
||||
$this->_resinstance->setup_elements($mform);
|
||||
|
||||
$this->standard_coursemodule_elements(array('groups'=>false, 'groupmembersonly'=>true, 'gradecat'=>false));
|
||||
$this->standard_coursemodule_elements();
|
||||
|
||||
$this->add_action_buttons();
|
||||
}
|
||||
|
@ -811,4 +811,21 @@ function scorm_pluginfile($course, $cminfo, $context, $filearea, $args) {
|
||||
send_stored_file($file, $lifetime, 0, false);
|
||||
}
|
||||
|
||||
?>
|
||||
/**
|
||||
* @param string $feature FEATURE_xx constant for requested feature
|
||||
* @return mixed True if module supports feature, null if doesn't know
|
||||
*/
|
||||
function scorm_supports($feature) {
|
||||
switch($feature) {
|
||||
case FEATURE_GROUPS: return false;
|
||||
case FEATURE_GROUPINGS: return false;
|
||||
case FEATURE_GROUPMEMBERSONLY: return true;
|
||||
case FEATURE_MODEDIT_INTRO_EDITOR: return true;
|
||||
case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return true;
|
||||
case FEATURE_GRADE_OUTCOMES: return true;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -231,11 +231,7 @@ class mod_scorm_mod_form extends moodleform_mod {
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
$features = new stdClass;
|
||||
$features->groups = false;
|
||||
$features->groupings = true;
|
||||
$features->groupmembersonly = true;
|
||||
$this->standard_coursemodule_elements($features);
|
||||
$this->standard_coursemodule_elements();
|
||||
//-------------------------------------------------------------------------------
|
||||
// buttons
|
||||
$this->add_action_buttons();
|
||||
|
@ -588,4 +588,20 @@ function survey_get_extra_capabilities() {
|
||||
return array('moodle/site:accessallgroups');
|
||||
}
|
||||
|
||||
?>
|
||||
/**
|
||||
* @param string $feature FEATURE_xx constant for requested feature
|
||||
* @return mixed True if module supports feature, null if doesn't know
|
||||
*/
|
||||
function survey_supports($feature) {
|
||||
switch($feature) {
|
||||
case FEATURE_GROUPS: return true;
|
||||
case FEATURE_GROUPINGS: return true;
|
||||
case FEATURE_GROUPMEMBERSONLY: return true;
|
||||
case FEATURE_MODEDIT_INTRO_EDITOR: return true;
|
||||
case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return true;
|
||||
case FEATURE_GRADE_OUTCOMES: return true;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
@ -37,11 +37,7 @@ class mod_survey_mod_form extends moodleform_mod {
|
||||
$mform->addElement('textarea', 'intro', get_string('customintro', 'survey'), 'wrap="virtual" rows="20" cols="75"');
|
||||
$mform->setType('intro', PARAM_RAW);
|
||||
|
||||
$features = new stdClass;
|
||||
$features->groups = true;
|
||||
$features->groupings = true;
|
||||
$features->groupmembersonly = true;
|
||||
$this->standard_coursemodule_elements($features);
|
||||
$this->standard_coursemodule_elements();
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
// buttons
|
||||
|
@ -12,11 +12,11 @@ required changes in code:
|
||||
* completely rewrite file handling
|
||||
* rewrite backup/restore
|
||||
* rewrite trusstext support - new db table columns needed
|
||||
* migrade all module features from mod_edit.php form to lib.php/modulename_supports() function
|
||||
|
||||
optional - no changes needed in older code:
|
||||
* portfolio support
|
||||
* course completion tracking support
|
||||
* lib.php/xxx_supports() may describe module features and capabilities
|
||||
|
||||
|
||||
|
||||
|
@ -1768,4 +1768,20 @@ function wiki_get_extra_capabilities() {
|
||||
return array('moodle/site:accessallgroups', 'moodle/site:viewfullnames');
|
||||
}
|
||||
|
||||
?>
|
||||
/**
|
||||
* @param string $feature FEATURE_xx constant for requested feature
|
||||
* @return mixed True if module supports feature, null if doesn't know
|
||||
*/
|
||||
function wiki_supports($feature) {
|
||||
switch($feature) {
|
||||
case FEATURE_GROUPS: return true;
|
||||
case FEATURE_GROUPINGS: return true;
|
||||
case FEATURE_GROUPMEMBERSONLY: return true;
|
||||
case FEATURE_MODEDIT_INTRO_EDITOR: return true;
|
||||
case FEATURE_COMPLETION_TRACKS_VIEWS: return true;
|
||||
case FEATURE_GRADE_HAS_GRADE: return false;
|
||||
case FEATURE_GRADE_OUTCOMES: return true;
|
||||
|
||||
default: return null;
|
||||
}
|
||||
}
|
@ -83,11 +83,7 @@ class mod_wiki_mod_form extends moodleform_mod {
|
||||
$mform->setAdvanced('initialcontent');
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
$features = new stdClass;
|
||||
$features->groups = true;
|
||||
$features->groupings = true;
|
||||
$features->groupmembersonly = true;
|
||||
$this->standard_coursemodule_elements($features);
|
||||
$this->standard_coursemodule_elements();
|
||||
//-------------------------------------------------------------------------------
|
||||
// buttons
|
||||
$this->add_action_buttons();
|
||||
|
Loading…
x
Reference in New Issue
Block a user