Pretty sure I miss somthing but why is $collection->pagination()
null
?
Kirby::plugin('my/plugin', [
'api' => [
'data' => [
'pages' => function ($query, $page) {
$collection = new Collection();
$results = site()->search($query)->paginate(5, $page);
foreach ($results as $result) {
$collection->append([
'title' => $result->title()->value(),
]);
}
return [
'data' => $collection->data(),
'pagination' => $collection->pagination(),
];
},
],
'routes' => [
[
'pattern' => 'enhanced-toolbar-link-dialog/pages',
'method' => 'get',
'action' => function () {
$page = get('page');
$query = get('query');
if (empty($query)) {
$query = '*';
}
$results = $this->pages($query, $page);
return [
'pagination' => $results['pagination'],
'data' => $results['data']
];
},
],
],
],
]);
Sorry for the messy code. Just fiddling to understand collections
As far as I understand site()->search($query)->paginate(5, $page);
correctly the paginate method should create a pagination instance.
$this->pagination = Pagination::for($this, ...$arguments);