aboutsummaryrefslogtreecommitdiff
path: root/lib/plugins/core/LibraryPlugin.class.php
blob: a7fb87313c90630776a1fd702ae26d9c21443e19 (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
<?php


/*
 * LibraryPlugin.class.php - A plugin class for library plugins.
 *
 * Copyright (c) 2020  Moritz Strohm
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 */


interface LibraryPlugin
{
    /**
     * Generates the URL that leads to the plugin action to create a request.
     * The URL may vary depending on the ID of the library file that shall be
     * requested. Therefore, the library file ID is passed to this method.
     *
     * @param $library_file_id The library file ID to which a request URL shall
     *     be generated.
     *
     * @returns string The URL for the request action of the plugin.
     */
    public function getRequestURL(string $library_file_id) : string;


    /**
     * Generates the title for the plugin action to create a request.
     * That title may vary depending on the library file that shall be requested.
     * Therefore, the file is passed to this method.
     *
     * @param LibraryFile $file The file to which the request URL title shall be
     *     generated.
     *
     * @returns string The title for the request URL action of the plugin.
     */
    public function getRequestTitle() : string;


    /**
     * Generates the icon for the plugin action to create a request.
     * That icon may vary depending on the library file that shall be requested.
     * Therefore, the file is passed to this method.
     *
     * @param LibraryFile $file The file to which the request URL icon shall be
     *     generated.
     *
     * @returns Icon The icon for the request URL action of the plugin.
     */
    public function getRequestIcon() : Icon;
}