123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380 |
- <?php
- /**
- * Library of interface functions and constants for module nasatlx
- *
- * 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.
- *
- * @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);
- ////////////////////////////////////////////////////////////////////////////////
- // Moodle core API //
- ////////////////////////////////////////////////////////////////////////////////
- /**
- * 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) {
- }
|