Neulich ist es mir während einer Template-Anpassung tatsächlich passiert. Ich habe mich von meinem eigenen Shop-System ausgesperrt und konnte mich nicht mehr in den Admin-Bereich einloggen.
Das Problem war folgendes: In dem erstellten Shop soll auf Kundenkonten komplett verzichtet werden. Aus diesem Grund habe ich zum einen im Backend unter “Kundendetails” -> “Art der Kontoerstellung” die Auswahl auf “guest” gestellt und zum anderen im Template in der index.html auf die {$box_LOGIN} verzichtet.
Das ist natürlich fatal, da man über die login.php nur noch ein Gastkonto anlegen kann und es sonst keine andere möglichkeit mehr gibt die E-Mail-Adresse und das zugehörige Passwort des Administrators einzugeben.
Die Lösung ist dann (Gott-Sei-Dank) doch recht einfach. Zuerst dubliziert man die login.php und benennt dann die Kopie “adminlogin.php”. In Zeile 111 findet man folgende Zeile:
$main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/login.html');
Diese Zeile ändert man wie folgt:
$main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/adminlogin.html');
Dadurch bewirkt man, dass beim Aufruf der adminlogin.php eine zuvor erstellte und umbenannte Kopie der TEMPLATE_ORDNER/module/login.html (die Kopie benennt man dann sinnigerweise adminlogin.html) als Template aufgerufen wird.
In dieser adminlogin.html kann man nun einfach die {IF} Abfrage auskommentieren oder das ganze noch etwas “aufhübschen”:
{config_load file="$language/lang_$language.conf" section="login"}
{#heading_login#}
{if $info_message!=''}
{/if}
Admin-Login
{$FORM_ACTION}
Hier können Sie sich nun in den Administrationsbereich einloggen
{#text_email#}
{$INPUT_MAIL}
{#text_password#}
{$INPUT_PASSWORD}
{$BUTTON_LOGIN}
{#text_lost_password#}
{$FORM_END}
So kann man sich dann weiterhin in den Admin-Bereich einloggen ohne eine Login-Box anzeigen lassen zu müssen.
