3 namespace BookStack\References;
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;
11 class ReferenceController extends Controller
13 public function __construct(
14 protected ReferenceFetcher $referenceFetcher
19 * Display the references to a given page.
21 public function page(string $bookSlug, string $pageSlug)
23 $page = Page::getBySlugs($bookSlug, $pageSlug);
24 $references = $this->referenceFetcher->getReferencesToEntity($page);
26 return view('pages.references', [
28 'references' => $references,
33 * Display the references to a given chapter.
35 public function chapter(string $bookSlug, string $chapterSlug)
37 $chapter = Chapter::getBySlugs($bookSlug, $chapterSlug);
38 $references = $this->referenceFetcher->getReferencesToEntity($chapter);
40 return view('chapters.references', [
41 'chapter' => $chapter,
42 'references' => $references,
47 * Display the references to a given book.
49 public function book(string $slug)
51 $book = Book::getBySlug($slug);
52 $references = $this->referenceFetcher->getReferencesToEntity($book);
54 return view('books.references', [
56 'references' => $references,
61 * Display the references to a given shelf.
63 public function shelf(string $slug)
65 $shelf = Bookshelf::getBySlug($slug);
66 $references = $this->referenceFetcher->getReferencesToEntity($shelf);
68 return view('shelves.references', [
70 'references' => $references,