Search the FirstSpirit Knowledge Base
Hallo,
ich möchte gerne ein Plugin entwickeln, das im Kontextmenu bei "Neu" im Sitestore erscheint und die Funktion zum "Seitenreferenz erstellen" um weitere Funktionalität erweitert. Konkret möchte ich einen Eintrag im Neu-Menü hinzufügen, der zuerst exakt die Dialoge aufruft, als wenn man "Seitenreferenz erstellen" ausgewählt hätte, und danach weitere Funktionen aufruft.
Gibts es eine Möglichkeit, im Plugin eine Methode aufzurufen, die die "Seitenreferenz erstellen"-Prozedur aufruft, oder muss ich die Funktionalität nachprogrammieren? Oder kann ich einen Hook entwickeln der aufgerufen wird sobald eine neue Seitenreferenz angelegt wurde?
Vielen Dank für die Hilfe.
Viele Grüße
Christoph Kau
Hallo Christoph,
ich glaube eine Möglichkeit, sich in die bestehenden Dialoge einzuhängen gibt es nicht. Sicher bin ich mir nicht, vielleicht findet sich in der Community ja eine Lösung.
Wenn dir allerdings ein Hook, der nach dem anlegen einer Seitenreferenz aufgerufen wird genügt, dann könntest du es mit einem StoreListener versuchen.
Viele Grüße
Thorsten
Hallo Christoph,
ich glaube eine Möglichkeit, sich in die bestehenden Dialoge einzuhängen gibt es nicht. Sicher bin ich mir nicht, vielleicht findet sich in der Community ja eine Lösung.
Wenn dir allerdings ein Hook, der nach dem anlegen einer Seitenreferenz aufgerufen wird genügt, dann könntest du es mit einem StoreListener versuchen.
Viele Grüße
Thorsten
Hallo Thorsten,
danke für deine Antwort. Ich habe einen StoreListener erstellt und ihn als Public-Komponente auf den Server installiert. Soweit hat auch alles geklappt. Jetzt habe ich eine weitere Frage:
Ist es möglich, mit Hilfe einer ProjectApp-Komponente diese Funktionalität nur projekt-weit zur Verfügung zu stellen, also dass der Hook nur bei bestimmten Projekten zum Einsatz kommt? Leider konnte ich in der Doku nichts darüber finden, wie ich ein permanentes Plugin mit Hilfe einer ProjectApp zur Verfügung stelle.
Konkret habe ich in der Doku zum Interface ProjectApp nur die Methoden Init, Installed, Uninstalled und Updated gefunden. Da die Init-Methode keinen Context mitliefert kann ich deshalb auch nicht den StoreListener registrieren. Gibt es eine Beispiel-Implementierung für eine ProjectApp, in der ich nachsehen könnte wie sie implementiert wird?
Viele Grüße,
Christoph
Einstiegsklasse ist "JavaClientPermanentPlugin" welches in der module.xml als <public> registriert wird. Ein Beispiel fuer ein JavaClientPlugin gibt es in den Examples (zip-Archive), welches du bei deinem e-Spirit Ansprechpartener erfragen kannst. In den Neu-Dialog kann man sich leider nicht "einhängen."
grüße
andre
Hallo Christoph,
beachte bei Verwendung eines StoreListener unbedingt, dass dieser in allen Java Clients bei Store Änderungen angesprochen wird. Angenommen du hast zwei Clients geöffnet, z.B. Client A und Client B. Wenn du nun im Client A ein neues Element im Order X erstellst, dann wird der StoreListener in Client A angetriggert. Solange du den Baum der entsprechenden Verwaltung in Client B nicht aktualisierst wird der StoreListener in Client B nicht angetriggert. Würdest du also 30min später den Ordner X im Client B aktualisieren würde erst zu diesem Zeitpunkt der StoreListener in Client B ansprechen. Das sollte man sich auf jeden Fall vor Augen führen bevor man sich für einen StoreListener entscheidet. Es ist zwar mehr oder weniger möglich zu prüfen ob das "Event" im eigenem Client bzw. duch den eigenen Nutzer getriggert wurde, aber 100%ig lässt sich das nicht ermitteln..
Ich habe einen Feature-Request zur Erweiterung der StoreListener API gestellt, die Idee findest du hier:
Erweiterung der StoreListener-API
Beste Grüße,
Hendrik
Hallo Christoph,
sind deine Fragen ausreichend beantwortet worden oder gibt es noch offene Fragen?
Grüße
Jan