Merge branch 'wip-MDL-61746-master' of https://github.com/RohithSrk/moodle
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Wed, 4 Apr 2018 22:42:11 +0000 (00:42 +0200)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Wed, 4 Apr 2018 22:42:11 +0000 (00:42 +0200)
1  2 
lib/moodlelib.php

diff --combined lib/moodlelib.php
@@@ -115,8 -115,8 +115,8 @@@ define('PARAM_CAPABILITY',   'capabilit
  
  /**
   * PARAM_CLEANHTML - cleans submitted HTML code. Note that you almost never want
-  * to use this. The normal mode of operation is to use PARAM_RAW when recieving
-  * the input (required/optional_param or formslib) and then sanitse the HTML
+  * to use this. The normal mode of operation is to use PARAM_RAW when receiving
+  * the input (required/optional_param or formslib) and then sanitise the HTML
   * using format_text on output. This is for the rare cases when you want to
   * sanitise the HTML on input. This cleaning may also fix xhtml strictness.
   */
@@@ -442,7 -442,7 +442,7 @@@ define('FEATURE_USES_QUESTIONS', 'usesq
  /**
   * Maximum filename char size
   */
 -define('MAX_FILENAME_SIZE', 90);
 +define('MAX_FILENAME_SIZE', 100);
  
  /** Unspecified module archetype */
  define('MOD_ARCHETYPE_OTHER', 0);
@@@ -991,6 -991,21 +991,6 @@@ function clean_param($param, $type) 
              if ($param === '.' || $param === '..') {
                  $param = '';
              }
 -            // Extract a part of the filename if it's char size exceeds MAX_FILENAME_SIZE.
 -            // If the filename is too long, the file cannot be created on the filesystem due to exceeding max byte size.
 -            // Limiting the filename to a certain size (considering multibyte characters) will prevent this.
 -            if (core_text::strlen($param) > MAX_FILENAME_SIZE) {
 -                // Exclude extension if present in filename.
 -                $mimetypes = get_mimetypes_array();
 -                $extension = pathinfo($param, PATHINFO_EXTENSION);
 -                if ($extension && !empty($mimetypes[$extension])) {
 -                    $basename = pathinfo($param, PATHINFO_FILENAME);
 -                    $param = core_text::substr($basename, 0, MAX_FILENAME_SIZE);
 -                    $param .= '.' . $extension;
 -                } else {
 -                    $param = core_text::substr($param, 0, MAX_FILENAME_SIZE);
 -                }
 -            }
              return $param;
  
          case PARAM_PATH:
@@@ -4056,6 -4071,9 +4056,6 @@@ function delete_user(stdClass $user) 
      // Delete all grades - backup is kept in grade_grades_history table.
      grade_user_delete($user->id);
  
 -    // Move unread messages from this user to read.
 -    message_move_userfrom_unread2read($user->id);
 -
      // TODO: remove from cohorts using standard API here.
  
      // Remove user tags.
@@@ -6798,6 -6816,7 +6798,6 @@@ function clean_filename($string) 
      return clean_param($string, PARAM_FILE);
  }
  
 -
  // STRING TRANSLATION.
  
  /**
@@@ -8242,32 -8261,6 +8242,32 @@@ function shorten_text($text, $ideal=30
      return $truncate;
  }
  
 +/**
 + * Shortens a given filename by removing characters positioned after the ideal string length.
 + * When the filename is too long, the file cannot be created on the filesystem due to exceeding max byte size.
 + * Limiting the filename to a certain size (considering multibyte characters) will prevent this.
 + *
 + * @param string $filename file name
 + * @param int $length ideal string length
 + * @return string $shortened shortened file name
 + */
 +function shorten_filename($filename, $length = MAX_FILENAME_SIZE) {
 +    $shortened = $filename;
 +    // Extract a part of the filename if it's char size exceeds the ideal string length.
 +    if (core_text::strlen($filename) > $length) {
 +        // Exclude extension if present in filename.
 +        $mimetypes = get_mimetypes_array();
 +        $extension = pathinfo($filename, PATHINFO_EXTENSION);
 +        if ($extension && !empty($mimetypes[$extension])) {
 +            $basename = pathinfo($filename, PATHINFO_FILENAME);
 +            $shortened = core_text::substr($basename, 0, $length);
 +            $shortened .= '.' . $extension;
 +        } else {
 +            $shortened = core_text::substr($filename, 0, $length);
 +        }
 +    }
 +    return $shortened;
 +}
  
  /**
   * Given dates in seconds, how many weeks is the date from startdate