diff --git a/Documentation/ApiOverview/Pagination/Index.rst b/Documentation/ApiOverview/Pagination/Index.rst
index d443d29771..b9da5ba781 100644
--- a/Documentation/ApiOverview/Pagination/Index.rst
+++ b/Documentation/ApiOverview/Pagination/Index.rst
@@ -24,53 +24,17 @@ Two concrete paginators are available:
* For type :php:`\TYPO3\CMS\Extbase\Persistence\QueryResultInterface`:
:php:`\TYPO3\CMS\Extbase\Pagination\QueryResultPaginator`
-Code example for the :php:`ArrayPaginator`:
-
-.. code-block:: php
-
- // use TYPO3\CMS\Core\Pagination\ArrayPaginator;
-
- $itemsToBePaginated = ['apple', 'banana', 'strawberry', 'raspberry', 'pineapple'];
- $itemsPerPage = 2;
- $currentPageNumber = 3;
-
- $paginator = new ArrayPaginator($itemsToBePaginated, $currentPageNumber, $itemsPerPage);
- $paginator->getNumberOfPages(); // returns 3
- $paginator->getCurrentPageNumber(); // returns 3, basically just returns the input value
- $paginator->getKeyOfFirstPaginatedItem(); // returns 4
- $paginator->getKeyOfLastPaginatedItem(); // returns 4
-
- // use TYPO3\CMS\Core\Pagination\SimplePagination;
-
- $pagination = new SimplePagination($paginator);
- $pagination->getAllPageNumbers(); // returns [1, 2, 3]
- $pagination->getPreviousPageNumber(); // returns 2
- $pagination->getNextPageNumber(); // returns null
- // …
-
- $this->view->assignMultiple(
- [
- 'pagination' => $pagination,
- 'paginator' => $paginator,
- ]
- );
-
-.. code-block:: html
-
-
-
-
- {item}
-
+Code example for the :php:`ArrayPaginator` in an
+:ref:`Extbase controller `:
+
+.. literalinclude:: _ArrayPaginatorExampleController.php
+ :caption: EXT:my_extension/Controller/ExampleController.php
+
+And the corresponding Fluid template:
+
+.. literalinclude:: _ArrayPaginatorExamplePagination.html
+ :caption: EXT:my_extension/Resources/Private/Templates/ExamplePagination.html
+
Sliding window pagination
=========================
@@ -93,31 +57,5 @@ Replace the usage of :php:`SimplePagination` with
:php:`\TYPO3\CMS\Core\Pagination\SlidingWindowPagination` and you are done. Set
the 2nd argument to the maximum number of links which should be rendered.
-.. code-block:: php
-
- // use TYPO3\CMS\Extbase\Pagination\QueryResultPaginator;
- // use TYPO3\CMS\Core\Pagination\SlidingWindowPagination;
-
- $currentPage = $this->request->hasArgument('currentPageNumber')
- ? (int)$this->request->getArgument('currentPageNumber')
- : 1;
- $itemsPerPage = 10;
- $maximumLinks = 15;
-
- $paginator = new QueryResultPaginator(
- $allItems,
- $currentPage,
- $itemsPerPage
- );
- $pagination = new SlidingWindowPagination(
- $paginator,
- $maximumLinks
- );
-
- $this->view->assign(
- 'pagination',
- [
- 'pagination' => $pagination,
- 'paginator' => $paginator,
- ]
- );
+.. literalinclude:: _SlidingWindowExampleController.php
+ :caption: EXT:my_extension/Controller/ExampleController.php
diff --git a/Documentation/ApiOverview/Pagination/_ArrayPaginatorExampleController.php b/Documentation/ApiOverview/Pagination/_ArrayPaginatorExampleController.php
new file mode 100644
index 0000000000..19d1a6854c
--- /dev/null
+++ b/Documentation/ApiOverview/Pagination/_ArrayPaginatorExampleController.php
@@ -0,0 +1,44 @@
+getNumberOfPages(); // returns 3
+ $paginator->getCurrentPageNumber(); // returns 3, basically just returns the input value
+ $paginator->getKeyOfFirstPaginatedItem(); // returns 4
+ $paginator->getKeyOfLastPaginatedItem(); // returns 4
+
+ $pagination = new SimplePagination($paginator);
+ $pagination->getAllPageNumbers(); // returns [1, 2, 3]
+ $pagination->getPreviousPageNumber(); // returns 2
+ $pagination->getNextPageNumber(); // returns null
+
+ // ... more logic ...
+
+ $this->view->assignMultiple(
+ [
+ 'pagination' => $pagination,
+ 'paginator' => $paginator,
+ ],
+ );
+
+ return $this->htmlResponse();
+ }
+}
diff --git a/Documentation/ApiOverview/Pagination/_ArrayPaginatorExamplePagination.html b/Documentation/ApiOverview/Pagination/_ArrayPaginatorExamplePagination.html
new file mode 100644
index 0000000000..c3a207adaa
--- /dev/null
+++ b/Documentation/ApiOverview/Pagination/_ArrayPaginatorExamplePagination.html
@@ -0,0 +1,16 @@
+
+
+
+ {item}
+
diff --git a/Documentation/ApiOverview/Pagination/_SlidingWindowExampleController.php b/Documentation/ApiOverview/Pagination/_SlidingWindowExampleController.php
new file mode 100644
index 0000000000..aac6dd8ca5
--- /dev/null
+++ b/Documentation/ApiOverview/Pagination/_SlidingWindowExampleController.php
@@ -0,0 +1,51 @@
+exampleRepository->findAll();
+
+ $currentPage = $this->request->hasArgument('currentPageNumber')
+ ? (int)$this->request->getArgument('currentPageNumber')
+ : 1;
+ $itemsPerPage = 10;
+ $maximumLinks = 15;
+
+ $paginator = new QueryResultPaginator(
+ $allItems,
+ $currentPage,
+ $itemsPerPage,
+ );
+ $pagination = new SlidingWindowPagination(
+ $paginator,
+ $maximumLinks,
+ );
+
+ // ... more logic ...
+
+ $this->view->assign(
+ 'pagination',
+ [
+ 'pagination' => $pagination,
+ 'paginator' => $paginator,
+ ],
+ );
+
+ return $this->htmlResponse();
+ }
+}