Seite 6 von 7

Re: Random Hintergrundbilder

Verfasst: 25.07.2021 16:53
von chris1278
Also die aktuelle version die wir in bearbeitung haben macht das so das ein bild ans template übergeben wird und durch jeden aufruf des forums (unabhängig ob die startseite refresht wird oder man im forum auf beiträge oder sonst was klickt) wird das bild gewechselt. Also aktuell ohne Slideshow. Und wenn einer JS deaktiviert oder blockiert hat kommt eben kein Hintergrundbild und der Hintergrund bleibt weis. Hab ich getestet im Chrome einfch js blockiert und der hintergrund bleibt weis. Ich denke hier wäre noch ne nachbesserung ala if js deaktiviert lade standard style hintergrund oder ähnlich. Aufjedenfall kann man das forum weiter nutzen auch wenn kein js zugelassen ist. n

Re: Random Hintergrundbilder

Verfasst: 25.07.2021 17:16
von 69bruno
Mehr darf auch nicht passieren.
Das Script hat derzeit 3 Zeilen und überschreibt nur die BackgroundImage-Eigenschaft in css.
Wenn das script nicht läuft, bleibt der phpbb-Standard, nämlich keins.

Re: Random Hintergrundbilder

Verfasst: 25.07.2021 17:20
von chris1278
Ok das heist sollte im style selber ein hintergrundbild im css angelegt sein so würde das geladen anstelle des bildes der extension?

Re: Random Hintergrundbilder

Verfasst: 25.07.2021 17:24
von 69bruno
Wenn js deaktiviert wäre, ja

Re: Random Hintergrundbilder

Verfasst: 25.07.2021 17:31
von chris1278
Super dann wäre das üproblem ja schonmal gelöst. ob man da ne info einblendet wenns js deaktiviert ist muss man sehen.

Re: Random Hintergrundbilder

Verfasst: 25.07.2021 18:02
von LukeWCS
Mir ist nicht klar, wofür ihr JS braucht. Vielleicht habe ich das Problem aber auch noch nicht ganz verstanden. Ich habe allerdings auch nicht das ganze Thema hier gelesen.

Ich habe das auf die Schnelle mal in meiner Haupt-Ext eingebaut, die bei mir die ganzen Ext/Styles/PHP Anpassungen regelt.

Ich brauche 1 Zeile im PHP Code (z.B. im Listener) um die Template Variable zu generieren und 1 Zeile im Template. Ich hab mir für die Hintergründe jetzt einfach ein paar Wallpapers von Windows geschnappt. Die hatten schon das Muster "img{nummer}.jpg". Bei jedem erneuten Aufruf der Seite wird ein anderes HG Bild angezeigt. Das war doch das Ziel oder?

Re: Random Hintergrundbilder

Verfasst: 25.07.2021 18:40
von chris1278
Das javascript was wir im moment nutzen ist das hier:

Code: Alles auswählen

<script type="text/javascript">
var hintergrund = {{ TEST_RANDOM|json_encode() }};
//alert (hintergrund);
document.getElementById('phpbb').style.backgroundImage = 'url('+ hintergrund +')';
</script>
Und über den Listener generieren wir dann den zufalls link der hier ins script mittels TEST_RANDOM eingefügt wird.

Der Teil in der Listener dafür sieht im moment so aus:

Code: Alles auswählen

public static function getSubscribedEvents()
	{
	return array(
		'core.page_header'	=> 'add_imagerandom_theme',
		);
	}

	public function add_imagerandom_theme()
	{
		$files = array();
		$allowed_file_extensions = array();
		$allowed_file_extensions[] = 'gif';
		$allowed_file_extensions[] = 'bmp';
		$allowed_file_extensions[] = 'jpg';
		$allowed_file_extensions[] = 'jpeg';
		$allowed_file_extensions[] = 'png';
		$dir = dirname(__dir__).'/img/';
		$len = strlen(dirname(__dir__).'/img/');
		if (strlen($dir)-1 == '/')
		{
			$dir = substr($dir, 0, $len-1);
		}
		if (!is_dir($dir))
		{
			return false;
		}
		$open = @opendir($dir);

		if (! $open)
		{
			return false;
		}
		while ($file = readdir ($open))
		{
			if ( $file == "." || $file == "..")
			{
				continue;
			}
			if (is_dir($dir.'/'.$file))
			{
				getFiles($dir.'/'.$file);
			}
			$e = explode('.', $file);
			$ext = $e[count($e)-1];
			if ( is_file($dir.'/'.$file) && in_array($ext, $allowed_file_extensions) )
			{
				$files[] = $file;
			}
			}
		$rand = mt_rand(0, count($files)-1);
		$zufall = generate_board_url()."/ext/chris1278/bgchange/img/".$files[$rand];
		$this->template->assign_vars(array(
			'TEST_RANDOM'		=> $zufall));
	}
Im Grunde wird in der Listener ein Verzeichnis ausgelesen und daraus durch Zufall ein Bild ausgewählt. Dieses wird in eine Entsprechende Url gepackt und ans Template übergeben. Sofern ich die Funktion richtig verstanden habe. ich denke da kann 69bruno etwas besser erklären.

Re: Random Hintergrundbilder

Verfasst: 25.07.2021 19:05
von 69bruno
 Die hatten schon das Muster "img{nummer}.jpg". Bei jedem erneuten Aufruf der Seite wird ein anderes HG Bild angezeigt. Das war doch das Ziel oder?
 
Zwischenziel. Endziel ist ein HG Wechsel nach Aufruf und dann nach timer.
Namensmuster ist bei mir egal.

Re: Random Hintergrundbilder

Verfasst: 25.07.2021 19:23
von LukeWCS
69bruno hat geschrieben: 25.07.2021 19:05 Endziel ist ein HG Wechsel nach Aufruf und dann nach timer.
Ah, auch nach Timer, dann sieht es anders aus. Das konnte ich dem Startbeitrag leider nicht entnehmen. Da war nur von
sprich bei jedem Seitenaufruf ein neues Hintergrundbild per Zufall.
die Rede. Eine klare Aufgabenbeschreibung wäre hier sinnvoll gewesen. :wink:
Namensmuster ist bei mir egal.
Ich hatte ja geschrieben, das war auf die Schnelle. Richtig lösen würde ich es so, dass im ACP ein Ordner angegeben werden kann und dann werden alle Bildernamen aus diesem Ordner in ein Array geladen aus dem dann zufällig ein Element ausgewählt wird. Die Lösung mit variabler Bildnummer war jetzt einfach am schnellsten zu realisieren, was das Grundprinzip angeht. Der Rest sind Details und Komfort. ^^

Re: Random Hintergrundbilder

Verfasst: 25.07.2021 19:28
von chris1278
LukeWCS hat geschrieben: 25.07.2021 19:23 Ah, auch nach Timer, dann sieht es anders aus. Das konnte ich dem Startbeitrag leider nicht entnehmen. Da war nur von
sprich bei jedem Seitenaufruf ein neues Hintergrundbild per Zufall.
die Rede. Eine klare Aufgabenbeschreibung wäre hier sinnvoll gewesen. :wink:
Das mit dem Bilder nach Zeit Intervall war am Anfang auch leider nicht direkt klar. Das kam erst später hinzu.