Eine kleine Änderung im Joomla!-Kern führt bei einigen dazu, dass nach dem Login nicht der gewählte Menüeintrag aufgerufen, sondern zur Profilseite umgeleitet wird.

Vor mehreren Wochen ist mir aufgefallen, dass bei einigen Websites die Umleitung bzw. Weiterleitung nach dem Login nicht mehr funktioniert. Statt auf den ausgewählten Menüeintrag, leitet die Loginseite bzw. das Login-Modul nicht auf den definierten Menüpunkt, sondern immer auf die Profilseite.

Zuerst habe ich es auf einen Bug geschoben, da es bei Google vereinzelte Treffer gab - jedoch waren bzw. sind diese allesamt ohne Lösung. Doch jetzt bin ich endlich dahinter gekommen, woran das liegt.

Dieser Umleitungsfehler nach dem Login resultiert aus einem Template-Override des Standard-Login. Seit Joomla! 3.7.1 wurde hier nämlich ein bisschen was verändert und demnach müssen auch die Overrides an der entsprechenden Stelle modifiziert werden. Das Login-Formular beinhaltet immer ein verstecktes Feld (hidden field) mit einer in Base64 verschlüsselten "return-url". Um also dieses kleine Problemchen zu beheben einfach wie folgt vorgehen:

  1. Öffnen der Original-Datei
    Diese finden wir hier: /components/com_users/views/login/tmpl/default_login.php

  2. Hier suchen wir den richten Code (bestehend aus zwei Zeilen)
    <?php $return = $this->form->getValue('return', '', $this->params->get('login_redirect_url', $this->params->get('login_redirect_menuitem'))); ?>
    <input type="hidden" name="return" value="<?php echo base64_encode($return); ?>"/>
  3. Diesen Code ersetzen wir nun im Override unseres Templates
    Den finden wir hier: /templates/[TEMPLATE NAME]/html/com_users/login/default_login.php
    In meinem Fall sah die betreffende Zeile so aus:
    <input type="hidden" name="return" value="<?php echo base64_encode($this->params->get('login_redirect_url', $this->form->getValue('return'))); ?>"/>

 

Beim Einfügen sollte aber auf eventuelle Veränderungen geachtet werden, beispielsweise wenn (eher unwahrscheinlich) das versteckte Feld zusätzliche CSS Klassen hat. Wie gesagt, eher unwahrscheinlich, da es ja ein verstecktes Feld ist. Aber man kann ja nie wissen.

Weiterhin viel Spaß mit Joomla! und viel Erfolg wenn's jetzt wieder mit dem Login klappt!