Compare commits

...

1379 Commits

Author SHA1 Message Date
Andy Miller
284d9ea22b Merge branch 'release/1.7.10' 2021-04-06 11:16:10 -06:00
Andy Miller
aa81350b6f prepare for release 2021-04-06 11:16:02 -06:00
pamtbaau
e02d298ff4 Add option images.defaults.size to set default height/width (#3272)
* Add option images.defaults.size to set default height/width

- Add option to config/system.yaml
- Add option to blueprints/config/system.yaml
- Add ImageSizeTrait.php
- Add ImageSizeTrait to ImageMedium.php
- Add Unit tests

* moved width/height to rendering phase

* Add test: height/width should be of resized image.

* Added optional apsect-ratio variable

* more improvements

* Added aspectRatio and retinaScale image functions

* remove use for old trait

* reset the CLS variables after calling reset on the image

Co-authored-by: Andy Miller <rhuk@mac.com>
2021-04-05 11:21:03 -06:00
Matias Griese
67f172b741 Phpstan fixes 2021-03-31 22:11:55 +03:00
Matias Griese
e97fe9de86 Fixed phpstan generics 2021-03-31 22:11:11 +03:00
Matias Griese
770bf15342 Composer update 2021-03-31 22:09:19 +03:00
Matias Griese
38b1556ee0 Fix unit test #2184 2021-03-31 21:29:59 +03:00
Matias Griese
0af33850a6 Fixed incorrect routing if url path looks like a domain name [#2184] 2021-03-31 20:08:39 +03:00
Matias Griese
edafa68414 Revert "Plugin class phpstan fix"
This reverts commit f78debe7
2021-03-31 14:29:50 +03:00
Matias Griese
f78debe768 Plugin class phpstan fix 2021-03-31 14:02:57 +03:00
Matias Griese
4f0f7876a8 Better support absolute GRAV_SYSTEM_PATH [#3297] 2021-03-31 10:26:46 +03:00
Matias Griese
2a4376b7cb Fixed undefined variable (regression) 2021-03-31 08:55:19 +03:00
Andy Miller
1d3d2a0bf9 Merge branch 'develop' of github.com:getgrav/grav into develop
# Conflicts:
#	CHANGELOG.md
2021-03-30 11:53:44 -06:00
Andy Miller
bbddb0a036 system blueprints not getting scanned. Fixes #3296 2021-03-30 11:53:27 -06:00
Matias Griese
a8e6aedd04 Fixed missing onAdminAfterDelete event call in Flex Pages 2021-03-30 19:14:49 +03:00
Matias Griese
1b9fd6276e Added initial support for running Grav library from outside the webroot [#3297] 2021-03-30 16:58:19 +03:00
Matias Griese
e229ab191f Improved password handling when saving a user 2021-03-26 10:53:14 +02:00
Matias Griese
42084ea0cb Fixed UserIndex not implementing UserCollectionInterface 2021-03-23 12:58:11 +02:00
Matias Griese
35468bb417 Minor docblock fix 2021-03-23 10:31:10 +02:00
Matias Griese
9eb20e37c8 Fixed Folder::move() deleting the folder if you move folder into itself, created empty file instead 2021-03-23 10:16:26 +02:00
Matias Griese
fa819064ef Improve move page into itself check 2021-03-23 09:45:31 +02:00
Matias Griese
eb89c00bd5 Fixed PageStorage detecting files as pages 2021-03-23 09:20:21 +02:00
Matias Griese
0491bd1a76 Fixed moving page to itself causing the page folder to be lost (converted to an empty file) 2021-03-23 09:18:43 +02:00
Matias Griese
802ae5b712 Ignore errors when using set_time_limit also in GPM\Response classes [#3023] 2021-03-20 08:48:30 +02:00
Andy Miller
38a393d605 ignore error during set_time_limit in Archiver - fixes #3023 2021-03-19 17:22:50 -06:00
Andy Miller
ba8b91ad29 Merge branch 'release/1.7.9' 2021-03-19 14:14:58 -06:00
Andy Miller
4b88122ab2 Merge tag '1.7.9' into develop
Release 1.7.9
2021-03-19 14:14:58 -06:00
Andy Miller
0a9b0c107f prepare for release 2021-03-19 14:14:50 -06:00
Matias Griese
ff1bc03361 Merge remote-tracking branch 'origin/develop' into develop 2021-03-19 21:56:28 +02:00
Matias Griese
3967862f10 Found the cause of #3280 in Windows 2021-03-19 21:55:56 +02:00
Andy Miller
70ab9b4b1b updated the security email 2021-03-19 11:53:10 -06:00
Matias Griese
50682d73dc Fixed redirects using wrong redirect code 2021-03-19 17:35:55 +02:00
Matias Griese
3926a61528 Fixed the list of pages not showing up in admin [#3280] 2021-03-19 10:31:21 +02:00
Matias Griese
9082cd5b17 Fixed the list of pages not showing up in admin [#3280] 2021-03-19 09:59:15 +02:00
Matias Griese
1c24f9f473 Fixed Flex Page CRUD ACL when creating a new page (needs Flex Objects plugin update) 2021-03-18 16:24:24 +02:00
Matias Griese
0d1c63f0fd Fixed Page::activeChild() throwing an error [#3276] 2021-03-18 11:17:11 +02:00
Matias Griese
29a4c66364 Changelog update for #3266 2021-03-17 22:31:21 +02:00
Matias Griese
73bb1f3046 Merge branch 'develop' of github.com:getgrav/grav into bugfix/redirects-2435
 Conflicts:
	CHANGELOG.md
2021-03-17 22:23:36 +02:00
Matias Griese
86169bbf7c Changelog update 2021-03-17 22:20:35 +02:00
Matias Griese
bde65bf056 Merge remote-tracking branch 'origin/develop' into develop 2021-03-17 22:07:59 +02:00
Matias Griese
0ab7d3ca63 Fixed broken media upload in Flex with @self/path, @page and @theme destinations [#3275] 2021-03-17 22:07:48 +02:00
Matias Griese
644a54e441 Added Utils::getPathFromToken() method which works also with Flex Objects 2021-03-17 21:54:26 +02:00
Matias Griese
62ff25f96d Fixed onAdminSave original page having empty header [#3259] 2021-03-17 21:33:57 +02:00
Djamil Legato
dabb4402a7 Handle skeletons rebuild manually only 2021-03-17 12:27:19 -07:00
Matias Griese
4ae9c42cc6 Composer update 2021-03-17 21:12:15 +02:00
Andy Miller
be3d49163d Merge branch 'release/1.7.8' 2021-03-17 11:44:48 -06:00
Andy Miller
0cf39a07f5 Merge tag '1.7.8' into develop
Release v1.7.8
2021-03-17 11:44:48 -06:00
Andy Miller
8697a79df0 prepare for release 2021-03-17 11:44:31 -06:00
Matias Griese
f5e6a1f3de Fixed onAdminSave original page having empty header [#3259] 2021-03-15 19:12:14 +02:00
Matias Griese
7a0ec5f51c Composer update 2021-03-15 19:07:09 +02:00
Matias Griese
dfcda95642 Fixed Path cannot be empty when viewing non-existent log file [#3270] 2021-03-15 19:06:58 +02:00
Matias Griese
047ae7b033 Fixed Uncaught ValueError: Path cannot be empty when failing to upload a file [#3265] 2021-03-15 19:06:51 +02:00
Matias Griese
fad681430e Composer update 2021-03-15 19:05:33 +02:00
Matias Griese
4f1af3709e Fixed Path cannot be empty when viewing non-existent log file [#3270] 2021-03-15 18:50:28 +02:00
Matias Griese
2681a8196b Fixed Uncaught ValueError: Path cannot be empty when failing to upload a file [#3265] 2021-03-12 12:45:41 +02:00
Matias Griese
25e7f6c5e8 Method $pages->find() should never redirect 2021-03-12 11:45:00 +02:00
Matias Griese
a67a538dfd Fixed site redirect with redirect code failing when redirecting to sub-pages [#3035] 2021-03-11 18:39:18 +02:00
Matias Griese
6dd7044786 Also support language redirects [#3130] 2021-03-11 17:43:04 +02:00
Matias Griese
16eaba1774 Also support system.pages.append_url_extension [#3130] 2021-03-11 17:07:30 +02:00
Matias Griese
054805349c Remove bad redirect code from configuration options, translate 2021-03-11 16:27:31 +02:00
Matias Griese
ec661d2c15 Fixed page.html returning duplicated content with system.pages.redirect_default_route turned on [#3130] 2021-03-11 16:19:57 +02:00
Matias Griese
58533c495c Added full blueprint support and Theme::getFormFieldTypes() just like in plugins 2021-03-11 12:34:37 +02:00
NicoHood
5c1c68c553 Fixed Uri::isValidExtension() returning false positives 2021-03-10 18:38:15 +02:00
NicoHood
a9c01926e8 Fix page extension validation 2021-03-10 15:27:04 +02:00
Matias Griese
8ef52d87f5 Composer update, minor phpstan fix 2021-03-10 15:12:18 +02:00
Matias Griese
35296f9f82 Changelog update 2021-03-10 15:00:11 +02:00
pamtbaau
898759b3b9 Add unit tests for system.images.defaults.loading 2021-03-10 14:58:58 +02:00
pamtbaau
7cbd067daf Fix Markdown image attr. 'loading' 2021-03-10 14:58:58 +02:00
Miguel Sales Pereira
3b6f5353fd Add SRI integrity hash to assets (#3256)
* Added default setting to enable/disable assets SRI

* Added system options to enable/disable assets SRI

* Added integrityHash function to create asset SRI

* Output SRI integrity hash on CSS assets

* Output SRI integrity hash for JS assets

* Updated integrityHash visibility (protected => public)

* Add SRI integrity hash to CSS and JS pipelines

* Made integrityHash static
2021-03-08 10:51:51 -07:00
Matias Griese
47bc6b0411 Fixed disappearing pages on save if pages:// stream resolves to multiple folders where the preferred folder doesn't exist 2021-03-08 18:29:47 +02:00
Matias Griese
b56ff0c31c Improve memory management for flex 2021-03-08 18:28:04 +02:00
Matias Griese
5376ce0909 Fixed FlexIndex::sortBy(['key' => 'ASC']) having no effect 2021-03-05 19:25:11 +02:00
Matias Griese
807df2ac55 Fixed default Flex Pages collection ordering to order by filesystem path 2021-03-05 16:03:28 +02:00
Matias Griese
2727f92a53 Fixed Grav using blueprints and form fields from disabled plugins 2021-03-05 15:08:57 +02:00
Matias Griese
1297114b3e Make sure that variable is defined in PageIndex::getLevelListing() 2021-03-04 17:10:02 +02:00
Matias Griese
1ba35f0bc3 Fixed missing Flex Pages in site if multi-language support has been enabled 2021-03-04 15:12:57 +02:00
Matias Griese
f5a6f51abc Fixed missing method translated() in Flex Pages 2021-03-04 14:34:39 +02:00
Djamil Legato
8431452f73 Update SECURITY.md 2021-03-03 10:52:33 -08:00
Matias Griese
27aff76b20 Optimized saving visible/ordered pages when there are a lot of siblings [#3231] 2021-03-01 14:47:51 +02:00
Matias Griese
e767e00a82 Clearing cache now deletes all clockwork files 2021-02-26 13:47:09 +02:00
Matias Griese
aab17ca79a Reduce memory use in Flex 2021-02-26 12:58:09 +02:00
Matias Griese
94876d1019 Optimized Flex Pages for speed 2021-02-25 22:10:59 +02:00
Matias Griese
7d7726e345 Flex Pages optimizations (part 2) 2021-02-25 21:08:22 +02:00
Matias Griese
d16a65ebd7 Flex Pages optimizations 2021-02-25 17:39:41 +02:00
Matias Griese
e802d0098f Added ControllerResponseTrait::createDownloadResponse() method 2021-02-25 14:03:58 +02:00
Djamil Legato
62fd24bcfb More quietness tests 2021-02-24 16:07:40 -08:00
Djamil Legato
02185145c9 I really do want this silent! 2021-02-24 16:04:40 -08:00
Djamil Legato
4acb0f15ad Try silencing cURL again 2021-02-24 15:36:20 -08:00
Djamil Legato
c8d0b4dd3f Silence curl 2021-02-24 15:34:05 -08:00
Djamil Legato
4802bce06d Trigger develop branches of skeletons instead of master 2021-02-24 15:32:58 -08:00
Djamil Legato
5bec0ee6b6 Typo 2021-02-24 15:29:00 -08:00
Djamil Legato
a938a3a350 Update trigger-skeletons.yml 2021-02-24 15:26:01 -08:00
Djamil Legato
04567817b2 Created workflow to trigger rebuild of all grav skeletons 2021-02-24 15:00:56 -08:00
Andy Miller
061a65f730 Merge branch 'release/1.7.7' 2021-02-23 15:02:18 -07:00
Andy Miller
470894577d Merge tag '1.7.7' into develop
Release 1.7.7
2021-02-23 15:02:18 -07:00
Andy Miller
7db4da4154 prepare for release 2021-02-23 15:02:08 -07:00
Matias Griese
78b5f6ef5c Fixed typo #3233 2021-02-22 18:53:57 +02:00
Matias Griese
340f478bfa Improved Pagination class to allow custom pagination query parameter 2021-02-22 14:51:14 +02:00
Matias Griese
2108af8f36 Added Utils::arrayToQueryParams() to convert an array into query params 2021-02-22 14:49:23 +02:00
Djamil Legato
1728b6c8bf Updated changelog 2021-02-19 13:42:27 -08:00
Djamil Legato
bbfd514342 Removed special space character 2021-02-19 13:41:20 -08:00
Matias Griese
e42ae65355 Fixed avatar of the user not being saved 2021-02-19 11:29:17 +02:00
Andy Miller
a58298bb01 Merge branch 'release/1.7.6' 2021-02-17 11:36:45 -07:00
Andy Miller
0e8e00ddd7 Merge tag '1.7.6' into develop
Release v1.7.6
2021-02-17 11:36:45 -07:00
Andy Miller
e492dfe12c prepare for release 2021-02-17 11:36:35 -07:00
Matias Griese
7f533c7121 Composer update 2021-02-17 20:12:29 +02:00
Matias Griese
7e4c189136 Fixed bug in page content with both markdown and twig enabled [#3223] 2021-02-17 16:07:05 +02:00
Matias Griese
a591b657fa Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	CHANGELOG.md
2021-02-17 11:02:08 +02:00
Matias Griese
7ec8fd2003 Added option for FlexForm constructor to reset the form 2021-02-17 11:01:47 +02:00
Andy Miller
20e22f015a fixed some issues with chinese langs 2021-02-16 18:02:21 -07:00
Andy Miller
cec781ad72 updated changelog 2021-02-16 17:42:35 -07:00
Andy Miller
9faf42c5da updated languages 2021-02-16 17:41:10 -07:00
Andy Miller
bf895820b3 minor composer update 2021-02-16 14:39:23 -07:00
Andy Miller
f4180584d6 updated changelog 2021-02-16 12:53:33 -07:00
Stephan Strate
66c653b6f5 read all language files from theme stream (#3226) 2021-02-16 12:50:51 -07:00
Matias Griese
5f596fb4fd Fixed UserObject after interface change 2021-02-16 21:22:04 +02:00
Matias Griese
a1306d9eb4 Fixed broken attachment image in Flex Objects Admin when destination: self@ used [#3225] 2021-02-16 12:44:30 +02:00
Matias Griese
2195bf2307 Fixed modular content with missing template file ending up using non-modular template [#3218] 2021-02-11 13:43:23 +02:00
Matias Griese
c4296121b1 Reverse subject <-> pattern parameter order in new twig methods 2021-02-11 11:24:30 +02:00
Matias Griese
3871196246 Merge branch 'feature/twig_preg_match_split' of https://github.com/thexmanxyz/grav into thexmanxyz-feature/twig_preg_match_split
# Conflicts:
#	system/src/Grav/Common/Twig/TwigExtension.php
2021-02-11 11:17:14 +02:00
Matias Griese
c626b1599e Fixed root page to always contain trailing slash [#3127] 2021-02-11 10:46:13 +02:00
Matias Griese
129fd7fdad Added Plugins::getPlugins() and Plugins::getPlugin($name) to make it easier to access plugin instances [#2277] 2021-02-11 10:10:50 +02:00
Matias Griese
49fca0da2b Added support for setting session domain [#2040] 2021-02-10 18:46:43 +02:00
Matias Griese
8c00a0bc00 Fixed behavior of opposite filters in Pages::getCollection() to match Grav 1.6 [#3216] 2021-02-10 10:58:17 +02:00
Czcibor Bohusz-Dobosz
45cea4fc4b Fixed removing inclusive filters in getCollection 2021-02-10 10:31:42 +02:00
Andy Miller
13f8b65e08 manually merged new attribute() method #3065 2021-02-09 13:09:31 -07:00
Matias Griese
6ed28c5fb8 Composer update with phpstan fix 2021-02-09 21:56:08 +02:00
Matias Griese
b534fbb364 Changelog update 2021-02-09 21:44:20 +02:00
Tina Burschka
1cfcf1ded0 Flattr requires name instead property. 2021-02-09 21:42:32 +02:00
Matias Griese
87a01bbe0a Fixed trailing slash redirect to use 301 status code [#3127] 2021-02-09 21:36:54 +02:00
Matias Griese
5a9477a402 Only redirect GET/HEAD if system.pages.redirect_trailing_slash is true and request has a trailing slash 2021-02-09 21:23:23 +02:00
Matias Griese
bd97e817c2 Merge branch 'NicoHood-asset_order_fix' into develop 2021-02-09 21:10:15 +02:00
Matias Griese
1fcc049db7 Merge branch 'asset_order_fix' of https://github.com/NicoHood/grav into NicoHood-asset_order_fix 2021-02-09 21:09:48 +02:00
Matias Griese
92fdaed81b Fix for $blueprint->flattenData() on list properties 2021-02-09 20:35:53 +02:00
Matias Griese
feee0e62cc Merge remote-tracking branch 'origin/develop' into develop 2021-02-08 21:27:55 +02:00
Matias Griese
3ee9e65f2d Added second parameter to $blueprint->flattenData() to include every field, including those which have no data 2021-02-08 21:27:47 +02:00
Andy Miller
f004451740 Merge branch 'develop' of github.com:getgrav/grav into develop 2021-02-08 11:45:26 -07:00
Andy Miller
9964285cae Fixed issue with content-security-policy not being properly supported with http-equiv + support single quotes 2021-02-08 11:45:22 -07:00
Matias Griese
6b25a9f00c Fixed wrong values in Admin pages list [#3214] 2021-02-08 18:46:47 +02:00
Matias Griese
99c870c5cc Changelog update 2021-02-08 16:54:56 +02:00
Matias Griese
e520cf949a Fixed save error when editing accounts that have been created with capital letters in their username [#3211] 2021-02-08 16:46:30 +02:00
Matias Griese
96aac79eb2 Fixed broken min/max validation for field type: int 2021-02-08 14:40:51 +02:00
Matias Griese
11d0103f0d Fixed lowering uppercase characters in usernames when saving from frontend [#2565] 2021-02-08 14:21:10 +02:00
Matias Griese
c7dcb9144c Added $grav->getVersion() or grav.version in twig to get the current Grav version [#3142] 2021-02-08 13:47:23 +02:00
Matias Griese
8ea4216672 Added ability to filter enabled or disabled with bin/gpm index [#3187] 2021-02-08 13:40:39 +02:00
Matias Griese
79640283f3 Merge branch 'feature/gpm-index-enhancements' of https://github.com/jgonyea/grav into jgonyea-feature/gpm-index-enhancements 2021-02-08 13:18:10 +02:00
Matias Griese
1347c76594 Fixed error on bin/gpm plugin uninstall [#3207] 2021-02-08 12:51:55 +02:00
Matias Griese
7d95fb7169 Changelog update 2021-02-08 12:43:04 +02:00
Matias Griese
d710205355 Merge branch 'pierrejoye-develop' into develop 2021-02-08 12:41:41 +02:00
Matias Griese
afc5f5a13f Merge branch 'develop' of https://github.com/pierrejoye/grav into pierrejoye-develop 2021-02-08 12:40:49 +02:00
Djamil Legato
d91e91128c Removed Travis tests badge in favor of GitHub Actions 2021-02-07 17:31:58 -08:00
travis00001
3d73e92058 update system blueprint to include Redis Database ID (#3209) 2021-02-07 09:34:10 -08:00
Andy Miller
aa8778a0fb added optional password/database attributes 2021-02-06 14:39:21 -07:00
travis00001
51cc9cd13e Support selecting Redis database ID (#3208) 2021-02-06 13:35:50 -07:00
Matias Griese
c3ebd529c1 Improved session fixation handling in PHP 7.4+ (cookie fix for invalidate) 2021-02-05 21:38:11 +02:00
Matias Griese
322d310843 Improved session fixation handling in PHP 7.4+ (use only one cookie) 2021-02-05 21:28:52 +02:00
Matias Griese
09f5c0ffc1 Improved session fixation handling in PHP 7.4+ (handle unsupported id change) 2021-02-05 20:12:51 +02:00
Matias Griese
7d6ed94e2d Improved session fixation handling in PHP 7.4+ (better version) 2021-02-05 20:07:23 +02:00
Matias Griese
1292f40710 Improved session fixation handling in PHP 7.4+ (cannot fix it in PHP 7.3 due to PHP bug) 2021-02-05 19:44:05 +02:00
Matias Griese
830fa40bb7 Fixed Flex Pages using only default language in frontend 2021-02-05 15:19:47 +02:00
Djamil Legato
25f8b787b6 Oh, don’t mind me… just bringing Grav to 2021! 🎆 2021-02-04 21:09:42 -08:00
Djamil Legato
ca6600bebf Updated COC to Contributor Covenant COC v2 2021-02-04 20:46:32 -08:00
Djamil Legato
100babc11b Updated bundled composer.phar binary to latest version 2.0.9 2021-02-04 20:42:23 -08:00
Matias Griese
ef00b0d14d Added abstract FlexObject, FlexCollection and FlexIndex classes to \Grav\Common\Flex namespace 2021-02-04 13:13:20 +02:00
Andy Miller
359f6c82c5 Merge branch 'develop' of github.com:getgrav/grav into develop
# Conflicts:
#	CHANGELOG.md
2021-02-02 14:37:29 -07:00
Andy Miller
a376c37a91 backup + security CLI commands not styling colors Fixes #3198 2021-02-02 14:36:48 -07:00
Matias Griese
16f610bfdf Working fix for page save failing because of uploaded images [#3191] 2021-02-02 07:54:16 +02:00
Andy Miller
02e41ae7ce Merge tag '1.7.5' into develop
Release v1.7.5
2021-02-01 21:36:24 -07:00
Andy Miller
ae9b096ab0 Merge branch 'release/1.7.5' 2021-02-01 21:36:23 -07:00
Andy Miller
84d0b5e35d prepare for release 2021-02-01 21:36:14 -07:00
Andy Miller
a0fd46edb8 revert #3191 fix - breaking save 2021-02-01 21:35:34 -07:00
Andy Miller
b681a86646 Revert "Fixed page save failing because of uploaded images [#3191]"
This reverts commit 2c866f3c10.

# Conflicts:
#	CHANGELOG.md
2021-02-01 21:33:26 -07:00
Pierre Joye
6c3c068485 add test for multiple parts using folder 2021-02-02 07:27:54 +07:00
Pierre Joye
caf431d22e add faker for multiple parts with folder 2021-02-02 07:27:21 +07:00
Pierre Joye
2044a649ba add another test with subfolder 2021-02-02 07:25:58 +07:00
Andy Miller
7def7af8ff comment out slack 2021-02-01 15:50:16 -07:00
Andy Miller
e85121f35a comment out composer update / validate 2021-02-01 15:48:32 -07:00
Andy Miller
dbfc108fec Merge branch 'release/1.7.4' 2021-02-01 15:35:00 -07:00
Andy Miller
4e01de183f Merge tag '1.7.4' into develop
Release v1.7.4
2021-02-01 15:35:00 -07:00
Andy Miller
e8612833c3 prepare for release 2021-02-01 15:34:50 -07:00
Matias Griese
953b500fa0 Merge remote-tracking branch 'origin/develop' into develop 2021-02-01 19:15:02 +02:00
Matias Griese
1aa15b24a2 Fixed expert mode issue 2021-02-01 19:14:53 +02:00
NicoHood
b6d720791a Set twig autoescaping to true
I think this value get overwritten anyways. Maybe we should remove it completely?
2021-02-01 18:48:47 +02:00
Matias Griese
21c6b56a27 Fixed incorrect config lookup for loading in ImageLoadingTrait [#3192] 2021-02-01 18:11:01 +02:00
Pierre Joye
b20838531c Resolved merge conflict 2021-02-01 22:43:28 +07:00
Matias Griese
2c866f3c10 Fixed page save failing because of uploaded images [#3191] 2021-02-01 16:19:10 +02:00
Matias Griese
3d510a338e Fixed untranslated module pages showing up in the menu 2021-02-01 15:40:54 +02:00
Matias Griese
95c4438091 Fixed page redirect to the first visible child page 2021-02-01 15:24:09 +02:00
Matias Griese
76e887e3fb Fixed wrong ordering in page collections if intl extension has been enabled [#3167] 2021-02-01 14:59:03 +02:00
Matias Griese
72b1a18744 Fixed cache clear on GPM uninstall command [#3172] 2021-02-01 14:44:29 +02:00
Matias Griese
679a27a5ff Updated CleanCommand 2021-02-01 12:16:48 +02:00
Matias Griese
55241864bc Removed fzaninotto/faker library 2021-02-01 11:27:08 +02:00
Matias Griese
a8a960d10b Updated unit tests 2021-02-01 11:14:53 +02:00
Pierre Joye
4ce3ff52bf Add the test translated pages 2021-01-31 07:21:44 +07:00
Pierre Joye
10be5d5a7c fix text if language is found and is part as enabled languages 2021-01-31 07:14:33 +07:00
Pierre Joye
711d7b122d Add fixture for translatedLanguages 2021-01-30 21:22:39 +07:00
Pierre Joye
ea758e9dca Add test for this translatedLanguages 2021-01-30 20:50:20 +07:00
Jeremy Gonyea
ee379a512a Added ability to filter enabled or disabled with bin/gpm index 2021-01-29 23:06:20 -05:00
Andy Miller
ea519c66f2 Switch back to GITHUB_TOKEN for tests 2021-01-29 17:59:42 -07:00
Matias Griese
51bff9f1f0 Simplify GPM class 2021-01-29 13:40:09 +02:00
Matias Griese
aeb9777972 Improved GPM error handling 2021-01-29 11:31:44 +02:00
Matias Griese
3b61aedc66 Composer update 2021-01-29 10:13:29 +02:00
Pierre Joye
cb2c9616d7 Initialize route and raw_route, fix empty route as values 2021-01-29 14:48:20 +07:00
Matias Griese
a35b9b1279 Fixed onBlueprintCreated event being called multiple times in Flex Pages 2021-01-28 20:12:33 +02:00
Karmalakas
0ba23ca278 Fix Lithuanian nativeName (#3141)
That deleted second word literally means _language_, which is completely unnecessary in language choosing context (like for all other languages)
2021-01-26 11:15:34 -07:00
Matias Griese
2a67b5b827 Fixed saving page in expert mode [#3174] 2021-01-26 11:08:43 +02:00
Matias Griese
0918419191 Added FlexForm::setSubmitMethod() to customize form submit action [#3174] 2021-01-26 11:05:33 +02:00
Matias Griese
a4481bfd33 Fixed cannot change image format [#3173] 2021-01-25 15:25:02 +02:00
Matias Griese
fcf24a40e2 Fixed login: visibility_requires_access not working [#3176] 2021-01-25 15:09:49 +02:00
Matias Griese
59a70e0077 Fix phpstan tests for gantry 2021-01-22 20:39:41 +02:00
Matias Griese
5037941897 Fixed bin/gpm uninstall script not working because of bad typehint [#3172] 2021-01-22 20:39:26 +02:00
Matias Griese
3dfbe8e49c Composer update 2021-01-22 12:57:10 +02:00
Matias Griese
1cd34736ed Added Composer SemVer library 2021-01-22 12:56:06 +02:00
Andy Miller
1b6e4d4300 Merge branch 'release/1.7.3' 2021-01-21 15:19:11 -07:00
Andy Miller
b598f8f972 Merge tag '1.7.3' into develop
Release v1.7.3
2021-01-21 15:19:11 -07:00
Andy Miller
7c145c7b1e prepare for release 2021-01-21 15:19:01 -07:00
Matias Griese
38030c348d Fixed installer bugs, reverted GPM config post-install hook for now 2021-01-21 23:45:42 +02:00
Matias Griese
625aa3f1bd Fixed a bug in post-install methods 2021-01-21 23:00:34 +02:00
Andy Miller
8e337647a2 Merge tag '1.7.2' into develop
Release v1.7.2
2021-01-21 11:57:17 -07:00
Andy Miller
7cfc8dc00e Merge branch 'release/1.7.2' 2021-01-21 11:57:16 -07:00
Andy Miller
30195b6c9e prepare for release 2021-01-21 11:57:00 -07:00
Matias Griese
a628cb6775 Typo 2021-01-21 16:21:35 +02:00
Matias Griese
531ce433fe Added support for running post-install scripts in bin/gpm selfupgrade if Grav was updated manually 2021-01-21 16:18:58 +02:00
Matias Griese
849097921a Fixed GPM releases on testing if updating from Grav 1.7 RCs [#3163] 2021-01-21 16:17:04 +02:00
Matias Griese
c8af0d8a38 Fixed Unsupported option "curl" passed to "Symfony\Component\HttpClient\CurlHttpClient" in bin/gpm selfupdate [#3165] 2021-01-21 15:20:27 +02:00
Matias Griese
9a1ab6ee0b Support force in environment:// stream 2021-01-21 14:59:02 +02:00
Matias Griese
04615b3a17 Fixed Clockwork debugger in sub-folder multi-site setups 2021-01-21 14:23:10 +02:00
Matias Griese
70ff5c2e94 Fixed broken stream initialization if environment:// paths aren't streams 2021-01-21 13:52:33 +02:00
Matias Griese
b82d51e3cc Added support for bin/grav install -p myplugin or -t mytheme and hebe.json file support 2021-01-21 12:26:32 +02:00
Andy Miller
4d26acfd66 change testing -> stable in system.yaml 2021-01-20 12:55:20 -07:00
Andy Miller
42f976c82a Merge branch 'release/1.7.1' 2021-01-20 12:03:35 -07:00
Andy Miller
6477d13bea Merge tag '1.7.1' into develop
Release v1.7.1
2021-01-20 12:03:35 -07:00
Andy Miller
ba1e106aaf prepare for release 2021-01-20 12:03:21 -07:00
Andy Miller
5f9fa481cb better getPageFormat() 2021-01-20 10:23:19 -07:00
Matias Griese
84554ae71f Fixed page metadata being double-escaped [#3121] 2021-01-20 18:53:38 +02:00
Matias Griese
5f9c434aea Fixed lighttpd.conf access-deny rule [#1876] 2021-01-20 15:50:07 +02:00
Matias Griese
a0c3140e6d Fixed twig parsing errors in pages where twig is parsed after markdown [#3162] 2021-01-20 15:36:48 +02:00
Matias Griese
440fa263c2 Oops, fixed bug #3160 2021-01-20 15:22:02 +02:00
Matias Griese
f5b10564ca Fixed bin/gpm selfupgrade error on Call to undefined method [#3160] 2021-01-20 14:03:04 +02:00
Matias Griese
eb98597220 Flex Pages: Fixed fatal error when trying to move a page to Root (/) [#3161] 2021-01-20 12:24:40 +02:00
Matias Griese
6992d52767 Fixed bin/gpm selfupgrade failing to report failed Grav update [#3116] 2021-01-20 10:33:11 +02:00
Matias Griese
3a31d54600 Fixed bin/gpm index erroring out [#3158] 2021-01-20 09:58:31 +02:00
Andy Miller
3d5b54515a Fix for non-standard extension via Page::template_format() 2021-01-19 15:21:07 -07:00
Matias Griese
b9f1741ea1 Fixed fatal error when site.taxonomies contains a bad value 2021-01-20 00:05:56 +02:00
Andy Miller
0fa5273c56 Merge tag '1.7.0' into develop
Release v1.7.0
2021-01-19 13:13:22 -07:00
Andy Miller
916b7cfc44 Merge branch 'release/1.7.0' 2021-01-19 13:13:21 -07:00
Andy Miller
317efc182a Prepare for release 2021-01-19 13:13:10 -07:00
Andy Miller
4bcfcfc4f8 Merge tag '1.7.0' into develop
Release v1.7.0
2021-01-19 12:54:16 -07:00
Andy Miller
02b3b9a4d7 Merge branch 'release/1.7.0' 2021-01-19 12:54:16 -07:00
Andy Miller
57d0fc3774 switch to 0.2.3 2021-01-19 12:45:23 -07:00
Andy Miller
2d1bca11df use github secrets token 2021-01-19 12:28:01 -07:00
Andy Miller
ac0de93139 Merge tag '1.7.0' into develop
Release v1.7.0
2021-01-19 12:10:16 -07:00
Andy Miller
9e39860868 Merge branch 'release/1.7.0' 2021-01-19 12:10:15 -07:00
Andy Miller
b13a4d331c Prepare for release 2021-01-19 12:10:05 -07:00
Andy Miller
065cd5b7b7 Prepare for release 2021-01-19 12:08:10 -07:00
Andy Miller
1d34b5389e wrong workflow! 2021-01-19 08:37:10 -07:00
Andy Miller
23df7cc90d Try different token 2021-01-19 08:34:59 -07:00
Andy Miller
c9a5d5a406 Merge branch '1.7' of github.com:getgrav/grav into 1.7 2021-01-19 08:33:46 -07:00
Andy Miller
a5d2c86e59 set token 2021-01-19 08:33:42 -07:00
Andy Miller
f095cc760b fix periods 2021-01-19 08:33:34 -07:00
Matias Griese
c256b0675d Updated README.md, removed UPGRADE-1.7.md 2021-01-19 11:27:14 +02:00
Matias Griese
a7af12d026 Added support for locking the start and limit in a Page Collection 2021-01-19 11:14:55 +02:00
Matias Griese
d7995e9be4 Fixed page collection pagination not behaving as it did in Grav 1.6 2021-01-19 10:48:04 +02:00
Matias Griese
af2f4b66b9 Fixed ERR_TOO_MANY_REDIRECTS with HTTPS = 'On' [#3155] 2021-01-18 20:38:58 +02:00
Matias Griese
15464aa10c Fixed ignore parent in BlueprintSchema 2021-01-18 20:22:08 +02:00
Matias Griese
7cfc02e7d9 Use PHP 7.3 in build 2021-01-18 20:10:13 +02:00
Matias Griese
c6b0a50e4e Composer update 2021-01-18 20:09:50 +02:00
Matias Griese
ac4f093590 Fixed streams in setup.php being overridden by system/streams.yaml [#2450] 2021-01-18 11:20:21 +02:00
Matias Griese
a03746145b Merge branch 'develop' of github.com:getgrav/grav into 1.7 2021-01-15 22:29:49 +02:00
Matias Griese
3a3b84af61 Fixed page collections containing dummy items for untranslated default language [#2985] 2021-01-15 22:21:39 +02:00
Matias Griese
3ba68bf5c5 Fixed multiple issues with system.language.translations: false 2021-01-15 20:36:58 +02:00
NicoHood
42daf75124 Fix documentation for asset array variable 2021-01-15 15:04:10 +01:00
Matias Griese
454e9c1d8e Fixed Flex Pages cache not invalidating if saving an old Page object [#3152] 2021-01-15 15:44:49 +02:00
Nico
ee9fb4aeec Add german translations for GRAV.YES and GRAV.NO 2021-01-15 09:52:29 +02:00
Matias Griese
ba2c224d5d Changelog update 2021-01-14 22:53:26 +02:00
Matias Griese
515eab7dad Fixed ordering when changing parent of new page 2021-01-14 22:43:20 +02:00
Matias Griese
18b0e01a3e Fixed version history issue 2021-01-14 20:50:40 +02:00
Matias Griese
57c6414d1c Fixed PageObject::getRoute() with pages which have no route 2021-01-14 20:49:37 +02:00
Matias Griese
fdfcaaeb39 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	system/src/Grav/Common/Processors/ConfigurationProcessor.php
2021-01-14 17:16:27 +02:00
Matias Griese
561b91894c Fixed version history 2021-01-14 17:13:58 +02:00
Andy Miller
aea01a3937 missed a change in regular pages 2021-01-11 16:32:10 -07:00
Andy Miller
9b34178332 Merge branch 'develop' into 1.7
# Conflicts:
#	composer.lock
#	system/defines.php
#	system/src/Grav/Common/Page/Medium/ImageMedium.php
#	system/src/Grav/Common/Page/Page.php
#	system/src/Grav/Common/Twig/TwigExtension.php
2021-01-11 16:29:39 -07:00
Matias Griese
eced8facb8 Merge remote-tracking branch 'origin/1.7' into 1.7 2021-01-12 00:51:52 +02:00
Matias Griese
074e13325e Fixed Inflector methods when translation is missing GRAV.INFLECTOR_* translations 2021-01-12 00:51:43 +02:00
angusmcb
d7378f87c5 Added 'format' to magic actions for images (#3144) 2021-01-11 15:49:37 -07:00
Andy Miller
4091c16e97 don’t use array_support 2021-01-11 15:36:03 -07:00
Andy Miller
56408b37ac Fix for string->array conversion with translations: false admin#1896 2021-01-11 15:10:25 -07:00
Nico
fd18eeb62c Add grav twig extensions to its own evaluate and evaluate_twig filters (#3139)
I wanted to use `evaluate_twig()` with a template the uses `theme_var()` or also a simpler twig function `string`. I made them available with this simple call.
2021-01-11 12:47:43 -07:00
Nico
cbd4ed311f Set twig_first setting to the correct default (#3138)
I've also verified this via code, the correct default is `false`. It is also documented here:
https://learn.getgrav.org/16/basics/grav-configuration#pages
2021-01-11 12:46:37 -07:00
Andy Miller
8122703e3b Initialize pages + themes so email will work 2021-01-11 11:40:43 -07:00
Andy Miller
2920b6143b improve scheduler 2021-01-11 11:30:18 -07:00
Matias Griese
8870463afc Composer update 2021-01-11 10:49:50 +02:00
NicoHood
f8972f812a Fix asset unit test 2021-01-09 22:02:01 +01:00
Matias Griese
23fa2324a8 Minor tweaks on phpstan 2021-01-09 09:58:03 +02:00
Matias Griese
0df1082778 Keep on fixing CLI commands 2021-01-07 12:39:38 +02:00
Matias Griese
6647b8da3c Composer update 2021-01-07 11:59:37 +02:00
Matias Griese
f0b9411e19 Fix Console::addOption() breaking --env and --lang 2021-01-06 20:27:46 +02:00
Matias Griese
5c1cc5cdd7 Changelog update 2021-01-06 19:36:52 +02:00
Matias Griese
df9eb60ffa Remove duplicated --env in yamllinter console command 2021-01-06 19:23:32 +02:00
Matias Griese
9893792768 Improve all console commands 2021-01-06 19:13:19 +02:00
Matias Griese
379033aae4 Further improve CLI commands 2021-01-06 13:45:19 +02:00
Matias Griese
193ab52a35 Better --env support for bin/grav and bin/gpm console commands 2021-01-06 13:11:43 +02:00
Matias Griese
9eb6662db8 Changelog update 2021-01-06 11:12:36 +02:00
Matias Griese
5e48146f59 Simplify QFN 2021-01-05 18:50:28 +02:00
Matias Griese
627702a3a1 Merge remote-tracking branch 'origin/1.7' into 1.7 2021-01-05 12:02:00 +02:00
Matias Griese
d9ee6de3d0 Phpstan phpdoc improvements 2021-01-05 11:59:19 +02:00
Andy Miller
14df5a6d5f updated robots.txt 2021-01-04 13:41:32 -07:00
NicoHood
a809fb8c41 Fix #2781 asset manager pipeline order. Patch taken from @pamtbaau 2021-01-03 13:42:26 +01:00
Andy Miller
2738107b1e composer update for matthiasmullie/minify 2020-12-28 11:04:24 -07:00
Andy Miller
e53f26ca13 composer update for matthiasmullie/minify 2020-12-28 11:03:45 -07:00
thekenshow
d3e80d62e5 Fixed Link to XSS Security Docs (#3115)
* Fixed Link to XSS Security Docs

Was linking to .local server.

* Fixed link reference

Co-authored-by: Djamil Legato <djamil+github@djamil.it>
2020-12-28 08:13:29 -08:00
Andy Miller
b7aa20ed88 vendor updates 2020-12-24 11:33:37 -07:00
Andy Miller
26da4a1aa3 Updated minify library to include calc() fix 2020-12-24 11:32:23 -07:00
Matias Griese
4345a629f1 Added FlexCollection::getDistinctValues() to get all the assigned values from the field 2020-12-23 21:05:58 +02:00
Matias Griese
5bb4ca7822 Fixed Clockwork missing dumped arrays and objects 2020-12-23 21:03:36 +02:00
Matias Griese
79ee06f518 Fixed Clockwork missing dumped arrays and objects 2020-12-23 20:21:55 +02:00
Matias Griese
bc2435efe9 Fixed Flex sorting issues 2020-12-23 19:23:53 +02:00
Matias Griese
504a29f496 Added support for relative paths in PageObject::getLevelListing() [#3110] 2020-12-23 14:09:55 +02:00
Matias Griese
0948e9db9d Fixed Filesystem::normalize() with dot-dot paths 2020-12-23 13:46:49 +02:00
Matias Griese
c298464314 Composer update 2020-12-23 11:44:30 +02:00
Matias Griese
67a00a799c Return value fixes for Session class 2020-12-23 11:40:32 +02:00
Matias Griese
589c9e4445 Enabled ETag setting by default for 304 responses 2020-12-22 18:43:13 +02:00
Matias Griese
d1925c8935 Fixed pages with session messages should never be cached [#3108] 2020-12-22 18:06:28 +02:00
Matias Griese
2923658bb9 Use PHP 7.4 serialization 2020-12-22 15:12:09 +02:00
Matias Griese
c333da60d6 Fixed unserialize Framework\File classes 2020-12-22 15:10:33 +02:00
Matias Griese
cf62db1329 Fixed unserialize in MarkdownFormatter class 2020-12-22 13:53:19 +02:00
Matias Griese
625a39a892 Merge remote-tracking branch 'origin/1.7' into 1.7 2020-12-18 20:53:47 +02:00
Matias Griese
ffc93a77a9 Make it possible to use an absolute path when loading a blueprint 2020-12-18 20:53:38 +02:00
Andy Miller
0cee2b6a97 hide errors with exif 2020-12-17 21:12:15 -07:00
Matias Griese
a24ec2c433 Better fix for system.custom_base_url, which does not affect other urls 2020-12-17 10:02:55 +02:00
Matias Griese
e5727462e7 Fixed port issue with system.custom_base_url 2020-12-16 20:54:56 +02:00
Matias Griese
c1cb4e192f Added support for overriding configuration by using environment variables 2020-12-16 16:38:15 +02:00
Andy Miller
b0c12063a1 should skip release of prerelease 2020-12-15 11:12:54 -07:00
Andy Miller
e4b1e87b9a prepare for rc release 2020-12-15 10:57:10 -07:00
Andy Miller
6e136bf83f Try adding php8 back in to tests 2020-12-15 10:45:35 -07:00
Matias Griese
36504d7123 Merge remote-tracking branch 'origin/1.7' into 1.7 2020-12-15 19:26:21 +02:00
Matias Griese
8ac4615117 Fixed missing parenthesis in Setup.php 2020-12-15 19:25:34 +02:00
Andy Miller
7ed04ed3b0 composer update 2020-12-15 10:07:54 -07:00
Andy Miller
c5b2440488 remove composer update 2020-12-15 10:04:12 -07:00
Andy Miller
37ce236a43 try forcing token 2020-12-15 10:02:50 -07:00
Andy Miller
31ab55558c remove PHP 8 2020-12-15 09:52:42 -07:00
Matias Griese
c51830feec Fix bug in Setup.php 2020-12-15 18:30:21 +02:00
Matias Griese
291e91891a Improved multi-site customization 2020-12-15 15:53:24 +02:00
Matias Griese
307ede3183 Fix for subfolder install [#2964] 2020-12-15 08:37:07 +02:00
Andy Miller
d4a20c71c2 Merge branch 'release/1.6.31' 2020-12-14 21:28:53 -07:00
Andy Miller
ec68068b97 Merge tag '1.6.31' into develop
Release v1.6.31
2020-12-14 21:28:53 -07:00
Andy Miller
d9c1445542 prepare for release 2020-12-14 21:28:42 -07:00
Matias Griese
26f4d05e87 Fixed dropped query params when ? is preceded with / [#2964] 2020-12-11 15:32:09 +02:00
Matias Griese
b6c941fc3e Fixed twig script/style tag {% script 'file.js' at 'bottom' %}, replaces broken in operator [#3084] 2020-12-11 14:29:13 +02:00
Matias Griese
cedcc845d5 Fixed uppercase Assets\*::Class (should be in lower case) 2020-12-11 11:34:52 +02:00
Matias Griese
02a3ed2e0e Fixed missing return value in TwigExtension::svgImageFunction(), some code cleanup 2020-12-11 11:32:43 +02:00
Matias Griese
a729daa3d3 Use return types in Twig node and token classes 2020-12-11 11:30:34 +02:00
Matias Griese
ba23cceae7 Fixed StaticResizeTrait::resize() bad image height/width attributes if null values are passed to the method 2020-12-11 11:25:37 +02:00
Matias Griese
d3e9083869 Fixed deprecated method call for Whoops 2020-12-11 11:16:22 +02:00
Matias Griese
09d92ebab6 Fixed wrong (but working) method call for Whoops 2020-12-11 11:04:41 +02:00
Matias Griese
2777bedb51 Updated a lot of docblocks 2020-12-10 23:15:02 +02:00
Matias Griese
f181e1d237 Merge remote-tracking branch 'origin/1.7' into 1.7 2020-12-10 21:47:06 +02:00
Matias Griese
8f7dc43e1f Changelog update [#3101] 2020-12-10 21:46:57 +02:00
Djamil Legato
249c2f1e69 Update composer first thing 2020-12-10 11:24:28 -08:00
Djamil Legato
6a4686d17b Update composer first thing 2020-12-10 11:19:27 -08:00
Andy Miller
3529943bb0 Merge branch 'develop' into 1.7
# Conflicts:
#	system/src/Grav/Common/Twig/TwigExtension.php
2020-12-10 10:55:54 -07:00
Andy Miller
1c63f4bf46 Fix Twig svg_image() issue with classes applied to all elements #3068 2020-12-10 10:54:38 -07:00
Andy Miller
380177b777 Merge branch 'develop' into 1.7 2020-12-10 10:41:57 -07:00
Andy Miller
bc22c8d2b1 Allow all css and js to be seached via robots.txt by default 2020-12-10 10:41:42 -07:00
Matias Griese
c5cdeaef07 Changelog update [#3101] 2020-12-10 15:09:15 +02:00
Matias Griese
a1fb4a2487 Merge remote-tracking branch 'origin/1.7' into 1.7 2020-12-10 15:07:57 +02:00
Matias Griese
d34593928d Fixed Argument 1 passed to Grav\Common\User\DataUser\User::filterUsername() must be of the type string [#1992] 2020-12-10 15:07:38 +02:00
Andy Miller
5184f8e6a3 automated testing for Grav 1.7 commits/prs 2020-12-09 12:08:47 -07:00
Matias Griese
ea358c239f Restored samesite cookies after merge from develop 2020-12-09 15:42:46 +02:00
Matias Griese
2cf90cc60b Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	CHANGELOG.md
	composer.json
	composer.lock
	system/blueprints/config/system.yaml
	system/defines.php
	system/src/Grav/Common/Page/Pages.php
2020-12-09 15:33:37 +02:00
Matias Griese
db24d3e53e Fixed pages field escaping issues, needs admin update, too 2020-12-09 15:28:48 +02:00
Matias Griese
6a0caebe2e Fixed unimplemented PageObject::getOriginal() call [#3098] 2020-12-09 14:02:33 +02:00
Matias Griese
ac85946e0f Added support for setting GRAV_ENVIRONMENT by using environment variable or a constant 2020-12-08 13:41:05 +02:00
Matias Griese
fc55a8e49b Added support for setting GRAV_SETUP_PATH by using environment variable 2020-12-08 13:27:53 +02:00
Matias Griese
b093aa9fa6 Fix symfony bug (part 2) 2020-12-08 12:13:08 +02:00
Matias Griese
e60e9fa3dd Fix symfony bug 2020-12-08 11:59:09 +02:00
Andy Miller
29bcbf042f Added slack on failure 2020-12-07 16:19:34 -07:00
Andy Miller
19719ecac1 Added slack to tests 2020-12-07 16:14:16 -07:00
Matias Griese
4d288ad2ee CLI command cleanup 2020-12-07 19:40:10 +02:00
Matias Griese
eccaf4acff CLI command cleanup 2020-12-07 13:36:51 +02:00
Matias Griese
c2a2ef212e Fixed broken list in bin/gpm index, CLI/GPM command failures returning success [#3092, #3017] 2020-12-07 12:56:47 +02:00
Djamil Legato
47ab76c7e3 🎉 Moved Travis releases builds to Github Actions 🎉 2020-12-05 16:53:14 -08:00
Andy Miller
dd30b96210 auto-escape change 2020-12-05 11:34:40 -07:00
Andy Miller
3e053784c2 ignore versions.yaml 2020-12-04 14:26:42 -07:00
Andy Miller
7b97cd0cf1 ignore versions.yaml 2020-12-04 12:21:42 -07:00
Djamil Legato
809767883b Disable develop branch from triggering travis
Temporary, while we move to GitHub Actions.
2020-12-04 10:07:48 -08:00
Matias Griese
d8e38665f1 Changelog update 2020-12-04 20:06:57 +02:00
Matias Griese
f25ea8f056 Updated unit tests 2020-12-04 20:01:28 +02:00
Matias Griese
7c0ba80530 Fixed potential error when upgrading Grav 2020-12-04 19:29:07 +02:00
Andy Miller
6eb083bebe Merge tag '1.6.30' into develop
Release v1.6.30
2020-12-04 05:30:11 -07:00
Andy Miller
3a822f7bc4 Merge branch 'release/1.6.30' 2020-12-04 05:30:10 -07:00
Andy Miller
9a2268a54e prepare for release 2020-12-04 05:29:56 -07:00
Andy Miller
611171371b fix for travis build 2020-12-04 05:26:29 -07:00
Andy Miller
e1d4fe36f4 Merge branch 'release/1.6.30' 2020-12-04 03:42:37 -07:00
Andy Miller
079d8c19a4 Merge tag '1.6.30' into develop
Release v1.6.30
2020-12-04 03:42:37 -07:00
Andy Miller
418c6dd7f8 prepare for release 2020-12-04 03:42:02 -07:00
Andy Miller
08304d5064 Revert "Allow to set SameSite from system.yaml (#3063)"
This reverts commit 0b41eea2bb.
2020-12-04 03:34:26 -07:00
Andy Miller
5cdeb28e6b Revert "better handle cookie_samesite if null"
This reverts commit fd0c9823fa.
2020-12-04 03:33:59 -07:00
Andy Miller
c5efd17a9c GA Slack WIP 2020-12-03 22:16:56 -07:00
Andy Miller
6276ead820 removed deprecated values 2020-12-03 22:10:36 -07:00
Andy Miller
b5cdc12478 GA WIP 2020-12-03 22:02:46 -07:00
Andy Miller
ff511b8968 GA testing 2020-12-03 21:58:32 -07:00
Andy Miller
037a84c46f Added GA Test workflow 2020-12-03 20:49:02 -07:00
Andy Miller
3d0f29a172 removed deleted repo 2020-12-03 20:48:38 -07:00
Andy Miller
85c239bc18 Fix for PHP8 2020-12-03 17:43:33 -07:00
Andy Miller
1fb6a39d9d prepare for rc.19 release 2020-12-03 17:12:55 -07:00
Andy Miller
9aeac93c9a composer update 2020-12-03 16:10:54 -07:00
Andy Miller
6188076fe6 prepare for rc.18 release 2020-12-03 14:31:25 -07:00
Andy Miller
0fc7fd3411 Merge branch 'develop' into 1.7
# Conflicts:
#	system/defines.php
2020-12-03 14:27:38 -07:00
Andy Miller
078c8d23d5 Merge branch 'release/1.6.29' 2020-12-03 14:22:52 -07:00
Andy Miller
8c845c77c1 Merge tag '1.6.29' into develop
Release v1.6.29
2020-12-03 14:22:52 -07:00
Andy Miller
cb373dae59 prepare for release 2020-12-03 14:22:38 -07:00
Matias Griese
0a42a889ec Sort by numeric in Cron::cronToArray() 2020-12-02 21:51:34 +02:00
Matias Griese
e8f5080f35 Updated Gregwar to our own version 2020-12-02 16:09:10 +02:00
Matias Griese
00f73957dd Fixed doctrine collection sorting to be natural and case insensitive 2020-12-02 10:56:18 +02:00
Matias Griese
3a0480e0d8 Fixed plugin/theme priority ordering to be numeric 2020-12-02 10:45:11 +02:00
Matias Griese
0cee7bcdc8 Fixed Page ordering to be natural and case insensitive 2020-12-02 10:41:10 +02:00
Matias Griese
30401df4b7 Fixed Flex ordering to be natural and case insensitive 2020-12-02 10:37:51 +02:00
Matias Griese
f5d1e98491 Use previous version of Symfony YAML because of a bug 2020-12-01 11:57:08 +02:00
Matias Griese
8f9b2d22c1 Fixed event timeline in clockwork 2020-12-01 10:33:37 +02:00
Matias Griese
2b17767b53 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	system/src/Grav/Common/Backup/Backups.php
2020-12-01 09:35:35 +02:00
Matias Griese
00a7094802 Update getBackupDownloadUrl() method to not pass the path 2020-12-01 09:33:55 +02:00
Andy Miller
6eaf44e397 Merge branch 'develop' into 1.7 2020-11-30 16:14:01 -07:00
Andy Miller
24b52c77fe update changelog 2020-11-30 16:13:51 -07:00
Andy Miller
7a9b906925 update changelog 2020-11-30 16:13:25 -07:00
Andy Miller
53bef264e7 XSS fix for grav-ghsa-cvmr-6428-87w9 2020-11-30 16:11:22 -07:00
Andy Miller
75b74c4ab3 XSS fix for grav-ghsa-cvmr-6428-87w9 2020-11-30 16:10:56 -07:00
Matias Griese
ca3a9aecd6 Do not create the new user/env folder if environment already exists elsewhere 2020-11-30 18:21:13 +02:00
Matias Griese
8f7902af94 Installer improvements 2020-11-30 16:13:24 +02:00
Andy Miller
8df3fa31fb updated with new toolbox 2020-11-27 13:53:33 -07:00
Matias Griese
ff7a1b861e Flex improvements 2020-11-27 14:56:50 +02:00
Matias Griese
d6a82e5c56 Fixed minor installer issues 2020-11-27 14:49:47 +02:00
Matias Griese
f714e6fa14 PHP 8 fixes (part 2) 2020-11-27 14:13:59 +02:00
Matias Griese
6817133819 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	composer.json
	composer.lock
2020-11-27 14:01:56 +02:00
Matias Griese
76670e47a1 PHP 8 fixes 2020-11-27 13:49:10 +02:00
Matias Griese
961b24a019 Fixed exception in CLI GPM and backup commands when php-zip is not enabled [#3075] 2020-11-24 19:52:11 +02:00
Matias Griese
068de42e83 Fixed |safe_email filter to return safe and escaped UTF-8 HTML [#3072] 2020-11-24 19:36:35 +02:00
Matias Griese
75f9c0a892 Fixed bin/grav yamllinter -a and -f not following symlinks [#3080] 2020-11-24 16:42:00 +02:00
Matias Griese
3a1b301b32 FlexObject::refresh() should return boolean status 2020-11-24 14:52:52 +02:00
Matias Griese
9bb1d99ae4 Added FlexObject::refresh() method to make sure object is up to date 2020-11-24 14:48:12 +02:00
Matias Griese
cf052b5bd4 Updated Clockwork to v5.0 [#3072] 2020-11-24 11:47:31 +02:00
Matias Griese
65a18fd270 Update user/config/version.yaml before copying the files to avoid frontend from setting the version schema. 2020-11-23 22:30:13 +02:00
Matias Griese
d4775cc970 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	system/src/Grav/Common/Processors/ConfigurationProcessor.php
2020-11-23 21:54:07 +02:00
Matias Griese
07ee5b42f7 Added basic support for user/config/versions.yaml 2020-11-23 21:53:28 +02:00
Matias Griese
d5048fea10 Composer update 2020-11-23 21:39:00 +02:00
Matias Griese
f3149068e3 Create version.yaml when initializing configuration 2020-11-23 21:36:54 +02:00
Matias Griese
f5d3a5132a Change version.yaml nesting 2020-11-23 21:00:17 +02:00
Matias Griese
70e0ecfef5 Add version information when upgrading Grav 2020-11-23 20:46:41 +02:00
Matias Griese
631e0e0f3f New sites have compatibility features turned off by default, upgrading from older versions will keep the settings on 2020-11-23 19:09:55 +02:00
Matias Griese
b66287cbb9 Fixed CLI self-upgrade from Grav 1.6 [#3079] 2020-11-23 09:50:30 +02:00
Matias Griese
9e6d38bc1a Added support for having all sites / environments under user/env folder [#3072] 2020-11-23 08:50:19 +02:00
Matias Griese
6cbe4aeec4 Fixed system:// stream is causing issues in Admin, making Media tab to disappear and possibly causing other issues [#3072] 2020-11-23 08:42:17 +02:00
Djamil Legato
e219f56ff4 Merge branch 'develop' into 1.7 2020-11-21 14:08:49 -08:00
Djamil Legato
e16b29c566 Better handling of missing repository index (grav-plugin-admin#1916) 2020-11-21 14:05:29 -08:00
Djamil Legato
1b3e3ede4d Better handling of missing repository index (grav-plugin-admin#1916) 2020-11-20 15:40:58 -08:00
Djamil Legato
0a601f10c0 Fixed Purge successful message only working in Scheduler but broken in CLI and Admin (fixes #1935) 2020-11-20 12:16:37 -08:00
1tsi
56ce4ab0f2 Update media.yaml (#3070)
fixed MIME types for .docx, .pptx and .xlsx
2020-11-18 12:10:23 -07:00
Matias Griese
1f6c2f5a0a Add per field configuration options to customize XSS detection 2020-11-18 13:54:42 +02:00
Andy Miller
5f3ddd9389 Merge branch 'develop' into 1.7 2020-11-17 15:24:54 -07:00
Andy Miller
fd0c9823fa better handle cookie_samesite if null 2020-11-17 15:24:08 -07:00
Andy Miller
d23588a217 Merge branch 'develop' into 1.7
# Conflicts:
#	system/blueprints/config/system.yaml
#	system/src/Grav/Common/GPM/Response.php
2020-11-17 12:07:11 -07:00
Andy Miller
ca53b8afca Merge branch '1.7' of github.com:getgrav/grav into 1.7
# Conflicts:
#	CHANGELOG.md
2020-11-17 12:01:56 -07:00
Andy Miller
053bc03a54 fixed blueprintschema for config-default-@ 2020-11-17 12:00:55 -07:00
Matias Griese
78dc70bcdc Turn off xss detection on unset fields 2020-11-17 19:10:13 +02:00
Matias Griese
ea00c044d3 Added XSS detection to all forms (use check_xss: false to disable it per field) 2020-11-17 18:54:03 +02:00
randoum
11cd2b086e Allow to set SameSite from system.yaml (#3063)
* Update system.yaml
* Update SessionServiceProvider.php
* Update Session.php
* Update system.yaml
2020-11-17 13:10:12 +02:00
Stephan Strate
ae6f0b5505 Check exact extension in checkFilename utility (#3061)
* Fix uploads_dangerous_extensions checking (#3060)
* Remove redundant prefixing of `.` to extension (#3060)
2020-11-17 13:07:33 +02:00
Vilius Šumskas
247d1a9aa6 Fix failing example custom job. (#3050)
* Since Symfony 4.2 passing chained shell commands to the Process component is not supported anymore and a working directory needs to be set by passing it as a completely separate parameter.

Unless somebody finds a way to use Process() for this and fixes it in the code, rework example custom job.

Related info: https://symfony.com/blog/new-in-symfony-4-2-important-deprecations#deprecated-process-commands-as-strings

* One more place to fix Symfony 4.2 compatibility.
2020-11-17 13:03:30 +02:00
Djamil Legato
6273c2395d Minor tweak to pages list tree ui 2020-11-16 20:24:09 -08:00
Djamil Legato
1396525251 Escape titles in Flex pages list (flex-objects#84) 2020-11-15 12:00:47 -08:00
Andy Miller
de46afff1c vendor library updates 2020-11-13 16:02:52 -07:00
Andy Miller
54fd54d3f0 Set minimum requirements to PHP 7.3.6 2020-11-13 16:01:26 -07:00
randoum
0b41eea2bb Allow to set SameSite from system.yaml (#3063)
* Update system.yaml

* Update SessionServiceProvider.php

* Update Session.php

* Update system.yaml
2020-11-12 13:40:39 -07:00
Matias Griese
63207d370b Fixed updated media missing from media when editing Flex Object after page reload 2020-11-12 21:19:45 +02:00
Matias Griese
e92d88df8b Fixed fatal error in CompiledFile if the cached version is broken 2020-11-12 13:35:36 +02:00
Matias Griese
a9e6d3665f Fixed potential fatal error when creating flex index using cache [#3062] 2020-11-12 13:26:25 +02:00
Matias Griese
2453927ba3 Fixed Utils::isFunctionDisabled() method if there are spaces in disable_functions [#3023] 2020-11-12 13:14:17 +02:00
Matias Griese
94e6cb02f3 Fixed header.admin.children_display_order in Flex Pages to work just like with regular pages 2020-11-12 12:58:26 +02:00
Stephan Strate
9b2b909139 Check exact extension in checkFilename utility (#3061)
* Fix uploads_dangerous_extensions checking (#3060)

* Remove redundant prefixing of `.` to extension (#3060)
2020-11-11 10:30:57 -07:00
Matias Griese
c9a3f349ad Merge remote-tracking branch 'origin/1.7' into 1.7 2020-11-11 14:51:56 +02:00
Matias Griese
439b539dcb Added FormFlashFile::getField() method 2020-11-11 14:51:48 +02:00
Andy Miller
ab7f0a2e95 Address errors in CLI when accidentally initializing twice 2020-11-09 14:25:04 -07:00
Matias Griese
b50dbf3ff0 Fixed sorting by groups in Flex Users 2020-11-09 20:44:37 +02:00
Matias Griese
d3f1f833ab Fixed sorting by groups in Flex Users 2020-11-09 19:47:00 +02:00
Matias Griese
3df099a0e3 Fixed typo in composer.json 2020-11-05 10:45:15 +02:00
Vilius Šumskas
54dccd11ef Fix failing example custom job. (#3050)
* Since Symfony 4.2 passing chained shell commands to the Process component is not supported anymore and a working directory needs to be set by passing it as a completely separate parameter.

Unless somebody finds a way to use Process() for this and fixes it in the code, rework example custom job.

Related info: https://symfony.com/blog/new-in-symfony-4-2-important-deprecations#deprecated-process-commands-as-strings

* One more place to fix Symfony 4.2 compatibility.
2020-11-04 15:40:32 -07:00
Matias Griese
77ec847e20 Tighten requirements (require PHP 8 support for libraries) 2020-11-04 18:31:04 +02:00
Matias Griese
8bf5fcb8ec Improve Flex configuration: gather views together in blueprint 2020-11-04 18:30:15 +02:00
Matias Griese
ff41d76501 Added search option same_as to Flex Objects 2020-11-03 09:11:58 +02:00
Matias Griese
d9772ed5c6 Hide Flex Pages frontend configuration (not ready for production use) 2020-11-02 15:52:27 +02:00
Matias Griese
8dba1b37c7 Update composer 2020-11-02 15:44:45 +02:00
Matias Griese
8b017dc647 Update composer 2020-10-30 22:17:14 +02:00
Matias Griese
c8ee05d671 Set minimum requirements to PHP 7.2.5 2020-10-30 21:52:04 +02:00
Djamil Legato
40216e310d Create SECURITY.md
Added security policy
2020-10-30 12:03:34 -07:00
Grant
6a6f99e9ae Add option for timeout in selfupgrade command (#3013)
* Add option for timeout in selfupgrade command

* Raise the default timeout
2020-10-30 07:48:03 -06:00
Djamil Legato
14ad7cf3ac Set grav_cli as referer when coming from CLI 2020-10-29 15:58:32 -07:00
Djamil Legato
ce327dca42 Set grav_cli as referer when coming from CLI 2020-10-29 15:56:20 -07:00
Djamil Legato
ded7670ac3 Forward a sid to GPM when downloading a premium package via CLI 2020-10-29 15:49:36 -07:00
Djamil Legato
5bf1ec0fd9 Forward a sid to GPM when downloading a premium package via CLI 2020-10-29 15:48:34 -07:00
Matias Griese
306c0505a6 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	CHANGELOG.md
2020-10-29 11:10:33 +02:00
Matias Griese
325cb69a65 Merge remote-tracking branch 'origin/develop' into develop 2020-10-29 11:03:37 +02:00
Matias Griese
c3df9b6484 Added .htaccess rule to block attempts to use Twig in the request URL 2020-10-29 11:03:28 +02:00
Andy Miller
db6bfc00fc Upgraded bin/composer.phar to composer 2 2020-10-26 11:37:24 -06:00
Andy Miller
51b5d7a939 Fix compatibility with Symfony 4.2 and up. (#3048) 2020-10-26 11:34:52 -06:00
Matias Griese
9490f62dee Composer update 2020-10-26 14:58:49 +02:00
Vilius Šumskas
1661dc9ef7 Fix compatibility with Symfony 4.2 and up. (#3048)
This enables running scheduled *shell* commands again because Symfony 4.2 deprecated passing commands as a string to the Process component: https://symfony.com/blog/new-in-symfony-4-2-important-deprecations#deprecated-process-commands-as-strings

One also needs to catch all possible exceptions from the Process component, though. These exceptions are never displayed or sent to any of the logs and I've spent hours trying to debug why my scheduled tasks are failing.
2020-10-23 14:40:35 -06:00
Matias Griese
aa7731dc5d Merge remote-tracking branch 'origin/1.7' into 1.7 2020-10-23 14:45:24 +03:00
Matias Griese
4150564538 Added FlexDirectoryInterface interface 2020-10-23 14:45:16 +03:00
Andy Miller
38043ebade Merge branch 'develop' of github.com:getgrav/grav into develop
# Conflicts:
#	CHANGELOG.md
2020-10-18 15:10:01 -06:00
Andy Miller
9a694a8d3d updated jquery 3.x 2020-10-18 15:08:59 -06:00
Andy Miller
f6997f54eb Merge branch '1.7' of github.com:getgrav/grav into 1.7 2020-10-18 15:07:19 -06:00
Andy Miller
2631c18484 updated jquery 2020-10-18 15:07:13 -06:00
Matias Griese
c0d819b97a Fixed print_r() in twig 2020-10-18 20:17:17 +03:00
Matias Griese
972d32c969 Added deprecation notice when using system.pages_fallback_only 2020-10-16 12:29:37 +03:00
Matias Griese
7f0e51f92f Minor fix to upgrade guide 2020-10-15 13:41:50 +03:00
Matias Griese
6f78c2288f Added missing languages.content_fallback configuration variable to system.yaml 2020-10-15 11:12:30 +03:00
Matias Griese
b331ba42b8 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	CHANGELOG.md
2020-10-14 11:02:46 +03:00
Matias Griese
fb3efba204 Fixed hardcoded system folder in blueprints, config and language streams 2020-10-14 11:01:45 +03:00
Matias Griese
58e09dcff4 Composer update 2020-10-14 10:38:13 +03:00
Matias Griese
747055f60e Fixed hardcoded system folder in blueprints, config and language streams 2020-10-14 10:37:59 +03:00
Matias Griese
aa07c64440 Missing method 2020-10-14 10:37:45 +03:00
Matias Griese
6b9f1d8414 Fixed bug in collections where filter type: false did not work 2020-10-13 20:54:20 +03:00
Matias Griese
b4bc1d292a Tweak pages collection filters 2020-10-13 20:29:09 +03:00
Matias Griese
c98553d19b Missed few cases (deprecated methods) 2020-10-13 19:18:10 +03:00
Matias Griese
1ace31216f Renamed PageCollectionInterface::nonModular() into PageCollectionInterface::pages() and deprecate the old method
Renamed `PageCollectionInterface::modular()` into `PageCollectionInterface::modules()` and deprecate the old method
2020-10-13 19:01:43 +03:00
Matias Griese
495cec930c Updated upgrade docs 2020-10-12 17:34:16 +03:00
Andy Miller
44ad0ca1ea Menu Visibility Requires Access setting wrong frontmatter login#265 2020-10-11 14:19:15 -06:00
Matias Griese
4ba8e9e99d Fixed media crashing on a bad image 2020-10-08 22:17:12 +03:00
Matias Griese
1eb85b366d Accessing page with unsupported file extension (jpg, pdf, xsl) will use wrong mime type [#3031] 2020-10-08 13:02:47 +03:00
Andy Miller
3821ae441f prepare for rc release 2020-10-07 17:43:25 -06:00
Andy Miller
b01e5f7366 Merge branch 'develop' into 1.7
# Conflicts:
#	system/defines.php
#	system/src/Grav/Common/Helpers/Excerpts.php
2020-10-07 17:41:13 -06:00
Andy Miller
b375a543ec Merge tag '1.6.28' into develop
Release v1.6.28
2020-10-07 17:26:16 -06:00
Andy Miller
2c9d848af5 Merge branch 'release/1.6.28' 2020-10-07 17:26:15 -06:00
Andy Miller
8d65c5c2c0 prepare for release 2020-10-07 17:25:32 -06:00
Matias Griese
0af731b6a2 Fixed bug in FlexMediaTrait::getMediaFieldSettings() 2020-10-07 13:56:19 +03:00
Andy Miller
9d870b2c45 Backported folder::countChildren() from 1.7 2020-10-06 16:06:10 -06:00
Matias Griese
82abf87f75 Improve media rename errors 2020-10-06 13:12:14 +03:00
Matias Griese
81ef023b37 Composer update 2020-10-06 10:23:06 +03:00
Matias Griese
776fffb2dc Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	composer.lock
	system/src/Grav/Common/Grav.php
2020-10-06 10:21:33 +03:00
Andy Miller
cfd5d9e209 improved compatibility 2020-10-05 18:44:59 -06:00
Matias Griese
23716ff729 Do not cache 404 [#3025] 2020-10-05 11:16:17 +03:00
Matias Griese
18921a4f14 Composer update 2020-10-05 10:57:02 +03:00
Andy Miller
569c42724b more docs 2020-10-04 18:28:24 -06:00
Andy Miller
18abf7d644 Caddyfile more friendly for local development 2020-10-04 18:28:18 -06:00
Andy Miller
12efdb9fe4 Merge branch 'develop' into 1.7 2020-10-04 16:36:07 -06:00
Cant_Aim
fdf884036d Update to Caddyfile using Caddy 2 changes. (#2963) 2020-10-04 16:35:37 -06:00
Matias Griese
998018af3e Phpstan fixes 2020-10-02 13:34:51 +03:00
Matias Griese
cae71f3d60 Composer update 2020-10-02 13:24:45 +03:00
Matias Griese
f7e43fab35 Added clearCache() to storages 2020-10-02 13:21:07 +03:00
Matias Griese
4f7a4ac1e2 PhpStan fixes 2020-10-02 13:12:47 +03:00
Matias Griese
5fc7b34ce7 Added reload argument to FlexStorageIngerface::getMetaData() 2020-10-02 12:06:46 +03:00
Andy Miller
cbf73b2290 Merge branch 'develop' into 1.7
# Conflicts:
#	CHANGELOG.md
#	system/src/Grav/Common/GPM/Response.php
#	system/src/Grav/Common/Twig/Node/TwigNodeCache.php
#	system/src/Grav/Common/Twig/TokenParser/TwigTokenParserCache.php
#	system/src/Grav/Common/Twig/TwigExtension.php
#	system/src/Grav/Common/Utils.php
2020-09-30 10:26:51 -06:00
Matias Griese
f344a8166e Changelog update 2020-09-30 14:38:47 +03:00
Matias Griese
9532317928 Fixed fatal error in toggled fields 2020-09-30 14:38:29 +03:00
Matias Griese
4cf85c462d Merge remote-tracking branch 'origin/1.7' into 1.7
# Conflicts:
#	CHANGELOG.md
2020-09-30 14:35:52 +03:00
Matias Griese
6fe2964f37 Flex User: make multiple file/image fields to work 2020-09-30 14:35:29 +03:00
Djamil Legato
2108a902c2 Fixed Referer reference for GPM calls 2020-09-28 17:37:08 -07:00
Andy Miller
1520eec677 Merge branch '1.7' of github.com:getgrav/grav into 1.7 2020-09-28 18:35:06 -06:00
Andy Miller
e3ba3a3ea4 added Uri::getAllHeaders() compatibility 2020-09-28 18:35:01 -06:00
Djamil Legato
1c104f9358 Updated Changelog 2020-09-28 16:38:11 -07:00
Djamil Legato
f8b9536eb8 Fixed Referer reference for GPM calls 2020-09-28 16:37:18 -07:00
Matias Griese
0e34628c6f Flex User: make multiple file/image fields to work 2020-09-25 15:03:15 +03:00
Matias Griese
614bc0b254 Make MediaUploadTrait easier to override 2020-09-25 13:55:46 +03:00
Matias Griese
cc6eafdb09 Fixed Flex User avatar when using folder storage
Fixed bug in `Flex Form` making it impossible to set nested values
2020-09-25 11:08:53 +03:00
Matias Griese
df4cbdcc09 Do not log deprecated messages for now (too much into in clockwork) 2020-09-23 16:18:16 +03:00
Matias Griese
f5e53a9a4c Fixed FlexObject::freeMedia() method causing media to become null 2020-09-23 16:17:25 +03:00
Matias Griese
46f654fcee Fixed unset() in ObjectProperty class 2020-09-23 16:15:39 +03:00
Matias Griese
aa3a3f4a17 Fixed media upload failing with custom folders 2020-09-23 11:52:42 +03:00
Andy Miller
59b3b6cc02 initialize page blueprint first 2020-09-21 15:00:51 -06:00
Matias Griese
6d4b8e8401 Fixed onBlueprintCreated firing multiple times recursively 2020-09-21 23:49:45 +03:00
Matias Griese
9ac7a60835 Make sure that onBlueprintCreated gets called only once 2020-09-21 23:40:08 +03:00
Matias Griese
790dbd381d Added missing onBlueprintCreated event for Flex Pages 2020-09-21 23:20:44 +03:00
Matias Griese
ac6c8a985b Improve MediaUploadTrait 2020-09-21 16:50:22 +03:00
Matias Griese
fea22e0409 Remove typehint from UserObject 2020-09-21 10:40:52 +03:00
Matias Griese
ac7d595a2d Merge branch '1.7' of github.com:getgrav/grav into 1.7
 Conflicts:
	system/src/Grav/Common/Twig/Twig.php
2020-09-21 10:14:04 +03:00
Matias Griese
819e412e09 Improve docblocks in Grav\Common, improve code readability 2020-09-20 22:04:40 +03:00
Jeremy Gonyea
bdfec68340 Custom nginx-ddev-site.conf no longer required (#3011) 2020-09-18 20:43:51 -06:00
Andy Miller
0b7ef6c8fb Merge branch '1.7' of github.com:getgrav/grav into 1.7
# Conflicts:
#	CHANGELOG.md
2020-09-18 12:51:00 -06:00
Andy Miller
9880ce977a Added default templates in Grav itself 2020-09-18 12:49:10 -06:00
Matias Griese
e88f924274 Phpstan fixes 2020-09-18 09:57:56 +03:00
Matias Griese
fe53dc88e5 Improve Media classes 2020-09-18 09:20:27 +03:00
Matias Griese
fdfd6558f2 Composer update 2020-09-18 09:17:28 +03:00
Matias Griese
6d9e3dcad1 Merge branch '1.7' of github.com:getgrav/grav into 1.7 2020-09-15 10:34:51 +03:00
Andy Miller
20c4468edd safety check in Utils::svgImageFunction() 2020-09-11 14:48:50 -06:00
Matias Griese
7f80e650b1 Improve Media classes 2020-09-11 14:13:06 +03:00
Andy Miller
1995837b3f composer udpate 2020-09-10 19:46:30 -06:00
Andy Miller
88c0617279 update changelog 2020-09-10 15:55:33 -06:00
Andy Miller
b8b1bed7ed backported theme_var enhanced logic from 1.7 2020-09-10 15:52:52 -06:00
Andy Miller
03c6e74c4d backported {{ cache }} from 1.7 2020-09-10 15:49:25 -06:00
Andy Miller
71639de5ec Added Utils::fullPath() helper method 2020-09-10 15:43:57 -06:00
Andy Miller
39310cd4af Added svg_image twig function 2020-09-10 15:43:47 -06:00
Matias Griese
582352b2d2 Fixed infinite loop in blueprints with extend@ to a parent stream 2020-09-08 23:15:36 +03:00
Matias Griese
f2c271f66d Fixed Security::sanitizeSVG() creating an empty file if SVG file cannot be parsed 2020-09-08 15:15:25 +03:00
Matias Griese
d99e1f519e Added Filesystem::basename() method 2020-09-07 13:09:07 +03:00
Matias Griese
c53e2843be Minor MediaFileTrait update to support external URLs 2020-09-04 14:24:31 +03:00
Matias Griese
f438ce04fb Merge branch '1.7' of github.com:getgrav/grav into 1.7 2020-09-02 12:41:42 +03:00
Matias Griese
8be5952b92 Upgrade guide update 2020-09-02 10:45:01 +03:00
Andy Miller
cfc8610a16 prepare for rc release 2020-09-01 14:46:52 -06:00
Andy Miller
ad8a5d9870 Merge branch 'develop' into 1.7
# Conflicts:
#	CHANGELOG.md
#	system/defines.php
2020-09-01 14:46:05 -06:00
Andy Miller
75cb4e392d Merge branch 'release/1.6.27' 2020-09-01 14:35:38 -06:00
Andy Miller
ec9dd14cb4 Merge tag '1.6.27' into develop
Release v1.6.27
2020-09-01 14:35:38 -06:00
Andy Miller
6e8c852bfa prepare for release 2020-09-01 14:35:29 -06:00
Andy Miller
f204979ada Merge branch '1.7' of github.com:getgrav/grav into 1.7 2020-08-31 13:58:28 -06:00
Andy Miller
6275327b0a strip <xml> and optionally <style> 2020-08-31 13:58:24 -06:00
Matias Griese
f1126e63b1 Flex: Improve row rename logic 2020-08-31 15:25:02 +03:00
Matias Griese
7157ed08f9 Fixed Flex Pages bug where renaming slug causes bad ordering range after save [#2997] 2020-08-28 21:50:18 +03:00
Matias Griese
d33627f1fe Composer update 2020-08-28 14:26:18 +03:00
Matias Griese
c2611cfeaf Fixed Flex Pages bug where changing a modular page template added duplicate file [admin#1899] 2020-08-28 14:26:07 +03:00
Matias Griese
056614fa6b Fixed Flex Pages bug where onAdminSave passes page as $event['page'] instead of $event['object'] [#2995] 2020-08-28 12:18:02 +03:00
Matias Griese
4c19226959 Include route in Flex Pages edit title 2020-08-28 09:42:41 +03:00
Matias Griese
d41a31f614 Added MediaUploadInterface::renameFile() method 2020-08-28 09:41:50 +03:00
Matias Griese
d83dc07368 Added MediaUploadInterface::renameFile() method 2020-08-28 09:37:44 +03:00
Andy Miller
f30d8748f1 tidy up grav instance reference 2020-08-27 11:02:00 -06:00
Andy Miller
b4710c292f Added themes to cached bluerprints + configs 2020-08-27 11:01:35 -06:00
Andy Miller
c3cd399087 allow null for classes 2020-08-26 14:08:31 -06:00
Andy Miller
f8a2c94903 Added a fullPath() helper method 2020-08-26 14:05:42 -06:00
Andy Miller
747b081809 added svg_image() twig function 2020-08-25 14:47:17 -06:00
Andy Miller
55903dab11 composer updates
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-08-24 11:53:16 -06:00
Andy Miller
a6c094f9aa fix error when no parent exists
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-08-13 11:43:55 -06:00
Andy Miller
b9b978e452 deprecate header_var + enhance theme_var
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-08-12 17:23:27 -06:00
Andy Miller
bad24f8a85 support returning object
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-08-03 20:25:01 -06:00
Andy Miller
57cffbc4c8 support climbing up the page structure looking for a header variable
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-08-03 18:10:13 -06:00
Andy Miller
86d71bf37f Support current page context
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-08-03 18:09:54 -06:00
Matias Griese
c6dd169916 Added MediaUploadInterface::renameFile() method 2020-08-03 16:11:15 +03:00
Matias Griese
cbc85b7a09 Improve medium objects 2020-07-28 17:29:10 +03:00
Matias Griese
016af0f419 Minor improvements for backups 2020-07-28 17:26:55 +03:00
Dominik Scholz-Schulze
1903d44bf8 Fixed enviroment name mapping for localhost (#2924)
Co-authored-by: Dominik Scholz-Schulze <dominik.scholz-schulze@iserv.eu>
2020-07-27 11:11:32 -06:00
Matias Griese
351c270e0e Do not check file size limit when updating object 2020-07-24 11:24:23 +03:00
Matias Griese
ab3d9f89ec Improved media 2020-07-24 11:17:26 +03:00
Andy Miller
97220a27df prepare for rc release
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-22 11:08:23 -06:00
Andy Miller
0310fdf99f Sanity checks
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-21 16:38:02 -06:00
Andy Miller
f1a535b7d4 uppdated changelog
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-21 16:18:24 -06:00
Andy Miller
6879d8b6ce fix for broken exif reading
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-21 14:57:19 -06:00
Matias Griese
046c5f69ac Changelog update 2020-07-21 16:30:37 +03:00
Matias Griese
40687f8cc0 Fixed caching issues with Flex index file 2020-07-21 15:24:54 +03:00
Andy Miller
b8f27ecfd0 sanity check
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-20 23:03:57 -06:00
Andy Miller
16dd2ef9d0 moved fixOrientation() into ImageMediaTrait
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-20 22:47:33 -06:00
Andy Miller
aaff2f486f set default for auto-fix-orientation to true
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-20 19:09:58 -06:00
Andy Miller
d9a62373b8 fix issue with ‘’ set in defaults
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-20 19:09:00 -06:00
Andy Miller
bef4f6a0db Fix orientation when auto_fix_orientation option is enabled
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-20 19:08:45 -06:00
Matias Griese
a66c282ee5 Composer update 2020-07-17 19:41:06 +03:00
Matias Griese
2d50cc2b2d Fixed bug in clearing Flex index (partial fix) 2020-07-17 19:40:57 +03:00
Andy Miller
82f1182503 Prepare for rc release
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-09 10:43:17 -06:00
Andy Miller
360bed8697 Merge branch 'develop' into 1.7 2020-07-09 10:32:02 -06:00
Andy Miller
e4a833b59e cleanup
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-09 10:28:47 -06:00
Matias Griese
f8809d5d62 Fixed missing const CSS_IMPORT_REGEX in BaseAsset 2020-07-09 10:05:33 +03:00
Matias Griese
8adffb8714 Fixed page media only accepting images [#2943] 2020-07-09 09:57:11 +03:00
Andy Miller
9b6649174c fixes complex css imports #2958
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-08 10:39:48 -06:00
Andy Miller
7f03f7c844 Updated changelog
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-07 12:31:01 -06:00
Andy Miller
843596944f Merge branch '1.7' of github.com:getgrav/grav into 1.7 2020-07-07 12:28:14 -06:00
Andy Miller
0f6c5fe49d Asset test compatibility
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-07 12:28:04 -06:00
Ricardo Verdugo
b94c4e775a added optional options to noprocess (#2954)
* added optional options to noprocess

* fix minor bug with skip and better naming

* Added tests

Signed-off-by: Andy Miller <rhuk@mac.com>

* Added some tests

Signed-off-by: Andy Miller <rhuk@mac.com>

Co-authored-by: Ricardo <ricardo@urbansquid.london>
Co-authored-by: Andy Miller <rhuk@mac.com>
2020-07-07 12:27:32 -06:00
torohill
fc97e88928 Left pad scheduler times with zeros. (#2921) 2020-07-07 11:17:15 -06:00
Andy Miller
5b47e6130c update changelog
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-03 21:20:28 -06:00
Andy Miller
86edc18f21 Safer solution for getExcerptsFromHtml
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-03 21:19:39 -06:00
Andy Miller
5ee36e786a UTF-8 safe in Excerpts::getExcerptFromHtml()
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-03 21:18:36 -06:00
Matias Griese
c4e2e5da8d Changelog update 2020-07-02 16:22:45 +03:00
Matias Griese
2c14ec0abd Reverted Language::getDefault() returning false again as plugins use it (updated docblocks) 2020-07-02 16:18:41 +03:00
Matias Griese
5b782fd04c Regression: Default language fix broke Language::getLanguageURLPrefix() and Language::isIncludeDefaultLanguage() methods 2020-07-02 13:58:58 +03:00
Andy Miller
bdd579ad2d prepare for rc release
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-01 14:30:43 -06:00
Andy Miller
d94fa8d2de updated changelog
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-01 14:30:37 -06:00
Andy Miller
c0f1d4e2da Don’t validate, let user’s overriden language work even if no other languages set
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-01 14:04:28 -06:00
Andy Miller
e82f49bdab fall back to ‘en’ by default if no other lang specified
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-07-01 14:03:31 -06:00
Matias Griese
b65d48541d Fixed Language::getDefault() returning false and not null 2020-07-01 20:54:22 +03:00
Matias Griese
e2f68194d7 Docblock fixes in Language 2020-07-01 20:10:43 +03:00
Matias Griese
bd6f8f4ae6 Docblock fixes in Language 2020-07-01 20:09:55 +03:00
Matias Griese
9d4cce93fc Tabs in account blueprint break flex listing 2020-07-01 15:12:09 +03:00
Matias Griese
28ce18f8f0 Improved CvsFormatter to attempt to encode non-scalar variables into JSON before giving up 2020-07-01 14:51:27 +03:00
Matias Griese
c060d1a36e Fixed new User Group allowing bad group name to be saved 2020-07-01 14:30:56 +03:00
Matias Griese
3a05dcf659 Fixed missing onAdminSave and onAdminAfterSave events when using Flex Pages and Flex Users 2020-07-01 14:20:14 +03:00
Matias Griese
291ed38a5a Added page actions for admin 2020-06-30 22:42:19 +03:00
Matias Griese
411d689a48 Fixed broken Flex Page authorization for groups 2020-06-30 21:10:43 +03:00
Matias Griese
df279f879f UserObject: allow incomplete file properties 2020-06-30 14:50:53 +03:00
Matias Griese
9e58bccd49 Documentation updates on Page::topPage() 2020-06-30 10:08:32 +03:00
Matias Griese
092f3b4e24 Fix for FlexPage::topParent() 2020-06-30 01:20:06 +03:00
Matias Griese
005bb77f55 Merge remote-tracking branch 'origin/1.7' into 1.7 2020-06-30 01:09:43 +03:00
Matias Griese
258840d198 Updated UPGRADE-1.7.md 2020-06-30 01:09:34 +03:00
Andy Miller
c483da9efe fix for Page:topParent()
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-29 15:53:53 -06:00
Matias Griese
4b3f202c6f Changelog update 2020-06-29 09:29:57 +03:00
Andy Miller
07571465a7 make sure plugins are properly initialized in CLI
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-28 16:23:03 -06:00
Andy Miller
7d7590b914 Added a new onAfterCacheClear event
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-28 12:54:35 -06:00
Andy Miller
f965961401 udpated bundled composer to 2.0.0-dev
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-27 11:51:49 -06:00
Andy Miller
814ea7f81a composer update
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-27 11:51:37 -06:00
Matias Griese
91a0790695 Fixed retina images not working in Flex [flex-objects 64] 2020-06-26 13:10:24 +03:00
Matias Griese
2b8a6c6a89 Changelog fix 2020-06-26 12:27:33 +03:00
Matias Griese
55648d3452 Changelog update [#1867] 2020-06-26 12:26:09 +03:00
Matias Griese
60316d1b75 Fixed Trying to get property 'username' of non-object error in Flex 2020-06-26 11:54:38 +03:00
Matias Griese
7826608384 Changelog updates 2020-06-25 18:40:30 +03:00
Matias Griese
de151c8a9d Fixed uploading media in non-existing flex object (part 2) 2020-06-25 18:34:31 +03:00
Matias Griese
b0a1effaf9 Fixed uploading media in non-existing object 2020-06-25 15:58:18 +03:00
Matias Griese
fd52d124dd Changelog update 2020-06-23 14:37:46 +03:00
Matias Griese
b772864f2d Merge branch 'feature/1.7-media' of github.com:getgrav/grav into 1.7 2020-06-23 14:35:46 +03:00
Matias Griese
cdb10cfc1f Removed deprecation from a few FlexMediaTrait methods to simplify logic 2020-06-23 12:57:40 +03:00
Matias Griese
da7f0b7dce Fixed MediaUploadTrait::copyUploadedFile() not adding uploaded media to the collection 2020-06-23 12:43:27 +03:00
jackthomasatl
25461f7ca8 Adjusted asset types to enable extension of assets class (#2937)
Co-authored-by: Jack Thomas <Jack.Thomas@elavon.com>
2020-06-22 14:26:03 -06:00
Andy Miller
da7df9f865 needed for cache clear event
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-22 08:57:58 -06:00
Fabien Basmaison
00c5dba210 Use proper ellipsis for summary. (#2939) 2020-06-17 08:28:32 -06:00
Andy Miller
f30219d85a move image loading into it’s own trait to be used in image+static images
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-10 09:58:06 -06:00
Andy Miller
223e75d326 handle non-text links in getExcerptFromHtml
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-10 09:30:20 -06:00
Andy Miller
46d4f4a481 right-trim route for safety
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-09 10:43:21 -06:00
Andy Miller
419ebeafa8 Fix for trailing / in routes
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-08 16:33:55 -06:00
Andy Miller
4be7917d41 prepare for rc release
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-08 15:53:28 -06:00
Andy Miller
191686dffe Merge branch 'develop' into 1.7
Signed-off-by: Andy Miller <rhuk@mac.com>

# Conflicts:
#	system/defines.php
2020-06-08 15:51:08 -06:00
Andy Miller
fa791ed4ab Merge branch 'release/1.6.26' 2020-06-08 15:50:24 -06:00
Andy Miller
e29f8a9657 Merge tag '1.6.26' into develop
Release v1.6.26
2020-06-08 15:50:24 -06:00
Andy Miller
e66f6583b1 prepare for release
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-08 15:49:51 -06:00
Andy Miller
399d90e6cd Merge branch '1.7' into feature/1.7-media 2020-06-08 14:50:27 -06:00
Andy Miller
ec2eaae0d3 Merge branch 'develop' into 1.7
Signed-off-by: Andy Miller <rhuk@mac.com>

# Conflicts:
#	system/src/Grav/Common/GPM/Response.php
2020-06-07 19:47:58 -06:00
Andy Miller
12389b1e0d JSON Route of homepage with no ‘route’ set is valid [form#425]
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-07 19:46:18 -06:00
Florian Körner
ff6e5a20c3 Fix: case-insensitive search of location header (#2932)
looks good!
2020-06-07 15:42:29 -06:00
Andy Miller
7d6526f962 Merge branch '1.7' into feature/1.7-media
Signed-off-by: Andy Miller <rhuk@mac.com>

# Conflicts:
#	CHANGELOG.md
2020-06-07 15:26:10 -06:00
Andy Miller
b8fad8452b JSON route on homepage with no ‘route’ is valid grav-plugin-form#425
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-07 15:23:01 -06:00
Matias Griese
5e9107f376 Merge branch '1.7' of github.com:getgrav/grav into feature/1.7-media
 Conflicts:
	system/src/Grav/Common/Page/Medium/ImageMedium.php
2020-06-05 22:03:53 +03:00
Andy Miller
7faaff304a PSR fix
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-05 12:26:30 -06:00
Matias Griese
94acbf6005 Fixed saving nested file fields in Flex Objects 2020-06-05 10:11:19 +03:00
Andy Miller
a65c21acba Merge branch 'develop' into 1.7
Signed-off-by: Andy Miller <rhuk@mac.com>

# Conflicts:
#	CHANGELOG.md
#	system/blueprints/config/system.yaml
2020-06-04 14:46:54 -06:00
Andy Miller
bfbe4ce1b8 option to control supported attributes in markdown links
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-04 14:42:38 -06:00
Andy Miller
aaa636f357 cleaner handling of cropZoom
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-06-04 14:31:22 -06:00
Matias Griese
d0241ba7ee Changelog update 2020-06-04 22:33:29 +03:00
Matias Griese
b2230225cc Fixed media field saving issues in Flex Pages 2020-06-04 22:01:23 +03:00
Matias Griese
e063718e4f Add media support for Flex UserGroupObject 2020-06-04 16:43:00 +03:00
Matias Griese
03436a670f Add media support for Flex GenericObject 2020-06-04 16:26:40 +03:00
Matias Griese
8be508de5d Fixed typo in class name 2020-06-04 16:16:27 +03:00
Matias Griese
9370a86246 Moved common methods in both Media and GlobalMedia to AbstractMedia 2020-06-04 15:47:28 +03:00
Matias Griese
6c5237cdd8 Added missing methods into GlobalMedia 2020-06-04 15:45:51 +03:00
Matias Griese
2cf5ecd212 Implemented working media fields in FlexMediaTrait 2020-06-04 15:17:52 +03:00
Matias Griese
8e9125772e Add missing functionality to MediaUploadTrait 2020-06-04 12:47:48 +03:00
Matias Griese
62e863dec0 Improve Media handling in Flex 2020-06-03 18:06:37 +03:00
Matias Griese
e00098ea6a Merge branches '1.7' and 'feature/1.7-media' of github.com:getgrav/grav into feature/1.7-media 2020-06-02 13:29:17 +03:00
Matias Griese
f12bd1b51f Added support for case sensitive usernames 2020-06-02 11:57:55 +03:00
Matias Griese
93942a74cf Fixed Flex Object request cache clear when saving object 2020-06-01 13:48:58 +03:00
Matias Griese
401fd04379 Fix minor media bugs 2020-05-29 08:51:27 +03:00
Matias Griese
4fd54f1692 Added MediaUploadTrait 2020-05-28 17:31:49 +03:00
Matias Griese
9565994e5c Move image loading() method into trait 2020-05-28 15:21:03 +03:00
Matias Griese
6876e1a38a Merge branch '1.7' of github.com:getgrav/grav into feature/1.7-media
 Conflicts:
	system/src/Grav/Common/Page/Medium/ImageMedium.php
2020-05-28 15:16:43 +03:00
Matias Griese
7a8e737802 Minor code updates 2020-05-27 13:25:26 +03:00
Andy Miller
9f968611b1 typo
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-05-26 08:36:40 -06:00
Andy Miller
3bd4f9499a cherry picked #1925 fix from 1.7 to 1.6
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-05-26 08:35:49 -06:00
Andy Miller
069ef7b12c Fixed system.pages.hide_empty_folders #2925
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-05-26 08:32:03 -06:00
Andy Miller
9d6207f80e update changelog
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-05-26 08:17:19 -06:00
Andy Miller
22b493996c renamed markdown_editor to content_editor
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-05-26 08:16:37 -06:00
Andy Miller
5284717570 Added markdown editor option to user profile blueprint
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-05-25 14:03:40 -06:00
Matias Griese
96d11e4ffa Fixed new Flex User erroring out on save (thanks @mikebi42) 2020-05-25 22:18:30 +03:00
Matias Griese
a156247dc3 Fixed blueprint value filtering in lists [#2923] 2020-05-22 23:08:02 +03:00
Matias Griese
0e4a88d538 Fixed new Flex Page not having correct form fields for the page type 2020-05-22 21:44:23 +03:00
Andy Miller
a2d1cdfc13 rename hasChildren to countChildren
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-05-22 10:31:30 -06:00
Andy Miller
dcb0c490ba return count of children rather simple boolean
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-05-22 10:29:29 -06:00
Andy Miller
7687bdf751 vendor updates
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-05-20 11:56:16 -06:00
Andy Miller
85ef04abc4 handle images inside link excerpts
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-05-15 10:44:25 -06:00
Andy Miller
69ae59b933 prepare for rc.11 release
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-05-14 15:47:01 -06:00
Andy Miller
c5e538421e Merge branch 'develop' into 1.7
Signed-off-by: Andy Miller <rhuk@mac.com>

# Conflicts:
#	CHANGELOG.md
#	system/defines.php
2020-05-14 15:43:22 -06:00
Andy Miller
d7b1689047 Merge tag '1.6.25' into develop
Release 1.6.25
2020-05-14 15:41:45 -06:00
Andy Miller
bd8396ba6e Merge branch 'release/1.6.25' 2020-05-14 15:41:44 -06:00
Andy Miller
859aff590b Prepare for release
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-05-14 15:41:34 -06:00
Andy Miller
73d8a844d9 updated changelog
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-05-14 15:24:33 -06:00
Andy Miller
5db395799d Changelog updated
Signed-off-by: Andy Miller <rhuk@mac.com>
2020-05-14 15:17:02 -06:00
Andy Miller
ad1ecf21c3 Merge branch 'develop' into 1.7
Signed-off-by: Andy Miller <rhuk@mac.com>

# Conflicts:
#	system/blueprints/config/system.yaml
#	system/config/system.yaml
#	system/src/Grav/Common/Uri.php
2020-05-14 14:46:14 -06:00
Andy Miller
497ca2a5cd Advanced Customization options for HTTP_X_FORWARDED headers 2020-05-14 14:43:52 -06:00
Andy Miller
4e578ed95e Advanced Customization options for HTTP_X_FORWARDED headers 2020-05-14 14:32:07 -06:00
Andy Miller
8b258c8828 updated changelog 2020-05-14 12:36:50 -06:00
Andy Miller
148117edcb Support for native lazy loading of images #2910 2020-05-14 12:33:46 -06:00
Andy Miller
a57358f311 fix for & errors in URL 2020-05-14 10:47:36 -06:00
Matias Griese
ee0ad1126d Merge moved code 2020-05-12 20:35:04 +03:00
Matias Griese
2db0002ffd Merge branch '1.7' of github.com:getgrav/grav into feature/1.7-media
 Conflicts:
	system/src/Grav/Common/Page/Medium/ImageMedium.php
2020-05-12 20:34:26 +03:00
Matias Griese
a74e07c491 Docblock update 2020-05-08 13:24:10 +03:00
Matias Griese
8a12abf795 Flex: Added PageCollection::all() to mimick Pages class 2020-05-08 12:53:56 +03:00
Matias Griese
62c7cfcd10 Tighten vendor requirements 2020-05-08 10:30:11 +03:00
Matias Griese
9257d6982f Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	composer.json
	composer.lock
2020-05-08 10:21:51 +03:00
Jesse Donat
58da1cd489 Updates donatj/phpuseragentparser to 1.0.0 2020-05-08 10:18:31 +03:00
Andy Miller
69078aaf49 Fix for uppercase image extensions 2020-05-06 11:59:15 -06:00
Matias Griese
33aa0737a4 Improve docblocks 2020-05-06 13:01:47 +03:00
Matias Griese
8b47608cc0 Split Medium classes into traits, define Media interfaces 2020-05-06 12:23:49 +03:00
Matias Griese
d25014779d Fixed some phpstan issues 2020-05-05 19:35:09 +03:00
Matias Griese
5f0380f547 Fixed unit test 2020-05-05 19:04:56 +03:00
Andy Miller
bdbd392c6e Merge branch 'develop' into 1.7 2020-04-30 17:33:57 -06:00
Andy Miller
d53a594971 updated to 1.13 2020-04-30 17:33:41 -06:00
Andy Miller
2604da4b04 Merge branch 'develop' into 1.7 2020-04-30 16:23:47 -06:00
Djamil Legato
77bc8029bb Updated reference to github-release go app 2020-04-30 15:21:48 -07:00
Andy Miller
11e4a4cad8 Updated changelog to ref HttpClient inetgration 2020-04-30 14:48:47 -06:00
Andy Miller
e37f634a38 prepare for rc release 2020-04-30 14:46:14 -06:00
Matias Griese
0a18502c2c Merge remote-tracking branch 'origin/1.7' into 1.7 2020-04-30 22:16:24 +03:00
Matias Griese
b8c81c72e4 Copying Flex Page in admin does nothing 2020-04-30 22:16:16 +03:00
Andy Miller
37c2219b87 Updated changelog 2020-04-30 12:12:58 -06:00
Andy Miller
62f6f3910a Merge branch '1.7' of github.com:getgrav/grav into 1.7 2020-04-30 12:12:03 -06:00
Andy Miller
b450e6998e Added new Excerpts::processLinkHtml() method 2020-04-30 12:11:56 -06:00
Matias Griese
10800a0896 Merge remote-tracking branch 'origin/1.7' into 1.7 2020-04-30 16:30:23 +03:00
Matias Griese
cf61525130 Fixed saving non-numeric-prefix Flex Page changing to numeric-prefix 2020-04-30 16:30:14 +03:00
Andy Miller
24db65cd90 switch to Symfony HTTPClient (#2901) 2020-04-29 15:36:51 -06:00
Matias Griese
daf7e66ec3 Missing use 2020-04-29 22:11:18 +03:00
Matias Griese
18c9a1793e Merge remote-tracking branch 'origin/1.7' into 1.7 2020-04-29 21:41:34 +03:00
Matias Griese
2b0f235e23 Fixed Grav Pages admin with PHP intl extension enabled when using custom page order 2020-04-29 21:41:25 +03:00
Andy Miller
24eca428a6 Force response % to be 0 - 100 only 2020-04-28 17:37:21 -06:00
Andy Miller
677b0b7055 prepare for rc release 2020-04-27 16:10:47 -06:00
Andy Miller
10bd72ad51 Merge branch 'develop' into 1.7
# Conflicts:
#	CHANGELOG.md
#	system/defines.php
2020-04-27 16:09:53 -06:00
Andy Miller
4ddc98b2b6 Merge branch 'release/1.6.24' 2020-04-27 16:08:40 -06:00
Andy Miller
c1f18f5ecf Merge tag '1.6.24' into develop
Release v1.6.24
2020-04-27 16:08:40 -06:00
Andy Miller
d16a88e731 prepare for release 2020-04-27 16:08:28 -06:00
A----
39d0d640e6 Support for the X-Forwarded-Host (#2891) 2020-04-27 10:38:36 -06:00
Matias Griese
bfb55f0e1d Fixed broken Plugin::config() method 2020-04-27 19:21:02 +03:00
Matias Griese
44b07712d5 Move method inside file 2020-04-24 18:21:31 +03:00
Matias Griese
c8ae9e4dcc Fixed creating new Flex User with file storage 2020-04-24 18:19:21 +03:00
Matias Griese
52d1412e4c Fixed creating new Flex User with file storage 2020-04-24 16:18:03 +03:00
Matias Griese
b820130636 Fixed Flex Pages not updating empty content on save [#2890] 2020-04-24 14:30:26 +03:00
Matias Griese
7d4ecd4272 Changelog update 2020-04-24 13:40:25 +03:00
Matias Griese
f907b589e1 Merge remote-tracking branch 'origin/1.7' into 1.7 2020-04-24 13:30:19 +03:00
Matias Griese
a9d80d73d6 Fixed Flex Pages with 00.home page not having ordering set 2020-04-24 13:30:10 +03:00
Andy Miller
fe0ad9c9c2 Added support for webp (must be defined in media.yaml) #1168 2020-04-23 12:35:05 -06:00
Matias Griese
dfa8ce1ad4 Fixed Flex Page parent header.admin.children_display_order setting being ignored in Admin [#2881] 2020-04-23 15:51:58 +03:00
Matias Griese
1ea5dad728 Implemented missing Flex $pageCollection->batch() and $pageCollection->order() methods 2020-04-23 15:51:10 +03:00
Matias Griese
a2b81c9378 Added new plugin/theme blueprint options to upgrade guide 2020-04-23 11:24:33 +03:00
Matias Griese
01b0b1602b Fixed Pages::instances() returning null values when using Flex Pages [#2889] 2020-04-23 10:41:42 +03:00
Andy Miller
7d4aef0f3b Fixed Gregwar Image library using .jpeg for cached images, rather use .jpg 2020-04-22 17:31:31 -06:00
Andy Miller
5485893c8b fix PHP 7.4 Clockwork error 2020-04-20 10:32:55 -06:00
Andy Miller
124543f4a7 minor vendor updates 2020-04-20 10:22:11 -06:00
Matias Griese
e84488e126 Support symlinks when saving File 2020-04-17 10:06:04 +03:00
Matias Griese
ed2cf5174d Improved error response creation 2020-04-08 18:56:22 +03:00
Matias Griese
d0d0a6c224 Composer update 2020-04-07 20:23:25 +03:00
Matias Griese
b04f4f0001 Added Route::getBase() method 2020-04-07 20:23:10 +03:00
Matias Griese
c822920c36 Fixed user avatar creation for new Flex Users when using folder storage 2020-04-04 18:32:36 +03:00
ricardo118
e6354236c1 Using ->menu() over ->title() for Admin Pages (#2871) 2020-03-28 15:11:35 -06:00
Matias Griese
068948e1a2 Fixed response for .json being HTML 2020-03-25 15:08:00 +02:00
Matias Griese
f8bf7ba010 Fixed flex objects with integer keys not working [#2863] 2020-03-23 10:18:51 +02:00
Andy Miller
586105907d disable XDebug for Travis builds 2020-03-19 14:56:03 -06:00
Andy Miller
abd56ffee3 disable XDebug in Travis builds 2020-03-19 14:55:19 -06:00
Andy Miller
5678b4d067 Revert "created aliases for direct \Parsedown and \ParsedownExtra references"
This reverts commit 1ce0176ab6.
2020-03-19 14:32:57 -06:00
Andy Miller
1abb940318 Merge branch 'develop' into 1.7 2020-03-19 14:31:35 -06:00
Andy Miller
15af5bfae7 Merge branch 'release/1.6.23' 2020-03-19 14:27:39 -06:00
Andy Miller
d550a016a9 Merge tag '1.6.23' into develop
Release v1.6.23
2020-03-19 14:27:39 -06:00
Andy Miller
9c8df27bf1 Updated changelog 2020-03-19 14:27:25 -06:00
Andy Miller
1ce0176ab6 created aliases for direct \Parsedown and \ParsedownExtra references 2020-03-19 14:25:08 -06:00
Andy Miller
5bc46c49d2 prepare for rc.8 release 2020-03-19 12:50:09 -06:00
Andy Miller
292d45a7db minor composer updates 2020-03-19 12:47:56 -06:00
Andy Miller
2d375954ab Merge branch '1.7' of github.com:getgrav/grav into 1.7 2020-03-19 12:46:59 -06:00
Andy Miller
7ff6d2a828 Merge branch 'develop' into 1.7
# Conflicts:
#	composer.lock
#	system/defines.php
2020-03-19 12:46:47 -06:00
Andy Miller
ccac8a93bc Merge branch 'release/1.6.23' 2020-03-19 12:46:08 -06:00
Andy Miller
bcbfa0e32a Merge tag '1.6.23' into develop
Release v1.6.23
2020-03-19 12:46:08 -06:00
Andy Miller
453cd62a51 prepare for release 2020-03-19 12:45:58 -06:00
Andy Miller
56e1cbc78e updated composer to pickup toolbox 1.4.7 2020-03-19 12:39:36 -06:00
Matias Griese
58cd77449c Composer update 2020-03-19 20:28:45 +02:00
Andy Miller
db92c7b32d Upgraded jQuery to 3.4.1 - fixes #2859 2020-03-19 11:31:10 -06:00
Matias Griese
6ba54d2b3d Better Content-Encoding handling in Apache when content compression is disabled [#2619] 2020-03-19 11:31:24 +02:00
Andy Miller
987429208c Merge branch 'develop' into 1.7
# Conflicts:
#	CHANGELOG.md
#	composer.json
#	composer.lock
2020-03-18 17:34:58 -06:00
Andy Miller
2eae104c7a Fix for user reported CVE path-based open redirect 2020-03-18 17:32:46 -06:00
Andy Miller
6f2be2a2d2 Updated changelog 2020-03-18 11:50:23 -06:00
Andy Miller
e75960fee3 php 7.4 fixes for ParsedownExtra 2020-03-18 11:44:23 -06:00
Andy Miller
ec71ccdd0d moved parsedown 1.6 and parsedown-extra 0.7 into framework for fixes 2020-03-18 11:39:08 -06:00
Matias Griese
a5d47a36f0 Implemented missing Flex $page->move() method 2020-03-18 14:54:01 +02:00
Matias Griese
866b63530a Fixed some bugs in Flex root page methods 2020-03-18 14:06:04 +02:00
Matias Griese
57feac985c Update installer recommended versions 2020-03-18 11:52:33 +02:00
Andy Miller
c72c980ad2 fixes #2847 2020-03-13 11:15:15 -06:00
Matias Griese
790d29cbfb Fixed some more flex page inconsistencies with the old pages 2020-03-09 20:33:49 +02:00
Matias Griese
b9947f6984 Fixed bad default redirect code in ControllerResponseTrait::createRedirectResponse() 2020-03-09 19:31:44 +02:00
Matias Griese
79b7c3c38f Fixed some bugs in Flex root page methods 2020-03-09 19:29:56 +02:00
Matias Griese
a9df896538 Flex Pages: added has-children to getLevelListing() response 2020-03-09 10:17:11 +02:00
Andy Miller
ad713a1342 update changelog 2020-03-06 12:35:13 -07:00
Andy Miller
b58479cba6 Merge branch '1.7' of github.com:getgrav/grav into 1.7 2020-03-06 12:34:37 -07:00
Andy Miller
107341f33f Fast check to see if a dir has child dirs 2020-03-06 12:34:33 -07:00
Matias Griese
1ed0fcb379 Fixed creating new Flex User when folder storage has been selected 2020-03-06 15:42:33 +02:00
Matias Griese
63892782b4 Save memory when updating large flex indexes 2020-03-06 15:32:22 +02:00
Matias Griese
f5a480c72e Added MediaTrait::freeMedia() method to free media (and memory) 2020-03-06 13:41:03 +02:00
Matias Griese
d80a29b34d Flex storages: added support for custom key length 2020-03-06 10:21:49 +02:00
Andy Miller
5aefc60f2e prepare for rc.7 release 2020-03-05 13:29:11 -07:00
Matias Griese
683c1fe477 Improve dynamic config field 2020-03-05 22:27:30 +02:00
Matias Griese
6b4692f6c7 Minor code refactor 2020-03-05 21:44:50 +02:00
Matias Griese
1351f11551 Added field validation for array of lines 2020-03-05 21:43:53 +02:00
Matias Griese
58280b8d3f Updated UPGRADE-1.7.md 2020-03-05 21:43:14 +02:00
Matias Griese
652ca75f40 Composer update 2020-03-05 21:41:28 +02:00
Matias Griese
4b5f1590aa Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	composer.json
	composer.lock
	system/defines.php
2020-03-05 21:39:59 +02:00
Andy Miller
152c987ed4 Merge branch 'release/1.6.22' 2020-03-05 10:39:00 -07:00
Andy Miller
19311c7ec1 Merge tag '1.6.22' into develop
Release v1.6.22
2020-03-05 10:39:00 -07:00
Andy Miller
eec2d122cc prepare for release 2020-03-05 10:38:50 -07:00
Andy Miller
62f39fe39c Negotiation update to fix #2513 2020-03-04 10:57:43 -07:00
Andy Miller
394fce3825 composer update 2020-03-04 10:54:32 -07:00
Matias Griese
9c6934c0aa Changelog update 2020-03-03 21:03:26 +02:00
Matias Griese
993bc5170b Fixed changing page template in Flex Pages 2020-03-03 21:00:24 +02:00
Matias Griese
d285eda4c2 Fixed reordering flex pages 2020-03-03 20:17:44 +02:00
Matias Griese
0bcbe39521 User accounts/groups: Update title by values entered to the form 2020-03-03 13:17:01 +02:00
Matias Griese
78502b2026 Fixed fatal error on storing flex flash using new object without a key 2020-03-03 13:12:25 +02:00
Matias Griese
df0c806381 Added UserObject::onPrepareRegistration() method to initialize permissions 2020-03-03 11:42:26 +02:00
Matias Griese
d089a1d9c8 Regression: Fixed unchecking toggleable having no effect in Flex forms 2020-03-02 21:02:44 +02:00
Matias Griese
e41072c448 Merge branch 'develop' of github.com:getgrav/grav into 1.7 2020-03-02 10:54:04 +02:00
Matias Griese
36d18d531c Minor fix on CLI command 2020-02-27 14:36:04 +02:00
Matias Griese
fb18412fb3 Updated CLI commands to use the new methods to initialize Grav 2020-02-27 14:14:28 +02:00
Matias Griese
9a8c2b9aa5 Add CLI notes to UPGRADE-1.7.md 2020-02-26 18:37:16 +02:00
Matias Griese
678b39a170 Tiny fix in FlexDirectory::getDirectoryBlueprint() 2020-02-25 14:04:43 +02:00
Matias Griese
d03b0d92f4 * Fixed Blueprint::extend() and Blueprint::embed() not initializing dynamic properties 2020-02-25 13:11:56 +02:00
Matias Griese
11f9ba74e8 Added configuration option system.strict_mode.blueprint_compat to maintain old validation: strict behavior [#1273] 2020-02-24 20:24:25 +02:00
Matias Griese
f4f5bffcd9 Fixed broken ordering sometimes when saving/moving visible Flex Page, ordering being lost when saving modular Flex Page 2020-02-24 14:55:39 +02:00
Matias Griese
d763f9c63e Upgrade doc: Added mention of PageInterface and UserInterface 2020-02-24 09:37:15 +02:00
Matias Griese
44acd3a969 Improved Flex events 2020-02-20 08:58:11 +02:00
Matias Griese
4d7510dc11 Fixed Flex Pages having broken isFirst(), isLast(), prevSibling(), nextSibling() and adjacentSibling() 2020-02-19 12:58:23 +02:00
Matias Griese
f4a3efc3bc Update UPGRADE-1.7.md file 2020-02-19 11:20:33 +02:00
Rotzbua
40bc980084 [travis] add php 7.4 to test 2020-02-19 10:46:49 +02:00
Matias Griese
cf62d1dfa2 Update UPGRADE-1.7.md file 2020-02-18 13:19:54 +02:00
Matias Griese
378e59563d Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	system/src/Grav/Common/Data/BlueprintSchema.php
	tests/unit/Grav/Common/Data/BlueprintTest.php
	tests/unit/data/blueprints/strict.yaml
2020-02-18 13:15:03 +02:00
Matias Griese
1196e06dd6 Reverted validation: strict fix as it breaks sites, see [#1273] 2020-02-18 13:14:09 +02:00
Matias Griese
028bbf08c6 Grav 1.7 edition: Fixed validation: strict not working in blueprints [#1273] 2020-02-18 13:09:14 +02:00
Matias Griese
1d6a474b31 Added Session::regenerateId() method to properly prevent session fixation issues 2020-02-18 12:26:45 +02:00
Matias Griese
79e68eb5df Composer update 2020-02-17 15:17:12 +02:00
Matias Griese
13a1c7cfee Merge remote-tracking branch 'origin/1.7' into 1.7 2020-02-17 14:04:39 +02:00
Matias Griese
a3812141dd Fixed issues reported in phpstan 2020-02-17 14:04:31 +02:00
Andy Miller
5833f1e2da missing lang object 2020-02-14 15:21:32 -07:00
Andy Miller
88311f21cf Merge branch 'develop' into 1.7
# Conflicts:
#	system/src/Grav/Common/Page/Pages.php
2020-02-14 14:31:31 -07:00
Andy Miller
64b33d60f4 updated changelog 2020-02-14 08:36:04 -07:00
Andy Miller
8ccbcf0488 set baseRoute with activelang if available 2020-02-14 08:14:57 -07:00
Matias Griese
4fb485d1dd Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	CHANGELOG.md
2020-02-14 14:47:56 +02:00
Matias Griese
244c34a536 Page::getCacheKey() method should be public 2020-02-14 13:55:31 +02:00
Matias Griese
52a704e53d Fixed issue with search plugins not being able to switch between page translations 2020-02-14 13:55:06 +02:00
Andy Miller
5852ca4179 Better support for bin/grav server 2020-02-12 18:27:30 -07:00
Andy Miller
04820b8adc prepare for rc.6 release 2020-02-11 17:31:09 -07:00
Andy Miller
5be92b7a8a Merge branch 'develop' into 1.7
# Conflicts:
#	system/defines.php
2020-02-11 17:28:52 -07:00
Andy Miller
addecbbb22 Merge branch 'release/1.6.21' 2020-02-11 17:17:29 -07:00
Andy Miller
ec8bf9357a Merge tag '1.6.21' into develop
Release v1.6.21
2020-02-11 17:17:29 -07:00
Andy Miller
432b4b1e68 prepare for release 2020-02-11 17:17:20 -07:00
Andy Miller
ea5935b1d1 vendor updates 2020-02-11 17:15:07 -07:00
Andy Miller
65db6ea26c prepare for rc.6 release 2020-02-11 17:14:14 -07:00
Andy Miller
a77b5e69e7 updated vendors 2020-02-11 17:14:04 -07:00
Andy Miller
c9da739ea3 Merge branch 'develop' into 1.7
# Conflicts:
#	system/src/Grav/Common/Service/PagesServiceProvider.php
2020-02-11 17:10:48 -07:00
Andy Miller
fa3c9095c7 caught silly bug that broke routing 2020-02-11 17:09:54 -07:00
Matias Griese
9e4ee6ec91 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	system/src/Grav/Common/Service/PagesServiceProvider.php
2020-02-11 20:53:48 +02:00
Matias Griese
95442ef0b5 Fixed page initialization in CLI 2020-02-11 20:53:02 +02:00
Matias Griese
1f92ec715a Merge branch 'develop' of github.com:getgrav/grav into 1.7 2020-02-11 20:28:22 +02:00
Matias Griese
f81503dd70 Fixed page initialization in CLI 2020-02-11 20:27:57 +02:00
Matias Griese
0642e34a77 Post-merge fixes 2020-02-11 19:45:56 +02:00
Matias Griese
4e8e3e1865 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	system/src/Grav/Common/Processors/InitializeProcessor.php
2020-02-11 19:43:15 +02:00
Matias Griese
48170d2fa0 Fixed bin/plugin CLI calling $themes->init() way too early
Added `ConsoleCommand::setLanguage()` method to set language to be used from CLI
Added `ConsoleCommand::initializeGrav()` method to properly set up Grav instance to be used from CLI
Added `ConsoleCommand::initializePlugins()`method to properly set up all plugins to be used from CLI
Added `ConsoleCommand::initializeThemes()`method to properly set up current theme to be used from CLI
Added `ConsoleCommand::initializePages()` method to properly set up pages to be used from CLI
2020-02-11 19:41:28 +02:00
Matias Griese
8936e82e9b More bin/plugin improvements 2020-02-11 18:39:46 +02:00
Matias Griese
e0162d276d Improve Grav initialization 2020-02-11 14:55:05 +02:00
Matias Griese
14ff7fae33 CLI: Added $grav->initializeCli() method 2020-02-11 14:20:46 +02:00
Matias Griese
2c78b3efca Fixed Flex Page cache key not taking account active language 2020-02-11 12:09:27 +02:00
Matias Griese
5104bde6d4 Changelog update 2020-02-11 10:29:22 +02:00
Matias Griese
59f05ec8a2 Fixed bin/plugin initialization 2020-02-11 10:24:06 +02:00
Andy Miller
20047fbdaf Helpful stuff for bin/grav server 2020-02-10 14:16:44 -07:00
Matias Griese
81dd33c2e9 Fixed custom Flex directories in grav/plugin commands 2020-02-10 21:58:33 +02:00
Matias Griese
1cf390206e Regression: Fixed fatal error in cli/plugin command 2020-02-10 19:51:59 +02:00
Matias Griese
8169a6f3f8 Fixed regression in Grav 1.7 (#2154) 2020-02-10 17:43:40 +02:00
Matias Griese
2165ded8d4 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	system/src/Grav/Common/Page/Page.php
2020-02-10 17:42:21 +02:00
Matias Griese
ef80e28d1d Fixed regression (#2154) 2020-02-10 17:41:13 +02:00
Matias Griese
234abb38d9 Fixed FlexObject::triggerEvent() does not emit events [#2816] 2020-02-10 14:48:18 +02:00
Matias Griese
3a722ba44e Fixed encoding problems when PHP INI setting default_charset is not utf-8 (Grav 1.7 edition) [#2154] 2020-02-10 10:19:11 +02:00
Matias Griese
3f56c5a727 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	CHANGELOG.md
	system/src/Grav/Common/Page/Page.php
2020-02-10 10:14:55 +02:00
Matias Griese
e55b239536 Fixed encoding problems when PHP INI setting default_charset is not utf-8 [#2154] 2020-02-10 09:50:39 +02:00
Andreas Amos
c2f374f0db Truncator: encoding problems solves #2154
As I am not a developer somebody should review the change.
2020-02-10 09:28:13 +02:00
Florian Schlittenbauer
29c6a70611 [BUGFIX] .editorconfig not picking up .yml files (#2808) 2020-02-08 13:47:17 -07:00
Matias Griese
0bbbe96ae0 Regression: Fixed flex user index with folder storage 2020-02-07 12:27:02 +02:00
Matias Griese
40010f7ff7 Fixed deprecated debugbar method 2020-02-07 12:26:11 +02:00
Matias Griese
49aae0c50e Clockwork update 2020-02-07 12:25:38 +02:00
Matias Griese
5ea7ec1013 Flex Directory: Implemented customizable configuration 2020-02-06 16:53:54 +02:00
Matias Griese
75ee0670f6 Fixed saving Flex configuration with ignored values becoming null 2020-02-06 16:52:52 +02:00
Matias Griese
6e327880a3 Flex Storages: Added support for renaming directory entries 2020-02-06 11:54:28 +02:00
Matias Griese
ceaa20d5d4 Flex SimpleStorage: added support for prefix (keeps items under nested array) 2020-02-06 11:52:51 +02:00
Matias Griese
10589e7940 Flex SimpleStorage: added support for prefix (keeps items under nested array) 2020-02-06 10:34:39 +02:00
Matias Griese
5e9a7a112a Plugins & Themes: Call $plugin->autoload() and $theme->autoload() automatically when object gets initialized 2020-02-04 18:41:24 +02:00
Matias Griese
a672a765b4 Remove deprecated RocketTheme\Toolbox\Event\EventSubscriberInterface from Plugin, Themes 2020-02-04 17:58:58 +02:00
Matias Griese
4794097992 Phpstan rules update 2020-02-04 14:24:41 +02:00
Matias Griese
f012d2d13a Regression: Fixed bad method call in FlexDirectory::getAuthorizeRule() 2020-02-04 10:59:26 +02:00
Matias Griese
d0a22ad416 Regression: fatal error in blueprints [#2811] 2020-02-04 10:50:59 +02:00
Andy Miller
6dee662b40 prepare for rc.5 release 2020-02-03 12:36:15 -07:00
Matias Griese
1d8b87e33f Fixed Flex Pages allowing root page to be deleted 2020-02-03 21:16:38 +02:00
Matias Griese
5db91538c6 Changelog update (version) 2020-02-03 20:53:50 +02:00
Matias Griese
7d6fb9eee6 Changelog update 2020-02-03 20:51:57 +02:00
Matias Griese
694b14511d Save user: clear flex cache even if not using flex 2020-02-03 20:47:59 +02:00
Matias Griese
bbab97137f Fixed accidental PHP 7.3 constant 2020-02-03 20:39:43 +02:00
Andy Miller
3408db0c9b typo in changelog date 2020-02-03 10:14:53 -07:00
Andy Miller
1bbf8dffeb prepare for rc.4 release 2020-02-03 10:10:26 -07:00
Andy Miller
887b34dd31 Use toolbox ~1.5 2020-02-03 10:09:22 -07:00
Andy Miller
0f5166d690 Merge branch 'develop' into 1.7
# Conflicts:
#	system/defines.php
2020-02-03 10:06:02 -07:00
Andy Miller
e507300134 Merge branch 'release/1.6.20' 2020-02-03 10:04:38 -07:00
Andy Miller
e38c5cac4a Merge tag '1.6.20' into develop
Release v1.6.20
2020-02-03 10:04:38 -07:00
Andy Miller
463a55897c prepare for release 2020-02-03 10:04:26 -07:00
Andy Miller
192cc4eb9b minor symfony updates 2020-02-03 10:00:40 -07:00
Matias Griese
e5fe28b720 Added support for legacy access settings from admin 2020-02-03 13:20:33 +02:00
Matias Griese
defc70e656 Fixed some admin related ACL issues 2020-02-03 12:53:41 +02:00
Matias Griese
d589dbcbea Fix phpstan issues 2020-02-03 11:19:22 +02:00
Matias Griese
3ed8620d7a Remove publish from CRUD for now 2020-01-31 22:03:05 +02:00
Matias Griese
bc5501eecb Moved PluginsLoadedEvent into Plugins::init() call for better backwards compatibility 2020-01-31 12:23:27 +02:00
Matias Griese
2ae6bac390 Fixed loading group permissions if saved in CRUD mode 2020-01-31 11:55:18 +02:00
Matias Griese
118621cb8b Finish root page blueprints 2020-01-31 00:10:22 +02:00
Matias Griese
3118ed5f56 Added support for security@: or: [admin.super, admin.pages] in blueprints (nested AND/OR mode support) 2020-01-31 00:09:58 +02:00
Matias Griese
ac17fc8efd Minor code cleanup 2020-01-30 23:32:17 +02:00
Matias Griese
85c1ec67c2 Fixed filtering ignored (eg. security@: admin.super) fields and Flex Objects losing data on save 2020-01-30 23:31:32 +02:00
Matias Griese
959a2ec379 Clockwork fixes (beta) 2020-01-30 19:23:40 +02:00
Matias Griese
1372c9b1cc Renamed flex types for simplicity 2020-01-30 11:11:55 +02:00
Matias Griese
67dd5f256d Fixed unit test for parsedown link &amp; 2020-01-30 09:15:26 +02:00
Matias Griese
2c3ced3fba Merge branch 'develop' of github.com:getgrav/grav into 1.7 2020-01-30 09:11:53 +02:00
Matias Griese
a592f6fe0b Fixed unit test for Uri::currentPage(): it only returns integers now 2020-01-30 09:11:19 +02:00
Matias Griese
9123cb7796 Flex Pages: Allow only users with admin.configuration.pages to access page permissions 2020-01-29 22:39:53 +02:00
Matias Griese
df09c01a25 Minor improvement on please install flex admin pages 2020-01-29 20:28:37 +02:00
Matias Griese
b97301d82d Merge branch 'develop' of github.com:getgrav/grav into 1.7 2020-01-29 19:35:06 +02:00
Matias Griese
6b887a98cd Fixed site.metadata saving issues [#2615] 2020-01-29 18:55:44 +02:00
Matias Griese
18a26b42e2 Fixed Assets::addInlineJs() parameter type mismatch between v1.5 and v1.6 [#2659] 2020-01-29 18:40:58 +02:00
Matias Griese
85de4ed0e3 Fixed regression (odd use case) 2020-01-29 15:08:58 +02:00
Matias Griese
80125ce298 Fixed system.translations: false breaking Inflector methods 2020-01-29 14:58:50 +02:00
Matias Griese
27542d4fa4 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	composer.json
	composer.lock
2020-01-29 13:24:04 +02:00
Matias Griese
a47e446b60 Composer update (and lock rockettheme/toolbox to 1.4.x) 2020-01-29 13:23:28 +02:00
Matias Griese
471fb4da6f Changelog update 2020-01-29 11:50:45 +02:00
Matias Griese
a2a6888982 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	system/src/Grav/Common/Data/Data.php
2020-01-29 11:49:57 +02:00
Matias Griese
864a938f8d Fixed Data::filter() removing empty fields (such as empty list) by default [#2805] 2020-01-29 11:48:59 +02:00
Matias Griese
bdd30238bf Fixed fatal error with non-integer page param value, Grav 1.7 [#2803] 2020-01-29 11:35:19 +02:00
Matias Griese
528ce7131e Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	system/src/Grav/Common/Page/Page.php
2020-01-29 11:34:13 +02:00
Matias Griese
53bd1641bb Fixed fatal error with non-integer page param value [#2803] 2020-01-29 11:32:40 +02:00
Matias Griese
b10725cebc Fixed misleading 'Show sensitive data' configuration option wording 2020-01-29 11:18:14 +02:00
Djamil Legato
719cc5466a Removed validation for permissions groups 2020-01-28 17:10:55 -08:00
Djamil Legato
e373cf18e0 Fixed groups field 2020-01-28 15:17:40 -08:00
Matias Griese
7ef5fa5630 Validation: added new filter option for array keys 2020-01-28 22:23:49 +02:00
Matias Griese
d139b0388a Fixed bad result on testing isPage() when using Flex Pages 2020-01-28 20:57:54 +02:00
Matias Griese
014ab5d7ee Fixed PageStorage with multiple page locations 2020-01-28 14:49:34 +02:00
Matias Griese
64f3949967 Fixed Route instance in multi-site setups 2020-01-28 14:49:02 +02:00
Matias Griese
7913edd34b Improve Acl\Actions 2020-01-28 12:34:10 +02:00
Djamil Legato
2136dc34fe fixed new permissions field title/desc 2020-01-27 13:05:36 -08:00
Matias Griese
c559b42151 User/group authorize is session based 2020-01-27 19:59:54 +02:00
Matias Griese
a33d974c74 Changelog update 2020-01-27 15:44:05 +02:00
Matias Griese
ede7af6b9d Flex: Control authorization from the directory 2020-01-27 15:35:07 +02:00
Matias Griese
5cd4bf5c98 Flex: Fixed event firing too early 2020-01-27 14:24:48 +02:00
Matias Griese
045fae9b6f Flex: Blueprint updates 2020-01-27 14:03:56 +02:00
Matias Griese
bbd46644e0 Added flatten_array filter to form field validation 2020-01-24 22:10:48 +02:00
Matias Griese
3e67c0a878 Fixed Cannot use a scalar value as an array error in Utils::arrayUnflattenDotNotation(), ignore nested structure instead 2020-01-24 22:08:53 +02:00
Matias Griese
924f01158d Composer update 2020-01-23 22:29:14 +02:00
Djamil Legato
8d5dd60fb4 Added multi data_type for acl_picker (previously page_access). added dummy group2 for development 2020-01-22 14:26:39 -08:00
Djamil Legato
958ea586ec Removed old permissions reference 2020-01-22 12:46:30 -08:00
Matias Griese
5f6cc58186 Merge remote-tracking branch 'origin/1.7' into 1.7 2020-01-22 10:26:44 +02:00
Matias Griese
426f59e41a Added support for Flex Directory specific configuration 2020-01-22 10:26:34 +02:00
Matias Griese
fff9fa0ca5 Added Blueprint::getDefaultValue() method 2020-01-22 10:13:40 +02:00
Andy Miller
57aced69cf vendor updates 2020-01-21 17:30:34 -07:00
Matias Griese
afac6baa11 Twig url() takes now third parameter (true) to return URL on non-existing file instead of returning false 2020-01-21 22:35:02 +02:00
Matias Griese
b4630aeb38 Fixed Blueprint::filter() returning null instead of array if there is nothing to return 2020-01-21 21:38:36 +02:00
Matias Griese
cac02663e6 Fixed twig url() failing if stream has extra slash in it (e.g. user:///data) 2020-01-21 21:33:32 +02:00
Matias Griese
e59f1e5a82 Improve FlexFormFlash 2020-01-21 11:24:42 +02:00
Matias Griese
90d077d7c2 Start using $grav['flex'] 2020-01-21 10:09:48 +02:00
Matias Griese
a77d6bcfa0 Event improvements 2020-01-21 10:08:02 +02:00
Matias Griese
bee5abfbf0 Added $grav['flex'] to access all registered Flex Directories 2020-01-21 10:06:58 +02:00
Matias Griese
664447a67b Added Flex cache configuration options 2020-01-21 10:02:29 +02:00
Vladimir Tikunov
b850443090 Updated the parameter type in getCleanedHTML (#2793)
Co-authored-by: Andy Miller <1084697+rhukster@users.noreply.github.com>
2020-01-17 12:11:39 -07:00
Matias Griese
98d0c760a9 Flex types configure: use default values from the plugin config 2020-01-17 15:26:18 +02:00
Matias Griese
76bb7fe4af Added support for loading flex type configuration 2020-01-17 15:07:57 +02:00
Matias Griese
26584b9909 Update Flex type blueprints 2020-01-17 00:50:05 +02:00
Matias Griese
6a9724dd3e Fixed Data::filter() removing empty fields (such as empty list) by default 2020-01-16 20:56:13 +02:00
Matias Griese
c7a41ddfda Use spaceship operator in user sort functions 2020-01-16 19:22:24 +02:00
Matias Griese
2df05dd16d Set permissions for all flex types 2020-01-16 15:18:42 +02:00
Matias Griese
50c2c55554 Added Plugin::__debugInfo() and Plugins::__debugInfo() 2020-01-16 14:51:55 +02:00
Matias Griese
d72b99c5b2 Added PluginsLoadedEvent which triggers after plugins have been loaded but not yet initialized 2020-01-16 14:48:16 +02:00
Matias Griese
5adadfdb40 Added SessionStartEvent which triggers when session is started 2020-01-16 14:44:52 +02:00
Matias Griese
7574195ca2 Added support for custom permissions in configuration 2020-01-15 20:04:08 +02:00
Matias Griese
5b5ef98495 Implemented Permissions::hasAction() method 2020-01-15 16:10:36 +02:00
Matias Griese
226e5350b7 Improve handling user account type changes 2020-01-15 14:30:44 +02:00
Matias Griese
b9b83c3b16 Rename Flex Accounts to Flex User Accounts 2020-01-15 14:04:45 +02:00
Matias Griese
971fb2b19a Grav 1.7: Require Flex-Objects Plugin to edit Flex Accounts 2020-01-15 13:07:26 +02:00
Matias Griese
378b60783c Grav 1.7: Fixed Flex Pages unserialize issues if Flex-Objects Plugin has not been installed 2020-01-15 11:55:40 +02:00
Matias Griese
d901558481 Flex Pages: Added methods to track acl inheritance 2020-01-14 20:58:40 +02:00
Matias Griese
1515ee9193 Access: Added inheritance 2020-01-14 20:57:25 +02:00
Matias Griese
9c34471800 Composer update 2020-01-14 18:49:44 +02:00
Matias Griese
6f16f6f134 Merge branch 'develop' of github.com:getgrav/grav into 1.7 2020-01-14 17:54:46 +02:00
Matias Griese
7c0dcd6808 Fixed special case [#1273] 2020-01-14 17:54:19 +02:00
Matias Griese
33790dbb33 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	system/src/Grav/Common/Data/BlueprintSchema.php
	system/src/Grav/Common/Data/Validation.php
	system/src/Grav/Framework/Session/Session.php
2020-01-14 15:11:50 +02:00
Matias Griese
ea8b7b7a3a Oops, changelog update [#1273] 2020-01-14 14:48:02 +02:00
Matias Griese
8714aa9202 Fixed validation: strict not working in blueprints [#1273] 2020-01-14 14:46:19 +02:00
Matias Griese
3731d61b78 Fixed checkbox field not being saved, requires also Form v4.0.2 [#1225] 2020-01-14 11:40:39 +02:00
Matias Griese
927e99fcb3 Minor flex blueprint update 2020-01-14 11:35:35 +02:00
Djamil Legato
ef6ec100f2 Added custom field page_access for new access selector 2020-01-10 15:17:36 -08:00
Matias Griese
386a39e274 Fixed Permissions::getAccess() when there's no ACL to be passed 2020-01-10 20:53:38 +02:00
Matias Griese
38d3b5cf43 Added support for more advanced ACL 2020-01-10 20:25:27 +02:00
Matias Griese
5718299210 Added $grav->dispatchEvent() method for PSR-14 events 2020-01-10 20:23:39 +02:00
Matias Griese
2e64d560b1 Fixed twig {{ false|string }} to return '0' instead of '' 2020-01-10 13:18:14 +02:00
Djamil Legato
82270e0c13 Initial custom field based off of permissions field 2020-01-09 17:04:28 -08:00
Matias Griese
ca22b56148 Rework security tab for pages 2020-01-08 20:25:57 +02:00
Matias Griese
eca3896bfc Improve array of bools filtering 2020-01-08 16:03:26 +02:00
Matias Griese
1c2c38545a Minor improvement against latest admin (user/group permissions) 2020-01-08 15:43:36 +02:00
Matias Griese
464e1fc6c7 Added flex page permissions to the blueprints (for admin) 2020-01-08 15:37:30 +02:00
Matias Griese
02b8499b0c Blueprint validation: Added validate: value_type: bool|int|float|string|trim to array to filter all the values inside the array 2020-01-08 15:34:20 +02:00
thex
490662152a added twig extension for preg_match and preg_split 2020-01-08 12:19:22 +01:00
Matias Griese
b5caa41386 Fixed ignore_empty: true not removing empty values in blueprint filtering 2020-01-08 12:33:05 +02:00
Matias Griese
a8ff0e3892 Fixed new Flex Users being stored with wrong filename, login issues [#2785] 2020-01-08 10:07:20 +02:00
Andy Miller
ebab884441 updated changelog 2020-01-07 12:05:43 -07:00
Andy Miller
2c95992eb1 Updated vendor 2020-01-06 17:10:16 -07:00
Matias Griese
1666774a1e Composer update 2020-01-06 17:20:04 +02:00
Matias Griese
3cc0dc08db Fixed PHP 7.4 compatibility issue with Stream 2020-01-06 15:05:48 +02:00
Matias Griese
f9bcf48700 Fixed blueprint loading issues [#2782] 2020-01-06 13:43:06 +02:00
Andy Miller
8a618fee64 prepare for rc.3 release 2020-01-02 16:54:53 -07:00
Andy Miller
a6f7637134 Updated copyright dates to 2020 2020-01-02 16:54:14 -07:00
Andy Miller
f04ef0b359 updated lock file with latest 2020-01-02 16:51:02 -07:00
Matias Griese
608457bd01 Fixed Flex object issues in Windows [#2773] 2020-01-02 15:29:17 +02:00
Matias Griese
508cf1ffdb Added option to ignore parent page ACL 2020-01-02 15:01:54 +02:00
Matias Griese
6f38933e81 Flex Pages: Added support for raw root editing 2019-12-20 20:59:47 +02:00
Matias Griese
8ff2ca4c5a Never translate root page 2019-12-20 20:18:48 +02:00
Matias Griese
6a0d5c69ab Display permissions tab only in Flex Pages 2019-12-20 15:43:49 +02:00
Matias Griese
2747877195 Added permissions tab to pages admin 2019-12-20 15:38:05 +02:00
Matias Griese
584b33d41a Added support for creating / updating root page 2019-12-20 14:56:45 +02:00
Matias Griese
f4330ff77d Use Flex Root page in frontend as well 2019-12-20 12:24:28 +02:00
Matias Griese
60c43184cb Added root page support for Flex Pages 2019-12-20 11:34:35 +02:00
Matias Griese
2fe2eb9f21 Composer update 2019-12-20 09:59:43 +02:00
Matias Griese
04ee52d1ad Added option to ignore parent page ACL 2019-12-19 14:19:06 +02:00
Matias Griese
99e047171f Fixed parent authorization with guest user 2019-12-19 13:51:10 +02:00
Matias Griese
ddc8668837 Fixed authorization with guest user 2019-12-19 13:48:34 +02:00
Matias Griese
e568b992a9 Fixed parent authorization for page author, update location of page settings 2019-12-19 13:15:58 +02:00
Matias Griese
23221a8f8f Added support against authorizing parent pages 2019-12-19 12:31:21 +02:00
Matias Griese
4eed10cd4b Move common logic from PageAuthorsTrait to Access 2019-12-19 12:15:33 +02:00
Matias Griese
da02c0992a Added method to get calculated value from Access class 2019-12-18 20:57:56 +02:00
Matias Griese
2437112f3c Fixed checking ACL for another user in a Flex Object or Directory, added support getting Flex page permissions 2019-12-18 18:23:50 +02:00
Matias Griese
276b4bb0ab Twig filter |yaml_serialize: added support for array-like objects 2019-12-18 18:11:51 +02:00
Matias Griese
acf271344d Twig filter |yaml_serialize: added support for JsonSerializable objects 2019-12-18 12:38:11 +02:00
Matias Griese
7b5d6f7031 Fixed session not restarting if user was invalid (downgrading from Grav 1.7) 2019-12-13 13:13:52 +02:00
Andy Miller
767ce29e39 minor update 2019-12-11 21:15:32 -07:00
Matias Griese
daad16ef1b Composer update 2019-12-10 19:15:54 +02:00
Matias Griese
1718135614 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	CHANGELOG.md
2019-12-10 19:09:02 +02:00
Matias Griese
a269d49392 Fixed filesystem iterator calls with non-existing folders 2019-12-10 18:59:58 +02:00
Matias Griese
3a8775f545 Fixed session cookie is being set twice in the HTTP header [#2745] 2019-12-10 16:06:54 +02:00
Matias Griese
842dc0d49e Incorrect routing caused by str_replace() in Uri::init() [#2754] 2019-12-10 14:52:16 +02:00
Matias Griese
3f9ed2f344 Flex User: do not use deprecated method 2019-12-10 12:46:46 +02:00
Andy Miller
5640baa175 Added a Remote Remote\Package::getChangelog() method 2019-12-09 10:59:35 -07:00
Matias Griese
f102a8cb3d Merge remote-tracking branch 'origin/1.7' into 1.7 2019-12-09 12:53:27 +02:00
Matias Griese
a65c468e81 Minor update on Twig tags 2019-12-09 12:53:17 +02:00
Andy Miller
4cc3f44caa updated vendor libs 2019-12-08 10:40:14 -07:00
Matias Griese
8afe004a7f Improve plugin testing 2019-12-06 18:49:10 +02:00
Matias Griese
185e9b5272 Fixed error on page initialization [#2753] 2019-12-06 18:48:55 +02:00
Andy Miller
78b76cf023 prepare for rc.2 release 2019-12-04 16:48:07 -07:00
Andy Miller
3606d3d0bd prepare for rc.2 release 2019-12-04 16:33:21 -07:00
Andy Miller
3be95e752f Merge branch 'develop' into 1.7
# Conflicts:
#	system/defines.php
#	system/src/Grav/Common/Page/Pages.php
2019-12-04 16:32:45 -07:00
Andy Miller
1532de8f20 Merge branch 'release/1.6.19' 2019-12-04 16:31:16 -07:00
Andy Miller
95bd217c3c Merge tag '1.6.19' into develop
Release 1.6.18
2019-12-04 16:31:16 -07:00
Andy Miller
f633c921cc prepare for release 2019-12-04 16:31:04 -07:00
Andy Miller
e8c79ffd97 Sync with 1.7 approach 2019-12-04 16:27:47 -07:00
Andy Miller
e842eb9d9e Better fix for #2750 2019-12-04 16:11:08 -07:00
Matias Griese
71bdb5e25e Frontend optimizations for Flex Pages 2019-12-04 21:03:58 +02:00
Matias Griese
b58f36b5af Fixed caching bug in Flex (regression) 2019-12-04 15:08:43 +02:00
Matias Griese
dc20f4f32a Optimize FlexDirectory::loadIndex() calls 2019-12-04 14:43:06 +02:00
Matias Griese
c765fff4b3 Minor phpstan update 2019-12-04 12:45:34 +02:00
Matias Griese
032f5654a4 Fixed Package::jsonSerialize() to return array 2019-12-04 11:16:10 +02:00
Matias Griese
0e01e52cac Some minor phpstan fixes 2019-12-04 11:15:09 +02:00
Matias Griese
37b2c97dc1 Grav Pages: Fixed search 2019-12-04 11:06:08 +02:00
Matias Griese
c61b07febb Flex pages: Fixed empty folder filter 2019-12-04 10:30:27 +02:00
Matias Griese
620fd7ed88 Added missing docblocks, fixed some typehints 2019-12-04 10:25:24 +02:00
Matias Griese
b314ea13aa Merge branch 'develop' of github.com:getgrav/grav into 1.7 2019-12-04 09:55:35 +02:00
Matias Griese
3e8572dbe9 Merge remote-tracking branch 'origin/develop' into develop 2019-12-03 20:26:50 +02:00
Matias Griese
5ba7b4154c Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	CHANGELOG.md
	system/src/Grav/Common/Page/Pages.php
2019-12-03 20:21:22 +02:00
Matias Griese
ad8d0a2ab1 Updated plugins phpstan to work with Gantry5 plugin 2019-12-03 19:29:04 +02:00
Andy Miller
4a1e16449d Updated changelog 2019-12-03 09:03:07 -07:00
Andy Miller
41d31cb5ea PHP 7.4 fix for #2750 2019-12-03 09:00:07 -07:00
Matias Griese
909e2cbf89 Catch PHP 7.4 deprecation messages and report them in debugbar instead of throwing fatal error 2019-12-03 13:06:44 +02:00
Matias Griese
1290503895 Fixed multiple issues when there are no pages in the site 2019-12-03 12:55:24 +02:00
Matias Griese
a204b24d78 Fixed fatal error when calling {{ grav.undefined }} 2019-12-03 12:47:01 +02:00
Matias Griese
8be5a2182b Fixed fatal error when calling {{ grav.undefined }} 2019-12-03 11:58:09 +02:00
Matias Griese
ee30694cf1 Flex Pages: Fixed filters being marked as hit when no filtering is applied 2019-12-03 11:41:56 +02:00
Matias Griese
37a9a30187 Minor rework to fix phpstan level 7 issue in MediaTrait::getMedia() 2019-12-03 11:00:06 +02:00
Matias Griese
de34910a6d Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	system/defines.php
	system/src/Grav/Framework/File/Formatter/CsvFormatter.php
2019-12-02 20:14:28 +02:00
Matias Griese
86c969998f Merge remote-tracking branch 'origin/develop' into develop 2019-12-02 20:12:59 +02:00
Matias Griese
158874039a Fixed bad str_replace('...', null) parameter in CSVFormatter 2019-12-02 20:11:15 +02:00
Matias Griese
175cebc4a1 Fixed phpstan level 7 issue in PageLegacyTrait 2019-12-02 20:05:50 +02:00
Matias Griese
20aba0fd7c Fixed bad str_replace('...', null) parameter in CSVFormatter 2019-12-02 20:05:07 +02:00
Matias Griese
efc2da90d3 Composer update 2019-12-02 19:43:39 +02:00
Matias Griese
12ad800d1f Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	composer.lock
	system/src/Grav/Common/Page/Pages.php
2019-12-02 19:38:26 +02:00
Andy Miller
de6c35f4ab Merge branch 'release/1.6.18' 2019-12-02 10:33:06 -07:00
Andy Miller
46816a74e9 Merge tag '1.6.18' into develop
Release v1.6.18
2019-12-02 10:33:06 -07:00
Andy Miller
1111c3d1b1 prepare for release 2019-12-02 10:32:06 -07:00
Andy Miller
e919685ad3 minor vendor update 2019-12-02 10:29:41 -07:00
Andy Miller
238ba9b9b4 PHP 7.4 fix for Pages::buildSort() 2019-12-02 08:53:17 -07:00
Andy Miller
1d966a0c92 Vendor lib updates 2019-12-02 08:41:32 -07:00
Matias Griese
3e87b21a8e Flex page filtering improvements 2019-11-28 12:21:02 +02:00
Matias Griese
21309f1451 Flex pages: more logic for filtering counts 2019-11-27 21:59:57 +02:00
Matias Griese
225644f82b Making Djamil happy 2019-11-27 21:45:59 +02:00
Matias Griese
285fffc7df Flex Page admin: added selected if filters match 2019-11-27 21:42:43 +02:00
Matias Griese
7c760387f3 Grav Pages: Optimize filters 2019-11-27 13:49:57 +02:00
Matias Griese
94ff668044 Grav Pages: Admin filtering fixes 2019-11-27 13:31:37 +02:00
Matias Griese
270b1191f5 Improve FlexAuthorizeTrait, improve docblocks for Flex 2019-11-22 13:24:40 +02:00
Matias Griese
6208c516c2 Fixed logged in user being able to delete his own account from admin account manager 2019-11-22 12:04:27 +02:00
Matias Griese
b695c9591e Changed FlexAuthorizeInterface::isAuthorized() to return null having the same meaning as false if access is denied because of no matching rule 2019-11-22 12:04:04 +02:00
Matias Griese
911da0f34f Composer update 2019-11-22 11:56:59 +02:00
Matias Griese
14c2e257a0 Reverted $object->getStorageKey() interface as it was not a good idea, added getMasterKey() for pages 2019-11-21 22:35:56 +02:00
Matias Griese
52ec745ed0 Upgrade doc, upper case titles 2019-11-21 15:15:08 +02:00
Matias Griese
8f42dc3c33 Updated Grav 1.7 upgrade docs 2019-11-21 14:10:47 +02:00
Matias Griese
45530114a7 Added upgrade docs 2019-11-21 12:48:24 +02:00
Matias Griese
5b8baed0bc Optimized Flex Pages collection filtering 2019-11-21 12:48:02 +02:00
Matias Griese
936e95a146 Updated Symfony Components to 4.4 2019-11-21 10:24:12 +02:00
Matias Griese
61a3f3f7c1 Rename modular to module in flex pages 2019-11-20 10:21:37 +02:00
Matias Griese
b3545ccb8b Translations: rename MODULAR to MODULE everywhere 2019-11-20 09:52:50 +02:00
Matias Griese
d217f1e4fb Assets regression 2019-11-19 16:35:01 +02:00
Andy Miller
bb373061ae Merge branch '1.7' of github.com:getgrav/grav into 1.7 2019-11-18 13:48:07 -07:00
Andy Miller
c65cb83348 Output the current username that Scheduler is using if crontab not setup 2019-11-18 13:48:03 -07:00
Jacob Peck
e3a6436031 Fix rewrite rule for lighttpd config (#2721)
Just plain doesn't work without this!  Was probably omitted in error.
2019-11-18 06:13:51 -07:00
Matias Griese
f56a5f0ad6 Added page specific permissions for Flex Pages 2019-11-18 13:24:58 +02:00
Matias Griese
9044721c89 Minor bug fixes 2019-11-18 12:05:31 +02:00
Matias Griese
ce5729ba53 Some phpstan fixes 2019-11-18 11:21:25 +02:00
Matias Griese
fc70a50fd6 Fixed regression: Installer->setZip(null) 2019-11-18 10:57:17 +02:00
Matias Griese
a8d61cb5de Add some better type checks 2019-11-18 10:56:32 +02:00
Matias Griese
d8af66cfd7 Remove some unused variables 2019-11-18 10:55:40 +02:00
Matias Griese
1aa69e61ac Add a lot of missing docblocks (variables) 2019-11-18 10:53:21 +02:00
Matias Griese
be3ecf1377 DEPRECATED $page->modular() in favor of $page->isModule() for better readability 2019-11-15 21:15:38 +02:00
Matias Griese
571674a4f5 Fixed phpstan issues in all code up to level 3 2019-11-15 14:03:52 +02:00
Matias Griese
a06520337f Fully comply phpstan level2! 2019-11-15 13:21:20 +02:00
Matias Griese
bf2b7dcf7b Rename Flex Object classes (changed my mind) 2019-11-15 13:05:51 +02:00
Matias Griese
86faceb94f Deprecated Grav\Common\User\Group in favor of $grav['user_groups'], which contains Flex UserGroup collection 2019-11-15 12:27:55 +02:00
Matias Griese
963e365da4 Imroved UserIndex:find() to only search user if query isn't empty 2019-11-15 12:08:30 +02:00
Matias Griese
4332ac35db Moved all Flex classes under Grav\Common\Flex 2019-11-15 11:57:22 +02:00
Matias Griese
7e5d58f94b Minor bug fixes 2019-11-15 09:04:44 +02:00
Matias Griese
6b3b6106bf Code quality improvements 2019-11-15 09:03:47 +02:00
Matias Griese
f0c12e6246 Fixed a few type hints 2019-11-15 09:00:48 +02:00
Matias Griese
741934b1da Flex User/Group: Cache authorize() calls 2019-11-14 21:57:06 +02:00
Matias Griese
35e7bfe506 Multiple small bug fixes / code quality improvements to Flex Pages 2019-11-14 15:13:52 +02:00
Matias Griese
dcc2ddfdb8 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	CHANGELOG.md
2019-11-14 12:22:50 +02:00
Matias Griese
f59441eb55 Fixed fatal error when $page->id() is null [#2731] 2019-11-14 12:21:28 +02:00
Matias Griese
9cb6ddf742 Minor bug fix to Access class where there are no ACL rules 2019-11-13 21:38:08 +02:00
Matias Griese
035a84b55d Fixed couple of minor flex page bugs 2019-11-13 16:20:24 +02:00
Matias Griese
d892343e57 Improve MediumFactory::fromUploadedFile() method 2019-11-13 15:51:49 +02:00
Matias Griese
aaa3976e5a Minor bug fixes/improvements on $user->authorize() 2019-11-13 15:17:37 +02:00
Matias Griese
0d4afd7a37 Code style fixes 2019-11-13 15:10:07 +02:00
Matias Griese
a3a8976fdf Changed UserInterface::authorize() to return null having the same meaning as false if access is denied because of no matching rule 2019-11-13 11:40:36 +02:00
Matias Griese
4edb1ca61b Improved twig authorize() function to work better with nested rule parameters 2019-11-13 11:36:10 +02:00
Matias Griese
d6374f259a Improved user and group ACL to support deny permissions (Flex Users only) 2019-11-13 11:35:41 +02:00
Matias Griese
7b4f40d3b1 Updated blueprint for Flex Pages 2019-11-13 11:22:01 +02:00
Matias Griese
9c4eb549b7 Added missing system.include_default_lang_file_extension configuration option 2019-11-13 11:17:14 +02:00
Matias Griese
c380fb638b Added Utils::isAssoc() and Utils::isNegative() helper methods 2019-11-13 11:16:25 +02:00
Matias Griese
908e993727 Flex Pages: Implemented recursive filterBy() 2019-11-13 11:14:29 +02:00
Matias Griese
4128864e39 Composer update 2019-11-13 09:08:57 +02:00
Matias Griese
304f800018 Improved twig |array filter to work with iterators and objects with toArray() method 2019-11-12 12:41:45 +02:00
Xaver Maierhofer
fcc0c5e345 Correct download argument annotation (#2727) 2019-11-09 20:49:33 -07:00
Matias Griese
77887d83e9 Regression: Fixed Grav update bug [#2722] 2019-11-08 12:56:03 +02:00
Matias Griese
3514ff64fe Update installer versions 2019-11-08 10:32:34 +02:00
Matias Griese
b56ede81f0 Flex Pages: Implemented recursive filterBy() 2019-11-07 13:14:51 +02:00
Matias Griese
427c39e88e Changelog update (version) 2019-11-07 09:37:40 +02:00
Andy Miller
e450923409 Ability to force-run a Scheduled job #2720 2019-11-06 21:38:08 -07:00
Andy Miller
c862b0bc26 Merge branch 'release/1.6.17' 2019-11-06 17:51:32 -07:00
Andy Miller
575a1e4603 Merge tag '1.6.17' into develop
Release v1.6.17
2019-11-06 17:51:32 -07:00
Andy Miller
a74ccad282 fixed changelog date 2019-11-06 17:50:35 -07:00
Andy Miller
7cb678bdb6 fixed changelog dates 2019-11-06 17:42:41 -07:00
Andy Miller
14110d5475 prepare for rc.1 release 2019-11-06 16:09:01 -07:00
Andy Miller
c742eee1cc Merge branch 'develop' into 1.7
# Conflicts:
#	system/defines.php
2019-11-06 16:08:42 -07:00
Andy Miller
ffeb5648c6 Merge branch 'release/1.6.17' 2019-11-06 16:07:07 -07:00
Andy Miller
86c87929ec Merge tag '1.6.17' into develop
Release v1.6.17
2019-11-06 16:07:07 -07:00
Andy Miller
e0e92b843c prepare for release 2019-11-06 16:06:45 -07:00
Matias Griese
a996137317 Fixed bug where Flex index file couldn't be disabled 2019-11-06 11:52:00 +02:00
Matias Griese
9fb55d8d0f Flex pages: Use translated titles / routes in admin list 2019-10-31 12:05:13 +02:00
Matias Griese
861f53c5dc Grav 1.7: Fixed Flex Pages routing if using translated slugs or system.hide_in_urls setting 2019-10-31 10:52:15 +02:00
Matias Griese
a588395ba9 Attempt to work around composer 1.7 bug 2019-10-31 08:45:10 +02:00
Andy Miller
e80b7fe19e updated JQuery 2019-10-30 21:50:20 -06:00
Matias Griese
4e23f07fcd Composer update 2019-10-29 20:57:30 +02:00
Matias Griese
a571f42e1b Merge remote-tracking branch 'origin/1.7' into 1.7
# Conflicts:
#	composer.lock
2019-10-29 20:56:50 +02:00
Matias Griese
2fd5492286 Updated to Symfony 4.3, use Symfony EventDispatcher directly and not rockettheme/toolbox wrapper 2019-10-29 20:56:31 +02:00
Andy Miller
4e227fcae5 minor vendor updates 2019-10-28 15:40:17 -06:00
Andy Miller
99c6a78134 ixed exception caused by missing template type based on Accept: header #2705 2019-10-28 15:40:06 -06:00
Matias Griese
a93ef3f752 Initial support for admin filtering support 2019-10-28 15:51:04 +02:00
Matias Griese
0814d5e3bb Merge branch '1.7' of github.com:getgrav/grav into 1.7 2019-10-25 11:27:47 +03:00
Andy Miller
2e8be3c67f Cron improvements 2019-10-24 15:29:25 -06:00
Matias Griese
191bf8730a Optimize PageObject::getLevelListing() 2019-10-24 18:12:38 +03:00
Matias Griese
09e8dfdbfd Fixed no pages in admin 2019-10-24 14:19:37 +03:00
Matias Griese
a1ea841034 Fixed fatal error in multi-site setups 2019-10-24 13:59:00 +03:00
Matias Griese
f9f836959c Reverting (git) moved folders leave empty folders which break Flex Pages 2019-10-24 12:36:14 +03:00
Matias Griese
c4ce2d1648 Misc minor code quality fixes 2019-10-24 11:26:04 +03:00
Andy Miller
0f66032c9b Merge branch 'develop' into 1.7 2019-10-23 18:16:37 -06:00
Keith Bentrup
8678f22f6b do NOT ignore "." dirs OR ignore "." dirs and all children (#2581)
If you ignore any "files" beginning with "." including directories, then the all() method will exclude .somedir, but not .somedir/somefile. Subsequently, when trying to copy all files returned from all(), it will fail when the method tries to copy a file into a directory that has not yet been created because .somedir was omitted from the return array of all().
I found this bug when trying to install the admin plugin and ./tmp was a mount and thus rename() failed and self:copy() was invoked instead (line 365).
2019-10-23 15:39:05 -06:00
Andy Miller
4ca1f1f4ca updated libs 2019-10-23 15:32:40 -06:00
Matias Griese
913efdbd6a Revert multiple changes as many of those break Grav functionality [#2699] 2019-10-22 15:20:35 +03:00
Matias Griese
9c123f7d3d Merge remote-tracking branch 'rlerdorf/1.7' into 1.7 2019-10-22 12:35:27 +03:00
Andy Miller
2b00e93f22 Merge branch 'develop' into 1.7
# Conflicts:
#	composer.json
2019-10-17 10:02:36 -06:00
Jérôme Nadaud
8322a0cfa3 Make script name more explicit (#2637) 2019-10-17 05:57:25 -06:00
Jérôme Nadaud
ab6b82eaaa Fix cache image generation when using cropresize (#2639) 2019-10-17 05:56:46 -06:00
buzatuAda
b16e8066ca fix exception array_merge() when $this->header->metadata is not array (#2701)
Exception gets thrown when $this->header->metadata is not an array, added extra verification in order to make sure it is and array before doing array_merge()
2019-10-17 05:55:27 -06:00
Ole Vik
09e10d16ea [RFR] Iterable Taxonomy (#2690)
* Allow naive iterables in Taxonomy

Currently, Taxonomy only supports one-level arrays in a Page's Taxonomy, so this works:

```
---yaml
title: XMark Test
taxonomy:
  categories: academic
  tags: [xmark, link]
  author:
    - "Ole Vik"
    - "Ole Vik"
    - "Ole Vik"
---
```

But this does not:

```yaml
---
title: XMark Test
taxonomy:
  categories: academic
  tags: [xmark, link]
  author:
    - "Ole Vik"
    - "Ole Vik"
    - "Ole Vik"
    - name: "Ole Vik"
      email: "git@olevik.net"
      url: "https://olevik.me"
---
```

The change allows another level, to accommodate cases where the Taxonomy contains arrays of strings or hashes. This could potentially be expanded to recursively allow any amount of nesting of Taxonomies.

In both the naive and expanded case, are there implications for finding and filtering by Taxonomies? I've not checked if that recurses through values as I'm not currently at my desktop, but I imagine more changes would be necessary.

* Recursively iterate taxonomy fields

* Accommodate findTaxonomy() by reducing to dot-notation

* Remove superfluous conditional
2019-10-17 05:52:37 -06:00
Matias Griese
ef8e1c2fdf Added working ETag (304 Not Modified) support based on the final rendered HTML (Grav 1.7 edition) 2019-10-16 23:52:06 +03:00
Matias Griese
e2843e6477 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php
2019-10-16 23:43:29 +03:00
Matias Griese
bc1dd2a7b4 Added working ETag (304 Not Modified) support based on the final rendered HTML 2019-10-16 23:40:08 +03:00
Djamil Legato
3e52101bf8 Change of Behavior: Inflector::hyphenize will now automatically trim dashes at beginning and end of a string.
# Conflicts:
#	CHANGELOG.md
2019-10-16 11:04:26 -07:00
Djamil Legato
d11772b681 Change of Behavior: Inflector::hyphenize will now automatically trim dashes at beginning and end of a string. 2019-10-16 11:02:44 -07:00
Rasmus Lerdorf
32a9acc62e Add a .phan config file and stubs for Phan static analysis
I fixed some small inconsistencies here and there. There are still
a little over 200 to go. This time against the 1.7 branch.

To try it, checkout this PR and run:
composer require phan/phan
It doesn't have to be in the Grav tree. You can install it anywhere.
Then from the top-level Grav dir:
/vendor/bin/phan -p

You can see the ones that are left to address here:
https://gist.github.com/69eac9b37ced1cadc08ed4be0ee84f40

Also, and the main reason I added it, was to get some nice
dependency graphs from Phan to help me understand the Grav code. Some
examples:
http://pdep.lerdorf.com/?mode=class&node=\Grav\Common\File\CompiledFile&d=3
http://pdep.lerdorf.com/?mode=class&node=\Grav\Common\Filesystem\Folder&d=1
http://pdep.lerdorf.com/?mode=class&node=\Doctrine\Common\Cache\Cache&d=2
http://pdep.lerdorf.com/?mode=class&node=\RocketTheme\Toolbox\ArrayTraits\Export&d=1

Move the slider to change the number of dependency levels shown.
2019-10-16 10:38:08 -07:00
Rasmus Lerdorf
d568ddfa5c Merge pull request #1 from getgrav/1.7
1.7
2019-10-16 09:02:17 -07:00
Matias Griese
1656f0160b Enabled preview for pages 2019-10-16 14:01:48 +03:00
Matias Griese
14b33824b1 Added mime support for file formatters 2019-10-16 14:01:30 +03:00
Matias Griese
7902912269 Added template_from_string() twig function 2019-10-16 14:00:37 +03:00
Matias Griese
2db04e43d1 Hide accounts and pages from flex types page (frontend) 2019-10-16 12:00:43 +03:00
Matias Griese
467c33d3e1 More phpstan issues 2019-10-16 09:48:22 +03:00
Matias Griese
87f17d296d More phpstan issues 2019-10-15 19:40:57 +03:00
Matias Griese
feeee9ef86 Fixed PHP 7.1 bug in Flex 2019-10-15 19:00:25 +03:00
Matias Griese
7ba964f161 One more PHP 7.1 issue 2019-10-15 18:57:15 +03:00
Matias Griese
77205fb3d8 More phpstan fixes 2019-10-15 18:49:24 +03:00
Patric Johansson
4bba284bf5 Update Core to follow PSR-2 standard 2019-10-15 13:33:48 +03:00
Matias Griese
a6e78de197 Fixed multi-language saving issues with default language in Flex Pages 2019-10-14 11:11:00 +03:00
Matias Griese
8fc7755e90 Flex page: fixed filtering where route has been defined but is null 2019-10-14 10:53:46 +03:00
Matias Griese
fdfb5bb8ac Updated clockwork and debugbar 2019-10-14 10:19:50 +03:00
Andy Miller
d0800136b7 Cache tag: key is no longer required + lifetime optional 2019-10-13 17:10:41 -06:00
Andy Miller
d368aeafd4 Removed need for unique ID 2019-10-13 17:02:07 -06:00
Matias Griese
e59c596886 Fixed PageTranslateTrait::getAllLanguages() and getAllLanguages() to include default language 2019-10-11 13:43:14 +03:00
Matias Griese
411656a9d6 Added array_diff() twig function 2019-10-11 13:39:59 +03:00
Matias Griese
8599faaf3b Regression: getFlexFeatures() filtering issues after moving classes 2019-10-11 11:07:56 +03:00
Matias Griese
90e55ead29 Fixed regression in storage filename matching 2019-10-11 10:39:23 +03:00
Matias Griese
f85c94b403 Fixed type hint in SelfUpgradeCommand 2019-10-11 07:41:01 +03:00
Djamil Legato
b4fa7e38b9 Selfupgrade CLI: Fixed broken selfupgrade assets reference (fixes #2681) 2019-10-10 12:25:28 -07:00
Matias Griese
411871f636 Fixed phpstan bugs in Framework 2019-10-10 18:15:27 +03:00
Matias Griese
b01d1baa53 Improved Flex to support custom site template paths 2019-10-10 16:16:54 +03:00
Matias Griese
c3c33e954c Composer update 2019-10-10 16:07:03 +03:00
Matias Griese
edd0bc25a2 Added Utils::simpleTemplate() method for very simple variable templating 2019-10-10 16:06:39 +03:00
Matias Griese
6c57104658 Grav 1.7: Fixed PHP 7.1 compatibility issues 2019-10-10 16:05:21 +03:00
Matias Griese
26d7181eca Fixed fatal error if there are numeric folders in Flex Pages 2019-10-10 14:01:48 +03:00
Matias Griese
1fb611655f Bug fix on page admin being disabled 2019-10-09 15:44:10 +03:00
Matias Griese
b561c2b47c Improved Flex Users: obey blueprints and allow Flex to be used in admin only 2019-10-09 15:29:09 +03:00
Matias Griese
9beefb3162 Allow Flex Pages to be initialized separately in site and admin, remove Flex Objects plugin dependency 2019-10-09 15:24:26 +03:00
Matias Griese
41851b73b9 Fixed issue with duplicate configuration settings in Flex Directory 2019-10-09 15:20:20 +03:00
Matias Griese
c325c24897 Fixed phpstan issues in Framework up to level 6 2019-10-09 10:41:15 +03:00
Matias Griese
efd4e52571 Added Flex Pages classes 2019-10-08 21:42:22 +03:00
Matias Griese
565f26db8e Code quality improvements 2019-10-08 16:58:59 +03:00
Matias Griese
b641b0e442 Fixed Flex Pages not calling onPageProcessed event when cached 2019-10-07 13:45:49 +03:00
Matias Griese
2a6276a941 Fixed Page::untranslatedLanguages() not being symmetrical to Page::translatedLanguages() 2019-10-07 12:36:50 +03:00
Jeremy Gonyea
eb1b9567df Updated for latest ddev version (#2676) 2019-10-03 14:54:05 -06:00
Andy Miller
7dafa2a207 prepare for beta.10 release 2019-10-03 14:31:28 -06:00
Matias Griese
5253aa6aef Fixed user avatar file is not being randomized 2019-10-03 22:40:03 +03:00
Matias Griese
1b34530a4a Merge remote-tracking branch 'origin/1.7' into 1.7 2019-10-03 22:11:24 +03:00
Matias Griese
ae41b6f5ff Fixed Flex User Avatar not fully backwards compatible with old user 2019-10-03 22:11:13 +03:00
Andy Miller
4d09a345a4 Merge branch 'develop' into 1.7
# Conflicts:
#	CHANGELOG.md
2019-10-03 13:06:45 -06:00
Matias Griese
8ac3451fbc Revert chReverted setting language for every page during initialization 2019-10-03 21:41:58 +03:00
Matias Griese
15f1f2a03d Revert chReverted setting language for every page during initialization 2019-10-03 19:17:22 +03:00
Matias Griese
ffa9ef6a7e Grav 1.7: Fixed prev/next page missing pages if pagination was turned on in page header 2019-10-03 15:16:11 +03:00
Matias Griese
a75c0cbe62 Fixed wrong Grav param separator when using Route class 2019-10-03 10:56:05 +03:00
Andy Miller
c795ead402 Updated changelog 2019-10-01 17:52:14 -06:00
Andy Miller
91270c9c66 CSVFormatter null char support 2019-10-01 17:51:29 -06:00
Andy Miller
9259c2f660 Updated changelog 2019-10-01 17:51:17 -06:00
Andy Miller
138d1e93e3 CSVFormatter null char support 2019-10-01 17:51:02 -06:00
Matias Griese
5db9f16174 Flex: Removed extra exists check when creating object (messes up "non-existing" pages) 2019-09-27 13:26:12 +03:00
Andy Miller
342eac1047 Smarter CSV handling 2019-09-26 18:35:25 -06:00
Andy Miller
88c859fde2 move try outside for loop (less memory) 2019-09-26 15:10:35 -06:00
Andy Miller
8b5bce0b6d prepare for b.9 release 2019-09-26 13:37:09 -06:00
Andy Miller
09c4cf66f5 Merge branch '1.7' of github.com:getgrav/grav into 1.7 2019-09-26 13:26:38 -06:00
Andy Miller
46b859b8df better error for badly formatted line in CsvFormatter::decode() 2019-09-26 13:26:33 -06:00
Matias Griese
a7c23c58e5 Merge remote-tracking branch 'origin/1.7' into 1.7 2019-09-26 14:54:01 +03:00
Matias Griese
d206711354 Flex storage changes 2019-09-26 14:53:52 +03:00
Matias Griese
0007100a97 Removed row copy/move logic from Flex object, it belongs to storage 2019-09-26 14:49:45 +03:00
Matias Griese
3d999501a0 Fixed Grav parameter handling in RouteFactory::createFromString() 2019-09-26 14:47:45 +03:00
Andy Miller
52f83775e3 clarification 2019-09-24 18:10:39 -06:00
Andy Miller
a35cf5a830 Added a new {% cache %} tag eliminating need for twigcache extension 2019-09-24 18:10:02 -06:00
Matias Griese
39837d0826 Improved Flex FolderStorage class to better hide storage specific logic 2019-09-20 18:33:07 +03:00
Matias Griese
66bd6a4046 Fixed error when activating Flex Accounts in GRAV system configuration (PHP 7.1) 2019-09-20 12:06:17 +03:00
Matias Griese
4e9d3395e0 Improve blueprint initialization in Flex Objects (fixes content aware fields) 2019-09-20 11:59:13 +03:00
Andy Miller
248c7764f0 Merge branch 'develop' into 1.7
# Conflicts:
#	system/defines.php
2019-09-19 16:44:01 -06:00
Andy Miller
f72eb1b002 Merge tag '1.6.16' into develop
Release v1.6.16

# gpg: Signature made Thu Sep 19 16:42:43 2019 MDT
# gpg:                using RSA key 6AA7DB4F23BD1A7280C4CC63E82B8D0EAB94EFB9
# gpg: Good signature from "Andy Miller <rhuk@mac.com>" [ultimate]
2019-09-19 16:42:44 -06:00
Andy Miller
25caa5138a Merge branch 'release/1.6.16' 2019-09-19 16:42:43 -06:00
Andy Miller
dffb227df6 prepare for release 2019-09-19 16:42:21 -06:00
Matias Griese
7c161d5cbc Comment out couple of language debug messages 2019-09-19 22:47:53 +03:00
Matias Griese
7b2313ef0b Fixed initial Flex Object state when creating a new objects in a form 2019-09-19 21:58:28 +03:00
Matias Griese
1ad2a3f212 Make flex to skip missing flex types 2019-09-19 21:06:32 +03:00
Matias Griese
1f2363b623 Minor improvement for the new Route::withLanguate() method 2019-09-18 12:42:05 +03:00
Andy Miller
d1c069c2ee composer updates 2019-09-17 13:21:27 -06:00
Matias Griese
67e772a5ce Merge remote-tracking branch 'origin/1.7' into 1.7 2019-09-17 22:08:10 +03:00
Matias Griese
59bb167bd4 Merge branch 'develop' of github.com:getgrav/grav into 1.7
 Conflicts:
	CHANGELOG.md
2019-09-17 22:07:32 +03:00
Matias Griese
5c9eb1cdb8 Fixed Badly encoded JSON data warning when uploading files [#2663] 2019-09-17 22:02:21 +03:00
Andy Miller
94a54d2a82 Using phpdebugbar format to log messages (clockwork compatible) 2019-09-17 11:21:05 -06:00
Matias Griese
f201d48112 Fixed Flex Object saving causing the key to be lost for some types 2019-09-17 19:42:28 +03:00
Matias Griese
df51b64b35 Fixed bug in object saving if using streams 2019-09-17 19:03:48 +03:00
Matias Griese
93ff915737 Fixed avatars not being displayed with flex users [#2431] 2019-09-17 15:19:42 +03:00
Matias Griese
e30ab9a043 Fixed Flex user creation if file storage is being used [#2444] 2019-09-17 11:37:09 +03:00
Matias Griese
8e59a08f9e Pages::buildFlexPages(): better compatibility to old pages 2019-09-17 11:18:30 +03:00
Andy Miller
5a874006b4 Merge branch 'develop' into 1.7
# Conflicts:
#	system/src/Grav/Common/Page/Page.php
2019-09-16 16:01:22 -06:00
Matias Griese
5d639cc633 Improved language support for Route class 2019-09-16 15:50:40 +03:00
Matias Griese
ab7038b49e Flex media: set timestamps only when files were uploaded 2019-09-16 12:43:53 +03:00
Newb I the Newbd
651b354d3e Correct non-published collection filter evaluation (#2668) 2019-09-14 10:10:24 -06:00
Matias Griese
90c2079529 Fixed wrong Pages::dispatch() calls (with redirect) when we really meant to call Pages::find() 2019-09-13 22:39:46 +03:00
Matias Griese
fa064301a2 Fixed 404 error when you click to non-routable menu item with children: redirect to the first child instead 2019-09-13 22:27:38 +03:00
Matias Griese
5424047d02 Fixed Page::modular() and Page::modularTwig() returning null for folders and other non-initialized pages 2019-09-13 21:50:06 +03:00
Matias Griese
ce2b80aeb9 Added bin/grav page-system-validator [-r|--record] [-c|--check] to test Flex Pages 2019-09-13 21:45:54 +03:00
Matias Griese
e91ae5542d Made Common\Page\Header class serializable 2019-09-13 11:17:54 +03:00
Andy Miller
922f263005 refactored the code 2019-09-12 11:15:21 -06:00
Andy Miller
01af81a0a6 fixed array types 2019-09-12 10:37:41 -06:00
Andy Miller
bd8c274f38 Support Clockwork and PHPDebugBar for dump() 2019-09-12 10:36:08 -06:00
Andy Miller
05fb69daa7 Fixed broken Twig dump() 2019-09-11 21:34:17 -06:00
Matias Griese
21f95eba53 Added Route::withLanguage() method 2019-09-11 22:36:49 +03:00
Matias Griese
4ef56054ee Minor fix on ControllerResponseTrait::createJsonResponse() 2019-09-10 11:15:47 +03:00
Matias Griese
bec9292a5c Flex folder storage improvements 2019-09-09 14:28:27 +03:00
Matias Griese
0fa6328816 Fix undefined variable when there are no translations 2019-09-09 14:08:36 +03:00
Matias Griese
b30240c340 Improve language fallback logic 2019-09-06 22:14:37 +03:00
Matias Griese
59eb3b4cb2 Flex Pages: Quick and dirty multi-language support in frontend 2019-09-06 21:43:43 +03:00
Matias Griese
5fa047c1b7 Fixed sorting in Flex Pages 2019-09-06 21:00:24 +03:00
Matias Griese
30481da51d Regression: Fixed translations when language code is used for non-language purposes 2019-09-06 15:21:09 +03:00
Matias Griese
beb8f09a9d Flex FolderStorage: Added support for partial delete 2019-09-05 17:20:08 +03:00
Matias Griese
603bb6c878 Make it possible to save multiple variations of the Flex Object 2019-09-05 16:54:59 +03:00
Matias Griese
dac3e57fd4 Fixed error in Session::getFlashObject() if Flex Form is being used 2019-09-05 15:45:29 +03:00
Andy Miller
b601d2c8fd check for file existence 2019-09-03 12:18:32 -06:00
Andy Miller
ab75201f11 Added a new sanitize_svg security config option [default: true] 2019-09-03 12:07:47 -06:00
Andy Miller
45b1b0a2ef Added Security::sanitizeSVG function + update CHANGELOG 2019-09-03 11:53:25 -06:00
Matias Griese
ca2f657c98 Oops, remove print_r() 2019-09-03 14:20:39 +03:00
Matias Griese
5c33882f5b Added extra master key parameter for FlexObjectInterface::getStorageKey() 2019-09-03 13:46:50 +03:00
Matias Griese
0f85214693 Minor fix/improvement on loading Flex objects 2019-09-03 13:41:53 +03:00
Matias Griese
4570c00041 Added FlexTranslateInterface 2019-09-03 13:40:53 +03:00
Matias Griese
4a0c8846e2 Regression: Fixed language fallback 2019-09-03 13:36:19 +03:00
Andy Miller
41e51cd86d Support StaticImageMedium formats for avatars 2019-08-31 23:26:08 -06:00
586 changed files with 49108 additions and 14016 deletions

View File

@@ -7,11 +7,11 @@ root = true
[*]
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
# 2 space indentation
[*.{yaml,.yml}]
[*.{yaml,yml}]
indent_size = 2

66
.github/workflows/build.yaml vendored Normal file
View File

@@ -0,0 +1,66 @@
name: Release Builds
on:
release:
types: [published]
jobs:
build:
if: "!github.event.release.prerelease"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.3
extensions: opcache, gd
coverage: none
env:
COMPOSER_TOKEN: ${{ secrets.GLOBAL_TOKEN }}
- name: Install Dependencies
run: |
sudo apt-get -y update -qq < /dev/null > /dev/null
sudo apt-get -y install -qq git zip < /dev/null > /dev/null
- name: Retrieval of Builder Scripts
run: |
# Real Grav URL
curl --silent -H "Authorization: token ${{ secrets.GLOBAL_TOKEN }}" -H "Accept: application/vnd.github.v3.raw" ${{ secrets.BUILD_SCRIPT_URL }} --output build-grav.sh
# Development Local URL
# curl ${{ secrets.BUILD_SCRIPT_URL }} --output build-grav.sh
- name: Grav Builder
run: |
bash ./build-grav.sh
- name: Upload Grav Release Assets
id: upload-release-asset
uses: alexellis/upload-assets@0.2.3
env:
GITHUB_TOKEN: ${{ secrets.GLOBAL_TOKEN }}
with:
asset_paths: '["./grav-dist/*.zip"]'
slack:
name: Slack
needs: build
runs-on: ubuntu-latest
if: always()
steps:
- uses: technote-space/workflow-conclusion-action@v2
- uses: 8398a7/action-slack@v3
with:
status: failure
fields: repo,message,author,action
icon_emoji: ':octocat:'
author_name: 'Github Action Build'
text: '🚚 Automated Build Failure'
env:
GITHUB_TOKEN: ${{ secrets.GLOBAL_TOKEN }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
if: env.WORKFLOW_CONCLUSION == 'failure'

72
.github/workflows/tests.yaml vendored Normal file
View File

@@ -0,0 +1,72 @@
name: PHP Tests
on:
push:
branches: [ develop ]
pull_request:
branches: [ develop ]
jobs:
unit-tests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
php: [ 8.0, 7.4, 7.3]
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: opcache, gd
coverage: none
env:
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - name: Update composer
# run: composer update
#
# - name: Validate composer.json and composer.lock
# run: composer validate
- name: Get composer cache directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache dependencies
uses: actions/cache@v2
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies
run: composer install --prefer-dist --no-progress
- name: Run test suite
run: vendor/bin/codecept run
# slack:
# name: Slack
# needs: unit-tests
# runs-on: ubuntu-latest
# if: always()
# steps:
# - uses: technote-space/workflow-conclusion-action@v2
# - uses: 8398a7/action-slack@v3
# with:
# status: failure
# fields: repo,message,author,action
# icon_emoji: ':octocat:'
# author_name: 'Github Action Tests'
# text: '💥 Automated Test Failure'
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
# if: env.WORKFLOW_CONCLUSION == 'failure'

45
.github/workflows/trigger-skeletons.yml vendored Normal file
View File

@@ -0,0 +1,45 @@
name: Trigger Skeletons Build
on:
workflow_dispatch:
inputs:
version:
description: 'Which Grav release to use'
required: true
default: 'latest'
admin:
description: 'Create also a package with Admin'
required: true
default: true
jobs:
build:
runs-on: ubuntu-latest
env:
WORKFLOW: "build-skeleton.yml"
AUTH: ":${{secrets.GLOBAL_TOKEN}}"
steps:
- uses: actions/checkout@v2
- name: Make it rain ☔️
run: |
SKELETONS=`curl -s "${{secrets.SKELETONS_JSON_LIST}}"`
echo "$SKELETONS" | jq -cr '.[]' | while read SKELETON; do
KEY=$(echo "$SKELETON" | jq -cr 'keys[0]')
VERSION=$(echo "$SKELETON" | jq -cr '.[]')
URL="https://api.github.com/repos/${KEY}/actions/workflows/${WORKFLOW}/dispatches"
curl -X POST \
-u "${AUTH}" \
-H "Accept: application/vnd.github.everest-preview+json" \
-H "Content-Type: application/json" \
-sS \
${URL} \
--data '{ "ref": "develop",
"inputs": {
"tag": "'"$VERSION"'",
"version": "'"$INPUT_VERSION"'",
"admin": "'"$INPUT_ADMIN"'"
}
}' > /dev/null
echo "Dispatched Worfklow for ${KEY}@$VERSION"
done

1
.gitignore vendored
View File

@@ -44,3 +44,4 @@ tests/_support/_generated/*
tests/cache/*
tests/error.log
system/templates/testing/*
/user/config/versions.yaml

View File

@@ -27,6 +27,9 @@ RewriteEngine On
# If you experience problems on your site block out the operations listed below
# This attempts to block the most common type of exploit `attempts` to Grav
#
# Block out any script trying to use twig tags in URL.
RewriteCond %{REQUEST_URI} ({{|}}|{%|%}) [OR]
RewriteCond %{QUERY_STRING} ({{|}}|{%25|%25}) [OR]
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.

44
.phan/config.php Normal file
View File

@@ -0,0 +1,44 @@
<?php
return [
"target_php_version" => null,
'pretend_newer_core_functions_exist' => true,
'allow_missing_properties' => false,
'null_casts_as_any_type' => false,
'null_casts_as_array' => false,
'array_casts_as_null' => false,
'strict_method_checking' => true,
'quick_mode' => false,
'simplify_ast' => false,
'directory_list' => [
'.',
],
"exclude_analysis_directory_list" => [
'vendor/'
],
'exclude_file_list' => [
'system/src/Grav/Common/Errors/Resources/layout.html.php',
'tests/_support/AcceptanceTester.php',
'tests/_support/FunctionalTester.php',
'tests/_support/UnitTester.php',
],
'autoload_internal_extension_signatures' => [
'memcached' => '.phan/internal_stubs/memcached.phan_php',
'memcache' => '.phan/internal_stubs/memcache.phan_php',
'redis' => '.phan/internal_stubs/Redis.phan_php',
],
'plugins' => [
'AlwaysReturnPlugin',
'UnreachableCodePlugin',
'DuplicateArrayKeyPlugin',
'PregRegexCheckerPlugin',
'PrintfCheckerPlugin',
],
'suppress_issue_types' => [
'PhanUnreferencedUseNormal',
'PhanTypeObjectUnsetDeclaredProperty',
'PhanTraitParentReference',
'PhanTypeInvalidThrowsIsInterface',
'PhanRequiredTraitNotAdded',
'PhanDeprecatedFunction', // Uncomment this to see all the deprecated calls
]
];

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,460 @@
<?php
// Start of memcache v.3.0.8
class MemcachePool {
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Open memcached server connection
* @link https://php.net/manual/en/memcache.connect.php
* @param string $host <p>
* Point to the host where memcached is listening for connections. This parameter
* may also specify other transports like <em>unix:///path/to/memcached.sock</em>
* to use UNIX domain sockets, in this case <b>port</b> must also
* be set to <em>0</em>.
* </p>
* @param int $port [optional] <p>
* Point to the port where memcached is listening for connections. Set this
* parameter to <em>0</em> when using UNIX domain sockets.
* </p>
* <p>
* Please note: <b>port</b> defaults to
* {@link https://php.net/manual/ru/memcache.ini.php#ini.memcache.default-port memcache.default_port}
* if not specified. For this reason it is wise to specify the port
* explicitly in this method call.
* </p>
* @param int $timeout [optional] <p>Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.</p>
* @return bool <p>Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.</p>
*/
public function connect ($host, $port, $timeout = 1) {}
/**
* (PECL memcache &gt;= 2.0.0)<br/>
* Add a memcached server to connection pool
* @link https://php.net/manual/en/memcache.addserver.php
* @param string $host <p>
* Point to the host where memcached is listening for connections. This parameter
* may also specify other transports like unix:///path/to/memcached.sock
* to use UNIX domain sockets, in this case <i>port</i> must also
* be set to 0.
* </p>
* @param int $port [optional] <p>
* Point to the port where memcached is listening for connections.
* Set this
* parameter to 0 when using UNIX domain sockets.
* </p>
* <p>
* Please note: <i>port</i> defaults to
* memcache.default_port
* if not specified. For this reason it is wise to specify the port
* explicitly in this method call.
* </p>
* @param bool $persistent [optional] <p>
* Controls the use of a persistent connection. Default to <b>TRUE</b>.
* </p>
* @param int $weight [optional] <p>
* Number of buckets to create for this server which in turn control its
* probability of it being selected. The probability is relative to the
* total weight of all servers.
* </p>
* @param int $timeout [optional] <p>
* Value in seconds which will be used for connecting to the daemon. Think
* twice before changing the default value of 1 second - you can lose all
* the advantages of caching if your connection is too slow.
* </p>
* @param int $retry_interval [optional] <p>
* Controls how often a failed server will be retried, the default value
* is 15 seconds. Setting this parameter to -1 disables automatic retry.
* Neither this nor the <i>persistent</i> parameter has any
* effect when the extension is loaded dynamically via <b>dl</b>.
* </p>
* <p>
* Each failed connection struct has its own timeout and before it has expired
* the struct will be skipped when selecting backends to serve a request. Once
* expired the connection will be successfully reconnected or marked as failed
* for another <i>retry_interval</i> seconds. The typical
* effect is that each web server child will retry the connection about every
* <i>retry_interval</i> seconds when serving a page.
* </p>
* @param bool $status [optional] <p>
* Controls if the server should be flagged as online. Setting this parameter
* to <b>FALSE</b> and <i>retry_interval</i> to -1 allows a failed
* server to be kept in the pool so as not to affect the key distribution
* algorithm. Requests for this server will then failover or fail immediately
* depending on the <i>memcache.allow_failover</i> setting.
* Default to <b>TRUE</b>, meaning the server should be considered online.
* </p>
* @param callable $failure_callback [optional] <p>
* Allows the user to specify a callback function to run upon encountering an
* error. The callback is run before failover is attempted. The function takes
* two parameters, the hostname and port of the failed server.
* </p>
* @param int $timeoutms [optional] <p>
* </p>
* @return bool <b>TRUE</b> on success or <b>FALSE</b> on failure.
*/
public function addServer ($host, $port = 11211, $persistent = true, $weight = null, $timeout = 1, $retry_interval = 15, $status = true, callable $failure_callback = null, $timeoutms = null) {}
/**
* (PECL memcache &gt;= 2.1.0)<br/>
* Changes server parameters and status at runtime
* @link https://secure.php.net/manual/en/memcache.setserverparams.php
* @param string $host <p>Point to the host where memcached is listening for connections.</p.
* @param int $port [optional] <p>
* Point to the port where memcached is listening for connections.
* </p>
* @param int $timeout [optional] <p>
* Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.
* </p>
* @param int $retry_interval [optional] <p>
* Controls how often a failed server will be retried, the default value
* is 15 seconds. Setting this parameter to -1 disables automatic retry.
* Neither this nor the <b>persistent</b> parameter has any
* effect when the extension is loaded dynamically via {@link https://secure.php.net/manual/en/function.dl.php dl()}.
* </p>
* @param bool $status [optional] <p>
* Controls if the server should be flagged as online. Setting this parameter
* to <b>FALSE</b> and <b>retry_interval</b> to -1 allows a failed
* server to be kept in the pool so as not to affect the key distribution
* algorithm. Requests for this server will then failover or fail immediately
* depending on the <b>memcache.allow_failover</b> setting.
* Default to <b>TRUE</b>, meaning the server should be considered online.
* </p>
* @param callable $failure_callback [optional] <p>
* Allows the user to specify a callback function to run upon encountering an error. The callback is run before failover is attempted.
* The function takes two parameters, the hostname and port of the failed server.
* </p>
* @return bool <p>Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.</p>
*/
public function setServerParams ($host, $port = 11211, $timeout = 1, $retry_interval = 15, $status = true, callable $failure_callback = null) {}
/**
*
*/
public function setFailureCallback () {}
/**
* (PECL memcache &gt;= 2.1.0)<br/>
* Returns server status
* @link https://php.net/manual/en/memcache.getserverstatus.php
* @param string $host Point to the host where memcached is listening for connections.
* @param int $port Point to the port where memcached is listening for connections.
* @return int Returns a the servers status. 0 if server is failed, non-zero otherwise
*/
public function getServerStatus ($host, $port = 11211) {}
/**
*
*/
public function findServer () {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Return version of the server
* @link https://php.net/manual/en/memcache.getversion.php
* @return string|false Returns a string of server version number or <b>FALSE</b> on failure.
*/
public function getVersion () {}
/**
* (PECL memcache &gt;= 2.0.0)<br/>
* Add an item to the server. If the key already exists, the value will not be added and <b>FALSE</b> will be returned.
* @link https://php.net/manual/en/memcache.add.php
* @param string $key The key that will be associated with the item.
* @param mixed $var The variable to store. Strings and integers are stored as is, other types are stored serialized.
* @param int $flag [optional] <p>
* Use <b>MEMCACHE_COMPRESSED</b> to store the item
* compressed (uses zlib).
* </p>
* @param int $expire [optional] <p>Expiration time of the item.
* If it's equal to zero, the item will never expire.
* You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).</p>
* @return bool Returns <b>TRUE</b> on success or <b>FALSE</b> on failure. Returns <b>FALSE</b> if such key already exist. For the rest Memcache::add() behaves similarly to Memcache::set().
*/
public function add ($key , $var, $flag = null, $expire = null) {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Stores an item var with key on the memcached server. Parameter expire is expiration time in seconds.
* If it's 0, the item never expires (but memcached server doesn't guarantee this item to be stored all the time,
* it could be deleted from the cache to make place for other items).
* You can use MEMCACHE_COMPRESSED constant as flag value if you want to use on-the-fly compression (uses zlib).
* @link https://php.net/manual/en/memcache.set.php
* @param string $key The key that will be associated with the item.
* @param mixed $var The variable to store. Strings and integers are stored as is, other types are stored serialized.
* @param int $flag [optional] Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).
* @param int $expire [optional] Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).
* @return bool Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.
*/
public function set ($key, $var, $flag = null, $expire = null) {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Replace value of the existing item
* @link https://php.net/manual/en/memcache.replace.php
* @param string $key <p>The key that will be associated with the item.</p>
* @param mixed $var <p>The variable to store. Strings and integers are stored as is, other types are stored serialized.</p>
* @param int $flag [optional] <p>Use <b>MEMCACHE_COMPRESSED</b> to store the item compressed (uses zlib).</p>
* @param int $expire [optional] <p>Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).</p>
* @return bool Returns TRUE on success or FALSE on failure.
*/
public function replace ($key, $var, $flag = null, $expire = null) {}
public function cas () {}
public function append () {}
/**
* @return string
*/
public function prepend () {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Retrieve item from the server
* @link https://php.net/manual/en/memcache.get.php
* @param string|array $key <p>
* The key or array of keys to fetch.
* </p>
* @param int|array $flags [optional] <p>
* If present, flags fetched along with the values will be written to this parameter. These
* flags are the same as the ones given to for example {@link https://php.net/manual/en/memcache.set.php Memcache::set()}.
* The lowest byte of the int is reserved for pecl/memcache internal usage (e.g. to indicate
* compression and serialization status).
* </p>
* @return string|array|false <p>
* Returns the string associated with the <b>key</b> or
* an array of found key-value pairs when <b>key</b> is an {@link https://php.net/manual/en/language.types.array.php array}.
* Returns <b>FALSE</b> on failure, <b>key</b> is not found or
* <b>key</b> is an empty {@link https://php.net/manual/en/language.types.array.php array}.
* </p>
*/
public function get ($key, &$flags = null) {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Delete item from the server
* https://secure.php.net/manual/ru/memcache.delete.php
* @param $key string The key associated with the item to delete.
* @param $timeout int [optional] This deprecated parameter is not supported, and defaults to 0 seconds. Do not use this parameter.
* @return bool Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.
*/
public function delete ($key, $timeout = 0 ) {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Get statistics of the server
* @link https://php.net/manual/ru/memcache.getstats.php
* @param string $type [optional] <p>
* The type of statistics to fetch.
* Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}.
* According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".</p>
* @param int $slabid [optional] <p>
* Used in conjunction with <b>type</b> set to
* cachedump to identify the slab to dump from. The cachedump
* command ties up the server and is strictly to be used for
* debugging purposes.
* </p>
* @param int $limit [optional] <p>
* Used in conjunction with <b>type</b> set to cachedump to limit the number of entries to dump.
* </p>
* @return array|false Returns an associative array of server statistics or <b>FALSE</b> on failure.
*/
public function getStats ($type = null, $slabid = null, $limit = 100) {}
/**
* (PECL memcache &gt;= 2.0.0)<br/>
* Get statistics from all servers in pool
* @link https://php.net/manual/en/memcache.getextendedstats.php
* @param string $type [optional] <p>The type of statistics to fetch. Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}. According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".</p>
* @param int $slabid [optional] <p>
* Used in conjunction with <b>type</b> set to
* cachedump to identify the slab to dump from. The cachedump
* command ties up the server and is strictly to be used for
* debugging purposes.
* </p>
* @param int $limit Used in conjunction with type set to cachedump to limit the number of entries to dump.
* @return array|false Returns a two-dimensional associative array of server statistics or <b>FALSE</b>
* Returns a two-dimensional associative array of server statistics or <b>FALSE</b>
* on failure.
*/
public function getExtendedStats ($type = null, $slabid = null, $limit = 100) {}
/**
* (PECL memcache &gt;= 2.0.0)<br/>
* Enable automatic compression of large values
* @link https://php.net/manual/en/memcache.setcompressthreshold.php
* @param int $thresold <p>Controls the minimum value length before attempting to compress automatically.</p>
* @param float $min_saving [optional] <p>Specifies the minimum amount of savings to actually store the value compressed. The supplied value must be between 0 and 1. Default value is 0.2 giving a minimum 20% compression savings.</p>
* @return bool Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.
*/
public function setCompressThreshold ($thresold, $min_saving = 0.2) {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Increment item's value
* @link https://php.net/manual/en/memcache.increment.php
* @param $key string Key of the item to increment.
* @param $value int [optional] increment the item by <b>value</b>
* @return int|false Returns new items value on success or <b>FALSE</b> on failure.
*/
public function increment ($key, $value = 1) {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Decrement item's value
* @link https://php.net/manual/en/memcache.decrement.php
* @param $key string Key of the item do decrement.
* @param $value int Decrement the item by <b>value</b>.
* @return int|false Returns item's new value on success or <b>FALSE</b> on failure.
*/
public function decrement ($key, $value = 1) {}
/**
* (PECL memcache &gt;= 0.4.0)<br/>
* Close memcached server connection
* @link https://php.net/manual/en/memcache.close.php
* @return bool Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.
*/
public function close () {}
/**
* (PECL memcache &gt;= 1.0.0)<br/>
* Flush all existing items at the server
* @link https://php.net/manual/en/memcache.flush.php
* @return bool Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.
*/
public function flush () {}
}
/**
* Represents a connection to a set of memcache servers.
* @link https://php.net/manual/en/class.memcache.php
*/
class Memcache extends MemcachePool {
/**
* (PECL memcache &gt;= 0.4.0)<br/>
* Open memcached server persistent connection
* @link https://php.net/manual/en/memcache.pconnect.php
* @param string $host <p>
* Point to the host where memcached is listening for connections. This parameter
* may also specify other transports like unix:///path/to/memcached.sock
* to use UNIX domain sockets, in this case <i>port</i> must also
* be set to 0.
* </p>
* @param int $port [optional] <p>
* Point to the port where memcached is listening for connections. Set this
* parameter to 0 when using UNIX domain sockets.
* </p>
* @param int $timeout [optional] <p>
* Value in seconds which will be used for connecting to the daemon. Think
* twice before changing the default value of 1 second - you can lose all
* the advantages of caching if your connection is too slow.
* </p>
* @return mixed a Memcache object or <b>FALSE</b> on failure.
*/
public function pconnect ($host, $port, $timeout = 1) {}
}
// string $host [, int $port [, int $timeout ]]
/**
* (PECL memcache >= 0.2.0)</br>
* Memcache::connect — Open memcached server connection
* @link https://php.net/manual/en/memcache.connect.php
* @param string $host <p>
* Point to the host where memcached is listening for connections.
* This parameter may also specify other transports like
* unix:///path/to/memcached.sock to use UNIX domain sockets,
* in this case port must also be set to 0.
* </p>
* @param int $port [optional] <p>
* Point to the port where memcached is listening for connections.
* Set this parameter to 0 when using UNIX domain sockets.
* Note: port defaults to memcache.default_port if not specified.
* For this reason it is wise to specify the port explicitly in this method call.
* </p>
* @param int $timeout [optional] <p>
* Value in seconds which will be used for connecting to the daemon.
* </p>
* @return bool Returns <b>TRUE</b> on success or <b>FALSE</b> on failure.
*/
function memcache_connect ($host, $port, $timeout = 1) {}
/**
* (PECL memcache >= 0.4.0)
* Memcache::pconnect — Open memcached server persistent connection
*
* @link https://php.net/manual/en/memcache.pconnect.php#example-5242
* @param $host
* @param null $port
* @param int $timeout
* @return Memcache
*/
function memcache_pconnect ($host, $port=null, $timeout=1) {}
function memcache_add_server () {}
function memcache_set_server_params () {}
function memcache_set_failure_callback () {}
function memcache_get_server_status () {}
function memcache_get_version () {}
function memcache_add () {}
function memcache_set () {}
function memcache_replace () {}
function memcache_cas () {}
function memcache_append () {}
function memcache_prepend () {}
function memcache_get () {}
function memcache_delete () {}
/**
* (PECL memcache &gt;= 0.2.0)<br/>
* Turn debug output on/off
* @link https://php.net/manual/en/function.memcache-debug.php
* @param bool $on_off <p>
* Turns debug output on if equals to <b>TRUE</b>.
* Turns debug output off if equals to <b>FALSE</b>.
* </p>
* @return bool <b>TRUE</b> if PHP was built with --enable-debug option, otherwise
* returns <b>FALSE</b>.
*/
function memcache_debug ($on_off) {}
function memcache_get_stats () {}
function memcache_get_extended_stats () {}
function memcache_set_compress_threshold () {}
function memcache_increment () {}
function memcache_decrement () {}
function memcache_close () {}
function memcache_flush () {}
define ('MEMCACHE_COMPRESSED', 2);
define ('MEMCACHE_USER1', 65536);
define ('MEMCACHE_USER2', 131072);
define ('MEMCACHE_USER3', 262144);
define ('MEMCACHE_USER4', 524288);
define ('MEMCACHE_HAVE_SESSION', 1);
// End of memcache v.3.0.8
?>

File diff suppressed because it is too large Load Diff

View File

@@ -3,10 +3,9 @@ php:
- '7.1'
- '7.2'
- '7.3'
- '7.4'
branches:
only:
- develop
- master
- build_test
notifications:
email:
@@ -45,10 +44,11 @@ before_install:
- if [ $TRAVIS_BRANCH == 'develop' ] || [ $TRAVIS_PULL_REQUEST != 'false' ]; then
composer install --dev --prefer-dist;
fi
- if [ $TRAVIS_BRANCH != 'develop' ] && [ $TRAVIS_PHP_VERSION == "7.1" ] && [ $TRAVIS_PULL_REQUEST == "false" ]; then
export TRAVIS_TAG=$(curl --fail --user "${GH_API_USER}" -s https://api.github.com/repos/getgrav/grav/releases/latest | grep tag_name | head -n 1 | cut -d '"' -f 4);
eval "$(curl -sL https://raw.githubusercontent.com/travis-ci/gimme/master/gimme | GIMME_GO_VERSION=1.8 bash)";
go get github.com/aktau/github-release;
- |
if [ $TRAVIS_BRANCH != 'develop' ] && [ $TRAVIS_PHP_VERSION == "7.1" ] && [ $TRAVIS_PULL_REQUEST == "false" ]; then
export TRAVIS_TAG=$(curl -H "Authorization: token ${GH_TOKEN}" --fail -s https://api.github.com/repos/getgrav/grav/releases/latest | grep tag_name | head -n 1 | cut -d '"' -f 4);
eval "$(curl -sL https://raw.githubusercontent.com/travis-ci/gimme/master/gimme | GIMME_GO_VERSION=1.13 bash)";
go get github.com/github-release/github-release;
git clone --quiet --depth=50 --branch=master https://${BB_TOKEN}bitbucket.org/rockettheme/grav-devtools.git $RT_DEVTOOLS &>/dev/null;
if [ ! -z "$TRAVIS_TAG" ]; then
cd ${RT_DEVTOOLS};
@@ -56,7 +56,7 @@ before_install:
fi;
fi
before_script:
- if [ $TRAVIS_PHP_VERSION != 'hhvm' ]; then phpenv config-rm xdebug.ini; fi
- phpenv config-rm xdebug.ini
script:
- if [ $TRAVIS_BRANCH == 'develop' ] || [ $TRAVIS_PULL_REQUEST != 'false' ]; then
vendor/bin/codecept run;

View File

@@ -1,3 +1,679 @@
# v1.7.10
## 04/06/2021
1. [](#new)
* Added initial support for running Grav library from outside the webroot [#3297](https://github.com/getgrav/grav/issues/3297)
1. [](#improved)
* Improved password handling when saving a user
1. [](#bugfix)
* Ignore errors when using `set_time_limit` in `Archiver` and `GPM\Response` classes [#3023](https://github.com/getgrav/grav/issues/3023)
* Fixed `Folder::move()` deleting the folder if you move folder into itself, created empty file instead
* Fixed moving `Flex Page` to itself causing the page to be lost [#3227](https://github.com/getgrav/grav/issues/3227)
* Fixed `PageStorage` from detecting files as pages
* Fixed `UserIndex` not implementing `UserCollectionInterface`
* Fixed missing `onAdminAfterDelete` event call in `Flex Pages`
* Fixed system templates not getting scanned [#3296](https://github.com/getgrav/grav/issues/3296)
* Fixed incorrect routing if url path looks like a domain name [#2184](https://github.com/getgrav/grav/issues/2184)
# v1.7.9
## 03/19/2021
1. [](#new)
* Added `Media::hide()` method to hide files from media
* Added `Utils::getPathFromToken()` method which works also with `Flex Objects`
* Added `FlexMediaTrait::getMediaField()`, which can be used to access custom media set in the blueprint fields
* Added `FlexMediaTrait::getFieldSettings()`, which can be used to get media field settings
1. [](#improved)
* Method `Utils::getPagePathFromToken()` now calls the more generic `Utils::getPathFromToken()`
* Updated `SECURITY.md` to use security@getgrav.org
1. [](#bugfix)
* Fixed broken media upload in `Flex` with `@self/path`, `@page` and `@theme` destinations [#3275](https://github.com/getgrav/grav/issues/3275)
* Fixed media fields excluding newly deleted files before saving the object
* Fixed method `$pages->find()` should never redirect [#3266](https://github.com/getgrav/grav/pull/3266)
* Fixed `Page::activeChild()` throwing an error [#3276](https://github.com/getgrav/grav/issues/3276)
* Fixed `Flex Page` CRUD ACL when creating a new page (needs Flex Objects plugin update) [grav-plugin-flex-objects#115](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/115)
* Fixed the list of pages not showing up in admin [#3280](https://github.com/getgrav/grav/issues/3280)
* Fixed text field min/max validation for UTF8 characters [#3281](https://github.com/getgrav/grav/issues/3281)
* Fixed redirects using wrong redirect code
# v1.7.8
## 03/17/2021
1. [](#new)
* Added `ControllerResponseTrait::createDownloadResponse()` method
* Added full blueprint support to theme if you move existing files in `blueprints/` to `blueprints/pages/` folder [#3255](https://github.com/getgrav/grav/issues/3255)
* Added support for `Theme::getFormFieldTypes()` just like in plugins
1. [](#improved)
* Optimized `Flex Pages` for speed
* Optimized saving visible/ordered pages when there are a lot of siblings [#3231](https://github.com/getgrav/grav/issues/3231)
* Clearing cache now deletes all clockwork files
* Improved `system.pages.redirect_default_route` and `system.pages.redirect_trailing_slash` configuration options to accept redirect code
1. [](#bugfix)
* Fixed clockwork error when clearing cache
* Fixed missing method `translated()` in `Flex Pages`
* Fixed missing `Flex Pages` in site if multi-language support has been enabled
* Fixed Grav using blueprints and form fields from disabled plugins
* Fixed `FlexIndex::sortBy(['key' => 'ASC'])` having no effect
* Fixed default Flex Pages collection ordering to order by filesystem path
* Fixed disappearing pages on save if `pages://` stream resolves to multiple folders where the preferred folder doesn't exist
* Fixed Markdown image attribute `loading` [#3251](https://github.com/getgrav/grav/pull/3251)
* Fixed `Uri::isValidExtension()` returning false positives
* Fixed `page.html` returning duplicated content with `system.pages.redirect_default_route` turned on [#3130](https://github.com/getgrav/grav/issues/3130)
* Fixed site redirect with redirect code failing when redirecting to sub-pages [#3035](https://github.com/getgrav/grav/pull/3035/files)
* Fixed `Uncaught ValueError: Path cannot be empty` when failing to upload a file [#3265](https://github.com/getgrav/grav/issues/3265)
* Fixed `Path cannot be empty` when viewing non-existent log file [#3270](https://github.com/getgrav/grav/issues/3270)
* Fixed `onAdminSave` original page having empty header [#3259](https://github.com/getgrav/grav/issues/3259)
# v1.7.7
## 02/23/2021
1. [](#new)
* Added `Utils::arrayToQueryParams()` to convert an array into query params
1. [](#improved)
* Added original image support for all flex objects and media fields
* Improved `Pagination` class to allow custom pagination query parameter
1. [](#bugfix)
* Fixed avatar of the user not being saved [grav-plugin-flex-objects#111](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/111)
* Replaced special space character with regular space in `system/blueprints/user/account_new.yaml`
# v1.7.6
## 02/17/2021
1. [](#new)
* Added `Medium::attribute()` to pass arbitrary attributes [#3065](https://github.com/getgrav/grav/pull/3065)
* Added `Plugins::getPlugins()` and `Plugins::getPlugin($name)` to make it easier to access plugin instances [#2277](https://github.com/getgrav/grav/pull/2277)
* Added `regex_match` and `regex_split` twig functions [#2788](https://github.com/getgrav/grav/pull/2788)
* Updated all languages from [Crowdin](https://crowdin.com/project/grav-core) - Please update any translations here
1. [](#improved)
* Added abstract `FlexObject`, `FlexCollection` and `FlexIndex` classes to `\Grav\Common\Flex` namespace (extend those instead of Framework or Generic classes)
* Updated bundled `composer.phar` binary to latest version `2.0.9`
* Improved session fixation handling in PHP 7.4+ (cannot fix it in PHP 7.3 due to PHP bug)
* Added optional password/database attributes for redis in `system.yaml`
* Added ability to filter enabled or disabled with bin/gpm index [#3187](https://github.com/getgrav/grav/pull/3187)
* Added `$grav->getVersion()` or `grav.version` in twig to get the current Grav version [#3142](https://github.com/getgrav/grav/issues/3142)
* Added second parameter to `$blueprint->flattenData()` to include every field, including those which have no data
* Added support for setting session domain [#2040](https://github.com/getgrav/grav/pull/2040)
* Better support inheriting languages when using child themes [#3226](https://github.com/getgrav/grav/pull/3226)
* Added option for `FlexForm` constructor to reset the form
1. [](#bugfix)
* Fixed issue with `content-security-policy` not being properly supported with `http-equiv` + support single quotes
* Fixed CLI progressbar in `backup` and `security` commands to use styled output [#3198](https://github.com/getgrav/grav/issues/3198)
* Fixed page save failing because of uploaded images [#3191](https://github.com/getgrav/grav/issues/3191)
* Fixed `Flex Pages` using only default language in frontend [#106](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/106)
* Fixed empty `route()` and `raw_route()` when getting translated pages [#3184](https://github.com/getgrav/grav/pull/3184)
* Fixed error on `bin/gpm plugin uninstall` [#3207](https://github.com/getgrav/grav/issues/3207)
* Fixed broken min/max validation for field `type: int`
* Fixed lowering uppercase characters in usernames when saving from frontend [#2565](https://github.com/getgrav/grav/pull/2565)
* Fixed save error when editing accounts that have been created with capital letters in their username [#3211](https://github.com/getgrav/grav/issues/3211)
* Fixed renaming flex objects key when using file storage
* Fixed wrong values in Admin pages list [#3214](https://github.com/getgrav/grav/issues/3214)
* Fixed pipelined asset using different hash when extra asset is added to before/after position [#2781](https://github.com/getgrav/grav/issues/2781)
* Fixed trailing slash redirect to only apply to GET/HEAD requests and use 301 status code [#3127](https://github.com/getgrav/grav/issues/3127)
* Fixed root page to always contain trailing slash [#3127](https://github.com/getgrav/grav/issues/3127)
* Fixed `<meta name="flattr:*" content="*">` to use name instead property [#3010](https://github.com/getgrav/grav/pull/3010)
* Fixed behavior of opposite filters in `Pages::getCollection()` to match Grav 1.6 [#3216](https://github.com/getgrav/grav/pull/3216)
* Fixed modular content with missing template file ending up using non-modular template [#3218](https://github.com/getgrav/grav/issues/3218)
* Fixed broken attachment image in Flex Objects Admin when `destination: self@` used [#3225](https://github.com/getgrav/grav/issues/3225)
* Fixed bug in page content with both markdown and twig enabled [#3223](https://github.com/getgrav/grav/issues/3223)
# v1.7.5
## 02/01/2021
1. [](#bugfix)
* Revert: Fixed page save failing because of uploaded images [#3191](https://github.com/getgrav/grav/issues/3191) - breaking save
# v1.7.4
## 02/01/2021
1. [](#new)
* Added `FlexForm::setSubmitMethod()` to customize form submit action
1. [](#improved)
* Improved GPM error handling
1. [](#bugfix)
* Fixed `bin/gpm uninstall` script not working because of bad typehint [#3172](https://github.com/getgrav/grav/issues/3172)
* Fixed `login: visibility_requires_access` not working in pages [#3176](https://github.com/getgrav/grav/issues/3176)
* Fixed cannot change image format [#3173](https://github.com/getgrav/grav/issues/3173)
* Fixed saving page in expert mode [#3174](https://github.com/getgrav/grav/issues/3174)
* Fixed exception in `$flexPage->frontmatter()` method when setting value
* Fixed `onBlueprintCreated` event being called multiple times in `Flex Pages` [grav-plugin-flex-objects#97](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/97)
* Fixed wrong ordering in page collections if `intl` extension has been enabled [#3167](https://github.com/getgrav/grav/issues/3167)
* Fixed page redirect to the first visible child page (needs to be routable and published, too)
* Fixed untranslated module pages showing up in the menu
* Fixed page save failing because of uploaded images [#3191](https://github.com/getgrav/grav/issues/3191)
* Fixed incorrect config lookup for loading in `ImageLoadingTrait` [#3192](https://github.com/getgrav/grav/issues/3192)
# v1.7.3
## 01/21/2021
1. [](#improved)
* IMPORTANT - Please [checkout the process](https://getgrav.org/blog/grav-170-cli-self-upgrade-bug) to `self-upgrade` from CLI if you are on **Grav 1.7.0 or 1.7.1**
* Added support for symlinking individual plugins and themes by using `bin/grav install -p myplugin` or `-t mytheme`
* Added support for symlinking plugins and themes with `hebe.json` file to support custom folder structures
* Added support for running post-install scripts in `bin/gpm selfupgrade` if Grav was updated manually
1. [](#bugfix)
* Fixed default GPM Channel back to 'stable' - this was inadvertently left as 'testing' [#3163](https://github.com/getgrav/grav/issues/3163)
* Fixed broken stream initialization if `environment://` paths aren't streams
* Fixed Clockwork debugger in sub-folder multi-site setups
* Fixed `Unsupported option "curl" passed to "Symfony\Component\HttpClient\CurlHttpClient"` in `bin/gpm selfupgrade` [#3165](https://github.com/getgrav/grav/issues/3165)
# v1.7.2
## 01/21/2021
1. [](#improved)
* This release was pulled due to a bug in the installer, 1.7.3 replaces it.
# v1.7.1
## 01/20/2021
1. [](#bugfix)
* Fixed fatal error when `site.taxonomies` contains a bad value
* Sanitize valid Page extensions from `Page::template_format()`
* Fixed `bin/gpm index` erroring out [#3158](https://github.com/getgrav/grav/issues/3158)
* Fixed `bin/gpm selfupgrade` failing to report failed Grav update [#3116](https://github.com/getgrav/grav/issues/3116)
* Fixed `bin/gpm selfupgrade` error on `Call to undefined method` [#3160](https://github.com/getgrav/grav/issues/3160)
* Flex Pages: Fixed fatal error when trying to move a page to Root (/) [#3161](https://github.com/getgrav/grav/issues/3161)
* Fixed twig parsing errors in pages where twig is parsed after markdown [#3162](https://github.com/getgrav/grav/issues/3162)
* Fixed `lighttpd.conf` access-deny rule [#1876](https://github.com/getgrav/grav/issues/1876)
* Fixed page metadata being double-escaped [#3121](https://github.com/getgrav/grav/issues/3121)
# v1.7.0
## 01/19/2021
1. [](#new)
* Requires **PHP 7.3.6**
* Read about this release in the [Grav 1.7 Released](https://getgrav.org/blog/grav-1.7-released) blog post
* Read the full list of all changes in the [Changelog on GitHub](https://github.com/getgrav/grav/blob/1.7.0/CHANGELOG.md)
* Please read [Grav 1.7 Upgrade Guide](https://learn.getgrav.org/17/advanced/grav-development/grav-17-upgrade-guide) before upgrading!
* Added support for overriding configuration by using environment variables
* Use PHP 7.4 serialization (the old `Serializable` methods are now final and cannot be overridden)
* Enabled `ETag` setting by default for 304 responses
* Added `FlexCollection::getDistinctValues()` to get all the assigned values from the field
* `Flex Pages` method `$page->header()` returns `\Grav\Common\Page\Header` object, old `Page` class still returns `stdClass`
1. [](#improved)
* Make it possible to use an absolute path when loading a blueprint
* Make serialize methods final in `ContentBlock`, `AbstractFile`, `FormTrait`, `ObjectCollectionTrait` and `ObjectTrait`
* Added support for relative paths in `PageObject::getLevelListing()` [#3110](https://github.com/getgrav/grav/issues/3110)
* Better `--env` and `--lang` support for `bin/grav`, `bin/gpm` and `bin/plugin` console commands
* **BC BREAK** Shorthand for `--env`: `-e` will not work anymore as it conflicts with some plugins
* Added support for locking the `start` and `limit` in a Page Collection
1. [](#bugfix)
* Fixed port issue with `system.custom_base_url`
* Hide errors with `exif_read_data` in `ImageFile`
* Fixed unserialize in `MarkdownFormatter` and `Framework\File` classes
* Fixed pages with session messages should never be cached [#3108](https://github.com/getgrav/grav/issues/3108)
* Fixed `Filesystem::normalize()` with dot-dot paths
* Fixed Flex sorting issues [grav-plugin-flex-objects#92](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/92)
* Fixed Clockwork missing dumped arrays and objects
* Fixed fatal error in PHP 8 when trying to access root page
* Fixed Array->String conversion error when `languages:translations: false` [admin#1896](https://github.com/getgrav/grav-plugin-admin/issues/1896)
* Fixed `Inflector` methods when translation is missing `GRAV.INFLECTOR_*` translations
* Fixed exception when changing parent of new page [grav-plugin-admin#2018](https://github.com/getgrav/grav-plugin-admin/issues/2018)
* Fixed ordering issue with moving pages [grav-plugin-admin#2015](https://github.com/getgrav/grav-plugin-admin/issues/2015)
* Fixed Flex Pages cache not invalidating if saving an old `Page` object [#3152](https://github.com/getgrav/grav/issues/3152)
* Fixed multiple issues with `system.language.translations: false`
* Fixed page collections containing dummy items for untranslated default language [#2985](https://github.com/getgrav/grav/issues/2985)
* Fixed streams in `setup.php` being overridden by `system/streams.yaml` [#2450](https://github.com/getgrav/grav/issues/2450)
* Fixed `ERR_TOO_MANY_REDIRECTS` with HTTPS = 'On' [#3155](https://github.com/getgrav/grav/issues/3155)
* Fixed page collection pagination not behaving as it did in Grav 1.6
# v1.7.0-rc.20
## 12/15/2020
1. [](#new)
* Update phpstan to version 0.12
* Auto-Escape enabled by default. Manually enable **Twig Compatibility** and disable **Auto-Escape** to use the old setting.
* Updated unit tests to use codeception 4.1
* Added support for setting `GRAV_ENVIRONMENT` by using environment variable or a constant
* Added support for setting `GRAV_SETUP_PATH` by using environment variable (constant already worked)
* Added support for setting `GRAV_ENVIRONMENTS_PATH` by using environment variable or a constant
* Added support for setting `GRAV_ENVIRONMENT_PATH` by using environment variable or a constant
1. [](#improved)
* Improved `bin/grav install` command
1. [](#bugfix)
* Fixed potential error when upgrading Grav
* Fixed broken list in `bin/gpm index` [#3092](https://github.com/getgrav/grav/issues/3092)
* Fixed CLI/GPM command failures returning 0 (success) value [#3017](https://github.com/getgrav/grav/issues/3017)
* Fixed unimplemented `PageObject::getOriginal()` call [#3098](https://github.com/getgrav/grav/issues/3098)
* Fixed `Argument 1 passed to Grav\Common\User\DataUser\User::filterUsername() must be of the type string` [#3101](https://github.com/getgrav/grav/issues/3101)
* Fixed broken check if php exif module is enabled in `ImageFile::fixOrientation()`
* Fixed `StaticResizeTrait::resize()` bad image height/width attributes if `null` values are passed to the method
* Fixed twig script/style tag `{% script 'file.js' at 'bottom' %}`, replaces broken `in` operator [#3084](https://github.com/getgrav/grav/issues/3084)
* Fixed dropped query params when `?` is preceded with `/` [#2964](https://github.com/getgrav/grav/issues/2964)
# v1.7.0-rc.19
## 12/02/2020
1. [](#bugfix)
* Updated composer libraries with latest Toolbox v1.5.6 that contains critical fixes
# v1.7.0-rc.18
## 12/02/2020
1. [](#new)
* Set minimum requirements to **PHP 7.3.6**
* Updated Clockwork to v5.0
* Added `FlexDirectoryInterface` interface
* Renamed `PageCollectionInterface::nonModular()` into `PageCollectionInterface::pages()` and deprecated the old method
* Renamed `PageCollectionInterface::modular()` into `PageCollectionInterface::modules()` and deprecated the old method'
* Upgraded `bin/composer.phar` to `2.0.2` which is all new and much faster
* Added search option `same_as` to Flex Objects
* Added PHP 8 compatible `function_exists()`: `Utils::functionExists()`
* New sites have `compatibility` features turned off by default, upgrading from older versions will keep the settings on
1. [](#improved)
* Updated bundled JQuery to latest version `3.5.1`
* Forward a `sid` to GPM when downloading a premium package via CLI
* Allow `JsonFormatter` options to be passed as a string
* Hide Flex Pages frontend configuration (not ready for production use)
* Improve Flex configuration: gather views together in blueprint
* Added XSS detection to all forms. See [documentation](https://learn.getgrav.org/17/forms/forms/form-options#xss-checks)
* Better handling of missing repository index [grav-plugin-admin#1916](https://github.com/getgrav/grav-plugin-admin/issues/1916)
* Added support for having all sites / environments under `user/env` folder [#3072](https://github.com/getgrav/grav/issues/3072)
* Added `FlexObject::refresh()` method to make sure object is up to date
1. [](#bugfix)
* *Menu Visibility Requires Access* Security option setting wrong frontmatter [login#265](https://github.com/getgrav/grav-plugin-login/issues/265)
* Accessing page with unsupported file extension (jpg, pdf, xsl) will use wrong mime type [#3031](https://github.com/getgrav/grav/issues/3031)
* Fixed media crashing on a bad image
* Fixed bug in collections where filter `type: false` did not work
* Fixed `print_r()` in twig
* Fixed sorting by groups in `Flex Users`
* Changing `Flex Page` template causes the other language versions of that page to lose their content [admin#1958](https://github.com/getgrav/grav-plugin-admin/issues/1958)
* Fixed plugins getting initialized multiple times (by CLI commands for example)
* Fixed `header.admin.children_display_order` in Flex Pages to work just like with regular pages
* Fixed `Utils::isFunctionDisabled()` method if there are spaces in `disable_functions` [#3023](https://github.com/getgrav/grav/issues/3023)
* Fixed potential fatal error when creating flex index using cache [#3062](https://github.com/getgrav/grav/issues/3062)
* Fixed fatal error in `CompiledFile` if the cached version is broken
* Fixed updated media missing from media when editing Flex Object after page reload
* Fixed issue with `config-default@` breaking on set [#1972](https://github.com/getgrav/grav-plugin-admin/issues/1971)
* Escape titles in Flex pages list [flex-objects#84](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/84)
* Fixed Purge successful message only working in Scheduler but broken in CLI and Admin [#1935](https://github.com/getgrav/grav-plugin-admin/issues/1935)
* Fixed `system://` stream is causing issues in Admin, making Media tab to disappear and possibly causing other issues [#3072](https://github.com/getgrav/grav/issues/3072)
* Fixed CLI self-upgrade from Grav 1.6 [#3079](https://github.com/getgrav/grav/issues/3079)
* Fixed `bin/grav yamllinter -a` and `-f` not following symlinks [#3080](https://github.com/getgrav/grav/issues/3080)
* Fixed `|safe_email` filter to return safe and escaped UTF-8 HTML [#3072](https://github.com/getgrav/grav/issues/3072)
* Fixed exception in CLI GPM and backup commands when `php-zip` is not enabled [#3075](https://github.com/getgrav/grav/issues/3075)
* Fix for XSS advisory [GHSA-cvmr-6428-87w9](https://github.com/getgrav/grav/security/advisories/GHSA-cvmr-6428-87w9)
* Fixed Flex and Page ordering to be natural and case insensitive [flex-objects#87](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/87)
* Fixed plugin/theme priority ordering to be numeric
# v1.7.0-rc.17
## 10/07/2020
1. [](#new)
* Added a `Uri::getAllHeaders()` compatibility function
1. [](#improved)
* Fall back through various templates scenarios if they don't exist in theme to avoid unhelpful error.
* Added default templates for `external.html.twig`, `default.html.twig`, and `modular.html.twig`
* Improve Media classes
* _POTENTIAL BREAKING CHANGE:_ Added reload argument to `FlexStorageInterface::getMetaData()`
1. [](#bugfix)
* Fixed `Security::sanitizeSVG()` creating an empty file if SVG file cannot be parsed
* Fixed infinite loop in blueprints with `extend@` to a parent stream
* Added missing `Stream::create()` method
* Added missing `onBlueprintCreated` event for Flex Pages
* Fixed `onBlueprintCreated` firing multiple times recursively
* Fixed media upload failing with custom folders
* Fixed `unset()` in `ObjectProperty` class
* Fixed `FlexObject::freeMedia()` method causing media to become null
* Fixed bug in `Flex Form` making it impossible to set nested values
* Fixed `Flex User` avatar when using folder storage, also allow multiple images
* Fixed Referer reference during GPM calls.
* Fixed fatal error with toggled lists
# v1.7.0-rc.16
## 09/01/2020
1. [](#new)
* Added a new `svg_image()` twig function to make it easier to 'include' SVG source in Twig
* Added a helper `Utils::fullPath()` to get the full path to a file be it stream, relative, etc.
1. [](#improved)
* Added `themes` to cached blueprints and configuration
1. [](#bugfix)
* Fixed `Flex Pages` issue with `getRoute()` returning path with language prefix for default language if set not to do that
* Fixed `Flex Pages` bug where reordering pages causes page content to disappear if default language uses wrong extension (`.md` vs `.en.md`)
* Fixed `Flex Pages` bug where `onAdminSave` passes page as `$event['page']` instead of `$event['object']` [#2995](https://github.com/getgrav/grav/issues/2995)
* Fixed `Flex Pages` bug where changing a modular page template added duplicate file [admin#1899](https://github.com/getgrav/grav-plugin-admin/issues/1899)
* Fixed `Flex Pages` bug where renaming slug causes bad ordering range after save [#2997](https://github.com/getgrav/grav/issues/2997)
# v1.7.0-rc.15
## 07/22/2020
1. [](#bugfix)
* Fixed Flex index file caching [#2962](https://github.com/getgrav/grav/issues/2962)
* Fixed various issues with Exif data reading and images being incorrectly rotated [#1923](https://github.com/getgrav/grav-plugin-admin/issues/1923)
# v1.7.0-rc.14
## 07/09/2020
1. [](#improved)
* Added ability to `noprocess` specific items only in Link/Image Excerpts, e.g. `http://foo.com/page?id=foo&target=_blank&noprocess=id` [#2954](https://github.com/getgrav/grav/pull/2954)
1. [](#bugfix)
* Regression: Default language fix broke `Language::getLanguageURLPrefix()` and `Language::isIncludeDefaultLanguage()` methods when not using multi-language
* Reverted `Language::getDefault()` and `Language::getLanguage()` to return false again because of plugin compatibility (updated docblocks)
* Fixed UTF-8 issue in `Excerpts::getExcerptsFromHtml`
* Fixed some compatibility issues with recent Changes to `Assets` handling
* Fixed issue with `CSS_IMPORTS_REGEX` breaking with complex URLs [#2958](https://github.com/getgrav/grav/issues/2958)
* Moved duplicated `CSS_IMPORT_REGEX` to local variable in `AssetUtilsTrait::moveImports()`
* Fixed page media only accepting images [#2943](https://github.com/getgrav/grav/issues/2943)
# v1.7.0-rc.13
## 07/01/2020
1. [](#new)
* Added support for uploading and deleting images directly in `Media`
* Added new `onAfterCacheClear` event
1. [](#improved)
* Improved `CvsFormatter` to attempt to encode non-scalar variables into JSON before giving up
* Moved image loading into its own trait to be used by images+static images
* Adjusted asset types to enable extension of assets in class [#2937](https://github.com/getgrav/grav/pull/2937)
* Composer update for vendor library updates
* Updated bundled `composer.phar` to `2.0.0-dev`
1. [](#bugfix)
* Fixed `MediaUploadTrait::copyUploadedFile()` not adding uploaded media to the collection
* Fixed regression in saving media to a new Flex Object [admin#1867](https://github.com/getgrav/grav-plugin-admin/issues/1867)
* Fixed `Trying to get property 'username' of non-object` error in Flex [flex-objects#62](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/62)
* Fixed retina images not working in Flex [flex-objects#64](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/64)
* Fixed plugin initialization in CLI
* Fixed broken logic in `Page::topParent()` when dealing with first-level pages
* Fixed broken `Flex Page` authorization for groups
* Fixed missing `onAdminSave` and `onAdminAfterSave` events when using `Flex Pages` and `Flex Users` [flex-objects#58](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/58)
* Fixed new `User Group` allowing bad group name to be saved [admin#1917](https://github.com/getgrav/grav-plugin-admin/issues/1917)
* Fixed `Language::getDefault()` returning false and not 'en'
* Fixed non-text links in `Excerpts::getExcerptFromHtml`
* Fixed CLI commands not properly intializing Plugins so events can fire
# v1.7.0-rc.12
## 06/08/2020
1. [](#improved)
* Changed `Folder::hasChildren` to `Folder::countChildren`
* Added `Content Editor` option to user account blueprint
1. [](#bugfix)
* Fixed new `Flex Page` not having correct form fields for the page type
* Fixed new `Flex User` erroring out on save (thanks @mikebi42)
* Fixed `Flex Object` request cache clear when saving object
* Fixed blueprint value filtering in lists [#2923](https://github.com/getgrav/grav/issues/2923)
* Fixed blueprint for `system.pages.hide_empty_folders` [#1925](https://github.com/getgrav/grav/issues/2925)
* Fixed file field in `Flex Objects` (use `Grav\Common\Flex\Types\GenericObject` instead of `FlexObject`) [flex-objects#37](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/37)
* Fixed saving nested file fields in `Flex Objects` [flex-objects#34](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/34)
* JSON Route of homepage with no route set is valid [form#425](https://github.com/getgrav/grav-plugin-form/issues/425)
# v1.7.0-rc.11
## 05/14/2020
1. [](#new)
* Added support for native `loading=lazy` attributes on images. Can be set in `system.images.defaults` or per md image with `?loading=lazy` [#2910](https://github.com/getgrav/grav/issues/2910)
1. [](#improved)
* Added `PageCollection::all()` to mimic Pages class
* Added system configuration support for `HTTP_X_Forwarded` headers (host disabled by default)
* Updated `PHPUserAgentParser` to 1.0.0
* Improved docblocks
* Fixed some phpstan issues
* Tighten vendor requirements
1. [](#bugfix)
* Fix for uppercase image extensions
* Fix for `&` errors in HTML when passed to `Excerpts.php`
# v1.7.0-rc.10
## 04/30/2020
1. [](#new)
* Changed `Response::get()` used by **GPM/Admin** to use [Symfony HttpClient v4.4](https://symfony.com/doc/current/components/http_client.html) (`composer install --nodev` required for Git installations)
* Added new `Excerpts::processLinkHtml()` method
1. [](#bugfix)
* Fixed `Flex Pages` admin with PHP `intl` extension enabled when using custom page order
* Fixed saving non-numeric-prefix `Flex Page` changing to numeric-prefix [flex-objects#56](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/56)
* Copying `Flex Page` in admin does nothing [flex-objects#55](https://github.com/trilbymedia/grav-plugin-flex-objects/issues/55)
* Force GPM progress to be between 0-100%
# v1.7.0-rc.9
## 04/27/2020
1. [](#new)
* Support for `webp` image format in Page Media [#1168](https://github.com/getgrav/grav/issues/1168)
* Added `Route::getBase()` method
1. [](#improved)
* Support symlinks when saving `File`
1. [](#bugfix)
* Fixed flex objects with integer keys not working [#2863](https://github.com/getgrav/grav/issues/2863)
* Fixed `Pages::instances()` returning null values when using `Flex Pages` [#2889](https://github.com/getgrav/grav/issues/2889)
* Fixed Flex Page parent `header.admin.children_display_order` setting being ignored in Admin [#2881](https://github.com/getgrav/grav/issues/2881)
* Implemented missing Flex `$pageCollection->batch()` and `$pageCollection->order()` methods
* Fixed user avatar creation for new `Flex Users` when using folder storage
* Fixed `Trying to access array offset on value of type null` PHP 7.4 error in `Plugin.php`
* Fixed Gregwar Image library using `.jpeg` for cached images, rather use `.jpg`
* Fixed `Flex Pages` with `00.home` page not having ordering set
* Fixed `Flex Pages` not updating empty content on save [#2890](https://github.com/getgrav/grav/issues/2890)
* Fixed creating new Flex User with file storage
* Fixed saving new `Flex Object` with custom key
* Fixed broken `Plugin::config()` method
# v1.7.0-rc.8
## 03/19/2020
1. [](#new)
* Added `MediaTrait::freeMedia()` method to free media (and memory)
* Added `Folder::hasChildren()` method to determine if a folder has child folders
1. [](#improved)
* Save memory when updating large flex indexes
* Better `Content-Encoding` handling in Apache when content compression is disabled [#2619](https://github.com/getgrav/grav/issues/2619)
1. [](#bugfix)
* Fixed creating new `Flex User` when folder storage has been selected
* Fixed some bugs in Flex root page methods
* Fixed bad default redirect code in `ControllerResponseTrait::createRedirectResponse()`
* Fixed issue with PHP `HTTP_X_HTTP_METHOD_OVERRIDE` [#2847](https://github.com/getgrav/grav/issues/2847)
* Fixed numeric usernames not working in `Flex Users`
* Implemented missing Flex `$page->move()` method
# v1.7.0-rc.7
## 03/05/2020
1. [](#new)
* Added `Session::regenerateId()` method to properly prevent session fixation issues
* Added configuration option `system.strict_mode.blueprint_compat` to maintain old `validation: strict` behavior [#1273](https://github.com/getgrav/grav/issues/1273)
1. [](#improved)
* Improved Flex events
* Updated CLI commands to use the new methods to initialize Grav
1. [](#bugfix)
* Fixed Flex Pages having broken `isFirst()`, `isLast()`, `prevSibling()`, `nextSibling()` and `adjacentSibling()`
* Fixed broken ordering sometimes when saving/moving visible `Flex Page` [#2837](https://github.com/getgrav/grav/issues/2837)
* Fixed ordering being lost when saving modular `Flex Page`
* Fixed `validation: strict` not working in blueprints (see `system.strict_mode.blueprint_compat` setting) [#1273](https://github.com/getgrav/grav/issues/1273)
* Fixed `Blueprint::extend()` and `Blueprint::embed()` not initializing dynamic properties
* Fixed fatal error on storing flex flash using new object without a key
* Regression: Fixed unchecking toggleable having no effect in Flex forms
* Fixed changing page template in Flex Pages [#2828](https://github.com/getgrav/grav/issues/2828)
# v1.7.0-rc.6
## 02/11/2020
1. [](#new)
* Plugins & Themes: Call `$plugin->autoload()` and `$theme->autoload()` automatically when object gets initialized
* CLI: Added `$grav->initializeCli()` method
* Flex Directory: Implemented customizable configuration
* Flex Storages: Added support for renaming directory entries
1. [](#improved)
* Vendor updates to latest
1. [](#bugfix)
* Regression: Fixed fatal error in blueprints [#2811](https://github.com/getgrav/grav/issues/2811)
* Regression: Fixed bad method call in FlexDirectory::getAuthorizeRule()
* Regression: Fixed fatal error in admin if the site has custom permissions in `onAdminRegisterPermissions`
* Regression: Fixed flex user index with folder storage
* Regression: Fixed fatal error in `bin/plugin` command
* Fixed `FlexObject::triggerEvent()` not emitting events [#2816](https://github.com/getgrav/grav/issues/2816)
* Grav 1.7: Fixed saving Flex configuration with ignored values becoming null
* Grav 1.7: Fixed `bin/plugin` initialization
* Grav 1.7: Fixed Flex Page cache key not taking account active language
# v1.7.0-rc.5
## 02/03/2020
1. [](#bugfix)
* Regression: Flex not working in PHP 7.2 or older
* Fixed creating first user from admin not clearing Flex User directory cache [#2809](https://github.com/getgrav/grav/issues/2809)
* Fixed Flex Pages allowing root page to be deleted
# v1.7.0-rc.4
## 02/03/2020
1. [](#new)
* _POTENTIAL BREAKING CHANGE:_ Upgraded Parsedown to 1.7 for Parsedown-Extra 0.8. Plugins that extend Parsedown may need a fix to render as HTML
* Added `$grav['flex']` to access all registered Flex Directories
* Added `$grav->dispatchEvent()` method for PSR-14 events
* Added `FlexRegisterEvent` which triggers when `$grav['flex']` is being accessed the first time
* Added Flex cache configuration options
* Added `PluginsLoadedEvent` which triggers after plugins have been loaded but not yet initialized
* Added `SessionStartEvent` which triggers when session is started
* Added `PermissionsRegisterEvent` which triggers when `$grav['permissions']` is being accessed the first time
* Added support for Flex Directory specific configuration
* Added support for more advanced ACL
* Added `flatten_array` filter to form field validation
* Added support for `security@: or: [admin.super, admin.pages]` in blueprints (nested AND/OR mode support)
1. [](#improved)
* Blueprint validation: Added `validate: value_type: bool|int|float|string|trim` to `array` to filter all the values inside the array
* Twig `url()` takes now third parameter (`true`) to return URL on non-existing file instead of returning false
1. [](#bugfix)
* Grav 1.7: Fixed blueprint loading issues [#2782](https://github.com/getgrav/grav/issues/2782)
* Fixed PHP 7.4 compatibility issue with `Stream`
* Fixed new `Flex Users` being stored with wrong filename, login issues [#2785](https://github.com/getgrav/grav/issues/2785)
* Fixed `ignore_empty: true` not removing empty values in blueprint filtering
* Fixed `{{ false|string }}` twig to return '0' instead of ''
* Fixed twig `url()` failing if stream has extra slash in it (e.g. `user:///data`)
* Fixed `Blueprint::filter()` returning null instead of array if there is nothing to return
* Fixed `Cannot use a scalar value as an array` error in `Utils::arrayUnflattenDotNotation()`, ignore nested structure instead
* Fixed `Route` instance in multi-site setups
* Fixed `system.translations: false` breaking `Inflector` methods
* Fixed filtering ignored (eg. `security@: admin.super`) fields causing `Flex Objects` to lose data on save
* Grav 1.7: Fixed `Flex Pages` unserialize issues if Flex-Objects Plugin has not been installed
* Grav 1.7: Require Flex-Objects Plugin to edit Flex Accounts
* Grav 1.7: Fixed bad result on testing `isPage()` when using Flex Pages
# v1.7.0-rc.3
## 01/02/2020
1. [](#new)
* Added root page support for `Flex Pages`
1. [](#improved)
* Twig filter `|yaml_serialize`: added support for `JsonSerializable` objects and other array-like objects
* Added support for returning Flex Page specific permissions for admin and testing
* Updated copyright dates to `2020`
* Various vendor updates
1. [](#bugfix)
* Grav 1.7: Fixed error on page initialization [#2753](https://github.com/getgrav/grav/issues/2753)
* Fixed checking ACL for another user (who is not currently logged in) in a Flex Object or Directory
* Fixed bug in Windows where `Filesystem::dirname()` returns backslashes
* Fixed Flex object issues in Windows [#2773](https://github.com/getgrav/grav/issues/2773)
# v1.7.0-rc.2
## 12/04/2019
1. [](#new)
* Updated Symfony Components to 4.4
* Added support for page specific CRUD permissions (`Flex Pages` only)
* Added new `-r <job-id>` option for Scheduler CLI command to force-run a job [#2720](https://github.com/getgrav/grav/issues/2720)
* Added `Utils::isAssoc()` and `Utils::isNegative()` helper methods
* Changed `UserInterface::authorize()` to return `null` having the same meaning as `false` if access is denied because of no matching rule
* Changed `FlexAuthorizeInterface::isAuthorized()` to return `null` having the same meaning as `false` if access is denied because of no matching rule
* Moved all Flex type classes under `Grav\Common\Flex`
* DEPRECATED `Grav\Common\User\Group` in favor of `$grav['user_groups']`, which contains Flex UserGroup collection
* DEPRECATED `$page->modular()` in favor of `$page->isModule()` for better readability
* Fixed phpstan issues in all code up to level 3
1. [](#improved)
* Improved twig `|array` filter to work with iterators and objects with `toArray()` method
* Updated Flex `SimpleStorage` code to feature match the other storages
* Improved user and group ACL to support deny permissions (`Flex Users` only)
* Improved twig `authorize()` function to work better with nested rule parameters
* Output the current username that Scheduler is using if crontab not setup
* Translations: rename MODULAR to MODULE everywhere
* Optimized `Flex Pages` collection filtering
* Frontend optimizations for `Flex Pages`
1. [](#bugfix)
* Regression: Fixed Grav update bug [#2722](https://github.com/getgrav/grav/issues/2722)
* Fixed fatal error when calling `{{ grav.undefined }}`
* Grav 1.7: Reverted `$object->getStorageKey()` interface as it was not a good idea, added `getMasterKey()` for pages
* Grav 1.7: Fixed logged in user being able to delete his own account from admin account manager
# v1.7.0-rc.1
## 11/06/2019
1. [](#new)
* Added `Flex Pages` to Grav core and removed Flex Objects plugin dependency
* Added `Utils::simpleTemplate()` method for very simple variable templating
* Added `array_diff()` twig function
* Added `template_from_string()` twig function
* Updated Symfony Components to 4.3
1. [](#improved)
* Improved `Scheduler` cron command check and more useful CLI information
* Improved `Flex Users`: obey blueprints and allow Flex to be used in admin only
* Improved `Flex` to support custom site template paths
* Changed Twig `{% cache %}` tag to not need unique key, and `lifetime` is now optional
* Added mime support for file formatters
* Updated built-in `composer.phar` to latest `1.9.0`
* Updated vendor libraries
* Use `Symfony EventDispatcher` directly and not rockettheme/toolbox wrapper
1. [](#bugfix)
* Fixed exception caused by missing template type based on `Accept:` header [#2705](https://github.com/getgrav/grav/issues/2705)
* Fixed `Page::untranslatedLanguages()` not being symmetrical to `Page::translatedLanguages()`
* Fixed `Flex Pages` not calling `onPageProcessed` event when cached
* Fixed phpstan issues in Framework up to level 7
* Fixed issue with duplicate configuration settings in Flex Directory
* Fixed fatal error if there are numeric folders in `Flex Pages`
* Fixed error on missing `Flex` templates in if `Flex Objects` plugin isn't installed
* Fixed `PageTranslateTrait::getAllLanguages()` and `getAllLanguages()` to include default language
* Fixed multi-language saving issues with default language in `Flex Pages`
* Selfupgrade CLI: Fixed broken selfupgrade assets reference [#2681](https://github.com/getgrav/grav/issues/2681)
* Grav 1.7: Fixed PHP 7.1 compatibility issues
* Grav 1.7: Fixed fatal error in multi-site setups
* Grav 1.7: Fixed `Flex Pages` routing if using translated slugs or `system.hide_in_urls` setting
* Grav 1.7: Fixed bug where Flex index file couldn't be disabled
# v1.7.0-beta.10
## 10/03/2019
1. [](#improved)
* Flex: Removed extra exists check when creating object (messes up "non-existing" pages)
* Support customizable null character replacement in `CSVFormatter::decode()`
1. [](#bugfix)
* Fixed wrong Grav param separator when using `Route` class
* Fixed Flex User Avatar not fully backwards compatible with old user
* Grav 1.7: Fixed prev/next page missing pages if pagination was turned on in page header
* Grav 1.7: Reverted setting language for every page during initialization
* Grav 1.7: Fixed numeric language inconsistencies
# v1.7.0-beta.9
## 09/26/2019
1. [](#new)
* Added a new `{% cache %}` Twig tag eliminating need for `twigcache` extension.
1. [](#improved)
* Improved blueprint initialization in Flex Objects (fixes content aware fields)
* Improved Flex FolderStorage class to better hide storage specific logic
* Exception will output a badly formatted line in `CsvFormatter::decode()`
1. [](#bugfix)
* Fixed error when activating Flex Accounts in GRAV system configuration (PHP 7.1)
* Fixed Grav parameter handling in `RouteFactory::createFromString()`
# v1.7.0-beta.8
## 09/19/2019
1. [](#new)
* Added new `Security::sanitizeSVG()` function
* Backwards compatibility break: `FlexStorageInterface::getStoragePath()` and `getMediaPath()` can now return null
1. [](#improved)
* Several FlexObject loading improvements
* Added `bin/grav page-system-validator [-r|--record] [-c|--check]` to test Flex Pages
* Improved language support for `Route` class
1. [](#bugfix)
* Regression: Fixed language fallback
* Regression: Fixed translations when language code is used for non-language purposes
* Regression: Allow SVG avatar images for users
* Fixed error in `Session::getFlashObject()` if Flex Form is being used
* Fixed broken Twig `dump()`
* Fixed `Page::modular()` and `Page::modularTwig()` returning `null` for folders and other non-initialized pages
* Fixed 404 error when you click to non-routable menu item with children: redirect to the first child instead
* Fixed wrong `Pages::dispatch()` calls (with redirect) when we really meant to call `Pages::find()`
* Fixed avatars not being displayed with flex users [#2431](https://github.com/getgrav/grav/issues/2431)
* Fixed initial Flex Object state when creating a new objects in a form
# v1.7.0-beta.7
## 08/30/2019
@@ -29,7 +705,7 @@
* Added a new `bin/grav server` CLI command to easily run Symfony or PHP built-in webservers
* Added `hasFlexFeature()` method to test if `FlexObject` or `FlexCollection` implements a given feature
* Added `getFlexFeatures()` method to return all features that `FlexObject` or `FlexCollection` implements
* Deprecated `FlexDirectory::update()` and `FlexDirectory::remove()`
* DEPRECATED `FlexDirectory::update()` and `FlexDirectory::remove()`
* Added `FlexStorage::getMetaData()` to get updated object meta information for listed keys
* Added `Language::getPageExtensions()` to get full list of supported page language extensions
* Added `$grav->close()` method to properly terminate the request with a response
@@ -77,7 +753,7 @@
* Updated with Grav 1.6.11 fixes
1. [](#improved)
* Updated the Clockwork text
# v1.7.0-beta.1
## 06/14/2019
@@ -85,11 +761,199 @@
* Added support for [Clockwork](https://underground.works/clockwork) developer tools (now default debugger)
* Added support for [Tideways XHProf](https://github.com/tideways/php-xhprof-extension) PHP Extension for profiling method calls
* Added Twig profiling for Clockwork debugger
* Updated Symfony Components to 4.3
* Added support for Twig 2.11 (compatible with Twig 1.40+)
* Optimization: Initialize debugbar only after the configuration has been loaded
* Optimization: Combine some early Grav processors into a single one
# v1.6.31
## 12/14/2020
1. [](#improved)
* Allow all CSS and JS via `robots.txt` [#2006](https://github.com/getgrav/grav/issues/2006) [#3067](https://github.com/getgrav/grav/issues/3067)
1. [](#bugfix)
* Fixed `pages` field escaping issues, needs admin update, too [admin#1990](https://github.com/getgrav/grav-plugin-admin/issues/1990)
* Fix `svg-image` issue with classes applied to all elements [#3068](https://github.com/getgrav/grav/issues/3068)
# v1.6.30
## 12/03/2020
1. [](#bugfix)
* Rollback `samesite` cookie logic as it causes issues with PHP < 7.3 [#309](https://github.com/getgrav/grav/issues/3089)
* Fixed issue with `.travis.yml` due to GitHub API deprecated functionality
# v1.6.29
## 12/02/2020
1. [](#new)
* Added basic support for `user/config/versions.yaml`
1. [](#improved)
* Updated bundled JQuery to latest version `3.5.1`
* Forward a `sid` to GPM when downloading a premium package via CLI
* Better handling of missing repository index [grav-plugin-admin#1916](https://github.com/getgrav/grav-plugin-admin/issues/1916)
* Set `grav_cli` as referrer when using `Response` from CLI
* Add option for timeout in `self-upgrade` command [#3013](https://github.com/getgrav/grav/pull/3013)
* Allow to set SameSite from system.yaml [#3063](https://github.com/getgrav/grav/pull/3063)
* Update media.yaml with some MS Office mimetypes [#3070](https://github.com/getgrav/grav/pull/3070)
1. [](#bugfix)
* Fixed hardcoded system folder in blueprints, config and language streams
* Added `.htaccess` rule to block attempts to use Twig in the request URL
* Fix compatibility with Symfony 4.2 and up. [#3048](https://github.com/getgrav/grav/pull/3048)
* Fix failing example custom shceduled job. [#3050](https://github.com/getgrav/grav/pull/3050)
* Fix for XSS advisory [GHSA-cvmr-6428-87w9](https://github.com/getgrav/grav/security/advisories/GHSA-cvmr-6428-87w9)
* Fix uploads_dangerous_extensions checking [#3060](https://github.com/getgrav/grav/pull/3060)
* Remove redundant prefixing of `.` to extension [#3060](https://github.com/getgrav/grav/pull/3060)
* Check exact extension in checkFilename utility [#3061](https://github.com/getgrav/grav/pull/3061)
# v1.6.28
## 10/07/2020
1. [](#new)
* Back-ported twig `{% cache %}` tag from Grav 1.7
* Back-ported `Utils::fullPath()` helper function from Grav 1.7
* Back-ported `{{ svg_image() }}` Twig function from Grav 1.7
* Back-ported `Folder::countChildren()` function from Grav 1.7
1. [](#improved)
* Use new `{{ theme_var() }}` enhanced logic from Grav 1.7
* Improved `Excerpts` class with fixes and functionality from Grav 1.7
* Ensure `onBlueprintCreated()` is initialized first
* Do not cache default `404` error page
* Composer update of vendor libraries
* Switched `Caddyfile` to use new Caddy2 syntax + improved usability
1. [](#bugfix)
* Fixed Referer reference during GPM calls.
* Fixed fatal error with toggled lists
# v1.6.27
## 09/01/2020
1. [](#improved)
* Right trim route for safety
* Use the proper ellipsis for summary [#2939](https://github.com/getgrav/grav/pull/2939)
* Left pad schedule times with zeros [#2921](https://github.com/getgrav/grav/pull/2921)
# v1.6.26
## 06/08/2020
1. [](#improved)
* Added new configuration option to control the supported attributes in markdown links [#2882](https://github.com/getgrav/grav/issues/2882)
1. [](#bugfix)
* Fixed blueprint for `system.pages.hide_empty_folders` [#1925](https://github.com/getgrav/grav/issues/2925)
* JSON Route of homepage with no route set is valid
* Fix case-insensitive search of location header [form#425](https://github.com/getgrav/grav-plugin-form/issues/425)
# v1.6.25
## 05/14/2020
1. [](#improved)
* Added system configuration support for `HTTP_X_Forwarded` headers (host disabled by default)
* Updated `PHPUserAgentParser` to 1.0.0
* Bump `Go` to version 1.13 in `travis.yaml`
# v1.6.24
## 04/27/2020
1. [](#improved)
* Added support for `X-Forwarded-Host` [#2891](https://github.com/getgrav/grav/pull/2891)
* Disable XDebug in Travis builds
# v1.6.23
## 03/19/2020
1. [](#new)
* Moved `Parsedown` 1.6 and `ParsedownExtra` 0.7 into `Grav\Framework\Parsedown` to allow fixes
* Added `aliases.php` with references to direct `\Parsedown` and `\ParsedownExtra` references
1. [](#improved)
* Upgraded `jQuery` to latest 3.4.1 version [#2859](https://github.com/getgrav/grav/issues/2859)
1. [](#bugfix)
* Fixed PHP 7.4 issue in ParsedownExtra [#2832](https://github.com/getgrav/grav/issues/2832)
* Fix for [user reported](https://twitter.com/OriginalSicksec) CVE path-based open redirect
* Fix for `stream_set_option` error with PHP 7.4 via Toolbox#28 [#2850](https://github.com/getgrav/grav/issues/2850)
# v1.6.22
## 03/05/2020
1. [](#new)
* Added `Pages::reset()` method
1. [](#improved)
* Updated Negotiation library to address issues [#2513](https://github.com/getgrav/grav/issues/2513)
1. [](#bugfix)
* Fixed issue with search plugins not being able to switch between page translations
* Fixed issues with `Pages::baseRoute()` not picking up active language reliably
* Reverted `validation: strict` fix as it breaks sites, see [#1273](https://github.com/getgrav/grav/issues/1273)
# v1.6.21
## 02/11/2020
1. [](#new)
* Added `ConsoleCommand::setLanguage()` method to set language to be used from CLI
* Added `ConsoleCommand::initializeGrav()` method to properly set up Grav instance to be used from CLI
* Added `ConsoleCommand::initializePlugins()`method to properly set up all plugins to be used from CLI
* Added `ConsoleCommand::initializeThemes()`method to properly set up current theme to be used from CLI
* Added `ConsoleCommand::initializePages()` method to properly set up pages to be used from CLI
1. [](#improved)
* Vendor updates
1. [](#bugfix)
* Fixed `bin/plugin` CLI calling `$themes->init()` way too early (removed it, use above methods instead)
* Fixed call to `$grav['page']` crashing CLI
* Fixed encoding problems when PHP INI setting `default_charset` is not `utf-8` [#2154](https://github.com/getgrav/grav/issues/2154)
# v1.6.20
## 02/03/2020
1. [](#bugfix)
* Fixed incorrect routing caused by `str_replace()` in `Uri::init()` [#2754](https://github.com/getgrav/grav/issues/2754)
* Fixed session cookie is being set twice in the HTTP header [#2745](https://github.com/getgrav/grav/issues/2745)
* Fixed session not restarting if user was invalid (downgrading from Grav 1.7)
* Fixed filesystem iterator calls with non-existing folders
* Fixed `checkbox` field not being saved, requires also Form v4.0.2 [#1225](https://github.com/getgrav/grav/issues/1225)
* Fixed `validation: strict` not working in blueprints [#1273](https://github.com/getgrav/grav/issues/1273)
* Fixed `Data::filter()` removing empty fields (such as empty list) by default [#2805](https://github.com/getgrav/grav/issues/2805)
* Fixed fatal error with non-integer page param value [#2803](https://github.com/getgrav/grav/issues/2803)
* Fixed `Assets::addInlineJs()` parameter type mismatch between v1.5 and v1.6 [#2659](https://github.com/getgrav/grav/issues/2659)
* Fixed `site.metadata` saving issues [#2615](https://github.com/getgrav/grav/issues/2615)
# v1.6.19
## 12/04/2019
1. [](#new)
* Catch PHP 7.4 deprecation messages and report them in debugbar instead of throwing fatal error
1. [](#bugfix)
* Fixed fatal error when calling `{{ grav.undefined }}`
* Fixed multiple issues when there are no pages in the site
* PHP 7.4 fix for [#2750](https://github.com/getgrav/grav/issues/2750)
# v1.6.18
## 12/02/2019
1. [](#bugfix)
* PHP 7.4 fix in `Pages::buildSort()`
* Updated vendor libraries for PHP 7.4 fixes in Twig and other libraries
* Fixed fatal error when `$page->id()` is null [#2731](https://github.com/getgrav/grav/pull/2731)
* Fixed cache conflicts on pages with no set id
* Fix rewrite rule for for `lighttpd` default config [#721](https://github.com/getgrav/grav/pull/2721)
# v1.6.17
## 11/06/2019
1. [](#new)
* Added working ETag (304 Not Modified) support based on the final rendered HTML
1. [](#improved)
* Safer file handling + customizable null char replacement in `CsvFormatter::decode()`
* Change of Behavior: `Inflector::hyphenize` will now automatically trim dashes at beginning and end of a string.
* Change in Behavior for `Folder::all()` so no longer fails if trying to copy non-existent dot file [#2581](https://github.com/getgrav/grav/pull/2581)
* renamed composer `test-plugins` script to `phpstan-plugins` to be more explicit [#2637](https://github.com/getgrav/grav/pull/2637)
1. [](#bugfix)
* Fixed PHP 7.1 bug in FlexMedia
* Fix cache image generation when using cropResize [#2639](https://github.com/getgrav/grav/pull/2639)
* Fix `array_merge()` exception with non-array page header metadata [#2701](https://github.com/getgrav/grav/pull/2701)
# v1.6.16
## 09/19/2019
1. [](#bugfix)
* Fixed Flex user creation if file storage is being used [#2444](https://github.com/getgrav/grav/issues/2444)
* Fixed `Badly encoded JSON data` warning when uploading files [#2663](https://github.com/getgrav/grav/issues/2663)
# v1.6.15
## 08/20/2019
@@ -120,7 +984,7 @@
* Support new GRAV_BASEDIR environment variable [#2541](https://github.com/getgrav/grav/pull/2541)
* Allow users to override plugin handler priorities [#2165](https://github.com/getgrav/grav/pull/2165)
1. [](#improved)
* Use new `Utils::getSupportedPageTypes()` to enforce `html,htm` at the front of the list [#2531](https://github.com/getgrav/grav/issues/2531)
* Use new `Utils::getSupportedPageTypes()` to enforce `html,htm` at the front of the list [#2531](https://github.com/getgrav/grav/issues/2531)
* Updated vendor libraries
* Markdown filter is now page-aware so that it works with modular references [admin#1731](https://github.com/getgrav/grav-plugin-admin/issues/1731)
* Check of `GRAV_USER_INSTANCE` constant is already defined [#2621](https://github.com/getgrav/grav/pull/2621)
@@ -139,7 +1003,7 @@
* Fixed `FlexObject::exists()` failing sometimes just after the object has been saved
* Fixed CSV formatter not encoding strings with `"` and `,` properly
* Fixed var order in `Validation.php` [#2610](https://github.com/getgrav/grav/issues/2610)
# v1.6.11
## 06/21/2019
@@ -170,7 +1034,7 @@
* Fixed regression with `bin/plugin` not listing the plugins available (1c725c0)
* Fixed bitwise operator in `TwigExtension::exifFunc()` [#2518](https://github.com/getgrav/grav/issues/2518)
* Fixed issue with lang prefix incorrectly identifying as admin [#2511](https://github.com/getgrav/grav/issues/2511)
* Fixed issue with `U0ils::pathPrefixedBYLanguageCode()` and trailing slash [#2510](https://github.com/getgrav/grav/issues/2511)
* Fixed issue with `U0ils::pathPrefixedBYLanguageCode()` and trailing slash [#2510](https://github.com/getgrav/grav/issues/2511)
* Fixed regresssion issue of `Utils::Url()` not returning `false` on failure. Added new optional `fail_gracefully` 3rd attribute to return string that caused failure [#2524](https://github.com/getgrav/grav/issues/2524)
# v1.6.9

View File

@@ -1,46 +1,133 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
Examples of behavior that contributes to a positive environment for our
community include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior by participants include:
Examples of unacceptable behavior include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
## Enforcement Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at contact@getgrav.org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
[INSERT CONTACT METHOD].
All complaints will be reviewed and investigated promptly and fairly.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available
at [https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

View File

@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2018 Grav
Copyright (c) 2021 Grav
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -3,7 +3,7 @@
[![PHPStan](https://img.shields.io/badge/PHPStan-enabled-brightgreen.svg?style=flat)](https://github.com/phpstan/phpstan)
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/cfd20465-d0f8-4a0a-8444-467f5b5f16ad/mini.png)](https://insight.sensiolabs.com/projects/cfd20465-d0f8-4a0a-8444-467f5b5f16ad)
[![Discord](https://img.shields.io/discord/501836936584101899.svg?logo=discord&colorB=728ADA&label=Discord%20Chat)](https://chat.getgrav.org)
[![Build Status](https://travis-ci.org/getgrav/grav.svg?branch=develop)](https://travis-ci.org/getgrav/grav) [![OpenCollective](https://opencollective.com/grav/backers/badge.svg)](#backers) [![OpenCollective](https://opencollective.com/grav/sponsors/badge.svg)](#sponsors)
[![PHP Tests](https://github.com/getgrav/grav/workflows/PHP%20Tests/badge.svg?branch=develop)](https://github.com/getgrav/grav/actions?query=workflow%3A%22PHP+Tests%22) [![OpenCollective](https://opencollective.com/grav/backers/badge.svg)](#backers) [![OpenCollective](https://opencollective.com/grav/sponsors/badge.svg)](#sponsors)
Grav is a **Fast**, **Simple**, and **Flexible**, file-based Web-platform. There is **Zero** installation required. Just extract the ZIP archive, and you are already up and running. It follows similar principles to other flat-file CMS platforms, but has a different design philosophy than most. Grav comes with a powerful **Package Management System** to allow for simple installation and upgrading of plugins and themes, as well as simple updating of Grav itself.
@@ -21,9 +21,13 @@ The underlying architecture of Grav is designed to use well-established and _bes
# Requirements
- PHP 7.1.3 or higher. Check the [required modules list](https://learn.getgrav.org/basics/requirements#php-requirements)
- PHP 7.3.6 or higher. Check the [required modules list](https://learn.getgrav.org/basics/requirements#php-requirements)
- Check the [Apache](https://learn.getgrav.org/basics/requirements#apache-requirements) or [IIS](https://learn.getgrav.org/basics/requirements#iis-requirements) requirements
# Documentation
The full documentation can be found from [learn.getgrav.org](https://learn.getgrav.org).
# QuickStart
These are the options to get Grav:
@@ -84,6 +88,11 @@ To update plugins and themes:
$ bin/gpm update
```
## Upgrading from older version
* [Upgrading to Grav 1.7](https://learn.getgrav.org/16/advanced/grav-development/grav-17-upgrade-guide)
* [Upgrading to Grav 1.6](https://learn.getgrav.org/16/advanced/grav-development/grav-16-upgrade-guide)
* [Upgrading from Grav <1.6](https://learn.getgrav.org/16/advanced/grav-development/grav-15-upgrade-guide)
# Contributing
We appreciate any contribution to Grav, whether it is related to bugs, grammar, or simply a suggestion or improvement! Please refer to the [Contributing guide](CONTRIBUTING.md) for more guidance on this topic.
@@ -128,7 +137,14 @@ See [LICENSE](LICENSE.txt)
# Running Tests
First install the dev dependencies by running `composer update` from the Grav root.
First install the dev dependencies by running `composer install` from the Grav root.
Then `composer test` will run the Unit Tests, which should be always executed successfully on any site.
Windows users should use the `composer test-windows` command.
You can also run a single unit test file, e.g. `composer test tests/unit/Grav/Common/AssetsTest.php`
To run phpstan tests, you should run:
* `composer phpstan` for global tests
* `composer phpstan-framework` for more strict tests
* `composer phpstan-plugins` to test all installed plugins

21
SECURITY.md Normal file
View File

@@ -0,0 +1,21 @@
# Security Policy
## Supported Versions
We are focusing our security updates on the following versions
| Version | Supported |
| ------- | ------------------ |
| 1.7.x | :white_check_mark: |
| 1.6.x | :warning: |
| < 1.6 | :x: |
## :warning: Versions
Versions with :warning: will be supported for security issues, however you won't be able to update to them, you will need to manually update through the [`direct-install` command](https://learn.getgrav.org/17/admin-panel/tools).
If you cannot update to the latest stable version available because, for example, your server does not meet the minimum PHP requirements, you can manually install a previous version by downloading the package from our Releases directory (https://github.com/getgrav/grav/releases).
## Reporting a Vulnerability
Please contact security@getgrav.org with a detailed explaination of the security issue found and we will work with you to get it resolved as fast as possible.

View File

@@ -0,0 +1 @@
/* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved. */

View File

@@ -0,0 +1 @@
/* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved. */

Binary file not shown.

46
bin/gpm
View File

@@ -1,9 +1,14 @@
#!/usr/bin/env php
<?php
/**
* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
use Grav\Common\Composer;
use Symfony\Component\Console\Application;
use Grav\Common\Grav;
use Grav\Console\Application\GpmApplication;
\define('GRAV_CLI', true);
\define('GRAV_REQUEST_TIME', microtime(true));
@@ -28,6 +33,13 @@ if (!ini_get('date.timezone')) {
date_default_timezone_set('UTC');
}
// Set internal encoding.
if (!\extension_loaded('mbstring')) {
die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
}
@ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');
if (!file_exists(GRAV_ROOT . '/index.php')) {
exit('FATAL: Must be run from ROOT directory of Grav!');
}
@@ -36,37 +48,7 @@ if (!function_exists('curl_version')) {
exit('FATAL: GPM requires PHP Curl module to be installed');
}
$climate = new League\CLImate\CLImate;
$climate->arguments->add([
'environment' => [
'prefix' => 'e',
'longPrefix' => 'env',
'description' => 'Configuration Environment',
'defaultValue' => 'localhost'
]
]);
$climate->arguments->parse();
// Set up environment based on params.
$environment = $climate->arguments->get('environment');
$grav = Grav::instance(array('loader' => $autoload));
$grav->setup($environment);
$grav['config']->init();
$grav['uri']->init();
$grav['users'];
$app = new Application('Grav Package Manager', GRAV_VERSION);
$app->addCommands(array(
new \Grav\Console\Gpm\IndexCommand(),
new \Grav\Console\Gpm\VersionCommand(),
new \Grav\Console\Gpm\InfoCommand(),
new \Grav\Console\Gpm\InstallCommand(),
new \Grav\Console\Gpm\UninstallCommand(),
new \Grav\Console\Gpm\UpdateCommand(),
new \Grav\Console\Gpm\SelfupgradeCommand(),
new \Grav\Console\Gpm\DirectInstallCommand(),
));
$app = new GpmApplication('Grav Package Manager', GRAV_VERSION);
$app->run();

View File

@@ -1,10 +1,14 @@
#!/usr/bin/env php
<?php
/**
* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
use Grav\Common\Composer;
use Grav\Common\Grav;
use League\CLImate\CLImate;
use Symfony\Component\Console\Application;
use Grav\Console\Application\GravApplication;
\define('GRAV_CLI', true);
\define('GRAV_REQUEST_TIME', microtime(true));
@@ -25,44 +29,22 @@ if (version_compare($ver = PHP_VERSION, $req = GRAV_PHP_MIN, '<')) {
exit(sprintf("You are running PHP %s, but Grav needs at least PHP %s to run.\n", $ver, $req));
}
$climate = new League\CLImate\CLImate;
$climate->arguments->add([
'environment' => [
'prefix' => 'e',
'longPrefix' => 'env',
'description' => 'Configuration Environment',
'defaultValue' => 'localhost'
]
]);
$climate->arguments->parse();
// Set up environment based on params.
$environment = $climate->arguments->get('environment');
$grav = Grav::instance(array('loader' => $autoload));
$grav->setup($environment);
if (!ini_get('date.timezone')) {
date_default_timezone_set('UTC');
}
// Set internal encoding.
if (!\extension_loaded('mbstring')) {
die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
}
@ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');
$grav = Grav::instance(array('loader' => $autoload));
if (!file_exists(GRAV_ROOT . '/index.php')) {
exit('FATAL: Must be run from ROOT directory of Grav!');
}
$app = new Application('Grav CLI Application', GRAV_VERSION);
$app->addCommands(array(
new \Grav\Console\Cli\InstallCommand(),
new \Grav\Console\Cli\ComposerCommand(),
new \Grav\Console\Cli\SandboxCommand(),
new \Grav\Console\Cli\CleanCommand(),
new \Grav\Console\Cli\ClearCacheCommand(),
new \Grav\Console\Cli\BackupCommand(),
new \Grav\Console\Cli\NewProjectCommand(),
new \Grav\Console\Cli\SchedulerCommand(),
new \Grav\Console\Cli\SecurityCommand(),
new \Grav\Console\Cli\LogViewerCommand(),
new \Grav\Console\Cli\YamlLinterCommand(),
new \Grav\Console\Cli\ServerCommand(),
));
$app = new GravApplication('Grav CLI Application', GRAV_VERSION);
$app->run();

View File

@@ -1,13 +1,14 @@
#!/usr/bin/env php
<?php
/**
* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
use Grav\Common\Composer;
use Symfony\Component\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\Console\Formatter\OutputFormatterStyle;
use Grav\Common\Grav;
use Grav\Common\Filesystem\Folder;
use Grav\Console\Application\PluginApplication;
\define('GRAV_CLI', true);
\define('GRAV_REQUEST_TIME', microtime(true));
@@ -32,119 +33,19 @@ if (!ini_get('date.timezone')) {
date_default_timezone_set('UTC');
}
// Set internal encoding.
if (!\extension_loaded('mbstring')) {
die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
}
@ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');
if (!file_exists(GRAV_ROOT . '/index.php')) {
exit('FATAL: Must be run from ROOT directory of Grav!');
}
$climate = new League\CLImate\CLImate;
$climate->arguments->add([
'environment' => [
'prefix' => 'e',
'longPrefix' => 'env',
'description' => 'Configuration Environment',
'defaultValue' => 'localhost'
]
]);
$climate->arguments->parse();
$environment = $climate->arguments->get('environment');
// Bootstrap Grav container.
$grav = Grav::instance(array('loader' => $autoload));
$grav->setup($environment);
$grav['config']->init();
$grav['uri']->init();
$grav['users'];
$grav['plugins']->init();
$grav['themes']->init();
$app = new Application('Grav Plugins Commands', GRAV_VERSION);
$pattern = '([A-Z]\w+Command\.php)';
// get arguments and strip the application name
if (null === $argv) {
$argv = $_SERVER['argv'];
}
$bin = array_shift($argv);
$name = array_shift($argv);
$argv = array_merge([$bin], $argv);
$input = new ArgvInput($argv);
/** @var \Grav\Common\Data\Data $plugin */
$plugin = $grav['plugins']->get($name);
$output = new ConsoleOutput();
$output->getFormatter()->setStyle('red', new OutputFormatterStyle('red', null, array('bold')));
$output->getFormatter()->setStyle('white', new OutputFormatterStyle('white', null, array('bold')));
if (!$name) {
$output->writeln('');
$output->writeln('<red>Usage:</red>');
$output->writeln(" {$bin} [slug] [command] [arguments]");
$output->writeln('');
$output->writeln('<red>Example:</red>');
$output->writeln(" {$bin} error log -l 1 --trace");
$list = Folder::all('plugins://', ['compare' => 'Pathname', 'pattern' => '/\/cli\/' . $pattern . '$/usm', 'levels' => 2]);
$total = 0;
if (count($list)) {
$available = [];
$output->writeln('');
$output->writeln('<red>Plugins with CLI available:</red>');
foreach ($list as $index => $entry) {
$split = explode('/', $entry);
$entry = array_shift($split);
$index = str_pad($index++ + 1, 2, '0', STR_PAD_LEFT);
$total = str_pad($total++ + 1, 2, '0', STR_PAD_LEFT);
if (\in_array($entry, $available, true)) {
$total--;
continue;
}
$available[] = $entry;
$commands_count = $index - $total + 1;
$output->writeln(' ' . $total . '. <red>' . str_pad($entry, 15) . "</red> <white>{$bin} {$entry} list</white>");
}
}
exit;
} else {
if (is_null($plugin)) {
$output->writeln('');
$output->writeln("<red>$name plugin not found</red>");
die;
}
if (!$plugin->enabled) {
$output->writeln('');
$output->writeln("<red>$name not enabled</red>");
die;
}
}
if ($plugin === null) {
$output->writeln("<red>Grav Plugin <white>'{$name}'</white> is not installed</red>");
exit;
}
$path = 'plugins://' . $name . '/cli';
try {
$commands = Folder::all($path, ['compare' => 'Filename', 'pattern' => '/' . $pattern . '$/usm', 'levels' => 1]);
} catch (\RuntimeException $e) {
$output->writeln("<red>No Console Commands for <white>'{$name}'</white> where found in <white>'{$path}'</white></red>");
exit;
}
foreach ($commands as $command_path) {
$full_path = $grav['locator']->findResource("plugins://{$name}/cli/{$command_path}");
require_once $full_path;
$command_class = 'Grav\Plugin\Console\\' . preg_replace('/.php$/', '', $command_path);
$command = new $command_class();
$app->add($command);
}
$app->run($input);
$app = new PluginApplication('Grav Plugins Commands', GRAV_VERSION);
$app->run();

1
cache/.gitkeep vendored
View File

@@ -0,0 +1 @@
/* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved. */

View File

@@ -1,4 +1,5 @@
actor: Tester
bootstrap: _bootstrap.php
paths:
tests: tests
log: tests/_output
@@ -6,7 +7,6 @@ paths:
support: tests/_support
envs: tests/_envs
settings:
bootstrap: _bootstrap.php
colors: true
memory_limit: 1024M
extensions:

View File

@@ -2,66 +2,83 @@
"name": "getgrav/grav",
"type": "project",
"description": "Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS",
"keywords": ["cms","flat-file cms","flat cms","flatfile cms","php"],
"keywords": [
"cms",
"flat-file cms",
"flat cms",
"flatfile cms",
"php"
],
"homepage": "https://getgrav.org",
"license": "MIT",
"require": {
"php": ">=7.1.3",
"php": "^7.3.6 || ^8.0",
"ext-json": "*",
"ext-mbstring": "*",
"ext-openssl": "*",
"ext-curl": "*",
"ext-zip": "*",
"ext-dom": "*",
"symfony/polyfill-iconv": "^1.9",
"symfony/polyfill-php72": "^1.9",
"symfony/polyfill-php73": "^1.9",
"ext-libxml": "*",
"symfony/polyfill-mbstring": "~1.20",
"symfony/polyfill-iconv": "^1.20",
"symfony/polyfill-php74": "^1.20",
"symfony/polyfill-php80": "^1.20",
"psr/simple-cache": "^1.0",
"psr/http-message": "^1.0",
"psr/http-server-middleware": "^1.0",
"kodus/psr7-server": "*",
"nyholm/psr7": "^1.0",
"twig/twig": "~1.0",
"erusev/parsedown": "1.6.4",
"erusev/parsedown-extra": "~0.7",
"symfony/yaml": "~4.2",
"symfony/console": "~4.2.0",
"symfony/event-dispatcher": "~4.2.0",
"symfony/var-dumper": "~4.2.0",
"symfony/process": "~4.2.0",
"doctrine/cache": "^1.8",
"doctrine/collections": "^1.5",
"guzzlehttp/psr7": "^1.4",
"filp/whoops": "~2.2",
"psr/container": "~1.0.0",
"nyholm/psr7-server": "^1.0",
"nyholm/psr7": "^1.3",
"twig/twig": "~1.44",
"erusev/parsedown": "^1.7",
"erusev/parsedown-extra": "~0.8",
"symfony/contracts": "~1.1",
"symfony/yaml": "~4.4",
"symfony/console": "~4.4",
"symfony/event-dispatcher": "~4.4",
"symfony/var-dumper": "~4.4",
"symfony/process": "~4.4",
"doctrine/cache": "^1.10",
"doctrine/collections": "^1.6",
"guzzlehttp/psr7": "^1.7",
"filp/whoops": "~2.9",
"matthiasmullie/minify": "^1.3",
"monolog/monolog": "~1.0",
"gregwar/image": "2.*",
"donatj/phpuseragentparser": "~0.10",
"pimple/pimple": "~3.2",
"rockettheme/toolbox": "~1.4",
"maximebf/debugbar": "~1.15",
"league/climate": "^3.4",
"monolog/monolog": "~1.25",
"gregwar/image": "dev-php8",
"gregwar/cache": "dev-php8",
"donatj/phpuseragentparser": "~1.1",
"pimple/pimple": "~3.3.0",
"rockettheme/toolbox": "~1.5",
"maximebf/debugbar": "~1.16",
"league/climate": "^3.6",
"antoligy/dom-string-iterators": "^1.0",
"miljar/php-exif": "^0.6.4",
"composer/ca-bundle": "^1.0",
"miljar/php-exif": "^0.6",
"composer/ca-bundle": "^1.2",
"dragonmantank/cron-expression": "^1.2",
"phive/twig-extensions-deferred": "^1.0",
"willdurand/negotiation": "^2.3",
"itsgoingd/clockwork": "~4.0"
"willdurand/negotiation": "^3.0",
"itsgoingd/clockwork": "^5.0",
"enshrined/svg-sanitize": "~0.13",
"symfony/http-client": "^4.4",
"composer/semver": "^1.4"
},
"require-dev": {
"codeception/codeception": "^2.4",
"phpstan/phpstan": "^0.11",
"phpstan/phpstan-deprecation-rules": "^0.11.0",
"phpunit/php-code-coverage": "~6.0",
"fzaninotto/faker": "^1.8",
"victorjonsson/markdowndocs": "dev-master"
"codeception/codeception": "^4.1",
"phpstan/phpstan": "^0.12",
"phpstan/phpstan-deprecation-rules": "^0.12",
"phpunit/php-code-coverage": "~9.2",
"victorjonsson/markdowndocs": "dev-master",
"codeception/module-asserts": "^1.3",
"codeception/module-phpbrowser": "^1.0",
"symfony/service-contracts": "*"
},
"replace": {
"symfony/polyfill-php72": "*",
"symfony/polyfill-php73": "*"
},
"suggest": {
"ext-mbstring": "Recommended for better performance",
"ext-iconv": "Recommended for better performance",
"ext-zend-opcache": "Recommended for better performance",
"ext-intl": "Recommended for multi-language sites",
"ext-memcache": "Needed to support Memcache servers",
@@ -71,7 +88,7 @@
"config": {
"apcu-autoloader": true,
"platform": {
"php": "7.1.3"
"php": "7.3.6"
}
},
"repositories": [
@@ -81,25 +98,32 @@
},
{
"type": "vcs",
"url": "https://github.com/itsgoingd/clockwork"
"url": "https://github.com/getgrav/Cache"
},
{
"type": "vcs",
"url": "https://github.com/getgrav/Image"
}
],
"autoload": {
"psr-4": {
"Grav\\": "system/src/Grav"
},
"files": ["system/defines.php"]
"files": [
"system/defines.php"
]
},
"archive": {
"exclude": ["VERSION"]
"exclude": [
"VERSION"
]
},
"scripts": {
"api-16": "vendor/bin/phpdoc-md generate system/src > user/pages/14.api/default.16.md",
"api-15": "vendor/bin/phpdoc-md generate system/src > user/pages/14.api/default.md",
"api-17": "vendor/bin/phpdoc-md generate system/src > user/pages/14.api/default.17.md",
"post-create-project-cmd": "bin/grav install",
"phpstan": "vendor/bin/phpstan analyse -l 2 -c ./tests/phpstan/phpstan.neon system/src --memory-limit=256M",
"phpstan-framework": "vendor/bin/phpstan analyse -l 5 -c ./tests/phpstan/phpstan.neon system/src/Grav/Framework --memory-limit=256M",
"test-plugins": "vendor/bin/phpstan analyse -l 0 -c ./tests/phpstan/plugins.neon user/plugins --memory-limit=256M",
"phpstan": "vendor/bin/phpstan analyse -l 1 -c ./tests/phpstan/phpstan.neon --memory-limit=480M system/src",
"phpstan-framework": "vendor/bin/phpstan analyse -l 1 -c ./tests/phpstan/phpstan.neon --memory-limit=480M system/src/Grav/Framework system/src/Grav/Events system/src/Grav/Installer",
"phpstan-plugins": "vendor/bin/phpstan analyse -l 1 -c ./tests/phpstan/plugins.neon --memory-limit=400M user/plugins",
"test": "vendor/bin/codecept run unit",
"test-windows": "vendor\\bin\\codecept run unit"
},

4600
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
/* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved. */

View File

@@ -3,26 +3,37 @@
/**
* @package Grav.Core
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav;
\define('GRAV_REQUEST_TIME', microtime(true));
\define('GRAV_PHP_MIN', '7.1.3');
\define('GRAV_PHP_MIN', '7.3.6');
if (version_compare($ver = PHP_VERSION, $req = GRAV_PHP_MIN, '<')) {
die(sprintf('You are running PHP %s, but Grav needs at least <strong>PHP %s</strong> to run.', $ver, $req));
}
if (PHP_SAPI === 'cli-server') {
$symfony_server = strpos(getenv('_'), 'symfony') !== false;
$symfony_server = stripos(getenv('_'), 'symfony') !== false || stripos($_SERVER['SERVER_SOFTWARE'], 'symfony
') !== false;
if (!isset($_SERVER['PHP_CLI_ROUTER']) && !$symfony_server) {
die("PHP webserver requires a router to run Grav, please use: <pre>php -S {$_SERVER['SERVER_NAME']}:{$_SERVER['SERVER_PORT']} system/router.php</pre>");
}
}
// Set timezone to default, falls back to system if php.ini not set
date_default_timezone_set(@date_default_timezone_get());
// Set internal encoding.
if (!\extension_loaded('mbstring')) {
die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
}
@ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');
// Ensure vendor libraries exist
$autoload = __DIR__ . '/vendor/autoload.php';
if (!is_file($autoload)) {
@@ -35,15 +46,6 @@ $loader = require $autoload;
use Grav\Common\Grav;
use RocketTheme\Toolbox\Event\Event;
// Set timezone to default, falls back to system if php.ini not set
date_default_timezone_set(@date_default_timezone_get());
// Set internal encoding if mbstring loaded
if (!\extension_loaded('mbstring')) {
die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
}
mb_internal_encoding('UTF-8');
// Get the Grav instance
$grav = Grav::instance(
array(

View File

@@ -0,0 +1 @@
/* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved. */

View File

@@ -1,4 +1,4 @@
{
{
"version": 2,
"builds": [{ "src": "*.php", "use": "@now/php" }]
}

View File

@@ -11,3 +11,6 @@ Allow: /user/pages/
Allow: /user/themes/
Allow: /user/images/
Allow: /
Allow: *.css$
Allow: *.js$
Allow: /system/*.js$

View File

@@ -1,2 +1,3 @@
/** Clockwork Debugger JS **/
document.addEventListener("DOMContentLoaded",function(){var e=document.createElement("div");e.appendChild(document.createElement("i")),e.className="clockwork-badge",document.body.appendChild(e)});
document.addEventListener("DOMContentLoaded",function () {
var e=document.createElement("div");e.appendChild(document.createElement("i")),e.className="clockwork-badge",document.body.appendChild(e)});

File diff suppressed because one or more lines are too long

View File

@@ -39,12 +39,13 @@ form:
.command:
type: text
label: PLUGIN_ADMIN.COMMAND
placeholder: 'cd ~;ls -lah;'
placeholder: 'ls'
validate:
required: true
.args:
type: text
label: PLUGIN_ADMIN.EXTRA_ARGUMENTS
placeholder: '-lah'
.at:
type: cron
label: PLUGIN_ADMIN.SCHEDULER_RUNAT

View File

@@ -105,3 +105,15 @@ form:
validate:
type: commalist
sanitize_svg:
type: toggle
label: PLUGIN_ADMIN.SANITIZE_SVG
help: PLUGIN_ADMIN.SANITIZE_SVG_HELP
highlight: 1
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
default: true
validate:
type: bool

View File

@@ -177,39 +177,47 @@ form:
label: PLUGIN_ADMIN.APPEND_URL_EXT
help: PLUGIN_ADMIN.APPEND_URL_EXT_HELP
pages.redirect_default_route:
type: toggle
label: PLUGIN_ADMIN.REDIRECT_DEFAULT_ROUTE
help: PLUGIN_ADMIN.REDIRECT_DEFAULT_ROUTE_HELP
highlight: 0
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
pages.redirect_default_code:
type: select
size: medium
classes: fancy
label: PLUGIN_ADMIN.REDIRECT_DEFAULT_CODE
help: PLUGIN_ADMIN.REDIRECT_DEFAULT_CODE_HELP
default: 302
options:
301: 301 - Permanent
302: 302 - Found
303: 303 - Other
304: 304 - Not Modified
301: PLUGIN_ADMIN.REDIRECT_OPTION_301
302: PLUGIN_ADMIN.REDIRECT_OPTION_302
303: PLUGIN_ADMIN.REDIRECT_OPTION_303
pages.redirect_default_route:
type: select
size: medium
classes: fancy
label: PLUGIN_ADMIN.REDIRECT_DEFAULT_ROUTE
help: PLUGIN_ADMIN.REDIRECT_DEFAULT_ROUTE_HELP
default: 0
options:
0: PLUGIN_ADMIN.REDIRECT_OPTION_NO_REDIRECT
1: PLUGIN_ADMIN.REDIRECT_OPTION_DEFAULT_REDIRECT
301: PLUGIN_ADMIN.REDIRECT_OPTION_301
302: PLUGIN_ADMIN.REDIRECT_OPTION_302
validate:
type: int
pages.redirect_trailing_slash:
type: toggle
type: select
size: medium
classes: fancy
label: PLUGIN_ADMIN.REDIRECT_TRAILING_SLASH
help: PLUGIN_ADMIN.REDIRECT_TRAILING_SLASH_HELP
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
0: PLUGIN_ADMIN.REDIRECT_OPTION_NO_REDIRECT
1: PLUGIN_ADMIN.REDIRECT_OPTION_DEFAULT_REDIRECT
301: PLUGIN_ADMIN.REDIRECT_OPTION_301
302: PLUGIN_ADMIN.REDIRECT_OPTION_302
validate:
type: bool
type: int
pages.ignore_hidden:
type: toggle
@@ -241,13 +249,15 @@ form:
type: commalist
pages.hide_empty_folders:
type: selectize
size: large
type: toggle
label: PLUGIN_ADMIN.HIDE_EMPTY_FOLDERS
help: PLUGIN_ADMIN.HIDE_EMPTY_FOLDERS_HELP
classes: fancy
highlight: 0
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: commalist
type: bool
pages.url_taxonomy_filters:
type: toggle
@@ -385,8 +395,8 @@ form:
languages.translations:
type: toggle
label: PLUGIN_ADMIN.TRANSLATIONS_ENABLED
help: PLUGIN_ADMIN.TRANSLATIONS_ENABLED_HELP
label: PLUGIN_ADMIN.LANGUAGE_TRANSLATIONS
help: PLUGIN_ADMIN.LANGUAGE_TRANSLATIONS_HELP
highlight: 1
options:
1: PLUGIN_ADMIN.YES
@@ -544,6 +554,15 @@ form:
0: PLUGIN_ADMIN.NO
validate:
type: bool
pages.markdown.valid_link_attributes:
type: selectize
size: large
label: PLUGIN_ADMIN.VALID_LINK_ATTRIBUTES
help: PLUGIN_ADMIN.VALID_LINK_ATTRIBUTES_HELP
placeholder: "rel, target, id, class, classes"
classes: fancy
validate:
type: commalist
caching:
type: tab
@@ -730,6 +749,74 @@ form:
size: small
label: PLUGIN_ADMIN.REDIS_PASSWORD
cache.redis.database:
type: text
size: medium
label: PLUGIN_ADMIN.REDIS_DATABASE
help: PLUGIN_ADMIN.REDIS_DATABASE_HELP
placeholder: "0"
validate:
type: number
min: 0
flex_caching:
type: section
title: PLUGIN_ADMIN.FLEX_CACHING
flex.cache.index.enabled:
type: toggle
label: PLUGIN_ADMIN.FLEX_INDEX_CACHE_ENABLED
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
flex.cache.index.lifetime:
type: text
label: PLUGIN_ADMIN.FLEX_INDEX_CACHE_LIFETIME
default: 60
validate:
type: int
flex.cache.object.enabled:
type: toggle
label: PLUGIN_ADMIN.FLEX_OBJECT_CACHE_ENABLED
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
flex.cache.object.lifetime:
type: text
label: PLUGIN_ADMIN.FLEX_OBJECT_CACHE_LIFETIME
default: 600
validate:
type: int
flex.cache.render.enabled:
type: toggle
label: PLUGIN_ADMIN.FLEX_RENDER_CACHE_ENABLED
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
flex.cache.render.lifetime:
type: text
label: PLUGIN_ADMIN.FLEX_RENDER_CACHE_LIFETIME
default: 600
validate:
type: int
twig:
type: tab
title: PLUGIN_ADMIN.TWIG_TEMPLATING
@@ -777,7 +864,8 @@ form:
type: toggle
label: PLUGIN_ADMIN.AUTOESCAPE_VARIABLES
help: PLUGIN_ADMIN.AUTOESCAPE_VARIABLES_HELP
highlight: 0
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
@@ -926,6 +1014,17 @@ form:
validate:
type: bool
assets.enable_asset_sri:
type: toggle
label: PLUGIN_ADMIN.ENABLED_SRI_ON_ASSETS
help: PLUGIN_ADMIN.ENABLED_SRI_ON_ASSETS_HELP
highlight: 0
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
assets.collections:
type: multilevel
label: PLUGIN_ADMIN.COLLECTIONS
@@ -1039,8 +1138,8 @@ form:
debugger.censored:
type: toggle
label: PLUGIN_ADMIN.SHOW_SENSITIVE
help: PLUGIN_ADMIN.SHOW_SENSITIVE_HELP
label: PLUGIN_ADMIN.DEBUGGER_CENSORED
help: PLUGIN_ADMIN.DEBUGGER_CENSORED_HELP
highlight: 0
options:
1: PLUGIN_ADMIN.YES
@@ -1114,13 +1213,24 @@ form:
type: toggle
label: PLUGIN_ADMIN.IMAGES_AUTO_FIX_ORIENTATION
help: PLUGIN_ADMIN.IMAGES_AUTO_FIX_ORIENTATION_HELP
highlight: 0
highlight: 1
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
images.defaults.loading:
type: select
size: small
label: PLUGIN_ADMIN.IMAGES_LOADING
help: PLUGIN_ADMIN.IMAGES_LOADING_HELP
highlight: auto
options:
auto: Auto
lazy: Lazy
eager: Eager
images.seofriendly:
type: toggle
label: PLUGIN_ADMIN.IMAGES_SEOFRIENDLY
@@ -1154,7 +1264,6 @@ form:
validate:
type: bool
media.allowed_fallback_types:
type: selectize
size: large
@@ -1173,6 +1282,45 @@ form:
validate:
type: commalist
section_images_cls:
type: section
title: PLUGIN_ADMIN.IMAGES_CLS_TITLE
underline: true
images.cls.auto_sizes:
type: toggle
label: PLUGIN_ADMIN.IMAGES_CLS_AUTO_SIZES
help: PLUGIN_ADMIN.IMAGES_CLS_AUTO_SIZES_HELP
highlight: 0
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
images.cls.aspect_ratio:
type: toggle
label: PLUGIN_ADMIN.IMAGES_CLS_ASPECT_RATIO
help: PLUGIN_ADMIN.IMAGES_CLS_ASPECT_RATIO_HELP
highlight: 0
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
images.cls.retina_scale:
type: select
label: PLUGIN_ADMIN.IMAGES_CLS_RETINA_SCALE
help: PLUGIN_ADMIN.IMAGES_CLS_RETINA_SCALE_HELP
size: small
highlight: 1
options:
1: 1X
2: 2X
3: 3X
4: 4X
session:
type: tab
title: PLUGIN_ADMIN.SESSION
@@ -1258,12 +1406,24 @@ form:
validate:
type: bool
session.domain:
type: text
size: small
label: PLUGIN_ADMIN.SESSION_DOMAIN
help: PLUGIN_ADMIN.SESSION_DOMAIN_HELP
session.path:
type: text
size: small
label: PLUGIN_ADMIN.SESSION_PATH
help: PLUGIN_ADMIN.SESSION_PATH_HELP
session.samesite:
type: text
size: small
label: PLUGIN_ADMIN.SESSION_SAMESITE
help: PLUGIN_ADMIN.SESSION_SAMESITE_HELP
session.split:
type: toggle
label: PLUGIN_ADMIN.SESSION_SPLIT
@@ -1432,17 +1592,68 @@ form:
label: PLUGIN_ADMIN.CUSTOM_BASE_URL
help: PLUGIN_ADMIN.CUSTOM_BASE_URL_HELP
accounts.type:
type: hidden
http_x_forwarded.protocol:
type: toggle
label: HTTP_X_FORWARDED_PROTO Enabled
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
accounts.storage:
type: hidden
http_x_forwarded.host:
type: toggle
label: HTTP_X_FORWARDED_HOST Enabled
highlight: 0
default: 0
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
http_x_forwarded.port:
type: toggle
label: HTTP_X_FORWARDED_PORT Enabled
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
http_x_forwarded.ip:
type: toggle
label: HTTP_X_FORWARDED IP Enabled
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
strict_mode.blueprint_compat:
type: toggle
label: PLUGIN_ADMIN.STRICT_BLUEPRINT_COMPAT
highlight: 0
default: 0
help: PLUGIN_ADMIN.STRICT_BLUEPRINT_COMPAT_HELP
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
strict_mode.yaml_compat:
type: toggle
label: PLUGIN_ADMIN.STRICT_YAML_COMPAT
highlight: 1
default: 1
highlight: 0
default: 0
help: PLUGIN_ADMIN.STRICT_YAML_COMPAT_HELP
options:
1: PLUGIN_ADMIN.YES
@@ -1453,8 +1664,8 @@ form:
strict_mode.twig_compat:
type: toggle
label: PLUGIN_ADMIN.STRICT_TWIG_COMPAT
highlight: 1
default: 1
highlight: 0
default: 0
help: PLUGIN_ADMIN.STRICT_TWIG_COMPAT_HELP
options:
1: PLUGIN_ADMIN.YES
@@ -1472,14 +1683,25 @@ form:
title: PLUGIN_ADMIN.EXPERIMENTAL
underline: true
# flex_pages:
# type: section
# title: Flex Pages
#
# pages.type:
# type: select
# label: PLUGIN_ADMIN.PAGES_TYPE
# highlight: regular
# help: PLUGIN_ADMIN.PAGES_TYPE_HELP
# options:
# regular: PLUGIN_ADMIN.REGULAR
# flex: PLUGIN_ADMIN.FLEX
pages.type:
type: select
label: PLUGIN_ADMIN.PAGES_TYPE
highlight: stable
help: PLUGIN_ADMIN.PAGES_TYPE_HELP
options:
page: PLUGIN_ADMIN.REGULAR
flex: PLUGIN_ADMIN.FLEX
type: hidden
flex_accounts:
type: section
title: Flex Accounts
accounts.type:
type: select
@@ -1487,7 +1709,7 @@ form:
highlight: stable
help: PLUGIN_ADMIN.ACCOUNTS_TYPE_HELP
options:
data: PLUGIN_ADMIN.REGULAR
regular: PLUGIN_ADMIN.REGULAR
flex: PLUGIN_ADMIN.FLEX
accounts.storage:

View File

@@ -0,0 +1,8 @@
title: Flex User Accounts
description: Manage your User Accounts in Flex.
type: flex-objects
# Deprecated in Grav 1.7.0-rc.4: file was renamed to user-accounts.yaml
extends@:
type: user-accounts
context: blueprints://flex

View File

@@ -0,0 +1,17 @@
form:
compatibility:
type: tab
title: Compatibility
fields:
object.compat.events:
type: toggle
toggleable: true
label: Admin event compatibility
help: Enables onAdminSave and onAdminAfterSave events for plugins
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool

View File

@@ -0,0 +1,212 @@
title: Pages
description: Manage your Grav Pages in Flex.
type: flex-objects
# Extends a page (blueprint gets overridden inside the object)
extends@:
type: default
context: blueprints://pages
#
# HIGHLY SPECIALIZED FLEX TYPE, AVOID USING PAGES AS BASE FOR YOUR OWN TYPE.
#
# Flex configuration
config:
# Administration Configuration (needs Flex Objects plugin)
admin:
# Admin router
router:
path: '/pages'
# Permissions
permissions:
# Primary permissions
admin.pages:
type: crudl
label: Pages
admin.configuration.pages:
type: default
label: Pages Configuration
# Admin menu
menu:
list:
route: '/pages'
title: PLUGIN_ADMIN.PAGES
icon: fa-file-text
authorize: ['admin.pages.list', 'admin.super']
priority: 5
# Admin template type (folder)
template: pages
# Allowed admin actions
actions:
list: true
create: true
read: true
update: true
delete: true
# List view
list:
# Fields shown in the list view
fields:
published:
width: 8
alias: header.published
visible:
width: 8
field:
label: Visible
type: toggle
menu:
link: edit
alias: header.menu
full_route:
field:
label: Route
type: text
link: edit
sort:
field: key
name:
width: 8
field:
label: Type
type: text
translations:
width: 8
field:
label: Translations
type: text
# updated_date:
# alias: header.update_date
# Extra options
options:
# Default number of records for pagination
per_page: 20
# Default ordering
order:
by: key
dir: asc
# TODO: not used yet
buttons:
back:
icon: reply
title: PLUGIN_ADMIN.BACK
add:
icon: plus
label: PLUGIN_ADMIN.ADD
edit:
title:
template: "{% if object.root %}Root <small>( &lt;root&gt; ){% else %}{{ (form.value('header.title') ?? form.value('folder'))|e }} <small>( {{ (object.getRoute().toString(false) ?: '/')|e }} )</small>{% endif %}"
# TODO: not used yet
buttons:
back:
icon: reply
title: PLUGIN_ADMIN.BACK
preview:
icon: eye
title: PLUGIN_ADMIN.PREVIEW
add:
icon: plus
label: PLUGIN_ADMIN.ADD
copy:
icon: copy
label: PLUGIN_ADMIN.COPY
move:
icon: arrows
label: PLUGIN_ADMIN.MOVE
delete:
icon: close
label: PLUGIN_ADMIN.DELETE
save:
icon: check
label: PLUGIN_ADMIN.SAVE
# Preview View
preview:
enabled: true
# Configure view
configure:
authorize: 'admin.configuration.pages'
# Site Configuration
site:
# Hide from flex types
hidden: true
templates:
collection:
# Lookup for the template layout files for collections of objects
paths:
- 'flex/{TYPE}/collection/{LAYOUT}{EXT}'
object:
# Lookup for the template layout files for objects
paths:
- 'flex/{TYPE}/object/{LAYOUT}{EXT}'
defaults:
# Default template {TYPE}; overridden by filename of this blueprint if template folder exists
type: pages
# Default template {LAYOUT}; can be overridden in render calls (usually Twig in templates)
layout: default
# Default filters for frontend.
filter:
- withPublished
# Data Configuration
data:
object: 'Grav\Common\Flex\Types\Pages\PageObject'
collection: 'Grav\Common\Flex\Types\Pages\PageCollection'
index: 'Grav\Common\Flex\Types\Pages\PageIndex'
storage:
class: 'Grav\Common\Flex\Types\Pages\Storage\PageStorage'
options:
formatter:
class: 'Grav\Framework\File\Formatter\MarkdownFormatter'
folder: 'page://'
# Keep index file in filesystem to speed up lookups
indexed: true
# Set default ordering of the pages
ordering:
storage_key: ASC
search:
# Search options
options:
contains: 1
# Fields to be searched
fields:
- key
- menu
- title
- name
blueprints:
configure:
fields:
import@:
type: configure/compat
context: blueprints://flex
# Regular form definition
form:
fields:
lang:
type: hidden
value: ''
tabs:
fields:
security:
type: tab
title: PLUGIN_ADMIN.SECURITY
import@:
type: partials/security
context: blueprints://pages

View File

@@ -0,0 +1,70 @@
form:
validation: loose
fields:
tabs:
type: tabs
fields:
cache:
type: tab
title: Caching
fields:
object.cache.index.enabled:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.FLEX_INDEX_CACHE_ENABLED
highlight: 1
config-default@: system.flex.cache.index.enabled
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
object.cache.index.lifetime:
type: text
toggleable: true
label: PLUGIN_ADMIN.FLEX_INDEX_CACHE_LIFETIME
config-default@: system.flex.cache.index.lifetime
validate:
type: int
object.cache.object.enabled:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.FLEX_OBJECT_CACHE_ENABLED
highlight: 1
config-default@: system.flex.cache.object.enabled
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
object.cache.object.lifetime:
type: text
toggleable: true
label: PLUGIN_ADMIN.FLEX_OBJECT_CACHE_LIFETIME
config-default@: system.flex.cache.object.lifetime
validate:
type: int
object.cache.render.enabled:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.FLEX_RENDER_CACHE_ENABLED
highlight: 1
config-default@: system.flex.cache.render.enabled
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
object.cache.render.lifetime:
type: text
toggleable: true
label: PLUGIN_ADMIN.FLEX_RENDER_CACHE_LIFETIME
config-default@: system.flex.cache.render.lifetime
validate:
type: int

View File

@@ -0,0 +1,142 @@
title: User Accounts
description: Manage your User Accounts in Flex.
type: flex-objects
# Extends user account
extends@:
type: account
context: blueprints://user
#
# HIGHLY SPECIALIZED FLEX TYPE, AVOID USING USER ACCOUNTS AS BASE FOR YOUR OWN TYPE.
#
# Flex configuration
config:
# Administration Configuration (needs Flex Objects plugin)
admin:
# Admin router
router:
path: '/accounts/users'
actions:
configure:
path: '/accounts/configure'
redirects:
'/user': '/accounts/users'
'/accounts': '/accounts/users'
# Permissions
permissions:
# Primary permissions
admin.users:
type: crudl
label: User Accounts
admin.configuration.users:
type: default
label: Accounts Configuration
# Admin menu
menu:
base:
location: '/accounts'
route: '/accounts/users'
index: 0
title: PLUGIN_ADMIN.ACCOUNTS
icon: fa-users
authorize: ['admin.users.list', 'admin.super']
priority: 6
# Admin template type (folder)
template: user-accounts
# List view
list:
# Fields shown in the list view
fields:
username:
link: edit
search: true
field:
label: PLUGIN_ADMIN.USERNAME
email:
search: true
fullname:
search: true
# Extra options
options:
per_page: 20
order:
by: username
dir: asc
# Edit view
edit:
title:
template: "{{ form.value('fullname') ?? form.value('username') }} &lt;{{ form.value('email') }}&gt;"
# Configure view
configure:
hidden: true
authorize: 'admin.configuration.users'
form: 'accounts'
title:
template: "{{ 'PLUGIN_ADMIN.ACCOUNTS'|tu }} {{ 'PLUGIN_ADMIN.CONFIGURATION'|tu }}"
# Site Configuration
site:
# Hide from flex types
hidden: true
templates:
collection:
# Lookup for the template layout files for collections of objects
paths:
- 'flex/{TYPE}/collection/{LAYOUT}{EXT}'
object:
# Lookup for the template layout files for objects
paths:
- 'flex/{TYPE}/object/{LAYOUT}{EXT}'
defaults:
# Default template {TYPE}; overridden by filename of this blueprint if template folder exists
type: user-accounts
# Default template {LAYOUT}; can be overridden in render calls (usually Twig in templates)
layout: default
# Data Configuration
data:
object: 'Grav\Common\Flex\Types\Users\UserObject'
collection: 'Grav\Common\Flex\Types\Users\UserCollection'
index: 'Grav\Common\Flex\Types\Users\UserIndex'
storage:
class: 'Grav\Common\Flex\Types\Users\Storage\UserFileStorage'
options:
formatter:
class: 'Grav\Framework\File\Formatter\YamlFormatter'
folder: 'account://'
pattern: '{FOLDER}/{KEY}{EXT}'
indexed: true
key: username
case_sensitive: false
search:
options:
contains: 1
fields:
- key
- email
blueprints:
configure:
fields:
import@:
type: configure/compat
context: blueprints://flex
# Regular form definition
form:
fields:
username:
flex-disabled@: exists
disabled: false
flex-readonly@: exists
readonly: false
validate:
required: true

View File

@@ -0,0 +1,122 @@
title: User Groups
description: Manage your User Groups in Flex.
type: flex-objects
# Extends user group
extends@:
type: group
context: blueprints://user
# Flex configuration
config:
# Administration Configuration (needs Flex Objects plugin)
admin:
# Admin router
router:
path: '/accounts/groups'
actions:
configure:
path: '/accounts/configure'
redirects:
'/accounts': '/accounts/groups'
# Permissions
permissions:
# Primary permissions
admin.users:
type: crudl
label: User Accounts
admin.configuration.users:
type: default
label: Accounts Configuration
# Admin menu
menu:
base:
location: '/accounts'
route: '/accounts/groups'
index: 1
title: PLUGIN_ADMIN.ACCOUNTS
icon: fa-users
authorize: ['admin.users.list', 'admin.super']
priority: 6
# Admin template type (folder)
template: user-groups
# List view
list:
# Fields shown in the list view
fields:
groupname:
link: edit
search: true
readableName:
search: true
description:
search: true
# Extra options
options:
per_page: 20
order:
by: groupname
dir: asc
# Edit view
edit:
title:
template: "{{ form.value('readableName') ?? form.value('groupname') }}"
# Configure view
configure:
hidden: true
authorize: 'admin.configuration.users'
form: 'accounts'
title:
template: "{{ 'PLUGIN_ADMIN.ACCOUNTS'|tu }} {{ 'PLUGIN_ADMIN.CONFIGURATION'|tu }}"
# Site Configuration
site:
# Hide from flex types
hidden: true
templates:
collection:
# Lookup for the template layout files for collections of objects
paths:
- 'flex/{TYPE}/collection/{LAYOUT}{EXT}'
object:
# Lookup for the template layout files for objects
paths:
- 'flex/{TYPE}/object/{LAYOUT}{EXT}'
defaults:
# Default template {TYPE}; overridden by filename of this blueprint if template folder exists
type: user-groups
# Default template {LAYOUT}; can be overridden in render calls (usually Twig in templates)
layout: default
# Data Configuration
data:
object: 'Grav\Common\Flex\Types\UserGroups\UserGroupObject'
collection: 'Grav\Common\Flex\Types\UserGroups\UserGroupCollection'
index: 'Grav\Common\Flex\Types\UserGroups\UserGroupIndex'
storage:
class: 'Grav\Framework\Flex\Storage\SimpleStorage'
options:
formatter:
class: 'Grav\Framework\File\Formatter\YamlFormatter'
folder: 'user://config/groups.yaml'
key: groupname
search:
options:
contains: 1
fields:
- key
- groupname
- description
blueprints:
configure:
fields:
import@:
type: configure/compat
context: blueprints://flex

View File

@@ -1,4 +1,4 @@
title: PLUGIN_ADMIN.MODULAR
title: PLUGIN_ADMIN.MODULE
extends@: default
form:
@@ -13,7 +13,7 @@ form:
modular_title:
type: spacer
title: PLUGIN_ADMIN.MODULAR_SETUP
title: PLUGIN_ADMIN.MODULE_SETUP
header.content.items:
type: text
@@ -34,5 +34,3 @@ form:
help: '"desc" or "asc" are valid values'
placeholder: desc
size: small

View File

@@ -0,0 +1,71 @@
form:
fields:
_site:
type: section
title: PLUGIN_ADMIN.PAGE_ACCESS
underline: true
fields:
header.login.visibility_requires_access:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.PAGE_VISIBILITY_REQUIRES_ACCESS
help: PLUGIN_ADMIN.PAGE_VISIBILITY_REQUIRES_ACCESS_HELP
highlight: 0
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
header.access:
type: acl_picker
label: PLUGIN_ADMIN.PAGE_ACCESS
help: PLUGIN_ADMIN.PAGE_ACCESS_HELP
ignore_empty: true
data_type: access
validate:
type: array
value_type: bool
_admin:
security@: {or: [admin.super, admin.configuration.pages]}
type: section
title: PLUGIN_ADMIN.PAGE PERMISSIONS
underline: true
fields:
header.permissions.inherit:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.PAGE_INHERIT_PERMISSIONS
help: PLUGIN_ADMIN.PAGE_INHERIT_PERMISSIONS_HELP
highlight: 1
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
header.permissions.authors:
type: list
toggleable: true
label: PLUGIN_ADMIN.PAGE_AUTHORS
help: PLUGIN_ADMIN.PAGE_AUTHORS_HELP
fields:
value:
type: text
placeholder: PLUGIN_ADMIN.USERNAME
style: vertical
header.permissions.groups:
ignore@: true
type: acl_picker
label: PLUGIN_ADMIN.PAGE_GROUPS
help: PLUGIN_ADMIN.PAGE_GROUPS_HELP
ignore_empty: true
data_type: permissions

View File

@@ -0,0 +1,16 @@
title: PLUGIN_ADMIN.ROOT
rules:
slug:
pattern: '[a-zA-Zа-яA-Я0-9_\-]+'
min: 1
max: 200
form:
validation: loose
fields:
tabs:
type: tabs
active: 1

View File

@@ -67,6 +67,15 @@ form:
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
twofa_check:
type: conditional
condition: config.plugins.admin.twofa_enabled
@@ -99,6 +108,8 @@ form:
sublabel: PLUGIN_ADMIN.2FA_SECRET_HELP
security:
security@: admin.super
title: PLUGIN_ADMIN.ACCESS_LEVELS
@@ -121,7 +132,9 @@ form:
access:
security@: admin.super
type: permissions
check_authorize: true
label: PLUGIN_ADMIN.PERMISSIONS
ignore_empty: true
validate:
type: array
value_type: bool

View File

@@ -13,6 +13,6 @@ form:
label: PLUGIN_ADMIN.USERNAME
help: PLUGIN_ADMIN.USERNAME_HELP
unset-disabled@: true
unset-readonly@: true
unset-readonly@: true
validate:
required: true

View File

@@ -1,40 +0,0 @@
title: User Accounts
description: User Accounts
type: flex-objects
extends@: 'user/account'
config:
admin:
list:
fields:
username:
link: edit
search: true
email:
search: true
fullname:
search: true
options:
per_page: 20
order:
by: username
dir: asc
menu:
list:
route: '/accounts'
title: Accounts
icon: fa-users
authorize: ['admin.users', 'admin.accounts', 'admin.super']
priority: 6
form:
fields:
username:
flex-disabled@: exists
disabled: false
flex-readonly@: exists
readonly: false
validate:
required: true

View File

@@ -1,37 +1,55 @@
title: Group
rules:
slug:
pattern: '[a-zA-Zа-яA-Я0-9_\-]+'
min: 1
max: 200
form:
validation: loose
validation: loose
fields:
spacer:
type: spacer
text: '<br>'
fields:
groupname:
type: text
size: large
label: PLUGIN_ADMIN.GROUP_NAME
flex-disabled@: exists
flex-readonly@: exists
validate:
required: true
rule: slug
groupname:
type: text
size: large
label: PLUGIN_ADMIN.NAME
disabled: true
readonly: true
readableName:
type: text
size: large
label: PLUGIN_ADMIN.DISPLAY_NAME
readableName:
type: text
size: large
label: PLUGIN_ADMIN_PRO.READABLE_NAME
description:
type: text
size: large
label: PLUGIN_ADMIN.DESCRIPTION
description:
type: text
size: large
label: PLUGIN_ADMIN.DESCRIPTION
icon:
type: text
size: small
label: PLUGIN_ADMIN.ICON
icon:
type: text
size: small
label: PLUGIN_ADMIN_PRO.ICON
enabled:
type: toggle
label: PLUGIN_ADMIN.ENABLED
highlight: 1
default: 1
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
access:
type: permissions
label: PLUGIN_ADMIN.PERMISSIONS
ignore_empty: true
validate:
type: array
access:
type: permissions
check_authorize: false
label: PLUGIN_ADMIN.PERMISSIONS
ignore_empty: true
validate:
type: array
value_type: bool

View File

@@ -1,5 +1,11 @@
title: PLUGIN_ADMIN_PRO.ADD_GROUP
rules:
slug:
pattern: '[a-zA-Zа-яA-Я0-9_\-]+'
min: 1
max: 200
form:
validation: loose
fields:
@@ -14,3 +20,4 @@ form:
help: PLUGIN_ADMIN_PRO.GROUP_NAME_HELP
validate:
required: true
rule: slug

View File

@@ -24,6 +24,10 @@ types:
type: image
thumb: media/thumb-png.png
mime: image/png
webp:
type: image
thumb: media/thumb-webp.png
mime: image/webp
gif:
type: animated
thumb: media/thumb-gif.png
@@ -103,7 +107,7 @@ types:
docx:
type: file
thumb: media/thumb-docx.png
mime: application/msword
mime: application/vnd.openxmlformats-officedocument.wordprocessingml.document
xls:
type: file
thumb: media/thumb-xls.png
@@ -111,7 +115,7 @@ types:
xlsx:
type: file
thumb: media/thumb-xlsx.png
mime: application/vnd.ms-excel
mime: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
ppt:
type: file
thumb: media/thumb-ppt.png
@@ -119,7 +123,7 @@ types:
pptx:
type: file
thumb: media/thumb-pptx.png
mime: application/vnd.ms-powerpoint
mime: application/vnd.openxmlformats-officedocument.presentationml.presentation
pps:
type: file
thumb: media/thumb-pps.png

View File

@@ -0,0 +1,53 @@
actions:
site:
type: access
label: Site
admin:
type: access
label: Admin
admin.pages:
type: access
label: Pages
admin.users:
type: access
label: User Accounts
types:
default:
type: access
crud:
type: compact
letters:
c:
action: create
label: PLUGIN_ADMIN.CREATE
r:
action: read
label: PLUGIN_ADMIN.READ
u:
action: update
label: PLUGIN_ADMIN.UPDATE
d:
action: delete
label: PLUGIN_ADMIN.DELETE
crudp:
type: crud
letters:
p:
action: publish
label: PLUGIN_ADMIN.PUBLISH
crudl:
type: crud
letters:
l:
action: list
label: PLUGIN_ADMIN.LIST
crudpl:
type: crud
use:
- crudp
- crudl

View File

@@ -36,3 +36,4 @@ uploads_dangerous_extensions:
- htm
- js
- exe
sanitize_svg: true

View File

@@ -1,16 +0,0 @@
schemes:
image:
type: Stream
paths:
- user://images
- system://images
page:
type: ReadOnlyStream
paths:
- user://pages
account:
type: ReadOnlyStream
paths:
- user://accounts

View File

@@ -10,24 +10,31 @@ custom_base_url: '' # Set the base_url manually, e.
username_regex: '^[a-z0-9_-]{3,16}$' # Only lowercase chars, digits, dashes, underscores. 3 - 16 chars
pwd_regex: '(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}' # At least one number, one uppercase and lowercase letter, and be at least 8+ chars
intl_enabled: true # Special logic for PHP International Extension (mod_intl)
http_x_forwarded: # Configuration options for the various HTTP_X_FORWARD headers
protocol: true
host: false
port: true
ip: true
languages:
supported: [] # List of languages supported. eg: [en, fr, de]
default_lang: # Default is the first supported language. Must be one of the supported languages
include_default_lang: true # Include the default lang prefix in all URLs
pages_fallback_only: false # Only fallback to find page content through supported languages
translations: true # Enable translations by default
include_default_lang_file_extension: true # If true, include language code for the default language in file extension: default.en.md
translations: true # If false, translation keys are used instead of translated strings
translations_fallback: true # Fallback through supported translations if active lang doesn't exist
session_store_active: false # Store active language in session
http_accept_language: false # Attempt to set the language based on http_accept_language header in the browser
override_locale: false # Override the default or system locale with language specific one
content_fallback: {} # Custom language fallbacks. eg: {fr: ['fr', 'en']}
pages_fallback_only: false # DEPRECATED: Use `content_fallback` instead
home:
alias: '/home' # Default path for home, ie /
hide_in_urls: false # Hide the home route in URLs
pages:
type: page # EXPERIMENTAL: Page type: page or flex
type: regular # EXPERIMENTAL: Page type: regular or flex
theme: quark # Default theme (defaults to "quark" theme)
order:
by: default # Order pages by "default", "alpha" or "date"
@@ -55,16 +62,22 @@ pages:
special_chars: # List of special characters to automatically convert to entities
'>': 'gt'
'<': 'lt'
valid_link_attributes: # Valid attributes to pass through via markdown links
- rel
- target
- id
- class
- classes
types: [html,htm,xml,txt,json,rss,atom] # list of valid page types
append_url_extension: '' # Append page's extension in Page urls (e.g. '.html' results in /path/page.html)
expires: 604800 # Page expires time in seconds (604800 seconds = 7 days)
cache_control: # Can be blank for no setting, or a valid `cache-control` text value
last_modified: false # Set the last modified date header based on file modification timestamp
etag: false # Set the etag header tag
etag: true # Set the etag header tag
vary_accept_encoding: false # Add `Vary: Accept-Encoding` header
redirect_default_route: false # Automatically redirect to a page's default route
redirect_default_code: 302 # Default code to use for redirects
redirect_trailing_slash: true # Handle automatically or 302 redirect a trailing / URL
redirect_default_code: 302 # Default code to use for redirects: 301|302|303
redirect_trailing_slash: 1 # Always redirect trailing slash with redirect code 0|1|301|302 (0: no redirect, 1: use default code)
redirect_default_route: 0 # Always redirect to page's default route using code 0|1|301|302, also removes .htm and .html extensions
ignore_files: [.DS_Store] # Files to ignore in Pages
ignore_folders: [.git, .idea] # Folders to ignore in Pages
ignore_hidden: true # Ignore all Hidden files and folders
@@ -90,12 +103,14 @@ cache:
allow_webserver_gzip: false # If true, `content-encoding: identity` but connection isn't closed before `onShutDown()` event
redis:
socket: false # Path to redis unix socket (e.g. /var/run/redis/redis.sock), false = use server and port to connect
password: # Optional password
database: # Optional database ID
twig:
cache: true # Set to true to enable Twig caching
debug: true # Enable Twig debug
auto_reload: true # Refresh cache on changes
autoescape: false # Autoescape Twig vars (DEPRECATED, always enabled in strict mode)
autoescape: true # Autoescape Twig vars (DEPRECATED, always enabled in strict mode)
undefined_functions: true # Allow undefined functions
undefined_filters: true # Allow undefined filters
umask_fix: false # By default Twig creates cached files as 755, fix switches this to 775
@@ -112,6 +127,7 @@ assets: # Configuration for Assets Mana
js_pipeline_before_excludes: true # Render the pipeline before any excluded files
js_minify: true # Minify the JS during pipelining
enable_asset_timestamp: false # Enable asset timestamps
enable_asset_sri: false # Enable asset SRI
collections:
jquery: system://assets/jquery/jquery-2.x.min.js
@@ -136,8 +152,14 @@ images:
cache_all: false # Cache all image by default
cache_perms: '0755' # MUST BE IN QUOTES!! Default cache folder perms. Usually '0755' or '0775'
debug: false # Show an overlay over images indicating the pixel depth of the image when working with retina for example
auto_fix_orientation: false # Automatically fix the image orientation based on the Exif data
auto_fix_orientation: true # Automatically fix the image orientation based on the Exif data
seofriendly: false # SEO-friendly processed image names
cls: # Cumulative Layout Shift: See https://web.dev/optimize-cls/
auto_sizes: false # Automatically add height/width to image
aspect_ratio: false # Reserve space with aspect ratio style
retina_scale: 1 # scale to adjust auto-sizes for better handling of HiDPI resolutions
defaults:
loading: auto # Let browser pick [auto|lazy|eager]
media:
enable_media_timestamp: false # Enable media timestamps
@@ -153,20 +175,35 @@ session:
uniqueness: path # Should sessions be `path` based or `security.salt` based
secure: false # Set session secure. If true, indicates that communication for this cookie must be over an encrypted transmission. Enable this only on sites that run exclusively on HTTPS
httponly: true # Set session HTTP only. If true, indicates that cookies should be used only over HTTP, and JavaScript modification is not allowed.
samesite: Lax # Set session SameSite. Possible values are Lax, Strict and None. See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite
split: true # Sessions should be independent between site and plugins (such as admin)
path:
domain: # Domain used by sessions.
path: # Path used by sessions.
gpm:
releases: testing # Set to either 'stable' or 'testing'
releases: stable # Set to either 'stable' or 'testing'
proxy_url: # Configure a manual proxy URL for GPM (eg 127.0.0.1:3128)
method: 'auto' # Either 'curl', 'fopen' or 'auto'. 'auto' will try fopen first and if not available cURL
verify_peer: true # Sometimes on some systems (Windows most commonly) GPM is unable to connect because the SSL certificate cannot be verified. Disabling this setting might help.
official_gpm_only: true # By default GPM direct-install will only allow URLs via the official GPM proxy to ensure security
accounts:
type: data # EXPERIMENTAL: Account type: data or flex
type: regular # EXPERIMENTAL: Account type: regular or flex
storage: file # EXPERIMENTAL: Flex storage type: file or folder
flex:
cache:
index:
enabled: true # Set to true to enable Flex index caching. Is used to cache timestamps in files
lifetime: 60 # Lifetime of cached index in seconds (0 = infinite)
object:
enabled: true # Set to true to enable Flex object caching. Is used to cache object data
lifetime: 600 # Lifetime of cached objects in seconds (0 = infinite)
render:
enabled: true # Set to true to enable Flex render caching. Is used to cache rendered output
lifetime: 600 # Lifetime of cached HTML in seconds (0 = infinite)
strict_mode:
yaml_compat: true # Grav 1.5+: Enables YAML backwards compatibility
twig_compat: true # Grav 1.5+: Enables deprecated Twig autoescape setting (autoescape: false)
yaml_compat: false # Set to true to enable YAML backwards compatibility
twig_compat: false # Set to true to enable deprecated Twig settings (autoescape: false)
blueprint_compat: false # Set to true to enable backward compatible strict support for blueprints

View File

@@ -2,41 +2,78 @@
/**
* @package Grav\Core
*
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
// Some standard defines
define('GRAV', true);
define('GRAV_VERSION', '1.7.0-beta.7');
define('GRAV_TESTING', true);
define('DS', '/');
define('GRAV_VERSION', '1.7.10');
define('GRAV_SCHEMA', '1.7.0_2020-11-20_1');
define('GRAV_TESTING', false);
// PHP minimum requirement
if (!defined('GRAV_PHP_MIN')) {
define('GRAV_PHP_MIN', '7.1.3');
define('GRAV_PHP_MIN', '7.3.6');
}
// Directory separator
if (!defined('DS')) {
define('DS', '/');
}
// Directories and Paths
if (!defined('GRAV_ROOT')) {
define('GRAV_ROOT', str_replace(DIRECTORY_SEPARATOR, DS, getcwd()));
$path = rtrim(str_replace(DIRECTORY_SEPARATOR, DS, getenv('GRAV_ROOT') ?: getcwd()), DS);
define('GRAV_ROOT', $path);
}
define('ROOT_DIR', GRAV_ROOT . '/');
define('USER_PATH', 'user/');
define('USER_DIR', ROOT_DIR . USER_PATH);
define('CACHE_DIR', ROOT_DIR . 'cache/');
if (!defined('GRAV_WEBROOT')) {
define('GRAV_WEBROOT', GRAV_ROOT);
}
if (!defined('GRAV_USER_PATH')) {
$path = rtrim(getenv('GRAV_USER_PATH') ?: 'user', DS);
define('GRAV_USER_PATH', $path);
}
if (!defined('GRAV_SYSTEM_PATH')) {
$path = rtrim(getenv('GRAV_SYSTEM_PATH') ?: 'system', DS);
define('GRAV_SYSTEM_PATH', $path);
}
if (!defined('GRAV_CACHE_PATH')) {
$path = rtrim(getenv('GRAV_CACHE_PATH') ?: 'cache', DS);
define('GRAV_CACHE_PATH', $path);
}
if (!defined('GRAV_LOG_PATH')) {
$path = rtrim(getenv('GRAV_LOG_PATH') ?: 'logs', DS);
define('GRAV_LOG_PATH', $path);
}
if (!defined('GRAV_TMP_PATH')) {
$path = rtrim(getenv('GRAV_TMP_PATH') ?: 'tmp', DS);
define('GRAV_TMP_PATH', $path);
}
if (!defined('GRAV_BACKUP_PATH')) {
$path = rtrim(getenv('GRAV_BACKUP_PATH') ?: 'backup', DS);
define('GRAV_BACKUP_PATH', $path);
}
unset($path);
define('USER_PATH', GRAV_USER_PATH . DS);
define('CACHE_PATH', GRAV_CACHE_PATH . DS);
define('ROOT_DIR', GRAV_ROOT . DS);
define('USER_DIR', (!str_starts_with(USER_PATH, '/') ? GRAV_WEBROOT . '/' : '') . USER_PATH);
define('CACHE_DIR', (!str_starts_with(CACHE_PATH, '/') ? ROOT_DIR : '') . CACHE_PATH);
// DEPRECATED: Do not use!
define('ASSETS_DIR', ROOT_DIR . 'assets/');
define('IMAGES_DIR', ROOT_DIR . 'images/');
define('ASSETS_DIR', GRAV_WEBROOT . '/assets/');
define('IMAGES_DIR', GRAV_WEBROOT . '/images/');
define('ACCOUNTS_DIR', USER_DIR .'accounts/');
define('PAGES_DIR', USER_DIR .'pages/');
define('DATA_DIR', USER_DIR .'data/');
define('SYSTEM_DIR', ROOT_DIR .'system/');
define('LIB_DIR', SYSTEM_DIR .'src/');
define('PLUGINS_DIR', USER_DIR .'plugins/');
define('THEMES_DIR', USER_DIR .'themes/');
define('SYSTEM_DIR', (!str_starts_with(GRAV_SYSTEM_PATH, '/') ? ROOT_DIR : '') . GRAV_SYSTEM_PATH);
define('LIB_DIR', SYSTEM_DIR .'src/');
define('VENDOR_DIR', ROOT_DIR .'vendor/');
define('LOG_DIR', ROOT_DIR .'logs/');
define('LOG_DIR', (!str_starts_with(GRAV_LOG_PATH, '/') ? ROOT_DIR : '') . GRAV_LOG_PATH . DS);
// END DEPRECATED
// Some extensions

View File

@@ -2,7 +2,7 @@
/**
* @package Grav\Core
*
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -10,8 +10,6 @@ if (!defined('GRAV_ROOT')) {
die();
}
use Grav\Installer\Install;
require_once __DIR__ . '/src/Grav/Installer/Install.php';
return Install::instance();
return Grav\Installer\Install::instance();

View File

@@ -1,6 +1,17 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\nالعنوان: %1$s\n---\n# خطأ: مادة أمامية غير صحيحة\n\nمسار: '%2$s'\n\n**%3$s**\n\n, , ,\n\n%4$s\n, , ,"
INFLECTOR_UNCOUNTABLE:
- 'معدّات'
- 'معلومات'
- 'أرز'
- 'مال'
- 'نوع'
- 'سلسلة'
- 'سمك'
- 'خروف'
INFLECTOR_IRREGULAR:
'person': 'أشخاص'
NICETIME:
NO_DATE_PROVIDED: لم يتم تقديم التاريخ
BAD_DATE: تاريخ خاطئ
@@ -37,8 +48,8 @@ GRAV:
YR_PLURAL: سنوات
DEC_PLURAL: عقود
FORM:
VALIDATION_FAIL: <b>فشل التحقق من صحة:</b>
INVALID_INPUT: إدخال غير صحيح في
VALIDATION_FAIL: '<b>فشل التحقق من صحة:</b>'
INVALID_INPUT: 'إدخال غير صحيح في'
MISSING_REQUIRED_FIELD: 'حقل مطلوب مفقود:'
MONTHS_OF_THE_YEAR:
- 'كانون الثاني'
@@ -61,3 +72,11 @@ GRAV:
- 'الجمعة'
- 'السبت'
- 'الأحد'
CRON:
EVERY: كل
EVERY_HOUR: كل ساعة
EVERY_MINUTE: كل دقيقة
EVERY_DAY_OF_WEEK: كل يوم في الأسبوع
EVERY_DAY_OF_MONTH: كل يوم في الشهر
EVERY_MONTH: ' كل شهر'
TEXT_PERIOD: كل <b />

View File

@@ -36,8 +36,8 @@ GRAV:
YR_PLURAL: г
DEC_PLURAL: дстлт
FORM:
VALIDATION_FAIL: <b>Неуспешна проверка:</b>
INVALID_INPUT: Невалидно въвеждане в
VALIDATION_FAIL: '<b>Неуспешна проверка:</b>'
INVALID_INPUT: 'Невалидно въвеждане в'
MISSING_REQUIRED_FIELD: 'Липсва задължително поле:'
MONTHS_OF_THE_YEAR:
- 'януари'

View File

@@ -1,6 +1,15 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# S'ha produït un error: Frontmatter invàlid\n\nRuta: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_UNCOUNTABLE:
- 'equipment'
- 'informació'
- 'rice'
- 'money'
- 'species'
- 'series'
- 'fish'
- 'sheep'
NICETIME:
NO_DATE_PROVIDED: No s'ha proporcionat data
BAD_DATE: Data invàlida
@@ -36,8 +45,8 @@ GRAV:
YR_PLURAL: anys
DEC_PLURAL: dèc.
FORM:
VALIDATION_FAIL: <b>Ha fallat la validació:</b>
INVALID_INPUT: Entrada no vàlida a
VALIDATION_FAIL: '<b>Ha fallat la validació:</b>'
INVALID_INPUT: 'Entrada no vàlida a'
MISSING_REQUIRED_FIELD: 'Falta camp obligatori:'
MONTHS_OF_THE_YEAR:
- 'Gener'

View File

@@ -101,9 +101,10 @@ GRAV:
YR_PLURAL: r
DEC_PLURAL: dek
FORM:
VALIDATION_FAIL: <b>Ověření se nezdařilo:</b>
INVALID_INPUT: Neplatný vstup v
VALIDATION_FAIL: '<b>Ověření se nezdařilo:</b>'
INVALID_INPUT: 'Neplatný vstup v'
MISSING_REQUIRED_FIELD: 'Chybí požadované pole:'
XSS_ISSUES: "Byly zjištěny možné problémy XSS v poli '%s'"
MONTHS_OF_THE_YEAR:
- 'leden'
- 'únor'
@@ -125,6 +126,8 @@ GRAV:
- 'pátek'
- 'sobota'
- 'neděle'
YES: "Ano"
NO: "Ne"
CRON:
EVERY: každý
EVERY_HOUR: každou hodinu

View File

@@ -1,11 +1,27 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\nTitel: %1$s\n---\n\n# Fejl: Ugyldigt frontmatter\n\nSti: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_UNCOUNTABLE:
- 'udstyr'
- 'information'
- 'ris'
- 'penge'
- 'arter'
- 'Serier'
- 'fisk'
- 'får'
INFLECTOR_IRREGULAR:
'person': 'personer'
'man': 'mænd'
'child': 'børn'
'sex': 'køn'
'move': 'flyt'
NICETIME:
NO_DATE_PROVIDED: Ingen dato angivet
BAD_DATE: Ugyldig dato
AGO: siden
FROM_NOW: fra nu
JUST_NOW: lige nu
SECOND: sekund
MINUTE: minut
HOUR: time
@@ -15,6 +31,7 @@ GRAV:
YEAR: år
DECADE: årti
SEC: sek
MIN: min.
HR: t
WK: u
MO: md
@@ -36,8 +53,8 @@ GRAV:
YR_PLURAL: år
DEC_PLURAL: årtier
FORM:
VALIDATION_FAIL: <b>Validering mislykkedes:</b>
INVALID_INPUT: Ugyldigt input i
VALIDATION_FAIL: '<b>Validering mislykkedes:</b>'
INVALID_INPUT: 'Ugyldigt input i'
MISSING_REQUIRED_FIELD: 'Mangler obligatorisk felt:'
MONTHS_OF_THE_YEAR:
- 'januar'
@@ -60,3 +77,14 @@ GRAV:
- 'fredag'
- 'lørdag'
- 'søndag'
CRON:
EVERY: hver
EVERY_HOUR: hver time
EVERY_MINUTE: hvert minut
EVERY_DAY_OF_WEEK: alle ugens dage
EVERY_DAY_OF_MONTH: alle dage i måneden
EVERY_MONTH: hver måned
TEXT_PERIOD: Hver <b />
TEXT_MINS: ' ved <b /> minut(ter) over timen'
ERROR1: Tagget %s understøttes ikke!
ERROR2: Ugyldigt antal elementer

View File

@@ -101,9 +101,10 @@ GRAV:
YR_PLURAL: Jahre
DEC_PLURAL: Jahrzehnten
FORM:
VALIDATION_FAIL: <b>Überprüfung fehlgeschlagen:</b>
INVALID_INPUT: Ungültige Eingabe in
VALIDATION_FAIL: '<b>Überprüfung fehlgeschlagen:</b>'
INVALID_INPUT: 'Ungültige Eingabe in'
MISSING_REQUIRED_FIELD: 'Erforderliches Feld fehlt:'
XSS_ISSUES: "Potenzielle XSS-Probleme im Feld '%s' erkannt"
MONTHS_OF_THE_YEAR:
- 'Januar'
- 'Februar'
@@ -125,6 +126,8 @@ GRAV:
- 'Freitag'
- 'Samstag'
- 'Sonntag'
YES: "Ja"
NO: "Nein"
CRON:
EVERY: jede
EVERY_HOUR: jede Stunde

View File

@@ -1,11 +1,75 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\nΤίτλος: %1$s\n---\n\n# Σφάλμα: Μη έγκυρη διαδρομή Frontmatter\n\nΔιαδρομή: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1zes'
'/^(ox)$/i': '\1en'
'/([m|l])ouse$/i': '\1ice'
'/(matr|vert|ind)ix|ex$/i': '\1ices'
'/(x|ch|ss|sh)$/i': '\1es'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([^aeiouy]|qu)y$/i': '\1ies'
'/(hive)$/i': '\1s'
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
'/sis$/i': 'ses'
'/([ti])um$/i': '\1a'
'/(buffal|tomat)o$/i': '\1oes'
'/(bu)s$/i': '\1ses'
'/(alias|status)/i': '\1es'
'/(octop|vir)us$/i': '\1i'
'/(ax|test)is$/i': '\1es'
'/s$/i': 's'
'/$/': 's'
INFLECTOR_SINGULAR:
'/(quiz)zes$/i': '\1'
'/(matr)ices$/i': '\1ix'
'/(vert|ind)ices$/i': '\1ex'
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/([octop|vir])i$/i': '\1us'
'/(cris|ax|test)es$/i': '\1is'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/([m|l])ice$/i': '\1ouse'
'/(x|ch|ss|sh)es$/i': '\1'
'/(m)ovies$/i': '\1ovie'
'/(s)eries$/i': '\1eries'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([lr])ves$/i': '\1f'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
'/([^f])ves$/i': '\1fe'
'/(^analy)ses$/i': '\1sis'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- 'εξοπλισμός'
- 'πληροφοριες'
- 'rice'
- 'χρήματα'
- 'είδη'
- 'σειρές'
- 'ψάρι'
- 'πρόβατο'
INFLECTOR_IRREGULAR:
'person': 'άνθρωποι'
'man': 'άνδρες'
'child': 'παιδιά'
'sex': 'φύλο'
'move': 'κινήσεις'
INFLECTOR_ORDINALS:
'default': 'th'
'first': 'st'
'second': 'nd'
'third': 'rd'
NICETIME:
NO_DATE_PROVIDED: Δεν δόθηκε καμία ημερομηνία
BAD_DATE: Εσφαλμένη ημερομηνία
AGO: πρίν
FROM_NOW: από τώρα
JUST_NOW: μόλις τώρα
SECOND: δευτερόλεπτο
MINUTE: λεπτό
HOUR: ώρα
@@ -37,8 +101,8 @@ GRAV:
YR_PLURAL: έτη
DEC_PLURAL: δεκαετίες
FORM:
VALIDATION_FAIL: <b>Η επικύρωση απέτυχε:</b>
INVALID_INPUT: Μη έγκυρα δεδομένα σε
VALIDATION_FAIL: '<b>Η επικύρωση απέτυχε:</b>'
INVALID_INPUT: 'Μη έγκυρα δεδομένα σε'
MISSING_REQUIRED_FIELD: 'Λείπει το απαιτούμενο πεδίο:'
MONTHS_OF_THE_YEAR:
- 'Ιανουάριος'
@@ -61,3 +125,20 @@ GRAV:
- 'Παρασκευή'
- 'Σάββατο'
- 'Κυριακή'
CRON:
EVERY: κάθε
EVERY_HOUR: κάθε ώρα
EVERY_MINUTE: κάθε λεπτό
EVERY_DAY_OF_WEEK: κάθε μέρα της εβδομάδος
EVERY_DAY_OF_MONTH: κάθε μέρα του μήνα
EVERY_MONTH: κάθε μήνα
TEXT_PERIOD: Κάθε <b />
TEXT_MINS: ' κατά <b /> λεπτό(ά) μετά την ώρα'
TEXT_TIME: ' στο <b />:<b />'
TEXT_DOW: ' στις <b />'
TEXT_MONTH: ' από <b />'
TEXT_DOM: ' στις <b />'
ERROR1: Η ετικέτα %s δεν υποστηρίζεται!
ERROR2: Μη έγκυρος αριθμός στοιχείων
ERROR3: Το jquery_element θα έπρεπε να οριστεί στις ρυθμίσεις του jqCron
ERROR4: Μη αναγνωρισμένη έκφραση

View File

@@ -94,9 +94,10 @@ GRAV:
YR_PLURAL: yrs
DEC_PLURAL: decs
FORM:
VALIDATION_FAIL: <b>Validation failed:</b>
INVALID_INPUT: Invalid input in
MISSING_REQUIRED_FIELD: Missing required field:
VALIDATION_FAIL: '<b>Validation failed:</b>'
INVALID_INPUT: 'Invalid input in'
MISSING_REQUIRED_FIELD: 'Missing required field:'
XSS_ISSUES: "Potential XSS issues detected in '%s' field"
MONTHS_OF_THE_YEAR: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
DAYS_OF_THE_WEEK: ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
YES: "Yes"

View File

@@ -1,19 +1,25 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntítulo: %1$s\n---\n\n# Error: Frontmatter no válido\n\nRuta: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
FRONTMATTER_ERROR_PAGE: "---\ntítulo: %1$s\n---\n\n# Error: Prefacio no válido\n\nRuta: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1ios'
'/s$/i': 's'
'/$/': 's'
INFLECTOR_UNCOUNTABLE:
- 'equipo'
- 'equipamiento'
- 'información'
- 'rice'
- 'arroz'
- 'dinero'
- 'species'
- 'especies'
- 'series'
- 'pescado'
- 'oveja'
INFLECTOR_IRREGULAR:
'person': 'personas'
'man': 'hombres'
'child': 'niños'
'sex': 'sexos'
'move': 'movido'
INFLECTOR_ORDINALS:
'first': 'ro'
'second': 'do'
@@ -33,10 +39,12 @@ GRAV:
YEAR: año
DECADE: década
SEC: seg
MIN: min
HR: h
WK: sem
MO: mes
YR: año
DEC: dic
SECOND_PLURAL: segundos
MINUTE_PLURAL: minutos
HOUR_PLURAL: horas
@@ -46,6 +54,7 @@ GRAV:
YEAR_PLURAL: años
DECADE_PLURAL: décadas
SEC_PLURAL: segs
MIN_PLURAL: mins
HR_PLURAL: hs
WK_PLURAL: sem
MO_PLURAL: mes
@@ -55,6 +64,7 @@ GRAV:
VALIDATION_FAIL: '<b>Falló la validación: </b>'
INVALID_INPUT: 'Dato inválido en: '
MISSING_REQUIRED_FIELD: 'Falta el campo requerido: '
XSS_ISSUES: "Se detectaron problemas XSS potenciales en el campo '%s'"
MONTHS_OF_THE_YEAR:
- 'Enero'
- 'Febrero'
@@ -76,6 +86,8 @@ GRAV:
- 'Viernes'
- 'Sábado'
- 'Domingo'
YES: "Si"
NO: "No"
CRON:
EVERY: cada
EVERY_HOUR: cada hora

View File

@@ -1,11 +1,22 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\npealkiri: %1$s\n---\n\n# Viga: vigane Frontmatter'i\n\nasukoht: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(octop|vir)us$/i': '\1i'
INFLECTOR_SINGULAR:
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/(x|ch|ss|sh)es$/i': '\1'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
INFLECTOR_UNCOUNTABLE:
- 'equipment'
- 'informatsioon'
- 'rice'
- 'money'
- 'riis'
- 'raha'
- 'species'
- 'series'
- 'kala'
@@ -34,6 +45,7 @@ GRAV:
YEAR: aasta
DECADE: 10 aastat
SEC: sek
MIN: min
HR: t
WK: näd
MO: k.
@@ -55,7 +67,7 @@ GRAV:
YR_PLURAL: aastat
DEC_PLURAL: dek.
FORM:
VALIDATION_FAIL: <b>Kinnitamine nurjus:</b>
VALIDATION_FAIL: '<b>Kinnitamine nurjus:</b>'
INVALID_INPUT: 'Vigane sisend:'
MISSING_REQUIRED_FIELD: 'Nõutud väli puudub:'
MONTHS_OF_THE_YEAR:
@@ -81,5 +93,12 @@ GRAV:
- 'pühapäev'
CRON:
EVERY: iga
EVERY_HOUR: iga tund
EVERY_MINUTE: iga minut
EVERY_DAY_OF_WEEK: iga nädala päev
EVERY_MONTH: iga kuu
TEXT_PERIOD: Iga <b />
ERROR1: Silt %s pole toetatud!
ERROR2: Vale elementide arv
ERROR3: jqCron seadetes peaks olema määratud jquery_element
ERROR4: Tundmatu väljend

View File

@@ -36,8 +36,8 @@ GRAV:
YR_PLURAL: urt
DEC_PLURAL: ham
FORM:
VALIDATION_FAIL: <b>Balidazioak huts egin du</b>
INVALID_INPUT: Baliogabeko sarrera
VALIDATION_FAIL: '<b>Balidazioak huts egin du</b>'
INVALID_INPUT: 'Baliogabeko sarrera'
MISSING_REQUIRED_FIELD: 'Derrigorrezko eremua bete gabe:'
MONTHS_OF_THE_YEAR:
- 'Urtarrila'

View File

@@ -36,8 +36,8 @@ GRAV:
YR_PLURAL: سال
DEC_PLURAL: دهه
FORM:
VALIDATION_FAIL: <b>سنجش اعتبار ناموفق بود</b>
INVALID_INPUT: ورودی نامعتبر در
VALIDATION_FAIL: '<b>سنجش اعتبار ناموفق بود</b>'
INVALID_INPUT: 'ورودی نامعتبر در'
MISSING_REQUIRED_FIELD: 'قسمت ضروری جا افتاده:'
MONTHS_OF_THE_YEAR:
- 'ژانویه'

View File

@@ -100,8 +100,8 @@ GRAV:
YR_PLURAL: v
DEC_PLURAL: vuosikymmentä
FORM:
VALIDATION_FAIL: <b>Vahvistus epäonnistui:</b>
INVALID_INPUT: Syöte ei kelpaa
VALIDATION_FAIL: '<b>Vahvistus epäonnistui:</b>'
INVALID_INPUT: 'Syöte ei kelpaa'
MISSING_REQUIRED_FIELD: 'Puuttuva pakollinen kenttä:'
MONTHS_OF_THE_YEAR:
- 'Tammikuu'

View File

@@ -16,6 +16,7 @@ GRAV:
'/(buffal|tomat)o$/i': '\1es'
'/(bu)s$/i': 'Bus'
'/(alias|status)/i': 'alias|status'
'/(octop|vir)us$/i': 'virus'
'/(ax|test)is$/i': '\1s'
'/s$/i': 's'
'/$/': 's'
@@ -80,30 +81,30 @@ GRAV:
YR_PLURAL: a
DEC_PLURAL: décs
FORM:
VALIDATION_FAIL: <b>La validation a échoué :</b>
INVALID_INPUT: Saisie non valide
VALIDATION_FAIL: '<b>La validation a échoué :</b>'
INVALID_INPUT: 'Saisie non valide'
MISSING_REQUIRED_FIELD: 'Champ obligatoire manquant :'
MONTHS_OF_THE_YEAR:
- 'Janvier'
- 'Février'
- 'Mars'
- 'Avril'
- 'Mai'
- 'Juin'
- 'Juillet'
- 'Août'
- 'Septembre'
- 'Octobre'
- 'Novembre'
- 'Décembre'
- 'janvier'
- 'février'
- 'mars'
- 'avril'
- 'mai'
- 'juin'
- 'juillet'
- 'août'
- 'septembre'
- 'octobre'
- 'novembre'
- 'décembre'
DAYS_OF_THE_WEEK:
- 'Lundi'
- 'Mardi'
- 'Mercredi'
- 'Jeudi'
- 'Vendredi'
- 'Samedi'
- 'Dimanche'
- 'lundi'
- 'mardi'
- 'mercredi'
- 'jeudi'
- 'vendredi'
- 'samedi'
- 'dimanche'
CRON:
EVERY: chaque
EVERY_HOUR: toutes les heures

144
system/languages/gl.yaml Normal file
View File

@@ -0,0 +1,144 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntítulo: %1$s\n---\n\n# Erro: Limiar incorrecto\n\nRuta: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1zes'
'/^(ox)$/i': '\1en'
'/([m|l])ouse$/i': '\1ice'
'/(matr|vert|ind)ix|ex$/i': '\1ices'
'/(x|ch|ss|sh)$/i': '\1es'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([^aeiouy]|qu)y$/i': '\1ies'
'/(hive)$/i': '\1s'
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
'/sis$/i': 'ses'
'/([ti])um$/i': '\1a'
'/(buffal|tomat)o$/i': '\1oes'
'/(bu)s$/i': '\1ses'
'/(alias|status)/i': '\1'
'/(octop|vir)us$/i': '\1'
'/(ax|test)is$/i': '\1es'
'/s$/i': 's'
'/$/': 's'
INFLECTOR_SINGULAR:
'/(quiz)zes$/i': '\1ces'
'/(matr)ices$/i': '\1ix'
'/(vert|ind)ices$/i': '\1ex'
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/([octop|vir])i$/i': '\1'
'/(cris|ax|test)es$/i': '\1es'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/([m|l])ice$/i': '\1ouse'
'/(x|ch|ss|sh)es$/i': '\1'
'/(m)ovies$/i': '\1ovie'
'/(s)eries$/i': '\1eries'
'/([^aeiouy]|qu)ies$/i': '\1'
'/([lr])ves$/i': '\1f'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
'/([^f])ves$/i': '\1fe'
'/(^analy)ses$/i': '\1se'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2se'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- 'equipo'
- 'información'
- 'arroz'
- 'diñeiro'
- 'especies'
- 'series'
- 'peixe'
- 'ovella'
INFLECTOR_IRREGULAR:
'person': 'xente'
'man': 'home'
'child': 'neno'
'sex': 'sexos'
'move': 'move'
INFLECTOR_ORDINALS:
'default': 'º'
'first': 'º'
'second': 'º'
'third': 'º'
NICETIME:
NO_DATE_PROVIDED: Non fornece unha data
BAD_DATE: Data errada
AGO: hai
FROM_NOW: dende agora
JUST_NOW: xusto agora
SECOND: segundo
MINUTE: minuto
HOUR: hora
DAY: día
WEEK: semana
MONTH: mes
YEAR: ano
DECADE: década
SEC: seg
MIN: min
HR: hr
WK: Sem
MO: m
YR: a
DEC: dec
SECOND_PLURAL: segundos
MINUTE_PLURAL: minutos
HOUR_PLURAL: horas
DAY_PLURAL: días
WEEK_PLURAL: semanas
MONTH_PLURAL: meses
YEAR_PLURAL: anos
DECADE_PLURAL: décadas
SEC_PLURAL: segs
MIN_PLURAL: mins
HR_PLURAL: hrs
WK_PLURAL: sem
MO_PLURAL: mes
YR_PLURAL: a
DEC_PLURAL: deca
FORM:
VALIDATION_FAIL: '<b>Fallou a validación:</b>'
INVALID_INPUT: 'Entrada incorrecta en'
MISSING_REQUIRED_FIELD: 'Falta un campo requirido:'
MONTHS_OF_THE_YEAR:
- 'xaneiro'
- 'febreiro'
- 'marzo'
- 'abril'
- 'maio'
- 'xuño'
- 'xullo'
- 'agosto'
- 'setembro'
- 'outubro'
- 'novembro'
- 'decembro'
DAYS_OF_THE_WEEK:
- 'luns'
- 'martes'
- 'mércores'
- 'xoves'
- 'venres'
- 'sábado'
- 'domingo'
CRON:
EVERY: cada
EVERY_HOUR: Cada hora
EVERY_MINUTE: Cada minuto
EVERY_DAY_OF_WEEK: cada día da semana
EVERY_DAY_OF_MONTH: cada día do mes
EVERY_MONTH: cada mes
TEXT_PERIOD: Cada <b />
TEXT_MINS: ' dentro de <b /> minuto(s) despois da hora'
TEXT_TIME: ' dentro <b />:<b />'
TEXT_DOW: ' o <b />'
TEXT_MONTH: ' de <b />'
TEXT_DOM: ' o <b />'
ERROR1: A etiqueta %s non é compatíbel!
ERROR2: Mal número de elementos
ERROR3: O jquery_element debería estar determinado na configuración de jqCron
ERROR4: Expresión non recoñecida

View File

@@ -37,8 +37,8 @@ GRAV:
YR_PLURAL: שני'
DEC_PLURAL: עש'
FORM:
VALIDATION_FAIL: <b>האימות נכשל:</b>
INVALID_INPUT: קלט לא חוקי
VALIDATION_FAIL: '<b>האימות נכשל:</b>'
INVALID_INPUT: 'קלט לא חוקי'
MISSING_REQUIRED_FIELD: 'שדות חובה חסרים:'
MONTHS_OF_THE_YEAR:
- 'ינואר'

View File

@@ -50,8 +50,8 @@ GRAV:
YR_PLURAL: g
DEC_PLURAL: des
FORM:
VALIDATION_FAIL: <b>Validacija nije uspjela:</b>
INVALID_INPUT: Pogrešan unos u
VALIDATION_FAIL: '<b>Validacija nije uspjela:</b>'
INVALID_INPUT: 'Pogrešan unos u'
MISSING_REQUIRED_FIELD: 'Nedostaje obavezno polje:'
MONTHS_OF_THE_YEAR:
- 'Siječanj'

View File

@@ -58,7 +58,7 @@ GRAV:
YR_PLURAL: év
DEC_PLURAL: évt
FORM:
VALIDATION_FAIL: <b>Érvényesítés nem sikerült:</b>
VALIDATION_FAIL: '<b>Érvényesítés nem sikerült:</b>'
INVALID_INPUT: 'A megadott érték érvénytelen:'
MISSING_REQUIRED_FIELD: 'Ez a kötelező mező nincs kitöltve:'
MONTHS_OF_THE_YEAR:

View File

@@ -1,6 +1,8 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Error: Frontmatter tidak valid\n\nLokasi: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1zes'
INFLECTOR_UNCOUNTABLE:
- 'peralatan'
- 'informasi'
@@ -53,8 +55,8 @@ GRAV:
YR_PLURAL: thn
DEC_PLURAL: dekade
FORM:
VALIDATION_FAIL: <b>Validasi gagal:</b>
INVALID_INPUT: Input tidak valid di
VALIDATION_FAIL: '<b>Validasi gagal:</b>'
INVALID_INPUT: 'Input tidak valid di'
MISSING_REQUIRED_FIELD: 'Data yang diperlukan belum terisi:'
MONTHS_OF_THE_YEAR:
- 'Januari'

View File

@@ -46,8 +46,8 @@ GRAV:
YR_PLURAL: árum
DEC_PLURAL: árat
FORM:
VALIDATION_FAIL: <b>Sannvottun mistókst:</b>
INVALID_INPUT: Ógilt inntak í
VALIDATION_FAIL: '<b>Sannvottun mistókst:</b>'
INVALID_INPUT: 'Ógilt inntak í'
MISSING_REQUIRED_FIELD: 'Vantar nauðsynlegan reit:'
MONTHS_OF_THE_YEAR:
- 'janúar'

View File

@@ -1,6 +1,49 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---Titolo: %1$s---# Errore: Frontmatter non valido: '%2$s' * *%3$s * * ' '%4$s ' '"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1'
'/^(ox)$/i': '\1en'
'/([m|l])ouse$/i': '\1ice'
'/(matr|vert|ind)ix|ex$/i': '\1ices'
'/(x|ch|ss|sh)$/i': '\1es'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([^aeiouy]|qu)y$/i': '\1ies'
'/(hive)$/i': '\1s'
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
'/sis$/i': 'ses'
'/([ti])um$/i': '\1a'
'/(buffal|tomat)o$/i': '\1oes'
'/(bu)s$/i': '\1ses'
'/(alias|status)/i': '\1es'
'/(octop|vir)us$/i': '\1i'
'/(ax|test)is$/i': '\1es'
'/s$/i': 's'
'/$/': 's'
INFLECTOR_SINGULAR:
'/(quiz)zes$/i': '\1'
'/(matr)ices$/i': '\1ix'
'/(vert|ind)ices$/i': '\1ex'
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/([octop|vir])i$/i': '\1us'
'/(cris|ax|test)es$/i': '\1is'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/([m|l])ice$/i': '\1ouse'
'/(x|ch|ss|sh)es$/i': '\1'
'/(m)ovies$/i': '\1ovie'
'/(s)eries$/i': '\1eries'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([lr])ves$/i': '\1f'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
'/([^f])ves$/i': '\1fe'
'/(^analy)ses$/i': '\1sis'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- 'dotazione'
- 'informazione'
@@ -58,9 +101,10 @@ GRAV:
YR_PLURAL: anni
DEC_PLURAL: decenni
FORM:
VALIDATION_FAIL: <b>Validazione fallita:</b>
INVALID_INPUT: Input non valido in
VALIDATION_FAIL: '<b>Validazione fallita:</b>'
INVALID_INPUT: 'Input non valido in'
MISSING_REQUIRED_FIELD: 'Campo richiesto mancante:'
XSS_ISSUES: "Rilevati potenziali problemi di XSS nel campo '%s'"
MONTHS_OF_THE_YEAR:
- 'Gennaio'
- 'Febbraio'
@@ -82,6 +126,8 @@ GRAV:
- 'Venerdì'
- 'Sabato'
- 'Domenica'
YES: "Sì"
NO: "No"
CRON:
EVERY: ogni
EVERY_HOUR: ogni ora

View File

@@ -1,11 +1,22 @@
---
GRAV:
INFLECTOR_UNCOUNTABLE:
- 'equipment'
- '情報'
- 'rice'
- 'お金'
- 'species'
- 'series'
- '魚'
- 'ヒツジ'
INFLECTOR_IRREGULAR:
'person': 'みんな'
'man': '人'
'child': '子供'
'sex': '性別'
'move': '移動'
INFLECTOR_ORDINALS:
'first': '番目'
NICETIME:
NO_DATE_PROVIDED: 日付が設定されていません
BAD_DATE: 不正な日付
@@ -40,8 +51,8 @@ GRAV:
YR_PLURAL:
DEC_PLURAL: 10年
FORM:
VALIDATION_FAIL: <b>バリデーション失敗 :</b>
INVALID_INPUT: 不正な入力:
VALIDATION_FAIL: '<b>バリデーション失敗 :</b>'
INVALID_INPUT: '不正な入力:'
MISSING_REQUIRED_FIELD: '必須項目が入力されていません:'
MONTHS_OF_THE_YEAR:
- '1月'
@@ -64,3 +75,7 @@ GRAV:
- '金'
- '土'
- '日'
CRON:
EVERY:
EVERY_MONTH: 毎月
ERROR1: 共有タイプ %s はサポートされていません

View File

@@ -37,8 +37,8 @@ GRAV:
YR_PLURAL:
DEC_PLURAL: 년간
FORM:
VALIDATION_FAIL: <b>유효성 검사 실패:</b>
INVALID_INPUT: 잘못된 입력
VALIDATION_FAIL: '<b>유효성 검사 실패:</b>'
INVALID_INPUT: '잘못된 입력'
MISSING_REQUIRED_FIELD: '누락 된 필수 필드:'
MONTHS_OF_THE_YEAR:
- '일월'

View File

@@ -52,8 +52,8 @@ GRAV:
YR_PLURAL: m.
DEC_PLURAL: dešimtmečiai
FORM:
VALIDATION_FAIL: <b>Patvirtinimas nepavyko:</b>
INVALID_INPUT: Neteisingai įvesta į
VALIDATION_FAIL: '<b>Patvirtinimas nepavyko:</b>'
INVALID_INPUT: 'Neteisingai įvesta į'
MISSING_REQUIRED_FIELD: 'Būtina užpildyti laukelį:'
MONTHS_OF_THE_YEAR:
- 'Sausis'

View File

@@ -101,8 +101,8 @@ GRAV:
YR_PLURAL: jaren
DEC_PLURAL: decennia
FORM:
VALIDATION_FAIL: <b>Validatie mislukt:</b>
INVALID_INPUT: Ongeldige invoer in
VALIDATION_FAIL: '<b>Validatie mislukt:</b>'
INVALID_INPUT: 'Ongeldige invoer in'
MISSING_REQUIRED_FIELD: 'Ontbrekend verplicht veld:'
MONTHS_OF_THE_YEAR:
- 'Januari'

View File

@@ -21,6 +21,7 @@ GRAV:
BAD_DATE: Ugyldig dato
AGO: siden
FROM_NOW: fra nå
JUST_NOW: akkurat nå
SECOND: sekund
MINUTE: minutt
HOUR: time
@@ -51,8 +52,8 @@ GRAV:
YR_PLURAL: år
DEC_PLURAL: årtier
FORM:
VALIDATION_FAIL: <b>Godkjenning mislyktes:</b>
INVALID_INPUT: Ugyldig innhold i
VALIDATION_FAIL: '<b>Godkjenning mislyktes:</b>'
INVALID_INPUT: 'Ugyldig innhold i'
MISSING_REQUIRED_FIELD: 'Mangler påkrevd felt:'
MONTHS_OF_THE_YEAR:
- 'januar'
@@ -75,3 +76,7 @@ GRAV:
- 'fredag'
- 'lørdag'
- 'søndag'
CRON:
EVERY: hver
EVERY_HOUR: hver time
EVERY_MINUTE: hvert minutt

View File

@@ -1,11 +1,32 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Error: Nieprawidłowy Frontmatter\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_SINGULAR:
'/(alias|status)es$/i': '\1'
INFLECTOR_UNCOUNTABLE:
- 'wyposażenie'
- 'informacja'
- 'rice'
- 'pieniądze'
- 'species'
- 'series'
- 'ryba'
- 'owca'
INFLECTOR_IRREGULAR:
'person': 'człowiek'
'man': 'mężczyźni'
'child': 'dzieci'
'sex': 'płci'
INFLECTOR_ORDINALS:
'first': 'pierwszy'
'second': 'drugi'
'third': 'trzeci'
NICETIME:
NO_DATE_PROVIDED: Nie podano daty
BAD_DATE: Zła data
AGO: temu
FROM_NOW: od teraz
JUST_NOW: właśnie teraz
SECOND: sekunda
MINUTE: minuta
HOUR: godzina
@@ -15,6 +36,7 @@ GRAV:
YEAR: rok
DECADE: dekada
SEC: sek
MIN: minuta
HR: godz
WK: tydz
MO: m-c
@@ -36,9 +58,10 @@ GRAV:
YR_PLURAL: lat
DEC_PLURAL: dekad
FORM:
VALIDATION_FAIL: <b>Weryfikacja nie powiodła się:</b>
INVALID_INPUT: Nieprawidłowe dane wejściowe
VALIDATION_FAIL: '<b>Weryfikacja nie powiodła się:</b>'
INVALID_INPUT: 'Nieprawidłowe dane wejściowe'
MISSING_REQUIRED_FIELD: 'Opuszczono wymagane pole:'
XSS_ISSUES: "Potencjalne problemy XSS wykryte w polu '%s'"
MONTHS_OF_THE_YEAR:
- 'Styczeń'
- 'Luty'
@@ -60,3 +83,18 @@ GRAV:
- 'Piątek'
- 'Sobota'
- 'Niedziela'
YES: "Tak"
NO: "Nie"
CRON:
EVERY: każdy
EVERY_HOUR: każdą godzinę
EVERY_MINUTE: każdą minutę
EVERY_DAY_OF_WEEK: każdego dnia tygodnia
EVERY_DAY_OF_MONTH: każdego dnia miesiące
EVERY_MONTH: każdego miesiąca
TEXT_PERIOD: Każdego <b />
TEXT_MINS: 'o <b /> minut po godzinie'
TEXT_TIME: 'o <b />:<b />'
ERROR1: Znacznik %s nie jest wspierany!
ERROR2: Nieprawidłowa liczba elementów
ERROR4: Wyrażenie nierozpoznane

View File

@@ -1,8 +1,75 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Erro: Frontmatter Inválido\n\nLocalização: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1zes'
'/^(ox)$/i': '\1en'
'/([m|l])ouse$/i': '\1ice'
'/(matr|vert|ind)ix|ex$/i': '\1ices'
'/(x|ch|ss|sh)$/i': '\1es'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([^aeiouy]|qu)y$/i': '\1ies'
'/(hive)$/i': '\1s'
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
'/sis$/i': 'ses'
'/([ti])um$/i': '\1a'
'/(buffal|tomat)o$/i': '\1oes'
'/(bu)s$/i': '\1ses'
'/(alias|status)/i': '\1es'
'/(octop|vir)us$/i': '\1i'
'/(ax|test)is$/i': '\1es'
'/s$/i': 's'
'/$/': 's'
INFLECTOR_SINGULAR:
'/(quiz)zes$/i': '\1'
'/(matr)ices$/i': '\1ix'
'/(vert|ind)ices$/i': '\1ex'
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/([octop|vir])i$/i': '\1us'
'/(cris|ax|test)es$/i': '\1is'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/([m|l])ice$/i': '\1ouse'
'/(x|ch|ss|sh)es$/i': '\1'
'/(m)ovies$/i': '\1ovie'
'/(s)eries$/i': '\1eries'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([lr])ves$/i': '\1f'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
'/([^f])ves$/i': '\1fe'
'/(^analy)ses$/i': '\1sis'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- 'equipamento'
- 'informação'
- 'arroz'
- 'dinheiro'
- 'espécie'
- 'série'
- 'peixe'
- 'ovelha'
INFLECTOR_IRREGULAR:
'person': 'pessoas'
'man': 'homens'
'child': 'crianças'
'sex': 'sexos'
'move': 'movimentos'
INFLECTOR_ORDINALS:
'default': 'º'
'first': 'º'
'second': 'º'
'third': 'º'
NICETIME:
NO_DATE_PROVIDED: Nenhuma data fornecida
BAD_DATE: Data inválida
AGO: atrás
FROM_NOW: a partir de agora
JUST_NOW: mesmo agora
SECOND: segundo
MINUTE: minuto
HOUR: hora
@@ -11,17 +78,32 @@ GRAV:
MONTH: mês
YEAR: ano
DECADE: década
SEC: segundos
MIN: minutos
SEC: seg
MIN: min
HR: hora
WK: semana
MO: mês
YR: ano
DEC: década
SECOND_PLURAL: segundos
MINUTE_PLURAL: minutos
HOUR_PLURAL: horas
DAY_PLURAL: dias
WEEK_PLURAL: semanas
MONTH_PLURAL: meses
YEAR_PLURAL: anos
DECADE_PLURAL: decadas
DECADE_PLURAL: décadas
SEC_PLURAL: segs
MIN_PLURAL: mins
HR_PLURAL: hrs
WK_PLURAL: sems
MO_PLURAL: meses
YR_PLURAL: anos
DEC_PLURAL: décadas
FORM:
VALIDATION_FAIL: <b>Falha na validação!</b>
MISSING_REQUIRED_FIELD: 'Campo obrigatório requerido:'
VALIDATION_FAIL: '<b>Falha na validação:</b>'
INVALID_INPUT: 'Dados inseridos são inválidos em'
MISSING_REQUIRED_FIELD: 'Campo obrigatório em falta:'
MONTHS_OF_THE_YEAR:
- 'Janeiro'
- 'Fevereiro'
@@ -35,12 +117,28 @@ GRAV:
- 'Outubro'
- 'Novembro'
- 'Dezembro'
INFLECTOR_UNCOUNTABLE:
- 'equipment'
- 'information'
- 'arroz'
- 'money'
- 'species'
- 'series'
- 'fish'
- 'sheep'
DAYS_OF_THE_WEEK:
- 'Segunda-feira'
- 'Terça-feira'
- 'Quarta-feira'
- 'Quinta-feira'
- 'Sexta-feira'
- 'Sábado'
- 'Domingo'
CRON:
EVERY: cada
EVERY_HOUR: cada hora
EVERY_MINUTE: cada minuto
EVERY_DAY_OF_WEEK: todos os dias da semana
EVERY_DAY_OF_MONTH: todos os dias do mês
EVERY_MONTH: todos os meses
TEXT_PERIOD: Cada <b />
TEXT_MINS: ' em <b /> minuto(s) após a hora'
TEXT_TIME: ' em <b />:<b />'
TEXT_DOW: ' em <b />'
TEXT_MONTH: ' de <b />'
TEXT_DOM: ' em <b />'
ERROR1: A tag %s não é suportada!
ERROR2: Número de elementos inválido
ERROR3: O jquery_element deve ser definido nas configurações do jqCron
ERROR4: Expressão não reconhecida

View File

@@ -53,8 +53,8 @@ GRAV:
YR_PLURAL: ani
DEC_PLURAL: decenii
FORM:
VALIDATION_FAIL: <b>Validare nereușită</b>
INVALID_INPUT: Date incorecte în
VALIDATION_FAIL: '<b>Validare nereușită</b>'
INVALID_INPUT: 'Date incorecte în'
MISSING_REQUIRED_FIELD: 'Câmp obligatoriu lipsă:'
MONTHS_OF_THE_YEAR:
- 'Ianuarie'

View File

@@ -13,7 +13,7 @@ GRAV:
INFLECTOR_IRREGULAR:
'person': 'люди'
'man': 'человек'
'child': 'ребенок'
'child': 'дети'
'sex': 'пол'
'move': 'движется'
INFLECTOR_ORDINALS:
@@ -58,9 +58,10 @@ GRAV:
YR_PLURAL: г
DEC_PLURAL: дстлт
FORM:
VALIDATION_FAIL: <b>Проверка не удалась:</b>
INVALID_INPUT: Неверный ввод в
VALIDATION_FAIL: '<b>Проверка не удалась:</b>'
INVALID_INPUT: 'Неверный ввод в'
MISSING_REQUIRED_FIELD: 'Отсутствует необходимое поле:'
XSS_ISSUES: "Обнаружены потенциальные XSS проблемы в поле '%s'"
MONTHS_OF_THE_YEAR:
- 'январь'
- 'февраль'
@@ -68,12 +69,12 @@ GRAV:
- 'апрель'
- 'май'
- 'июнь'
- 'Июль'
- 'Август'
- 'Сентябрь'
- 'Октябрь'
- 'Ноябрь'
- 'Декабрь'
- 'июль'
- 'август'
- 'сентябрь'
- 'октябрь'
- 'ноябрь'
- 'декабрь'
DAYS_OF_THE_WEEK:
- 'понедельник'
- 'вторник'
@@ -82,6 +83,8 @@ GRAV:
- 'пятница'
- 'суббота'
- 'воскресенье'
YES: "Да"
NO: "Нет"
CRON:
EVERY: раз в
EVERY_HOUR: раз в час

View File

@@ -101,8 +101,8 @@ GRAV:
YR_PLURAL: rokov
DEC_PLURAL: dekád
FORM:
VALIDATION_FAIL: <b>Overenie zlyhalo:</b>
INVALID_INPUT: Neplatný vstup v
VALIDATION_FAIL: '<b>Overenie zlyhalo:</b>'
INVALID_INPUT: 'Neplatný vstup v'
MISSING_REQUIRED_FIELD: 'Chýba vyžadované pole:'
MONTHS_OF_THE_YEAR:
- 'Január'

View File

@@ -36,8 +36,8 @@ GRAV:
YR_PLURAL: l
DEC_PLURAL: des
FORM:
VALIDATION_FAIL: <b>Preverjanje veljavnosti ni uspelo:</b>
INVALID_INPUT: Neveljaven vnos v
VALIDATION_FAIL: '<b>Preverjanje veljavnosti ni uspelo:</b>'
INVALID_INPUT: 'Neveljaven vnos v'
MISSING_REQUIRED_FIELD: 'Manjka obvezno polje:'
MONTHS_OF_THE_YEAR:
- 'Januar'

144
system/languages/sr.yaml Normal file
View File

@@ -0,0 +1,144 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\nнаслов: %1$s\n---\n\n# Грешка: неисправан Frontmatter\n\nПутања: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1zes'
'/^(ox)$/i': '\1en'
'/([m|l])ouse$/i': '\1ice'
'/(matr|vert|ind)ix|ex$/i': '\1ices'
'/(x|ch|ss|sh)$/i': '\1es'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([^aeiouy]|qu)y$/i': '\1ies'
'/(hive)$/i': '\1s'
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
'/sis$/i': 'ses'
'/([ti])um$/i': '\1a'
'/(buffal|tomat)o$/i': '\1oes'
'/(bu)s$/i': '\1ses'
'/(alias|status)/i': '\1es'
'/(octop|vir)us$/i': '\1i'
'/(ax|test)is$/i': '\1es'
'/s$/i': 's'
'/$/': 's'
INFLECTOR_SINGULAR:
'/(quiz)zes$/i': '\1'
'/(matr)ices$/i': '\1ix'
'/(vert|ind)ices$/i': '\1ex'
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/([octop|vir])i$/i': '\1us'
'/(cris|ax|test)es$/i': '\1is'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/([m|l])ice$/i': '\1ouse'
'/(x|ch|ss|sh)es$/i': '\1'
'/(m)ovies$/i': '\1ovie'
'/(s)eries$/i': '\1eries'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([lr])ves$/i': '\1f'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
'/([^f])ves$/i': '\1fe'
'/(^analy)ses$/i': '\1sis'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- 'опрема'
- 'информација'
- 'пиринач'
- 'новац'
- 'врсте'
- 'серије'
- 'риба'
- 'овца'
INFLECTOR_IRREGULAR:
'person': 'особе'
'man': 'људи'
'child': 'деца'
'sex': 'полови'
'move': 'помери'
INFLECTOR_ORDINALS:
'default': 'ти'
'first': 'први'
'second': 'други'
'third': 'трећи'
NICETIME:
NO_DATE_PROVIDED: Нема датума
BAD_DATE: Погрешан датум
AGO: од пре
FROM_NOW: од сада
JUST_NOW: управо сада
SECOND: секунда
MINUTE: минута
HOUR: сат
DAY: дан
WEEK: недеља
MONTH: месец
YEAR: година
DECADE: декада
SEC: сек
MIN: мин
HR: сат
WK: нед
MO: мес
YR: год
DEC: дек
SECOND_PLURAL: секунди
MINUTE_PLURAL: минута
HOUR_PLURAL: сати
DAY_PLURAL: дана
WEEK_PLURAL: недеља
MONTH_PLURAL: месеци
YEAR_PLURAL: године(а)
DECADE_PLURAL: декаде(а)
SEC_PLURAL: сек
MIN_PLURAL: мин
HR_PLURAL: сати
WK_PLURAL: недеља
MO_PLURAL: месеци
YR_PLURAL: година
DEC_PLURAL: декада
FORM:
VALIDATION_FAIL: '<b>Провера неуспела:</b>'
INVALID_INPUT: 'Неисправан унос у'
MISSING_REQUIRED_FIELD: 'Недостаје обавезн поље:'
MONTHS_OF_THE_YEAR:
- 'Јануар'
- 'Фебруар'
- 'Март'
- 'Април'
- 'Мај'
- 'Јуни'
- 'Јули'
- 'Август'
- 'Септембар'
- 'Октобар'
- 'Новембар'
- 'Децембар'
DAYS_OF_THE_WEEK:
- 'Понедељак'
- 'Уторак'
- 'Среда'
- 'Четвртак'
- 'Петак'
- 'Субота'
- 'Недеља'
CRON:
EVERY: сваки
EVERY_HOUR: сваки сат
EVERY_MINUTE: сваки минут
EVERY_DAY_OF_WEEK: сваки дан у недељи
EVERY_DAY_OF_MONTH: сваки дан у месецу
EVERY_MONTH: сваки месец
TEXT_PERIOD: Сваки <b />
TEXT_MINS: ' у <b /> минути(а) прошлог сата'
TEXT_TIME: ' у <b />:<b />'
TEXT_DOW: ' на <b />'
TEXT_MONTH: ' од <b />'
TEXT_DOM: ' на <b />'
ERROR1: Таг %s није подржан!
ERROR2: Погрешан број елемената
ERROR3: јquery_element би требао да буде постављен у jqCron подешавању
ERROR4: Непрепознат израз

View File

@@ -12,11 +12,21 @@ GRAV:
- 'får'
INFLECTOR_IRREGULAR:
'person': 'personer'
'man': 'män'
'child': 'barn'
'sex': 'kön'
'move': 'flytta'
INFLECTOR_ORDINALS:
'default': ':e'
'first': ':a'
'second': ':a'
'third': ':e'
NICETIME:
NO_DATE_PROVIDED: Inget datum har angivits
BAD_DATE: Ogiltigt datum
AGO: sedan
FROM_NOW: fr.o.m nu
JUST_NOW: just nu
SECOND: sekund
MINUTE: minut
HOUR: timme
@@ -26,10 +36,12 @@ GRAV:
YEAR: år
DECADE: årtionde
SEC: sek
MIN: min
HR: t
WK: v
MO: m
YR: år
DEC: dec
SECOND_PLURAL: sekunder
MINUTE_PLURAL: minuter
HOUR_PLURAL: timmar
@@ -46,8 +58,8 @@ GRAV:
YR_PLURAL: år
DEC_PLURAL: dec
FORM:
VALIDATION_FAIL: <b>Kontrollen misslyckades:</b>
INVALID_INPUT: Ogiltig indata i
VALIDATION_FAIL: '<b>Kontrollen misslyckades:</b>'
INVALID_INPUT: 'Ogiltig indata i'
MISSING_REQUIRED_FIELD: 'Obligatoriskt fält måste fyllas i:'
MONTHS_OF_THE_YEAR:
- 'Januari'
@@ -70,3 +82,19 @@ GRAV:
- 'Fredag'
- 'Lördag'
- 'Söndag'
CRON:
EVERY: varje
EVERY_HOUR: varje timme
EVERY_MINUTE: varje minut
EVERY_DAY_OF_WEEK: varje veckodag
EVERY_DAY_OF_MONTH: alla månadens dagar
EVERY_MONTH: varje månad
TEXT_PERIOD: Varje <b />
TEXT_MINS: ' timmens <b />:e minut'
TEXT_TIME: ' kl <b />:<b />'
TEXT_DOW: ' <b />'
TEXT_MONTH: ' <b />'
TEXT_DOM: ' <b />'
ERROR1: Taggen %s stöds inte!
ERROR2: Ogiltigt antal element
ERROR4: Uttrycket känns inte igen

View File

@@ -31,7 +31,7 @@ GRAV:
YR_PLURAL: ปี
FORM:
VALIDATION_FAIL: '<b>ตรวจสอบล้มเหลว: </b>'
INVALID_INPUT: ป้อนข้อมูลไม่ถูกต้องใน
INVALID_INPUT: 'ป้อนข้อมูลไม่ถูกต้องใน'
MISSING_REQUIRED_FIELD: 'ขาดข้อมูลที่จำเป็น:'
MONTHS_OF_THE_YEAR:
- 'มกราคม'

View File

@@ -1,11 +1,32 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\nBaşlık: %1$s\n---\n\n# Hata: Geçersiz Önbölüm\n\nYol: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_UNCOUNTABLE:
- 'ekipman'
- 'bilgi'
- 'pirinç'
- 'para'
- 'türler'
- 'seriler'
- 'balık'
- 'koyun'
INFLECTOR_IRREGULAR:
'person': 'kişi'
'man': 'erkek'
'child': 'çocuklar'
'sex': 'cinsiyet'
'move': 'taşınmış'
INFLECTOR_ORDINALS:
'default': '#F'
'first': ' 1.'
'second': ' 2.'
'third': ' 3.'
NICETIME:
NO_DATE_PROVIDED: Sağlanan tarih yok
BAD_DATE: Yanlış tarih
AGO: önce
FROM_NOW: şu andan itibaren
JUST_NOW: şimdi
SECOND: saniye
MINUTE: dakika
HOUR: saat
@@ -37,8 +58,8 @@ GRAV:
YR_PLURAL: yıl
DEC_PLURAL: onyl
FORM:
VALIDATION_FAIL: <b>Doğrulama başarısız:</b>
INVALID_INPUT: Geçersiz bilgi girişi
VALIDATION_FAIL: '<b>Doğrulama başarısız:</b>'
INVALID_INPUT: 'Geçersiz bilgi girişi'
MISSING_REQUIRED_FIELD: 'Gerekli alan eksik:'
MONTHS_OF_THE_YEAR:
- 'Ocak'
@@ -61,3 +82,17 @@ GRAV:
- 'Cuma'
- 'Cumartesi'
- 'Pazar'
CRON:
EVERY: her
EVERY_HOUR: saatte bir
EVERY_MINUTE: dakikada bir
EVERY_DAY_OF_WEEK: haftanın her günü
EVERY_DAY_OF_MONTH: ayın her günü
EVERY_MONTH: her ay
TEXT_PERIOD: Her <b />
TEXT_MINS: ' saatin <b /> dakikasında'
TEXT_TIME: ' da'
ERROR1: Etiket %s desteklenmiyor!
ERROR2: Kötü eleman sayısı
ERROR3: jquery_element jqCron ayarları içinde tanımlanmalı
ERROR4: Tanınmayan ifade

View File

@@ -37,8 +37,8 @@ GRAV:
YR_PLURAL: рр.
DEC_PLURAL: рр.
FORM:
VALIDATION_FAIL: <b>Перевірка не вдалася:</b>
INVALID_INPUT: Невірне введення в
VALIDATION_FAIL: '<b>Перевірка не вдалася:</b>'
INVALID_INPUT: 'Невірне введення в'
MISSING_REQUIRED_FIELD: 'Відсутнє обов''язкове поле:'
MONTHS_OF_THE_YEAR:
- 'Січень'

View File

@@ -37,8 +37,8 @@ GRAV:
YR_PLURAL: năm
DEC_PLURAL: thập kỷ
FORM:
VALIDATION_FAIL: <b>Xác nhận thất bại:</b>
INVALID_INPUT: Dữ liệu nhập không hợp lệ cho
VALIDATION_FAIL: '<b>Xác nhận thất bại:</b>'
INVALID_INPUT: 'Dữ liệu nhập không hợp lệ cho'
MISSING_REQUIRED_FIELD: 'Thiếu trường bắt buộc:'
MONTHS_OF_THE_YEAR:
- 'Tháng 1'

144
system/languages/zh-cn.yaml Normal file
View File

@@ -0,0 +1,144 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\n标题: %1$s\n---\n\n# 错误:无效参数\n\n位置 `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1zes'
'/^(ox)$/i': '\1en'
'/([m|l])ouse$/i': '\1ice'
'/(matr|vert|ind)ix|ex$/i': '\1ices'
'/(x|ch|ss|sh)$/i': '\1es'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([^aeiouy]|qu)y$/i': '\1ies'
'/(hive)$/i': '\1s'
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
'/sis$/i': 'ses'
'/([ti])um$/i': '\1a'
'/(buffal|tomat)o$/i': '\1oes'
'/(bu)s$/i': '\1ses'
'/(alias|status)/i': '\1es'
'/(octop|vir)us$/i': '\1i'
'/(ax|test)is$/i': '\1es'
'/s$/i': 's'
'/$/': 's'
INFLECTOR_SINGULAR:
'/(quiz)zes$/i': '\1'
'/(matr)ices$/i': '\1ix'
'/(vert|ind)ices$/i': '\1ex'
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/([octop|vir])i$/i': '\1us'
'/(cris|ax|test)es$/i': '\1is'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/([m|l])ice$/i': '\1ouse'
'/(x|ch|ss|sh)es$/i': '\1'
'/(m)ovies$/i': '\1ovie'
'/(s)eries$/i': '\1eries'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([lr])ves$/i': '\1f'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
'/([^f])ves$/i': '\1fe'
'/(^analy)ses$/i': '\1sis'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- '装备'
- '信息'
- '大米'
- '钱'
- '物种'
- '系列'
- '鱼'
- '羊'
INFLECTOR_IRREGULAR:
'person': '人员'
'man': '男人'
'child': '儿童'
'sex': '性别'
'move': '移动'
INFLECTOR_ORDINALS:
'default': 'th'
'first': 'st'
'second': 'md'
'third': 'rd'
NICETIME:
NO_DATE_PROVIDED: 无日期信息
BAD_DATE: 无效日期
AGO:
FROM_NOW: 距今
JUST_NOW: 刚刚
SECOND:
MINUTE: 分钟
HOUR: 小时
DAY:
WEEK:
MONTH:
YEAR:
DECADE: 十年
SEC:
MIN: 分钟
HR: 小时
WK:
MO:
YR:
DEC: 年代
SECOND_PLURAL:
MINUTE_PLURAL:
HOUR_PLURAL: 小时
DAY_PLURAL:
WEEK_PLURAL:
MONTH_PLURAL:
YEAR_PLURAL:
DECADE_PLURAL: 十年
SEC_PLURAL:
MIN_PLURAL:
HR_PLURAL:
WK_PLURAL:
MO_PLURAL:
YR_PLURAL:
DEC_PLURAL: 年代
FORM:
VALIDATION_FAIL: '<b>验证失败:</b>'
INVALID_INPUT: '无效输入'
MISSING_REQUIRED_FIELD: '必填字段缺失:'
MONTHS_OF_THE_YEAR:
- '1月'
- '2月'
- '3月'
- '4月'
- '5月'
- '6月'
- '7月'
- '8月'
- '9月'
- '10月'
- '11月'
- '12月'
DAYS_OF_THE_WEEK:
- '星期一'
- '星期二'
- '星期三'
- '星期四'
- '星期五'
- '星期六'
- '星期日'
CRON:
EVERY: 每隔
EVERY_HOUR: 每小时
EVERY_MINUTE: 每分钟
EVERY_DAY_OF_WEEK: 一周中的每一天
EVERY_DAY_OF_MONTH: 月份中的每一天
EVERY_MONTH: 每月
TEXT_PERIOD: 所有 <b />
TEXT_MINS: ' 在 <b /> 小时过后的分钟'
TEXT_TIME: ' 在 <b />:<b />'
TEXT_DOW: ' on <b />'
TEXT_MONTH: ' of <b />'
TEXT_DOM: ' on <b />'
ERROR1: 不支持分享类型 %s
ERROR2: 无效数字
ERROR3: 请在 jqCron 设置中设定 jquery_element
ERROR4: 无法识别表达式

View File

@@ -101,9 +101,9 @@ GRAV:
YR_PLURAL:
DEC_PLURAL: 年代
FORM:
VALIDATION_FAIL: <b>验证失败:</b>
INVALID_INPUT: 无效输入
MISSING_REQUIRED_FIELD: 必填字段缺失:
VALIDATION_FAIL: '<b>验证失败:</b>'
INVALID_INPUT: '无效输入'
MISSING_REQUIRED_FIELD: '必填字段缺失:'
MONTHS_OF_THE_YEAR:
- '1月'
- '2月'

View File

@@ -2,4 +2,5 @@
title: Not Found
routable: false
notfound: true
expires: 0
---

View File

@@ -3,7 +3,7 @@
/**
* @package Grav\Core
*
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -3,30 +3,41 @@
/**
* @package Grav\Common
*
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common;
use Closure;
use Grav\Common\Assets\Pipeline;
use Grav\Common\Assets\Traits\LegacyAssetsTrait;
use Grav\Common\Assets\Traits\TestingAssetsTrait;
use Grav\Common\Config\Config;
use Grav\Framework\Object\PropertyObject;
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
use function call_user_func_array;
use function count;
use function func_get_args;
use function is_array;
/**
* Class Assets
* @package Grav\Common
*/
class Assets extends PropertyObject
{
use TestingAssetsTrait;
use LegacyAssetsTrait;
const CSS = 'css';
const JS = 'js';
const CSS_COLLECTION = 'assets_css';
const JS_COLLECTION = 'assets_js';
const CSS_TYPE = 'Css';
const JS_TYPE = 'Js';
const INLINE_CSS_TYPE = 'InlineCss';
const INLINE_JS_TYPE = 'InlineJs';
const CSS_TYPE = Assets\Css::class;
const JS_TYPE = Assets\Js::class;
const INLINE_CSS_TYPE = Assets\InlineCss::class;
const INLINE_JS_TYPE = Assets\InlineJs::class;
/** @const Regex to match CSS and JavaScript files */
const DEFAULT_REGEX = '/.\.(css|js)$/i';
@@ -37,31 +48,57 @@ class Assets extends PropertyObject
/** @const Regex to match JavaScript files */
const JS_REGEX = '/.\.js$/i';
/** @var string */
protected $assets_dir;
/** @var string */
protected $assets_url;
/** @var array */
protected $assets_css = [];
/** @var array */
protected $assets_js = [];
// Config Options
// Following variables come from the configuration:
/** @var bool */
protected $css_pipeline;
/** @var bool */
protected $css_pipeline_include_externals;
/** @var bool */
protected $css_pipeline_before_excludes;
/** @var bool */
protected $inlinecss_pipeline_include_externals;
/** @var bool */
protected $inlinecss_pipeline_before_excludes;
/** @var bool */
protected $js_pipeline;
/** @var bool */
protected $js_pipeline_include_externals;
/** @var bool */
protected $js_pipeline_before_excludes;
/** @var bool */
protected $inlinejs_pipeline_include_externals;
/** @var bool */
protected $inlinejs_pipeline_before_excludes;
/** @var array */
protected $pipeline_options = [];
/** @var Closure|string */
protected $fetch_command;
/** @var string */
protected $autoload;
/** @var bool */
protected $enable_asset_timestamp;
/** @var array|null */
protected $collections;
/** @var string */
protected $timestamp;
/** @var array Keeping track for order counts (for sorting) */
protected $order = [];
/**
* Initialization called in the Grav lifecycle to initialize the Assets with appropriate configuration
*
* @return void
*/
public function init()
{
@@ -92,7 +129,6 @@ class Assets extends PropertyObject
* assets and/or collections that will be automatically added on startup.
*
* @param array $config Configurable options.
*
* @return $this
*/
public function config(array $config)
@@ -119,35 +155,35 @@ class Assets extends PropertyObject
* It automatically detects the asset type (JavaScript, CSS or collection).
* You may add more than one asset passing an array as argument.
*
* @param array|string $asset
* @param string|string[] $asset
* @return $this
*/
public function add($asset)
{
$args = \func_get_args();
$args = func_get_args();
// More than one asset
if (\is_array($asset)) {
if (is_array($asset)) {
foreach ($asset as $a) {
array_shift($args);
$args = array_merge([$a], $args);
\call_user_func_array([$this, 'add'], $args);
call_user_func_array([$this, 'add'], $args);
}
} elseif (isset($this->collections[$asset])) {
array_shift($args);
$args = array_merge([$this->collections[$asset]], $args);
\call_user_func_array([$this, 'add'], $args);
call_user_func_array([$this, 'add'], $args);
} else {
// Get extension
$extension = pathinfo(parse_url($asset, PHP_URL_PATH), PATHINFO_EXTENSION);
// JavaScript or CSS
if (\strlen($extension) > 0) {
if ($extension !== '') {
$extension = strtolower($extension);
if ($extension === 'css') {
\call_user_func_array([$this, 'addCss'], $args);
call_user_func_array([$this, 'addCss'], $args);
} elseif ($extension === 'js') {
\call_user_func_array([$this, 'addJs'], $args);
call_user_func_array([$this, 'addJs'], $args);
}
}
}
@@ -155,12 +191,20 @@ class Assets extends PropertyObject
return $this;
}
/**
* @param string $collection
* @param string $type
* @param string|string[] $asset
* @param array $options
* @return $this
*/
protected function addType($collection, $type, $asset, $options)
{
if (\is_array($asset)) {
if (is_array($asset)) {
foreach ($asset as $a) {
$this->addType($collection, $type, $a, $options);
}
return $this;
}
@@ -172,7 +216,7 @@ class Assets extends PropertyObject
// If pipeline disabled, set to position if provided, else after
if (isset($options['pipeline'])) {
if ($options['pipeline'] === false) {
$exclude_type = ($type === $this::JS_TYPE || $type === $this::INLINE_JS_TYPE) ? $this::JS_TYPE : $this::CSS_TYPE;
$exclude_type = ($type === $this::JS_TYPE || $type === $this::INLINE_JS_TYPE) ? $this::JS : $this::CSS;
$excludes = strtolower($exclude_type . '_pipeline_before_excludes');
if ($this->{$excludes}) {
$default = 'after';
@@ -190,11 +234,18 @@ class Assets extends PropertyObject
$options['timestamp'] = $this->timestamp;
// Set order
$options['order'] = \count($this->$collection);
$group = $options['group'] ?? 'head';
$position = $options['position'] ?? 'pipeline';
$orderKey = "{$type}|{$group}|{$position}";
if (!isset($this->order[$orderKey])) {
$this->order[$orderKey] = 0;
}
$options['order'] = $this->order[$orderKey]++;
// Create asset of correct type
$asset_class = "\\Grav\\Common\\Assets\\{$type}";
$asset_object = new $asset_class();
$asset_object = new $type();
// If exists
if ($asset_object->init($asset, $options)) {
@@ -202,7 +253,6 @@ class Assets extends PropertyObject
}
return $this;
}
/**
@@ -212,7 +262,7 @@ class Assets extends PropertyObject
*/
public function addCss($asset)
{
return $this->addType(Assets::CSS_COLLECTION,Assets::CSS_TYPE, $asset, $this->unifyLegacyArguments(\func_get_args(), Assets::CSS_TYPE));
return $this->addType($this::CSS_COLLECTION, $this::CSS_TYPE, $asset, $this->unifyLegacyArguments(func_get_args(), $this::CSS_TYPE));
}
/**
@@ -222,7 +272,7 @@ class Assets extends PropertyObject
*/
public function addInlineCss($asset)
{
return $this->addType(Assets::CSS_COLLECTION, Assets::INLINE_CSS_TYPE, $asset, $this->unifyLegacyArguments(\func_get_args(), Assets::INLINE_CSS_TYPE));
return $this->addType($this::CSS_COLLECTION, $this::INLINE_CSS_TYPE, $asset, $this->unifyLegacyArguments(func_get_args(), $this::INLINE_CSS_TYPE));
}
/**
@@ -232,7 +282,7 @@ class Assets extends PropertyObject
*/
public function addJs($asset)
{
return $this->addType(Assets::JS_COLLECTION, Assets::JS_TYPE, $asset, $this->unifyLegacyArguments(\func_get_args(), Assets::JS_TYPE));
return $this->addType($this::JS_COLLECTION, $this::JS_TYPE, $asset, $this->unifyLegacyArguments(func_get_args(), $this::JS_TYPE));
}
/**
@@ -242,20 +292,19 @@ class Assets extends PropertyObject
*/
public function addInlineJs($asset)
{
return $this->addType(Assets::JS_COLLECTION, Assets::INLINE_JS_TYPE, $asset, $this->unifyLegacyArguments(\func_get_args(), Assets::INLINE_JS_TYPE));
return $this->addType($this::JS_COLLECTION, $this::INLINE_JS_TYPE, $asset, $this->unifyLegacyArguments(func_get_args(), $this::INLINE_JS_TYPE));
}
/**
* Add/replace collection.
*
* @param string $collectionName
* @param array $assets
* @param string $collectionName
* @param array $assets
* @param bool $overwrite
*
* @return $this
*/
public function registerCollection($collectionName, Array $assets, $overwrite = false)
public function registerCollection($collectionName, array $assets, $overwrite = false)
{
if ($overwrite || !isset($this->collections[$collectionName])) {
$this->collections[$collectionName] = $assets;
@@ -264,26 +313,33 @@ class Assets extends PropertyObject
return $this;
}
/**
* @param array $assets
* @param string $key
* @param string $value
* @param bool $sort
* @return array|false
*/
protected function filterAssets($assets, $key, $value, $sort = false)
{
$results = array_filter($assets, function($asset) use ($key, $value) {
$results = array_filter($assets, function ($asset) use ($key, $value) {
if ($key === 'position' && $value === 'pipeline') {
$type = $asset->getType();
if ($asset->getRemote() && $this->{$type . '_pipeline_include_externals'} === false && $asset['position'] === 'pipeline' ) {
if ($this->{$type . '_pipeline_before_excludes'}) {
if ($asset->getRemote() && $this->{strtolower($type) . '_pipeline_include_externals'} === false && $asset['position'] === 'pipeline') {
if ($this->{strtolower($type) . '_pipeline_before_excludes'}) {
$asset->setPosition('after');
} else {
$asset->setPosition('before');
}
return false;
}
}
if ($asset[$key] === $value) return true;
if ($asset[$key] === $value) {
return true;
}
return false;
});
@@ -295,17 +351,25 @@ class Assets extends PropertyObject
return $results;
}
/**
* @param array $assets
* @return array
*/
protected function sortAssets($assets)
{
uasort ($assets, function($a, $b) {
if ($a['priority'] == $b['priority']) {
return $a['order'] - $b['order'];
}
return $b['priority'] - $a['priority'];
uasort($assets, static function ($a, $b) {
return $b['priority'] <=> $a['priority'] ?: $a['order'] <=> $b['order'];
});
return $assets;
}
/**
* @param string $type
* @param string $group
* @param array $attributes
* @return string
*/
public function render($type, $group = 'head', $attributes = [])
{
$before_output = '';
@@ -352,7 +416,6 @@ class Assets extends PropertyObject
*
* @param string $group name of the group
* @param array $attributes
*
* @return string
*/
public function css($group = 'head', $attributes = [])
@@ -365,7 +428,6 @@ class Assets extends PropertyObject
*
* @param string $group name of the group
* @param array $attributes
*
* @return string
*/
public function js($group = 'head', $attributes = [])

Some files were not shown because too many files have changed in this diff Show More