Modifier apparence de base d'un thème - Meilleures pratiques

Re: Modifier apparence de base d'un thème - Meilleures pratiques

par Sébastien Mehr,
Nombre de réponses : 0
Avatar Développeurs Avatar Testeurs

Bonjour,

Dernière évolution du code suite à la proposition d'Erwan :

public function user_menu($user = null, $withlinks = null) {
		
  $usermenu = parent::user_menu($user = null, $withlinks = null);	
// Expression régulière pour isoler la partie entre parenthèses qui nous intéresse $pattern = '/\(.+'. get_string('login') .'.+\)/';

// Si l'expression est détectée, on retourne une valeur modifiée
if (preg_match($pattern, $usermenu)) {

// Récupération du lien de connexion
$loginurl = get_login_url();

// composition du lien de connexion en utilisant la class html_writer
$replacement = html_writer::link($loginurl, get_string('login'));

// remplacement de la chaîne détectée par le lien composé
$html = preg_replace($pattern, $replacement, $usermenu);

return $html;

// Sinon on reprend l’exécution classique de la méthode parent
 } else { return parent::user_menu($user = null, $withlinks = null); } }

L'objectif a été d'être le plus précis possible pour ne pas impacter le comportement par défaut de la méthode user_menu().

L'avantage c'est que du coup, même si le rendu retourné est modifié suite à une mise à jour et que l'expression rationnelle ne fonctionne plus, on revient à l’exécution normale de la méthode parent, sans risquer de retourner une erreur.

@Stéphane : Ta proposition est effectivement plus facile à mettre en œuvre mais on touche directement au code source de Moodle avec tout ce que cela implique.

Seb


Moyenne des évaluations Utile (3)