summaryrefslogtreecommitdiff
path: root/platform/www/inc/Subscriptions/MediaSubscriptionSender.php
diff options
context:
space:
mode:
Diffstat (limited to 'platform/www/inc/Subscriptions/MediaSubscriptionSender.php')
-rw-r--r--platform/www/inc/Subscriptions/MediaSubscriptionSender.php47
1 files changed, 47 insertions, 0 deletions
diff --git a/platform/www/inc/Subscriptions/MediaSubscriptionSender.php b/platform/www/inc/Subscriptions/MediaSubscriptionSender.php
new file mode 100644
index 0000000..1757c2b
--- /dev/null
+++ b/platform/www/inc/Subscriptions/MediaSubscriptionSender.php
@@ -0,0 +1,47 @@
+<?php
+
+
+namespace dokuwiki\Subscriptions;
+
+
+class MediaSubscriptionSender extends SubscriptionSender
+{
+
+ /**
+ * Send the diff for some media change
+ *
+ * @fixme this should embed thumbnails of images in HTML version
+ *
+ * @param string $subscriber_mail The target mail address
+ * @param string $template Mail template ('uploadmail', ...)
+ * @param string $id Media file for which the notification is
+ * @param int|bool $rev Old revision if any
+ * @param int|bool $current_rev New revision if any
+ */
+ public function sendMediaDiff($subscriber_mail, $template, $id, $rev = false, $current_rev = false)
+ {
+ global $conf;
+
+ $file = mediaFN($id);
+ list($mime, /* $ext */) = mimetype($id);
+
+ $trep = [
+ 'MIME' => $mime,
+ 'MEDIA' => ml($id, $current_rev?('rev='.$current_rev):'', true, '&', true),
+ 'SIZE' => filesize_h(filesize($file)),
+ ];
+
+ if ($rev && $conf['mediarevisions']) {
+ $trep['OLD'] = ml($id, "rev=$rev", true, '&', true);
+ } else {
+ $trep['OLD'] = '---';
+ }
+
+ $headers = ['Message-Id' => $this->getMessageID($id, @filemtime($file))];
+ if ($rev) {
+ $headers['In-Reply-To'] = $this->getMessageID($id, $rev);
+ }
+
+ $this->send($subscriber_mail, 'upload', $id, $template, $trep, null, $headers);
+ }
+}