System Messages aus JoomGallery-Plugin erzeugen

  • Wie aus folgendem Thread ausgeht, habe ich mit einem Kollegen zusammen ein Plugin für die JoomGallery gemacht, welches beim hochladen von Bildern in der JoomGallery-DB das Upload-Datum durch das Aufnahmedatum (aus EXIF-Metadaten) des Bildes ersetzt. Dies funktioniert soweit super. Jedoch soll bei Fehlern (z.B wenn das hochgeladene Bild keine EXIF-Metadaten verfügt und somit somit das Auslesen dieser Metadaten fehlschlägt) dem User im Frontend eine Fehlermeldung als Joomla SystemMessage angezeigt werden.

    Wir haben schon diverse Dinge ausprobiert, sind jedoch bisher gescheitert irgendwelche Strings aus dem Plugin der Seite zu senden. Insbesondere die Methode aus den Joomla-Docs (enqueueMessage) scheint innerhalb dem Event (onJoomAfterUpload) nicht zu funktionieren...


    Hat jemand eine Idee, wie Fehlermeldungen aus dem Plugin dem User per System Message mitgeteilt werden können?


    Danke im Voraus

  • Hallo,


    Code
    1. public function onJoomAfterUpload($image) {
    2.     ...
    3.     JFactory::getApplication()->enqueueMessage('No EXIF data found', 'warning');
    4. JFactory::getApplication()->redirect(JRoute::_('index.php'));
    5. ...
    6. }

    Mit diesen Zeilen bin ich tatsächlich im stande eine Meldung auf der Seite zu generieren. Jedoch ist die Meldung unabhängig von dem, was wir eingeben und erscheint auch nicht an gewohnter Stelle für eine Joomla-Systemmeldung:

    Meldung.JPG


    Die Meldung lautet immer "Upload fehlgeschlagen" und erscheint beim entsprechenden Bild, dessen Upload das Plugin-Skript durch den Event "onJoomAfterUpload" startete. Der Upload ist natürlich nicht fehlgeschlagen. Die zwei Zeilen in meinem Plugin scheinen zu dieser Meldung zu führen.

    Ist es möglich, dass Befehle in dieser Funktion durch JoomGallery behandelt werden und deshalb anders verarbeitet werden als "standard" Joomla Systemmeldungen?


    Danke im Voraus...

  • Hallo,


    Die Meldung lautet immer "Upload fehlgeschlagen" und erscheint beim entsprechenden Bild, dessen Upload das Plugin-Skript durch den Event "onJoomAfterUpload" startete. Der Upload ist natürlich nicht fehlgeschlagen. Die zwei Zeilen in meinem Plugin scheinen zu dieser Meldung zu führen.

    Ist es möglich, dass Befehle in dieser Funktion durch JoomGallery behandelt werden und deshalb anders verarbeitet werden als "standard" Joomla Systemmeldungen?

    Messages sollten an der Position der Systemmessages ausgegeben werden. Das redirect sollte erst ausgeführt werden, wenn das Plugin überprüft hat ob EXIF Infos da sind oder nicht.

  • Hallo,

    Messages sollten an der Position der Systemmessages ausgegeben werden.

    Das dachte ich auch, jedoch bewirken die zwei Zeilen bloss, dass ein "Upload fehlgeschlagen" von der JoomGallery ausgegeben wird, unabhängig davon wo in der Funktion ich den redirect platziere und anabhängig der Message, die ich im eneueueMessage eingebe...

    Wird enqueueMessage von der JoomGallery separat und/oder anders behandelt?

  • Ich bin der Sache inzwischen etwas näher gekommen...


    Da Joomla-Systemmeldungen anscheinend nicht funktionieren, habe ich heute den JoomGallery-Code für den Upload (administrator/com_joomgallery/helpers/upload.php) mal etwas unter die Lupe genommen.
    Die JoomGallery verwendet anscheinend diesen Code, um Fehler während des Uploads zu setzen:

    Code
    1. $errorMsg = JText::_('some_error_message');
    2. $this->setError($errorMsg);

    Und mit diesen Zeilen, werden die gesetzten Error-Meldungen an die Webseite übermittelt:

    Code
    1. $uploader = new JoomUpload();
    2. $result['error'] = $uploader->getError()
    3. ...
    4. echo json_encode($result);

    Wobei $uploader die Class JoomUpload() aus dem oben genannten upload.php - File ist.


    Wäre es möglich von meinem Plugin aus Error-Meldungen mit setError() zu setzen? Wenn ja, wie?

    Das Plugin läuft in der JoomGallery-Gruppe und sollte doch deshalb diese Funktion auch unterstützen?


    XML des Plugins gemäss JoomGallery:API:

    Code
    1. <install version="1.5" type="plugin" group="joomgallery" method="upgrade" />