Benutzerabhängige MenüStruktur

Wünsche, Anträge, Fehlermeldungen
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Benutzerabhängige Menü Struktur

Beitrag von Günther »

Habe mal wieder eine Idee:

Da es immer wieder zum Konflikt zwischen einfacher Bedienung und Funktionsvielfalt kommt, würde sich ein dynamisch anpaßbares Menü nach Kategorien (z.B. Hirnlos, Normal, Profi, Entwickler, ...) anbieten.

Mein Paradebeispiel hierzu ist der Rechner von Windows (für Linux gibt es bestimmt vergleichbares). Im Standard-Mode gibt es nur die einfachsten Grundrechenarten. Damit kommt jeder klar und keiner wird durch nicht benötigte Funktionen verwirrt. Braucht man mehr, betätigt man den Schalter 'Wissenschaftlich' und hat dann deutlich mehr Funktionen zur Verfügung.

Bei der Dbox könnte dies recht einfach mittels dem active Flag erreicht werden:
z.B.

Code: Alles auswählen

typedef struct MENUMODE = { MENU_NORMAL, MENU_EXPERT, MENU_DEVELOP};
networkSettings.addItem(new CMenuForwarder(LOCALE_NETWORKMENU_TEST, g_settings.menu_mode & MENU_EXPERT, NULL, this, "networktest", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN));
Allerdings wird hierbei der Menüpunkt nur ausgegraut und bei einer Änderung müßte Neutrion neugestartet werden. Besser wäre natürlich wenn er ganz weg wäre.
Dafür müßte allerdings größere Änderungen vorgenommen werden (z.B. visible flag hinzufügen oder menumode hinzufügen und in Menü.cpp globale Variabel g_settings.menu_mode abfragen).
Oder man patched jede Zeile (recht unschön) so:

Code: Alles auswählen

if(g_settings.menu_mode & MENU_EXPERT) networkSettings.addItem(new CMenuForwarder(LOCALE_NETWORKMENU_TEST, true, NULL, this, "networktest", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN));
(erfordert ebenfalls neustart von neutrino bei Änderung)

Ganz unabhängig davon müßte aber auch erst einmal sinnvolle Gruppen (z.B. normal, Profi, Entwickler) gefunden werden, und die Menüpunkte entsprechend zugeordnet werden (das könnte dann bevorzugt von der jeweiligen Gruppe gemacht werden ;)) .

Ich wollte mich hier zwecks Implementierung erstmal nicht vordrängeln, sondern nur mal als Ideengeber dienen ;)

Günther


PS:
Hey, das mit Hirnlos war nur ein SCHERZ!
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Eine gute Idee um sich hier die ein oder andere Diskussion um
Menüinhalte zu ersparen.

Die Aufteilung in drei Gruppen halte ich für durchaus sinnvoll...

Für die Gruppe "Zapper" würde ich einfach im Hauptmenü die
Punkte Einstellungen, Service und Skripte (Skripte ist
eh falsch einsortiert...).

Für die Gruppe "Anwender" könnte man gewisse Grundfunktionen
wie Kanalsuche, Sortierung usw. freisschalten.

Für die Gruppe "Experte" den ganzen restlichen "Müll" auch :D

Ideal wäre natürlich eine Konfigurierbarkeit der jeweils ersichtlichen
Menüpunkte für jede Benutzerebene... Das wäre aber wieder ein Fenster
mehr und das führt bestimmt wieder zu Diskussionen... :-?


Gruß
____Paule[/b]
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

2 Usertypen würden normal ausreichen, lohnen tut sich das aber nur wenn die zusätzlichen Menü's verschwinden und diese auch ohne Neustart ein/ausgeschaltet werden können.

Zusätzlich stellt sich dann die Frage was wäre Rookie und was Expert?
Ich habe die Erfahrung gemacht das die Standart Medion Reciever Nutzer garkeine Einstellungen nutzen und mit den enthaltenen auch garnichts anfangen können.
Nirvana
Erleuchteter
Erleuchteter
Beiträge: 646
Registriert: Mittwoch 16. April 2003, 14:12

Beitrag von Nirvana »

Gibt es hier irgendjemanden, der sich eine freiwillige Funktionseinschränkung wünscht?
Meines Erachtens widerspricht das der menschlichen Natur.
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

Nirvana hat geschrieben:Gibt es hier irgendjemanden, der sich eine freiwillige Funktionseinschränkung wünscht?
Meines Erachtens widerspricht das der menschlichen Natur.
Schau mal andere Threads durch. Da gibt es Leute die sich
über jede Einstellmöglichkeit weniger freuen... :D

Für die wünsche ich mir das... Und für die Kids vielleicht... Damit die
nichts verbiegen können... :lol:
zexma
Tuxboxer
Tuxboxer
Beiträge: 2067
Registriert: Mittwoch 6. März 2002, 15:29

Beitrag von zexma »

Nirvana hat geschrieben: freiwillige Funktionseinschränkung wünscht?
Meines Erachtens widerspricht das der menschlichen Natur.
doch, ich! bin ich nun ein tier? :gruebel: :wink:
wir sprechen doch hier nicht über selbstbeschneidung, sondern über erzwungene, gesteuerte funktionsbeschneidung bei "anderen".
der sog. "DAU-Funktionsgarantiesicherung" 8)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

@Günther
die idee ist schon nicht schlecht. nur denkste, das die kids das nicht einfach wieder einschalten können? wenn das im menü steht? man müsste das mit einen passwort absichern. die abstufung

dev
profi
beginner

muss ja nicht sein. einfach

einrichten modus
benutzen modus

reicht doch aus.
und das würde den neutrino code nicht übermäßig aufblähen.
ich hab mal paar bilder gemacht, wie ich mir die begrenzung so vorstelle.

Bild
Bild
Bild
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Beitrag von PT-1 »

PauleFoul hat geschrieben:Eine gute Idee um sich hier die ein oder andere Diskussion um
Menüinhalte zu ersparen.

Die Aufteilung in drei Gruppen halte ich für durchaus sinnvoll...

Für die Gruppe "Zapper" würde ich einfach im Hauptmenü die
Punkte Einstellungen, Service und Skripte (Skripte ist
eh falsch einsortiert...).

Für die Gruppe "Anwender" könnte man gewisse Grundfunktionen
wie Kanalsuche, Sortierung usw. freisschalten.

Für die Gruppe "Experte" den ganzen restlichen "Müll" auch :D

Ideal wäre natürlich eine Konfigurierbarkeit der jeweils ersichtlichen
Menüpunkte für jede Benutzerebene... Das wäre aber wieder ein Fenster
mehr und das führt bestimmt wieder zu Diskussionen... :-?


Gruß
____Paule[/b]
Ich habe doch da vor einer Wiele mal etwas unter der Dev Section gepostet. Die Englaender hatten soetwas auch scon in ihrem Image drin wo man einfach funktionen Ein-Aus Schalten konnte

Muss mal schauen ob es dan noch mehr Diff es gibt
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

mb405 hat geschrieben:pt-1 meint das hier http://forum.tuxbox-cvs.sourceforge.net ... hp?t=43035
Jo das wäre doch mal ein Ansatz... Wobei sich mir die Frage der
Konfigurierbarkeit der Rechte stellt um es gleich zu vermeiden
Diskussionen über das Thema "Wer darf was" führen zu müssen.

Man könnte ja (ausgehend von zwei bis drei Benutzergruppen)
bestimmte Menüpunkte/Funktionen definieren. Diese sind dann in
einen Menü einstellbar. Beispiel:

1. Hauptmenü offnen (Taste dbox) ------- (zapper/anwender/experte)
1.1 Skripte nutzen -------------------------- (zapper/anwender/experte)
1.2 Einstellungen ändern ------------------- (zapper/anwender/experte)
1.3 Service aufrufen ------------------------ (zapper/anwender/experte)

und so weiter... Natürlich kann man das auch noch auf Subeinstellungen
der Menüs "Einstellungen" und "Service" erweitern.

Man müsste dann einfach die entsprechenden Menüpunkte in Abhängigkeit
des angemeldeten Benutzers und der konfigurierten Rechte aus bzw.
einblenden...

Gruß
____Paule
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

siehe meine bilder oben :)
sind die einstellungen für den täglichen betrieb auf meiner "Elternbox" da verstellen die wenigstens nicht alles gleich.
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

@mb405: Genau, so in etwa hatte ich mir das auch vorgestellt :)
@PauleFoul: yepp, da müßte man erstmal ein gutes Design überlegen, damit die ganze Sache überhaupt Sinn macht. Das Coding ist wahrscheinlich das geringste dabei.

Ob einzelne Benutzergruppen eingeschränkt werden müssen (also nicht die Nutzergrupper verstellen dürfen) ist dabei ein ganz anderes Thema. Grundsätzlich geht es erstmal darum, das jeder für sich das beste Menü wählen kann.

Der UK-Patch ist -soweit ich das hier sehen kann- nicht dynamisch. Einfach ein paar Menüpunkte rausschmeissen bringt uns hier leider nicht weiter (aber schön wärs ja gewesen, wenn die Arbeit schon jemand anders gemacht hätte :P )

Hier ist noch übrigens meine Idee zur den User-Gruppen (hatte ich das letzte mal nicht wiedergefunden):

Einfach
Für tech. unbegabte Personen mit wenig ausgebildeten Abstraktionsvermögen. Diese Leute verstehen den Aufbau von Menüs nicht und sind schon verloren wenn die erste Menü-Ebene aufpoppt. Diese Leute brauchen gut funktionierende Grundeinstellungen und sehr wenige zusätzliche Funktionen (z.B. Aufnahme-Start, Aufnahme-Stop). Alle Funktionen liegen bevorzugt auf diskreten Tasten. Zu viele Funktionen schrecken diese Personen so ab, das sie das Gerät u.U gar nicht mehr bedienen wollen.
Beispiel: Meine Oma, oder mit Abstrichen meine Mutter.

Normal
Diese Personen wissen was Menüs sind und können sich beschränkt darin zurechtfinden. Bestimmte Funktionen können diesen Personen gezeigt werden (persönliches Training), welche dann auch wiedergefunden und benutzt werden. Aktive Tasten sollen im Bildschirm mit kurzer Funktionsbeschreibung angezeigt werden. Bevorzugt überläßt diese Personengruppe die Benutzung von Menüs aber anderen Personen im Raum, die sich damit besser auskennen.
Auch hier gilt, zuviele Funktionen verwirren und erschweren das persönliche Training.
Beispiel: Meine Frau, Entwickler a.D., z.B. mein Vater (der sogar noch als Rentner Access-Datenbanken erstellt, aber trotzdem reicht es nicht für die nächste Gruppe ;))

Experte
Diese fühlen sich erst wohl, wenn sie bei einem neuen Gerät alle Einstellungen mind. einmal ausprobiert haben, und einen kausalen Zusammenhang zwischen Ursache und Wirkung hergestellt haben. Trotzdem ärgert es sie, wenn bestimmte Funktionen nicht zuverläßig funktionieren.
Beispiel: Technikfreaks (tuxboxler), Freunde, Meine Kinder ;), Entwickler anderer tech. Geräte

Entwickler
Diese Gruppe will alles was möglich ist ausprobieren. Halbgare Sachen schrecken diese Leute nicht ab - ganz im Gegenteil - Hauptsache es gibt etwas Neues. Die Frusttoleranz bei Fehlern ist erschreckend hoch und befähigt zum Studium eines tech. Studienganges.
Beispiel: Entwickler (der dbox), sehr aktive Technikfreaks (tuxboxler),

Bis zum jugendlichen Alter von 30 Jahre gehörte ich noch ohne Ausnahme zu der Entwickler-Gruppe. Mittlerweile kommt es aber immer häufiger vor, das ich keine Lust (und manchmal auch keine Zeit) habe, die Eigenheiten jedes tech, Gerätes genau auszuloten. Es soll dann einfach nur funktionieren (z.B. die neue Gastherme, mit einer super-dupper-Funktionsvielfalt in kryptischen Menüs). (Ich bin da doch tatsächlich schon ein wenig in die Normal-Gruppe reingerutscht. ;))
Die Menüs von vielen Geräten werden immer noch von technikverliebten Ingenieuren (und nicht von Designern) erstellt, was ich (immer schon) als kapitalen Prozessfehler ansehe.

Deshalb war meine Idee, ob man das bei der dbox besser machen könnte, vor allem weil in anderen Themen gerade über die Funktionsvielfalt vs. Unübersichtlichkeit diskutiert wurde. Als Entwickler habe ich nämlich auch gerne alle möglichen (und unmöglichen) Funktionen zur Verfügung habe - mir ist aber bewußt , daß das andere völlig verwirren kann.

Günther
Zuletzt geändert von Günther am Freitag 29. September 2006, 17:41, insgesamt 2-mal geändert.
PauleFoul
Wissender
Wissender
Beiträge: 1839
Registriert: Sonntag 17. August 2003, 01:39

Beitrag von PauleFoul »

@ Günther

Also ich sehe das wie Du, jeder sollte sich seine Menüs selbst
zusammenbauen können. Dies geht sollte mit ein wenig Hirnschmalz
einfach zu realisieren sein.

Vorschlag:

Man kann in einer Maske Beutzer mit einem Namen anlegen (z.B. Kind),
diesem Benutzer kann man dann ein Level zuweisen (z.B. Einfach).

Die Definitionen von den einzelnen Leveln (Einfach, Normal, Experte & Entwickler)
können wie oben bereits von mir beschrieben jedem einzelnen Level
frei zugewiesen werden.
Wir müssen also nur die Menüpunkte/Funktionen definieren die konfiguriert
werden können. Es ist ja dann auch vorstellbar diese Liste entsprechend
auszubauen und zu erweitern. Per Default könnten gewisse sinnvolle
Aufteilungen der einzelnen Level vorgenommen werden, die sich
dann aber jeder einzelne User individuell anpassen kann.

Gruß
____Paule
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

PauleFoul hat geschrieben: Man kann in einer Maske Beutzer mit einem Namen anlegen (z.B. Kind),
diesem Benutzer kann man dann ein Level zuweisen (z.B. Einfach).
Yepp, das wäre praktisch (einen Benutzerwechsel gibt es glaube ich schon als plugin, aber fest eingebaut finde ich praktischer) . Ist aber eigentlich ein neues Thema ;)
PauleFoul hat geschrieben: Es ist ja dann auch vorstellbar diese Liste entsprechend
auszubauen und zu erweitern. Per Default könnten gewisse sinnvolle
Aufteilungen der einzelnen Level vorgenommen werden, die sich
dann aber jeder einzelne User individuell anpassen kann.
Das wäre natürlich auch schick - ich wäre aber schon froh, wenn die einfache Variante (festeingestellt) realisert werden kann.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

also bitte nicht erschlagen jungs, aber reichen 3 level nicht vollkommen? warum soll man die sache nur unnötig komplizieren. experte und entwickler sind ja fast gleich, also warum da nochmal unterscheiden.

1.level = alles frei, so wie bis jetzt (Experte)
2.level = so wie in meinen bildern oben gezeigt+die ganzen fileplayer(Normal)
3.level = so wie in meinen bildern oben gezeigt(Einfach)

mehr benötigt denke ich keiner. ausgrauen finde ich nicht so toll, denn das weckt die neugier auf die versteckten funktionen(gehe ich von mir aus)

da jedes mal ein neutrino neustart benötigt wird, könnte man eventuell automatisieren, nach jeden umstellen in den leveln.
DrStoned
Tuxboxer
Tuxboxer
Beiträge: 2614
Registriert: Montag 20. Mai 2002, 10:49
Image: JTG-Image [IDE] Version 2.4.4
Image: (7025SS) Merlin

Beitrag von DrStoned »

Günther hat geschrieben:einen Benutzerwechsel gibt es glaube ich schon als plugin
Ja, das hat PauleFoul geschrieben. :wink: 8)

Greetz von DrStoned :lol: :lol: :lol:
Greetz von DrStoned :lol: :lol: :lol:
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ja das bringt uns hier aber nicht weiter.
das ganze muss ja in neutrino gecodet werden. plugins bringen da nix.

Edit wie wäre es mit einer "gedächtnis variable". beim neutrinostart wird ja die neutrino.conf eingelesen. wenn zu diesem zeitpunkt eine varable gesetzt wird, die den aktuellen zustand der einstellung speichert. dann wird anschliesend die variable einer anderen old_variable zugewiesen.
wenn jetzt geändert wird, und abgespeichert, dann vergelciht man old_avriable mit variable und bei ungleichheit wird neutrino neu gestartet.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

also ich habs fertig. funkt auch schon. und neutrino wird neu gestartet, wenn man den userlevel ändert.
ich werde mal heute abend mich versuchen, ein diff zu erstellen.

ein diff aufs cvs geht das ??
ich hab bisher immer 2 verzeichnisse, mit den quell und modifizierten dateien erstellt, und dann diff so aufgerufen

diff -Naur quellverz modverz > diff
hannebamb(el)
Foren-Moderator
Beiträge: 297
Registriert: Montag 11. Oktober 2004, 14:51

Beitrag von hannebamb(el) »

cvs diff -u /pfad/zu/deiner/source/datei.c > /tmp/patch

sollte klappen
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

sind ja mehrere dateien. aber ich versuche mal den aufruf so.
in /tuxbox-cvs/apps/tuxbox/neutrino

cvs diff -u >neutrino.diff
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

so. wie versprochen hier die diff es

1.gegen das cvs
http://home.arcor.de/mb407/dbox2/neutri ... level.diff

2.verzeichnis org gegen verzechnis mod
http://home.arcor.de/mb407/dbox2/neutri ... l_man.diff

also es sind userlevel drin, aber über die aufteilung lässt sich noch reden. es ist auch ein neutrino neustart bei veränderung der userlevel und abspeichern der einstellungen drin. eine passwortabfrage hab ich noch nicht drin. aber es soll ja meinen ansatz aufzeigen. codeversteher können das jederzeit noch verbessern.

ich hab auch noch den patch von Günther, der das imageupdate grafisch auf dem lcd ausgibt ein wenig modifiziert. den werde ich dann das wochenende mal mit online stellen.
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

mb405 hat geschrieben:so. wie versprochen hier die diff es

1.gegen das cvs
http://home.arcor.de/mb407/dbox2/neutri ... level.diff

2.verzeichnis org gegen verzechnis mod
http://home.arcor.de/mb407/dbox2/neutri ... l_man.diff

also es sind userlevel drin, aber über die aufteilung lässt sich noch reden. es ist auch ein neutrino neustart bei veränderung der userlevel und abspeichern der einstellungen drin. eine passwortabfrage hab ich noch nicht drin. aber es soll ja meinen ansatz aufzeigen. codeversteher können das jederzeit noch verbessern.
Super sache. Mal sehen ob ich das WE Zeit habe das auszuprobieren.
Das mit dem Entwickler-Level hätte ev. schon seine Berechtigung. Dort könnten auch halbgare Sachen reinkommen, die man als Entwickler mal so eben braucht, die aber selbst unsere Power-user verwirren würde. Oder halbfertige Ideen, die erst noch ein paar Wochen im orginal Image getestet werden sollten. Ist aber nicht wirklich wichtig ...
mb405 hat geschrieben: ich hab auch noch den patch von Günther, der das imageupdate grafisch auf dem lcd ausgibt ein wenig modifiziert. den werde ich dann das wochenende mal mit online stellen.
yepp, so habe ich mir das Hacken vorgestellt :). Einfach mal einen halbgaren Patch posten, irgendjemand wird damit schon was anfangen können und fertigstellen. So macht das richtig Spaß :)

Günther
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

nicht das du mir das jetzt übel nimmst ????
mich hats nur gestört, das beim update oder auslesen ohne tv nix kam, und man nicht wusste was passiert.
Das mit dem Entwickler-Level hätte ev. schon seine Berechtigung. Dort könnten auch halbgare Sachen reinkommen, die man als Entwickler mal so eben braucht, die aber selbst unsere Power-user verwirren würde
es gibt doch dafür das experimental menü. da kommen dann solche sachen rein.
ich bin sowieso dafür, das mal der neutrino.cpp code aufgeräumt wird.
kann man nicht die einzelnen punkte bei den einstellungen auslagern in ein extra verzeichnis unter neutrino/src/gui/menu_settings.
damit würde der neutrino code aufgeräumter.
man könnte ja eine art grundgerüst code bauen, wo dann nur die funktionen reinkommen.
jetzt kommt bald die kalte zeit. da könnte man sowas mal in angriff nehmen.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

ich hab mal fix das andere zeug mit in das diff aufgenommen, da ich das wochenende keine zeit habe.

-neutrino userlevel
-show infobar bei epg wechsel (hab ich von einen board). siehe bemerkungen im code!
-updateinfo auf lcd (schamlos stohlen by Günther :) )

wieder einmal gegen das cvs
http://home.arcor.de/mb407/dbox2/neu_us ... pdate.diff

und einmal mit 2 verzeichnissen
http://home.arcor.de/mb407/dbox2/neu_us ... e_man.diff
Günther
Developer
Beiträge: 587
Registriert: Freitag 9. September 2005, 21:48

Beitrag von Günther »

mb405 hat geschrieben:nicht das du mir das jetzt übel nimmst ????
Nein, nein, das habe ich schon so gemeint wie ich es geschrieben habe ;). Mein halbgarer Patch damals war noch nichts für das cvs, trotzdem habe ich ihn mal hier gepostet, weil ich dachte, irgendjemand weiss damit vielleicht etwas mit anzufangen. Hat mich einfach nur spontan gefreut das es auch so war und dieses Einstellen nicht vergeudete Zeit war. Eine Grundidee des 'Hackens' ist ja: einer fängt mit was an und jemand anderes baut darauf auf und entwickelt es weiter.

Günther
Peace ;)