[3.3] Recent Topics NG

In diesem Forum können Extension-Autoren ihre Extensions vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2964
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von LukeWCS »

Roger, dann baue ich das gleich um, denn dann kann ich auch die Texte abschliessend formulieren und Sprachvariablen passend ändern.

Was nehmen wir? Optionsliste oder Pulldown? Bei nur 2 Optionen würde ich zur Optionsliste tendieren, aber wir haben da schon ein Pulldown, da würde sich ein zweites ganz gut machen. Auch unter dem Gesichtspunkt, weil speziell im UCP ja schon für simple Ja/Nein Schalter Optionslisten genutzt werden.
Möge das Backup mit dir sein. Immer.
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
Benutzeravatar
IMC
Mitglied
Beiträge: 725
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von IMC »

LukeWCS hat geschrieben: 18.11.2024 19:51 Was nehmen wir? Optionsliste oder Pulldown?
Eine Optionsliste würde ich nur nehmen wenn eine multiple Auswahl möglich ist.
Daher bin ich für ein Pulldown.
Gruß, Thorsten
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2964
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von LukeWCS »

Ich denke du verwechselst das jetzt mit einem Mehrfachauswahl Pulldown (select + multiselect), mit Optionsliste meinte ich jedoch Radio Buttons für 2+ Optionen wo nur eine davon ausgewählt werden kann.

Okay, nehmem wir das einfache Pulldown (select). Dann würde ich jetzt sowieso meine Select Technik die ich bei 2.2.15-pl2 eingebaut hatte, auf den aktuellen Stand bringen, das heisst von EMP 2.1.0 Beta. Für den Stand von RTNG 3.0.0-a2 bedeutet das primär 2 Verbesserungen:
  1. Das Twig Makro erlaubt es jetzt auch Multiselect Menüs erzeugen zu können. Man kann also mit demselben Makro sowohl einfache Auswahlmenüs als auch Mehrfachauswahlmenüs generieren. Bei letzterem werden einfach 2 weitere Parameter übergeben, der erste ist ein Bool zum aktivieren von Multiselect, der zweite definiert, wieviele Elemente standardmässig direkt angezeigt werden sollen.
  2. Bei Select ist es nicht länger notwendig, zusätzlich zur Elementliste auch die Config Variable mit der zuletzt ausgewählten Position zu übergeben. Das läuft jetzt alles über ein einziges Objekt. Im jeweiligen Controller kümmert sich eine neue PHP Funktion um die Generierung des Template Objekts für das Twig Makro.
Zu 2:

Template 3.0.0-a2:

Code: Alles auswählen

{{ common.select('user_rtng_location', RTNG_LOCATION, RTNG_LOCATION_OPTIONS) }}
Template 3.0.0-a3:

Code: Alles auswählen

{{ common.select('user_rtng_location', RTNG_LOCATION_OPTIONS) }}
Controller 3.0.0-a2:

Code: Alles auswählen

			'RTNG_LOCATION'			=> $user_data['user_rtng_location'],
			'RTNG_LOCATION_OPTIONS' => [
				'RTNG_TOP'	 	=> 'RTNG_TOP',
				'RTNG_BOTTOM'	=> 'RTNG_BOTTOM',
				'RTNG_SIDE'	 	=> 'RTNG_SIDE',
				'RTNG_SEPARATE' => 'RTNG_SEPARATE',
			],
Controller 3.0.0-a3:

Code: Alles auswählen

			'RTNG_LOCATION_OPTIONS' => $this->select_struct($user_data['user_rtng_location'], [
				'RTNG_TOP'	 	=> 'RTNG_TOP',
				'RTNG_BOTTOM'	=> 'RTNG_BOTTOM',
				'RTNG_SIDE'	 	=> 'RTNG_SIDE',
				'RTNG_SEPARATE' => 'RTNG_SEPARATE',
			]),
Die Einrückung ist hier falsch, weil die mit Standard 8 Spaces pro Tab arbeitet.
Möge das Backup mit dir sein. Immer.
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
Benutzeravatar
IMC
Mitglied
Beiträge: 725
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von IMC »

LukeWCS hat geschrieben: 18.11.2024 20:58 Ich denke du verwechselst das jetzt mit einem Mehrfachauswahl Pulldown (select + multiselect), mit Optionsliste meinte ich jedoch Radio Buttons für 2+ Optionen wo nur eine davon ausgewählt werden kann.
Das habe ich tatsächlich. Habe dann auch überlegt ob ich dafür eine Begrifflichkeit in meinen Wortschatz habe. Habe ich nicht. War für mich bis heute immer nur eine "Radio button group"
Okay, nehmem wir das einfache Pulldown (select).
Als "Value" aber keinen String, wie in RTNG_LOCATION_OPTIONS, sondern binör mit 1 und 0. Dann kann der restliche Code fortbestehen.
Das Twig Makro erlaubt es jetzt auch Multiselect Menüs erzeugen zu können. .... Im jeweiligen Controller kümmert sich eine neue PHP Funktion um die Generierung des Template Objekts für das Twig Makro.
Das sieht vielversprechend aus. Ich mag deine Makros, und nutze sie fast ausschließlich.
Gruß, Thorsten
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2964
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von LukeWCS »

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". :oops:
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. :lol: 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. :wink:

Ich würde im Laufe des Abends a3 pushen, aber zuvor habe ich noch paar Dinge:
  1. 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.
  2. 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.
  3. 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.
  4. 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 %}
Möge das Backup mit dir sein. Immer.
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
Benutzeravatar
IMC
Mitglied
Beiträge: 725
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von IMC »

Hi Patrick
LukeWCS hat geschrieben: 20.11.2024 17:10 im ACP Modul sind beim Umbau die Lokalisierungen für Bekanntmachungen und globale Bekanntmachungen verlorengegangen.
Hatte ich garnicht gemerkt.
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. ... 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.
Sehr gute Idee.
Da könnte man dann ausnahmsweise mit target="_blank" arbeiten,
Mache ich auch meistens so wenn das Ziel des Links mit den Benutzeraktionen auf der Quellseite nichts zu tun hat.
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.
select_struct() kann ich gerade nicht zuordnen. Werde ich aber sehen wenn Alpha3 online ist. In der neuen Klasse sollen dann Helper-Funktionen zusammen gefasst werden?
Das könnte man, sofern wir die Übersteuerung konsequent nutzen, kompakter gestalten:

Code: Alles auswählen

{%- set switch_type = TOGGLECTRL_RTNG ?? TOGGLECTRL_TYPE ?? 'toggle' %}
Hätte ich eigentlich selbst sehen müssen. Irgendwann wird der Nullish coalescing operator auch in mein "Fleisch und Blut" übergehen.
Gruß, Thorsten
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2964
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von LukeWCS »

IMC hat geschrieben: 20.11.2024 22:43 select_struct() kann ich gerade nicht zuordnen. Werde ich aber sehen wenn Alpha3 online ist.
Ist recht neu, in meinen Exts schon bei manchen in Verwendung. Bei EMP Beta ist die aktuellste Version davon, die hab ich übernommen:

https://github.com/LukeWCS/ext-mgr-plus ... r.php#L104
In der neuen Klasse sollen dann Helper-Funktionen zusammen gefasst werden?
Genau, damit man redundanten Code vermeiden kann. Das war hier fällig, weil ich die neue PHP Funktion gleich in 3 Dateien brauche.
Irgendwann wird der Nullish coalescing operator auch in mein "Fleisch und Blut" übergehen.
Inzwischen schreibe ich schon von vorneherein Funktionen so, dass ich mir umständliche Abfragen sparen kann und gezielt den NCO einsetzen kann.

Okay, dann setze ich das Besprochene so um. Zwischenzeitlich habe ich einen weiteren Bug entdeckt und behoben: bei simple page funktionierten die Einstellungen Anzahl Themen und Seiten nicht. Zuerst dachte ich, du hättest da noch was nicht verdrahtet, als ich das untersuchte. Aber da du nichts erwähnt hast, hab ich den Bug-Jagd-Modus aktiviert und paar Debugs und Versuche später gings dem Bug auch schon an den Kragen. Ein schnöder Tippfehler bei einer Konfig Variable. ^^
Möge das Backup mit dir sein. Immer.
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
Benutzeravatar
IMC
Mitglied
Beiträge: 725
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von IMC »

LukeWCS hat geschrieben: 20.11.2024 23:14 hab ich den Bug-Jagd-Modus aktiviert und paar Debugs und Versuche später gings dem Bug auch schon an den Kragen. Ein schnöder Tippfehler bei einer Konfig Variable. ^^
Gefunden. Ein "s" fehlt. :oops:
Bevor wir das Repro von privat auf public schalten mache ich mir mal einen Plan für strukturiertes Testen. Eine meiner unliebsten Tätigkeiten.
Gruß, Thorsten
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2964
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von LukeWCS »

IMC hat geschrieben: 20.11.2024 23:50 Eine meiner unliebsten Tätigkeiten.
Das macht kein Programmierer gern. :lol:

a3 ist online. Ich bin dann erstmal wieder "abwesend" bei RTNG, phpBB 3.3.14 kam deutlich schneller als erwartet und damit ist EMP 2.0.1 nicht mehr vollständig kompatibel. Das heisst da muss ich endlich mal das Update vom Tisch kriegen und ich muss mich wieder auf den EMP Source konzentrieren.
Möge das Backup mit dir sein. Immer.
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2964
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von LukeWCS »

nAbend

Der nächste der ein Update macht, kann dann PHP Max auf 8.4 setzen. Bereits getestet, wie erwartet keine Probleme mit RTNG. Ich hatte nach Update auf PHP 8.4 direkt EMP und RTNG getestet, da die beiden gerade gut in meiner Wahrnehmung liegen.

Dann erstmal alle Exts deaktiviert und wieder aktiviert, weil ich wissen wollte, wo sonst noch Handlungsbedarf besteht. Das sah dann so aus:

[ externes Bild ]

Da sage ich nur: "same procedure as every year". :lol:
Möge das Backup mit dir sein. Immer.
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
Antworten

Zurück zu „Extensions in Entwicklung“