# Smarty Variablen / Assigns in Plugin

**URL:** https://forum.shopware.com/t/smarty-variablen-assigns-in-plugin/41853
**Category:** Programmierung
**Created:** [30. November 2016 um 15:42 UTC](https://forum.shopware.com/t/smarty-variablen-assigns-in-plugin/41853 "2016-11-30T15:42:25Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![sschumacher](https://avatars.discourse-cdn.com/v4/letter/s/e47c2d/32.png) [@sschumacher](https://forum.shopware.com/u/sschumacher)
#### Post date: [30. November 2016 um 15:42 UTC](https://forum.shopware.com/t/smarty-variablen-assigns-in-plugin/41853/1 "2016-11-30T15:42:25Z")

</div>

Guten Tag zusammen,

ich möchte in einem eigenem Plugin die aktuelle Kategorie-ID auslesen.  
Grundsätzlich funktioniert das auslesen mancher Werte und auch die Darstellung im Template,  
nur für den Wert den ich eigentlich brauche (Kategorie ID) nicht.

Ich weiß, dass mir die Kategorie ID im Template bereits zur Verfügung steht, möchte aber zu den Kategorien noch Zusatzinfos laden und brauche für mein Plugin an dieser Stelle die ID.

Folgenden Foreneintrag habe ich bereits gesehen, gelesen und versucht umzusetzten: [https://forum.shopware.com/discussion/12462/geloest-aktuelle-catid-in-plugins](https://forum.shopware.com/discussion/12462/geloest-aktuelle-catid-in-plugins)

```
public static function getSubscribedEvents() {
    return [
      'Enlight_Controller_Action_PostDispatch_Frontend_Listing' => 'onPostDispatchFrontendListing',
      //Auch schon probiert als Event: Enlight_Controller_Action_PostDispatch
    ];
}

public function onPostDispatchFrontendListing(Enlight_Event_EventArgs $args){
    $controller = $args->get('subject');
    $view = $controller->View();

    // Keine Ausgabe im Template
    $currentCatId = $view->sCategoryCurrent;
    $view->assign('cat_id', $currentCatId);

    // Keine Ausgabe im Template
    $currentCatId_A = $view->getAssign('sCategoryCurrent');
    $view->assign('cat_id_a', $currentCatId_A);

    // Keine Ausgbae im Template
    $currentCatId_B = $view->sCategoryInfo['id'];
    $view->assign('cat_id_b', $currentCatId_B);

    // Ausgabe im Template funktioniert.
    $articles = $view->sArticles;
    $view->assign('articles',$articles);
      
    // Ausgabe im Template funktioniert.
    $view->assign('test', 'test');
}

```

Für Ideen & Vorschläge wäre ich dankbar.

---

<div class="post-metadata">

### Author: ![sschreier](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sschreier/32/23296_2.png) [@sschreier](https://forum.shopware.com/u/sschreier)
#### Post date: [30. November 2016 um 16:35 UTC](https://forum.shopware.com/t/smarty-variablen-assigns-in-plugin/41853/2 "2016-11-30T16:35:27Z")

</div>

> [@sschumacher schrieb:](https://forum.shopware.com/profile/25289/sschumacher "sschumacher")
> 
> Guten Tag zusammen,
> 
> ich möchte in einem eigenem Plugin die aktuelle Kategorie-ID auslesen.  
> Grundsätzlich funktioniert das auslesen mancher Werte und auch die Darstellung im Template,  
> nur für den Wert den ich eigentlich brauche (Kategorie ID) nicht.
> 
> Ich weiß, dass mir die Kategorie ID im Template bereits zur Verfügung steht, möchte aber zu den Kategorien noch Zusatzinfos laden und brauche für mein Plugin an dieser Stelle die ID.
> 
> Folgenden Foreneintrag habe ich bereits gesehen, gelesen und versucht umzusetzten: [https://forum.shopware.com/discussion/12462/geloest-aktuelle-catid-in-plugins](https://forum.shopware.com/discussion/12462/geloest-aktuelle-catid-in-plugins)
> 
> public static function getSubscribedEvents() {  
> return [  
> ‚Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Listing‘ =\> ‚onPostDispatchFrontendListing‘,  
> //Auch schon probiert als Event: Enlight\_Controller\_Action\_PostDispatch  
> ];  
> }
> 
> public function onPostDispatchFrontendListing(Enlight\_Event\_EventArgs $args){  
> $controller = $args-\>get(‚subject‘);  
> $view = $controller-\>View();
> 
> // Keine Ausgabe im Template  
> $currentCatId = $view-\>sCategoryCurrent;  
> $view-\>assign(‚cat\_id‘, $currentCatId);
> 
> // Keine Ausgabe im Template  
> $currentCatId\_A = $view-\>getAssign(‚sCategoryCurrent‘);  
> $view-\>assign(‚cat\_id\_a‘, $currentCatId\_A);
> 
> // Keine Ausgbae im Template  
> $currentCatId\_B = $view-\>sCategoryInfo[‚id‘];  
> $view-\>assign(‚cat\_id\_b‘, $currentCatId\_B);
> 
> // Ausgabe im Template funktioniert.  
> $articles = $view-\>sArticles;  
> $view-\>assign(‚articles‘,$articles);
> 
> // Ausgabe im Template funktioniert.  
> $view-\>assign(‚test‘, ‚test‘);  
> }
> 
> Für Ideen & Vorschläge wäre ich dankbar.

Hallo,

was gibt denn $args-\>get(‚subject‘); zurück? Ansich müsste doch die Kategorie-ID bereits dort enthalten sein. Am besten einfach mal ein print\_r() machen und ein die() danach etc.

Beste Grüße

Sebastian

---

<div class="post-metadata">

### Author: ![sschumacher](https://avatars.discourse-cdn.com/v4/letter/s/e47c2d/32.png) [@sschumacher](https://forum.shopware.com/u/sschumacher)
#### Post date: [1. Dezember 2016 um 10:34 UTC](https://forum.shopware.com/t/smarty-variablen-assigns-in-plugin/41853/3 "2016-12-01T10:34:45Z")

</div>

Erstmal danke für die Antwort 🙂

Bei

```
print_r($controller);

die();

```

Bekomme ich zwar eine Teilausgabe aber dann…

…hängen sich alle Browser bei mir auf.

&nbsp;

MIttlerweile habe ich eine andere Lösung gefunden:

```
$currentCatId = $view->sCategoryContent['id'];

```

liefert die gesuchte ID.

Ich wär dennoch froh wenn mir jemand sagen kann, warum ich auf manche Assigns der View einfach nicht zugreifen kann / darf.

Grüße  
Stefan
