diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml
index f97fdfab9..680c7e656 100644
--- a/.github/workflows/tests.yaml
+++ b/.github/workflows/tests.yaml
@@ -17,7 +17,7 @@ jobs:
strategy:
matrix:
- php: [ 8.1, 8.0, 7.4, 7.3]
+ php: [8.2, 8.1, 8.0, 7.4, 7.3]
os: [ubuntu-latest]
steps:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ee182b874..c2b8bc6c8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,14 @@
+# v1.7.39
+## 02/19/2023
+
+1. [](#improved)
+ * Vendor library updates to latest versions
+1. [](#bugfix)
+ * Various PHP 8.2 fixes
+ * Fixed an issue with modular pages rendering thew wrong template when dynamically changing the page
+ * Fixed an issue with `email` validation that was failing on UTF-8 characters. Following best practices and now only check for `@` and length.
+ * Fixed PHPUnit tests to remove deprecation warnings
+
# v1.7.38
## 01/02/2023
@@ -7,7 +18,6 @@
* Vendor library updates to latest versions
* Updated `bin/composer.phar` to latest `2.4.4` version [#3627](https://github.com/getgrav/grav/issues/3627)
1. [](#bugfix)
-
* Don't fail hard if pages recurse with same path
* Github workflows security hardening [#3624](https://github.com/getgrav/grav/pull/3624)
diff --git a/composer.lock b/composer.lock
index 9dcec10a8..842d0731c 100644
--- a/composer.lock
+++ b/composer.lock
@@ -8,16 +8,16 @@
"packages": [
{
"name": "composer/ca-bundle",
- "version": "1.3.4",
+ "version": "1.3.5",
"source": {
"type": "git",
"url": "https://github.com/composer/ca-bundle.git",
- "reference": "69098eca243998b53eed7a48d82dedd28b447cd5"
+ "reference": "74780ccf8c19d6acb8d65c5f39cd72110e132bbd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/ca-bundle/zipball/69098eca243998b53eed7a48d82dedd28b447cd5",
- "reference": "69098eca243998b53eed7a48d82dedd28b447cd5",
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/74780ccf8c19d6acb8d65c5f39cd72110e132bbd",
+ "reference": "74780ccf8c19d6acb8d65c5f39cd72110e132bbd",
"shasum": ""
},
"require": {
@@ -64,7 +64,7 @@
"support": {
"irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/ca-bundle/issues",
- "source": "https://github.com/composer/ca-bundle/tree/1.3.4"
+ "source": "https://github.com/composer/ca-bundle/tree/1.3.5"
},
"funding": [
{
@@ -80,7 +80,7 @@
"type": "tidelift"
}
],
- "time": "2022-10-12T12:08:29+00:00"
+ "time": "2023-01-11T08:27:00+00:00"
},
{
"name": "composer/semver",
@@ -1142,25 +1142,25 @@
},
{
"name": "maximebf/debugbar",
- "version": "v1.18.1",
+ "version": "v1.18.2",
"source": {
"type": "git",
"url": "https://github.com/maximebf/php-debugbar.git",
- "reference": "ba0af68dd4316834701ecb30a00ce9604ced3ee9"
+ "reference": "17dcf3f6ed112bb85a37cf13538fd8de49f5c274"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/ba0af68dd4316834701ecb30a00ce9604ced3ee9",
- "reference": "ba0af68dd4316834701ecb30a00ce9604ced3ee9",
+ "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/17dcf3f6ed112bb85a37cf13538fd8de49f5c274",
+ "reference": "17dcf3f6ed112bb85a37cf13538fd8de49f5c274",
"shasum": ""
},
"require": {
"php": "^7.1|^8",
"psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^2.6|^3|^4|^5|^6"
+ "symfony/var-dumper": "^4|^5|^6"
},
"require-dev": {
- "phpunit/phpunit": "^7.5.20 || ^9.4.2",
+ "phpunit/phpunit": ">=7.5.20 <10.0",
"twig/twig": "^1.38|^2.7|^3.0"
},
"suggest": {
@@ -1202,9 +1202,9 @@
],
"support": {
"issues": "https://github.com/maximebf/php-debugbar/issues",
- "source": "https://github.com/maximebf/php-debugbar/tree/v1.18.1"
+ "source": "https://github.com/maximebf/php-debugbar/tree/v1.18.2"
},
- "time": "2022-03-31T14:55:54+00:00"
+ "time": "2023-02-04T15:27:00+00:00"
},
{
"name": "miljar/php-exif",
@@ -2160,16 +2160,16 @@
},
{
"name": "rockettheme/toolbox",
- "version": "1.6.2",
+ "version": "1.6.3",
"source": {
"type": "git",
"url": "https://github.com/rockettheme/toolbox.git",
- "reference": "99448a20a2f78d6480035d72821ecb9e4dc17032"
+ "reference": "8c751e96269aee4b42bf10c8d39f2121b7b7859c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/99448a20a2f78d6480035d72821ecb9e4dc17032",
- "reference": "99448a20a2f78d6480035d72821ecb9e4dc17032",
+ "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/8c751e96269aee4b42bf10c8d39f2121b7b7859c",
+ "reference": "8c751e96269aee4b42bf10c8d39f2121b7b7859c",
"shasum": ""
},
"require": {
@@ -2208,9 +2208,9 @@
],
"support": {
"issues": "https://github.com/rockettheme/toolbox/issues",
- "source": "https://github.com/rockettheme/toolbox/tree/1.6.2"
+ "source": "https://github.com/rockettheme/toolbox/tree/1.6.3"
},
- "time": "2022-06-14T16:24:33+00:00"
+ "time": "2023-02-19T19:28:53+00:00"
},
{
"name": "seld/cli-prompt",
@@ -4334,16 +4334,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.15.2",
+ "version": "v4.15.3",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc"
+ "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc",
- "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/570e980a201d8ed0236b0a62ddf2c9cbb2034039",
+ "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039",
"shasum": ""
},
"require": {
@@ -4384,9 +4384,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.3"
},
- "time": "2022-11-12T15:38:23+00:00"
+ "time": "2023-01-16T22:05:37+00:00"
},
{
"name": "phar-io/manifest",
@@ -4501,16 +4501,16 @@
},
{
"name": "phpstan/phpstan",
- "version": "1.9.4",
+ "version": "1.9.18",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "d03bccee595e2146b7c9d174486b84f4dc61b0f2"
+ "reference": "f2d5cf71be91172a57c649770b73c20ebcffb0bf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d03bccee595e2146b7c9d174486b84f4dc61b0f2",
- "reference": "d03bccee595e2146b7c9d174486b84f4dc61b0f2",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/f2d5cf71be91172a57c649770b73c20ebcffb0bf",
+ "reference": "f2d5cf71be91172a57c649770b73c20ebcffb0bf",
"shasum": ""
},
"require": {
@@ -4540,7 +4540,7 @@
],
"support": {
"issues": "https://github.com/phpstan/phpstan/issues",
- "source": "https://github.com/phpstan/phpstan/tree/1.9.4"
+ "source": "https://github.com/phpstan/phpstan/tree/1.9.18"
},
"funding": [
{
@@ -4556,7 +4556,7 @@
"type": "tidelift"
}
],
- "time": "2022-12-17T13:33:52+00:00"
+ "time": "2023-02-17T15:01:27+00:00"
},
{
"name": "phpstan/phpstan-deprecation-rules",
@@ -4608,16 +4608,16 @@
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.23",
+ "version": "9.2.24",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c"
+ "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c",
- "reference": "9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2cf940ebc6355a9d430462811b5aaa308b174bed",
+ "reference": "2cf940ebc6355a9d430462811b5aaa308b174bed",
"shasum": ""
},
"require": {
@@ -4673,7 +4673,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.23"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.24"
},
"funding": [
{
@@ -4681,7 +4681,7 @@
"type": "github"
}
],
- "time": "2022-12-28T12:41:10+00:00"
+ "time": "2023-01-26T08:26:55+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -4926,20 +4926,20 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.5.27",
+ "version": "9.6.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38"
+ "reference": "e7b1615e3e887d6c719121c6d4a44b0ab9645555"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a2bc7ffdca99f92d959b3f2270529334030bba38",
- "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/e7b1615e3e887d6c719121c6d4a44b0ab9645555",
+ "reference": "e7b1615e3e887d6c719121c6d4a44b0ab9645555",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.3.1",
+ "doctrine/instantiator": "^1.3.1 || ^2",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
@@ -4977,7 +4977,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.5-dev"
+ "dev-master": "9.6-dev"
}
},
"autoload": {
@@ -5008,7 +5008,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.27"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.3"
},
"funding": [
{
@@ -5024,7 +5024,7 @@
"type": "tidelift"
}
],
- "time": "2022-12-09T07:31:23+00:00"
+ "time": "2023-02-04T13:37:15+00:00"
},
{
"name": "psr/http-client",
@@ -5444,16 +5444,16 @@
},
{
"name": "sebastian/environment",
- "version": "5.1.4",
+ "version": "5.1.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7"
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7",
- "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
"shasum": ""
},
"require": {
@@ -5495,7 +5495,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
- "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4"
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
},
"funding": [
{
@@ -5503,7 +5503,7 @@
"type": "github"
}
],
- "time": "2022-04-03T09:37:03+00:00"
+ "time": "2023-02-03T06:03:51+00:00"
},
{
"name": "sebastian/exporter",
@@ -5817,16 +5817,16 @@
},
{
"name": "sebastian/recursion-context",
- "version": "4.0.4",
+ "version": "4.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
- "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
"shasum": ""
},
"require": {
@@ -5865,10 +5865,10 @@
}
],
"description": "Provides functionality to recursively process PHP variables",
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
"support": {
"issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
},
"funding": [
{
@@ -5876,7 +5876,7 @@
"type": "github"
}
],
- "time": "2020-10-26T13:17:30+00:00"
+ "time": "2023-02-03T06:07:39+00:00"
},
{
"name": "sebastian/resource-operations",
@@ -5935,16 +5935,16 @@
},
{
"name": "sebastian/type",
- "version": "3.2.0",
+ "version": "3.2.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e"
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
- "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
"shasum": ""
},
"require": {
@@ -5979,7 +5979,7 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/3.2.0"
+ "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
},
"funding": [
{
@@ -5987,7 +5987,7 @@
"type": "github"
}
],
- "time": "2022-09-12T14:47:03+00:00"
+ "time": "2023-02-03T06:13:03+00:00"
},
{
"name": "sebastian/version",
@@ -6044,16 +6044,16 @@
},
{
"name": "symfony/browser-kit",
- "version": "v5.4.11",
+ "version": "v5.4.19",
"source": {
"type": "git",
"url": "https://github.com/symfony/browser-kit.git",
- "reference": "081fe28a26b6bd671dea85ef3a4b5003f3c88027"
+ "reference": "572b9e03741051b97c316f65f8c361eed08fdb14"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/browser-kit/zipball/081fe28a26b6bd671dea85ef3a4b5003f3c88027",
- "reference": "081fe28a26b6bd671dea85ef3a4b5003f3c88027",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/572b9e03741051b97c316f65f8c361eed08fdb14",
+ "reference": "572b9e03741051b97c316f65f8c361eed08fdb14",
"shasum": ""
},
"require": {
@@ -6096,7 +6096,7 @@
"description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/browser-kit/tree/v5.4.11"
+ "source": "https://github.com/symfony/browser-kit/tree/v5.4.19"
},
"funding": [
{
@@ -6112,20 +6112,20 @@
"type": "tidelift"
}
],
- "time": "2022-07-27T15:50:05+00:00"
+ "time": "2023-01-01T08:32:19+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v5.4.17",
+ "version": "v5.4.19",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "052ef49b660f9ad2a3adb311c555c9bc11ba61f4"
+ "reference": "f4a7d150f5b9e8f974f6f127d8167e420d11fc62"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/052ef49b660f9ad2a3adb311c555c9bc11ba61f4",
- "reference": "052ef49b660f9ad2a3adb311c555c9bc11ba61f4",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/f4a7d150f5b9e8f974f6f127d8167e420d11fc62",
+ "reference": "f4a7d150f5b9e8f974f6f127d8167e420d11fc62",
"shasum": ""
},
"require": {
@@ -6162,7 +6162,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v5.4.17"
+ "source": "https://github.com/symfony/css-selector/tree/v5.4.19"
},
"funding": [
{
@@ -6178,7 +6178,7 @@
"type": "tidelift"
}
],
- "time": "2022-12-23T11:40:44+00:00"
+ "time": "2023-01-01T08:32:19+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -6249,16 +6249,16 @@
},
{
"name": "symfony/dom-crawler",
- "version": "v5.4.17",
+ "version": "v5.4.19",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "32a07d910edc138a1dd5508c17c6b9bc1eb27a1b"
+ "reference": "224a1820e7669babdd85970230ed72bd6e342ad4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/32a07d910edc138a1dd5508c17c6b9bc1eb27a1b",
- "reference": "32a07d910edc138a1dd5508c17c6b9bc1eb27a1b",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/224a1820e7669babdd85970230ed72bd6e342ad4",
+ "reference": "224a1820e7669babdd85970230ed72bd6e342ad4",
"shasum": ""
},
"require": {
@@ -6304,7 +6304,7 @@
"description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dom-crawler/tree/v5.4.17"
+ "source": "https://github.com/symfony/dom-crawler/tree/v5.4.19"
},
"funding": [
{
@@ -6320,20 +6320,20 @@
"type": "tidelift"
}
],
- "time": "2022-12-22T10:31:03+00:00"
+ "time": "2023-01-14T19:14:44+00:00"
},
{
"name": "symfony/finder",
- "version": "v5.4.17",
+ "version": "v5.4.19",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "40c08632019838dfb3350f18cf5563b8080055fc"
+ "reference": "6071aebf810ad13fe8200c224f36103abb37cf1f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/40c08632019838dfb3350f18cf5563b8080055fc",
- "reference": "40c08632019838dfb3350f18cf5563b8080055fc",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/6071aebf810ad13fe8200c224f36103abb37cf1f",
+ "reference": "6071aebf810ad13fe8200c224f36103abb37cf1f",
"shasum": ""
},
"require": {
@@ -6367,7 +6367,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v5.4.17"
+ "source": "https://github.com/symfony/finder/tree/v5.4.19"
},
"funding": [
{
@@ -6383,7 +6383,7 @@
"type": "tidelift"
}
],
- "time": "2022-12-22T10:31:03+00:00"
+ "time": "2023-01-14T19:14:44+00:00"
},
{
"name": "theseer/tokenizer",
diff --git a/system/blueprints/user/account.yaml b/system/blueprints/user/account.yaml
index ef5f25b04..ccc09a9f8 100644
--- a/system/blueprints/user/account.yaml
+++ b/system/blueprints/user/account.yaml
@@ -30,62 +30,63 @@ form:
type: section
title: PLUGIN_ADMIN.ACCOUNT
underline: true
+ fields:
- username:
- type: text
- size: large
- label: PLUGIN_ADMIN.USERNAME
- disabled: true
- readonly: true
+ username:
+ type: text
+ size: large
+ label: PLUGIN_ADMIN.USERNAME
+ disabled: true
+ readonly: true
- email:
- type: email
- size: large
- label: PLUGIN_ADMIN.EMAIL
- validate:
- type: email
- message: PLUGIN_ADMIN.EMAIL_VALIDATION_MESSAGE
- required: true
+ email:
+ type: email
+ size: large
+ label: PLUGIN_ADMIN.EMAIL
+ validate:
+ type: email
+ message: PLUGIN_ADMIN.EMAIL_VALIDATION_MESSAGE
+ required: true
- password:
- type: password
- size: large
- label: PLUGIN_ADMIN.PASSWORD
- autocomplete: new-password
- validate:
- required: false
- message: PLUGIN_ADMIN.PASSWORD_VALIDATION_MESSAGE
- config-pattern@: system.pwd_regex
+ password:
+ type: password
+ size: large
+ label: PLUGIN_ADMIN.PASSWORD
+ autocomplete: new-password
+ validate:
+ required: false
+ message: PLUGIN_ADMIN.PASSWORD_VALIDATION_MESSAGE
+ config-pattern@: system.pwd_regex
- fullname:
- type: text
- size: large
- label: PLUGIN_ADMIN.FULL_NAME
- validate:
- required: true
+ fullname:
+ type: text
+ size: large
+ label: PLUGIN_ADMIN.FULL_NAME
+ validate:
+ required: true
- title:
- type: text
- size: large
- label: PLUGIN_ADMIN.TITLE
+ title:
+ type: text
+ size: large
+ label: PLUGIN_ADMIN.TITLE
- language:
- type: select
- label: PLUGIN_ADMIN.LANGUAGE
- size: medium
- classes: fancy
- data-options@: '\Grav\Plugin\Admin\Admin::adminLanguages'
- default: 'en'
- help: PLUGIN_ADMIN.LANGUAGE_HELP
+ language:
+ type: select
+ label: PLUGIN_ADMIN.LANGUAGE
+ size: medium
+ classes: fancy
+ data-options@: '\Grav\Plugin\Admin\Admin::adminLanguages'
+ default: 'en'
+ help: PLUGIN_ADMIN.LANGUAGE_HELP
- content_editor:
- type: select
- label: PLUGIN_ADMIN.CONTENT_EDITOR
- size: medium
- classes: fancy
- data-options@: 'Grav\Plugin\Admin\Admin::contentEditor'
- default: 'default'
- help: PLUGIN_ADMIN.CONTENT_EDITOR_HELP
+ content_editor:
+ type: select
+ label: PLUGIN_ADMIN.CONTENT_EDITOR
+ size: medium
+ classes: fancy
+ data-options@: 'Grav\Plugin\Admin\Admin::contentEditor'
+ default: 'default'
+ help: PLUGIN_ADMIN.CONTENT_EDITOR_HELP
twofa_check:
type: conditional
diff --git a/system/defines.php b/system/defines.php
index 803ab45a2..614057dfb 100644
--- a/system/defines.php
+++ b/system/defines.php
@@ -9,7 +9,7 @@
// Some standard defines
define('GRAV', true);
-define('GRAV_VERSION', '1.7.38');
+define('GRAV_VERSION', '1.7.39');
define('GRAV_SCHEMA', '1.7.0_2020-11-20_1');
define('GRAV_TESTING', false);
diff --git a/system/src/Grav/Common/Data/Validation.php b/system/src/Grav/Common/Data/Validation.php
index a551fb56a..6deb93190 100644
--- a/system/src/Grav/Common/Data/Validation.php
+++ b/system/src/Grav/Common/Data/Validation.php
@@ -638,7 +638,7 @@ class Validation
$values = !is_array($value) ? explode(',', preg_replace('/\s+/', '', $value)) : $value;
foreach ($values as $val) {
- if (!(self::typeText($val, $params, $field) && filter_var($val, FILTER_VALIDATE_EMAIL))) {
+ if (!(self::typeText($val, $params, $field) && strpos($val, '@', 1))) {
return false;
}
}
diff --git a/system/src/Grav/Common/Page/Pages.php b/system/src/Grav/Common/Page/Pages.php
index 9282a8f0b..8fbcb397e 100644
--- a/system/src/Grav/Common/Page/Pages.php
+++ b/system/src/Grav/Common/Page/Pages.php
@@ -26,6 +26,7 @@ use Grav\Common\Page\Interfaces\PageInterface;
use Grav\Common\Taxonomy;
use Grav\Common\Uri;
use Grav\Common\Utils;
+use Grav\Events\TypesEvent;
use Grav\Framework\Flex\Flex;
use Grav\Framework\Flex\FlexDirectory;
use Grav\Framework\Flex\Interfaces\FlexTranslateInterface;
@@ -1289,7 +1290,7 @@ class Pages
$scanBlueprintsAndTemplates = static function (Types $types) use ($grav) {
// Scan blueprints
- $event = new Event();
+ $event = new TypesEvent();
$event->types = $types;
$grav->fireEvent('onGetPageBlueprints', $event);
@@ -1303,7 +1304,7 @@ class Pages
$types->scanBlueprints($lookup);
// Scan templates
- $event = new Event();
+ $event = new TypesEvent();
$event->types = $types;
$grav->fireEvent('onGetPageTemplates', $event);
diff --git a/system/src/Grav/Common/Processors/PagesProcessor.php b/system/src/Grav/Common/Processors/PagesProcessor.php
index 14a09bb7a..2d29a35b2 100644
--- a/system/src/Grav/Common/Processors/PagesProcessor.php
+++ b/system/src/Grav/Common/Processors/PagesProcessor.php
@@ -10,6 +10,7 @@
namespace Grav\Common\Processors;
use Grav\Common\Page\Interfaces\PageInterface;
+use Grav\Events\PageEvent;
use Grav\Framework\RequestHandler\Exception\RequestException;
use Grav\Plugin\Form\Forms;
use RocketTheme\Toolbox\Event\Event;
@@ -66,7 +67,7 @@ class PagesProcessor extends ProcessorBase
if (!$page->routable()) {
$exception = new RequestException($request, 'Page Not Found', 404);
// If no page found, fire event
- $event = new Event([
+ $event = new PageEvent([
'page' => $page,
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
diff --git a/system/src/Grav/Common/Twig/Twig.php b/system/src/Grav/Common/Twig/Twig.php
index 66a9d786c..1d2beb953 100644
--- a/system/src/Grav/Common/Twig/Twig.php
+++ b/system/src/Grav/Common/Twig/Twig.php
@@ -513,7 +513,7 @@ class Twig
$default = $page->isModule() ? 'modular/default' : 'default';
$extension = $format ?: $page->templateFormat();
$twig_extension = $extension ? '.'. $extension .TWIG_EXT : TEMPLATE_EXT;
- $template_file = $this->template($page->template() . $twig_extension);
+ $template_file = $template . $twig_extension;
// TODO: no longer needed in Twig 3.
/** @var ExistsLoaderInterface $loader */
diff --git a/system/src/Grav/Common/Utils.php b/system/src/Grav/Common/Utils.php
index 078a49a7e..0b6309c34 100644
--- a/system/src/Grav/Common/Utils.php
+++ b/system/src/Grav/Common/Utils.php
@@ -1145,9 +1145,9 @@ abstract class Utils
$offset_prefix = $offset < 0 ? '-' : '+';
$offset_formatted = gmdate('H:i', abs($offset));
- $pretty_offset = "UTC${offset_prefix}${offset_formatted}";
+ $pretty_offset = "UTC{$offset_prefix}{$offset_formatted}";
- $timezone_list[$timezone] = "(${pretty_offset}) " . str_replace('_', ' ', $timezone);
+ $timezone_list[$timezone] = "({$pretty_offset}) " . str_replace('_', ' ', $timezone);
}
return $timezone_list;
diff --git a/system/src/Grav/Console/Cli/LogViewerCommand.php b/system/src/Grav/Console/Cli/LogViewerCommand.php
index 8c26af24c..107ebf79b 100644
--- a/system/src/Grav/Console/Cli/LogViewerCommand.php
+++ b/system/src/Grav/Console/Cli/LogViewerCommand.php
@@ -82,7 +82,7 @@ class LogViewerCommand extends GravCommand
if ($log['trace'] && $verbose) {
$output .= " {$log['message']}\n";
foreach ((array) $log['trace'] as $index => $tracerow) {
- $output .= "{$index}${tracerow}\n";
+ $output .= "{$index}{$tracerow}\n";
}
} else {
$output .= " {$log['message']}";
diff --git a/system/src/Grav/Console/Gpm/InstallCommand.php b/system/src/Grav/Console/Gpm/InstallCommand.php
index f16b5be5f..a45c2906b 100644
--- a/system/src/Grav/Console/Gpm/InstallCommand.php
+++ b/system/src/Grav/Console/Gpm/InstallCommand.php
@@ -317,7 +317,7 @@ class InstallCommand extends GpmCommand
$questionNoun = 'packages';
}
- $question = new ConfirmationQuestion("${questionAction} {$questionArticle} {$questionNoun}? [Y|n] ", true);
+ $question = new ConfirmationQuestion("{$questionAction} {$questionArticle} {$questionNoun}? [Y|n] ", true);
$answer = $this->all_yes ? true : $io->askQuestion($question);
if ($answer) {
diff --git a/system/src/Grav/Events/PageEvent.php b/system/src/Grav/Events/PageEvent.php
new file mode 100644
index 000000000..4429eb88f
--- /dev/null
+++ b/system/src/Grav/Events/PageEvent.php
@@ -0,0 +1,18 @@
+