mirror of
https://github.com/moodle/moodle.git
synced 2025-06-06 08:08:44 +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$
|
<?php //$Id$
|
||||||
require_once ($CFG->libdir.'/formslib.php');
|
require_once ($CFG->libdir.'/formslib.php');
|
||||||
if(!empty($CFG->enablecompletion)) {
|
if (!empty($CFG->enablecompletion) or !empty($CFG->enableavailability)) {
|
||||||
require_once($CFG->libdir.'/completionlib.php');
|
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
|
* 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 mixed
|
||||||
*/
|
*/
|
||||||
var $_instance;
|
protected $_instance;
|
||||||
/**
|
/**
|
||||||
* Section of course that module instance will be put in or is in.
|
* 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).
|
* This is always the section number itself (column 'section' from 'course_sections' table).
|
||||||
*
|
*
|
||||||
* @var mixed
|
* @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
|
* Coursemodle record of the module that is being updated. Will be null if this is an 'add' form and not an
|
||||||
* update one.
|
* update one.
|
||||||
*
|
*
|
||||||
* @var mixed
|
* @var mixed
|
||||||
*/
|
*/
|
||||||
var $_cm;
|
protected $_cm;
|
||||||
/**
|
/**
|
||||||
* List of modform features
|
* List of modform features
|
||||||
*/
|
*/
|
||||||
var $_features;
|
protected $_features;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array Custom completion-rule elements, if enabled
|
* @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) {
|
function moodleform_mod($instance, $section, $cm) {
|
||||||
$this->_instance = $instance;
|
$this->_instance = $instance;
|
||||||
$this->_section = $section;
|
$this->_section = $section;
|
||||||
$this->_cm = $cm;
|
$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');
|
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.
|
* 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.
|
* 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;
|
global $COURSE, $CFG, $DB;
|
||||||
$mform =& $this->_form;
|
$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;
|
$outcomesused = false;
|
||||||
if (!empty($CFG->enableoutcomes) and $this->_features->outcomes) {
|
if ($this->_features->outcomes) {
|
||||||
if ($outcomes = grade_outcome::fetch_all_available($COURSE->id)) {
|
if ($outcomes = grade_outcome::fetch_all_available($COURSE->id)) {
|
||||||
$outcomesused = true;
|
$outcomesused = true;
|
||||||
$mform->addElement('header', 'modoutcomes', get_string('outcomes', 'grades'));
|
$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'));
|
$mform->setHelpButton('availableuntil', array('conditiondates', get_string('help_conditiondates', 'condition'), 'condition'));
|
||||||
|
|
||||||
// Conditions based on grades
|
// Conditions based on grades
|
||||||
$gradeoptions=array();
|
$gradeoptions = array();
|
||||||
$items=grade_item::fetch_all(array('courseid'=>$COURSE->id));
|
$items = grade_item::fetch_all(array('courseid'=>$COURSE->id));
|
||||||
$items=$items ? $items : array();
|
$items = $items ? $items : array();
|
||||||
foreach($items as $id=>$item) {
|
foreach($items as $id=>$item) {
|
||||||
// Do not include grades for current item
|
// Do not include grades for current item
|
||||||
if (!empty($this->_cm) && $this->_cm->instance == $item->iteminstance
|
if (!empty($this->_cm) && $this->_cm->instance == $item->iteminstance
|
||||||
@ -411,12 +378,12 @@ class moodleform_mod extends moodleform {
|
|||||||
&& $item->itemtype == 'mod') {
|
&& $item->itemtype == 'mod') {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$gradeoptions[$id]=$item->get_name();
|
$gradeoptions[$id] = $item->get_name();
|
||||||
}
|
}
|
||||||
asort($gradeoptions);
|
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('select','conditiongradeitemid','',$gradeoptions);
|
||||||
$grouparray[] =& $mform->createElement('static', '', '',' '.get_string('grade_atleast','condition').' ');
|
$grouparray[] =& $mform->createElement('static', '', '',' '.get_string('grade_atleast','condition').' ');
|
||||||
$grouparray[] =& $mform->createElement('text', 'conditiongrademin','',array('size'=>3));
|
$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
|
// Get version with condition info and store it so we don't ask
|
||||||
// twice
|
// twice
|
||||||
if(!empty($this->_cm)) {
|
if(!empty($this->_cm)) {
|
||||||
$ci = new condition_info($this->_cm,CONDITION_MISSING_EXTRATABLE);
|
$ci = new condition_info($this->_cm, CONDITION_MISSING_EXTRATABLE);
|
||||||
$this->_cm=$ci->get_full_course_module();
|
$this->_cm = $ci->get_full_course_module();
|
||||||
$count=count($this->_cm->conditionsgrade)+1;
|
$count = count($this->_cm->conditionsgrade)+1;
|
||||||
} else {
|
} else {
|
||||||
$count=1;
|
$count = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->repeat_elements(array($group),$count,array(),'conditiongraderepeats','conditiongradeadds',2,
|
$this->repeat_elements(array($group), $count, array(), 'conditiongraderepeats', 'conditiongradeadds', 2,
|
||||||
get_string('addgrades','condition'),true);
|
get_string('addgrades', 'condition'), true);
|
||||||
$mform->setHelpButton('conditiongradegroup[0]', array('gradecondition', get_string('help_gradecondition', 'condition'), 'condition'));
|
$mform->setHelpButton('conditiongradegroup[0]', array('gradecondition', get_string('help_gradecondition', 'condition'), 'condition'));
|
||||||
|
|
||||||
// Conditions based on completion
|
// Conditions based on completion
|
||||||
$completion = new completion_info($COURSE);
|
$completion = new completion_info($COURSE);
|
||||||
if ($completion->is_enabled()) {
|
if ($completion->is_enabled()) {
|
||||||
$completionoptions=array();
|
$completionoptions = array();
|
||||||
$modinfo=get_fast_modinfo($COURSE);
|
$modinfo = get_fast_modinfo($COURSE);
|
||||||
foreach($modinfo->cms as $id=>$cm) {
|
foreach($modinfo->cms as $id=>$cm) {
|
||||||
// Add each course-module if it:
|
// Add each course-module if it:
|
||||||
// (a) has completion turned on
|
// (a) has completion turned on
|
||||||
@ -456,7 +423,7 @@ class moodleform_mod extends moodleform {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
asort($completionoptions);
|
asort($completionoptions);
|
||||||
$completionoptions=array(0=>get_string('none','condition'))+$completionoptions;
|
$completionoptions = array(0=>get_string('none','condition'))+$completionoptions;
|
||||||
|
|
||||||
$completionvalues=array(
|
$completionvalues=array(
|
||||||
COMPLETION_COMPLETE=>get_string('completion_complete','condition'),
|
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_PASS=>get_string('completion_pass','condition'),
|
||||||
COMPLETION_COMPLETE_FAIL=>get_string('completion_fail','condition'));
|
COMPLETION_COMPLETE_FAIL=>get_string('completion_fail','condition'));
|
||||||
|
|
||||||
$grouparray=array();
|
$grouparray = array();
|
||||||
$grouparray[] =& $mform->createElement('select','conditionsourcecmid','',$completionoptions);
|
$grouparray[] =& $mform->createElement('select','conditionsourcecmid','',$completionoptions);
|
||||||
$grouparray[] =& $mform->createElement('select','conditionrequiredcompletion','',$completionvalues);
|
$grouparray[] =& $mform->createElement('select','conditionrequiredcompletion','',$completionvalues);
|
||||||
$group = $mform->createElement('group','conditioncompletiongroup',
|
$group = $mform->createElement('group','conditioncompletiongroup',
|
||||||
get_string('completioncondition', 'condition'),$grouparray);
|
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(),
|
$this->repeat_elements(array($group),$count,array(),
|
||||||
'conditioncompletionrepeats','conditioncompletionadds',2,
|
'conditioncompletionrepeats','conditioncompletionadds',2,
|
||||||
get_string('addcompletions','condition'),true);
|
get_string('addcompletions','condition'),true);
|
||||||
|
@ -300,11 +300,27 @@ define ('PASSWORD_NONALPHANUM', '.,;:!?_-+/*@#&$');
|
|||||||
|
|
||||||
/** True if module can provide a grade */
|
/** True if module can provide a grade */
|
||||||
define('FEATURE_GRADE_HAS_GRADE', 'grade_has_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 */
|
/** True if module has code to track whether somebody viewed it */
|
||||||
define('FEATURE_COMPLETION_TRACKS_VIEWS', 'completion_tracks_views');
|
define('FEATURE_COMPLETION_TRACKS_VIEWS', 'completion_tracks_views');
|
||||||
/** True if module has custom completion rules */
|
/** True if module has custom completion rules */
|
||||||
define('FEATURE_COMPLETION_HAS_RULES', 'completion_has_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 ////////////////////////////////////////////////////
|
/// PARAMETER HANDLING ////////////////////////////////////////////////////
|
||||||
|
@ -3238,9 +3238,14 @@ class assignment_portfolio_caller extends portfolio_module_caller_base {
|
|||||||
*/
|
*/
|
||||||
function assignment_supports($feature) {
|
function assignment_supports($feature) {
|
||||||
switch($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_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;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
@ -60,16 +60,10 @@ class mod_assignment_mod_form extends moodleform_mod {
|
|||||||
$mform->addElement('header', 'typedesc', get_string('type'.$type,'assignment'));
|
$mform->addElement('header', 'typedesc', get_string('type'.$type,'assignment'));
|
||||||
$assignmentinstance->setup_elements($mform);
|
$assignmentinstance->setup_elements($mform);
|
||||||
|
|
||||||
$features = new stdClass;
|
$this->standard_coursemodule_elements();
|
||||||
$features->groups = true;
|
|
||||||
$features->groupings = true;
|
|
||||||
$features->groupmembersonly = true;
|
|
||||||
$this->standard_coursemodule_elements($features);
|
|
||||||
|
|
||||||
$this->add_action_buttons();
|
$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'));
|
$mform->addElement('selectyesno', 'studentlogs', get_string('studentseereports', 'chat'));
|
||||||
|
|
||||||
$features = new stdClass;
|
$this->standard_coursemodule_elements();
|
||||||
$features->groups = true;
|
|
||||||
$features->groupings = true;
|
|
||||||
$features->groupmembersonly = true;
|
|
||||||
$this->standard_coursemodule_elements($features);
|
|
||||||
|
|
||||||
$this->add_action_buttons();
|
$this->add_action_buttons();
|
||||||
}
|
}
|
||||||
|
@ -762,7 +762,14 @@ function choice_get_extra_capabilities() {
|
|||||||
*/
|
*/
|
||||||
function choice_supports($feature) {
|
function choice_supports($feature) {
|
||||||
switch($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_TRACKS_VIEWS: return true;
|
||||||
|
case FEATURE_GRADE_HAS_GRADE: return false;
|
||||||
|
case FEATURE_GRADE_OUTCOMES: return false;
|
||||||
|
|
||||||
default: return null;
|
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->standard_coursemodule_elements($features);
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
$this->add_action_buttons();
|
$this->add_action_buttons();
|
||||||
|
@ -2325,10 +2325,16 @@ function data_get_extra_capabilities() {
|
|||||||
*/
|
*/
|
||||||
function data_supports($feature) {
|
function data_supports($feature) {
|
||||||
switch($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_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;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
function data_export_csv($export, $delimiter_name, $dataname, $count, $return=false) {
|
function data_export_csv($export, $delimiter_name, $dataname, $count, $return=false) {
|
||||||
global $CFG;
|
global $CFG;
|
||||||
|
@ -62,7 +62,7 @@ class mod_data_mod_form extends moodleform_mod {
|
|||||||
$mform->disabledIf('scale', 'assessed');
|
$mform->disabledIf('scale', 'assessed');
|
||||||
|
|
||||||
|
|
||||||
$this->standard_coursemodule_elements(array('groups'=>true, 'groupings'=>true, 'groupmembersonly'=>true));
|
$this->standard_coursemodule_elements();
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
// buttons
|
// buttons
|
||||||
|
@ -35,7 +35,14 @@ if(!isset($SESSION->feedback) OR !is_object($SESSION->feedback)) {
|
|||||||
*/
|
*/
|
||||||
function feedback_supports($feature) {
|
function feedback_supports($feature) {
|
||||||
switch($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_TRACKS_VIEWS: return true;
|
||||||
|
case FEATURE_GRADE_HAS_GRADE: return false;
|
||||||
|
case FEATURE_GRADE_OUTCOMES: return false;
|
||||||
|
|
||||||
default: return null;
|
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->addElement('htmleditor', 'page_after_submit', get_string("page_after_submit", "feedback"), array('rows' => 20));
|
||||||
$mform->setType('page_after_submit', PARAM_RAW);
|
$mform->setType('page_after_submit', PARAM_RAW);
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
$features = new stdClass;
|
$this->standard_coursemodule_elements();
|
||||||
$features->groups = true;
|
|
||||||
$features->groupings = true;
|
|
||||||
$features->groupmembersonly = true;
|
|
||||||
$features->gradecat = false;
|
|
||||||
$features->idnumber = false;
|
|
||||||
$this->standard_coursemodule_elements($features);
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
// buttons
|
// buttons
|
||||||
$this->add_action_buttons();
|
$this->add_action_buttons();
|
||||||
|
@ -237,8 +237,15 @@ function forum_delete_instance($id) {
|
|||||||
*/
|
*/
|
||||||
function forum_supports($feature) {
|
function forum_supports($feature) {
|
||||||
switch($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_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;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -141,11 +141,7 @@ class mod_forum_mod_form extends moodleform_mod {
|
|||||||
$mform->disabledIf('warnafter', 'blockperiod', 'eq', 0);
|
$mform->disabledIf('warnafter', 'blockperiod', 'eq', 0);
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
$features = new stdClass;
|
$this->standard_coursemodule_elements();
|
||||||
$features->groups = true;
|
|
||||||
$features->groupings = true;
|
|
||||||
$features->groupmembersonly = true;
|
|
||||||
$this->standard_coursemodule_elements($features);
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
// buttons
|
// buttons
|
||||||
$this->add_action_buttons();
|
$this->add_action_buttons();
|
||||||
|
@ -2274,8 +2274,14 @@ function glossary_get_extra_capabilities() {
|
|||||||
*/
|
*/
|
||||||
function glossary_supports($feature) {
|
function glossary_supports($feature) {
|
||||||
switch($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_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;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -147,7 +147,7 @@ class mod_glossary_mod_form extends moodleform_mod {
|
|||||||
$mform->disabledIf('assesstimefinish', 'ratingtime');
|
$mform->disabledIf('assesstimefinish', 'ratingtime');
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
$this->standard_coursemodule_elements(array('groups'=>false, 'groupmembersonly'=>true));
|
$this->standard_coursemodule_elements();
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
// buttons
|
// buttons
|
||||||
|
@ -135,4 +135,23 @@ function lable_get_extra_capabilities() {
|
|||||||
return array('moodle/site:accessallgroups');
|
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->addRule('content', get_string('required'), 'required', null, 'client');
|
||||||
$mform->setHelpButton('content', array('questions', 'richtext2'), false, 'editorhelpbutton');
|
$mform->setHelpButton('content', array('questions', 'richtext2'), false, 'editorhelpbutton');
|
||||||
|
|
||||||
$features = array('groups'=>false, 'groupings'=>false, 'groupmembersonly'=>true,
|
$this->standard_coursemodule_elements();
|
||||||
'outcomes'=>false, 'gradecat'=>false, 'idnumber'=>false);
|
|
||||||
$this->standard_coursemodule_elements($features);
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
// buttons
|
// buttons
|
||||||
|
@ -717,8 +717,14 @@ function lesson_get_extra_capabilities() {
|
|||||||
*/
|
*/
|
||||||
function lesson_supports($feature) {
|
function lesson_supports($feature) {
|
||||||
switch($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_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;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -281,11 +281,7 @@ class mod_lesson_mod_form extends moodleform_mod {
|
|||||||
$mform->setDefault('lessondefault', 0);
|
$mform->setDefault('lessondefault', 0);
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
$features = new stdClass;
|
$this->standard_coursemodule_elements();
|
||||||
$features->groups = false;
|
|
||||||
$features->groupings = true;
|
|
||||||
$features->groupmembersonly = true;
|
|
||||||
$this->standard_coursemodule_elements($features);
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
// buttons
|
// buttons
|
||||||
$this->add_action_buttons();
|
$this->add_action_buttons();
|
||||||
|
@ -1252,8 +1252,14 @@ function quiz_num_attempt_summary($quiz, $cm, $returnzero = false, $currentgroup
|
|||||||
*/
|
*/
|
||||||
function quiz_supports($feature) {
|
function quiz_supports($feature) {
|
||||||
switch($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_COMPLETION_TRACKS_VIEWS: return true;
|
||||||
|
case FEATURE_GRADE_HAS_GRADE: return true;
|
||||||
|
case FEATURE_GRADE_OUTCOMES: return true;
|
||||||
|
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -317,11 +317,7 @@ class mod_quiz_mod_form extends moodleform_mod {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
$features = new stdClass;
|
$this->standard_coursemodule_elements();
|
||||||
$features->groups = true;
|
|
||||||
$features->groupings = true;
|
|
||||||
$features->groupmembersonly = true;
|
|
||||||
$this->standard_coursemodule_elements($features);
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
// buttons
|
// buttons
|
||||||
|
@ -761,7 +761,14 @@ class resource_portfolio_caller extends portfolio_module_caller_base {
|
|||||||
*/
|
*/
|
||||||
function resource_supports($feature) {
|
function resource_supports($feature) {
|
||||||
switch($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_COMPLETION_TRACKS_VIEWS: return true;
|
||||||
|
case FEATURE_GRADE_HAS_GRADE: return false;
|
||||||
|
case FEATURE_GRADE_OUTCOMES: return false;
|
||||||
|
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ class mod_resource_mod_form extends moodleform_mod {
|
|||||||
$mform->addElement('header', 'typedesc', resource_get_name($type));
|
$mform->addElement('header', 'typedesc', resource_get_name($type));
|
||||||
$this->_resinstance->setup_elements($mform);
|
$this->_resinstance->setup_elements($mform);
|
||||||
|
|
||||||
$this->standard_coursemodule_elements(array('groups'=>false, 'groupmembersonly'=>true, 'gradecat'=>false));
|
$this->standard_coursemodule_elements();
|
||||||
|
|
||||||
$this->add_action_buttons();
|
$this->add_action_buttons();
|
||||||
}
|
}
|
||||||
|
@ -811,4 +811,21 @@ function scorm_pluginfile($course, $cminfo, $context, $filearea, $args) {
|
|||||||
send_stored_file($file, $lifetime, 0, false);
|
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;
|
$this->standard_coursemodule_elements();
|
||||||
$features->groups = false;
|
|
||||||
$features->groupings = true;
|
|
||||||
$features->groupmembersonly = true;
|
|
||||||
$this->standard_coursemodule_elements($features);
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
// buttons
|
// buttons
|
||||||
$this->add_action_buttons();
|
$this->add_action_buttons();
|
||||||
|
@ -588,4 +588,20 @@ function survey_get_extra_capabilities() {
|
|||||||
return array('moodle/site:accessallgroups');
|
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->addElement('textarea', 'intro', get_string('customintro', 'survey'), 'wrap="virtual" rows="20" cols="75"');
|
||||||
$mform->setType('intro', PARAM_RAW);
|
$mform->setType('intro', PARAM_RAW);
|
||||||
|
|
||||||
$features = new stdClass;
|
$this->standard_coursemodule_elements();
|
||||||
$features->groups = true;
|
|
||||||
$features->groupings = true;
|
|
||||||
$features->groupmembersonly = true;
|
|
||||||
$this->standard_coursemodule_elements($features);
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
// buttons
|
// buttons
|
||||||
|
@ -12,11 +12,11 @@ required changes in code:
|
|||||||
* completely rewrite file handling
|
* completely rewrite file handling
|
||||||
* rewrite backup/restore
|
* rewrite backup/restore
|
||||||
* rewrite trusstext support - new db table columns needed
|
* 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:
|
optional - no changes needed in older code:
|
||||||
* portfolio support
|
* portfolio support
|
||||||
* course completion tracking 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');
|
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');
|
$mform->setAdvanced('initialcontent');
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
$features = new stdClass;
|
$this->standard_coursemodule_elements();
|
||||||
$features->groups = true;
|
|
||||||
$features->groupings = true;
|
|
||||||
$features->groupmembersonly = true;
|
|
||||||
$this->standard_coursemodule_elements($features);
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
// buttons
|
// buttons
|
||||||
$this->add_action_buttons();
|
$this->add_action_buttons();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user