EP MEDIA_DELETED kriegt unvollständige Parameter /weitere Parameter gewünscht
christophboecker opened this issue · comments
Hallo zusamen, ich wollte über den EP MEDIA_DELETED nach dem Löschen der Media-Datei nachgelagerte Aktionen in meinem Addon laufen lassen. Zwei Probleme:
- Bug: An die Extension-Point-Funktion wird keine Information über die gelöschte Datei übergeben.
laut Source-Code ist der Aufruf in class.oomedia.inc.php bei Zeile 775 dieser:
rex_register_extension_point('MEDIA_DELETED', '',
array(
'filename' => $filename
)
);
Die Kontrollausgabe für $params liefert:
(
[filename] =>
[extension_point] => MEDIA_DELETED
[subject] =>
)
Aus was für Gründen auch immer ist $filename leer. Kurz vorher wird
require_once $REX['INCLUDE_PATH'] . '/functions/function_rex_generate.inc.php';
aufgerufen; möglicherweise überschreibt sich da was. Mit $this->getFileName()) klappt es:
rex_register_extension_point('MEDIA_DELETED', '',
array(
'filename' => $this->getFileName()
)
);
Die Kontrollausgabe für $params liefert jetzt:
(
[filename] => img-20130606-00205.jpg
[extension_point] => MEDIA_DELETED
[subject] =>
)
- Ich schlage vor, an den EP nicht nur den Dateinamen zu übergeben, sondern auch die Satznummer der Medienpool-Zeile (file_id). Da ja der Satz gelöscht ist, kann man die Nummer nicht mehr in MEDIA_DELETED über den Dateinamen abrufen. In meinem konkreten Fall mache ich Cross-Referenzen halt über die Satznummer - und die ist jetzt weg. Als Workaround kann ich (um Anpassungen im Core zu vermeiden) die file_id per Session von OOMEDIA_IS_IN_USE an MEDIA_DELETED transferieren , aber toll ist das nicht :-)
Daher mein Vorschlag:
rex_register_extension_point('MEDIA_DELETED', '',
array(
'filename' => $this->getFileName(),
'file_id' => $this->getId()
)
);
Redaxo 4.6.1
Danke und Gruß
Christoph
Danke, Thomas
das ging ja fix.
Viele Grüße
Christoph
Am 04.12.2014 um 09:18 schrieb Thomas Blum notifications@github.com:
—
Reply to this email directly or view it on GitHub.