---
title: "Zufälliges Hintergrundbild aus Resourcen einer fixen Seite"
url: "https://www.typo3.net/d/117257-zufaelliges-hintergrundbild-aus-resourcen-einer-fixen-seite"
source: "typo3.net"
tags: ["TYPO3","TypoScript","Bilder","Dateien & FAL","Frage","TYPO3 6"]
created: "2014-01-29"
last_reply: "2014-01-30"
replies: 5
solved: true
page: 1
pages: 1
lang: "de"
---

# Zufälliges Hintergrundbild aus Resourcen einer fixen Seite

TYPO3 › TypoScript · 5 Antworten · gelöst · gestartet 2014-01-29

## Frage

**Chrissli** · 2014-01-29 · [Beitrag #1](https://www.typo3.net/d/117257-zufaelliges-hintergrundbild-aus-resourcen-einer-fixen-seite/1)

Hallo Zusammen,

steh' grade ein wenig auf dem Schlauch.
Ich würde gerne beim Laden der Seite aus den Resourcen der Hauptseite ( ID:1 )
jeweils zufällig ein Bild laden um dieses als Hintergrund für die Seite
im Body zu verwenden.

```typoscript
temp.backImg = CONTENT
temp.backImg {
  table = pages
  select {
    pidInList = 1
    where = uid = 1
    orderBy = rand()
    max = 1    
  }
   
  renderObj = FILES
  renderObj {
    references {
      table = pages
      uid.field = uid
      fieldName = media
    }
    renderObj = IMG_RESOURCE
    renderObj.file {
      import.data = file:current:publicUrl
      #import.listNum = 0
      #treatIdAsReference = 1
    }
  }
  
  wrap = style="background-image: url('|');" 
}
```

Hab' schon diverse Ansätze probiert, aber vielleicht sieht ja jemand auf Anhieb was ich falsch mache...

## Beste Antwort

**Julian.​Hofmann** · 2014-01-30 · [Beitrag #3](https://www.typo3.net/d/117257-zufaelliges-hintergrundbild-aus-resourcen-einer-fixen-seite/3)

...und manchmal kommt man auf die einfachere Lösung dann doch selbst, wenn man nochmal nachdenkt ;-)

```typoscript
temp.backImg = IMAGE
temp.backImg.file {  
  import.data = levelmedia: 0 
  import.listNum = rand
  treatIdAsReference = 1
}
```

Zu beachten ist hierbei aber, dass das Objekt gecacht wird, d.h. der "Zufall" auch gecacht wird. Wenn dies unerwünscht ist, dann müsste ein *_INT-Objekt außenherum.
Alternative wäre, mehrere Bilder in HTML einzubetten udn via JS (und damit am Cache vorbei) den Zufall zu handhaben.

## Antworten

### [#2](https://www.typo3.net/d/117257-zufaelliges-hintergrundbild-aus-resourcen-einer-fixen-seite/2) · Julian.​Hofmann · 2014-01-30

Hallo Chrissli.

Jepp, die Verzweiflung erkennt man etwas... ;)

Auf alle Fälle ist die Select-Abfrage schon mal merkwürdig. Du möchtest aus der Tabelle pages alle Datensätze mit *uid=1* (Where-Clause) (was exakt einer sein kann), schränkst diese ein-elementige Menge via *max=1* auf ein Element ein (was eher immer der Fall ist wegen der uid-Einschränkung), und möchtest die ein-elementige Menge aber per *rand()* zufällig sortiert haben (also zufällig einen der Datensätze mit uid=1)???

Funktionieren sollte folgendes:

```typoscript
temp.backImg = FILES
temp.backImg {
  files.cObject = CONTENT
  files.cObject {
    table = sys_file_reference
    select {
      // Page-ID der Seite, aus der Bilder entnommen werden sollen
      pidInList = 3
      where = tablenames='pages' AND fieldname='media'
      selectFields = uid_local
      orderBy = rand()
      max = 1
    }
    renderObj = TEXT
    renderObj.field = uid_local
  }
  renderObj = IMAGE
  renderObj {
    file.import.data = file:current:publicUrl
  }
}
```

(Für Optimierungen/einfachachere Weg bin ich gern zu haben :) )

Viele Grüße
Julian

### [#3](https://www.typo3.net/d/117257-zufaelliges-hintergrundbild-aus-resourcen-einer-fixen-seite/3) · Julian.​Hofmann · 2014-01-30 · Beste Antwort

(Text siehe oben unter „Beste Antwort“.)

### [#4](https://www.typo3.net/d/117257-zufaelliges-hintergrundbild-aus-resourcen-einer-fixen-seite/4) · Chrissli · 2014-01-30

Hallo Julian,

vielen Dank erstmal.
Ja manchmal sieht man den Wald vor Bäumen nicht, und am schlimmsten ist's, wenn man sich dann auch noch im Wald verläuft #giggle#

Nach dem x-ten mal ändern und probieren war der Code einfach versaut, wen wunderts wenn da der select keinen Sinn mehr ergibt.

Leider hat deine erste Lösung nicht funktioniert, im Nachhinein hab' ich mich an die Beschränkungen
von CONTENT und table erinnert, sys_* Tabellen gehören leider nicht zu den erlaubten Tabellen.
Es müsste also vermutlich einen Weg über references geben, werde das mal probieren wenn etwas mehr Zeit ist.

However, der 2. Ansatz hat völlig problemlos funktioniert, Danke dafür!

Hier meine Lösung mit INT:

```typoscript
temp.backImg = COA_INT
temp.backImg {
  1 = IMG_RESOURCE
  1 {
    file {
      import.data = levelmedia: 0
      import.listNum = rand
      treatIdAsReference = 1
    }
    stdWrap.noTrimWrap = | style="background-image: url('|');"|
  }
}
```

Die Option mit JS ging mir auch durch den Kopf, allerdings sind die Hintergrundbilder vollflächig in FullHD Auflösung d.h. sehr groß, daher habe ich auf diese Option bewusst verzichtet.

Zwei Dinge hätte ich da noch, auch wenn die ein klein wenig am Thema vorbei gehen:

1. Gibt es einen einfachen Weg ( per TS ) einzelne Content-Objekte oder Teile zu Debuggen, z.B. das Ergebnis des Select-Statement ( ähnlich SQL-Debug = 2 aus dem Install-Tool, nur für einzelne Queries ) oder auch einem TS-Äquivalent von

```php
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump();
```

für ein einzelnes Objekt um rauszufinden wo ein Ansatz krankt?

2. Ich baue meine Body-Tag per

```typoscript
page.bodyTagCObject = COA
```

wobei ein COA-Teil eben das hier generierte Hintergrundbild war.
Aktuell muss ich jeden teil per noTrimWrap mit einem Leerzeichen versehen, damit die einzelen HTML-Attribute nicht aufeinander kleben.
Gibt es für COAs eigentlich einen Parameter mit dem man die einzelnen Elemente trennen kann?
So wie das in PHP mit

```php
implode($trenner,$array)
```

funktioniert?

Ich setze den Thread mal auf gelöst, da das eigentliche Problem ja behoben ist.

### [#5](https://www.typo3.net/d/117257-zufaelliges-hintergrundbild-aus-resourcen-einer-fixen-seite/5) · Julian.​Hofmann · 2014-01-30

Hm, also der erste Ansatz hatte bei mir (TYPO3 CMS 6.2.0beta4) funktioniert. Der hat v.a. den Vorteil, dass er tabellenunabhänig ist, d.h. die Bilddaten auch aus einem tt_content-Element, der dem neusten News-Beitrag odgl. genommen werden könnten.

Zu Deinen weiteren Fragen:

1.)
stdWrap hat drei debug*-Eigenschaften, wobei das wohl nicht unbedingt in solch einem Fall hilfreich ist, weil stets auf das Ergebnis (d.h. Rückgabewert des cObjects) angewandt.
<https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/Stdwrap.html#stdwrap-debug>
Bei Selects ist IMHO der einfacher Weg, sich die Abfrage mal händisch zusammenzubauen und direkt ind er Datenbank zu testen. Wenn dann im Prinzip das richtige Resultat rauskommt, dann lässt die die Query ja auch in TS umschreiben/zerlegen und mit variablen Werten befüllen.

2.)
Soweit ich weiß nein.

### [#6](https://www.typo3.net/d/117257-zufaelliges-hintergrundbild-aus-resourcen-einer-fixen-seite/6) · Chrissli · 2014-01-30

Das hat mir schon seeehr weiter geholfen.
Vielleicht hab ja auch ich irgendwo noch einen Fehler eingebaut.
Wenn ich drüberstolper geb' ich's bekannt.
Danke für deine Zeit.

---

Quelle: „Zufälliges Hintergrundbild aus Resourcen einer fixen Seite“, typo3.net, https://www.typo3.net/d/117257-zufaelliges-hintergrundbild-aus-resourcen-einer-fixen-seite
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
