aboutsummaryrefslogtreecommitdiff
path: root/lib/cronjobs/remind_oer_upload.php
blob: 528d789e0f90a782538932544a1157241ae06110 (plain)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
/**
 * remind_oer_upload.php - Sends reminder emails for uploading files to OER Campus.
 *
 * @author Michaela Brückner <brueckner@data-quest.de>, Suchi & Berg GmbH <info@data-quest.de>
 * @access public
 * @since  5.2
 */

require_once 'lib/classes/CronJob.php';

class RemindOerUpload extends CronJob
{

    public static function getName()
    {
        return _('An OER-Campus Upload erinnern');
    }

    public static function getDescription()
    {
        return _('Erinnert den Autor am Ende des Semesters an eine Datei, die in den OER-Campus hochgeladen werden soll.');
    }

    public function execute($last_result, $parameters = [])
    {
        // check the reminder date, which now is in past
        $query = "SELECT `file_ref_id` FROM `oer_post_upload`
                    WHERE `reminder_date` < UNIX_TIMESTAMP()";
        $results = DBManager::get()->fetchAll($query);

        // get file information from file_ref_id
        foreach ($results as $result) {
            $file_ref = FileRef::find($result['file_ref_id']);

            if (!FileRef::countBySql('id = ?', [$result['file_ref_id']])) {
                // file might be deleted meanwhile, so do not try to send a reminder for it
            } else {
                $filetype = $file_ref->getFileType();
                $file_to_suggest = $filetype->convertToStandardFile();

                $author = $file_ref->owner->username;
                $link_to_share = URLHelper::getURL('dispatch.php/file/share_oer/' . $result['file_ref_id']);
                $linktext = _('Klicken Sie hier, um das Material im OER-Campus zu veröffentlichen.');
                $formatted_link = '['. $linktext .']' . $link_to_share;

                $oer_reminder_message = sprintf(_("Sie wollten daran erinnert werden, die folgende Datei im OER-Campus zu veröffentlichen:\n\n"
                    . "Dateiname: %s \n"
                    . "Beschreibung: %s \n"
                    . "%s \n\n"),
                    $file_to_suggest->getFilename(),
                    $file_to_suggest->getDescription(),
                    $formatted_link
                );

                $messaging = new messaging();

                $messaging->insert_message(
                    $oer_reminder_message,
                    $author,
                    '____%system%____',
                    '',
                    Request::option('message_id'),
                    '',
                    null,
                    _('Erinnerung zur Veröffentlichung einer Datei im OER-Campus')
                );

                OERPostUpload::deleteBySQL("file_ref_id = ?", [$result['file_ref_id']]);
            }
        }
    }
}