MDL-18910 moving modedit features to modname_supports()
[moodle.git] / mod / label / lib.php
1 <?php  // $Id$
3 /// Library of functions and constants for module label
6 define("LABEL_MAX_NAME_LENGTH", 50);
8 function get_label_name($label) {
9     $textlib = textlib_get_instance();
11     $name = strip_tags(format_string($label->content,true));
12     if ($textlib->strlen($name) > LABEL_MAX_NAME_LENGTH) {
13         $name = $textlib->substr($name, 0, LABEL_MAX_NAME_LENGTH)."...";
14     }
16     if (empty($name)) {
17         // arbitrary name
18         $name = get_string('modulename','label');
19     }
21     return $name;
22 }
24 function label_add_instance($label) {
25     global $DB;
26 /// Given an object containing all the necessary data, 
27 /// (defined by the form in mod_form.php) this function 
28 /// will create a new instance and return the id number 
29 /// of the new instance.
31     $label->name = get_label_name($label);
32     $label->timemodified = time();
34     return $DB->insert_record("label", $label);
35 }
38 function label_update_instance($label) {
39     global $DB;
40 /// Given an object containing all the necessary data, 
41 /// (defined by the form in mod_form.php) this function 
42 /// will update an existing instance with new data.
44     $label->name = get_label_name($label);
45     $label->timemodified = time();
46     $label->id = $label->instance;
48     return $DB->update_record("label", $label);
49 }
52 function label_delete_instance($id) {
53     global $DB;
54 /// Given an ID of an instance of this module, 
55 /// this function will permanently delete the instance 
56 /// and any data that depends on it.  
58     if (! $label = $DB->get_record("label", array("id"=>$id))) {
59         return false;
60     }
62     $result = true;
64     if (! $DB->delete_records("label", array("id"=>$label->id))) {
65         $result = false;
66     }
68     return $result;
69 }
71 function label_get_participants($labelid) {
72 //Returns the users with data in one resource
73 //(NONE, but must exist on EVERY mod !!)
75     return false;
76 }
78 /**
79  * Given a course_module object, this function returns any
80  * "extra" information that may be needed when printing
81  * this activity in a course listing.
82  * See get_array_of_activities() in course/lib.php
83  */
84 function label_get_coursemodule_info($coursemodule) {
85     global $DB;
87     if ($label = $DB->get_record('label', array('id'=>$coursemodule->instance), 'id, content, name')) {
88         if (empty($label->name)) {
89             // label name missing, fix it
90             $label->name = "label{$label->id}";
91             $DB->set_field('label', 'name', $label->name, array('id'=>$label->id));
92         }
93         $info = new object();
94         $info->extra = urlencode($label->content);
95         $info->name = urlencode($label->name);
96         return $info;
97     } else {
98         return null;
99     }
102 function label_get_view_actions() {
103     return array();
106 function label_get_post_actions() {
107     return array();
110 function label_get_types() {
111     $types = array();
113     $type = new object();
114     $type->modclass = MOD_CLASS_RESOURCE;
115     $type->type = "label";
116     $type->typestr = get_string('resourcetypelabel', 'resource');
117     $types[] = $type;
119     return $types;
122 /**
123  * This function is used by the reset_course_userdata function in moodlelib.
124  * @param $data the data submitted from the reset course.
125  * @return array status array
126  */
127 function label_reset_userdata($data) {
128     return array();
131 /**
132  * Returns all other caps used in module
133  */
134 function lable_get_extra_capabilities() {
135     return array('moodle/site:accessallgroups');
138 /**
139  * @param string $feature FEATURE_xx constant for requested feature
140  * @return mixed True if module supports feature, null if doesn't know
141  */
142 function label_supports($feature) {
143     switch($feature) {
144         case FEATURE_IDNUMBER:                return false;
145         case FEATURE_GROUPS:                  return false;
146         case FEATURE_GROUPINGS:               return false;
147         case FEATURE_GROUPMEMBERSONLY:        return true;
148         case FEATURE_MODEDIT_INTRO_EDITOR:    return false;
149         case FEATURE_COMPLETION_TRACKS_VIEWS: return false;
150         case FEATURE_GRADE_HAS_GRADE:         return false;
151         case FEATURE_GRADE_OUTCOMES:          return false;
153         default: return null;
154     }
157 ?>