1<?php 2 3namespace dokuwiki\Subscriptions; 4 5class MediaSubscriptionSender extends SubscriptionSender 6{ 7 /** 8 * Send the diff for some media change 9 * 10 * @fixme this should embed thumbnails of images in HTML version 11 * 12 * @param string $subscriber_mail The target mail address 13 * @param string $template Mail template ('uploadmail', ...) 14 * @param string $id Media file for which the notification is 15 * @param int|bool $rev Old revision if any 16 * @param int|bool $current_rev New revision if any 17 */ 18 public function sendMediaDiff($subscriber_mail, $template, $id, $rev = false, $current_rev = false) 19 { 20 global $conf; 21 22 $file = mediaFN($id); 23 [$mime, /* ext */] = mimetype($id); 24 25 $trep = [ 26 'MIME' => $mime, 27 'MEDIA' => ml($id, $current_rev ? ('rev=' . $current_rev) : '', true, '&', true), 28 'SIZE' => filesize_h(filesize($file)), 29 ]; 30 31 if ($rev && $conf['mediarevisions']) { 32 $trep['OLD'] = ml($id, "rev=$rev", true, '&', true); 33 } else { 34 $trep['OLD'] = '---'; 35 } 36 37 $headers = ['Message-Id' => $this->getMessageID($id, @filemtime($file))]; 38 if ($rev) { 39 $headers['In-Reply-To'] = $this->getMessageID($id, $rev); 40 } 41 42 $this->send($subscriber_mail, 'upload', $id, $template, $trep, null, $headers); 43 } 44} 45