timecreated = time();
# You may have to add extra stuff in here #
return $DB->insert_record('nasatlx', $nasatlx);
}
/// Updates an instance of the nasatlx in the database
// Given an object containing all the necessary data,
// (defined by the form in mod_form.php) this function
// will update an existing instance with new data.
// @param object $nasatlx An object from the form in mod_form.php
// @param mod_nasatlx_mod_form $mform
// @return boolean Success/Fail
function nasatlx_update_instance(stdClass $nasatlx, mod_nasatlx_mod_form $mform = null) {
global $DB;
$nasatlx->timemodified = time();
$nasatlx->id = $nasatlx->instance;
# You may have to add extra stuff in here #
return $DB->update_record('nasatlx', $nasatlx);
}
/// Removes an instance of the nasatlx from the database
// Given an ID of an instance of this module,
// this function will permanently delete the instance
// and any data that depends on it.
// @param int $id Id of the module instance
// @return boolean Success/Failure
function nasatlx_delete_instance($id) {
global $DB;
if (! $nasatlx = $DB->get_record('nasatlx', array('id' => $id))) {
return false;
}
# Delete any dependent records here #
$DB->delete_records('nasatlx', array('id' => $nasatlx->id));
return true;
}
/// Returns a small object with summary information about what a
// user has done with a given particular instance of this module
// Used for user activity reports.
// $return->time = the time they did it
// $return->info = a short text description
// @return stdClass|null
function nasatlx_user_outline($course, $user, $mod, $nasatlx) {
$return = new stdClass();
$return->time = 0;
$return->info = '';
return $return;
}
/// Prints a detailed representation of what a user has done with
// a given particular instance of this module, for user activity reports.
// @param stdClass $course the current course record
// @param stdClass $user the record of the user we are generating report for
// @param cm_info $mod course module info
// @param stdClass $nasatlx the module instance record
// @return void, is supposed to echp directly
function nasatlx_user_complete($course, $user, $mod, $nasatlx) {
}
/// Given a course and a time, this module should find recent activity
// that has occurred in nasatlx activities and print it out.
// Return true if there was output, or false is there was none.
// @return boolean
function nasatlx_print_recent_activity($course, $viewfullnames, $timestart) {
return false; // True if anything was printed, otherwise false
}
/// Prepares the recent activity data
// This callback function is supposed to populate the passed array with
// custom activity records. These records are then rendered into HTML via
// {@link nasatlx_print_recent_mod_activity() }.
// @param array $activities sequentially indexed array of objects with the 'cmid' property
// @param int $index the index in the $activities to use for the next record
// @param int $timestart append activity since this time
// @param int $courseid the id of the course we produce the report for
// @param int $cmid course module id
// @param int $userid check for a particular user's activity only, defaults to 0 (all users)
// @param int $groupid check for a particular group's activity only, defaults to 0 (all groups)
// @return void adds items into $activities and increases $index
function nasatlx_get_recent_mod_activity(&$activities, &$index, $timestart, $courseid, $cmid, $userid=0, $groupid=0) {
}
/// Prints single activity item prepared by {@see nasatlx_get_recent_mod_activity() }
// @return void
function nasatlx_print_recent_mod_activity($activity, $courseid, $detail, $modnames, $viewfullnames) {
}
/// Function to be run periodically according to the moodle cron
// This function searches for things that need to be done, such
// as sending out mail, toggling flags etc ...
// @return boolean
// @todo Finish documenting this function
function nasatlx_cron () {
return true;
}
/// Returns all other caps used in the module
// @example return array('moodle/site:accessallgroups');
// @return array
function nasatlx_get_extra_capabilities() {
return array();
}
////////////////////////////////////////////////////////////////////////////////
// Gradebook API //
////////////////////////////////////////////////////////////////////////////////
/// Is a given scale used by the instance of nasatlx?
// This function returns if a scale is being used by one nasatlx
// if it has support for grading and scales. Commented code should be
// modified if necessary. See forum, glossary or journal modules
// as reference.
// @param int $nasatlxid ID of an instance of this module
// @return bool true if the scale is used by the given nasatlx instance
function nasatlx_scale_used($nasatlxid, $scaleid) {
global $DB;
/// @example
if ($scaleid and $DB->record_exists('nasatlx', array('id' => $nasatlxid, 'grade' => -$scaleid))) {
return true;
}
else {
return false;
}
}
/// Checks if scale is being used by any instance of nasatlx.
// This is used to find out if scale used anywhere.
// @param $scaleid int
// @return boolean true if the scale is used by any nasatlx instance
function nasatlx_scale_used_anywhere($scaleid) {
global $DB;
/// @example
if ($scaleid and $DB->record_exists('nasatlx', array('grade' => -$scaleid))) {
return true;
}
else {
return false;
}
}
/// Creates or updates grade item for the give nasatlx instance
// Needed by grade_update_mod_grades() in lib/gradelib.php
// @param stdClass $nasatlx instance object with extra cmidnumber and modname property
// @param mixed optional array/object of grade(s); 'reset' means reset grades in gradebook
// @return void
function nasatlx_grade_item_update(stdClass $nasatlx, $grades=null) {
global $CFG;
require_once($CFG->libdir.'/gradelib.php');
/// @example
$item = array();
$item['itemname'] = clean_param($nasatlx->name, PARAM_NOTAGS);
$item['gradetype'] = GRADE_TYPE_VALUE;
$item['grademax'] = $nasatlx->grade;
$item['grademin'] = 0;
grade_update('mod/nasatlx', $nasatlx->course, 'mod', 'nasatlx', $nasatlx->id, 0, null, $item);
}
/// Update nasatlx grades in the gradebook
// Needed by grade_update_mod_grades() in lib/gradelib.php
// @param stdClass $nasatlx instance object with extra cmidnumber and modname property
// @param int $userid update grade of specific user only, 0 means all participants
// @return void
function nasatlx_update_grades(stdClass $nasatlx, $userid = 0) {
global $CFG, $DB;
require_once($CFG->libdir.'/gradelib.php');
/// @example
$grades = array(); // populate array of grade objects indexed by userid
grade_update('mod/nasatlx', $nasatlx->course, 'mod', 'nasatlx', $nasatlx->id, 0, $grades);
}
////////////////////////////////////////////////////////////////////////////////
// File API //
////////////////////////////////////////////////////////////////////////////////
/// Returns the lists of all browsable file areas within the given module context
// The file area 'intro' for the activity introduction field is added automatically
// by {@link file_browser::get_file_info_context_module() }
// @param stdClass $course
// @param stdClass $cm
// @param stdClass $context
// @return array of [(string)filearea] => (string)description
function nasatlx_get_file_areas($course, $cm, $context) {
return array();
}
/// File browsing support for nasatlx file areas
// @package mod_nasatlx
// @category files
// @param file_browser $browser
// @param array $areas
// @param stdClass $course
// @param stdClass $cm
// @param stdClass $context
// @param string $filearea
// @param int $itemid
// @param string $filepath
// @param string $filename
// @return file_info instance or null if not found
function nasatlx_get_file_info($browser, $areas, $course, $cm, $context, $filearea, $itemid, $filepath, $filename) {
return null;
}
/// Serves the files from the nasatlx file areas
// @package mod_nasatlx
// @category files
// @param stdClass $course the course object
// @param stdClass $cm the course module object
// @param stdClass $context the nasatlx's context
// @param string $filearea the name of the file area
// @param array $args extra arguments (itemid, path)
// @param bool $forcedownload whether or not force download
// @param array $options additional options affecting the file serving
function nasatlx_pluginfile ($course, $cm, $context, $filearea, array $args, $forcedownload, array $options=array()) {
global $DB, $CFG;
if ($context->contextlevel != CONTEXT_MODULE) {
send_file_not_found();
}
require_login($course, true, $cm);
send_file_not_found();
}
////////////////////////////////////////////////////////////////////////////////
// Navigation API //
////////////////////////////////////////////////////////////////////////////////
/// Extends the global navigation tree by adding nasatlx nodes if there is a relevant content
// This can be called by an AJAX request so do not rely on $PAGE as it might not be set up properly.
// @param navigation_node $navref An object representing the navigation tree node of the nasatlx module instance
// @param stdClass $course
// @param stdClass $module
// @param cm_info $cm
function nasatlx_extend_navigation(navigation_node $navref, stdclass $course, stdclass $module, cm_info $cm) {
}
// Extends the settings navigation with the nasatlx settings
// This function is called when the context for the page is a nasatlx module. This is not called by AJAX
// so it is safe to rely on the $PAGE.
// @param settings_navigation $settingsnav {@link settings_navigation }
// @param navigation_node $nasatlxnode {@link navigation_node }
function nasatlx_extend_settings_navigation(settings_navigation $settingsnav, navigation_node $nasatlxnode=null) {
}
// Used in: settings.php
function is_debugging ($level = null, $debugdisplay = null) {
global $CFG, $USER;
// $CFG->debug = (int)$level;
// $CFG->debugdeveloper = (($CFG->debug & DEBUG_DEVELOPER) === DEBUG_DEVELOPER);
// echo "lib.php: is_debugging: debugdisplay=" . $CFG->debugdisplay . ", USER=$USER
";
//echo "lib.php: is_debugging: NO_DEBUG_DISPLAY=" . NO_DEBUG_DISPLAY . ", USER=$USER
";
if (!NO_DEBUG_DISPLAY) return true; // NO_DEBUG_DISPLAY is object
//if (!isset($CFG->debugdisplay) && $USER) return true;
return false;
}