Customising the theme user menu

From MoodleDocs
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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