Titel in Kopfzeile von Kursbereichen ändern

Titel in Kopfzeile von Kursbereichen ändern

von Georg Wiesinger -
Anzahl Antworten: 4

Hallo zusammen,

beim Betrachten von Kursbereichen bzw. Kursunterbereichen wird in der Kopfzeile standardmäßig der Name der Website angezeigt. Ich würde nun gerne stattdessen den tatsächlichen Namen des jeweiligen Kursbereiches anzeigen lassen, was meiner Meinung nach viel passender wäre.

Hier der relevante HMTL- Quellcode:

<div class="page-context-header">
<div class="page-header-headings">
<h1>Name der Website</h1>
</div>
</div>

In boost/classes/output/core_renderer.php habe ich die verantwortliche Funktion full_header gefunden, wo obige Struktur aufgebaut wird:

public function full_header() {
   global $PAGE;
   $html = html_writer::start_tag('header', array('id' => 'page-header', 'class' => 'row'));
   $html .= html_writer::start_div('col-xs-12 p-a-1');
   $html .= html_writer::start_div('card');
   $html .= html_writer::start_div('card-block');
   $html .= html_writer::div($this->context_header_settings_menu(), 'pull-xs-right context-header-settings-menu');
   $html .= html_writer::start_div('pull-xs-left');
   $html .= $this->context_header();
   $html .= html_writer::end_div();
   ...
}

Sowie die Funktion context_header, aus der der Name der Website kommt:

public function context_header($headerinfo = null, $headinglevel = 1) {
   global $SITE;
   if ($this->should_display_main_logo($headinglevel)) {
      $sitename = format_string($SITE->fullname, true, array('context' => context_course::instance(SITEID)));
      return html_writer::div(html_writer::empty_tag('img', [
         'src' => $this->get_logo_url(null, 150), 'alt' => $sitename]), 'logo');
    }
    return parent::context_header($headerinfo, $headinglevel);
}

Wie müsste ich das Boost Theme abändern, um auf Kursbereichs- bzw. Kursunterbereichsseiten immer den entsprechenden Namen und nicht den Websitennamen angezeigt zu bekommen?

Moodle 3.3.1+, Boost-Theme, frische unveränderte Standard-Installation


Dankbar für jeden Tipp,

Georg

Mittelwert:  -
Als Antwort auf Georg Wiesinger

Re: Titel in Kopfzeile von Kursbereichen ändern

von Ralf Hilgenstock -
Nutzerbild von Besonders aktive Moodler Nutzerbild von Deutsche Moodle Übersetzer Nutzerbild von Entwickler Nutzerbild von Moodle Partner Nutzerbild von Translators

Hallo Georg


ich bin da nicht ganz tief eingestiegen.  Auf den ersten Blick zerstörst du damit die barrierefreie Systemkonstruktion. Dabei ist die <h1>-Ebene der Weg zum ersten Level des Systems.  Wenn du hier an einer Stelle etwas modifizierst wirst du auch an anderen Stellen vorr. Probleme bekommen.

Ralf

Als Antwort auf Ralf Hilgenstock

Re: Titel in Kopfzeile von Kursbereichen ändern

von Georg Wiesinger -

Hallo Ralf,

ich habe die gewünschte Darstellung bereits via Javascript für bestimmte Kursbereichsseiten umgesetzt, funktioniert prima, allerdings dachte ich mir, dass man dies vielleicht schon direkt im Theme selbst berücksichtigen könnte, um sich eben den Umweg mit JS zu sparen! Ich weiß allerdings noch nicht, wo genau im Code anzusetzen wäre!

Moodle zeigt in Kursen den jeweiligen Kurstitel im Header an, bei Kursbereichsseiten wäre es doch auch ganz nett, anstatt dem Websitenamen den entsprechenden Kursbereichsnamen im Header zu sehen..

Als Antwort auf Georg Wiesinger

Re: Titel in Kopfzeile von Kursbereichen ändern

von Andreas Grabs -
Nutzerbild von Besonders aktive Moodler Nutzerbild von Entwickler

Hallo Georg,

du musst in der Datei "course/index.php" ca. Zeile 65 den Text von

$PAGE->set_heading($site->fullname);

in

if (!empty($category)) {
    $PAGE->set_heading($category->name);
} else {
   $PAGE->set_heading($site->fullname);
}

ändern.

Aber bedenke, dass Änderungen am Core irgendwann zu Problemen bei Updates/Upgrades führen.

Viele Grüße
Andreas

Als Antwort auf Andreas Grabs

Re: Titel in Kopfzeile von Kursbereichen ändern

von Georg Wiesinger -

Guten Morgen Andreas,

vielen Dank für die tolle Hilfestellung! Es funktioniert bestens! lächelnd Ich weiß, Änderungen am Core sind immer mit Vorsicht zu genießen, daher dokumentiere ich alles akribisch!

Es wäre mir natürlich am liebsten, wenn man in Moodle eine Option schaffen würde, um diese Darstellung per se zu ermöglichen!

Beste Grüße
Georg