# Smarty Variable ausgeben

**URL:** <https://forum.shopware.com/t/smarty-variable-ausgeben/54011>\
**Category:** Themes & Design\
**Created:** [11. Juli 2018 um 09:07 UTC](https://forum.shopware.com/t/smarty-variable-ausgeben/54011 "2018-07-11T09:07:57Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![timsen](https://avatars.discourse-cdn.com/v4/letter/t/e19b73/32.png) [@timsen](https://forum.shopware.com/u/timsen)\
**Post date:** [11. Juli 2018 um 09:07 UTC](https://forum.shopware.com/t/smarty-variable-ausgeben/54011/1 "2018-07-11T09:07:57Z")

</div>

Hey Leute,

&nbsp;

in meiner Debug ausgabe von Smarty steht folgendes:

&nbsp;

```
$sCategories	Smarty_Variable Object (3)
->value = Array (8)
  44 => Array (22)
    id => 44
    name => "AlleStartFilter"
    metaKeywords => null
    metaDescription => ""
    cmsHeadline => ""
    cmsText => ""
    active => true
    template => null
    blog => false
    path => "|3|"
    external => ""
    externalTarget => ""
    hideFilter => false
    hideTop => true
    hidetop => true
    attribute => Array (0)
    media => Array (0)
    description => "AlleStartFilter"
    link => "shopware.php?sViewport=cat&sCategory=44"
    flag => false
    subcategories => Array (0)
    childrenCount => 0

```

&nbsp;

&nbsp;

&nbsp;

Wie kann ich hier den Inhalt der Variable ID ausgeben?

&nbsp;

Mit&nbsp;{$sCategories.id} kommt nichts.

&nbsp;

Danke für Hinweise.

&nbsp;

mfg

timsen

&nbsp;

---

<div class="post-metadata">

**Author:** ![simkli](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/simkli/32/13124_2.png) [@simkli](https://forum.shopware.com/u/simkli)\
**Post date:** [11. Juli 2018 um 09:12 UTC](https://forum.shopware.com/t/smarty-variable-ausgeben/54011/2 "2018-07-11T09:12:43Z")

</div>

Wie du anhand der Ausgabe erkennen kannst:

$sCategories ist ein Array mit 8 Elementen (Array (8)). Jedes dieser 8 Elemente enhält die Attribute, die du oben schilderst. Daher kannst du nicht direkt auf $sCategories.id zugreifen. Du musst zunächst eines der 8 Elemente angeben. Das erste erreichst du mit dem Schlüssel 44: Das heißt du kannst auf $sCategories[44].id zugreifen.

Du kannst eine Schleife (z.B. foreach) nutzen, um über die Elemente zu iterieren.

Viele Grüße

---

<div class="post-metadata">

**Author:** ![timsen](https://avatars.discourse-cdn.com/v4/letter/t/e19b73/32.png) [@timsen](https://forum.shopware.com/u/timsen)\
**Post date:** [11. Juli 2018 um 09:20 UTC](https://forum.shopware.com/t/smarty-variable-ausgeben/54011/3 "2018-07-11T09:20:24Z")

</div>

Hey simkli,

&nbsp;

danke schonmal für die Antwort. Und was mache ich wenn die Anzahl in dem Array sich auch verändern kann? Hintergrund: ICh möchte die “%” Badges in der Listenansicht nur in der Kategorie mit der ID 42 ausgeben.

Mein Block sieht grade so aus:

&nbsp;

```
 {* Discount badge *}
        {block name='frontend_listing_box_article_discount'}
            {if $sArticle.has_pseudoprice && $sCategoryContent.37.id == "42"}
               {$smarty.block.parent}
            {/if}
        {/block}

```

&nbsp;

Aber mien "&& $sCategoryContent.37.id == “42"” funktioniert irgendwie nicht.

&nbsp;

---

<div class="post-metadata">

**Author:** ![simkli](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/simkli/32/13124_2.png) [@simkli](https://forum.shopware.com/u/simkli)\
**Post date:** [11. Juli 2018 um 09:23 UTC](https://forum.shopware.com/t/smarty-variable-ausgeben/54011/4 "2018-07-11T09:23:24Z")

</div>

Ja die Variable $sCategories ist nicht so gut geeignet, da es alle Hauptkategorien enthält. Der Aufbau der Variable $sCategoryContent sieht dagegen anders aus. Hier hast du keine Liste von Elementen sondern kannst eben mit $sCategoryContent.id direkt darauf zugreifen.

Nicht gleich von dem einem auf das andere schließen

Viele Grüße

---

<div class="post-metadata">

**Author:** ![timsen](https://avatars.discourse-cdn.com/v4/letter/t/e19b73/32.png) [@timsen](https://forum.shopware.com/u/timsen)\
**Post date:** [11. Juli 2018 um 09:28 UTC](https://forum.shopware.com/t/smarty-variable-ausgeben/54011/5 "2018-07-11T09:28:59Z")

</div>

Oha da war ich wohl zu voreilig 😉

&nbsp;

So klappt es ja. Das gucke ich mir dann wohl nochmal genauer an mit dem Array-Aufbau.

&nbsp;

Danke!

&nbsp;

```
  {* Discount badge *}
        {block name='frontend_listing_box_article_discount'}
            {if $sArticle.has_pseudoprice && $sCategoryContent.id == 42} {*nur in Kategorie ANgebote ausgeben*}
               {$smarty.block.parent}
            {/if}
        {/block}

```

&nbsp;
