Seite 1 von 1

Start von openWB mit selbstgewähltem Theme

Verfasst: Di Nov 15, 2022 2:17 pm
von whitecat
Hallo zusammen,

bin gerade dabei, openWB (Version 1.9.278) für einen Bekannten auf einem Raspi einzurichten. Grundsätzlich funktioniert es gut. Nun kam die Frage auf, ob es möglich ist, openWB so einzurichten, dass bei Eingabe der URL im Browser gleich das Theme "colors" aktiv ist und nicht das Theme "standard". In früheren Versionen konnte man den Namen des Themes als URL-Parameter mitgeben, doch das geht ja nun nicht mehr; das gewählte Theme wird in einem Cookie gespeichert, was leider bei Browsern, die (z.B. aus Datenschutzgründen) Cookies beim Beenden löschen, dazu führt, dass man das Theme bei jedem Aufruf händisch neu einstellen muss.

Im Beitrag viewtopic.php?p=8825#p8825 wird vorgeschlagen, das gewünschte Unterverzeichnis im Theme-Verzeichnis (/var/www/html/openWB/web/themes) einfach nach "standard" umzubenennen. Das habe ich nun versucht, und das scheint bei allen anderen Themes auch zu funktionieren, nur bei "colors" nicht - anfangs lief der Startbalken überhaupt nicht durch, irgendwann dann doch, doch die Anzeige ist verstümmelt.

Hat jemand eine Idee, wie man das Theme "colors" zum Standard machen kann? Danke :)

Re: Start von openWB mit selbstgewähltem Theme

Verfasst: Di Nov 15, 2022 3:08 pm
von LutzB
Im Browser eine Ausnahme definieren und die Cookies von openwb nicht löschen.

Re: Start von openWB mit selbstgewähltem Theme

Verfasst: Di Nov 15, 2022 7:35 pm
von hhoefling
Nach einer kleinen Anpassung im PHP könnte man auch wieder einen Aufrufparameter verwenden.
Hab ich mir so gebaut.

Einfach nach

Code: Alles auswählen

			if ( !(isset($_COOKIE['openWBTheme'] ) === true) || !(is_dir('themes/'.$_COOKIE['openWBTheme']) === true) ) {
				$_COOKIE['openWBTheme'] = 'standard';
			}


noch

Code: Alles auswählen

              if (isset($_GET['theme'])) 
		  {
	    		$th=trim($_GET['theme']);
				if (is_dir('themes/'.$th) === true)
				   $_COOKIE['openWBTheme'] =$th; 
		    }
einfügen und dann z.b

Code: Alles auswählen

http://xxx.x.x.x/openWB/web/index.php?theme=EvenDarker
aufrufen.

PS:
Wenn du die Verzeichnisse umbennen kannst, bekommst du das auch hin.

Re: Start von openWB mit selbstgewähltem Theme

Verfasst: Mi Nov 16, 2022 7:24 am
von whitecat
Danke für den PHP-Tipp, werde ich ausprobieren. (Bin zwar kein echter Softwareentwickler, habe jedoch etwas Erfahrung mit PHP, das kriege ich hin.)

Cookie-Ausnahmen sind eben browserabhängig und bei manchen Browsern (z.B. dem schlanken Firefox Focus/Klar auf Android-Geräten) nicht möglich, da bevorzuge ich eine Lösung auf Serverseite, die dann für alle Browser funktioniert.

Mittlerweile habe ich übrigens herausgefunden, warum das reine Umbenennen nicht funktioniert: In der Datei /var/www/html/openWB/web/themes/colors/theme.html werden JavaScript-Dateien mit hartcodierten Pfaden eingebunden:

Code: Alles auswählen

<script src="themes/colors/powerdata.js"></script>
Die werden nach dem Umbenennen natürlich nicht mehr gefunden. Also besser das vorhandene Verzeichnis "standard" umbenennen und es als Softlink zu "colors" neu erstellen:

Code: Alles auswählen

cd /var/www/html/openWB/web/themes
mv standard standard_original
ln -s colors standard
Damit sieht die Seite auf meinem Test-Raspi (ohne Anbindung zu Wechselrichter/Wallbox) zumindest nicht mehr kaputt aus und genau so, wie sie sich auch nach manuellem Umschalten auf das Theme "colors" darstellt. Im Produktivbetrieb testen werde ich es erst in einigen Tagen können.