Merge branch 'wip-mdl-30667-m23' of git://github.com/rajeshtaneja/moodle into MOODLE_...
[moodle.git] / lib / moodlelib.php
index 1d10587..ce65499 100644 (file)
@@ -5948,9 +5948,11 @@ function get_user_max_upload_file_size($context, $sitebytes=0, $coursebytes=0, $
  * @param int $sizebytes Set maximum size
  * @param int $coursebytes Current course $course->maxbytes (in bytes)
  * @param int $modulebytes Current module ->maxbytes (in bytes)
+ * @param int|array $custombytes custom upload size/s which will be added to list,
+ *        Only value/s smaller then maxsize will be added to list.
  * @return array
  */
-function get_max_upload_sizes($sitebytes=0, $coursebytes=0, $modulebytes=0) {
+function get_max_upload_sizes($sitebytes = 0, $coursebytes = 0, $modulebytes = 0, $custombytes = null) {
     global $CFG;
 
     if (!$maxsize = get_max_upload_file_size($sitebytes, $coursebytes, $modulebytes)) {
@@ -5962,6 +5964,14 @@ function get_max_upload_sizes($sitebytes=0, $coursebytes=0, $modulebytes=0) {
     $sizelist = array(10240, 51200, 102400, 512000, 1048576, 2097152,
                       5242880, 10485760, 20971520, 52428800, 104857600);
 
+    // If custombytes is given then add it to the list.
+    if (!is_null($custombytes)) {
+        if (is_number($custombytes)) {
+            $custombytes = array((int)$custombytes);
+        }
+        $sizelist = array_unique(array_merge($sizelist, $custombytes));
+    }
+
     // Allow maxbytes to be selected if it falls outside the above boundaries
     if (isset($CFG->maxbytes) && !in_array(get_real_size($CFG->maxbytes), $sizelist)) {
         // note: get_real_size() is used in order to prevent problems with invalid values