File: MediaSubscriptionSender.php

package info (click to toggle)
dokuwiki 0.0.20220731.a-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 32,244 kB
  • sloc: php: 187,701; javascript: 5,931; sql: 1,204; sh: 672; xml: 384; perl: 216; makefile: 77
file content (47 lines) | stat: -rw-r--r-- 1,449 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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);
    }
}