Global Seitentitel wird nicht übernommen

  • Seitentitel im Browser ist global eingestellt, wird aber nicht übernommen ... was mache ich falsch?

    Über Hilfe wäre ich dankbar ...


    Cache hab ich auch schon gelöscht ...

    ist das ein Fehler des Templates?


    Vielen DANK!

  • Ja, es ist auch nicht die einzige globale Einstellung unter "Menüs" > "Seitenanzeige", die genau betrachtet bereits seit Jahren mal aus Joomla entfernt gehört. Es gab schon mehrere Versuche verschiedener Leute für verschiedene Joomla-Versionen, das irgendwie in den Griff zu bekommen; nicht erst unter Joomla 4. Klappte dann aber nicht und die Versuche endeten alle mit der Erkenntnis, dass diese globalen Einstellungen wohl besser entfernt gehören. Man traut sich nur nicht ;)


    Man muss sie also händisch eintragen pro Menüeintrag oder mit einem Override arbeiten oder, wenn mans kann, mit eigenem Plugin oder so.


    Auf der anderen Seite ist es speziell beim Browser-Title gar nicht so schlau für mehrere, unterschiedliche Seiten den selben zu verwenden. Wenn man auf Suchmaschinenoptimierung wert legt.


    Siehe auch https://github.com/joomla/joomla-cms/issues/34248 und frühere, wo ich aber zu faul zum Suchen bin.

  • Nur nachgereicht, für Spielkinder. So könnte man das erzwingen, wenn auch nicht immer verlässlich auf jeder individuellen Seite, wo z.B. irgendwelche Plugins noch rumfuhrwerken. Und meist sind natürlich noch weitere Weichen nötig.


    In einem Template:

    Code
    $browserTitleGlobal = \Joomla\CMS\Component\ComponentHelper::getParams('com_menus')->get('page_title', '');
    
    $activeMenuTitle = \Joomla\CMS\Factory::getApplication()->getMenu()->getActive()->getParams()->get('page_title', '');
    
    if ($browserTitleGlobal && !$activeMenuTitle)
    {
        $this->setTitle($browserTitleGlobal);
    }

    In einem sonstigen Override oder auch eigenem System-Plugin, z.B. in Methode onBeforeCompileHead():

    Code
    $browserTitleGlobal = \Joomla\CMS\Component\ComponentHelper::getParams('com_menus')->get('page_title', '');
    
    $activeMenuTitle = \Joomla\CMS\Factory::getApplication()->getMenu()->getActive()->getParams()->get('page_title', '');
    
    if ($browserTitleGlobal && !$activeMenuTitle)
    {
        \Joomla\CMS\Factory::getApplication()->getDocument()->setTitle($browserTitleGlobal);
    }

    Sind die ausführlichen Varianten. Meist geht das auch etwas geraffter.