Servus Thorsten
IMC hat geschrieben: 18.11.2024 23:07
War für mich bis heute immer nur eine "Radio button group"
Ist auch deutlich präziser als mein schludriges "Optionsliste".
Als "Value" aber keinen String, wie in RTNG_LOCATION_OPTIONS, sondern binör mit 1 und 0. Dann kann der restliche Code fortbestehen.
Jupp, hab ich auch so umgesetzt, ich hatte in der Vergangenheit auch schon paar Mal in verschiedenen Exts aus Schalter ein Auswahlmenü gemacht und das geht besonders dann absolut schmerzfrei, wenn Schalter explizit mit 0 und 1 in die DB geschrieben werden und nicht, wie es bei phpBB leider Standard ist, mit leerer String und 1. Ist halt PHP Standard, aber daran werde ich mich wohl nie gewöhnen.

Wenn ich in der DB bei einem Schalter einen leeren String sehe, weiss ich nie, ob das jetzt false/nein bedeutet, oder ob bei der Speicherung was schief ging. Ich habs gerne präzise und explizit und nicht so wischiwaschi-ungefähr-mässig.
Ich würde im Laufe des Abends a3 pushen, aber zuvor habe ich noch paar Dinge:
- Neben dem Fix von Udo hab ich noch einen weiteren vorgenommen; im ACP Modul sind beim Umbau die Lokalisierungen für Bekanntmachungen und globale Bekanntmachungen verlorengegangen.
- Du übersteuerst ToggleCtrl im UCP und Benutzerverwaltung unterschiedlich. Im UCP überschreibst du die globale Variable von TC, das ist in dem Fall kein Problem, da Template Variablen ja Kontext-abhängig generiert werden und im UCP eh nur Radios benutzt werden sollten. Aber deine Übersteuerung in der Benutzerverwaltung gefällt mir besser, die sollten wir konsequent nutzen und damit wäre auch eine potentielle Kollisionsgefahr sofort vom Tisch.
- Bei der einfachen Anzeige nutzt du die Beschreibung des zweiten Schalters dazu, einen generierten Link darzustellen, damit der Admin gleich weiss wie das erreicht werden kann. Du hast das ans Ende vom zweiten Schalter gesetzt, vermutlich damit die beiden Schalter kompakt beieinander stehen. Allerdings ist die Position des Links im Template hardcodet, ich habe daraus eine Platzhalter-Variable gemacht, damit Übersetzer das frei positionieren können. Aber inzwischen hätte ich hier einen ganz anderen Vorschlag: daraus eine reguläre Element-Liste machen, wie alle anderen Einstellungen auch. Dabei die jetzige Beschreibung als Label nutzen und dann den Link nach rechts packen und direkt anklickbar gestalten. Da könnte man dann ausnahmsweise mit
target="_blank"
arbeiten, damit bei Admins keine geänderten Einstellungen verlorengehen können. Den Link natürlich wie jetzt komplett ausschreiben, denn man soll ja direkt sehen, wohin es geht. So hätte man a) alle Seiten von RT direkt verlinkt und b) hätte man gleich eine prima "Überschrift" für die beiden Schalter und der Abschnitt mit den beiden Schaltern und dem Link würde "geordneter" aussehen.
- Für die PHP Funktion
select_struct()
hatte ich zuerst rtng_functions.php
im Visier, aber da gehts komplett um die Darstellung von RT. Darum habe ich eine neue Klasse im Ordner controller
angelegt und als Dienst definiert, damit man da allgemeine Funktionen für die verschiedenen Controller bei RT einbauen kann.
Noch etwas zu 2:
Im Template haben wir aktuell das hier:
Code: Alles auswählen
{%- set switch_type = TOGGLECTRL_TYPE ?? 'toggle' %}
{%- set switch_type = TOGGLECTRL_RTNG ? TOGGLECTRL_RTNG : switch_type %}
Das könnte man, sofern wir die Übersteuerung konsequent nutzen, kompakter gestalten:
Code: Alles auswählen
{%- set switch_type = TOGGLECTRL_RTNG ?? TOGGLECTRL_TYPE ?? 'toggle' %}
Übrigens, aber das nur am Rande, für die zweite Zeile gibts auch eine kompakte Notation:
Code: Alles auswählen
{%- set switch_type = TOGGLECTRL_RTNG ?: switch_type %}
ist äquivalent zu:
Code: Alles auswählen
{%- set switch_type = TOGGLECTRL_RTNG ? TOGGLECTRL_RTNG : switch_type %}