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 protected ReferenceFetcher $referenceFetcher;
15 public function __construct(ReferenceFetcher $referenceFetcher)
17 $this->referenceFetcher = $referenceFetcher;
21 * Display the references to a given page.
23 public function page(string $bookSlug, string $pageSlug)
25 $page = Page::getBySlugs($bookSlug, $pageSlug);
26 $references = $this->referenceFetcher->getPageReferencesToEntity($page);
28 return view('pages.references', [
30 'references' => $references,
35 * Display the references to a given chapter.
37 public function chapter(string $bookSlug, string $chapterSlug)
39 $chapter = Chapter::getBySlugs($bookSlug, $chapterSlug);
40 $references = $this->referenceFetcher->getPageReferencesToEntity($chapter);
42 return view('chapters.references', [
43 'chapter' => $chapter,
44 'references' => $references,
49 * Display the references to a given book.
51 public function book(string $slug)
53 $book = Book::getBySlug($slug);
54 $references = $this->referenceFetcher->getPageReferencesToEntity($book);
56 return view('books.references', [
58 'references' => $references,
63 * Display the references to a given shelf.
65 public function shelf(string $slug)
67 $shelf = Bookshelf::getBySlug($slug);
68 $references = $this->referenceFetcher->getPageReferencesToEntity($shelf);
70 return view('shelves.references', [
72 'references' => $references,