Passed
Push — master ( 45866d...4c5ad2 )
by Greg
07:52
created

ModuleBlockTrait::loadAjax()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
/**
4
 * webtrees: online genealogy
5
 * Copyright (C) 2019 webtrees development team
6
 * This program is free software: you can redistribute it and/or modify
7
 * it under the terms of the GNU General Public License as published by
8
 * the Free Software Foundation, either version 3 of the License, or
9
 * (at your option) any later version.
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
 * GNU General Public License for more details.
14
 * You should have received a copy of the GNU General Public License
15
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16
 */
17
18
declare(strict_types=1);
19
20
namespace Fisharebest\Webtrees\Module;
21
22
use Fisharebest\Webtrees\Auth;
23
use Fisharebest\Webtrees\Tree;
24
use Psr\Http\Message\ServerRequestInterface;
25
26
use function route;
27
28
/**
29
 * Trait ModuleBlockTrait - default implementation of ModuleBlockInterface
30
 */
31
trait ModuleBlockTrait
32
{
33
    /**
34
     * Generate the HTML content of this block.
35
     *
36
     * @param Tree   $tree
37
     * @param int    $block_id
38
     * @param string $context
39
     * @param array  $config
40
     *
41
     * @return string
42
     */
43
    public function getBlock(Tree $tree, int $block_id, string $context, array $config = []): string
44
    {
45
        return '';
46
    }
47
48
    /**
49
     * Should this block load asynchronously using AJAX?
50
     *
51
     * Simple blocks are faster in-line, more complex ones can be loaded later.
52
     *
53
     * @return bool
54
     */
55
    public function loadAjax(): bool
56
    {
57
        return false;
58
    }
59
60
    /**
61
     * Can this block be shown on the user’s home page?
62
     *
63
     * @return bool
64
     */
65
    public function isUserBlock(): bool
66
    {
67
        return false;
68
    }
69
70
    /**
71
     * Can this block be shown on the tree’s home page?
72
     *
73
     * @return bool
74
     */
75
    public function isTreeBlock(): bool
76
    {
77
        return false;
78
    }
79
80
    /**
81
     * @param Tree   $tree
82
     * @param string $context
83
     * @param int    $block_id
84
     *
85
     * @return string
86
     */
87
    protected function configUrl(Tree $tree, string $context, int $block_id): string
88
    {
89
        if ($context === self::CONTEXT_TREE_PAGE && Auth::isManager($tree)) {
0 ignored issues
show
Bug introduced by
The constant Fisharebest\Webtrees\Mod...rait::CONTEXT_TREE_PAGE was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
90
            return route('tree-page-block-edit', [
91
                'block_id' => $block_id,
92
                'tree'     => $tree->name(),
93
            ]);
94
        }
95
96
        if ($context === self::CONTEXT_USER_PAGE && Auth::check()) {
0 ignored issues
show
Bug introduced by
The constant Fisharebest\Webtrees\Mod...rait::CONTEXT_USER_PAGE was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
97
            return route('user-page-block-edit', [
98
                'block_id' => $block_id,
99
                'tree'     => $tree->name(),
100
            ]);
101
        }
102
103
        return '';
104
    }
105
106
    /**
107
     * Update the configuration for a block.
108
     *
109
     * @param ServerRequestInterface $request
110
     * @param int                    $block_id
111
     *
112
     * @return void
113
     */
114
    public function saveBlockConfiguration(ServerRequestInterface $request, int $block_id): void
115
    {
116
    }
117
118
    /**
119
     * An HTML form to edit block settings
120
     *
121
     * @param Tree $tree
122
     * @param int  $block_id
123
     *
124
     * @return string
125
     */
126
    public function editBlockConfiguration(Tree $tree, int $block_id): string
127
    {
128
        return '';
129
    }
130
}
131