MDL-36754 output: Support token pluginfiles in userpic
authorAndrew Nicols <andrew@nicols.co.uk>
Sun, 3 Jun 2018 13:15:35 +0000 (21:15 +0800)
committerAndrew Nicols <andrew@nicols.co.uk>
Mon, 13 Aug 2018 23:08:29 +0000 (07:08 +0800)
lib/outputcomponents.php
lib/outputrenderers.php
lib/upgrade.txt

index db773a6..dc90aea 100644 (file)
@@ -206,6 +206,11 @@ class user_picture implements renderable {
      */
     public $includefullname = false;
 
+    /**
+     * @var bool Include user authentication token.
+     */
+    public $includetoken = false;
+
     /**
      * User picture constructor.
      *
@@ -403,7 +408,8 @@ class user_picture implements renderable {
                 $path .= $page->theme->name.'/';
             }
             // Set the image URL to the URL for the uploaded file and return.
-            $url = moodle_url::make_pluginfile_url($contextid, 'user', 'icon', NULL, $path, $filename);
+            $url = moodle_url::make_pluginfile_url(
+                    $contextid, 'user', 'icon', null, $path, $filename, false, $this->includetoken);
             $url->param('rev', $this->user->picture);
             return $url;
         }
index 600e4b3..10b589d 100644 (file)
@@ -2503,6 +2503,7 @@ class core_renderer extends renderer_base {
      *     - class = image class attribute (default 'userpicture')
      *     - visibletoscreenreaders=true (whether to be visible to screen readers)
      *     - includefullname=false (whether to include the user's full name together with the user picture)
+     *     - includetoken = false
      * @return string HTML fragment
      */
     public function user_picture(stdClass $user, array $options = null) {
index a8aebdf..e9a5c7e 100644 (file)
@@ -9,6 +9,8 @@ information provided here is intended especially for developers.
 * The following picture functions have been updated to support use of the new token-based file serving:
     - print_group_picture
     - get_group_picture_url
+* The `user_picture` class has a new public `$includetoken` property which can be set to make use of the new token-based
+  file serving.
 * Custom AJAX handlers for the form autocomplete fields can now optionally return string in their processResults()
   callback. If a string is returned, it is displayed instead of the list of suggested items. This can be used, for
   example, to inform the user that there are too many items matching the current search criteria.