# Bedingung an Kategorie knüpfen - Syntax?

**URL:** <https://forum.shopware.com/t/bedingung-an-kategorie-knupfen-syntax/48327>\
**Category:** Programmierung\
**Created:** [18. September 2017 um 09:31 UTC](https://forum.shopware.com/t/bedingung-an-kategorie-knupfen-syntax/48327 "2017-09-18T09:31:57Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![isd](https://avatars.discourse-cdn.com/v4/letter/i/c0e974/32.png) [@isd](https://forum.shopware.com/u/isd)\
**Post date:** [18. September 2017 um 09:31 UTC](https://forum.shopware.com/t/bedingung-an-kategorie-knupfen-syntax/48327/1 "2017-09-18T09:31:57Z")

</div>

Ich verwende im Listing die Bedingung

```
{if $sArticle.attr1 == "neu"}{s name="Attribut1"}{/s}

```

und möchte die Ausgabe aber in einer bestimmten Kateorie ändern, finde aber offenbar nicht die richtige Syntax. Mein Ansatz ist folgender:

```
{if $sArticle.attr1 == "neu" and $sCategoryID == 48}{s name="Attribut1.1"}{/s}

```

Funktioniert aber nicht (bin kein Smarty/PHP-Held).

Über Hilfe würde ich mich freuen!

Danke!  
Martin

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [18. September 2017 um 12:21 UTC](https://forum.shopware.com/t/bedingung-an-kategorie-knupfen-syntax/48327/2 "2017-09-18T12:21:47Z")

</div>

Die Kategorie ID steht in&nbsp;$sCategoryContent.id

Wie man sich alle Variablen anzeigen lassen kann findest du hier:&nbsp;[Debugging Shopware](https://developers.shopware.com/developers-guide/debugging/#smarty)

---

<div class="post-metadata">

**Author:** ![isd](https://avatars.discourse-cdn.com/v4/letter/i/c0e974/32.png) [@isd](https://forum.shopware.com/u/isd)\
**Post date:** [18. September 2017 um 13:09 UTC](https://forum.shopware.com/t/bedingung-an-kategorie-knupfen-syntax/48327/3 "2017-09-18T13:09:48Z")

</div>

Besten Dank für die Antwort. Ich muss nur noch mal blöd nachfragen:

```
{if $sArticle.attr1 == "neu" and $sCategoryContent.id == 48}{s name="Attribut1.1"}{/s}

```

war es nicht. Würdest Du dieses Beispiel einmal korrigieren, damit ich das Prinzip verstehe? Das wäre supernett.

Danke!

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [18. September 2017 um 13:33 UTC](https://forum.shopware.com/t/bedingung-an-kategorie-knupfen-syntax/48327/4 "2017-09-18T13:33:32Z")

</div>

Sieht für mich erstmal alles richtig aus. Funktioniert deine erste Bedingung denn ohne der Kategorie?

An welcher Stelle steht deine Bedingung denn? Sieht aus wie die Produkt Box? Ich wüsste sonst nicht, wo es überhaupt eine $sArticle Variable geben könnte.

Ich hab eben noch gesehen, dass du den Namen deines Textbausteins von&nbsp;Attribut1 aus&nbsp;Attribut1.1 geändert hast. Gibt es den Textbaustein denn? Was ist wenn du den Textbaustein erstmal durch einen statischen Text zum debuggen änderst?

---

<div class="post-metadata">

**Author:** ![isd](https://avatars.discourse-cdn.com/v4/letter/i/c0e974/32.png) [@isd](https://forum.shopware.com/u/isd)\
**Post date:** [18. September 2017 um 13:48 UTC](https://forum.shopware.com/t/bedingung-an-kategorie-knupfen-syntax/48327/5 "2017-09-18T13:48:31Z")

</div>

Hallo Arne,

danke schon einmal vorab für Deine schnellen Antworten!

Ich habe natürlich die Inhalte leicht abgeändert.

Es handelt sich dabei um das Listing Template. Der gesamte Quelltext des Blocks ist wie folgt:

```
{if $sArticle.attr1 == "neu"}{s name="GeschBer1"}{/s}
{elseif $sArticle.attr1 == "gebraucht"}{s name="GeschBer2"}{/s}
{elseif $sArticle.attr1 == "gebraucht - 2. Wahl"}{s name="GeschBer3"}{/s}
{elseif $sArticle.attr1 == "gebraucht - 2. Wahl" and $sCategoryContent.id == 48}{s name="GeschBer3Relikt"}{/s}
{elseif $sArticle.attr1 == "gebraucht - 3. Wahl"}{s name="GeschBer4"}{/s}
{elseif $sArticle.attr1 == "defekte Ware"}{s name="GeschBer5"}{/s}
{elseif $sArticle.attr1 == "Sonderfall"}{s name="GeschBer6"}{/s}
{elseif $sArticle.attr1 == "Neu open box"}{s name="GeschBer11"}{/s}
{/if}

```

Mein Ansinnen ist es, wenn im attr1 Feld „gebraucht - 2.Wahl“ steht, der Artikel aber in der Kategorie 48 (Relikte) angezeigt wird, dann soll statt dem Textbaustein „GeschBer3“ der Textbaustein „GeschBer3Relikt“ angezeigt werden. Die Anzeige der jeweiligen Inhalte des attr1 Feldes funktioniert. Der Textbaustein „GeschBer3Relikt“ ist ebenfalls angelegt und befüllt.  
Vielleicht habe ich ja auch nur einen Denkfehler?

Danke und Grüße!  
Martin

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [19. September 2017 um 07:46 UTC](https://forum.shopware.com/t/bedingung-an-kategorie-knupfen-syntax/48327/6 "2017-09-19T07:46:51Z")

</div>

Hi&nbsp;Martin,

das sieht immernoch alles richtig aus. Ich hanb so aus der Ferne leider auch keine Idee.

VG Arne

---

<div class="post-metadata">

**Author:** ![isd](https://avatars.discourse-cdn.com/v4/letter/i/c0e974/32.png) [@isd](https://forum.shopware.com/u/isd)\
**Post date:** [25. September 2017 um 13:34 UTC](https://forum.shopware.com/t/bedingung-an-kategorie-knupfen-syntax/48327/7 "2017-09-25T13:34:16Z")

</div>

Dann gehe ich mal anders dran. Ich habe ein Freitextfeld in&nbsp; s\_categories\_attributes angelegt und dann in der Kategorie direkt mit dem Inhalt “inhalt1” befüllt und möchte dann den Textbaustein 1 anzeigen lassen. Mein Code dazu:

```
{if $sCategory.attribute.attribute1 == "inhalt1"}{s name="Textbaustein 1"}{/s}{/if}

```

Problem: ich sehe nichts. Wo habe ich den Fehler?

```
{if $category.attribute.attribute1 == "inhalt1"}{s name="Textbaustein 1"}{/s}{/if}

```

ist ebenfalls funktionslos.

Gibt es keine ausführlichere Doku zu dem ganzen Thema Variablen und Textbausteine?

&nbsp;

Danke!!

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [25. September 2017 um 14:07 UTC](https://forum.shopware.com/t/bedingung-an-kategorie-knupfen-syntax/48327/8 "2017-09-25T14:07:45Z")

</div>

Vermutlich gibt es die Variablennamen nicht. Bzw. nicht an der Stelle an der du sie nutzten willst. Im Listing heißt die Variable z.b.&nbsp;$sCategoryContent und nicht $sCategory.

Das kann man aber recht einfach mit der Debug Funktion rausfinden. Den Link hatte ich in einem meiner vorherigen Posts schon mitgeteilt.

Was erwartest du denn von einer ausführlichen Doku? Es gibt natürlich die offizielle Smarty Doku ([Smarty - die kompilierende PHP Template-Engine | Smarty](https://www.smarty.net/docsv2/de/index.tpl)) und natürlich auch was zu Textbausteinen ([Shopware 5 snippet management](https://developers.shopware.com/designers-guide/snippets/))

---

<div class="post-metadata">

**Author:** ![isd](https://avatars.discourse-cdn.com/v4/letter/i/c0e974/32.png) [@isd](https://forum.shopware.com/u/isd)\
**Post date:** [26. September 2017 um 07:17 UTC](https://forum.shopware.com/t/bedingung-an-kategorie-knupfen-syntax/48327/9 "2017-09-26T07:17:34Z")

</div>

Ah, danke! Ich wusste nicht, dass nicht alle Variablen überall einsetzbar sind.  
Mit der debug Funktion wusste ich nicht so viel anzufangen, aber dann setze ich mich damit mal auseinander.

Vielen Dank für Deine Geduld!

---

<div class="post-metadata">

**Author:** ![arnebecker](https://avatars.discourse-cdn.com/v4/letter/a/3bc359/32.png) [@arnebecker](https://forum.shopware.com/u/arnebecker)\
**Post date:** [26. September 2017 um 08:55 UTC](https://forum.shopware.com/t/bedingung-an-kategorie-knupfen-syntax/48327/10 "2017-09-26T08:55:49Z")

</div>

Ja, und leider sind die Variablen auch nicht immer konsistent benamt.
