Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bf32cbaee8 | ||
|
|
916911e1d6 | ||
|
|
168e1009e8 | ||
|
|
b4c613c9a4 | ||
|
|
1eb3163ad6 | ||
|
|
b6dfcd4485 | ||
|
|
c0837f799e | ||
|
|
9e64c092d4 | ||
|
|
c9b30d9046 | ||
|
|
9cf2dd32d8 | ||
|
|
7a02d86270 | ||
|
|
61261ea35b | ||
|
|
265670ec89 | ||
|
|
13e1af6f8e | ||
|
|
03a6d00061 | ||
|
|
8b0a0ea705 | ||
|
|
bd68707e61 | ||
|
|
e2b0c1c59a | ||
|
|
d3eea03e7d | ||
|
|
225e5c5929 | ||
|
|
79b253c350 | ||
|
|
b1ebaf63c0 | ||
|
|
32d2c3709a | ||
|
|
4659728d34 | ||
|
|
aa55ae2e35 | ||
|
|
551ff35344 | ||
|
|
4e1a5c59b5 | ||
|
|
780a55fb00 | ||
|
|
7cbdba45da | ||
|
|
aebcee71b1 | ||
|
|
28b23dcfbc | ||
|
|
50f0d72e62 | ||
|
|
956d8fb1ec | ||
|
|
781d3d5230 | ||
|
|
b7229d0c02 | ||
|
|
6a09dbd486 | ||
|
|
fff698433f | ||
|
|
2004adee70 | ||
|
|
761659ddf0 | ||
|
|
6f7463ad93 | ||
|
|
3e43f73411 | ||
|
|
cfaa928600 | ||
|
|
b98a63475e | ||
|
|
799c739999 | ||
|
|
a4cdf3cfd2 | ||
|
|
1e52fb821c | ||
|
|
41717783ac | ||
|
|
bf0dade005 | ||
|
|
e4b3ca6c94 | ||
|
|
0150486358 | ||
|
|
878e9adeb6 | ||
|
|
afac7f57b0 | ||
|
|
cd374d7de8 | ||
|
|
56a2f0c21f | ||
|
|
f7e402320e | ||
|
|
79071bf0cc | ||
|
|
6d40f860e4 | ||
|
|
fcb7677cfc | ||
|
|
86dcf68f62 | ||
|
|
eddb96cb2e | ||
|
|
2df8d15d91 | ||
|
|
f515e7682a | ||
|
|
6e56bf1799 | ||
|
|
613ea5fc02 | ||
|
|
a9cd74b3fb | ||
|
|
bcd129a961 | ||
|
|
35eadafe3e | ||
|
|
74f4c09eb1 | ||
|
|
67ce55c047 | ||
|
|
ab9c1dcd4d | ||
|
|
f7225cdd01 | ||
|
|
65d95036c0 | ||
|
|
1904ab1352 | ||
|
|
77065246fc | ||
|
|
b6168089a7 | ||
|
|
249bc608b3 | ||
|
|
9c61825a17 | ||
|
|
f7c8728f20 | ||
|
|
7356c6cec6 | ||
|
|
7d11684731 | ||
|
|
86573ebbe9 | ||
|
|
e31f0c34a7 | ||
|
|
452f41108b | ||
|
|
d62d02201b | ||
|
|
cfe15cebd8 | ||
|
|
8133aa66f0 | ||
|
|
94175c1df1 | ||
|
|
82d5409957 | ||
|
|
07728aa425 | ||
|
|
29ad08648f | ||
|
|
a3a4e3922c | ||
|
|
76ff40f8bb | ||
|
|
c0fbcb7706 | ||
|
|
7e073fdfa0 | ||
|
|
1d0a95f022 |
@@ -124,16 +124,16 @@
|
||||
},
|
||||
{
|
||||
"name": "chi-teck/drupal-code-generator",
|
||||
"version": "1.23.2",
|
||||
"version": "1.24.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Chi-teck/drupal-code-generator.git",
|
||||
"reference": "b157b38c8c148c67d5b80c7c349b1a446115ea0e"
|
||||
"reference": "20682ec4acc92e9671ba7b9bd0e972978c3a08f2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Chi-teck/drupal-code-generator/zipball/b157b38c8c148c67d5b80c7c349b1a446115ea0e",
|
||||
"reference": "b157b38c8c148c67d5b80c7c349b1a446115ea0e",
|
||||
"url": "https://api.github.com/repos/Chi-teck/drupal-code-generator/zipball/20682ec4acc92e9671ba7b9bd0e972978c3a08f2",
|
||||
"reference": "20682ec4acc92e9671ba7b9bd0e972978c3a08f2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -159,7 +159,7 @@
|
||||
"GPL-2.0-or-later"
|
||||
],
|
||||
"description": "Drupal code generator",
|
||||
"time": "2018-03-03T04:17:26+00:00"
|
||||
"time": "2018-04-25T17:35:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "composer/installers",
|
||||
@@ -554,16 +554,16 @@
|
||||
},
|
||||
{
|
||||
"name": "consolidation/robo",
|
||||
"version": "1.2.2",
|
||||
"version": "1.2.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/consolidation/Robo.git",
|
||||
"reference": "9ef2724f72feb017517a755564516dbde99e15e4"
|
||||
"reference": "54a13e268917b92576d75e10dca8227b95a574d9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/consolidation/Robo/zipball/9ef2724f72feb017517a755564516dbde99e15e4",
|
||||
"reference": "9ef2724f72feb017517a755564516dbde99e15e4",
|
||||
"url": "https://api.github.com/repos/consolidation/Robo/zipball/54a13e268917b92576d75e10dca8227b95a574d9",
|
||||
"reference": "54a13e268917b92576d75e10dca8227b95a574d9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -587,9 +587,11 @@
|
||||
"codeception/aspect-mock": "^1|^2.1.1",
|
||||
"codeception/base": "^2.3.7",
|
||||
"codeception/verify": "^0.3.2",
|
||||
"g-1-a/composer-test-scenarios": "^2",
|
||||
"goaop/framework": "~2.1.2",
|
||||
"greg-1-anderson/composer-test-scenarios": "^1",
|
||||
"goaop/parser-reflection": "^1.1.0",
|
||||
"natxet/cssmin": "3.0.4",
|
||||
"nikic/php-parser": "^3.1.5",
|
||||
"patchwork/jsqueeze": "~2",
|
||||
"pear/archive_tar": "^1.4.2",
|
||||
"phpunit/php-code-coverage": "~2|~4",
|
||||
@@ -628,7 +630,7 @@
|
||||
}
|
||||
],
|
||||
"description": "Modern task runner",
|
||||
"time": "2018-02-28T01:03:54+00:00"
|
||||
"time": "2018-04-06T05:27:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "container-interop/container-interop",
|
||||
@@ -1522,16 +1524,16 @@
|
||||
},
|
||||
{
|
||||
"name": "drupal/core",
|
||||
"version": "8.5.1",
|
||||
"version": "8.5.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/drupal/core.git",
|
||||
"reference": "2aeca7dfa2661296602ac16bf9fd6085f0a121be"
|
||||
"reference": "b012f0ae51504880e920f2c6efdbdf03b6fe2129"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/drupal/core/zipball/2aeca7dfa2661296602ac16bf9fd6085f0a121be",
|
||||
"reference": "2aeca7dfa2661296602ac16bf9fd6085f0a121be",
|
||||
"url": "https://api.github.com/repos/drupal/core/zipball/b012f0ae51504880e920f2c6efdbdf03b6fe2129",
|
||||
"reference": "b012f0ae51504880e920f2c6efdbdf03b6fe2129",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1753,7 +1755,7 @@
|
||||
"GPL-2.0-or-later"
|
||||
],
|
||||
"description": "Drupal is an open source content management platform powering millions of websites and applications.",
|
||||
"time": "2018-03-27T09:58:42+00:00"
|
||||
"time": "2018-04-25T15:39:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "drush/drush",
|
||||
@@ -2067,16 +2069,16 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/guzzle",
|
||||
"version": "6.3.2",
|
||||
"version": "6.3.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/guzzle.git",
|
||||
"reference": "68d0ea14d5a3f42a20e87632a5f84931e2709c90"
|
||||
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/68d0ea14d5a3f42a20e87632a5f84931e2709c90",
|
||||
"reference": "68d0ea14d5a3f42a20e87632a5f84931e2709c90",
|
||||
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba",
|
||||
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2086,7 +2088,7 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-curl": "*",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4",
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
|
||||
"psr/log": "^1.0"
|
||||
},
|
||||
"suggest": {
|
||||
@@ -2128,7 +2130,7 @@
|
||||
"rest",
|
||||
"web service"
|
||||
],
|
||||
"time": "2018-03-26T16:33:04+00:00"
|
||||
"time": "2018-04-22T15:46:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
@@ -2465,24 +2467,24 @@
|
||||
},
|
||||
{
|
||||
"name": "nikic/php-parser",
|
||||
"version": "v3.1.5",
|
||||
"version": "v4.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/nikic/PHP-Parser.git",
|
||||
"reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce"
|
||||
"reference": "e4a54fa90a5cd8e8dd3fb4099942681731c5cdd3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bb87e28e7d7b8d9a7fda231d37457c9210faf6ce",
|
||||
"reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce",
|
||||
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/e4a54fa90a5cd8e8dd3fb4099942681731c5cdd3",
|
||||
"reference": "e4a54fa90a5cd8e8dd3fb4099942681731c5cdd3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-tokenizer": "*",
|
||||
"php": ">=5.5"
|
||||
"php": ">=7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.0|~5.0"
|
||||
"phpunit/phpunit": "^6.5 || ^7.0"
|
||||
},
|
||||
"bin": [
|
||||
"bin/php-parse"
|
||||
@@ -2490,7 +2492,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.0-dev"
|
||||
"dev-master": "4.0-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -2512,20 +2514,20 @@
|
||||
"parser",
|
||||
"php"
|
||||
],
|
||||
"time": "2018-02-28T20:30:58+00:00"
|
||||
"time": "2018-03-25T17:35:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "paragonie/random_compat",
|
||||
"version": "v2.0.11",
|
||||
"version": "v2.0.12",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/paragonie/random_compat.git",
|
||||
"reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8"
|
||||
"reference": "258c89a6b97de7dfaf5b8c7607d0478e236b04fb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8",
|
||||
"reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8",
|
||||
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/258c89a6b97de7dfaf5b8c7607d0478e236b04fb",
|
||||
"reference": "258c89a6b97de7dfaf5b8c7607d0478e236b04fb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2560,7 +2562,7 @@
|
||||
"pseudorandom",
|
||||
"random"
|
||||
],
|
||||
"time": "2017-09-27T21:40:39+00:00"
|
||||
"time": "2018-04-04T21:24:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/container",
|
||||
@@ -2710,29 +2712,29 @@
|
||||
},
|
||||
{
|
||||
"name": "psy/psysh",
|
||||
"version": "v0.8.18",
|
||||
"version": "v0.9.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/bobthecow/psysh.git",
|
||||
"reference": "5357b1cffc8fb375d6a9e3c86d5c82dd38a40834"
|
||||
"reference": "79c280013cf0b30fa23f3ba8bd3649218075adf4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/5357b1cffc8fb375d6a9e3c86d5c82dd38a40834",
|
||||
"reference": "5357b1cffc8fb375d6a9e3c86d5c82dd38a40834",
|
||||
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/79c280013cf0b30fa23f3ba8bd3649218075adf4",
|
||||
"reference": "79c280013cf0b30fa23f3ba8bd3649218075adf4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"dnoegel/php-xdg-base-dir": "0.1",
|
||||
"jakub-onderka/php-console-highlighter": "0.3.*",
|
||||
"nikic/php-parser": "~1.3|~2.0|~3.0",
|
||||
"php": ">=5.3.9",
|
||||
"nikic/php-parser": "~1.3|~2.0|~3.0|~4.0",
|
||||
"php": ">=5.4.0",
|
||||
"symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0",
|
||||
"symfony/var-dumper": "~2.7|~3.0|~4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"hoa/console": "~3.16|~1.14",
|
||||
"phpunit/phpunit": "^4.8.35|^5.4.3",
|
||||
"hoa/console": "~2.15|~3.16",
|
||||
"phpunit/phpunit": "~4.8.35|~5.0|~6.0|~7.0",
|
||||
"symfony/finder": "~2.1|~3.0|~4.0"
|
||||
},
|
||||
"suggest": {
|
||||
@@ -2748,15 +2750,15 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-develop": "0.8.x-dev"
|
||||
"dev-develop": "0.9.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"src/Psy/functions.php"
|
||||
"src/functions.php"
|
||||
],
|
||||
"psr-4": {
|
||||
"Psy\\": "src/Psy/"
|
||||
"Psy\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
@@ -2778,7 +2780,7 @@
|
||||
"interactive",
|
||||
"shell"
|
||||
],
|
||||
"time": "2018-04-02T05:41:44+00:00"
|
||||
"time": "2018-04-18T12:32:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/version",
|
||||
@@ -2978,7 +2980,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/class-loader",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/class-loader.git",
|
||||
@@ -3034,7 +3036,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/config",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/config.git",
|
||||
@@ -3097,7 +3099,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
@@ -3166,7 +3168,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/css-selector",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/css-selector.git",
|
||||
@@ -3219,7 +3221,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/debug",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/debug.git",
|
||||
@@ -3275,7 +3277,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/dependency-injection",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/dependency-injection.git",
|
||||
@@ -3346,7 +3348,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/dom-crawler",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/dom-crawler.git",
|
||||
@@ -3402,16 +3404,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||
"reference": "58990682ac3fdc1f563b7e705452921372aad11d"
|
||||
"reference": "fdd5abcebd1061ec647089c6c41a07ed60af09f8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/58990682ac3fdc1f563b7e705452921372aad11d",
|
||||
"reference": "58990682ac3fdc1f563b7e705452921372aad11d",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/fdd5abcebd1061ec647089c6c41a07ed60af09f8",
|
||||
"reference": "fdd5abcebd1061ec647089c6c41a07ed60af09f8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3461,11 +3463,11 @@
|
||||
],
|
||||
"description": "Symfony EventDispatcher Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-02-14T10:03:57+00:00"
|
||||
"time": "2018-04-06T07:35:25+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/filesystem",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/filesystem.git",
|
||||
@@ -3514,16 +3516,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/finder.git",
|
||||
"reference": "7a2e1299cc0c4162996f18e347b6356729a55317"
|
||||
"reference": "bd14efe8b1fabc4de82bf50dce62f05f9a102433"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/7a2e1299cc0c4162996f18e347b6356729a55317",
|
||||
"reference": "7a2e1299cc0c4162996f18e347b6356729a55317",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/bd14efe8b1fabc4de82bf50dce62f05f9a102433",
|
||||
"reference": "bd14efe8b1fabc4de82bf50dce62f05f9a102433",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3559,11 +3561,11 @@
|
||||
],
|
||||
"description": "Symfony Finder Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-03-28T18:23:39+00:00"
|
||||
"time": "2018-04-04T05:07:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-foundation",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-foundation.git",
|
||||
@@ -3617,16 +3619,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-kernel",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-kernel.git",
|
||||
"reference": "43cfdad2ca1dba608662db0699c1bbb715d08191"
|
||||
"reference": "3cc2d4374aa9590c09277ad68657671cf49dbbf4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/43cfdad2ca1dba608662db0699c1bbb715d08191",
|
||||
"reference": "43cfdad2ca1dba608662db0699c1bbb715d08191",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/3cc2d4374aa9590c09277ad68657671cf49dbbf4",
|
||||
"reference": "3cc2d4374aa9590c09277ad68657671cf49dbbf4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3701,7 +3703,7 @@
|
||||
],
|
||||
"description": "Symfony HttpKernel Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-04-03T05:49:44+00:00"
|
||||
"time": "2018-04-06T15:19:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-iconv",
|
||||
@@ -3882,7 +3884,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/process.git",
|
||||
@@ -3991,16 +3993,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/routing",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/routing.git",
|
||||
"reference": "5f90733adbf19ea71468a5761fb8f5a043d424dd"
|
||||
"reference": "50f333b707bef9f6972ad04e6df3ec8875c9a67c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/5f90733adbf19ea71468a5761fb8f5a043d424dd",
|
||||
"reference": "5f90733adbf19ea71468a5761fb8f5a043d424dd",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/50f333b707bef9f6972ad04e6df3ec8875c9a67c",
|
||||
"reference": "50f333b707bef9f6972ad04e6df3ec8875c9a67c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4065,11 +4067,11 @@
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"time": "2018-03-23T08:14:09+00:00"
|
||||
"time": "2018-04-04T13:22:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/serializer",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/serializer.git",
|
||||
@@ -4147,7 +4149,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/translation.git",
|
||||
@@ -4215,16 +4217,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/validator",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/validator.git",
|
||||
"reference": "4342b66102171b417776f0e4f8f00b20a1eddb0f"
|
||||
"reference": "6fa41262dcbd50eedb1e841cfd97f5a1956cf2e7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/validator/zipball/4342b66102171b417776f0e4f8f00b20a1eddb0f",
|
||||
"reference": "4342b66102171b417776f0e4f8f00b20a1eddb0f",
|
||||
"url": "https://api.github.com/repos/symfony/validator/zipball/6fa41262dcbd50eedb1e841cfd97f5a1956cf2e7",
|
||||
"reference": "6fa41262dcbd50eedb1e841cfd97f5a1956cf2e7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4295,20 +4297,20 @@
|
||||
],
|
||||
"description": "Symfony Validator Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-04-02T09:38:44+00:00"
|
||||
"time": "2018-04-06T07:35:25+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-dumper",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-dumper.git",
|
||||
"reference": "6f502127b1bb85f7f30f8bc1fb60570a10431863"
|
||||
"reference": "951643091b39a6fd40fce56cd16e21e12bef3feb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/6f502127b1bb85f7f30f8bc1fb60570a10431863",
|
||||
"reference": "6f502127b1bb85f7f30f8bc1fb60570a10431863",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/951643091b39a6fd40fce56cd16e21e12bef3feb",
|
||||
"reference": "951643091b39a6fd40fce56cd16e21e12bef3feb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4364,11 +4366,11 @@
|
||||
"debug",
|
||||
"dump"
|
||||
],
|
||||
"time": "2018-04-03T05:22:50+00:00"
|
||||
"time": "2018-04-03T20:34:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/yaml.git",
|
||||
@@ -4725,30 +4727,30 @@
|
||||
},
|
||||
{
|
||||
"name": "zendframework/zend-escaper",
|
||||
"version": "2.5.2",
|
||||
"version": "2.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zendframework/zend-escaper.git",
|
||||
"reference": "2dcd14b61a72d8b8e27d579c6344e12c26141d4e"
|
||||
"reference": "31d8aafae982f9568287cb4dce987e6aff8fd074"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/2dcd14b61a72d8b8e27d579c6344e12c26141d4e",
|
||||
"reference": "2dcd14b61a72d8b8e27d579c6344e12c26141d4e",
|
||||
"url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/31d8aafae982f9568287cb4dce987e6aff8fd074",
|
||||
"reference": "31d8aafae982f9568287cb4dce987e6aff8fd074",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.5"
|
||||
"php": "^5.6 || ^7.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"fabpot/php-cs-fixer": "1.7.*",
|
||||
"phpunit/phpunit": "~4.0"
|
||||
"phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2",
|
||||
"zendframework/zend-coding-standard": "~1.0.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.5-dev",
|
||||
"dev-develop": "2.6-dev"
|
||||
"dev-master": "2.6.x-dev",
|
||||
"dev-develop": "2.7.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -4760,12 +4762,13 @@
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"homepage": "https://github.com/zendframework/zend-escaper",
|
||||
"description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs",
|
||||
"keywords": [
|
||||
"ZendFramework",
|
||||
"escaper",
|
||||
"zf2"
|
||||
"zf"
|
||||
],
|
||||
"time": "2016-06-30T19:48:38+00:00"
|
||||
"time": "2018-04-25T15:48:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zendframework/zend-feed",
|
||||
@@ -4830,16 +4833,16 @@
|
||||
},
|
||||
{
|
||||
"name": "zendframework/zend-stdlib",
|
||||
"version": "3.1.0",
|
||||
"version": "3.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zendframework/zend-stdlib.git",
|
||||
"reference": "debedcfc373a293f9250cc9aa03cf121428c8e78"
|
||||
"reference": "10ef03144902d1955f935fff5346ed52f7d99bcc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/debedcfc373a293f9250cc9aa03cf121428c8e78",
|
||||
"reference": "debedcfc373a293f9250cc9aa03cf121428c8e78",
|
||||
"url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/10ef03144902d1955f935fff5346ed52f7d99bcc",
|
||||
"reference": "10ef03144902d1955f935fff5346ed52f7d99bcc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4848,7 +4851,7 @@
|
||||
"require-dev": {
|
||||
"athletic/athletic": "~0.1",
|
||||
"phpunit/phpunit": "~4.0",
|
||||
"squizlabs/php_codesniffer": "^2.6.2"
|
||||
"zendframework/zend-coding-standard": "~1.0.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -4871,7 +4874,7 @@
|
||||
"stdlib",
|
||||
"zf2"
|
||||
],
|
||||
"time": "2016-09-13T14:38:50+00:00"
|
||||
"time": "2018-04-12T16:05:42+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
@@ -5766,23 +5769,23 @@
|
||||
},
|
||||
{
|
||||
"name": "phpspec/prophecy",
|
||||
"version": "1.7.5",
|
||||
"version": "1.7.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpspec/prophecy.git",
|
||||
"reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401"
|
||||
"reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401",
|
||||
"reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401",
|
||||
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/33a7e3c4fda54e912ff6338c48823bd5c0f0b712",
|
||||
"reference": "33a7e3c4fda54e912ff6338c48823bd5c0f0b712",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/instantiator": "^1.0.2",
|
||||
"php": "^5.3|^7.0",
|
||||
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
|
||||
"sebastian/comparator": "^1.1|^2.0",
|
||||
"sebastian/comparator": "^1.1|^2.0|^3.0",
|
||||
"sebastian/recursion-context": "^1.0|^2.0|^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
@@ -5825,20 +5828,20 @@
|
||||
"spy",
|
||||
"stub"
|
||||
],
|
||||
"time": "2018-02-19T10:16:54+00:00"
|
||||
"time": "2018-04-18T13:57:24+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-code-coverage",
|
||||
"version": "5.3.0",
|
||||
"version": "5.3.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
||||
"reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1"
|
||||
"reference": "c89677919c5dd6d3b3852f230a663118762218ac"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/661f34d0bd3f1a7225ef491a70a020ad23a057a1",
|
||||
"reference": "661f34d0bd3f1a7225ef491a70a020ad23a057a1",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c89677919c5dd6d3b3852f230a663118762218ac",
|
||||
"reference": "c89677919c5dd6d3b3852f230a663118762218ac",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5888,7 +5891,7 @@
|
||||
"testing",
|
||||
"xunit"
|
||||
],
|
||||
"time": "2017-12-06T09:29:45+00:00"
|
||||
"time": "2018-04-06T15:36:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/php-file-iterator",
|
||||
@@ -6078,16 +6081,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit",
|
||||
"version": "6.5.7",
|
||||
"version": "6.5.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
||||
"reference": "6bd77b57707c236833d2b57b968e403df060c9d9"
|
||||
"reference": "4f21a3c6b97c42952fd5c2837bb354ec0199b97b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/6bd77b57707c236833d2b57b968e403df060c9d9",
|
||||
"reference": "6bd77b57707c236833d2b57b968e403df060c9d9",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4f21a3c6b97c42952fd5c2837bb354ec0199b97b",
|
||||
"reference": "4f21a3c6b97c42952fd5c2837bb354ec0199b97b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -6158,7 +6161,7 @@
|
||||
"testing",
|
||||
"xunit"
|
||||
],
|
||||
"time": "2018-02-26T07:01:09+00:00"
|
||||
"time": "2018-04-10T11:38:34+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpunit/phpunit-mock-objects",
|
||||
@@ -6815,7 +6818,7 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/browser-kit",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/browser-kit.git",
|
||||
@@ -6872,16 +6875,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/phpunit-bridge",
|
||||
"version": "v3.4.7",
|
||||
"version": "v3.4.8",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/phpunit-bridge.git",
|
||||
"reference": "e4b72beb8961340764367a804f21044e83fc19a8"
|
||||
"reference": "48c669ec1a2b0425d4a82c7ad4bce2f5b947b95e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/e4b72beb8961340764367a804f21044e83fc19a8",
|
||||
"reference": "e4b72beb8961340764367a804f21044e83fc19a8",
|
||||
"url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/48c669ec1a2b0425d4a82c7ad4bce2f5b947b95e",
|
||||
"reference": "48c669ec1a2b0425d4a82c7ad4bce2f5b947b95e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -6934,7 +6937,7 @@
|
||||
],
|
||||
"description": "Symfony PHPUnit Bridge",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2018-03-20T23:37:33+00:00"
|
||||
"time": "2018-04-04T15:02:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "theseer/tokenizer",
|
||||
|
||||
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 11 KiB |
@@ -24,7 +24,7 @@ classList:
|
||||
|
||||
ckeditor:
|
||||
remote: https://github.com/ckeditor/ckeditor-dev
|
||||
version: "4.8.0"
|
||||
version: "4.8.0+2018-04-18-security-patch"
|
||||
license:
|
||||
name: GNU-GPL-2.0-or-later
|
||||
url: https://github.com/ckeditor/ckeditor-dev/blob/4.8.0/LICENSE.md
|
||||
|
||||
@@ -82,7 +82,7 @@ class Drupal {
|
||||
/**
|
||||
* The current system version.
|
||||
*/
|
||||
const VERSION = '8.5.1';
|
||||
const VERSION = '8.5.3';
|
||||
|
||||
/**
|
||||
* Core API compatibility.
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace Drupal\Core\Security;
|
||||
|
||||
use Drupal\Component\Utility\UrlHelper;
|
||||
use Symfony\Component\HttpFoundation\ParameterBag;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
/**
|
||||
@@ -39,28 +41,18 @@ class RequestSanitizer {
|
||||
*/
|
||||
public static function sanitize(Request $request, $whitelist, $log_sanitized_keys = FALSE) {
|
||||
if (!$request->attributes->get(self::SANITIZED, FALSE)) {
|
||||
// Process query string parameters.
|
||||
$get_sanitized_keys = [];
|
||||
$request->query->replace(static::stripDangerousValues($request->query->all(), $whitelist, $get_sanitized_keys));
|
||||
if ($log_sanitized_keys && !empty($get_sanitized_keys)) {
|
||||
trigger_error(sprintf('Potentially unsafe keys removed from query string parameters (GET): %s', implode(', ', $get_sanitized_keys)));
|
||||
$update_globals = FALSE;
|
||||
$bags = [
|
||||
'query' => 'Potentially unsafe keys removed from query string parameters (GET): %s',
|
||||
'request' => 'Potentially unsafe keys removed from request body parameters (POST): %s',
|
||||
'cookies' => 'Potentially unsafe keys removed from cookie parameters: %s',
|
||||
];
|
||||
foreach ($bags as $bag => $message) {
|
||||
if (static::processParameterBag($request->$bag, $whitelist, $log_sanitized_keys, $bag, $message)) {
|
||||
$update_globals = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
// Request body parameters.
|
||||
$post_sanitized_keys = [];
|
||||
$request->request->replace(static::stripDangerousValues($request->request->all(), $whitelist, $post_sanitized_keys));
|
||||
if ($log_sanitized_keys && !empty($post_sanitized_keys)) {
|
||||
trigger_error(sprintf('Potentially unsafe keys removed from request body parameters (POST): %s', implode(', ', $post_sanitized_keys)));
|
||||
}
|
||||
|
||||
// Cookie parameters.
|
||||
$cookie_sanitized_keys = [];
|
||||
$request->cookies->replace(static::stripDangerousValues($request->cookies->all(), $whitelist, $cookie_sanitized_keys));
|
||||
if ($log_sanitized_keys && !empty($cookie_sanitized_keys)) {
|
||||
trigger_error(sprintf('Potentially unsafe keys removed from cookie parameters: %s', implode(', ', $cookie_sanitized_keys)));
|
||||
}
|
||||
|
||||
if (!empty($get_sanitized_keys) || !empty($post_sanitized_keys) || !empty($cookie_sanitized_keys)) {
|
||||
if ($update_globals) {
|
||||
$request->overrideGlobals();
|
||||
}
|
||||
$request->attributes->set(self::SANITIZED, TRUE);
|
||||
@@ -68,6 +60,72 @@ class RequestSanitizer {
|
||||
return $request;
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes a request parameter bag.
|
||||
*
|
||||
* @param \Symfony\Component\HttpFoundation\ParameterBag $bag
|
||||
* The parameter bag to process.
|
||||
* @param string[] $whitelist
|
||||
* An array of keys to whitelist as safe.
|
||||
* @param bool $log_sanitized_keys
|
||||
* Set to TRUE to log keys that are sanitized.
|
||||
* @param string $bag_name
|
||||
* The request parameter bag name. Either 'query', 'request' or 'cookies'.
|
||||
* @param string $message
|
||||
* The message to log if the parameter bag contains keys that are removed.
|
||||
* If the message contains %s that is replaced by a list of removed keys.
|
||||
*
|
||||
* @return bool
|
||||
* TRUE if the parameter bag has been sanitized, FALSE if not.
|
||||
*/
|
||||
protected static function processParameterBag(ParameterBag $bag, $whitelist, $log_sanitized_keys, $bag_name, $message) {
|
||||
$sanitized = FALSE;
|
||||
$sanitized_keys = [];
|
||||
$bag->replace(static::stripDangerousValues($bag->all(), $whitelist, $sanitized_keys));
|
||||
if (!empty($sanitized_keys)) {
|
||||
$sanitized = TRUE;
|
||||
if ($log_sanitized_keys) {
|
||||
trigger_error(sprintf($message, implode(', ', $sanitized_keys)));
|
||||
}
|
||||
}
|
||||
|
||||
if ($bag->has('destination')) {
|
||||
$destination_dangerous_keys = static::checkDestination($bag->get('destination'), $whitelist);
|
||||
if (!empty($destination_dangerous_keys)) {
|
||||
// The destination is removed rather than sanitized because the URL
|
||||
// generator service is not available and this method is called very
|
||||
// early in the bootstrap.
|
||||
$bag->remove('destination');
|
||||
$sanitized = TRUE;
|
||||
if ($log_sanitized_keys) {
|
||||
trigger_error(sprintf('Potentially unsafe destination removed from %s parameter bag because it contained the following keys: %s', $bag_name, implode(', ', $destination_dangerous_keys)));
|
||||
}
|
||||
}
|
||||
}
|
||||
return $sanitized;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks a destination string to see if it is dangerous.
|
||||
*
|
||||
* @param string $destination
|
||||
* The destination string to check.
|
||||
* @param array $whitelist
|
||||
* An array of keys to whitelist as safe.
|
||||
*
|
||||
* @return array
|
||||
* The dangerous keys found in the destination parameter.
|
||||
*/
|
||||
protected static function checkDestination($destination, array $whitelist) {
|
||||
$dangerous_keys = [];
|
||||
$parts = UrlHelper::parse($destination);
|
||||
// If there is a query string, check its query parameters.
|
||||
if (!empty($parts['query'])) {
|
||||
static::stripDangerousValues($parts['query'], $whitelist, $dangerous_keys);
|
||||
}
|
||||
return $dangerous_keys;
|
||||
}
|
||||
|
||||
/**
|
||||
* Strips dangerous keys from $input.
|
||||
*
|
||||
|
||||
@@ -8,6 +8,7 @@ use Drupal\Component\Utility\NestedArray;
|
||||
use Drupal\Core\Ajax\AjaxResponse;
|
||||
use Drupal\Core\Ajax\ReplaceCommand;
|
||||
use Drupal\Core\Form\FormStateInterface;
|
||||
use Drupal\Core\Render\Element;
|
||||
use Drupal\Core\Render\Element\FormElement;
|
||||
use Drupal\Core\Site\Settings;
|
||||
use Drupal\Core\Url;
|
||||
@@ -175,6 +176,9 @@ class ManagedFile extends FormElement {
|
||||
|
||||
$form_parents = explode('/', $request->query->get('element_parents'));
|
||||
|
||||
// Sanitize form parents before using them.
|
||||
$form_parents = array_filter($form_parents, [Element::class, 'child']);
|
||||
|
||||
// Retrieve the element to be rendered.
|
||||
$form = NestedArray::getValue($form, $form_parents);
|
||||
|
||||
|
||||
@@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
@@ -0,0 +1,12 @@
|
||||
name: Better Messages
|
||||
type: module
|
||||
description: This module adds simple functions to make Drupal messages look and act better.
|
||||
package: User interface
|
||||
# core: 8.x
|
||||
configure: better_messages.settings_form
|
||||
|
||||
# Information added by Drupal.org packaging script on 2018-02-03
|
||||
version: '8.x-1.0-alpha2'
|
||||
core: '8.x'
|
||||
project: 'better_messages'
|
||||
datestamp: 1517663884
|
||||
@@ -0,0 +1,14 @@
|
||||
better_messages:
|
||||
version: 1.x
|
||||
css:
|
||||
theme:
|
||||
css/better_messages.css: {}
|
||||
js:
|
||||
js/better_messages.js: {}
|
||||
dependencies:
|
||||
- core/jquery
|
||||
- core/jquery.once
|
||||
- core/jquery.ui.draggable
|
||||
- core/jquery.ui.resizable
|
||||
- core/drupal
|
||||
- core/drupalSettings
|
||||
@@ -0,0 +1,5 @@
|
||||
better_messages.settings_form:
|
||||
title: 'Better Messages settings'
|
||||
description: 'Better handling of Drupal messages UI'
|
||||
route_name: better_messages.settings_form
|
||||
parent: system.admin_config_ui
|
||||
@@ -0,0 +1,138 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Implements hook_theme().
|
||||
*/
|
||||
function better_messages_theme() {
|
||||
return [
|
||||
'better_messages_wrapper' => [
|
||||
'render element' => 'element',
|
||||
'variables' => [
|
||||
'children' => '',
|
||||
'message_list' => [],
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Implements hook_element_info_alter().
|
||||
*/
|
||||
function better_messages_element_info_alter(array &$info) {
|
||||
// Replace the default pre_render for status_messages with our custom one.
|
||||
$info['status_messages']['#pre_render'][0] = 'better_messages_status_messages_pre_render';
|
||||
}
|
||||
|
||||
/**
|
||||
* Pre render callback for 'status_messages' render element.
|
||||
*/
|
||||
function better_messages_status_messages_pre_render(array $element) {
|
||||
// The code below is heavily copied from StatusMessages::renderMessages().
|
||||
$element = [
|
||||
'#lazy_builder' => ['better_messages_status_messages_lazy_builder', [$element['#display']]],
|
||||
'#create_placeholder' => TRUE,
|
||||
];
|
||||
|
||||
// Directly create a placeholder as we need this to be placeholdered
|
||||
// regardless if this is a POST or GET request.
|
||||
// @todo remove this when https://www.drupal.org/node/2367555 lands.
|
||||
return \Drupal::service('render_placeholder_generator')->createPlaceholder($element);
|
||||
}
|
||||
|
||||
/**
|
||||
* Lazy builder for 'status_messages'.
|
||||
*
|
||||
* Improved version of StatusMessages::renderMessages() that additionally wraps
|
||||
* the output into an overlay markup whenever necessary.
|
||||
*
|
||||
* @param string|null $type
|
||||
* Limit the messages returned by type. Defaults to NULL, meaning all types.
|
||||
* Passed on to drupal_get_messages(). These values are supported:
|
||||
* - NULL
|
||||
* - 'status'
|
||||
* - 'warning'
|
||||
* - 'error'
|
||||
*
|
||||
* @return array
|
||||
* A renderable array containing the messages.
|
||||
*/
|
||||
function better_messages_status_messages_lazy_builder($type) {
|
||||
$render = \Drupal\Core\Render\Element\StatusMessages::renderMessages($type);
|
||||
if (!empty($render)) {
|
||||
$render['#theme_wrappers'][] = 'better_messages_wrapper';
|
||||
$render['#attached']['library'][] = 'better_messages/better_messages';
|
||||
$render['#attached']['drupalSettings']['better_messages'] = \Drupal::config('better_messages.settings')->get();
|
||||
}
|
||||
|
||||
return $render;
|
||||
}
|
||||
|
||||
/**
|
||||
* Preprocess for 'better_messages_wrapper' theme hook.
|
||||
*/
|
||||
function template_preprocess_better_messages_wrapper(&$variables) {
|
||||
$settings = \Drupal::config('better_messages.settings');
|
||||
$cache = \Drupal\Core\Cache\CacheableMetadata::createFromRenderArray($variables);
|
||||
$cache->addCacheTags($settings->getCacheTags());
|
||||
$cache->addCacheContexts($settings->getCacheContexts());
|
||||
$cache->mergeCacheMaxAge($settings->getCacheMaxAge());
|
||||
|
||||
// Inject the messages from $variables into our "better_messages" context
|
||||
// since now we have crossed beyond the point where "current" messages are
|
||||
// retrievable via drupal_get_messages().
|
||||
\Drupal::service('better_messages.context')->setMessages($variables['message_list']);
|
||||
|
||||
/** @var \Drupal\Core\Condition\ConditionManager $condition_manager */
|
||||
$condition_manager = \Drupal::service('plugin.manager.condition');
|
||||
/** @var \Drupal\Core\Plugin\Context\ContextRepositoryInterface $context_repository */
|
||||
$context_repository = \Drupal::service('context.repository');
|
||||
/** @var \Drupal\Core\Plugin\Context\ContextHandlerInterface $context_handler */
|
||||
$context_handler = \Drupal::service('context.handler');
|
||||
|
||||
$pass = TRUE;
|
||||
foreach ($settings->get('visibility') as $condition_id => $condition) {
|
||||
$condition = $condition_manager->createInstance($condition_id, $condition);
|
||||
if ($condition instanceof \Drupal\Core\Plugin\ContextAwarePluginInterface) {
|
||||
try {
|
||||
$contexts = $context_repository->getRuntimeContexts(array_values($condition->getContextMapping()));
|
||||
$context_handler->applyContextMapping($condition, $contexts);
|
||||
}
|
||||
catch (\Drupal\Component\Plugin\Exception\ContextException $e) {
|
||||
// We couldn't initialize the condition, so it just cannot participate.
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$pass = $condition->execute();
|
||||
}
|
||||
catch (\Drupal\Component\Plugin\Exception\ContextException $e) {
|
||||
// Condition couldn't evaluate itself. Let's skip it.
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($condition instanceof \Drupal\Core\Cache\CacheableDependencyInterface) {
|
||||
$cache->addCacheTags($condition->getCacheTags());
|
||||
$cache->addCacheContexts($condition->getCacheContexts());
|
||||
$cache->mergeCacheMaxAge($condition->getCacheMaxAge());
|
||||
}
|
||||
|
||||
if (!$pass) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$cache->applyTo($variables);
|
||||
|
||||
if ($pass && !empty($variables['message_list'])) {
|
||||
$variables['attributes']['class'][] = 'better-messages-overlay';
|
||||
|
||||
if (\Drupal::config('better_messages.settings')->get('fixed')) {
|
||||
$variables['attributes']['class'][] = 'better-messages-position-fixed';
|
||||
}
|
||||
|
||||
if (isset($variables['message_list']['error'])) {
|
||||
$variables['attributes']['class'][] = 'better-messages-has-errors';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
configure better messages:
|
||||
title: 'Configure better messages'
|
||||
description: 'Configure settings of the Better Messages module.'
|
||||
@@ -0,0 +1,7 @@
|
||||
better_messages.settings_form:
|
||||
path: /admin/config/user-interface/better-messages
|
||||
defaults:
|
||||
_form: 'Drupal\better_messages\Form\BetterMessagesSettingsForm'
|
||||
_title: 'Better Message settings'
|
||||
requirements:
|
||||
_permission: 'configure better messages'
|
||||
@@ -0,0 +1,5 @@
|
||||
services:
|
||||
better_messages.context:
|
||||
class: Drupal\better_messages\ContextProvider\MessagesContext
|
||||
tags:
|
||||
- { name: 'context_provider' }
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "drupal/better_messages",
|
||||
"description": "Better Messages module for Drupal 8.",
|
||||
"type": "drupal-module"
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
position: 'center'
|
||||
vertical: 0
|
||||
horizontal: 10
|
||||
fixed: 1
|
||||
width: '400px'
|
||||
autoclose: 0
|
||||
opendelay: 0.3
|
||||
disable_autoclose: 0
|
||||
show_countdown: 1
|
||||
hover_autoclose: 1
|
||||
popin:
|
||||
effect: 'fadeIn'
|
||||
duration: 'slow'
|
||||
popout:
|
||||
effect: 'fadeOut'
|
||||
duration: 'slow'
|
||||
jquery_ui:
|
||||
draggable: 1
|
||||
resizable: 0
|
||||
visibility: []
|
||||
@@ -0,0 +1,70 @@
|
||||
better_messages.settings:
|
||||
type: config_entity
|
||||
label: 'Better Messages settings'
|
||||
mapping:
|
||||
position:
|
||||
type: string
|
||||
label: 'Position'
|
||||
vertical:
|
||||
type: integer
|
||||
label: 'Vertical'
|
||||
horizontal:
|
||||
type: integer
|
||||
label: 'Horizontal'
|
||||
fixed:
|
||||
type: integer
|
||||
label: 'Fixed'
|
||||
width:
|
||||
type: string
|
||||
label: 'Width'
|
||||
autoclose:
|
||||
type: integer
|
||||
label: 'autoclose'
|
||||
opendelay:
|
||||
type: float
|
||||
label: 'Opendelay'
|
||||
disable_autoclose:
|
||||
type: integer
|
||||
label: 'Disable autoclose'
|
||||
show_countdown:
|
||||
type: integer
|
||||
label: 'Show countdown'
|
||||
hover_autoclose:
|
||||
type: integer
|
||||
label: 'Hover autoclose'
|
||||
popin:
|
||||
type: mapping
|
||||
label: 'Popin effect'
|
||||
mapping:
|
||||
effect:
|
||||
type: string
|
||||
label: 'Effect'
|
||||
duration:
|
||||
type: string
|
||||
label: 'Duration'
|
||||
popout:
|
||||
type: mapping
|
||||
label: 'Popout effect'
|
||||
mapping:
|
||||
effect:
|
||||
type: string
|
||||
label: 'Effect'
|
||||
duration:
|
||||
type: string
|
||||
label: 'Duration'
|
||||
jquery_ui:
|
||||
type: mapping
|
||||
label: 'jQuery UI enhancement'
|
||||
mapping:
|
||||
draggable:
|
||||
type: integer
|
||||
label: 'Draggable'
|
||||
resizable :
|
||||
type: integer
|
||||
label: 'Resizable'
|
||||
visibility:
|
||||
type: sequence
|
||||
label: 'Visibility Conditions'
|
||||
sequence:
|
||||
type: condition.plugin.[id]
|
||||
label: 'Visibility Condition'
|
||||
@@ -0,0 +1,9 @@
|
||||
condition.plugin.message_type:
|
||||
type: condition.plugin
|
||||
mapping:
|
||||
message_types:
|
||||
type: sequence
|
||||
label: 'Allowed message types'
|
||||
sequence:
|
||||
type: string
|
||||
label: 'Message type'
|
||||
@@ -0,0 +1,7 @@
|
||||
#better-messages-default .better-messages-close {
|
||||
float: left;
|
||||
}
|
||||
|
||||
#better-messages-default .better-messages-timer {
|
||||
float: right;
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
/** We want the admin toolbar to be on top of our overlay when it's
|
||||
horizontal. */
|
||||
.toolbar-horizontal #toolbar-administration {
|
||||
z-index: 520;
|
||||
}
|
||||
|
||||
/** Hide the messages if we have JS support */
|
||||
.js #better-messages-default.better-messages-overlay {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#better-messages-default.better-messages-overlay {
|
||||
z-index: 510;
|
||||
position: absolute;
|
||||
background: #FFFFFF;
|
||||
padding: 1em;
|
||||
-webkit-box-shadow: 0 2px 10px #000000;
|
||||
-moz-box-shadow: 0 2px 10px #000000;
|
||||
box-shadow: 0 2px 10px #000000;
|
||||
-webkit-border-radius: 1em;
|
||||
-moz-border-radius: 1em;
|
||||
border-radius: 1em;
|
||||
}
|
||||
|
||||
#better-messages-default.better-messages-overlay.better-messages-position-fixed {
|
||||
position: fixed;
|
||||
}
|
||||
|
||||
#better-messages-default.better-messages-overlay .better-messages-footer {
|
||||
border-top: 1px solid #DDDDDD;
|
||||
margin-top: 10px;
|
||||
padding-top: 5px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#better-messages-default.better-messages-overlay .better-messages-close {
|
||||
display: block;
|
||||
float: right;
|
||||
color: #676767;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
#better-messages-default.better-messages-overlay .better-messages-close span {
|
||||
background: transparent url(../images/closelabel.gif) no-repeat;
|
||||
display: block;
|
||||
float: right;
|
||||
height: 22px;
|
||||
width: 22px;
|
||||
}
|
||||
|
||||
#better-messages-default.better-messages-overlay .better-messages-timer {
|
||||
float: left;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
After Width: | Height: | Size: 687 B |