Plugins im Hauptmenü und Systemmenü anzeigen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Plugins im Hauptmenü und Systemmenü anzeigen

      Hi zusammen,

      ich habe mal ein bissl was probiert.
      Und zwar kann man ein Plugin auch an diversen anderen Stellen anzeigen lassen.
      Standardmäßig findet man es ja nach der Installation in "Spiele/Erweiterungen"

      Hier mal ein paar Beispiele, wie die verschiedenen Möglichkeiten aussehen könnten. Wir nehmen als Beispiel mal ein Menü-Plugin:

      Plugin im Hauptmenü:

      PHP-Quellcode

      1. ## Begin Plugindescription
      2. def startmain(session, **kwargs):
      3. session.open(menu)
      4. def main(menuid):
      5. if menuid == "mainmenu":
      6. return [("Extra Menu", startmain)]
      7. else:
      8. return []
      9. def Plugins(path, **kwargs):
      10. global plugin_path
      11. plugin_path = path
      12. return PluginDescriptor(
      13. name="Extensionsmenu",
      14. where = PluginDescriptor.WHERE_SETUP,
      15. description=_(""),
      16. icon="",
      17. fnc = main
      18. )
      Alles anzeigen


      Plugin im Systemmenü:

      PHP-Quellcode

      1. ## Begin Plugindescription
      2. def startmain(session, **kwargs):
      3. session.open(menu)
      4. def main(menuid):
      5. if menuid == "system":
      6. return [("Extra Menu", startmain)]
      7. else:
      8. return []
      9. def Plugins(path, **kwargs):
      10. global plugin_path
      11. plugin_path = path
      12. return PluginDescriptor(
      13. name="Extensionsmenu",
      14. where = PluginDescriptor.WHERE_SETUP,
      15. description=_(""),
      16. icon="",
      17. fnc = main
      18. )
      Alles anzeigen


      Plugin unter der blauen Taste:

      PHP-Quellcode

      1. ## Begin Plugindescription
      2. def main(session, **kwargs):
      3. session.open(menu)
      4. def Plugins(path, **kwargs):
      5. global plugin_path
      6. plugin_path = path
      7. return PluginDescriptor(
      8. name="Extensionsmenu",
      9. where = PluginDescriptor.WHERE_EXTENSIONSMENU,
      10. description=_(""),
      11. icon="",
      12. fnc = main
      13. )
      Alles anzeigen


      Plugin unter "Spiele/Erweiterungen":

      PHP-Quellcode

      1. ## Begin Plugindescription
      2. def main(session, **kwargs):
      3. session.open(menu)
      4. def Plugins(path, **kwargs):
      5. global plugin_path
      6. plugin_path = path
      7. return PluginDescriptor(
      8. name="Extensionsmenu",
      9. where = PluginDescriptor.WHERE_PLUGINMENU,
      10. description=_(""),
      11. icon="",
      12. fnc = main
      13. )
      Alles anzeigen

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von simatec ()

    • Iche mochte in Systemmenu der Tuxcommander Plugin....

      Quellcode

      1. def startmain(session, **kwargs):
      2. session.open(TuxComStarter)
      3. def main(menuid):
      4. if menuid == "system":
      5. return [("Extra Menu", startmain)]
      6. else:
      7. return []
      8. def Plugins(**kwargs):
      9. return PluginDescriptor(name="TuxCom", description="TuxBox Commander", where = PluginDescriptor.WHERE_SETUP, fnc=main)
      Alles anzeigen




      Ich habe error mit WHERE_SETUP (leide auch mit WHERE_MENU)

      danke
      gibran

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von gibran ()

    • Alles OK

      Plugin im Hauptmenü:

      Quellcode

      1. def main(session, **kwargs):
      2. session.open(TuxComStarter)
      3. def menu(menuid, **kwargs):
      4. if menuid == "mainmenu":
      5. return [(_("TuxCom"), main, "TuxCom", 45)]
      6. return []
      7. def Plugins(**kwargs):
      8. return PluginDescriptor(name="TuxCom", description="TuxBox Commander", where = PluginDescriptor.WHERE_MENU, fnc = menu)


      Plugin im Systemmenü:

      Quellcode

      1. def main(session, **kwargs):
      2. session.open(TuxComStarter)
      3. def menu(menuid, **kwargs):
      4. if menuid == "system":
      5. return [(_("TuxCom"), main, "TuxCom", None)]
      6. return []
      7. def Plugins(**kwargs):
      8. return PluginDescriptor(name="TuxCom", description="TuxBox Commander", where = PluginDescriptor.WHERE_MENU, fnc = menu)


      gibran
    • wie kann ich ein Script damit starten?

      Würde gerne ein Eintrag im Menü haben und wenn ich dort drauf klicke soll ein script starten.

      Quellcode

      1. from Plugins.Plugin import PluginDescriptor
      2. from Screens.Console import Console
      3. cmd = "/usr/sbin/test.sh"
      4. def main(session, **kwargs):
      5. session.open(Console,_("test.sh"),[cmd])
      6. def Plugins(**kwargs):
      7. return [PluginDescriptor(name="Script-Updating", description=_("execute /usr/sbin/test.sh"), where = PluginDescriptor.WHERE_MENU, fnc=menu)]
    • mit dem Script Executer kann das mühsam werden, bis man sich bis zum entsprechende Script "durchgegklickt" hat, einfacher ist es, das Plugin im Erweiterungs Menu auftauchen zu lassen und dann per Quickbutten auf eine Farbtaste LANG zu legen, dann kann man es per "one click" ausführen ..

      Für den Menü Eintrag kann man das DVDPlayer Plugin, den Mediaplayer oder den Webbrowser als Vorlage nehmen, da wird der Menüeintrag in der plugin.py definiert. Ich hatte ich da auch mal damit rumgespielt. Im Beispiel auch der Eintrag unter System, einmal mit und einmal ohne Leerzeichen im Namen des Menu Eintrages sowie Beispiel Einsortierung "alphabetisch" oder "immer oben"

      könnte dann etwa so aussehen (nicht benötigtes rauslöschen):

      Quellcode

      1. from Plugins.Plugin import PluginDescriptor
      2. from Screens.Console import Console
      3. cmd = "/usr/sbin/test.sh"
      4. def main(session, **kwargs):
      5. session.open(Console,_("test.sh"),[cmd])
      6. ## Eintrag im Hauptmenue
      7. def addtomenu(menuid, **kwargs):
      8. if menuid == "mainmenu":
      9. return [(_("Script Updating"), main,"script_updating", 45)] ## 45 = 2. Eintrag im Menue (default: Webbrowser und Mediaplayer), 46 = 3. Eintrag (default: DVD Player), wenn Mediaplay und Browser installiert
      10. else: ## wenn es ein Plugin mit "45" gibt (Webbrowser, Mediaplayer), alphabetische Einsortierung der plugins mit menuid "45"
      11. return [] ## 47 = 4 Eintrag, wenn Mediaplayer, Webbrowser und DVD Player installiert sind, wenn nicht rutscht der Eintrag entsprechend hoeher ..
      12. ## Eintrag im Systemmenue
      13. def addtosystem(menuid, **kwargs):
      14. if menuid == "system":
      15. return [(_("Script-Updating"), main,"script-updating", None)] ## None = Menueeintrag in alphabetischer Reihenfolge einsortiert
      16. else: ## Script Updating waere dann womoeglich auf der 2. Seite bzw. als letzer Eintrag
      17. return [] ## im System Menu kann auch mit id 45, 46 etc der Eintrag priorisiert werden
      18. def Plugins(**kwargs):
      19. return [
      20. ## Eintrag unter MENU
      21. PluginDescriptor(name="Script Updating", where = PluginDescriptor.WHERE_MENU, fnc=addtomenu),
      22. ## Eintrag unter SYSTEM
      23. PluginDescriptor(name="Script-Updating", where=PluginDescriptor.WHERE_MENU, fnc=addtosystem),
      24. ## Eintrag unter Erweiterungen
      25. PluginDescriptor(name=_("Script-Updating"), description=_("execute /usr/sbin/test.sh"), where=PluginDescriptor.WHERE_PLUGINMENU, fnc=main),
      26. ## Eintrag im Userpanel (blaue Taste)
      27. PluginDescriptor(name=_("Script-Updating"), description=_("execute /usr/sbin/test.sh"), where=PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)
      28. ]
      Alles anzeigen


      die plugin.py für einen Eintrag nur im Hauptmenü an 1.Stelle (id = 44) - also soweit wie möglich oben einsortiert

      Quellcode

      1. from Plugins.Plugin import PluginDescriptor
      2. from Screens.Console import Console
      3. cmd = "/usr/sbin/test.sh"
      4. def main(session, **kwargs):
      5. session.open(Console,_("test.sh"),[cmd])
      6. def addtomenu(menuid, **kwargs):
      7. if menuid == "mainmenu":
      8. return [(_("Script Updating"), main,"script_updating", 44)]
      9. else:
      10. return []
      11. def Plugins(**kwargs):
      12. return [PluginDescriptor(name="Script Updating", where = PluginDescriptor.WHERE_MENU, fnc=addtomenu)]
      Alles anzeigen
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Fred Bogus Trumper ()

    • ja, das ist möglich, den code div. Plugins zu durchsuchen hilft da enorm weter ... ;)

      Das musst du aber selbst proggen bzw. kannst du den Script Executer von Ali Abdul als Vorbild nehmen, das wäre am einfachsten
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$
    • Habe es seit längerem schon im Einsatz um ein Script zu starten.
      Versuche eine Abfrage einzubauen bin mit python nicht vertraut und komme nicht klar.
      Kann mir jemand eine Abfrage ja/nein einbauen. Nein automatisch gesetzt und bei ja soll das Script gestartet werden?
    • man muss eine Klasse mit einem Screen einbauen

      Ich habe so etwas für OE2.5 für mich gefrickelt und ich vermute, dass das nicht ohne Anpasssung im OE2.0 funktioniert wird. ich müsste meine alte dm800se ausgraben, wenn du das für die dm500hd lt. deinem Profil benötigst. Ich weiß aber nicht ob ich Lust dazu habe zudem ich alles andere als ein Pythonprogrammierer bin

      sieh dir mal @gutemines Benutzerscript an, damit kann man soweit ich weiß das Script mit einer Abfrage starten
      allerdings musst die wie beim Script Executer Plugin durchklicken

      aber zur Zeit ist das OoZooN Board offline von dem man das akutelle plugin downloaden kann
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$
    • Für die dm920 kann ich das vielleicht schnell umbiegen, vielleicht komme heute noch dazu

      Vielleicht funktioniert das dann auch im OE2.0, sofern das auf der dm7020hd installiert ist

      Zur anderen Box kann ich nichts sagen.
      Gruß Fred

      Die Dreambox ist tot, es lebe die Dreambox

      ¯\_(ツ)_/¯

      Quellcode

      1. root@dm920:~$ mount | grep "/ "
      2. /dev/mmcblk1p1 on / type ext4 (rw,relatime,data=ordered)
      3. root@dm920:~$