---
title: "tx_news: Bestimmte Kategorien ausgeben"
url: "https://www.typo3.net/d/116398-tx-news-bestimmte-kategorien-ausgeben"
source: "typo3.net"
tags: ["Extensions","Frage","Kategorien","TYPO3 6","tx_news"]
created: "2013-10-24"
last_reply: "2013-10-24"
replies: 2
solved: true
page: 1
pages: 1
lang: "de"
---

# tx_news: Bestimmte Kategorien ausgeben

Extensions · 2 Antworten · gelöst · gestartet 2013-10-24

## Frage

**Itsab** · 2013-10-24 · [Beitrag #1](https://www.typo3.net/d/116398-tx-news-bestimmte-kategorien-ausgeben/1)

Hallo Zusammen,

ich setze mich gerade mit der tx_news auseinander und mache auch meine ersten Schritte mit FLUID. Dabei sind einige Fragen aufgetaucht, bei denen ich noch keine Lösung gefunden habe. Eine davon ist folgende:

Angenommen, es gibt eine Kategorie-Struktur wie diese:

Kategorie_A
- Unterkategorie 1
- Unterkategorie 2
- Unterkategorie 3

Kategorie_B
- Unterkategorie 1
- Unterkategorie 2
- Unterkategorie 3

Nun möchte ich im Wrap der Liste für News der Kategorie_A eine CSS-Klasse hinzufügen, nämlich Kategorie_A. Im Wrap der Liste für News der Kategorie_B analog dazu die CSS-Klasse Kategorie_B.

In der Liste sollen die News-Items ebenfalls Ihre Kategorie ausgeben, jedoch eben nicht Kategorie_A, sondern Unterkategorie 1, 2, 3 usw.

Im Netz habe ich nicht wirklich viel gefunden. Ein interessanter Schnipsel war hier zu finden, hat mir aber nicht weitergeholfen: <http://typo3.3.n7.nabble.com/tx-news-mehr-als-eine-Kategorie-anzeigen-td244807.html>

Im Template wird standardmäßig nur die erste Kategorie ausgegeben:
Pfad: /Partials/List/Item.html

```html
<f:if condition="{newsItem.firstCategory}">
	<!-- first category -->
	<span class="news-list-category">{newsItem.firstCategory.title}</span>
</f:if>
```

Wenn ich stattdessen den Schnipsel einsetze, passiert leider gar nichts:

```html
<span class="news-list-category"> 
	<f:for each="{categories}" as="category" iteration="categoryIterator" reverse="1"> 
		<f:if condition="{categoryIterator.isLast}"> 
			<f:then> 
				{category.title} 
			</f:then> 
			<f:else> 
				{category.title}, 
			</f:else> 
		</f:if> 
	</f:for> 
</span>
```

Einen interessantes Partial ist in der Ext selbst zu finden:
Pfad: /Partials/Category/Items.html

```html
<!-- categories -->
<span class="news-list-category">
	<f:for each="{categories}" as="category">
		<f:if condition="{category.shortcut}">
			<f:then>
				<f:link.page pageUid="{category.shortcut}">
					{category.title}
				</f:link.page>
			</f:then>
			<f:else>
				{category.title}
			</f:else>
		</f:if>
	</f:for>
</span>
```

Aber einfach ins Template einfügen reicht leider nicht. Hat jemand eine Idee?

Vielen Dank für alle Hinweise
Itsab

## Beste Antwort

**Itsab** · 2013-10-24 · [Beitrag #3](https://www.typo3.net/d/116398-tx-news-bestimmte-kategorien-ausgeben/3)

Hallo Jenses,

danke für den Hinweis. Leider gibt der Code keine Ausgabe aus:

> <span class="news-list-category">
> 	<f:for each="{newsItem.categories}" as="category" iteration="categoryIterator" reverse="1">
> 		{category.title}
> 	</f:for>
> </span>

Ich habe noch ein bisschen herumgefummelt und es folgendermaßen gelöst:
Zunächst ein neues Partial angelegt unter
Pfad: /Partials/Category/Items_last.html

Dieses Partial gibt nur die letzte Kategorie aus, oder anders gesagt, jene der niedrigsten Ebene

```html
<!-- last category -->
<f:for each="{categories}" as="category" iteration="categoryIterator" reverse="0"> 
	<f:if condition="{categoryIterator.isLast}"> 
		<f:then>{category.title}</f:then> 
		<f:else></f:else> 
	</f:if> 
</f:for>
```

Dieses Partial wird dann im Partial Item.html der Liste wieder aufgegriffen.
Pfad /Partials/List/Item.html

```html
…
<!-- last category -->
<f:if condition="{newsItem.categories}">
	<span class="news_item_category">
		<f:render partial="Category/Items_last" arguments="{categories:newsItem.categories, settings:settings}" />
	</span>
</f:if>
…
```

Es ersetzt den Originalteil für die erste Kategorie

```html
…
<f:if condition="{newsItem.firstCategory}">
	<!-- first category -->
	<span class="news-list-category">{newsItem.firstCategory.title}</span>
</f:if>
…
```

Damit dann auch die CSS-Klasse erscheint, habe dann eine Condition

```html
{f:if(condition: newsItem.firstCategory, then: newsItem.firstCategory.title)}
```

im "class"-Attribut ergänzt:

```html
{namespace n=Tx_News_ViewHelpers}
<!-- Partials/List/Item.html -->

<n:excludeDisplayedNews newsItem="{newsItem}" />
<f:if condition="{settings.templateLayout} == 10">
	<f:then>
		<n:link newsItem="{newsItem}" settings="{settings}" class="news_item border article articletype-{newsItem.type}{f:if(condition: newsItem.istopnews, then: ' topnews ')}{f:if(condition: newsItem.firstCategory, then: newsItem.firstCategory.title)}">
			<div class="news_item_image">
…
```

Ich bin mir zwar nicht sicher, ob das die eleganteste Variante ist, aber es funktioniert bei mir auf jeden Fall. Hoffe, es hilft jemandem weiter.

Viele Grüße

## Antworten

### [#2](https://www.typo3.net/d/116398-tx-news-bestimmte-kategorien-ausgeben/2) · jenses · 2013-10-24

> **Itsab schrieb:**
>
> ```html
> <span class="news-list-category"> 
> 	<f:for each="{categories}" as="category" iteration="categoryIterator" reverse="1"> 
> 		<f:if condition="{categoryIterator.isLast}"> 
> 			<f:then> 
> 				{category.title} 
> 			</f:then> 
> 			<f:else> 
> 				{category.title}, 
> 			</f:else> 
> 		</f:if> 
> 	</f:for> 
> </span>
> ```

sollte doch wohl eher so lauten:

```html
<span class="news-list-category"> 
	<f:for each="{newsItem.categories}" as="category" iteration="categoryIterator" reverse="1"> 
		{category.title} 
	</f:for> 
</span>
```

Die Condition habe ich entfernt da sowieso sinnlos.

### [#3](https://www.typo3.net/d/116398-tx-news-bestimmte-kategorien-ausgeben/3) · Itsab · 2013-10-24 · Beste Antwort

(Text siehe oben unter „Beste Antwort“.)

---

Quelle: „tx_news: Bestimmte Kategorien ausgeben“, typo3.net, https://www.typo3.net/d/116398-tx-news-bestimmte-kategorien-ausgeben
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
