123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316 |
- <?php
- /**
- * Library of interface functions and constants for module nasatlx from LInE-IME-USP.
- * All the core Moodle functions, neeeded to allow the module to work integrated in Moodle should be placed here.
- * All the nasatlx specific functions, needed to implement all the module logic, should go to locallib.php.
- * This will help to save some memory when
- * Moodle is performing actions across all modules.
- *
- * @author Leônidas O. Brandão
- * @version v 0.1 2019/03/04
- * @package mod_nasatlx
- * @copyright 2014 LInE - http://line.ime.usp.br
- * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
- **/
- defined('MOODLE_INTERNAL') || die();
- /// example constant
- //define('NEWMODULE_ULTIMATE_ANSWER', 42);
- /// Returns the information on whether the module supports a feature
- // @see plugin_supports() in lib/moodlelib.php
- // @param string $feature FEATURE_xx constant for requested feature
- // @return mixed true if the feature is supported, null if unknown
- function nasatlx_supports($feature) {
- switch($feature) {
- case FEATURE_MOD_INTRO: return true;
- case FEATURE_SHOW_DESCRIPTION: return true;
- default: return null;
- }
- }
- /// Saves a new instance of the nasatlx into the database
- // Given an object containing all the necessary data,
- // (defined by the form in mod_form.php) this function
- // will create a new instance and return the id number
- // of the new instance.
- // @param object $nasatlx An object from the form in mod_form.php
- // @param mod_nasatlx_mod_form $mform
- // @return int The id of the newly inserted nasatlx record
- function nasatlx_add_instance(stdClass $nasatlx, mod_nasatlx_mod_form $mform = null) {
- global $DB;
- $nasatlx->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<br/>";
- //echo "lib.php: is_debugging: NO_DEBUG_DISPLAY=" . NO_DEBUG_DISPLAY . ", USER=$USER<br/>";
- if (!NO_DEBUG_DISPLAY) return true; // NO_DEBUG_DISPLAY is object
- //if (!isset($CFG->debugdisplay) && $USER) return true;
- return false;
- }
|