Customising the theme user menu

Jump to: navigation, search

Moodle 3.0


As of 3.0, the user menu can be customised via an array of options, when it is called via
user_get_user_navigation_info()
. Initially, only the size of the user's avatar picture can be changed (from the default of 35px square), using the
avatarsize
key with a new size.
user_get_user_navigation_info($user, $this->page, array('avatarsize' => 85));
Unfortunately, to change the one line that calls
user_get_user_navigation_info()
, the whole of
core_renderer::user_menu()
must be overridden:

In /themes/<yourtheme>/renderers.lib...

public function user_menu($user = null, $withlinks = null, $loginlogo = null) {
 
    // Lots of code copied from lib/outputrenderers.php...
 
    // Get some navigation opts.
    $opts = user_get_user_navigation_info($user, $this->page, array('avatarsize' => 85));
 
    $avatarclasses = "avatars";
    $avatarcontents = html_writer::span($opts->metadata['useravatar'], 'avatar current');
    $usertextcontents = $opts->metadata['userfullname'];
 
    // Lots more code copied from lib/outputrenderers.php...
 
}

NB: The image size in the browser may actually be set via CSS, as the pixel size of the image is rounded up to one of a few hard-coded sizes - see MDL-50420.

See also