Modificar ruta de la imagen del usuario en Moodle 2.3

En el desarrollo de nuestra solución integral para el elearning hemos utilizado varias aplicaciones en un mismo entorno, esto ha hecho necesario recojer la imagen del usuario que aparece en Moodle de una dirección distinta a la que tiene el propio sistema, ya que la edición del perfil está en otra aplicación.

Por si alguien más está en la misma tesitura, dejo constancia en este post del archivo que contiene la clase que modifica la ruta de la imagen del usuario, tanto si el usuario ha subido una como si utiliza la imagen por defecto. En este caso en particular, en ambos casos modificaré el código, pues como ya he dicho, nuestro perfil de usuario se encuentra alojado en otra aplicación.

La clase está en la línea 353 (aproximadamente) del archivo outputcomponents.php, situado en http://midominio/lib/

  1. // Did the user upload a picture?
  2. if ($this->user->picture > 0) {
  3. if (!empty($this->user->contextid)) {
  4. $contextid = $this->user->contextid;
  5. } else {
  6. $context = context_user::instance($this->user->id, IGNORE_MISSING);
  7. if (!$context) {
  8. // This must be an incorrectly deleted user, all other users have context.
  9. return $defaulturl;
  10. }
  11. $contextid = $context->id;
  12. }
  13.  
  14. $path = '/';
  15. if (clean_param($page->theme->name, PARAM_THEME) == $page->theme->name) {
  16. // We append the theme name to the file path if we have it so that
  17. // in the circumstance that the profile picture is not available
  18. // when the user actually requests it they still get the profile
  19. // picture for the correct theme.
  20. $path .= $page->theme->name.'/';
  21. }
  22. // Set the image URL to the URL for the uploaded file and return.
  23. $url = moodle_url::make_pluginfile_url($contextid, 'user', 'icon', NULL, $path, $filename);
  24. $url->param('rev', $this->user->picture);
  25. <span style="background-color:#ffff00;">echo "La ruta de la imagen es: ".$url."</span>
  26.  
  27. ";
  28. return <span style="color:#0000ff;">$url</span>;
  29. }

En este caso he añadido un echo para indicar el punto en el que la función devuelve la url mediante la variable $url. Aquí puedes modificar el código para indicarle la nueva ruta.  ;)