# Redirect nach Login

**URL:** <https://forum.shopware.com/t/redirect-nach-login/3107>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [14. Juni 2011 um 18:22 UTC](https://forum.shopware.com/t/redirect-nach-login/3107 "2011-06-14T18:22:26Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Markus](https://avatars.discourse-cdn.com/v4/letter/m/b782af/32.png) [@Markus](https://forum.shopware.com/u/Markus)\
**Post date:** [14. Juni 2011 um 18:22 UTC](https://forum.shopware.com/t/redirect-nach-login/3107/1 "2011-06-14T18:22:26Z")

</div>

Hi … es geht mal wieder umd die Version 3.5.x … nach erfolgtem Login über das AJAX-Formular gelangt man automatisch zur Account-Seite … ich würde aber gerne den Redirect auf die Index-Seite des Shops legen wollen. Ich habe da jetzt nirgends eine Stelle gefunden wo ich das bewerkstelligen könnte. Für Tipps wäre ich dankbar. 🕶 Markus

---

<div class="post-metadata">

**Author:** ![hunecker](https://avatars.discourse-cdn.com/v4/letter/h/b9e5f3/32.png) [@hunecker](https://forum.shopware.com/u/hunecker)\
**Post date:** [15. Juni 2011 um 08:56 UTC](https://forum.shopware.com/t/redirect-nach-login/3107/2 "2011-06-15T08:56:28Z")

</div>

Hi, ich versuche etwas ähnliches zu bewerkstelligen. Den Login kann ich erfolgreich mit dem Event Shopware\_Modules\_Admin\_Login\_Successful oder einen Hook vom Type TypeAfter auf die sLogin der sAdmin abfangen. Leider bekomme ich aber kein View-Objekt aus meinen $args um diesem ein anderes Template zuzuweisen. Hat jemand eine Idee?

---

<div class="post-metadata">

**Author:** ![Markus](https://avatars.discourse-cdn.com/v4/letter/m/b782af/32.png) [@Markus](https://forum.shopware.com/u/Markus)\
**Post date:** [16. Juni 2011 um 14:21 UTC](https://forum.shopware.com/t/redirect-nach-login/3107/3 "2011-06-16T14:21:42Z")

</div>

Hi … weiss da niemand was bzw. kann mir helfen? schöne Grüße Markus

---

<div class="post-metadata">

**Author:** ![ecomai](https://avatars.discourse-cdn.com/v4/letter/e/8e8cbc/32.png) [@ecomai](https://forum.shopware.com/u/ecomai)\
**Post date:** [21. Juni 2011 um 09:55 UTC](https://forum.shopware.com/t/redirect-nach-login/3107/4 "2011-06-21T09:55:13Z")

</div>

Im Template /frontend/account/ajax\_login.tpl kannst du über die Action der Form die Zielseite nach dem Login bestimmen. Ich habe da z.B. mittels {url} festgelegt, dass man auf der jeweils aktuellen Seite bleiben soll: [code]

[/code]

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [21. Juni 2011 um 09:59 UTC](https://forum.shopware.com/t/redirect-nach-login/3107/5 "2011-06-21T09:59:15Z")

</div>

Da müsstet ihr euch sonst mal den Account-Controller anschauen, dort gibt es ja die Methoden ajaxLoginAction und loginAction - da könnte man sonst über einen Hook oder Event dran und dann die Umleitung durchführen.

---

<div class="post-metadata">

**Author:** ![Rene.Gerritsen](https://avatars.discourse-cdn.com/v4/letter/r/7993a0/32.png) [@Rene.Gerritsen](https://forum.shopware.com/u/Rene.Gerritsen)\
**Post date:** [27. Juni 2011 um 13:01 UTC](https://forum.shopware.com/t/redirect-nach-login/3107/6 "2011-06-27T13:01:12Z")

</div>

Mein kleines Plugin hierzu: /engine/Shopware/Plugins/Frontend/Frontend/LoginToMainPageRedirect/Bootstrap.php [code]\<?php class Shopware\_Plugins\_Frontend\_LoginToMainPageRedirect\_Bootstrap extends Shopware\_Components\_Plugin\_Bootstrap  
{  
public function install()  
{

```
   $hook = $this->createHook( 'Shopware\_Controllers\_Frontend\_Account', 'loginAction', 'onLoginAction', Enlight\_Hook\_HookHandler::TypeBefore, 0 ); $this-\>subscribeHook($hook); $this-\>subscribeHook($hook); $event = $this-\>createEvent( 'Enlight\_Controller\_Action\_PostDispatch', 'onPostDispatch' ); $this-\>subscribeEvent($event); return true; } static function onPostDispatch(Enlight\_Event\_EventArgs $args) { $view = $args-\>getSubject()-\>View(); $view-\>extendsTemplate(dirname(\_\_FILE\_\_).'/jQueryOverloadInlineHeader.tpl'); } static function onLoginAction(Enlight\_Hook\_HookArgs $args){ $subject = $args-\>getSubject(); $subject-\>Request()-\>setParam('sTarget','index'); } public function getInfo() { return array( 'version' =\> '0.0.1', 'autor' =\> 'Rene Gerritsen (rene.gerritsen@me.com)', 'copyright' =\> 'Copyright 2011 Rene Gerritsen', 'label' =\> $this-\>getName(), 'source' =\> $this-\>getSource(), 'description' =\> 'Nach dem Login gleich auf die Hauptseite kommen bzw. im Ajax Kontext auf der Aktuellen Seite zu bleiben.', 'license' =\> 'BSD', 'support' =\> 'http://www.shopware.de/', 'link' =\> 'http://www.shopware.de/' ); } } [/code] [b]/engine/Shopware/Plugins/Frontend/Frontend/LoginToMainPageRedirect/jQueryOverloadInlineHeader.tpl[/b] [code] {extends file="../\_default/frontend/index/header.tpl"} {block name="frontend\_index\_header\_javascript\_jquery" append} <script type="text/javascript">
        (function ($) {

        	//Default settings
            var config = {
                dataType: 'text',
                container: '.modal',
                headline: '',
                viewport: '',
                register: '',
                checkout: '',
                target: ''
            };

            //Extends jQuery's function namespace
        	$.fn.checkout = function (settings) {
        	    if (settings) $.extend(config, settings);

        	    $(config.container + ' form').live('submit', function (event) {
        	    	if(!$(this).hasClass('new_customer_form')) {
        	    		event.preventDefault();
        	    		$.checkout.loginUser(this);
        	    	}
        	    });
        	    $(config.container + ' .existing_customer input[type^=submit]').live('click', function(event) {
        	    	event.preventDefault();
        	    	var form = $(config.container + ' form[name^=existing_customer]');
        	    	$.checkout.loginUser(form);
        	    });

        	    this.live('click', function (event) {
        	        event.preventDefault();
        	        $.checkout.checkUser(this.href);
        	    });

        	    return this
        	};

            //Extends jQuery's namespace
            $.checkout = {};

            //Checks the user
            $.checkout.checkUser = function (target,event) {
            	config.target = target;    	
                $.ajax({
                    'url': config.viewport,
                    'dataType': 'jsonp',
                    'success': function (result) {
                        if (result.length) {
                        	var width = 530;
                        	var position = 'fixed';

                        	if($.browser.msie && parseInt($.browser.version) == 6) {
                        		var width = 530;
                        		var position = 'absolute';
                        	}

                            $.modal(result, config.headline, {
                                'position': position,
                                'textClass': '',
                                'textContainer': '<div>',
                                'width': width+'px'
                            }).find('.close').remove();

                        // user is logged in                
                        } else {
        					window.location.href = target;
                        }
                    }
                });
            };

            //Checks if the user is logged in
            $.checkout.loginUser = function (form) {
            	config.register = $.controller.register;
                $.ajax({
                    'url': config.viewport,
                    'dataType': 'jsonp',
                    'data': $(form).serialize(),
                    'success': function (result) {
                        if(result.length) {
                         $(config.container).empty().html(result);
                        } else {
                            //HIER IST DIE ÄNDERUNG
                            window.location.reload();
                        }
                    }
                });
            };
        })(jQuery);
</script>{/block} [/code] Für meinen Anwendungsfall (Kunde muss eingeloggt sein um den Warenkorb nutzen zu können) reicht es. Könnt das ja als Basis für eure Plugins nutzen. mfg René
```
