Skip to content

Commit 5220db0

Browse files
committed
Merge branch 'release/1.4.3'
2 parents 9f3b0e8 + 82e3800 commit 5220db0

17 files changed

+696
-56
lines changed

CHANGELOG.md

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
# v1.4.3
2+
## 08/26/2022
3+
4+
1. [](#new)
5+
* Pass phpstan level 1 tests
6+
* Require Grav v1.6
7+
* Moved pagination classes under `Grav\Plugin\Pagination` namespace
8+
* Removed extension to bring Twig function into Plugin class
9+
110
# v1.4.2
211
## 05/09/2019
312

blueprints.yaml

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
name: Pagination
2-
version: 1.4.2
2+
slug: pagination
3+
type: plugin
4+
version: 1.4.3
35
description: "**Pagination** is a very useful plugin to help navigate a large collection of pages, such as for a **blog**."
46
icon: list-ol
57
author:
@@ -10,6 +12,8 @@ homepage: https://github.com/getgrav/grav-plugin-pagination
1012
keywords: pagination, plugin, pages, navigation
1113
bugs: https://github.com/getgrav/grav-plugin-pagination/issues
1214
license: MIT
15+
dependencies:
16+
- { name: grav, version: '>=1.6.0' }
1317

1418
form:
1519
validation: strict

classes/paginationhelper.php renamed to classes/plugin/PaginationHelper.php

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
2-
namespace Grav\Plugin;
2+
namespace Grav\Plugin\Pagination;
33

44
use Grav\Common\Grav;
55
use Grav\Common\Iterator;
@@ -23,8 +23,6 @@ public function __construct(Collection $collection)
2323
{
2424
parent::__construct();
2525

26-
require_once __DIR__ . '/paginationpage.php';
27-
2826
$grav = Grav::instance();
2927

3028
/** @var Uri $uri */

classes/paginationpage.php renamed to classes/plugin/PaginationPage.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
2-
namespace Grav\Plugin;
2+
namespace Grav\Plugin\Pagination;
33

44
use Grav\Common\Grav;
55

composer.json

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"name": "grav-plugin-pagination",
3+
"type": "grav-plugin",
4+
"description": "Pagination plugin for Grav CMS",
5+
"keywords": ["pagination"],
6+
"homepage": "https://github.com/getgrav/grav-plugin-pagination/",
7+
"license": "MIT",
8+
"authors": [
9+
{
10+
"name": "Team Grav",
11+
"email": "[email protected]",
12+
"homepage": "http://getgrav.org",
13+
"role": "Developer"
14+
}
15+
],
16+
"require": {
17+
"php": ">=7.1.3",
18+
"ext-json": "*",
19+
"ext-mbstring": "*"
20+
},
21+
"autoload": {
22+
"psr-4": {
23+
"Grav\\Plugin\\Pagination\\": "classes/plugin"
24+
},
25+
"classmap": ["pagination.php"]
26+
},
27+
"config": {
28+
"platform": {
29+
"php": "7.1.3"
30+
}
31+
}
32+
}

composer.lock

+24
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pagination.php

+33-9
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
<?php
22
namespace Grav\Plugin;
33

4+
use Composer\Autoload\ClassLoader;
45
use Grav\Common\Page\Collection;
5-
use Grav\Common\Page\Page;
6+
use Grav\Common\Page\Interfaces\PageInterface;
67
use Grav\Common\Plugin;
8+
use Grav\Plugin\Pagination\PaginationHelper;
9+
use Grav\Plugin\Pagination\PaginationPage;
710
use RocketTheme\Toolbox\Event\Event;
11+
use Twig\TwigFunction;
812

913
class PaginationPlugin extends Plugin
1014
{
@@ -19,10 +23,23 @@ class PaginationPlugin extends Plugin
1923
public static function getSubscribedEvents()
2024
{
2125
return [
22-
'onPluginsInitialized' => ['onPluginsInitialized', 0]
26+
'onPluginsInitialized' => [
27+
['autoload', 100001],
28+
['onPluginsInitialized', 0]
29+
]
2330
];
2431
}
2532

33+
/**
34+
* [onPluginsInitialized:100000] Composer autoload.
35+
*
36+
* @return ClassLoader
37+
*/
38+
public function autoload()
39+
{
40+
return require __DIR__ . '/vendor/autoload.php';
41+
}
42+
2643
/**
2744
* Initialize configuration
2845
*/
@@ -33,6 +50,9 @@ public function onPluginsInitialized()
3350
return;
3451
}
3552

53+
class_alias(PaginationHelper::class, 'Grav\\Plugin\\PaginationHelper');
54+
class_alias(PaginationPage::class, 'Grav\\Plugin\\PaginationPage');
55+
3656
$this->enable([
3757
'onTwigTemplatePaths' => ['onTwigTemplatePaths', 0],
3858
'onPageInitialized' => ['onPageInitialized', 0],
@@ -53,17 +73,18 @@ public function onTwigTemplatePaths()
5373
*/
5474
public function onTwigExtensions()
5575
{
56-
require_once(__DIR__.'/twig/PaginationTwigExtension.php');
57-
58-
$this->grav['twig']->twig->addExtension(new PaginationTwigExtension());
76+
// Add Twig functions
77+
$this->grav['twig']->twig()->addFunction(
78+
new TwigFunction('paginate', [$this, 'paginateTwigFunction'])
79+
);
5980
}
6081

6182
/**
6283
* Enable pagination if page has params.pagination = true.
6384
*/
6485
public function onPageInitialized()
6586
{
66-
/** @var Page $page */
87+
/** @var PageInterface $page */
6788
$page = $this->grav['page'];
6889

6990
if ($page && ($page->value('header.content.pagination') || $page->value('header.pagination'))) {
@@ -96,7 +117,6 @@ public function onCollectionProcessed(Event $event)
96117
}
97118

98119
if (!empty($params['limit']) && $collection->count() > $params['limit']) {
99-
require_once __DIR__ . '/classes/paginationhelper.php';
100120
$this->pagination = new PaginationHelper($collection);
101121
$collection->setParams(['pagination' => $this->pagination]);
102122
}
@@ -119,14 +139,13 @@ public function onTwigSiteVariables()
119139
* @param int $limit
120140
* @param array $ignore_param_array url parameters to be ignored in page links
121141
*/
122-
public function paginateCollection( $collection, $limit, $ignore_param_array = [])
142+
public function paginateCollection($collection, $limit, $ignore_param_array = [])
123143
{
124144
$collection->setParams(['pagination' => 'true']);
125145
$collection->setParams(['limit' => $limit]);
126146
$collection->setParams(['ignore_params' => $ignore_param_array]);
127147

128148
if ($collection->count() > $limit) {
129-
require_once __DIR__ . '/classes/paginationhelper.php';
130149
$this->pagination = new PaginationHelper($collection);
131150
$collection->setParams(['pagination' => $this->pagination]);
132151

@@ -138,4 +157,9 @@ public function paginateCollection( $collection, $limit, $ignore_param_array = [
138157
}
139158
}
140159
}
160+
161+
public function paginateTwigFunction($collection, $limit, $ignore_url_param_array = [])
162+
{
163+
$this->paginateCollection($collection, $limit, $ignore_url_param_array);
164+
}
141165
}

twig/PaginationTwigExtension.php

-42
This file was deleted.

vendor/autoload.php

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
// autoload.php @generated by Composer
4+
5+
require_once __DIR__ . '/composer/autoload_real.php';
6+
7+
return ComposerAutoloaderInitea591f86e2ec72c59666a51291247f87::getLoader();

0 commit comments

Comments
 (0)