Zugriff auf Objekte aus ZPScripting mit "Web-Browser" aus einem Widget

  • Hallo, gibt es irgend eine Möglichkeit, Objekte aus ZPScripting an JavaScript, das in einem Webbrowser in einem eigenen Widget läuft, zu übergeben?

    Konkret möchte ich im Widget-Webbrowser ein Array mit allen Seiten haben, ähnlich wie projectFolder.allPages.

    PS: Was ist bedeutet eigentlich die Option "Online-Modul-Ereignisse senden"?

    Freundliche Grüße
    Philipp

    ---------------------------------------------------------------
    Widgets für Zeta Producer: widget-zp.de

  • Scripting tags werden nur in HTML und CSS Dateien aufgelöst, in JS nicht, weil jede Auflösung das Rendern potentiell verlangsamt.

    Daher wird das manchmal bei JS etwas kompliziert. Schau Dir mal das Widget Verfügbarkeitskalender an, da übergebe ich ja auch die belegten Tage als Datenstrukturen per eingebettetem JSON an JS. Ich denke, dieses Verfahren könntest Du für deinen Anwendungsfall auch nutzen.

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • Hallo, ich habe mir das Widget gerade angeschaut und werde mir diesen Trick auf jeden Fall mal merken für andere Widgets. Leider lässt sich mein Problem meiner Meinung nach damit nicht lösen, ZPScripting läuft ja nur im HTML des Widgets und nicht im Widget WebView / Webbrowser:

    (Der Teil mit dem <$= system.generator $> steht in einer .html, die ich als URL für den Webbrowser angegeben habe)

    Da möchte ich irgendwie auf die Objekte zugreifen können, hast du vielleicht noch eine andere Idee? Gibt es in ZP eine lokale API dafür?

    Freundliche Grüße
    Philipp

    ---------------------------------------------------------------
    Widgets für Zeta Producer: widget-zp.de

  • Was meinst Du genau mit "Widget WebView / Webbrowser"?

    (Der Teil mit dem <$= system.generator $> steht in einer .html, die ich als URL für den Webbrowser angegeben habe)

    Das verstehe ich mangels Kontext noch nicht. Wird aber bestimmt klarer, nach Beantwortung meiner Frage am Anfang dieses posts.

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • Ich glaube ich verstehe langsam. Du Scheinst im Widget ein "type": "web-browser" das eine bestimmte .html Datei anzeigt, die dem Widget beiliegt. Darin wird auch kein Skripting aufgelöst, weil das ja keine geänderten Seiten sind.

    Um Dir ne Lösung bzw. einen workaround anbieten zu können, müsste ich genau verstehen, Ewas Du da im HTML genau anzeigen möchtest…

    Der web-browser ist halt abgekapselt und daher relativ eingeschränkt. Sieht man ja auch im Widget "Wetteranzeige", in dem man die GEO-Koordinaten hin und her kopieren muss, weil das programmatisch nicht zu machen war…

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • Genau, so ist es.

    Ich möchte ein komplett manuelles Menü-Widget erstellen, mit dem man Menüeinträge individuelle erstellen & anordnen kann.

    Da man mit den Feldtypen von ZP weder Drag-and-Drop hat, noch der Nutzer neue Felder hinzufügen kann (ich habe jedenfalls keinen Weg gefunden), dachte ich an eine eigene UI mit einem Web-Browser.

    Das funktioniert bis jetzt auch ganz gut, aber ich müsste eben programmatisch alle Seiten des Projekts auslesen können.

    Hast du vielleicht eine ganz andere Idee oder einen Tipp, wie ich das mit dem Browser hinbekommen könnte? Wenn es eine Option geben würde, um bei /get-file/ (darüber wird ja die .html geladen) Scripting in auszuführen bevor die Datei ausgegeben wird, wäre das die Lösung...

    Freundliche Grüße
    Philipp

    ---------------------------------------------------------------
    Widgets für Zeta Producer: widget-zp.de

  • Man könnte aus dem Widget heraus eine JSON-Datei generieren, welche die Seitenstruktur beinhaltet. Problem wäre hierbei, dass es diese Datei erst nach dem erstmaligen Rendern des Widget gibt, also noch nicht beim initialen Einfügen des Widgets.

    Alternativ vielleicht per JS eine bestehende Seite des Projekts Parsen und die Struktur aus dem Standard Navigationsmenü extrahieren, oder gar die sitemap.xml Parsen…

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • Man könnte aus dem Widget heraus eine JSON-Datei generieren, welche die Seitenstruktur beinhaltet. Problem wäre hierbei, dass es diese Datei erst nach dem erstmaligen Rendern des Widget gibt, also noch nicht beim initialen Einfügen des Widgets.

    Danke, das klingt doch vielversprechend. Über die Idee JSON erst im Widget zu generieren hatte ich auch schon nachgedacht, allerdings kam mir die Idee mit der Datei nicht.

    Welche Methoden gibt es denn in ZPScripting, um Dateien zu erstellen? "fs" wie in NodeJS wird es ja nicht geben...

    Freundliche Grüße
    Philipp

    ---------------------------------------------------------------
    Widgets für Zeta Producer: widget-zp.de

  • Danke!! :thumbup: :thumbup: :)

    Da habe ich den Wald vor lauter Bäumen mal wieder nicht gesehen, sollte vielleicht mal öfter die Suche nutzen ;)

    Ich berichte dann, ob's funktioniert (sollte eigentlich).

    Freundliche Grüße
    Philipp

    ---------------------------------------------------------------
    Widgets für Zeta Producer: widget-zp.de

  • Ja, spannend. Das wird sicher nicht einfach.

    Ja, aber ohne Herausforderungen wäre es ja langweilig :) Ich nehme mal an, dass es deshalb bisher noch kein solches Menü-Widget von euch gibt? Ist nämlich bei widget-zp immer wieder ein Wunsch, Mega-Menüs erstellen zu können

    Freundliche Grüße
    Philipp

    ---------------------------------------------------------------
    Widgets für Zeta Producer: widget-zp.de

  • Ja, das ist ein Grund. Das müssten/wollten wir direkt in ZP einbauen, nicht über ein Widget – eher direkt in den Layout-Editor… Das erfordert aber noch viel Vorarbeit…

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • Hallo phil-web / Support

    PS: Was ist bedeutet eigentlich die Option "Online-Modul-Ereignisse senden"?

    Darf ich fragen, wo dies zu finden ist?

    Und ja, würde mich auch interessieren, was da genau passiert ...$

    Gruss

    Norbert

    Norbert S.

    Zeta Producer (Premium), Win 11 Pro 26H2 [de-CH]
    Für mich DIE Lösung und bietet vorbildlichen Support!

  • Hallo phil-web / Support

    Darf ich fragen, wo dies zu finden ist?

    Und ja, würde mich auch interessieren, was da genau passiert ...$

    Gruss

    Norbert

    In den Einstellungen für den Feld-Typ "Web-Browser" bei eigenen Widgets... ;)

    Freundliche Grüße
    Philipp

    ---------------------------------------------------------------
    Widgets für Zeta Producer: widget-zp.de

  • Yay, die Datenübergabe funktioniert! Danke nochmal Stefan S

    Nicht über das null undefined wundern, das ist mit Absicht da ;)

    PS: Das würde mich noch interessieren :D

    PS: Was ist bedeutet eigentlich die Option "Online-Modul-Ereignisse senden"?

    Freundliche Grüße
    Philipp

    ---------------------------------------------------------------
    Widgets für Zeta Producer: widget-zp.de

  • PS: Was ist bedeutet eigentlich die Option "Online-Modul-Ereignisse senden"?

    Das muss ich auch erst erfragen, der Kollege, der das weiß, ist aber erst am Mittwoch wieder greifbar.

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • Das muss ich auch erst erfragen, der Kollege, der das weiß, ist aber erst am Mittwoch wieder greifbar.

    Ok, danke nochmal für deine Mühe. Dann bin ich mal gespannt ;)

    Freundliche Grüße
    Philipp

    ---------------------------------------------------------------
    Widgets für Zeta Producer: widget-zp.de

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!