Issues (2559)

app/Elements/XrefRepository.php (1 issue)

Labels
Severity
1
<?php
2
3
/**
4
 * webtrees: online genealogy
5
 * Copyright (C) 2025 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 <https://www.gnu.org/licenses/>.
16
 */
17
18
declare(strict_types=1);
19
20
namespace Fisharebest\Webtrees\Elements;
21
22
use Fisharebest\Webtrees\Http\RequestHandlers\CreateRepositoryModal;
23
use Fisharebest\Webtrees\I18N;
24
use Fisharebest\Webtrees\Registry;
25
use Fisharebest\Webtrees\Tree;
26
27
use function e;
28
use function route;
29
use function trim;
30
use function view;
31
32
/**
33
 * XREF:REPO := {Size=1:22}
34
 * A pointer to, or a cross-reference identifier of, a repository record.
35
 */
36
class XrefRepository extends AbstractXrefElement
37
{
38
    protected const array SUBTAGS = [
0 ignored issues
show
A parse error occurred: Syntax error, unexpected T_STRING, expecting '=' on line 38 at column 26
Loading history...
39
        'CALN' => '0:1',
40
        'NOTE' => '0:M',
41
    ];
42
43
    /**
44
     * An edit control for this data.
45
     *
46
     * @param string $id
47
     * @param string $name
48
     * @param string $value
49
     * @param Tree   $tree
50
     *
51
     * @return string
52
     */
53
    public function edit(string $id, string $name, string $value, Tree $tree): string
54
    {
55
        $select = view('components/select-repository', [
56
            'id'         => $id,
57
            'name'       => $name,
58
            'repository' => Registry::repositoryFactory()->make(trim($value, '@'), $tree),
59
            'tree'       => $tree,
60
            'at'         => '@',
61
        ]);
62
63
        return
64
            '<div class="input-group">' .
65
            '<button class="btn btn-secondary" type="button" data-bs-toggle="modal" data-bs-target="#wt-ajax-modal" data-wt-href="' . e(route(CreateRepositoryModal::class, ['tree' => $tree->name()])) . '" data-wt-select-id="' . $id . '" title="' . I18N::translate('Create a repository') . '">' .
66
            view('icons/add') .
67
            '</button>' .
68
            $select .
69
            '</div>';
70
    }
71
72
    /**
73
     * Display the value of this type of element.
74
     *
75
     * @param string $value
76
     * @param Tree   $tree
77
     *
78
     * @return string
79
     */
80
    public function value(string $value, Tree $tree): string
81
    {
82
        return $this->valueXrefLink($value, $tree, Registry::repositoryFactory());
83
    }
84
}
85