Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 01. Juli 2013 14:57

chrissy-dizzy
kennt CMS/ms
Ort: Bergisches Land
Registriert: 14. Dezember 2010
Beiträge: 212
Webseite

Wechselndes Hintergrundbild

Welche Möglichkeit gibt es, dem body bei jedem Aufruf ein anderes Hintergrundbild zuzuordnen (aus einem Pool von 5 Bildern)?

Danke für eure Tipps!

Offline

#2 01. Juli 2013 19:31

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: Wechselndes Hintergrundbild

Zum Beispiel so:

{assign var='background_images' value='uploads/images/random/*.*'|glob}
{capture assign='equation'}rand(0,{$background_images|@count}-1){/capture}
{math equation=$equation assign='randomimage'}
{if !empty($background_images)}
{assign var="newimage" value=$background_images.$randomimage}
{/if}

<body style="background-image:url({$newimage|default:'uploads/images/random/fallback.jpg'});">

Wobei du natürlich deinen Pfad zu den Bildern anpassen musst.
value='uploads/images/random/
und dein: fallback.jpg als Fallback eben.

Offline

#3 02. Juli 2013 17:57

chrissy-dizzy
kennt CMS/ms
Ort: Bergisches Land
Registriert: 14. Dezember 2010
Beiträge: 212
Webseite

Re: Wechselndes Hintergrundbild

Danke - ich werde es probieren und mich melden!

Offline

#4 08. Oktober 2013 21:53

noober
kennt CMS/ms
Registriert: 26. April 2011
Beiträge: 151

Re: Wechselndes Hintergrundbild

genau so etwas suche ich gerade ... wo und wie schreibe ich das hin.

Das Hintergrundbild wird bei mir als seperates div am Ende eingebunden:

.........

<div id="bg">
  <img src="uploads/images/bg-01.jpg" alt="">
</div>

</body>
</html>

Offline

#5 09. Oktober 2013 09:56

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: Wechselndes Hintergrundbild

In deinem Fall so:

{assign var='background_images' value='uploads/images/random/*.*'|glob}
{capture assign='equation'}rand(0,{$background_images|@count}-1){/capture}
{math equation=$equation assign='randomimage'}
{if !empty($background_images)}
{assign var="newimage" value=$background_images.$randomimage}
{/if}

<div id="bg">
  <img src="{$newimage|default:'uploads/images/random/fallback.jpg'}" alt="">
</div>

Pfade anpassen. Fertig.

Offline

#6 09. Oktober 2013 10:14

noober
kennt CMS/ms
Registriert: 26. April 2011
Beiträge: 151

Re: Wechselndes Hintergrundbild

so, ich habs eingebaut - allerdings erscheint nur das fallback.img:

...
{cms_stylesheet}

{assign var='background_images' value='/uploads/images/random/*.*'|glob}
{capture assign='equation'}rand(0,{$background_images|@count}-1){/capture}
{math equation=$equation assign='randomimage'}
{if !empty($background_images)}
{assign var="newimage" value=$background_images.$randomimage}
{/if}

</head>



....
<div id="bg">
  <img src="{$newimage|default:'uploads/images/random/fallback.jpg'}" alt="">
</div>

Offline

#7 09. Oktober 2013 10:17

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: Wechselndes Hintergrundbild

Nein. In den HEAD kannst du es nicht einbauen, da der BODY vor dem Head verarbeitet wird, ist das Bild noch nicht bekannt.
Setze es dorthin, wo du die Ausgabe haben willst. In einem Template z.B.

Offline

#8 09. Oktober 2013 10:29

noober
kennt CMS/ms
Registriert: 26. April 2011
Beiträge: 151

Re: Wechselndes Hintergrundbild

jetzt habe ich es am Anfang vom body - geht nicht, was mache ich falsch


<body>
{assign var='background_images' value='/uploads/images/random/*.*'|glob}
{capture assign='equation'}rand(0,{$background_images|@count}-1){/capture}
{math equation=$equation assign='randomimage'}
{if !empty($background_images)}
{assign var="newimage" value=$background_images.$randomimage}
{/if}

<div id="pagewrap">

Offline

#9 09. Oktober 2013 10:38

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: Wechselndes Hintergrundbild

Hab es grade mal unter CMSMS 1.11.7 getestet.
An's Ende der Template gesetzt - funktioniert einwandfrei.

Kopfkratz...

Offline

#10 09. Oktober 2013 10:51

noober
kennt CMS/ms
Registriert: 26. April 2011
Beiträge: 151

Re: Wechselndes Hintergrundbild

habs auch mal vor body-Ende eingefügt, geht nicht ... ich poste mal den Link - Seite ist im Rohbau smile

Beitrag geändert von noober (09. Oktober 2013 19:30)

Offline

#11 09. Oktober 2013 11:52

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: Wechselndes Hintergrundbild

Sind die Bilder auch im Verzeichnis "/uploads/images/random/" ?
Ist die Funktion glob() bei Dir aktiviert? (ist eine PHP-Funktion, die je nach Hoster auch deaktiviert sein kann. Stichwort phpinfo(); )

Lass Dir mal anzeigen, was für Bilder gefunden werden:

{assign var='background_images' value='/uploads/images/random/*.*'|glob}
{$background_images|print_r}

Und zu guter Letzt: {$background_images} ist ein numerisches Array. D.h. diese Zeile:

{assign var="newimage" value=$background_images.$randomimage}

Müsste eigentlich so lauten:

{assign var="newimage" value=$background_images[$randomimage]}

Und das mit dem Random müsste auch einfacher gehen:

{$background_images="uploads/images/random/*.*"|glob}
{append var='background_images' value='uploads/images/random/fallback.jpg'}
{$random_index=$background_images|@array_rand}

<body style="background-image:url({$background_images[$random_index]});">

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#12 09. Oktober 2013 13:15

noober
kennt CMS/ms
Registriert: 26. April 2011
Beiträge: 151

Re: Wechselndes Hintergrundbild

Die Bilder sind im richtigen Ordner.

System Info zeigt:
PHP „register_globals“ (register_globals)     Erfolgreich abgeschlossen      Aus (Nein)

Sind das die benötigten globals, wenn ja und sie nicht aktiviert sind, wie kann ich sie aktivieren?

Funktionieren tut das Ganze noch nicht.

Offline

#13 09. Oktober 2013 13:42

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: Wechselndes Hintergrundbild

glob != register_globals

glob ist eine PHP Funktion:
http://php.net/manual/de/function.glob.php


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#14 09. Oktober 2013 13:52

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: Wechselndes Hintergrundbild

phpinfo() würde ganz oben im ersten Block in etwa so etwas zeigen:
Registered PHP Streams php, file, glob, data, http, ftp, zip, compress.zlib, phar ...

Offline

#15 09. Oktober 2013 13:57

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: Wechselndes Hintergrundbild

Falls du nicht weißt wie man da ran kommt.
Erstelle dir im z.B. Root deiner Installation eine Datei mit dem Inhalt:

Und rufe dann die Datei im Browser auf.

Wenn du sie nicht mehr brauscht, die Datei wieder löschen.

Offline

#16 09. Oktober 2013 14:13

noober
kennt CMS/ms
Registriert: 26. April 2011
Beiträge: 151

Re: Wechselndes Hintergrundbild

ah, wieder was gelernt mit der php info ... danke

Registered PHP Streams zeigt u.a. glob

Offline

#17 09. Oktober 2013 15:27

czarnowski
kennt CMS/ms
Registriert: 18. Oktober 2012
Beiträge: 457

Re: Wechselndes Hintergrundbild

Man sollte alle Fileaktionen vermeiden wenn möglich. Glob grast immer das ganze angegebene Verzeichnis ab pro Besucher und das für jede Seite wo es eingesetzt wird.
Eine Vielzahl von Aktionen senkt also die Performance weil die Serverlast höher wird.
Auch die pro Eintrag enthaltene Pfad ist überflüssig - den definiert man einfach einmal beim Einsatz.
Hat man nur 5 Images oder ein paar mehr definiert man diese schlicht und ergreifend und verwendet diese.

Beispiel:

[== Smarty ==]
{assign var="randompicture" value=array('bild1.jpg','bild2.jpg','bild3.jpg','bild4.jpg','bild5.jpg')}
<body style="background-image:url(uploads/images/random/{$randompicture[array_rand($randompicture)]});">

Offline

#18 09. Oktober 2013 16:46

noober
kennt CMS/ms
Registriert: 26. April 2011
Beiträge: 151

Re: Wechselndes Hintergrundbild

auch das geht nicht, wobei der Fehler beim Einbau liegen kann, es wird gar kein Bild angezeigt:

<body>
.....
{assign var="randompicture" value=array('bg-01.jpg','bg-02.jpg','bg-03.jpg','bg-04.jpg')}
<div id="bg">
   <img src="url(uploads/images/random/{$randompicture[array_rand($randompicture)]});">
</div>
....

Offline

#19 09. Oktober 2013 17:51

czarnowski
kennt CMS/ms
Registriert: 18. Oktober 2012
Beiträge: 457

Re: Wechselndes Hintergrundbild

Getestet mit 1.11.9 und läuft.
Allerdings ist

<img src="url(uploads/images/random/{$randompicture[array_rand($randompicture)]});">

Müll - was soll das denn sein

es ist kein style und es ist keine imagelink

Offline

#20 09. Oktober 2013 18:19

noober
kennt CMS/ms
Registriert: 26. April 2011
Beiträge: 151

Re: Wechselndes Hintergrundbild

sorry, aber wie muss das denn richtig sein? .... wie oben erwähnt ich bin Grafiker und KEIN Programmierer smile

Offline

#21 09. Oktober 2013 18:39

czarnowski
kennt CMS/ms
Registriert: 18. Oktober 2012
Beiträge: 457

Re: Wechselndes Hintergrundbild

Ok

http://www.w3schools.com/html/html_images.asp

da steht grundsätzliches drin.

Aber so wird das Image angezeigt und ist kein Hintergrund.

<div id="bg" style="background-image:url(uploads/images/random/{$randompicture[array_rand($randompicture)]});">

</div>

Näheres  unter http://www.w3schools.com/css/css_background.asp

Offline

#22 09. Oktober 2013 19:22

mike-r
arbeitet mit CMS/ms
Registriert: 21. Dezember 2010
Beiträge: 898
Webseite

Re: Wechselndes Hintergrundbild

czarnowski schrieb:

<img src="url(uploads/images/random/{$randompicture[array_rand($randompicture)]});">

Müll - was soll das denn sein

Du könntest Dir mal den Link anschauen bevor Du hier so einen "Müll" verzapfst.

Beitrag geändert von mike-r (09. Oktober 2013 19:22)


Unablässige Tools für's Webdevelopement/ Fehlerfindung: CSS Validierungsservice, Bildschirmlineal, Firebug, Tidy, Deutsche CSS-Referenz

Offline

#23 09. Oktober 2013 19:29

noober
kennt CMS/ms
Registriert: 26. April 2011
Beiträge: 151

Re: Wechselndes Hintergrundbild

so, hab jetzt nochmal Klenkes Version versucht, diese funktioniert jetzt.

@czarnowski: die Einbindung des Hintergrundbildes wollte ich schon ganz gerne als img machen wie es schon angelegt war, die Methode scheint mir in den meisten Browsern zu funktionieren.

http://css-tricks.com/perfect-full-page … und-image/
CSS-Only Technique #2

Vielen Dank nochmal für Eure Hilfe.

Offline

#24 10. Oktober 2013 10:36

czarnowski
kennt CMS/ms
Registriert: 18. Oktober 2012
Beiträge: 457

Re: Wechselndes Hintergrundbild

Ok dann ist eines CSS Steuerung.
Dein Problem - hast immer noch nicht wirklich Ahnung wie man einen Imagelink setzt obwohl es hier im Thread Beispiele gibt.
Hier die Kurzform

[== Smarty ==]
{$randompicture=array('bild1.jpg','bild2.jpg','bild3.jpg','bild4.jpg','bild5.jpg')}
<body>
<div id="bg">
  <img src="uploads/images/random/{$randompicture[array_rand($randompicture)]}" alt="">
</div>

Getestet mit NCleanBlue unter aktueller Version und Zugabe der CSS von css-tricks

Nochmals

Glob hier nicht anzuraten - bereits erläutert.
Klenkes Code total umständlich und wegen capture nicht anzuraten.
Man macht für keine simple Zuweisung kein Capture. Der bedingt unter Smarty immer die Anlage eines Buffers, der zudem mit eval gefüllt wird und das kostet richtig Zeit.
Das Problem dabei - bei einem Einzelaufruf wird man diese Zeit nicht bemerken. Bei Benchmarks ist das aber deutlich zu ermitteln.

Und generell ist diese Art der Hintergrundbildeinbindung immer gefährlich.
Die Anleitung  von css-tricks ist lediglich rudimentär.
Man füllt via css auch eine HD Schirm mit einem 100x100 Pixel Bild das sieht dementsprechend aus.
Auf der anderen Seite versaut einem ein großes Bild bei kleinen Empfangsmonitoren den Pagespeed.
Das kann also zum Besucherkiller werden.

Lediglich die Jquery Version geht darauf ein.

Offline

#25 10. Oktober 2013 10:49

noober
kennt CMS/ms
Registriert: 26. April 2011
Beiträge: 151

Re: Wechselndes Hintergrundbild

danke für das Update, ich werde es heute Nachmittag diese Methode nochmal versuchen.

Die Darstellung des Hintergrundbildes wie in CSS Tricks beschrieben sieht auf allen Bildschirmen mit denen ich teste bei einem Anlageformat von 1024x683 auch auf großen Monitoren mit hoher Auflösung (zB 1920x1080 bis hin zum Tablet) gut aus. Wenn ich von Programmierung nichts verstehe von Bildern verstehe ich was smile

Da es bei dieser Seite um eine Kneipe geht, also Atmosphäre und so spielt der Page Speed nicht die entscheidende Rolle, für die Seite gibt es ein mobile Version mit eigenen Templates und Stylesheets natürlich ohne die großen Bilder.

Offline