]> BookStack Code Mirror - bookstack/blob - app/References/ReferenceController.php
Comments: Added HTML filter on load, tinymce elem filtering
[bookstack] / app / References / ReferenceController.php
1 <?php
2
3 namespace BookStack\References;
4
5 use BookStack\Entities\Models\Book;
6 use BookStack\Entities\Models\Bookshelf;
7 use BookStack\Entities\Models\Chapter;
8 use BookStack\Entities\Models\Page;
9 use BookStack\Http\Controller;
10
11 class ReferenceController extends Controller
12 {
13     public function __construct(
14         protected ReferenceFetcher $referenceFetcher
15     ) {
16     }
17
18     /**
19      * Display the references to a given page.
20      */
21     public function page(string $bookSlug, string $pageSlug)
22     {
23         $page = Page::getBySlugs($bookSlug, $pageSlug);
24         $references = $this->referenceFetcher->getReferencesToEntity($page);
25
26         return view('pages.references', [
27             'page'       => $page,
28             'references' => $references,
29         ]);
30     }
31
32     /**
33      * Display the references to a given chapter.
34      */
35     public function chapter(string $bookSlug, string $chapterSlug)
36     {
37         $chapter = Chapter::getBySlugs($bookSlug, $chapterSlug);
38         $references = $this->referenceFetcher->getReferencesToEntity($chapter);
39
40         return view('chapters.references', [
41             'chapter'    => $chapter,
42             'references' => $references,
43         ]);
44     }
45
46     /**
47      * Display the references to a given book.
48      */
49     public function book(string $slug)
50     {
51         $book = Book::getBySlug($slug);
52         $references = $this->referenceFetcher->getReferencesToEntity($book);
53
54         return view('books.references', [
55             'book'       => $book,
56             'references' => $references,
57         ]);
58     }
59
60     /**
61      * Display the references to a given shelf.
62      */
63     public function shelf(string $slug)
64     {
65         $shelf = Bookshelf::getBySlug($slug);
66         $references = $this->referenceFetcher->getReferencesToEntity($shelf);
67
68         return view('shelves.references', [
69             'shelf'      => $shelf,
70             'references' => $references,
71         ]);
72     }
73 }