Random Hintergrundbilder

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
Benutzeravatar
chris1278
Mitglied
Beiträge: 3533
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Random Hintergrundbilder

Beitrag 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
69bruno
Mitglied
Beiträge: 445
Registriert: 05.06.2020 08:21

Re: Random Hintergrundbilder

Beitrag 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.
Forum: cruiser-lounge.de
PHPBB-Version: 3.3.11 / Debian-Linux 10 / PHP-Version: 8.1
Benutzeravatar
chris1278
Mitglied
Beiträge: 3533
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Random Hintergrundbilder

Beitrag 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?
69bruno
Mitglied
Beiträge: 445
Registriert: 05.06.2020 08:21

Re: Random Hintergrundbilder

Beitrag von 69bruno »

Wenn js deaktiviert wäre, ja
Forum: cruiser-lounge.de
PHPBB-Version: 3.3.11 / Debian-Linux 10 / PHP-Version: 8.1
Benutzeravatar
chris1278
Mitglied
Beiträge: 3533
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Random Hintergrundbilder

Beitrag 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.
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2122
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: Random Hintergrundbilder

Beitrag 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?
Möge das Backup mit dir sein. Immer.

Erweiterungen - Infos zur artgerechten Haltung
phpBB Ext Check - Analysesystem für phpBB Erweiterungen (Entwickler Werkzeug)
Benutzeravatar
chris1278
Mitglied
Beiträge: 3533
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Random Hintergrundbilder

Beitrag 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.
69bruno
Mitglied
Beiträge: 445
Registriert: 05.06.2020 08:21

Re: Random Hintergrundbilder

Beitrag 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.
Forum: cruiser-lounge.de
PHPBB-Version: 3.3.11 / Debian-Linux 10 / PHP-Version: 8.1
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2122
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: Random Hintergrundbilder

Beitrag 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. ^^
Möge das Backup mit dir sein. Immer.

Erweiterungen - Infos zur artgerechten Haltung
phpBB Ext Check - Analysesystem für phpBB Erweiterungen (Entwickler Werkzeug)
Benutzeravatar
chris1278
Mitglied
Beiträge: 3533
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: Random Hintergrundbilder

Beitrag 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.
Antworten

Zurück zu „Extension Bastelstube“