# Pfüren ob User angemeldet ist - im Template

**URL:** <https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155>\
**Category:** Programmierung\
**Created:** [9. März 2016 um 16:58 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155 "2016-03-09T16:58:20Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mogly](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@Mogly](https://forum.shopware.com/u/Mogly)\
**Post date:** [9. März 2016 um 16:58 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/1 "2016-03-09T16:58:20Z")

</div>

Hi,

&nbsp;

gibt es eine Möglichkeit im Template zu prüfen ob ein User eingeloggt ist?

a la

```
 {if $sUserData.firstname != "" && $sUserData.lastname != ""}

```

LG

---

<div class="post-metadata">

**Author:** ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)\
**Post date:** [9. März 2016 um 17:48 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/2 "2016-03-09T17:48:41Z")

</div>

Hi,

funktioniert “isset” nicht?&nbsp;

Allgemein solltest du bedenken, dass wegen des HTTP-Caches nicht auf jeder Seite sinnvoll auf den Nutzernamen geprüft werden kann - eigentlich nur im Account-Bereich und im Warenkorb und natürlich individuellen Seiten. Viele andere Seiten werden im Standard ja gecacht.

Daniel

---

<div class="post-metadata">

**Author:** ![Mogly](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@Mogly](https://forum.shopware.com/u/Mogly)\
**Post date:** [9. März 2016 um 17:58 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/3 "2016-03-09T17:58:29Z")

</div>

also ich möchte oben in der top-navigation, je nachdem ob ein user angemeldet ist, verschiedene optionen anzeigen.  
Hier fliegt ja ein Widget-Bsp. umher, doch die top-navigation ist ja auf jeder seite und ich kann ja nicht jede seite vom Cache ausschießen 😕

Gibt es hierfür einen Lösungsansatz?

---

<div class="post-metadata">

**Author:** ![Creatixx](https://avatars.discourse-cdn.com/v4/letter/c/c67d28/32.png) [@Creatixx](https://forum.shopware.com/u/Creatixx)\
**Post date:** [9. März 2016 um 18:31 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/4 "2016-03-09T18:31:34Z")

</div>

```
 {if $sUserLoggedIn} müsste funktionieren?!

```

Gruß

---

<div class="post-metadata">

**Author:** ![Mogly](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@Mogly](https://forum.shopware.com/u/Mogly)\
**Post date:** [9. März 2016 um 22:07 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/5 "2016-03-09T22:07:35Z")

</div>

hi,

nein, das mit

```
 $sUserLoggedIn

```

funktioniert nicht 😕

---

<div class="post-metadata">

**Author:** ![Joscha\_Schultze](https://avatars.discourse-cdn.com/v4/letter/j/dbc845/32.png) [@Joscha\_Schultze](https://forum.shopware.com/u/Joscha_Schultze)\
**Post date:** [10. März 2016 um 07:53 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/6 "2016-03-10T07:53:31Z")

</div>

Du musst sowas innerhalb eines Widgets machen und ggf. dafür ein eigenes Plugin schreiben, denn alles was du im Template machst, wird gecached und dann ist der erste User dafür verantwortlich ob allen “du bist eingeloggt” oder allen “du bist nicht eingeloggt” angezeigt wird.

---

<div class="post-metadata">

**Author:** ![Mogly](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@Mogly](https://forum.shopware.com/u/Mogly)\
**Post date:** [14. März 2016 um 09:55 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/7 "2016-03-14T09:55:36Z")

</div>

Hey,

also ich habe es jetzt so gemacht wie in dem ExcludeTemplate-Widget und dem GlobalVariables-Tutorial beschrieben. Funtkioniert auch ganz gut, nur komme ich grad nicht ganz klar mit einer simplen IF-Abfrage im Template 😃

Ich möchte also abfragen welcher Kundengruppe der eingeloggte User angehört. Die getCustomerGroupAction() ist da und wirft auch den richtigen Wert an der richtigen Stelle:  
Ein: \_ **{action module=widgets controller=GlobalVars action=getCustomerGroup}** \_ gibt mir ein **_EK_** aus,  
wogegen ein: **_{if {action module=widgets controller=GlobalVars action=getCustomerGroup} == „EK“}_** immer falsch ist.

Also irgendwas läuft da komplett daneben… ich weiss schon warum ich den Smarty-Dreck hasse.  
&nbsp;

**_{assign var=„cGroup“ value={action module=widgets controller=GlobalVars action=getCustomerGroup}}_**  
in **_{$cGroup}_** steht jetzt **_EK_** aber **_{if $cGroup == „EK“}&nbsp;_** ist nicht erfüllt!

**_{$userGroup = settype ($cGroup, ‚string‘)}&nbsp;_**  
in **_{$userGroup }_** steht jetzt **_1_** … (!?) &nbsp;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

Was mache ich falsch?

---

<div class="post-metadata">

**Author:** ![Joscha\_Schultze](https://avatars.discourse-cdn.com/v4/letter/j/dbc845/32.png) [@Joscha\_Schultze](https://forum.shopware.com/u/Joscha_Schultze)\
**Post date:** [14. März 2016 um 15:32 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/8 "2016-03-14T15:32:23Z")

</div>

Das geht so nicht. Selbst wenn du das, was dir das Widget zurück gibt, in einer Bedingung einfangen und auswerten könntest, wäre die Prüfung innerhalb der gecachten Stelle und würde dann bei jedem User gleich sein. Alles was du pro Usergruppe machen willst, muss INNERHALB deines Widgets passieren, da dies nicht gecached wird. Du musst also mit Hilfe deines Widgets auch die Ausgabe so umgestalten, wie du es willst. Oder aber du deaktivierst jeglichen Cache deines Shops, dann kannst du es theoretisch auch ohne Widget tun. Aber das würde ich niemals machen.

---

<div class="post-metadata">

**Author:** ![Mogly](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@Mogly](https://forum.shopware.com/u/Mogly)\
**Post date:** [15. März 2016 um 09:31 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/9 "2016-03-15T09:31:27Z")

</div>

Hi,

also das kann ich nicht bestätigen.  
Habe es jetzt auf mehreren Rechnern getestet. Auf zweien mit zwei verschiedenen eingeloggten Accounts, auf einem anderen ohne eingeloggten User. Funktioniert wunderbar.  
Die Lösung war, dass ich sie Rückgabe vorher im widget casten musste.  
&nbsp;

---

<div class="post-metadata">

**Author:** ![steinsoftware](https://avatars.discourse-cdn.com/v4/letter/s/b487fb/32.png) [@steinsoftware](https://forum.shopware.com/u/steinsoftware)\
**Post date:** [15. März 2016 um 12:27 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/10 "2016-03-15T12:27:32Z")

</div>

Joscha Schultze hat recht 😉

---

<div class="post-metadata">

**Author:** ![Mogly](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@Mogly](https://forum.shopware.com/u/Mogly)\
**Post date:** [15. März 2016 um 13:40 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/11 "2016-03-15T13:40:16Z")

</div>

aber wie kann es sein, dass ich trotz eingeschaltetem cache die daten bekomme?

---

<div class="post-metadata">

**Author:** ![steinsoftware](https://avatars.discourse-cdn.com/v4/letter/s/b487fb/32.png) [@steinsoftware](https://forum.shopware.com/u/steinsoftware)\
**Post date:** [16. März 2016 um 07:55 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/12 "2016-03-16T07:55:46Z")

</div>

OK… wie sieht dann deine Rückgabe aus?

denn:

> **_{assign var=„cGroup“ value={action module=widgets controller=GlobalVars action=getCustomerGroup}}_**  
> in **_{$cGroup}_** steht jetzt **_EK_** aber **_{if $cGroup == „EK“}&nbsp;_** ist nicht erfüllt!

das geht nicht weil smarty der variablen immer die Funktion(!) und nicht das Ergebnis der Funktion zuweist. Total dämlich bin ich auch schon drüber gestolpert.

&nbsp;

---

<div class="post-metadata">

**Author:** ![Joscha\_Schultze](https://avatars.discourse-cdn.com/v4/letter/j/dbc845/32.png) [@Joscha\_Schultze](https://forum.shopware.com/u/Joscha_Schultze)\
**Post date:** [16. März 2016 um 08:30 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/13 "2016-03-16T08:30:03Z")

</div>

Sowas würde vielleicht mit {capture} gehen aber wie schon geschrieben ist es unerheblich, da die Ausgabe gecached werden würde (da nicht innerhalb eines&nbsp;Widgets).&nbsp;

---

<div class="post-metadata">

**Author:** ![Mogly](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@Mogly](https://forum.shopware.com/u/Mogly)\
**Post date:** [16. März 2016 um 12:53 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/14 "2016-03-16T12:53:14Z")

</div>

> [@steinsoftware schrieb:](https://forum.shopware.com/profile/17116/steinsoftware "steinsoftware")
> 
> OK… wie sieht dann deine Rückgabe aus?
> 
> denn:
> 
> > **_{assign var=„cGroup“ value={action module=widgets controller=GlobalVars action=getCustomerGroup}}_**  
> > in **_{$cGroup}_** steht jetzt **_EK_** aber **_{if $cGroup == „EK“}&nbsp;_** ist nicht erfüllt!
> 
> das geht nicht weil smarty der variablen immer die Funktion(!) und nicht das Ergebnis der Funktion zuweist. Total dämlich bin ich auch schon drüber gestolpert.
> 
> &nbsp;

Die Rückgabe ist halt **EK** oder **H**  
&nbsp;

```
$userData = Shopware()->Modules()->Admin()->sGetUserData();
-----------
$uGroup = (string) self::$userData['additional']['user']['customergroup'];                
$args->getSubject()->View()->assign("sUserGroup", $uGroup);

```

es funktioniret und ich hab den Cache an. Wo ihr das behauptet werd ich natürlich stutzig ob ich noch bei klarem Verstand bin 😕

---

<div class="post-metadata">

**Author:** ![Joscha\_Schultze](https://avatars.discourse-cdn.com/v4/letter/j/dbc845/32.png) [@Joscha\_Schultze](https://forum.shopware.com/u/Joscha_Schultze)\
**Post date:** [16. März 2016 um 15:44 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/15 "2016-03-16T15:44:53Z")

</div>

> es funktioniret und ich hab den Cache an. Wo ihr das behauptet werd ich natürlich stutzig ob ich noch bei klarem Verstand bin ![:/](https://dub1.discourse-cdn.com/flex013/resources/emoji/confused.png ":/")

Hast du auch wirklich den httpd Cache an?

---

<div class="post-metadata">

**Author:** ![Mogly](https://avatars.discourse-cdn.com/v4/letter/m/b3f665/32.png) [@Mogly](https://forum.shopware.com/u/Mogly)\
**Post date:** [17. März 2016 um 07:17 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/16 "2016-03-17T07:17:57Z")

</div>

also die einstellung ist gesetzt

> **[Schaut euch mal dieses Bild an!](http://www.directupload.net/file/d/4296/zbjful6c_jpg.htm)**
>
> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadddd.jpg

unter themes-einstellungen ist die option cache deaktivieren **nicht aktiv** und der shop läuft im produktiv-modus

habe ich etwa noch was übersehen?

---

<div class="post-metadata">

**Author:** ![Joscha\_Schultze](https://avatars.discourse-cdn.com/v4/letter/j/dbc845/32.png) [@Joscha\_Schultze](https://forum.shopware.com/u/Joscha_Schultze)\
**Post date:** [18. März 2016 um 19:57 UTC](https://forum.shopware.com/t/pfuren-ob-user-angemeldet-ist-im-template/35155/17 "2016-03-18T19:57:01Z")

</div>

Entweder ist die Stelle vom Cache sowieso ausgenommen, wo du das machen willst oder du machst das, was du machen willst in einem anderen Widget oder dein Cache arbeitet nicht vernünftig. Denn das was du vorhast, würde komplett der Cache-Logik von Shopware wiedersprechen. Ich habe das selbe übrigens auch mal probiert und da bestätigte sich auch bei mehreren Tests, dass das so nicht geht.
