Conditional activities API: Difference between revisions
No edit summary |
No edit summary |
||
Line 13: | Line 13: | ||
wipe_conditions() | wipe_conditions() | ||
get_full_information($modinfo=null) | get_full_information($modinfo=null) | ||
is_available(&$information, $grabthelot=false, $userid=0, $modinfo=null) | is_available(&$information, $grabthelot=false, $userid=0, $modinfo=null) | ||
show_availability() | show_availability() | ||
update_cm_from_form($cm, $fromform, $wipefirst=true) | update_cm_from_form($cm, $fromform, $wipefirst=true) | ||
completion_value_used_as_condition($course, $cm) | completion_value_used_as_condition($course, $cm) | ||
</code> | </code> | ||
The basic functionality of these methods can be classified as:- | The basic functionality of these methods can be classified as:- | ||
# Fetching information | # Fetching information related to conditions | ||
# Adding conditional clauses to activities | # Adding conditional clauses to activities | ||
# Deleting conditions attached to activities | # Deleting conditions attached to activities | ||
=== Fetching information | === Fetching information related to conditions === | ||
Following functions are normally used to fetch information regarding conditions associated with activities:- | |||
<code php> | <code php> | ||
get_full_course_module() | get_full_course_module(); | ||
get_full_information($modinfo=null) | get_full_information($modinfo=null); | ||
is_available(&$information, $grabthelot=false, $userid=0, $modinfo=null); | |||
show_availability(); | |||
</code> | </code> | ||
Line 56: | Line 56: | ||
$ci = new condition_info($mod); | $ci = new condition_info($mod); | ||
$fullinfo = $ci->get_full_information(); | $fullinfo = $ci->get_full_information(); | ||
</code> | |||
==== is_available() ==== | |||
This function is used to check if a given course module is currently available or not. A thing worth noting is that this doesn't take "visibility settings" and "viewhiddenactivities" capability into account. That is these settings should be properly checked after the result of is_available(), before dumping any data to the user. | |||
Example:- | |||
<code php> | |||
$ci = new condition_info((object)array('id'=>$cmid),CONDITION_MISSING_EVERYTHING); | |||
$bool = $ci->is_available($text,false,0); | |||
</code> | |||
==== show_availability() ==== | |||
This function is used to check if information regarding availability of the current module should be shown to the user or not. | |||
Example:- | |||
<code php> | |||
$ci = new condition_info((object)array('id'=>$cmid),CONDITION_MISSING_EVERYTHING); | |||
$bool = $ci->show_availability(); | |||
</code> | </code> | ||
=== Deleting conditions attached to activities === | === Deleting conditions attached to activities === |
Revision as of 08:56, 16 January 2012
Overview
Conditional Apis allow you to specify , if to show or hide an activity when the conditions associated with it are met/not met.
Files
The main file containing all important conditional stuff is located at lib/conditionlib.php
Functions
The class condition_info defined in lib/conditionlib.php is the main conditional API in Moodle. Following are some important methods of the above mentioned class.
fill_availability_conditions(&$cm)
get_full_course_module()
add_completion_condition($cmid, $requiredcompletion)
add_grade_condition($gradeitemid, $min, $max, $updateinmemory=false)
wipe_conditions()
get_full_information($modinfo=null)
is_available(&$information, $grabthelot=false, $userid=0, $modinfo=null)
show_availability()
update_cm_from_form($cm, $fromform, $wipefirst=true)
completion_value_used_as_condition($course, $cm)
The basic functionality of these methods can be classified as:-
- Fetching information related to conditions
- Adding conditional clauses to activities
- Deleting conditions attached to activities
Following functions are normally used to fetch information regarding conditions associated with activities:-
get_full_course_module();
get_full_information($modinfo=null);
is_available(&$information, $grabthelot=false, $userid=0, $modinfo=null);
show_availability();
get_full_course_module()
This method can fetches and returns all necessary information as a course module object which are required to determine the availability conditions.
Example:-
$cm->id = $id;
$test = new condition_info($cm,CONDITION_MISSING_EVERYTHING);
$fullcm = $test->get_full_course_module();
get_full_information()
This function returns a string which describes the various conditions in place for the activity in the given context.Some possible outputs can be:-
a) From 13:05 on 14 Oct until 12:10 on 17 Oct (exact, exact)
b) From 14 Oct until 12:11 on 17 Oct (midnight, exact)
c) From 13:05 on 14 Oct until 17 Oct (exact, midnight 18 Oct)
Please refer the inline documentation in the code for detailed explanation of the logic and all possible cases.
Example:-
$ci = new condition_info($mod);
$fullinfo = $ci->get_full_information();
is_available()
This function is used to check if a given course module is currently available or not. A thing worth noting is that this doesn't take "visibility settings" and "viewhiddenactivities" capability into account. That is these settings should be properly checked after the result of is_available(), before dumping any data to the user.
Example:-
$ci = new condition_info((object)array('id'=>$cmid),CONDITION_MISSING_EVERYTHING);
$bool = $ci->is_available($text,false,0);
show_availability()
This function is used to check if information regarding availability of the current module should be shown to the user or not.
Example:-
$ci = new condition_info((object)array('id'=>$cmid),CONDITION_MISSING_EVERYTHING);
$bool = $ci->show_availability();
Deleting conditions attached to activities
we have a simple function wipe_conditions() that can erase all conditions associated with the current activity. consider an example:-
$ci = new condition_info($cm, CONDITION_MISSING_EVERYTHING, false);
$ci->wipe_conditions();