xref: /webtrees/app/Module/ModuleThemeInterface.php (revision 1ff45046fabc22237b5d0d8e489c96f031fc598d)
1a25f0a04SGreg Roach<?php
23976b470SGreg Roach
3a25f0a04SGreg Roach/**
4a25f0a04SGreg Roach * webtrees: online genealogy
5d11be702SGreg Roach * Copyright (C) 2023 webtrees development team
6a25f0a04SGreg Roach * This program is free software: you can redistribute it and/or modify
7a25f0a04SGreg Roach * it under the terms of the GNU General Public License as published by
8a25f0a04SGreg Roach * the Free Software Foundation, either version 3 of the License, or
9a25f0a04SGreg Roach * (at your option) any later version.
10a25f0a04SGreg Roach * This program is distributed in the hope that it will be useful,
11a25f0a04SGreg Roach * but WITHOUT ANY WARRANTY; without even the implied warranty of
12a25f0a04SGreg Roach * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13a25f0a04SGreg Roach * GNU General Public License for more details.
14a25f0a04SGreg Roach * You should have received a copy of the GNU General Public License
1589f7189bSGreg Roach * along with this program. If not, see <https://www.gnu.org/licenses/>.
16a25f0a04SGreg Roach */
17fcfa147eSGreg Roach
18e7f56f2aSGreg Roachdeclare(strict_types=1);
19e7f56f2aSGreg Roach
2076692c8bSGreg Roachnamespace Fisharebest\Webtrees\Module;
21a25f0a04SGreg Roach
22ade503dfSGreg Roachuse Fisharebest\Webtrees\Individual;
23ade503dfSGreg Roachuse Fisharebest\Webtrees\Menu;
240c8c69d4SGreg Roachuse Fisharebest\Webtrees\Tree;
25ade503dfSGreg Roach
26a25f0a04SGreg Roach/**
27ade503dfSGreg Roach * Interface ModuleThemelInterface - Classes and libraries for module system
28a25f0a04SGreg Roach */
2937eb8894SGreg Roachinterface ModuleThemeInterface extends ModuleInterface
30c1010edaSGreg Roach{
31ade503dfSGreg Roach    /**
32ade503dfSGreg Roach     * Links, to show in chart boxes;
33ade503dfSGreg Roach     *
34ade503dfSGreg Roach     * @param Individual $individual
35ade503dfSGreg Roach     *
3609482a55SGreg Roach     * @return array<Menu>
37ade503dfSGreg Roach     */
38ade503dfSGreg Roach    public function individualBoxMenu(Individual $individual): array;
39ade503dfSGreg Roach
40ade503dfSGreg Roach    /**
41ade503dfSGreg Roach     * Themes menu.
42ade503dfSGreg Roach     *
43ade503dfSGreg Roach     * @return Menu|null
44ade503dfSGreg Roach     */
45*1ff45046SGreg Roach    public function menuThemes(): Menu|null;
46ade503dfSGreg Roach
47ade503dfSGreg Roach    /**
48ade503dfSGreg Roach     * Generate a list of items for the main menu.
49ade503dfSGreg Roach     *
500c8c69d4SGreg Roach     * @param Tree|null $tree
510c8c69d4SGreg Roach     *
5209482a55SGreg Roach     * @return array<Menu>
53ade503dfSGreg Roach     */
54*1ff45046SGreg Roach    public function genealogyMenu(Tree|null $tree): array;
55ade503dfSGreg Roach
56ade503dfSGreg Roach    /**
57ade503dfSGreg Roach     * Generate a list of items for the user menu.
58ade503dfSGreg Roach     *
590c8c69d4SGreg Roach     * @param Tree|null $tree
600c8c69d4SGreg Roach     *
6109482a55SGreg Roach     * @return array<Menu>
62ade503dfSGreg Roach     */
63*1ff45046SGreg Roach    public function userMenu(Tree|null $tree): array;
64ade503dfSGreg Roach
65ade503dfSGreg Roach    /**
66ade503dfSGreg Roach     * A list of CSS files to include for this page.
67ade503dfSGreg Roach     *
6824f2a3afSGreg Roach     * @return array<string>
69ade503dfSGreg Roach     */
70ade503dfSGreg Roach    public function stylesheets(): array;
71a25f0a04SGreg Roach}
72