2 Stimmen

Liferay Dokumentenbibliothek: Methode beim Herunterladen von Dokumenten ausführen

Ich habe die gleiche Frage auch in der Liferay-Community gestellt, aber bisher keine Antworten erhalten, also versuche ich es hier :)

Ich muss eine Aktion / Methode jedes Mal ausführen, wenn ein Benutzer eine Datei aus der Dokumentenbibliothek herunterlädt. Einfach ausgedrückt, möchte ich jedes Mal, wenn der Benutzer auf den direkten Dateilink klickt, ein System.out.println("eine Datei wurde heruntergeladen") ausgeben.

Haben Sie eine Idee, wie ich das erreichen kann? Ich verwende LR 6.0.6 CE und würde wirklich gerne die EXT-Umgebung vermeiden... jede Idee, wie ich das mit einem Hook erreichen kann, wäre sehr willkommen!!

Ich dachte daran, auf der JSP etwas JavaScript hinzuzufügen (onClick), das die System.out.println() Funktion aufruft, bin mir aber nicht sicher, ob das möglich ist.

Ich habe an Aktion-Hooks, Model-Listener, das Überschreiben eines Dienstes gedacht... was denken Sie, wäre der beste Weg?

2voto

lou Punkte 173

Ich habe einen Weg gefunden, dies zu erreichen, indem ich einen Model Listener für das DLFileEntry-Modell erstelle und die Methode "onAfterUpdate" überschreibe, die jedes Mal ausgelöst wird, wenn ein Dokument heruntergeladen wird, weil sie den Wert der Variable readcount ändert.

2voto

Olaf Kock Punkte 44749

Um Geschäftslogik hinzuzufügen, sollten Sie sich besser DLFileEntryLocalService und die Wrapper für diesen Service ansehen, anstatt Model-Listener zu verwenden. Model-Listener sind für mit der Persistenz zusammenhängende Problembehebungen gedacht, nicht jedoch um beliebige neue Logik hinzuzufügen - das ist besser in den *LocalService-Wrappern, da *LocalService sich ausschließlich um die Geschäftslogik kümmert.

Dafür ist ein Hook erforderlich, Sie haben Recht, sich von ext fernzuhalten - dies ist hier nicht erforderlich und Sie hätten mit einem Hook mehr Upgrade-Probleme als damit.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X