# Plugins Userlogin Prüfen

**URL:** <https://forum.shopware.com/t/plugins-userlogin-prufen/14576>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [23. Juli 2013 um 16:53 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576 "2013-07-23T16:53:57Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![mattes80](https://avatars.discourse-cdn.com/v4/letter/m/a3d4f5/32.png) [@mattes80](https://forum.shopware.com/u/mattes80)\
**Post date:** [23. Juli 2013 um 16:53 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/1 "2013-07-23T16:53:57Z")

</div>

Hallo Ich beschäftige mich grad mit Shopware und hab mir die Labs schon angeschaut Ich bin grad dabei dieses Plugins nachzumachen. [http://wiki.shopware.de/Getting-Started … 6\_866.html](http://wiki.shopware.de/Getting-Started%5C_detail%5C_966%5C_866.html) Jetzt will ich es erweitern und zwar will ich das diese slogans nur für Registierte User angezeigt wird Jetzt ist die Frage wo macht man die Abfrage rein in tpl datei oder in Bootstrap.php ich würde es gerne in Bootstrap.php reinmachen Wie kann man hier die Abfrage machen ob der User angemeldet ist? gruß Mattes

---

<div class="post-metadata">

**Author:** ![kotoradeluxe](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@kotoradeluxe](https://forum.shopware.com/u/kotoradeluxe)\
**Post date:** [23. Juli 2013 um 16:55 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/2 "2013-07-23T16:55:36Z")

</div>

also in der Tpl ist es relativ einfach aber ich stimme zu in der Bootstrap wäre es performanter. Evtl klappt es mit ` if (empty(Shopware()-\>Modules()-\>System()-\>\_SESSION['sRegister'])) { // Kunde nicht eingeloggt }else{ // Kunde eingeloggt } `

---

<div class="post-metadata">

**Author:** ![mattes80](https://avatars.discourse-cdn.com/v4/letter/m/a3d4f5/32.png) [@mattes80](https://forum.shopware.com/u/mattes80)\
**Post date:** [23. Juli 2013 um 17:36 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/3 "2013-07-23T17:36:44Z")

</div>

Leider geht das nicht Hier mein code [code]\<?php class Shopware\_Plugins\_Frontend\_SwagSloganOfTheDay\_Bootstrap extends Shopware\_Components\_Plugin\_Bootstrap  
{  
public $slogans = array(  
‘Nur ein toter Bug ist ein guter Bug!’,  
‘Smarty is keine Schokolinse!’,  
‘Ein Zend ist kein Geldstück!’  
);

```
public function install()
{
    $this->subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Index', 'onPostDispatchIndex' ); return true; } public function onPostDispatchIndex(Enlight\_Event\_EventArgs $arguments) { /\*\*@var $controller Shopware\_Controllers\_Frontend\_Index\*/ $controller = $arguments-\>getSubject(); $view = $controller-\>View(); //Add our plugin template directory to load our slogan extension. $view-\>addTemplateDir($this-\>Path() . 'Views/'); if (empty(Shopware()-\>Modules()-\>System()-\>\_SESSION['sRegister'])) { // Kunde nicht eingeloggt }else{ // Kunde eingeloggt $view-\>extendsTemplate('frontend/plugins/slogan\_of\_the\_day/index.tpl'); } $view-\>assign('slogan', $this-\>getRandomSlogan()); } private function getRandomSlogan() { //get random number between 0 and the count of our slogans $index = rand(0, count($this-\>slogans) - 1); return $this-\>slogans[$index]; } } [/code] Was hab ich falsch? [code] if (empty(Shopware()-\>Modules()-\>System()-\>\_SESSION['sRegister'])) { // Kunde nicht eingeloggt }else{ // Kunde eingeloggt $view-\>extendsTemplate('frontend/plugins/slogan\_of\_the\_day/index.tpl'); } [/code]
```

---

<div class="post-metadata">

**Author:** ![kotoradeluxe](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@kotoradeluxe](https://forum.shopware.com/u/kotoradeluxe)\
**Post date:** [23. Juli 2013 um 18:27 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/4 "2013-07-23T18:27:21Z")

</div>

nix ich hab mich vertippt ` Shopware()-\>Modules()-\>System()-\>\_SESSION['sUserId'] ` so muss es sein nicht sRegister Sorry :wtf:

---

<div class="post-metadata">

**Author:** ![mattes80](https://avatars.discourse-cdn.com/v4/letter/m/a3d4f5/32.png) [@mattes80](https://forum.shopware.com/u/mattes80)\
**Post date:** [23. Juli 2013 um 18:42 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/5 "2013-07-23T18:42:41Z")

</div>

geht leider auch nicht hab es so geändert ` if (empty(Shopware()-\>Modules()-\>System()-\>\_SESSION['sUserId'])) { // Kunde nicht eingeloggt }else{ // Kunde eingeloggt $view-\>extendsTemplate('frontend/plugins/slogan\_of\_the\_day/index.tpl'); } ` geht leider nicht

---

<div class="post-metadata">

**Author:** ![Parker](https://avatars.discourse-cdn.com/v4/letter/p/c6cbf5/32.png) [@Parker](https://forum.shopware.com/u/Parker)\
**Post date:** [24. Juli 2013 um 10:16 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/6 "2013-07-24T10:16:01Z")

</div>

Vorsicht bei der Verwendung empty() Welche Version von PHP hast du ? wenn ich mich richtig daran erinnere, Für empty() soll keine Methode rein als Parameter sondern nur Variable empty( A-\>b()-\>c() ) usw. ist erst ab PHP 5.5 möglich

---

<div class="post-metadata">

**Author:** ![mattes80](https://avatars.discourse-cdn.com/v4/letter/m/a3d4f5/32.png) [@mattes80](https://forum.shopware.com/u/mattes80)\
**Post date:** [24. Juli 2013 um 11:26 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/7 "2013-07-24T11:26:03Z")

</div>

ich hab die PHP Version 5.3.3-7+squeeze15 wie könnte ich die Abfrage machen?

---

<div class="post-metadata">

**Author:** ![kotoradeluxe](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@kotoradeluxe](https://forum.shopware.com/u/kotoradeluxe)\
**Post date:** [24. Juli 2013 um 13:17 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/8 "2013-07-24T13:17:24Z")

</div>

` Shopware()-\>Modules()-\>System()-\>\_SESSION['sUserId'] ` würde ja einen String zurück geben kein Objekt mach mal ` var\_dump(Shopware()-\>Modules()-\>System()-\>\_SESSION); die(); ` und schau dir die Ausgabe an

---

<div class="post-metadata">

**Author:** ![mattes80](https://avatars.discourse-cdn.com/v4/letter/m/a3d4f5/32.png) [@mattes80](https://forum.shopware.com/u/mattes80)\
**Post date:** [24. Juli 2013 um 15:19 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/9 "2013-07-24T15:19:46Z")

</div>

Es wird NULL ausgegeben Ich hab es probiert auch wenn der Kunde eingelogt ist da wird dann auch NULL ausgegeben Wie kann man das lösen?

---

<div class="post-metadata">

**Author:** ![Parker](https://avatars.discourse-cdn.com/v4/letter/p/c6cbf5/32.png) [@Parker](https://forum.shopware.com/u/Parker)\
**Post date:** [24. Juli 2013 um 16:36 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/10 "2013-07-24T16:36:33Z")

</div>

```auto
if( Shopware()-\>Modules()-\>Admin()-\>sCheckUser() ){ .... }else{ ... }
```

---

<div class="post-metadata">

**Author:** ![kotoradeluxe](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@kotoradeluxe](https://forum.shopware.com/u/kotoradeluxe)\
**Post date:** [24. Juli 2013 um 16:38 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/11 "2013-07-24T16:38:21Z")

</div>

[quote=„Parker“]`if( Shopware()-\>Modules()-\>Admin()-\>sCheckUser() ){ .... }else{ ... }`[/quote] in der PHPDoc zu dieser Funktion steht ` /\*\* \* Verification of user authorization (logged in) on all secured pages (checkout,account) \* @access public \* @return boolean \*/ ` geht das dann überall oder nur auf den https Seiten?

---

<div class="post-metadata">

**Author:** ![mattes80](https://avatars.discourse-cdn.com/v4/letter/m/a3d4f5/32.png) [@mattes80](https://forum.shopware.com/u/mattes80)\
**Post date:** [24. Juli 2013 um 16:52 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/12 "2013-07-24T16:52:52Z")

</div>

Cool Danke so gehts es aber warum wird da admin() benutzt? ` if( Shopware()-\>Modules()-\>Admin()-\>sCheckUser() ){ // Kunde ist eingelogt }else{ Kunde ist nicht eingelogt } ` Gibt es irgendwo eine Liste wo man die ganzen funktionen nachlesen kann? So das man selber auf das kommen könnte.

---

<div class="post-metadata">

**Author:** ![Parker](https://avatars.discourse-cdn.com/v4/letter/p/c6cbf5/32.png) [@Parker](https://forum.shopware.com/u/Parker)\
**Post date:** [24. Juli 2013 um 16:55 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/13 "2013-07-24T16:55:37Z")

</div>

> [@kotoradeluxe](#):
>
> [quote=„Parker“]`if( Shopware()-\>Modules()-\>Admin()-\>sCheckUser() ){ .... }else{ ... }`[/quote] in der PHPDoc zu dieser Funktion steht ` /\*\* \* Verification of user authorization (logged in) on all secured pages (checkout,account) \* @access public \* @return boolean \*/ ` geht das dann überall oder nur auf den https Seiten?

---

<div class="post-metadata">

**Author:** ![mattes80](https://avatars.discourse-cdn.com/v4/letter/m/a3d4f5/32.png) [@mattes80](https://forum.shopware.com/u/mattes80)\
**Post date:** [24. Juli 2013 um 17:04 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/14 "2013-07-24T17:04:52Z")

</div>

ah OK und welche Methode wird empfohlen? und wie finde ich die functionen das man nach schauen kann? Wie kann ich jetzt von Kunden den Vorname und Nachname rauslesen lassen. oder die E-Mail adresse gruß Mattes

---

<div class="post-metadata">

**Author:** ![kotoradeluxe](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@kotoradeluxe](https://forum.shopware.com/u/kotoradeluxe)\
**Post date:** [24. Juli 2013 um 17:15 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/15 "2013-07-24T17:15:22Z")

</div>

ich hab es jetzt mal selbst in ein Plugin gepackt ich war ganz Falsch unterwegs mit dem Modules() so klappt es über die Session ich persönlich mag die Admin Klasse nicht nutzen im Frontend. ` Shopware()-\>System()-\>\_SESSION['sUserId']; ` Wenn Du allerdings die Userdaten sowieso brauchst dann nutz die Funktion von Parker . -\>getUserData() sollte dir alles zurück geben was du brauchst. Shopware selbst nutzt diese Funktion an mehreren Stellen um zu checken ob der User eingeloggt ist: ` /\* (siehe Klasse sAdmin.php Zeile 2218) \*/ // If user is logged in if (!empty($this-\>sSYSTEM-\>\_SESSION["sUserId"])){ `

---

<div class="post-metadata">

**Author:** ![Parker](https://avatars.discourse-cdn.com/v4/letter/p/c6cbf5/32.png) [@Parker](https://forum.shopware.com/u/Parker)\
**Post date:** [24. Juli 2013 um 18:12 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/16 "2013-07-24T18:12:56Z")

</div>

[quote=“kotoradeluxe”]ich hab es jetzt mal selbst in ein Plugin gepackt ich war ganz Falsch unterwegs mit dem Modules() so klappt es über die Session ich persönlich mag die Admin Klasse nicht nutzen im Frontend. ` Shopware()-\>System()-\>\_SESSION['sUserId']; ` Wenn Du allerdings die Userdaten sowieso brauchst dann nutz die Funktion von Parker . -\>getUserData() sollte dir alles zurück geben was du brauchst. Shopware selbst nutzt diese Funktion an mehreren Stellen um zu checken ob der User eingeloggt ist: ` /\* (siehe Klasse sAdmin.php Zeile 2218) \*/ // If user is logged in if (!empty($this-\>sSYSTEM-\>\_SESSION["sUserId"])){ `[/quote] Gut zu wissen dass es `Shopware()-\>System()-\>\_SESSION['sUserId'];` statt `Shopware()-\>Modules()-\>System()-\>\_SESSION['sUserId'];` sein sollte. Ich habe es weiterhin in Sourcecode verglichen, und hoffe folgende Infos nützlich ist ( für mich schon … ) Shopware()-\>Modules()-\>System() liefert alte, “deprecated” sSystem zurück, wenn man sich genau in die Klasse anschaut --\> es liefert natürlich NULL zurück Shopware()-\>System() im Vergleich dazu: es triggert 1. Enlight\_Bootstrap::loadResource() 2. Das Event Enlight\_Bootstrap\_InitResource\_System wird überwacht von Core Plugin , Shopware\_Plugins\_Core\_System 3. Im Boostrap von Plugin Shopware\_Plugins\_Core\_System\_Bootstrap wird dann dieses Event abgefangen und verarbeitet von Methode onInitResourceSystem Dort wird ganze Session Daten gesetzt

---

<div class="post-metadata">

**Author:** ![mattes80](https://avatars.discourse-cdn.com/v4/letter/m/a3d4f5/32.png) [@mattes80](https://forum.shopware.com/u/mattes80)\
**Post date:** [24. Juli 2013 um 18:52 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/17 "2013-07-24T18:52:47Z")

</div>

[quote] Shopware()-\>Modules()-\>System() liefert alte, “deprecated” sSystem zurück, wenn man sich genau in die Klasse anschaut --\> es liefert natürlich NULL zurück Shopware()-\>System() im Vergleich dazu: es triggert 1. Enlight\_Bootstrap::loadResource() 2. Das Event Enlight\_Bootstrap\_InitResource\_System wird überwacht von Core Plugin , Shopware\_Plugins\_Core\_System 3. Im Boostrap von Plugin Shopware\_Plugins\_Core\_System\_Bootstrap wird dann dieses Event abgefangen und verarbeitet von Methode onInitResourceSystem Dort wird ganze Session Daten gesetzt [/quote] Wo haben Sie das rausgelesen?

---

<div class="post-metadata">

**Author:** ![kotoradeluxe](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@kotoradeluxe](https://forum.shopware.com/u/kotoradeluxe)\
**Post date:** [25. Juli 2013 um 10:56 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/18 "2013-07-25T10:56:22Z")

</div>

einfach die Klassen durch gehen 😛 dazu hatte ich aber keine Zeit :thumbdown: Spitzen Arbeit Parker!

---

<div class="post-metadata">

**Author:** ![mattes80](https://avatars.discourse-cdn.com/v4/letter/m/a3d4f5/32.png) [@mattes80](https://forum.shopware.com/u/mattes80)\
**Post date:** [25. Juli 2013 um 13:19 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/19 "2013-07-25T13:19:10Z")

</div>

OK ich hab diese Homepage gefunden da kann man schon gut nachschauen. [https://github.com/ShopwareAG/shopware-4](https://github.com/ShopwareAG/shopware-4) gibt es eine bestimmte Datei wo alle Functionen drin sind? gruß Mattes

---

<div class="post-metadata">

**Author:** ![Oliver\_Skroblin](https://avatars.discourse-cdn.com/v4/letter/o/6bbea6/32.png) [@Oliver\_Skroblin](https://forum.shopware.com/u/Oliver_Skroblin)\
**Post date:** [26. Juli 2013 um 14:14 UTC](https://forum.shopware.com/t/plugins-userlogin-prufen/14576/20 "2013-07-26T14:14:41Z")

</div>

Hey, verwendet bitte Shopware()-\>Session(), bzw in eurer Bootstrap.php Datei $this-\>Application()-\>Session();. In der Session werden auch die UserDaten gespeichert wenn der Benutzer eingeloggt ist. Gruß Oliver

[Nächste Seite](https://forum.shopware.com/t/plugins-userlogin-prufen/14576.md?page=2)
