Compare commits

...

2135 Commits

Author SHA1 Message Date
Andy Miller
993d93b067 Merge branch 'release/1.1.15' 2017-01-30 14:14:16 -07:00
Andy Miller
e17721b4bd Prepare for release 2017-01-30 14:13:32 -07:00
Andy Miller
f37bebaacd Added open collective info in readme 2017-01-30 13:29:36 -07:00
Andy Miller
f287dab16d Need to experiment more.. This is causing more issues than it fixes. 2017-01-30 13:19:21 -07:00
Andy Miller
31fe300a1e Merge branch 'develop' of https://github.com/getgrav/grav into develop 2017-01-30 13:17:25 -07:00
Andy Miller
f1faea26e5 Code insight fix 2017-01-30 13:17:20 -07:00
Pia Mancini
422b9907cf Add backers and sponsors from Open Collective (#1281)
This is for your open collective backers and sponsors to appear directly on your README. 
see how it'll look [here](https://github.com/apex/apex#backers)
[More info](https://github.com/opencollective/opencollective/wiki/Github-banner)

Also add badges on top.
2017-01-30 11:47:09 -08:00
Andy Miller
24bffcde80 Don’t set default param_sep, use system constant (#1275)
* Don’t set default param_sep, use system constant, but still allow override

* Automatically fix param_sep on windows

* Reverted back to original system.yaml syntax

* Comment fix

* PSR formating fixes

* Ensure automatic override of `param_sep` is only in cases where it’s different from system + windows + apache
2017-01-30 11:36:37 -07:00
Andy Miller
b7c76b5a53 Composer libs updated 2017-01-30 10:27:03 -07:00
Andy Miller
c7619e5b52 Updated composer libs 2017-01-27 16:45:23 -07:00
Andy Miller
3d05574d08 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2017-01-27 07:21:08 -07:00
Andy Miller
6e8455fde6 Updated composer.phar 2017-01-27 07:20:58 -07:00
Matias Griese
c6c8577b6f Silence E_WARNING: Zend OPcache API is restricted by "restrict_api" configuration directive 2017-01-27 10:29:55 +02:00
A----
108312e8c0 Provided empty alt if '' is supplied (#1262)
* Provided empty alt if '' is supplied

* Fixing some tests

* Regexp tests

* Again.
2017-01-26 16:30:39 -07:00
Andy Miller
060f21f83d Skip symlinks in cache clearing if found - #1269 2017-01-24 20:36:22 -07:00
Flavio Copes
4d904e6f70 Add an additional parameter to GPM::findPackage to avoid throwing an exception, for use in Twig, re #1008 2017-01-22 15:48:26 +01:00
Andy Miller
6968e2edff Fix Response object to handle 303 redirects when open_basedir in effect [#1267] 2017-01-21 16:25:13 -07:00
Andy Miller
300f65c22e Implode an array returned by sort order #1264 2017-01-20 15:17:28 -07:00
Andy Miller
5ecf240c26 Added new Collection::merge() method #1258 2017-01-20 10:47:24 -07:00
Andy Miller
9536f2e418 Merge branch 'release/1.1.14' into develop 2017-01-18 15:13:14 -07:00
Andy Miller
645285ca5c Merge branch 'release/1.1.14' 2017-01-18 15:13:13 -07:00
Andy Miller
c7fd01a644 Prepare for release 2017-01-18 15:12:14 -07:00
Andy Miller
61c0c31992 Fix to allow you to enable content-encoding: identity. Set to ‘none’ by default. #548 2017-01-18 15:02:53 -07:00
Matias Griese
e2ee02a71d Fixed page.collection() returning array and not Collection object when header variable did not exist 2017-01-18 10:42:13 +02:00
Andy Miller
4e283322ea Merge branch 'release/1.1.13' into develop 2017-01-17 13:20:08 -07:00
Andy Miller
b5b452e585 Merge branch 'release/1.1.13' 2017-01-17 13:20:07 -07:00
Andy Miller
138abdcab1 Prepare for release 2017-01-17 13:19:19 -07:00
Andy Miller
bf661c4355 Vendor updates 2017-01-17 12:06:59 -07:00
Flavio Copes
085ca323e2 Fix #1254 issue in trying to process broken symlink 2017-01-17 14:25:42 +01:00
Matias Griese
c22b28f312 Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	CHANGELOG.md
2017-01-13 12:28:23 +02:00
Matias Griese
9b5ef4c263 Fixed all $_GET parameters missing in Nginx (please update your nginx.conf) [#1245](https://github.com/getgrav/grav/issues/1245) 2017-01-13 12:27:21 +02:00
Andy Miller
3cffe74965 Updated changelog 2017-01-12 11:55:10 -07:00
Andy Miller
759ba5143f Added ability to never cache twig. This makes it possible to cache content, but always process twig. Useful for regular but especially modular pages. (#1244) 2017-01-12 11:51:12 -07:00
Andy Miller
9ebff2287c Fixed an error in the ‘file’ type description 2017-01-12 10:59:05 -07:00
Andy Miller
e492fbde21 Hash added to blueprints 2017-01-12 06:40:51 -07:00
Andy Miller
7255556819 Fixed issue with multi-lang site caching non-lang specific pages for all langs #1211 2017-01-11 16:03:51 -07:00
Matias Griese
c718b8f32a Fixed broken hash method on page modifications detection 2017-01-09 21:23:11 +02:00
Andy Miller
07b66dd5d0 Vendor updates 2017-01-06 15:51:14 -07:00
Andy Miller
2e4686fada Updated changelog 2017-01-05 16:04:50 -07:00
ka7
e2544feeaf spelling fixes (#1236) 2017-01-05 16:02:45 -07:00
Andy Miller
970bf77492 Feature/theme dev improvements (#1232)
* Initial improvements to help theme development

* Added default language to site
2017-01-05 16:02:23 -07:00
Flavio Copes
0145f454b7 Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	CHANGELOG.md
2017-01-05 16:25:01 +01:00
Flavio Copes
e984d9b68f Lint 2017-01-05 16:08:37 +01:00
Flavio Copes
1cd6773ded Fix renaming the folder name if the page, in the default language, had a custom slug set in its header 2017-01-05 16:08:25 +01:00
Matias Griese
0445aa707b Fixed issue with Content-Encoding: none. It should really be Content-Encoding: identity instead 2017-01-05 12:03:22 +02:00
Flavio Copes
cc96d160a4 Try rename before doing copy&delete 2017-01-04 16:43:56 +01:00
Flavio Copes
4331ab374e Fix issue with pages folders validation not accepting uppercase letters 2017-01-04 16:35:38 +01:00
Flavio Copes
61005360a5 Add a better fix for #635. Overwrites https://github.com/getgrav/grav/pull/1214 2017-01-03 21:39:57 +01:00
Flavio Copes
335c44385a Fixes #635 use mv instead of rename as that does not support cross volume operations (#1214)
* Fixes #635 use mv instead of rename as that does not support cross volume operations

* Handle case exec is disabled

* Handle case is windows, where mv does not work

* Move isWindows check to Utils
2017-01-03 09:28:25 +01:00
Nicolas Lœuillet
88e9ad3df2 Updated gitignore for user/config/security.yaml (#1231) 2017-01-02 20:51:33 -07:00
Andy Miller
2b19414598 Merge branch 'release/1.1.12' 2016-12-26 09:50:32 -07:00
Andy Miller
b00cd00259 Merge branch 'release/1.1.12' into develop 2016-12-26 09:50:32 -07:00
Andy Miller
6097431021 Prepare for release 2016-12-26 09:50:18 -07:00
Andy Miller
55a9356681 Fix for #1227 issue - Admin JSON calls throwing errors with debugger on 2016-12-26 09:47:51 -07:00
Flavio Copes
8aee946682 Fix changelog 2016-12-23 16:12:21 +01:00
Andy Miller
523d3a331a Merge branch 'release/1.1.11' into develop 2016-12-22 11:43:10 -07:00
Andy Miller
397107b611 Merge branch 'release/1.1.11' 2016-12-22 11:43:09 -07:00
Andy Miller
342af3deba Prepare for release 2016-12-22 11:42:56 -07:00
Flavio Copes
dc92498cd0 Fix #900 issue with modular pages folders validation 2016-12-22 17:36:53 +01:00
Andy Miller
364209a27d Fixed type on template not found 2016-12-21 15:16:30 -07:00
Andy Miller
46d741a2ed Merge branch 'release/1.1.10' 2016-12-21 13:06:53 -07:00
Andy Miller
b5be9ee3f0 Merge branch 'release/1.1.10' into develop 2016-12-21 13:06:53 -07:00
Andy Miller
e0f17a48d5 Prepare for release 2016-12-21 13:06:42 -07:00
Andy Miller
fa27856bc0 Reworked changelog 2016-12-21 12:50:01 -07:00
Andy Miller
befaf5d387 Improved theme/plugin detect logic 2016-12-21 12:35:58 -07:00
Flavio Copes
9571e992d9 Improve changelog line 2016-12-20 18:05:04 +01:00
Flavio Copes
e40bed5be2 Explicitly expose array_unique Twig filter 2016-12-20 17:37:32 +01:00
Flavio Copes
442249c3a1 Fix issue with Inflector when translation is disabled [https://github.com/getgrav/grav-plugin-simplesearch/issues/87](https://github.com/getgrav/grav-plugin-simplesearch/issues/87) 2016-12-19 21:07:43 +01:00
Flavio Copes
8b8d8bcc5b Fix https://github.com/getgrav/grav-plugin-admin/issues/891 Add pattern for frontend validation of folder slugs 2016-12-17 18:10:19 +01:00
Flavio Copes
d2152cb48e Changelog 2016-12-17 15:09:58 +01:00
Andy Miller
81fc0d47ac Reworked PHP CLI router PR #1218 (#1219) 2016-12-17 15:07:40 +01:00
ChrisGitIt
8450f77443 fixed array handling (#1208)
if the input array looks like this: 
array('valA','valB') (not a keyed array)

The return result before my change was:
array(array('valA'),array('valB'))

The return result after my change is:
array('valA','valB')
2016-12-16 12:09:23 -07:00
Flavio Copes
0ccc34d860 Improve detection of home path. Also allow ~/.grav on Windows, drop ConsoleTrait::isWindows() method, used just for that. (#1204)
* Improve detection of home path. Also allow ~/.grav on Windows, drop ConsoleTrait::isWindows() method, used just for that.

* Extract loadLocalConfig method to ConsoleTrait

* Fix issue with using Yaml::parse direcly on a filename, now deprecated

* Changelog
2016-12-16 19:10:00 +01:00
Flavio Copes
5b6452d89e Revert "Fix #635 use mv instead of rename as that does not support cross volume operations"
This reverts commit d61d260ef1.
2016-12-14 23:17:02 +01:00
Flavio Copes
d61d260ef1 Fix #635 use mv instead of rename as that does not support cross volume operations 2016-12-14 22:40:42 +01:00
Djamil Legato
1125b51f27 Fixed case where extracting a package would cause an error during rename 2016-12-13 18:45:34 -08:00
Andy Miller
bf552e22f1 Merge branch 'release/1.1.9' into develop 2016-12-13 13:06:16 -07:00
Andy Miller
b740142668 Merge branch 'release/1.1.9' 2016-12-13 13:06:15 -07:00
Andy Miller
d23f829559 prepare for release 2016-12-13 13:05:57 -07:00
Matias Griese
85bf215dc6 Changelog update 2016-12-12 09:37:02 +02:00
Matias Griese
9db04abd1c Add support for calling Media object as function to get medium by filename 2016-12-12 09:31:33 +02:00
Andy Miller
156f645576 Set Grav to be in 'testing' while in RC state 2016-12-11 18:22:54 -07:00
Flavio Copes
d3b654bdb0 Added checks before accessing admin reference during Page::blueprints() call 2016-12-10 18:34:13 +01:00
Andy Miller
7ed078ce31 unused 'use' statements 2016-12-08 16:10:44 -07:00
Andy Miller
3c6df48b8b Insight fixes 2016-12-08 15:49:45 -07:00
Matias Griese
833cd497bb YAML syntax fixes 2016-12-08 12:57:40 +02:00
Matias Griese
625f3d3a34 Better error handling in cache clear
Added new parameter `remove` for `onBeforeCacheClear` event
2016-12-08 12:57:18 +02:00
Andy Miller
380157f9cc prepare for release 2016-12-07 16:05:12 -07:00
Andy Miller
74c005d39c Added new onBeforeCacheClear event 2016-12-07 14:48:00 -07:00
Aaron Dalton
7b2716dab1 Added warning to command when new Grav version is available (#1194) 2016-12-07 14:16:00 -07:00
Djamil Legato
906c090bd4 Fixed issue with redirect of a page getting moved to a different location 2016-12-07 12:56:00 -08:00
Andy Miller
27ad9a24eb Updated vendor libraries 2016-12-07 11:51:56 -07:00
Matias Griese
83fdecbdd1 Added stream support for images (![Sepia Image](image://image.jpg?sepia))
Added stream support for links (`[Download PDF](user://data/pdf/my.pdf)`)
2016-12-07 19:51:06 +02:00
Flavio Copes
6c1a76b901 Use permissions field in group details. Fix saving permissions 2016-12-05 19:17:46 +01:00
Flavio Copes
4a5847784a Thanks to @hughbris for taxonomy filter issue 896fb8138b 2016-12-05 10:06:47 +01:00
Flavio Copes
896fb8138b Fix #1184 Fix issue with using a multiple taxonomy filter of which one had no results
If there are 2+ taxonomies required but one has 0 items, it was just
picking the ones corresponding to the other taxonomy, thus generating a
wrong result. Adding an empty array will later make array_intersect_key
generate an empty array if the operation is `and`
2016-12-03 13:47:25 +01:00
Andy Miller
678c445799 updated changelog 2016-12-02 10:27:39 -07:00
Fredrik Ekelund
36428e4735 Added ability to pass an array of explicit widths to ImageMedium#derivatives (#1133)
* Added ability to pass an array of explicit widths to ImageMedium#derivatives

Allows for more precise control than the min-width, max-width and
step parameters.

* ImageMedium#derivatives can now be called with an array from Markdown as well

Previously it was only possible from Twig code or PHP code
2016-12-02 10:21:59 -07:00
Vivien HAAG
10da784d53 Fix Page Collections problem with @page.modular (#1178) 2016-12-02 10:16:05 -07:00
Djamil Legato
c64cdb5dad Typos in changelog 2016-12-01 12:42:59 -08:00
Djamil Legato
52b68a0a1b Add range(int min, int max, int step) twig function to generate an array of numbers between min and max, inclusive 2016-12-01 12:40:21 -08:00
Flavio Copes
ee1742af1f Sync webserver-configs/htaccess.txt with .htaccess 2016-11-29 11:33:50 +01:00
Matias Griese
6315283a3a Fix publish date ordering 2016-11-29 12:29:16 +02:00
Flavio Copes
d8b3f215a2 Use new permissions field in user account 2016-11-28 19:00:25 +01:00
Flavio Copes
3838de1d97 If an array field has ignore_empty: true, only save options with a value 2016-11-28 18:59:41 +01:00
Flavio Copes
f6ddba52d8 Added alias selfupdate to the self-upgrade bin/gpm CLI command 2016-11-28 13:27:23 +01:00
Andy Miller
f7b35c3b79 Updated version 2016-11-26 20:22:33 -07:00
Flavio Copes
8dd65b709d Fix #946 issue with the sample nginx.conf, security section moved before PHP handler, and fixed backup folder uncorrectly named as backups 2016-11-25 22:32:14 +01:00
Flavio Copes
3064fe8ad9 Fix #713 Remove mappings missing if not cloned from github 2016-11-25 18:33:52 +01:00
Matias Griese
287a329a4d Added two new sort order options for pages: publish_date and unpublish_date 2016-11-24 15:03:51 +02:00
Flavio Copes
923b2469f9 Fix https://github.com/getgrav/grav-plugin-admin/issues/874 use updated class namespace 2016-11-24 13:50:15 +01:00
Flavio Copes
55bb4cf2fa Fix #1179 issue when we have a meta file without corresponding media
Also update changelog entries
2016-11-22 17:22:27 +01:00
Flavio Copes
5105be338a Decode single taxonomy params (#1164)
Allows to use commas in taxonomy terms
2016-11-19 11:32:54 -07:00
Amélie Turgeon
20e36c8a00 Add 2 new language values for French (#1174)
set the name and native name for these two.
(fr-FR and fr-CA)
2016-11-19 11:32:05 -07:00
Flavio Copes
9dd4f690a8 Allow to override sorting flags for page header-based or default ordering. (#1173)
If the `intl` PHP extension is loaded, only these flags are available:
https://secure.php.net/manual/en/collator.asort.php. Otherwise, you can
use the PHP standard sorting flags
(https://secure.php.net/manual/en/array.constants.php)
[#1169](https://github.com/getgrav/grav/issues/1169)
2016-11-19 11:29:28 -07:00
Matias Griese
9a15b5ebdc Multisite: Create image cache folder if it doesn't exist 2016-11-15 16:10:34 +02:00
Andy Miller
5c003d38be Ready for an RC.1 release 2016-11-09 10:58:13 -07:00
Andy Miller
95ab80b8f9 Added message service into core Grav 2016-11-09 10:48:36 -07:00
Andy Miller
079468c609 Added User::find() method 2016-11-08 11:17:01 -07:00
Andy Miller
7c98ca7134 Added Base32 encode/decode class 2016-11-07 12:19:04 -07:00
Matias Griese
fbf9c345b9 Fixed URI path in multi-site when query parameters were used in front page 2016-11-07 08:45:02 +02:00
Andy Miller
491e73eade Fixed CompiledJsonFile as it was not caching properly 2016-11-04 06:47:27 -06:00
Djamil Legato
e73773672b Removed internal docs reference for Folder::create and Folder::mkdir 2016-11-01 17:07:06 -07:00
Andy Miller
98d022ee49 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-11-01 13:03:53 -06:00
Andy Miller
abca8ce433 CompiledJsonFile::content() should support $assoc 2016-11-01 13:03:43 -06:00
Flavio Copes
2dcd4aeaad Changelog 2016-11-01 13:54:06 +01:00
Fredrik Ekelund
58d4e3384e Use correct ratio when applying image filters to image alternatives (#1147)
Because of a previous change, the keys of the image alternatives array
is no longer the ratio, but rather the image width. We now make sure to
calculate the ratio correctly and use the appropriate one when applying
the image filters.
2016-11-01 13:52:50 +01:00
Andy Miller
76aed8a119 Added CompiledJsonFile 2016-10-28 13:49:11 -06:00
Flavio Copes
37b8ffb7d2 Fix #1135 return max available number of items when calling random() on a collection passing an int > available items 2016-10-27 21:04:25 +02:00
Flavio Copes
af53d79e5e Add Caddyfile for newer Caddy versions #1115 2016-10-25 18:58:52 +02:00
Flavio Copes
c3aa11abeb Changelog 2016-10-25 16:33:57 +02:00
Gilles van Eeden
8e1454b3ab functions added to taxonomy and twigextension (#1124)
* Update Taxonomy.php

* Update TwigExtension.php

* Update TwigExtension.php

Incorrect comment updated.
2016-10-25 16:32:18 +02:00
Flavio Copes
1c32f4eaee Changelog 2016-10-25 16:27:24 +02:00
Adam Roe
cd15b9197b Don't truncate HTML if content length is less than summary size (#1125), fixes #1114 2016-10-25 16:25:56 +02:00
Andy Miller
afc18236c2 Fixed issue with site redirects/routes not processing with extensions 2016-10-24 10:13:21 -06:00
Andy Miller
9bac4df02a Merge branch 'release/1.1.8' 2016-10-22 22:38:47 -06:00
Andy Miller
fb1c8eb80d Merge branch 'release/1.1.8' into develop 2016-10-22 22:38:47 -06:00
Andy Miller
19f3a24257 version update 2016-10-22 22:38:37 -06:00
Andy Miller
5bf95d8b87 Fixed an issues with unset SSL setting #1132 2016-10-22 22:36:58 -06:00
Andy Miller
7d7bb0d52a Merge branch 'release/1.1.7' 2016-10-22 20:48:51 -06:00
Andy Miller
0a459d256d Merge branch 'release/1.1.7' into develop 2016-10-22 20:48:51 -06:00
Andy Miller
6185edcc1b version update 2016-10-22 20:48:37 -06:00
Andy Miller
814c726323 Changelog updated 2016-10-22 20:47:58 -06:00
Fredrik Ekelund
db4c9c1844 ImageMedium#derivatives now works with image filters (#1107)
* ImageMedium->derivatives now works with image filters

Previously, using ImageMedium->derivatives would not work well in
combination with image filters or the other method of generating
srcset variants of images (by appending eg. "@2x" to their
filenames). This commit hopefully fixes that.

* Modified initialization of image alternatives

The biggest alternative will now become the base medium, and
alternatives will be filled out as necessary in a descending
manner.

* Fully reset image when derivatives method is called

Otherwise we get some funky results, with the possibility of two
different images being rendered between the full-width srcset
version and the original src version.

* Account for risk of original file not existing when generating image derivatives

* Fixed an issue where too many alternatives would be generated

When using naming conventions to generate image alternatives, this
patch would previously generate a “@1x” alternative if one didn’t
exist. That’s no longer the case

* Add an "@1x" alternative when an image lacks a base medium

When an image only has an alternative medium - ie. the only
version of the image ends in eg. "@3x", then we construct the
missing alternatives automatically. Previously, we would only do
this down till "@2x", meaning that the image that would have been
the base medium, had the image been manually resized, wasn't
created. This has now been fixed.

* Always make smallest image alternative the base medium

When an image lacks a base medium on disk (eg. the only existing
image is an @2x version), then we make a scaled down version the
base medium, which ensures that the smaller version is served up
in the src attribute in the HTML.

Also, don't reset the image alternatives when calling
ImageMedium#derivatives, instead only generate the image
alternatives that are missing.

* Set better prettynames for image derivatives

* Changed image derivatives prettynames to be width based

Instead of example2x.jpeg, we now have eg. example1280w.jpeg
2016-10-22 20:44:28 -06:00
Djamil Legato
a96820af36 Ensuring fallback to true for verify_peer, just in case 2016-10-20 11:01:11 -07:00
Djamil Legato
f2c6829cd9 Reverted change 2016-10-20 10:58:47 -07:00
Djamil Legato
790429e286 Only pass verify_peer settings to cURL and fopen if the setting is disabled 2016-10-20 10:54:05 -07:00
Andy Miller
b42366cad2 remote image test 2016-10-19 13:28:35 -06:00
Andy Miller
5069088501 Merge branch 'release/1.1.6' 2016-10-19 09:29:14 -06:00
Andy Miller
122db6330e Merge branch 'release/1.1.6' into develop 2016-10-19 09:29:14 -06:00
Andy Miller
cac93a73af version update 2016-10-19 09:29:00 -06:00
Andy Miller
f1692b20be vendor lib updates 2016-10-19 09:19:37 -06:00
Flavio Copes
855d4f73b9 Add ability to adjust images orientation using EXIF data (#555)
* Auto-adjust images orientation using EXIF data

* Fix composer.json

* Drop Excerpts edit

* Restore automatic orientation fix

* Revert "Restore automatic orientation fix"

This reverts commit 4b8af1fe72.

* Add auto orientation capability to images. Defaults to false to avoid forcing cache on every image

* Changelog
2016-10-19 06:46:07 -06:00
Andy Miller
92401de443 Fix for prettyname growing with operations 2016-10-14 17:51:13 -06:00
Andy Miller
31e358ca7c Merge branch 'feature/fixed_responsive_prettynames' into develop 2016-10-14 16:12:06 -06:00
Andy Miller
851dec76d2 Updated changelog 2016-10-14 16:11:49 -06:00
Andy Miller
19dfa4e011 Fixed responsive pretty names 2016-10-14 14:14:11 -06:00
Andy Miller
422735a1a2 Updated changelog 2016-10-12 18:06:26 -06:00
Benny
50c2ecbfdf ParsedownGravTrait addBlockType and addInlineType enhancements (#1062) 2016-10-12 18:04:32 -06:00
Andy Miller
5143941356 Tweaks for PR #1091 - using same 'display' setting and values 1,0,-1 for full backwards compatibility (even on save) 2016-10-12 17:46:56 -06:00
Andy Miller
05bd715d6c Tweaks to session split PR - #1096 2016-10-12 17:17:45 -06:00
Aaron Dalton
4f8ac36a9a Added 'system.errors.verbosity' that ideally would replace 'system.errors.display' eventually (#1091) 2016-10-12 17:10:58 -06:00
maxfrigge
6300ab8a03 feat(admin): add setting to split admin and front-end session (#1096) 2016-10-12 17:03:30 -06:00
Andy Miller
0cadb0cd90 Added onMediaLocate() event to add custom media locations for Excerpt support 2016-10-12 16:54:14 -06:00
Andy Miller
a9eb707d8b Added fast hash option for file checking. Checks all files and timestamps 2016-10-12 16:52:51 -06:00
Andy Miller
834505ee24 Composer update 2016-10-11 20:55:31 -06:00
Andy Miller
9a56bff1d4 Merge branch 'feature/breaking_out_link_and_image_logic' into develop 2016-10-11 15:56:35 -06:00
Andy Miller
4715ab7057 One more test 2016-10-11 15:53:31 -06:00
Andy Miller
4ed5f163ed Added an option to get just the route back from Uri::convertUrl() 2016-10-11 12:49:49 -06:00
Flavio Copes
e95c4db843 Avoid failing on files not listed in media.types, in which case fromFile returns null 2016-10-11 19:42:15 +02:00
Djamil Legato
efaf41c4e2 Reverted 21cd09e2a9 2016-10-11 09:58:09 -07:00
Djamil Legato
21cd09e2a9 Fixed jpeg file format support in Media 2016-10-10 14:58:42 -07:00
Andy Miller
8d84b94bc7 Some cleanup and a working test 2016-10-06 19:01:48 -06:00
Andy Miller
ce2b7d7175 Languages fixed again, was issue with type 2016-10-06 18:30:03 -06:00
Andy Miller
9a21792b27 Refactored into Excerpts helper but multilang broken 2016-10-06 18:05:56 -06:00
Andy Miller
110cd9535b Switched to stable toolbox 2016-10-06 16:51:02 -06:00
Andy Miller
a11e608463 Updated Vendor libs 2016-10-06 11:47:56 -06:00
Andy Miller
185acb4d2a updated some docblocks 2016-10-06 11:35:48 -06:00
Andy Miller
087ec7ebaf cleanup 2016-10-06 11:12:53 -06:00
Andy Miller
2a507ba994 cleanup 2016-10-06 11:11:03 -06:00
Andy Miller
1d852abad3 cleanup 2016-10-06 11:08:55 -06:00
Andy Miller
4762663507 cleanup 2016-10-06 11:03:36 -06:00
Andy Miller
e5524af557 cleanup 2016-10-06 10:58:27 -06:00
Andy Miller
5baec2dca5 Bit more flexible! 2016-10-05 21:49:09 -06:00
Andy Miller
5866379b92 some more helper stuff 2016-10-05 21:39:53 -06:00
Andy Miller
46a5567386 just dealing in excerpts for now 2016-10-05 20:57:00 -06:00
Andy Miller
4c6c9a722c initial attempt 2016-10-05 17:15:46 -06:00
Flavio Copes
bbcc627a70 Fix saving a group, use data 2016-10-04 16:41:07 +02:00
Andy Miller
0416956af8 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-10-03 18:49:10 -06:00
Andy Miller
3a250d2744 cleaned up with regex constant 2016-10-03 18:48:43 -06:00
Flavio Copes
36e3b788a6 Add jQuery 3.x #1070 2016-10-03 17:18:00 +02:00
❤ rose shimada
c51a07c4e9 Adding xlsm to supported mime types (#1054)
Most of Excel family is there except for macro-capable xls in Office 2007. Tested and working to enable .xlsm file upload.
2016-10-03 16:56:59 +02:00
Flavio Copes
70a38d1d3a Avoid gitignoring any vendor folder in a Grav site subfolder (but still ignore the main vendor/ folder) 2016-10-03 16:22:03 +02:00
Flavio Copes
bc3943b386 Reformat 2016-10-03 16:03:01 +02:00
Andy Miller
c6f8fe259a Removed duplicate method Grav::mime() and used existing (renamed) Utils::getMimeByExtension(), also added Utils::getExtensionByMime() 2016-10-01 17:16:35 -06:00
Andy Miller
53baf47e58 Fixed an issue with inflectorFilter test 2016-09-30 19:11:25 -06:00
Andy Miller
29c6a94c92 Updated to Twig 1.25.0 and fixed an issue that resulted with streams in bin/plugin 2016-09-30 19:02:56 -06:00
Andy Miller
c0c77fff67 Added ability to override the twig template format (html, son, xml, etc) via page header #1067 2016-09-30 12:12:52 -06:00
Andy Miller
c3e74c2e09 Set Twig back to 1.24 until we can fix some issues 2016-09-30 09:02:49 -06:00
Andy Miller
9bd058e319 Added ability to set cache.enabled via plugin 2016-09-30 07:51:06 -06:00
Andy Miller
50ff5f0920 Don't support page folders that contain param_sep in the folder name - https://github.com/getgrav/grav-plugin-admin/issues/796 2016-09-29 17:03:28 -06:00
Andy Miller
d7dce7a6d7 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-09-29 16:45:47 -06:00
Andy Miller
d1f87ca5d9 Updated vendor libraries 2016-09-29 16:45:36 -06:00
Andy Miller
956e5bd34f Fixed external page saving - https://github.com/getgrav/grav-plugin-admin/issues/789 2016-09-29 16:45:20 -06:00
Matias Griese
112b895d56 Add option not to set environment (CLI) 2016-09-29 11:48:04 +03:00
Djamil Legato
d824e8a934 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-09-28 12:45:21 -07:00
Djamil Legato
3e02961c77 Ensure to always return an array from Licenses::get 2016-09-28 12:45:17 -07:00
Andy Miller
17b0dcc8fb updated changelog 2016-09-28 09:59:54 -06:00
Andy Miller
6f5b44be11 Added built-in check to see if in admin, and in correct route for the plugin 2016-09-28 09:57:54 -06:00
Djamil Legato
2938b08e3d Force Licenses slug to always be lowercase 2016-09-27 15:51:55 -07:00
Andy Miller
68c3287ad9 Refactored how file is processed 2016-09-27 13:22:17 -06:00
Djamil Legato
274fef2112 Validate license before adding it 2016-09-27 11:51:46 -07:00
Djamil Legato
0cc01d3355 Added new Licenses::validate method to validate the format of a License 2016-09-27 11:29:59 -07:00
Djamil Legato
ba6a32ad3f Better highlight for the troubleshooting link 2016-09-27 10:31:28 -07:00
Djamil Legato
a6ff929e22 If there is no repository data, display a nicer message with details on how to proceed to potentially fix it 2016-09-27 09:49:33 -07:00
Djamil Legato
840e27f20a Fixed missing check for Response when in CLI 2016-09-27 09:49:08 -07:00
Djamil Legato
007f4b8185 InstallCommand can now handle Licenses 2016-09-27 09:19:40 -07:00
Andy Miller
12659700af Tweaks to Licenses file 2016-09-26 18:06:55 -06:00
Andy Miller
37a65efd89 Fix for saving 2016-09-26 13:05:57 -06:00
Djamil Legato
4f7fb896cb Fixed missing $error_message 2016-09-24 14:54:28 -07:00
Djamil Legato
5d452578e2 Added new License class 2016-09-24 00:15:06 -07:00
Djamil Legato
08974738f1 Tweaked error output for Response 2016-09-23 16:11:48 -07:00
Djamil Legato
89070f0bbf More detailed error for cURL 2016-09-23 15:25:35 -07:00
Djamil Legato
18dff3f8e3 Updated changelog 2016-09-23 15:14:54 -07:00
Djamil Legato
4b43c39ff5 Response class now handles better unsuccessful requests such as 404 and 401 2016-09-23 15:09:04 -07:00
Djamil Legato
2eec82fb99 Fixed missing progress method in DirectInstall Command 2016-09-23 15:07:26 -07:00
Aaron Dalton
24ea511ad1 Added documented options to .htaccess to support detecting forwarded HTTPS (#1063)
support.
2016-09-23 15:36:40 -05:00
Benny
18463b958f Check for modular folder in Types::scanTemplates (#1061) 2016-09-23 12:46:08 -05:00
Djamil Legato
c4f71c9dda Fixed verify peer default value and issue with fopen 2016-09-22 17:59:52 -07:00
Bernhard Altendorfer
584f4efcb1 Added possiblity to connect to redis via a unix socket (#1055)
* Added possiblity to connect to redis via a unix socket

* Improved redis via socket config usage and added config option to blueprints

* Updated Changelog

* Improved redis via socket by adding a default value and a placeholder in the blueprint
2016-09-21 10:45:13 -06:00
Djamil Legato
afc7963644 SSL Verify Peer (#1053)
* GPM: SSL verify peer and method (auto|fopen|curl) are now settings

* Added Admin blueprints settings

* Fixed default verify_peer value

* Fixed lang references for verify_peer

* Minor fixes for improper comments default values
2016-09-19 11:21:16 -07:00
Djamil Legato
53f41d396e Another parsing error 2016-09-19 10:05:14 -07:00
Djamil Legato
f561f27332 Fixed Parsing error 2016-09-19 10:02:32 -07:00
Djamil Legato
744239ca76 Trying to move things around in Travis, to prevent PR from failing 2016-09-19 10:01:18 -07:00
Andy Miller
e942d1a1e6 Updated changelog to reflect new direct-install command 2016-09-19 06:41:53 -06:00
Andy Miller
a5430cda7b Fix for huge session timeouts #1050 2016-09-19 06:41:31 -06:00
Andy Miller
c57e43ea1d New bin/gpm direct-install command (#1038)
* initial push of DirectInstall command

* Refactored to support direct-install

* added info about dependencies, and continue question

* Cleanup per @w00fz comments

* put Grav destination check back.
2016-09-18 10:23:55 -06:00
Matias Griese
7710cba7ad Add batch() function to Page Collection class 2016-09-16 13:22:30 +03:00
Andy Miller
3047311652 Merge branch 'release/1.1.5' into develop 2016-09-09 16:29:16 -06:00
Andy Miller
3459fbc871 Merge branch 'release/1.1.5' 2016-09-09 16:29:15 -06:00
Andy Miller
370f683985 version update 2016-09-09 16:29:08 -06:00
Andy Miller
1baf19d486 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-09-09 16:02:45 -06:00
Andy Miller
0e16a271b7 organization tweaks for system.yaml 2016-09-09 16:02:31 -06:00
Djamil Legato
4a756399f1 Updated composer 2016-09-09 11:57:06 -07:00
Djamil Legato
4401fbc6a6 Improved bin/plugin to list plugins with commands faster by limiting the depth of recursion 2016-09-09 11:56:02 -07:00
Flavio Copes
9a68f0784d Fix issue in calling page.summary when no content is present in a page
Related forum topic:
https://getgrav.org/forum#!/general:error-when-summary-is-emtpy
2016-09-09 14:50:12 +02:00
Matias Griese
8ca1d31b90 Twig variable base_url now supports multi-site by path feature 2016-09-09 13:24:49 +03:00
Matias Griese
cf3cd3d2d1 Follow symlinks in Folder::all() 2016-09-09 10:40:16 +03:00
Andy Miller
c16952a4c9 added changelog 2016-09-08 12:30:47 -06:00
Andy Miller
b6e785bd2a Refactored onPageNotFound event to fire after onPageInitialized 2016-09-08 12:30:34 -06:00
Andy Miller
da0dbeb6b3 update changelog 2016-09-08 09:11:00 -06:00
Andy Miller
76f5b99c52 Quietly skip missing streams on clear 2016-09-08 09:09:15 -06:00
Andy Miller
60986083dc Merge branch 'release/1.1.4' 2016-09-07 17:03:35 -06:00
Andy Miller
adec441065 Merge branch 'release/1.1.4' into develop 2016-09-07 17:03:35 -06:00
Andy Miller
fe8fb5fa42 version update 2016-09-07 17:03:19 -06:00
Andy Miller
d62de27f63 updated changelog 2016-09-07 16:41:19 -06:00
CSixtyFour
fd4c0d97a2 Update LanguageCodes.php (#1030)
added language orientation for a Persian and Urdu
2016-09-07 16:06:55 -06:00
Flavio Copes
2669e11c9d Move media blueprints out of core 2016-09-07 17:04:43 +02:00
Andy Miller
ee6b270776 Typo in GPM::install command 2016-09-06 18:16:28 -06:00
Andy Miller
9651ad7ef1 Updated version for testing RC plugins 2016-09-06 17:29:06 -06:00
Andy Miller
e19f2042bb Updated changelog 2016-09-06 15:42:02 -06:00
Andy Miller
a54f30b8ae Revamped the Html Truncator code to address issues with invalid HTML #1019 2016-09-06 15:38:36 -06:00
Andy Miller
10825d3f70 Updated to latest vendor libs 2016-09-03 11:12:40 -06:00
Andy Miller
fa35ba87e5 updated composer binary 2016-09-03 11:12:30 -06:00
Andy Miller
20c0b48070 -a 2016-09-03 09:34:18 -06:00
Andy Miller
09cae00038 Moved Image filter() call to end of save action #984 2016-09-02 15:38:00 -06:00
Djamil Legato
68557a8248 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-09-02 14:18:38 -07:00
Djamil Legato
1021674f61 Remove no longer needed files validator 2016-09-02 14:18:35 -07:00
Andy Miller
3859d3149b updated vendor libs 2016-09-02 15:05:16 -06:00
Andy Miller
7eb76ee80c Fix for memcached connection #1020 2016-09-02 08:45:12 -06:00
Andy Miller
9b94ce6405 Allow environment to be passed to bin/gpm and bin/plugin commands 2016-09-01 15:44:43 -06:00
Andy Miller
9f2852a56e Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-09-01 12:54:47 -06:00
Andy Miller
69133c9118 181st day is in June! 2016-09-01 12:54:33 -06:00
Matias Griese
24ef246391 Add a way to set environment from CLI 2016-09-01 21:27:08 +03:00
Andy Miller
36882e09dd minor cleanup 2016-08-31 09:58:24 -06:00
Andy Miller
eb27e3e711 fix for bin/gpm index when filtered 2016-08-31 09:57:21 -06:00
Djamil Legato
dc882fffd8 Cleanup 2016-08-29 23:23:21 -07:00
Andy Miller
585a64f7ac Remove useless extra collection cmd check 2016-08-29 18:21:12 -06:00
Djamil Legato
1bfe99b9cd Allow Utils::setDotNotation to merge data, rather than just set. 2016-08-27 12:29:11 -07:00
Flavio Copes
b73f92c78c Changelog 2016-08-26 14:22:17 +02:00
Ole Vik
b787cdeda7 Use pages.markdown.extra in system.yaml (#1007)
Markdown Extra is incorrectly specified as `markdown_extra`, whereas it should be:

```
  markdown:
    extra: false
```
2016-08-26 14:21:16 +02:00
Andy Miller
773e6aef04 Updated to toolbox 2016-08-25 21:24:38 -06:00
Djamil Legato
ca5bfcaaed Fixed regression with Sessions and its path. Forcing $domain when creating a new session 2016-08-25 16:27:20 -07:00
Andy Miller
d29aa79996 cleanup 2016-08-25 15:49:40 -06:00
Andy Miller
b1e940c7d9 removed accidental xdebug_break() 2016-08-25 14:57:07 -06:00
Djamil Legato
272ddcd831 Force creation of user, cache and log if they don’t exist 2016-08-25 13:51:25 -07:00
Djamil Legato
175f3e3f0e Added override and force options for Streams setup 2016-08-25 13:47:14 -07:00
Djamil Legato
f29104ad5d Fixed tmp streams 2016-08-25 12:45:16 -07:00
Andy Miller
64ceef447c Fix for invalid HTML with StaticImageMedium #1001 2016-08-24 18:48:34 -06:00
Andy Miller
d44ee8814a Missing changelog entry added 2016-08-24 17:33:23 -06:00
Andy Miller
5c2be54ad6 composer update 2016-08-24 17:30:53 -06:00
Andy Miller
05b52469ea fixed a messed up changelog 2016-08-24 16:31:55 -06:00
Andy Miller
b58d107ba7 Added RTL in LanguageCodes plus ::getOrientation() and ::isRtl() methods 2016-08-24 16:22:19 -06:00
Andy Miller
3e29ae0923 More reliable Page::home() check 2016-08-24 15:49:46 -06:00
Flavio Copes
0496fc3790 Allow subfolder url rewrite (#896)
By setting `custom_base_url` in system.yaml, we can have Grav in a subfolder but run it in the domain root.

## Scenario 1

Grav is installed in `http://localhost:8080/grav-develop` but you want it to respond on `http://localhost:8080`

In system.yaml, set

```
custom_base_url: 'http://localhost:8080'
```

and set the session path to the new Grav site path, 

```
session:
  path: /
```

And in the domain root, set the redirect, e.g. with .htaccess:

```
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/grav-develop/
RewriteRule ^(.*)$ /grav-develop/$1
```

where `grav-develop` is the subfolder where Grav is.

## Scenario 2

Grav is installed in `http://localhost:8080/grav-develop` but you want it to respond on `http://localhost:8080/xxxxx`

In system.yaml, set

```
custom_base_url: 'http://localhost:8080/xxxxx'
```

and set the session path to the new Grav site path, 

```
session:
  path: /xxxxx
```

And in the new root folder, /xxxxx, set the redirect, e.g. with .htaccess:

```
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/grav-develop/
RewriteRule ^(.*)$ /grav-develop/$1
```

where `grav-develop` is the sister subfolder where Grav is.
2016-08-24 19:23:49 +02:00
Djamil Legato
b3ce52a6c8 Updated Selfupgrade and Install commands to use tmp:// for storing the downloaded packages 2016-08-23 15:03:12 -07:00
Djamil Legato
9540045a6f This wasn’t meant to be removed quite yet (ref: c24c1cd689) 2016-08-23 14:41:51 -07:00
Djamil Legato
c24c1cd689 Added new tmp folder at root
`tmp` is a new folder that serves as container for temporary files. It is very similar to `cache` but its content is meant to be more persistent than cache. Temporary files are meant to survive cache clearance, developers should be responsible of ensuring temporary files are properly removed when needed.

Accessible via stream `tmp://`.
Can be cleared with `bin/grav clear --tmp-only` as well as `--all`.
2016-08-23 14:38:46 -07:00
Andy Miller
7d7ef5ea74 Fix for filtering collections throwing null key error 2016-08-22 15:55:30 -06:00
Andy Miller
5ca2bf4ae8 removed safe email test.. It's random now, not much to test. 2016-08-22 13:50:18 -06:00
Andy Miller
a1039db7af Added more randomization to safe_email twig filter #998 2016-08-22 13:45:55 -06:00
Matias Griese
5adceea7e9 Add function to get direct access to blueprint schema 2016-08-22 19:53:32 +03:00
Andy Miller
7f83252e23 Fixed regex to not pick up multilang page files when no multilang enabled. 2016-08-22 10:16:35 -06:00
Andy Miller
de1d824439 Pre PHP 5.6 regression fix 2016-08-21 09:48:01 -06:00
Andy Miller
9e2cd09cd7 Changed page search to use SPL GlobIterator and more robust regex. Ever so slightly faster too! #995 2016-08-21 09:39:45 -06:00
Andy Miller
ae7c43bcfd Removed 307 as it breaks the admin and is not well supported by browsers - https://github.com/getgrav/grav-plugin-admin/issues/743 2016-08-19 11:28:05 -06:00
Djamil Legato
d660bae517 Fixed regression with selfupgrade command, preventing to get a status about the current version when symbolically linked.
Using proper Installer methods to check for symbolical link folder.
2016-08-18 16:00:15 -07:00
Andy Miller
c1ac1add27 changelog update 2016-08-18 16:47:39 -06:00
Andy Miller
35dbc444db Allow overwrite in GPM::selfupgrade with -o option 2016-08-18 16:40:33 -06:00
Andy Miller
0ec20681d2 Add overwrite option for update 2016-08-18 16:04:10 -06:00
Andy Miller
817fae5955 Removed redundant existing check 2016-08-18 16:03:50 -06:00
Andy Miller
426ec0cb67 added new GPM::getInstallable() method 2016-08-18 16:03:07 -06:00
Andy Miller
560c1c94b4 Fixed -y|--all-yes option for GPM::info 2016-08-18 15:15:40 -06:00
Andy Miller
126ca98252 tidying up 2016-08-18 14:02:36 -06:00
Andy Miller
398c56c20b Fixed -y|--all-yes option for GPM::uninstall 2016-08-18 14:00:02 -06:00
Andy Miller
cd816b6774 extra cleanup for GPM::Install 2016-08-18 13:53:31 -06:00
Andy Miller
613e985fdb Fixed -y|--all-yes option for GPM::install - #985 2016-08-18 13:37:43 -06:00
Andy Miller
84e64785bb Improved GPM::Uninstall command to take into account multiple similar dependencies and output format similar to GPM::Install 2016-08-18 11:59:38 -06:00
Andy Miller
ea9b4568bf Set default state for installation of dependencies to true 2016-08-18 11:58:42 -06:00
Andy Miller
76016cd3f8 remove default 'index' command for GPM to more easily see available commands 2016-08-17 19:16:34 -06:00
Andy Miller
af282312f1 Added support for @page.modular per #988 2016-08-17 18:54:20 -06:00
Andy Miller
97d8c63951 extra space 2016-08-17 18:03:40 -06:00
Andy Miller
97607ac033 Merge branch 'feature/climate_integration' into develop 2016-08-17 17:49:26 -06:00
Andy Miller
ea6dc3ef22 Added CLImate composer package for tables support in CLI 2016-08-17 17:49:06 -06:00
Andy Miller
6fb49a3a8a Improved UI for CLI GPM Index to use tables 2016-08-17 17:48:46 -06:00
Andy Miller
77a7e3da2e Added support for external_url: page header 2016-08-17 14:19:20 -06:00
Andy Miller
39745be4e8 Vendor updates for PHP 7.1 support 2016-08-16 18:31:41 -06:00
Andy Miller
f7c968128a updated changelog 2016-08-16 16:10:06 -06:00
Andy Miller
22387f42f3 Add flatten array utility function 2016-08-16 16:07:37 -06:00
Djamil Legato
3007d997bf Fixed missing GitHub Auth in Global Env for Travis 2016-08-14 13:18:22 -07:00
Andy Miller
7843b30796 Merge branch 'release/1.1.3' 2016-08-14 10:50:36 -06:00
Andy Miller
52ace4f5a7 Merge branch 'release/1.1.3' into develop 2016-08-14 10:50:36 -06:00
Andy Miller
7c42541a0b version update 2016-08-14 10:50:26 -06:00
Andy Miller
ae8ca63fa7 Fix for lightbox exception - #981 2016-08-14 10:42:34 -06:00
Andy Miller
1232ecacf7 Merge branch 'release/1.1.2' 2016-08-11 12:42:55 -06:00
Andy Miller
95f362c9ce Merge branch 'release/1.1.2' into develop 2016-08-11 12:42:55 -06:00
Andy Miller
060b55bc6e version update 2016-08-11 12:42:46 -06:00
Andy Miller
deda94a779 Fix for image not rendering 'id' attribute - #956 2016-08-11 09:56:27 -06:00
Matias Griese
f99f42a979 Debugger: Add support for dumping exceptions 2016-08-11 16:47:47 +03:00
Andy Miller
b3f35fb16e Add ability to look up page mime types from media.yaml - #966 2016-08-10 16:53:58 -06:00
Andy Miller
1c462e8784 quoted redirect rules 2016-08-09 13:33:51 -06:00
Andy Miller
07d95d189c Added logic to not add timestamp on remote references. 2016-08-01 16:20:02 -06:00
Andrew Murray
d8688975a2 Fixed typo (#964)
cheers
2016-07-31 00:06:50 -06:00
Flavio Copes
74f6890ce8 Prevent exception being thrown when calling the Collator constructor failed in a Windows environment with the Intl PHP Extension enabled [#961] 2016-07-27 17:23:01 +02:00
Andy Miller
ab17fb2fdd use Inflector class to hyphenize for consistency and safety 2016-07-22 09:46:52 -06:00
Flavio Copes
2bb6d1d4db Changelog 2016-07-22 17:22:17 +02:00
Flavio Copes
07beafc679 If no parent is set and I call a siblings collection, return a new collection
Fix for a plugins combination issue detailed in
https://github.com/getgrav/grav-plugin-sitemap/issues/22
2016-07-22 17:21:02 +02:00
Flavio Copes
a40c61a8fa Fix #952 hypenize the session name 2016-07-22 15:20:04 +02:00
Flavio Copes
e13ded1a5d Changelog 2016-07-20 17:45:30 +02:00
Flavio Copes
98534bc836 Force SSL on a page if system.force_ssl is enabled (#899)
* Force SSL on a page if system.force_ssl is enabled

* Blueprint for force_ssl option

* Add default false for force_ssl
2016-07-20 17:33:29 +02:00
Flavio Copes
9b673591db Changelog 2016-07-20 15:07:02 +02:00
Benny
496be79aa1 Improved authorize Twig extension (#948) 2016-07-20 15:00:15 +02:00
Djamil Legato
c0fcac3393 Fixed Folder::delete method to recursively remove files and folders and causing Upgrade to fail. 2016-07-19 11:16:13 -07:00
Flavio Copes
4d43812c77 Updated dependencies 2016-07-19 14:43:44 +02:00
Andy Miller
5a65269ef3 Merge branch 'release/1.1.1' into develop 2016-07-16 11:07:57 -06:00
Andy Miller
1a1b29116d Merge branch 'release/1.1.1' 2016-07-16 11:07:56 -06:00
Andy Miller
6e6ff7c0b4 version update 2016-07-16 11:07:45 -06:00
Andy Miller
5871d1a823 Fix for invalid HTML chars and very long site titles #701 2016-07-15 11:44:16 -06:00
Andy Miller
cdb575c1bc updated changelog 2016-07-15 10:02:24 -06:00
Andy Miller
8b6c77b8dd bad nginx.conf 2016-07-15 08:43:00 -06:00
Flavio Copes
704521960e Make paramsRegex static to prevent issue with calling it statically 2016-07-15 11:32:57 +02:00
Andy Miller
231bc816f0 Merge branch 'release/1.1.0' 2016-07-14 14:35:39 -06:00
Andy Miller
95537f3a32 Merge branch 'release/1.1.0' into develop 2016-07-14 14:35:39 -06:00
Andy Miller
82f453ea2f set releases to stable 2016-07-14 14:35:23 -06:00
Andy Miller
b0db8c89dd changed to stable releases 2016-07-14 14:33:17 -06:00
Andy Miller
3594e000b2 Merge branch 'release/1.1.0' into develop 2016-07-14 12:03:32 -06:00
Andy Miller
f8adf87544 Merge branch 'release/1.1.0' 2016-07-14 12:03:31 -06:00
Andy Miller
b193fcd2ed version update 2016-07-14 12:03:21 -06:00
Andy Miller
6dfa1542fb updated versions 2016-07-13 17:13:03 -06:00
Andy Miller
2282d2c69c Fixed up the languages 2016-07-13 17:07:08 -06:00
Andy Miller
5a1d1a7622 Added Luxembourgish back to language codes 2016-07-13 16:22:41 -06:00
Andy Miller
6c042b4804 Unified PHP code header styling 2016-07-11 16:07:14 -06:00
Andy Miller
9b7b953684 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-07-11 13:20:01 -06:00
Andy Miller
0d8c69b615 updated changelog 2016-07-11 13:19:43 -06:00
Flavio Copes
29f6da675d Cache images loaded from the route (when cache is enabled) (#905)
* Cache images loaded from the route (when cache is enabled)

* Use GMT instead of +0000 as used in DATE_RFC1123 format
2016-07-11 13:13:25 -06:00
Tyler Cosgrove
8e7cc01e75 Add user to config (#913) 2016-07-11 13:08:42 -06:00
Benny
1fb2d7333c Feature: Better assets pipelining (#917)
* Add smart assets pipeline generation

* Drop cache key

* Fix absolute path generation in `buildLocalLink`

* Add unit test case
2016-07-11 13:06:05 -06:00
Djamil Legato
3529d19c8f Added support for validation of multiple email in the type: email field (grav-plugin-email#31) 2016-07-05 16:32:05 -07:00
Flavio Copes
a6eef19297 Default getUpdatable to both plugins and themes
Was modified in https://github.com/getgrav/grav/pull/921 and caused an
error in Admin as the signature changed, restore original functionality
by default
2016-07-04 14:30:50 +02:00
Flavio Copes
6a169bf5f4 Fix https://github.com/getgrav/grav-plugin-admin/issues/682 saving a user when it's not yet created 2016-07-04 14:16:48 +02:00
Jean-Philippe Dépigny
05da8e90bf Feature/more options gpm #892 (#921)
* add options to updateCommand in order to update only themes or plugins

* Fix typo in options comments

* refactor updateCommande and getUpdatable method in order to handle no options (plugins or themes)

* fix PSR-2 typo
2016-07-01 15:28:44 +02:00
Jean-Philippe Dépigny
c5b5423d5c add ext-zip requirement (#922) 2016-07-01 13:51:35 +02:00
Flavio Copes
10212a310f Update CONTRIBUTING.md 2016-06-29 08:39:46 +02:00
Flavio Copes
943d2c9892 Fix backend validation for file fields marked as required
Fixes https://github.com/getgrav/grav-plugin-form/issues/78
2016-06-28 13:32:39 +02:00
Andy Miller
ce499c795b version update 2016-06-21 17:51:07 +01:00
Flavio Copes
3d53166651 Changelog 2016-06-20 18:54:36 +02:00
Flavio Copes
1bf4428752 Fix params regex not taking into consideration param separators other than : 2016-06-20 18:51:57 +02:00
Flavio Copes
d1cb75b6a2 Add a onPageFallBackUrl event when starting the fallbackUrl() method
Use case: allow to password-protect page media too via the Login plugin
2016-06-17 19:31:12 +02:00
Andy Miller
ac67fb7337 Switching back to more stable cache key #906 2016-06-17 16:30:42 +01:00
Benny
59bbaa5f33 Respect enable_asset_timestamp settings for pipelined Assets (#906)
* Respect `enable_assets_timestamp` settings for pipelined Assets

* Add a timestamp to the name generation process in `pipelineCss` and `pipelineJs`

* Compute uid for `pipelineCss` and `pipelineJs` on assets and on timestamp
2016-06-16 22:02:58 +01:00
Benny
f845943c47 Optimize PR #902 (#908) 2016-06-16 16:24:56 +02:00
Artyom Mezin
f8964ab908 Remove end date check if not specified (better 32-bit support) (#902)
* Remove end date check if not specified (better 32-bit support)

Related to https://github.com/getgrav/grav/issues/898

I can't find better way to remove it with DRY principle 😑
With smaller code we need to check a value for each `$this->items` iteration.

Also it can be used with `PHP_INT_MAX` with previous version of this code.

* Include endpoints
2016-06-15 09:19:17 +02:00
Andy Miller
fedf7f0903 version updates 2016-06-14 18:13:10 +01:00
Andy Miller
6e516e8971 updated changelog 2016-06-11 22:32:10 +01:00
Andy Miller
d42786484f Pass the exception to the onFatalException() event 2016-06-11 22:27:34 +01:00
Flavio Copes
dbb9725567 restore require-rev 2016-06-10 14:38:53 +02:00
Flavio Copes
b5cfca1ba1 composer update 2016-06-10 13:03:32 +02:00
Flavio Copes
5931857416 Feature/cache fixes (#887)
* Add redis to the list. Add back memcached

* Add configuration options for memcache, memcached, redis

* Add Memcached implementation
2016-06-10 11:35:12 +02:00
Joel Handwell
18d320f72e Update broken link for Doctrine Cache (#886) 2016-06-09 08:49:04 +02:00
Benny
0e0ed38168 Fix Utils::normalizePath() truncating zeros out of path (#882)
good fix! cheers.
2016-06-06 13:01:28 -06:00
Flavio Copes
2ba1875cc1 Update to jQuery 2.2.4 2016-06-06 11:26:22 +02:00
Andy Miller
baacfa794a Updated nginx configuration 2016-06-03 11:21:35 -06:00
Andy Miller
ef456888f8 Added various ways to get and set the css/js/collections . This should allow full control of manipulating assets via plugins. #876 2016-06-02 18:05:24 -06:00
Andy Miller
858fbbe41c Fixed a couple of missed references to new media.types 2016-06-02 14:55:37 -06:00
Andy Miller
ee567fc1dc Moved media list items into an types: key. 2016-06-02 14:50:22 -06:00
Andy Miller
cd30e6a331 version update 2016-06-01 17:43:54 -06:00
Andy Miller
35c7698139 Reverted the gzip fixes.. will try again! 2016-05-31 11:51:51 -06:00
Andy Miller
471cf7fe31 Removed references to mcrclay/minify's CSS and JS min 2016-05-31 11:29:37 -06:00
Andy Miller
88fad44dca switched mcrclay/minify library for matthiasmullie/minify 2016-05-31 11:26:27 -06:00
Flavio Copes
cb28112d94 Also enable system.apache_zlib_fix if apache+fcgi 2016-05-31 17:12:45 +02:00
Flavio Copes
822a111919 Re-apply 7619d3b54a which got lost in the Grav classes refactoring
Preserve url query/fragment/params on lang redirect
2016-05-31 13:17:00 +02:00
Andy Miller
d6a47af84a updated changelog 2016-05-30 23:07:04 -06:00
Andy Miller
a24b7faef5 Added a new CSS / JS minify library that seems to do a better job #864 2016-05-30 23:05:59 -06:00
Andy Miller
395e640e39 Changelog + Version update 2016-05-30 20:27:23 -06:00
Andy Miller
db082e4e62 updated composer packages 2016-05-30 20:23:31 -06:00
Andy Miller
4de9c94bd5 Remove double URL encode when processing params in links - #860 2016-05-30 17:14:21 -06:00
Andy Miller
7fc2f20f1b Better handling of params with more complex Urls - #859 2016-05-30 16:41:07 -06:00
Andy Miller
1c12bb5fc1 I broke InitializeProcessor in last commit! 2016-05-30 16:02:31 -06:00
Quy
a485644c38 Replace underscore with space for display of timezones #626 (#861)
Thanks!
2016-05-30 15:03:42 -06:00
Andy Miller
32cf73e865 changelog updated 2016-05-30 12:29:53 -06:00
Andy Miller
e4a3d6a3b9 Merge branch 'feature/bettef-gzip-flush-buffers' into develop 2016-05-30 12:27:16 -06:00
Andy Miller
4fbf4329fd Fix for Validation::typeX() missing causing validation errors - #626 2016-05-30 12:17:13 -06:00
Flavio Copes
43c0ac275f Correctly handle language strings to termine if it's admin or not Fix https://github.com/getgrav/grav-plugin-admin/issues/627 2016-05-30 18:28:50 +02:00
Flavio Copes
a381e5bb66 Fix #798 use raw routes in blueprints 2016-05-30 10:44:11 +02:00
Andy Miller
971c5d326d Code cleanup 2016-05-29 19:36:17 -06:00
Benny
4c687ee368 Install plugins and themes in correct multisite folders (#841)
* Adresses #319 (https://github.com/getgrav/grav-plugin-admin/issues/319)
2016-05-29 19:27:25 -06:00
Andy Miller
7b56041dad The fix here seems to do more damage than harm.. removing 2016-05-28 21:38:54 -06:00
Andy Miller
d7f286f601 Updated with more lang codes 2016-05-28 18:25:13 -06:00
Andy Miller
581bbaf19c Updated with more lang codes 2016-05-28 18:24:27 -06:00
Andy Miller
6c9037e125 flush any and all buffers 2016-05-28 16:52:04 -06:00
Andy Miller
da0f9cd4d9 bit more compression 2016-05-28 16:51:34 -06:00
Andy Miller
6ed1f767b9 Fixed issue with zlib and no shutdown close_connection false 2016-05-28 13:50:18 -06:00
Andy Miller
13c5035386 zlib + gzip incompatibility is not specific to mod_php, it's for all.. so that needed adjusting 2016-05-27 18:03:12 -06:00
Andy Miller
5acfdee876 Only implement zlib fix for apache2handler - tested fine with Caddy 2016-05-27 17:50:31 -06:00
Andy Miller
7a3ae9186b working pretty well with zlib + grav gzip.. deflate needs work 2016-05-27 16:37:40 -06:00
Flavio Copes
02f863ad2c Use the raw route for page parent select 2016-05-27 19:50:15 +02:00
Andy Miller
d048057249 Added back GravTrait::$grav for compatibility for < 1.0.10 versions of admin plugin 2016-05-26 17:46:14 -06:00
Andy Miller
5fb6b634e9 Changelog updated 2016-05-25 17:12:52 -06:00
Andy Miller
c7fe13aa6a updated changelog 2016-05-25 15:40:26 -06:00
Andy Miller
36661a88d0 fixed a bug in Page::relativePagePath() when name is not defined 2016-05-25 15:39:30 -06:00
Andy Miller
e8f3a43ded changelog updated 2016-05-25 11:13:32 -06:00
Andy Miller
78891add6a setDotNotation() Test added 2016-05-25 11:12:56 -06:00
Andy Miller
892fb83a32 Replace remove with dotNotation() methods 2016-05-25 11:05:52 -06:00
Andy Miller
841d4727ef useful functions for getting and setting dot notation based arrays 2016-05-24 21:50:56 -06:00
Andy Miller
a3e31c786e Better fix for redirects loop (admin safe) 2016-05-24 11:43:44 -06:00
Andy Miller
24bc4b2644 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-05-24 10:56:22 -06:00
Andy Miller
0b81fda01c Break redirect logic out of the main page not found if statement - causing infinite loops 2016-05-24 10:56:07 -06:00
Matias Griese
a3ec59d678 Detect if user really meant to extend parent blueprint, not another one (composer update) 2016-05-24 11:09:51 +03:00
Andy Miller
2ce137eb3e Switch to markdown-notices styling rather than older >>> block quote overrides 2016-05-23 15:39:43 -06:00
Andy Miller
d18aa3e11e version update 2016-05-23 14:44:02 -06:00
Andy Miller
f549b27dfc Modular Children text 2016-05-23 12:59:45 -06:00
Andy Miller
83bbc497a8 Added ability to get a specific item of content meta 2016-05-23 12:51:53 -06:00
Andy Miller
10d301a179 Added flash storage 2016-05-20 16:53:00 -06:00
Andy Miller
18a8483522 Updated some vendor libs 2016-05-20 13:13:18 -06:00
Andy Miller
daebf05f9b Make URI::ip() static by default 2016-05-20 13:13:03 -06:00
Matias Griese
7e4dad1cb1 Blueprint::setTypes(): initialize internals before setting the types 2016-05-20 22:06:01 +03:00
Matias Griese
b3755b371f Revert last change (not needed) 2016-05-20 22:03:17 +03:00
Matias Griese
4cba419d6d Set default form field types while loading blueprint 2016-05-20 21:57:15 +03:00
Matias Griese
57544f6fe3 Add function Blueprint::setTypes() 2016-05-20 21:52:31 +03:00
Andy Miller
f449c560c4 fix for getting admin route when Uri::init() is called after Session::init() 2016-05-20 10:38:43 -06:00
Flavio Copes
77d03b6a46 Load session prior to uri as the initialization of Uri does some session handling for the active language (#843)
Refs https://github.com/getgrav/grav/issues/842
2016-05-20 10:13:01 -06:00
Flavio Copes
d9ebf3580a Update changelog 2016-05-18 10:14:48 +02:00
Djamil Legato
16527218b9 Updated changelog 2016-05-17 18:30:26 -07:00
Djamil Legato
f4b7e36763 Fixed Filtering for files, always threat as multiple 2016-05-17 14:20:03 -07:00
Flavio Copes
6bd7641862 Ignore errors with ob_gzhandler.
We handle the possible error in the Problems plugin via
https://github.com/getgrav/grav-plugin-problems/commit/83ef2a2917e5ad2f0
a8d4eb62b16fde3a621e4f0
2016-05-17 09:45:53 +02:00
Philipp Kitzberger
97ffb87d69 Fix absolute URLs in pipelined CSS (#837)
* Fix absolute URLs in pipelined CSS

The way that absolute URLs get excluded during cssRewrite() doesn't cover all possible cases due to a incorrect CSS_URL_REGEX.

* Improve CSS_URL_REGEX

Performance improvement by using a back reference. Additionally this makes sure the same kind of quote (single, double, none) is being used.
2016-05-16 17:57:08 -06:00
Flavio Copes
504f3df857 Update from jQuery 2.2.0 to jQuery 2.2.3 2016-05-16 18:06:15 +02:00
Flavio Copes
cfe1734d50 Fix indentation, use 4 spaces 2016-05-16 11:51:58 +02:00
Flavio Copes
a4bc30d725 Fix #835 check for empty image file first to prevent getimagesize() fatal error 2016-05-16 09:30:57 +02:00
Matias Griese
7d6ffe01a9 Merge remote-tracking branch 'origin/develop' into develop 2016-05-12 21:38:44 +03:00
Matias Griese
0e08f97f46 Make registering page types to remember previous additions 2016-05-12 21:38:35 +03:00
Andy Miller
b3db9876e0 various vendor updates 2016-05-12 12:12:01 -06:00
Matias Griese
b25eeb9586 Add support for extending system page types 2016-05-12 17:40:51 +03:00
Matias Griese
966308b14a Fix Page Type blueprints not being able to extend their parents 2016-05-12 15:43:02 +03:00
Andy Miller
6959012a0f Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-05-11 15:14:17 -06:00
Andy Miller
09f766bcf5 typo in docblock 2016-05-11 15:13:42 -06:00
Flavio Copes
62f794e6cd Add explicit encoding to htmlspecialchars 2016-05-11 14:29:49 +02:00
Andy Miller
ad74446a89 Don't try to set Page::slug() to empty string causing error in slug format 2016-05-10 11:01:17 -06:00
Flavio Copes
eacdea5377 Only ignore main vendor folder 2016-05-10 15:41:23 +02:00
Flavio Copes
896808c824 Fix trying to delete grav when removing a plugin which has a dependency on a specific grav version 2016-05-10 15:39:27 +02:00
Andy Miller
9a54c3257c version update 2016-05-09 16:04:41 -06:00
Andy Miller
30163aadad Fix for entities not being properly decoded in Page::summary() #825 2016-05-09 10:27:43 -06:00
Flavio Copes
59c320eb17 Also send package name 2016-05-07 10:45:07 +02:00
Flavio Copes
44dbb7f509 Drop Grav from dependencies list, already taken care of 2016-05-07 10:24:20 +02:00
Flavio Copes
a862f18836 If a plugin is installed as symlink, drop from dependencies calculation 2016-05-07 10:23:57 +02:00
Andy Miller
c64c0bc2a0 updated beta version 2016-05-04 16:29:53 -06:00
Andy Miller
c78104d8de added new prepend/append prefixes 2016-05-04 15:53:01 -06:00
Andy Miller
521d7a7ef1 cleanup 2016-05-03 14:10:10 -06:00
Flavio Copes
dd0a2e8ef1 Update changelog 2016-05-03 13:10:20 +02:00
Andy Miller
f3ea342882 Added PUBLISHING translation string 2016-05-02 18:52:17 -06:00
Andy Miller
bddf8751b2 Make cachePageContent() method publicly accessible - #810 2016-05-02 17:37:27 -06:00
Flavio Copes
400b87fb96 Fix when installing multiple packages and one is a dependency of the other
e.g. `bin/gpm install login login-oauth`
2016-05-02 09:37:58 +02:00
Flavio Copes
a9e31f45e2 When a package has a Grav version in its requirements, if fulfilled just go on
Do not try to install it as if it was a plugin
2016-04-30 17:20:40 +02:00
Flavio Copes
a2c60f1eee use slug instead of name to determine the package folder 2016-04-29 20:18:33 +02:00
Flavio Copes
1f030a5654 Update changelog 2016-04-29 19:23:15 +02:00
Flavio Copes
d9a1b1da0f Add the page type to the onBlueprintCreated Event object 2016-04-29 19:19:56 +02:00
Andy Miller
e30d342071 Removed unused use statement 2016-04-28 12:14:55 -06:00
Andy Miller
b935729c1b Fix for broken bin/gpm version command 2016-04-28 12:08:06 -06:00
Andy Miller
1f9c7ea8a2 Boolean should be compared strictly 2016-04-28 11:56:10 -06:00
Andy Miller
7463bad8dd fix for modular page modal #529 2016-04-28 11:46:34 -06:00
Andy Miller
12ca443cb4 Fixed async loading on assets pipeline output 2016-04-28 10:20:35 -06:00
Andy Miller
e4aad9797d version updates 2016-04-27 17:34:55 -06:00
Andy Miller
1f24ab3a96 Merge branch 'feature/non-standard-slugs' into develop
# Conflicts:
#	CHANGELOG.md
2016-04-27 13:44:56 -06:00
Andy Miller
91b29178bd updated CHANGELOG.md 2016-04-27 13:43:24 -06:00
Andy Miller
4573173456 Allow Cyrillic slugs 2016-04-27 13:36:12 -06:00
Flavio Copes
e2453b891d Fix #784 ordering in page collections
Fixes accentuated characters ordering and also uppercase letters being
put first.

Re-done implementation made in
https://github.com/getgrav/grav/commit/fc5302f334fd3f616177b70fd41314980
6a817ed but reverted in
https://github.com/getgrav/grav/commit/894142d2782aca734305c68201a3c1afd
6167ae2 due to extension not checked
2016-04-27 18:47:31 +02:00
Flavio Copes
98fb622bac Make sure there's an end of line after each file added to the pipeline (#806)
Fixes an issue with files ending with a line comment, but no new line.

Also fixes (in a case I found) the already-seen JSMin fatal issue with
"Regex not terminated" error.
2016-04-27 08:17:34 -06:00
Flavio Copes
9129ce25d4 Fix directory separator issue creating cachecompiled and cachetmp folders 2016-04-27 10:18:34 +02:00
Andy Miller
c91ce79dc7 Fix for ksortFilter operating on null 2016-04-26 20:42:01 -06:00
Andy Miller
55f0fc82e8 Reverted change made in cd31d41 that broke saving plugin/theme locations 2016-04-26 16:22:14 -06:00
Andy Miller
c125ff54ba updated composer libs 2016-04-26 16:06:55 -06:00
Andy Miller
a2acb99c79 Added new Plugin::getBlueprint() and Theme::getBlueprint() method 2016-04-26 13:00:17 -06:00
Flavio Copes
d407c89c74 Allow page blueprints in plugins. Also invert order of loading templates, themes load last and have the "final word". Cache everything if cache is enabled (#801) 2016-04-26 11:57:19 +02:00
Flavio Copes
34a408e995 Autoformat code styling 2016-04-23 19:45:24 +02:00
Flavio Copes
894142d278 Revert "Fix #784 ordering in page collections"
This reverts commit fc5302f334.
2016-04-22 19:51:25 +02:00
Flavio Copes
cd31d41b07 Use locator instead of CACHE_DIR 2016-04-22 18:39:10 +02:00
Flavio Copes
ecf51536b9 Revert Add twig/extensions to allow Twig dates translation
Revert
https://github.com/getgrav/grav/commit/810deb41056948896a90a51751dff6e44
f05de95
2016-04-22 18:33:45 +02:00
Flavio Copes
fc5302f334 Fix #784 ordering in page collections
Fixes accentuated characters ordering and also uppercase letters being
put first
2016-04-22 15:22:08 +02:00
Andy Miller
385c076964 fix for issue with absolute_urls: true and link rewriting with assets pipeline 2016-04-21 17:41:14 -06:00
Andy Miller
2abd70467c Set twig.debug to true by default 2016-04-21 14:01:58 -06:00
Andy Miller
c5316aff58 updated CHANGELOG.md 2016-04-21 13:43:12 -06:00
Andy Miller
9bfeb0ce6e Changed to new form data-*@ format in blueprints 2016-04-21 13:42:05 -06:00
Oscar Recio
a56fa4b03a Deleted Whoops aliases (#797)
Deleted Whoops aliases as they are in `Grav\Common\Errors` implemented. In this file are unusued
2016-04-21 10:28:43 +02:00
Djamil Legato
2a895f578e Better handler for GPM::isTestingRelease method 2016-04-20 15:04:39 -07:00
Andy Miller
0c7ee74bd1 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-04-20 16:03:46 -06:00
Andy Miller
3eafc4a089 set gpm.releases to testing during beta phase 2016-04-20 16:03:42 -06:00
Djamil Legato
df800cdfd7 Updated Changelog 2016-04-20 14:10:45 -07:00
Andy Miller
ffb7ac755b Updated composer lock 2016-04-20 14:06:24 -06:00
Djamil Legato
693568b509 Updated languages, removed frontmatter delimiter 2016-04-20 13:00:49 -07:00
Andy Miller
bf2b3bff9a Updated languages 2016-04-20 13:48:02 -06:00
Djamil Legato
9effb59a1d Updated version in Grav defines 2016-04-20 12:06:01 -07:00
Djamil Legato
8d03f3166d Typo 2016-04-20 12:05:23 -07:00
Djamil Legato
f1162895c2 Merge branch 'develop' of https://github.com/getgrav/grav into develop
# Conflicts:
#	CHANGELOG.md
2016-04-20 12:02:48 -07:00
Djamil Legato
cd58e10fbc Updated Changelog 2016-04-20 12:01:33 -07:00
Flavio Copes
5adff355be Fill changelog 2016-04-20 20:51:59 +02:00
Djamil Legato
c021fbd232 Added GPM::getRelease, GPM::isStableRelease, GPM::isTestingRelease methods and passing the type to the repository object 2016-04-20 11:44:10 -07:00
Djamil Legato
cbd6ab42c3 Let GPM read and pass the current channel to Grav's repository 2016-04-20 11:41:51 -07:00
Flavio Copes
8b39411fb4 Add Installer events (#787)
Refs https://github.com/getgrav/grav/issues/760

Uses a package's `install.php` file, in the package root folder, to allow a plugin/theme to hook into the install procedure and stop prior to executing an operation (install/update/uninstall), or show a message after having done it.

Example install.php file in the PR description https://github.com/getgrav/grav/pull/787
2016-04-20 19:02:21 +02:00
Flavio Copes
0a8fd26e04 Use correct version number we'll use 2016-04-20 16:11:16 +02:00
Flavio Copes
2e89ea5f19 Make sure alpha / beta / rc releases for 2.0.0 are included in ~2.0 2016-04-20 15:56:52 +02:00
Andy Miller
88e3c9dd18 Updated CHANGELOG.md 2016-04-19 17:41:06 -06:00
Andy Miller
82f5111857 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-04-19 17:32:55 -06:00
Andy Miller
23d2d19f35 More refactoring 2016-04-19 17:31:34 -06:00
Andy Miller
c5394f07f6 Support Ranges for streaming video 2016-04-19 17:08:57 -06:00
Andy Miller
33f06e00a1 add webm and ogv 2016-04-19 17:08:39 -06:00
Flavio Copes
96c2bae4f8 Add check to evaluateFunc()
Prevents obscure Twig error when $input is not set
2016-04-19 19:14:54 +02:00
Andy Miller
643a977df6 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-04-19 10:35:12 -06:00
Andy Miller
cea454b2c5 Deleted deprecated newuser command - use login plugin 2016-04-19 10:34:58 -06:00
Andy Miller
672b37359a Moved devtools out of core into a plugin 2016-04-19 10:34:29 -06:00
Flavio Copes
5d97fed383 Add 500 error option to the comment 2016-04-19 11:36:57 +02:00
Andy Miller
99f8ee2c81 Missing use statement 2016-04-18 16:40:09 -06:00
Djamil Legato
d4642e4b9a Added Grav flag to identify if Grav is in testing or stable mode 2016-04-18 14:42:16 -07:00
Andy Miller
dc121e9ef2 Fix for fallbackUrl not being accessible in PageServiceProvider 2016-04-18 11:53:18 -06:00
Andy Miller
6124f71d6e Feature/frontmatter twig processing (#788)
* start on processFrontmatter logic

* optimized the twig processing

* Added blueprint definitions

* updated changelog

* Fix to not process in admin
2016-04-14 15:33:45 -06:00
Flavio Copes
5213867611 Don't load plugins and themes in tests 2016-04-14 20:04:38 +02:00
Flavio Copes
a778878ec5 Fix reinitializing Grav in tests 2016-04-14 19:40:13 +02:00
Flavio Copes
e58994d196 Initialize stream in test 2016-04-14 19:25:35 +02:00
Flavio Copes
eb4e7ceae1 Better type hinting 2016-04-14 18:54:29 +02:00
Flavio Copes
773e3b68ef Simplify test initialization code 2016-04-14 18:54:29 +02:00
Andy Miller
f2e6691f26 updated CHANGELOG.md 2016-04-13 15:12:08 -06:00
Andy Miller
3535c55bef Merge pull request #775 from getgrav/feature/default-frontmatter-yaml
This allows a frontmatter.yaml file to be included in a page folder
2016-04-13 15:09:31 -06:00
Andy Miller
8bdceb6919 Added an isAdminPlugin() helper method in Utils 2016-04-13 15:05:17 -06:00
Andy Miller
40348124a1 Don't merge frontmatter.yaml if admin 2016-04-13 15:04:59 -06:00
Andy Miller
a5d4ede100 Added Cache::setKey() to allow dynamic setting of cache key 2016-04-13 14:59:25 -06:00
Andy Miller
c8e86dc1a6 added changelog mention of class refactor #745 2016-04-13 12:55:59 -06:00
Andy Miller
9eeb4c15ac Merge pull request #745 from toovy/develop
Refactored the Grav classes load and process methods to follow clean coding standards
2016-04-13 12:51:45 -06:00
Tobias Braner
fbe65e7cac merged 2016-04-13 07:23:18 +02:00
Andy Miller
a8f4092ac3 Merge pull request #778 from Xobb/patch-1
Add ability to link to file on gist
2016-04-12 16:26:42 -06:00
Andy Miller
c4470889b4 Fix for find() processing redirects via dispatch() - #781 2016-04-12 16:25:16 -06:00
Andy Miller
90481e8a6d Added new gpm.releases option and output in CLI 2016-04-12 15:49:09 -06:00
Andy Miller
7e06b01771 Use new gpm.proxy_url and fallback to old proxy_url setting 2016-04-12 15:47:52 -06:00
Andy Miller
0e40257176 removed proxy_url and moved to gpm section 2016-04-12 15:46:28 -06:00
Flavio Copes
b4cdeba4cf Drop seconds test
Caused false negatives on Travis
2016-04-12 16:36:52 +02:00
Flavio Copes
88320607fa Detect error in exec call and output accordingly. Also fix trailing slash in path. Fix #746 2016-04-12 16:02:36 +02:00
Flavio Copes
a58766be66 Change the header.template override in system/blueprints/pages/default.yaml to be type text
Fixes https://github.com/getgrav/grav-plugin-admin/issues/433
2016-04-12 14:15:14 +02:00
Andy Miller
8751c662b9 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-04-11 21:03:44 -06:00
Andy Miller
3f1e482ee3 capitalized composer 2016-04-11 21:02:59 -06:00
Matias Griese
e880cf9c63 Fix warning on opcache clean 2016-04-11 08:27:16 +03:00
Matias Griese
9f7874a4f6 Simplify opcache test 2016-04-11 08:23:52 +03:00
Andy Miller
722e3cb55e updated changelog 2016-04-10 19:49:57 -06:00
Andy Miller
63c2db5c85 Fix for non http/s external links - #738 2016-04-10 19:26:06 -06:00
Flavio Copes
c7c69cbd66 Update live changelog 2016-04-09 10:59:58 +02:00
Matias Griese
29eb3932ce Fix Zend Opcache opcache.validate_timestamps=0 not detecting changes in compiled yaml and twig files 2016-04-08 11:50:21 +03:00
Andy Miller
9c5b457aa4 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-04-07 15:53:20 -06:00
Andy Miller
0f6d8b7037 allow the ability to override the auto escape without it impacting config 2016-04-07 15:53:08 -06:00
Paul (xobb) Chubatyy
bc6d9f98ff Add ability to link to file on gist
Now when the file is passed to the gist filter only that file will be displayed, not the whole gist.

Example usage:

```{{ gist("000000000000000000000000", "somefile.php") }}```

Backward compatible by the way.
2016-04-07 16:28:04 +03:00
Flavio Copes
c47c4bcbf5 Test adding rel attribute to CSS assets group 2016-04-07 13:28:55 +02:00
Flavio Copes
61e6b8f371 Force downgrade phpunit/php-code-coverage to ~2.0 for PHP 5.5 testing 2016-04-07 12:15:06 +02:00
Flavio Copes
77c3f51118 Additional check that class exists before loading 2016-04-07 11:51:22 +02:00
Flavio Copes
9433eb4888 Update composer 2016-04-07 11:51:07 +02:00
Flavio Copes
3d449ff37c Translate form field labels 2016-04-07 11:40:24 +02:00
Andy Miller
411a7d4b73 Merge pull request #698 from getgrav/feature/allow-authentication-proxy
Allow authentication for proxy
2016-04-06 17:54:03 -06:00
Andy Miller
33d69d7783 Merge pull request #759 from getgrav/feature/fix-redirect
Add params, query and fragment when redirecting to a language or default route
2016-04-06 17:49:43 -06:00
Andy Miller
9d2ef020b4 Merge pull request #747 from maxlysenko/feature/override-default-parsedown-processing
A way to override default Parsedown behavior
2016-04-06 17:46:26 -06:00
Andy Miller
d28e7bc147 Merge pull request #758 from getgrav/feature/load-twig-intl-extension
Add twig/extensions to allow Twig dates translation
2016-04-06 17:39:01 -06:00
Andy Miller
0ed84642e9 Added option to exclude_externals from pipeline and before_excludes to control the render order - #770 2016-04-06 17:27:31 -06:00
Andy Miller
974d107355 This allows a frontmatter.yaml file to be included in a page folder and be merged with header. 2016-04-06 15:28:27 -06:00
Andy Miller
d349e5d67b Support localhost environments based on hostname for vhost support - #772 2016-04-06 12:03:39 -06:00
Andy Miller
993c10df10 Fix for languages/ folder in themes with individual lang files - #761 2016-04-05 18:13:09 -06:00
Andy Miller
5e107116c5 Fix for non-pipeline assets getting lost when pipeline is cached to filesystem - #770 2016-04-05 16:13:12 -06:00
Andy Miller
3571663e0f Merge pull request #767 from getgrav/feature/fix-local-themes-with-same-name-as-gpm
Fix local themes with same folder name (slug) as a theme published on the GPM
2016-04-04 22:17:58 -06:00
Andy Miller
5e85ac640e Merge pull request #737 from getgrav/feature/add-base-including-language-to-uri
Add URI::baseIncludingLanguage()
2016-04-04 22:14:50 -06:00
Andy Miller
d8e1a33479 Fix for double encoding resulting from Markdown Extra - #764 2016-04-04 21:29:11 -06:00
Andy Miller
d68a5b68c4 Fix for a remote link breaking all CSS rewrites for pipeline - #768 2016-04-04 18:36:38 -06:00
Mathias Rhein
1408477827 Updating Caddyfile
* Updating Caddyfile

Now /sitemap.xml or blog.rss or /info.php and so on are working also the evil regex is removed

* Updating Caddyfile

adding suggestion by @abiosoft
2016-04-04 14:29:22 +02:00
Flavio Copes
ee37650b35 If a blueprint has no version specified, it's not a GPM package, do not try to update it (CLI/Admin) 2016-04-04 10:25:00 +02:00
Andy Miller
34a211a532 reworked the theme stuff 2016-04-01 17:05:39 -06:00
Flavio Copes
7619d3b54a Add params, query and fragment when redirecting to a language or default route 2016-04-01 11:28:28 +02:00
Andy Miller
6790a7c86b better text 2016-03-31 18:17:29 -06:00
Andy Miller
4e171c7e80 minor code fixes 2016-03-31 18:16:13 -06:00
Andy Miller
e839fccc2e Tweaked the blank plugin and removed out of date random option 2016-03-31 18:14:14 -06:00
Andy Miller
ab23b52416 Merge pull request #725 from Vivalldi/feature/dev-tools
Developer CLI Tools
2016-03-31 17:30:46 -06:00
Tyler Cosgrove
d752cd09c6 Error handling
try-catch
2016-03-31 19:29:20 -04:00
Tyler Cosgrove
82f52548d3 Add message success message 2016-03-31 19:08:16 -04:00
Andy Miller
187b2b331e use new alias method 2016-03-31 16:51:57 -06:00
Tyler Cosgrove
08cd9f0510 🚮 Clean Up; 🆕 New plugin option for creation 2016-03-31 18:34:38 -04:00
Andy Miller
83fbcf33b9 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-03-31 16:14:57 -06:00
Andy Miller
fbb51cffac Add a shortcut for pages.find() alias 2016-03-31 16:14:52 -06:00
Flavio Copes
810deb4105 Add twig/extensions to allow Twig dates translation
Client code can now use

`{{ a_date|localizeddate('long', 'short', grav.language.getLanguage) }}`
2016-03-31 14:48:30 +02:00
Matias Griese
da6a91f132 Fix wrong page_cache_id on multisite 2016-03-31 14:40:13 +03:00
Matias Griese
51ee7eef24 Remove extra debug message 2016-03-31 14:37:50 +03:00
Matias Griese
5ac7de5d7d Replace LOG_DIR with log:// stream (#715) 2016-03-31 14:21:36 +03:00
Matias Griese
2c9c712bec Deprecate SYSTEM_DIR constant 2016-03-31 14:03:43 +03:00
Flavio Copes
7158dd9beb Revert "Add own date Twig filter override to translate dates automatically based on the locale"
This reverts commit 46ba290004.
2016-03-26 21:54:32 +01:00
Flavio Copes
c3ede5c425 Handle Grav version dependency 2016-03-24 10:30:03 +01:00
Tobias Braner
1d2c4ea2a6 [Refactoring] after changing from static to instance methods the is an thus does not need to be passed through any more 2016-03-24 09:54:38 +01:00
Tobias Braner
6f91e27389 [Refactoring] switched static methods to instance methods as the grav container already exists 2016-03-24 09:13:05 +01:00
Tobias Braner
7051dad34c [Refactoring] removed debugger als callback parameter in measureTime as it is already injected in the container 2016-03-24 09:09:45 +01:00
Tobias Braner
1f49bee5f2 [Refactoring]: removed block style foreach 2016-03-24 08:38:09 +01:00
maxlysenko
7b3c02cece A way to override default Parsedown behavior
As discussed in #736 It's possible to override default Parsedown processing if the new `tag` for existing `type` will be inserted into the array in higher position then the standard tag we want to override.
2016-03-24 10:03:40 +03:00
Tobias Braner
7edb382d37 [Cleanup] Removed unnecessary use statement 2016-03-24 07:58:00 +01:00
Tobias Braner
b86a9ef564 [Refactoring] Cleaned up the Grav class. Reimplemented load and process
to follow clean coding standards.

Cleaned up container setup
Added comments for the new methods in Grav
Removed not needed use statements from grav file
Refactored the grav->process method to be more extendable
Cleaned up a bit, reordered class methods, used measureTime in load
2016-03-24 07:53:10 +01:00
Flavio Copes
94f6e6d8ce Merge pull request #739 from vkarampinis/patch-1
fix some greek translations
2016-03-22 14:05:45 +01:00
Vaios Karampinis
bfd48218ab fix some greek translations 2016-03-22 11:47:00 +02:00
Flavio Copes
9ef5b16baa Fix getting the next available release 2016-03-21 11:33:47 +01:00
Flavio Copes
8682df2e32 Add URI::baseIncludingLanguage()
Return the base relative URL including the language prefix, or the base
relative url if multilanguage is not enabled
2016-03-21 11:02:58 +01:00
Flavio Copes
c8a78871a9 Fix issue in installing a plugin that has themes that use it as a dependency 2016-03-21 10:54:11 +01:00
Flavio Copes
c24637a8a6 Merge pull request #735 from martinec/patch-1
minor refactor: default is 'and'
2016-03-21 09:00:41 +01:00
Cristian Martinez
d632adec75 minor refactor: default is 'and' 2016-03-21 01:45:55 +01:00
Vivalldi
8096c535c8 New Plugin Comp; Fix renaming 2016-03-19 16:29:33 -04:00
Djamil Legato
9c38fd9b8f Do not backup node_modules folder 2016-03-18 16:37:05 -07:00
Flavio Copes
2cf0e2f8b6 Merge pull request #731 from getgrav/feature/translate-dates-automatically
Translate dates automatically in Twig filter
2016-03-18 23:30:38 +01:00
Matias Griese
8ae4e3fd64 Display error when bin/grav install hasn't been run instead of throwing exception 2016-03-18 09:18:13 +02:00
Flavio Copes
4bb6876c78 Add back negation! 2016-03-17 21:13:24 +01:00
Flavio Copes
71bbb03bd9 Change exception to die() in order to always show a message when these fatal errors are found
As proposed by @mahagr
2016-03-17 20:33:32 +01:00
Flavio Copes
3aca86ef6f In GPM::checkNoOtherPackageNeedsThisDependencyInALowerVersion() accept a list of packages that will be excluded from the check
Used when updating dependencies of other packages, which cannot be
updated otherwise if we don't know that the package that needs them in
a lower version will be updated too
2016-03-17 17:45:52 +01:00
Flavio Copes
909695169c Correct getting the latest available version of a package 2016-03-17 17:44:02 +01:00
Flavio Copes
80c6793ef7 Fix getting the latest version when the available property is not set 2016-03-17 16:49:12 +01:00
Flavio Copes
2ad75c8b91 Fix flow 2016-03-17 16:46:17 +01:00
Flavio Copes
3c43888de1 Drop leftover exit() call 2016-03-17 16:44:44 +01:00
Flavio Copes
51c281e7df Fix blueprint string 2016-03-16 20:25:36 +01:00
Flavio Copes
46ba290004 Add own date Twig filter override to translate dates automatically based on the locale
The Twig `date` filter does not translate dates automatically for us.
This translates dates based on the locale set.
2016-03-16 15:35:06 +01:00
Flavio Copes
ca6977d61f Extract a setLocale() method
Also correctly set the locale if the language identifier is 2 letters,
append by default the language identifier otherwise the locale setting
is not applied
2016-03-16 15:34:45 +01:00
Flavio Copes
50b4308242 If the package is updated from an older major release, show warning and ask confirmation 2016-03-16 11:26:32 +01:00
Flavio Copes
b43d621dfc Added GPM:: checkPackagesCanBeInstalled(), checks the passed packages list can be installed/updated 2016-03-16 11:26:32 +01:00
Matias Griese
2e78beee8f Add collections filtering to BlueprintSchema 2016-03-15 14:54:51 +02:00
Matias Griese
4ff59ea57c Add label back to blueprint schema (used in validation) 2016-03-15 14:51:53 +02:00
Matias Griese
fa50ae9367 Add yaml validation 2016-03-15 14:37:40 +02:00
Matias Griese
3f25ad7c4f Add collections validation 2016-03-15 14:37:22 +02:00
Flavio Copes
9f79c018e6 Restore correct way to get latest available release 2016-03-14 17:51:06 +01:00
Flavio Copes
2dce488e77 Modify test accordingly to new method behavior 2016-03-14 16:14:36 +01:00
Flavio Copes
362bffeba8 Prevent updating a package needed in an older release by an already installed package 2016-03-14 16:07:43 +01:00
Flavio Copes
e557c6f797 Prevent updating dependency needed by already installed packages in an older version 2016-03-14 15:24:16 +01:00
Flavio Copes
65d0149291 Fix next significant release handling 2016-03-14 14:23:45 +01:00
Flavio Copes
fce5de5464 Correctly set nested dependency's package name when uninstalling 2016-03-14 14:23:00 +01:00
Flavio Copes
707d081c55 Fix removing packages when removing a parent package 2016-03-14 14:22:42 +01:00
Flavio Copes
6c4fd4dabc Tweak the docs for Page::modular() and Page::modularTwig()
Fixes #724
2016-03-11 19:15:30 +01:00
Tyler Cosgrove
f3043926e1 Remove local checks; Delete twigtemplates; update inheritence theme
All components could use some ❤️
2016-03-10 21:22:55 -05:00
Tyler Cosgrove
fbac9a6dcd Fix theme:// path errors 2016-03-10 20:56:51 -05:00
Tyler Cosgrove
7d2f13f198 Use twig to process
Currently broken as twig loading does not work... test functionality by changing `theme://` to `themes://` in Grav\Common\Twig\Twig
2016-03-10 20:28:49 -05:00
Matias Griese
6cdd302eae Post merge fix 2016-03-10 20:36:38 +02:00
Matias Griese
993c0d1347 Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	composer.lock
2016-03-10 20:34:20 +02:00
Matias Griese
1beb460a9b Composer update (fix list handling in blueprints) 2016-03-10 20:33:48 +02:00
Andy Miller
9119ce8679 Should fix download issues with gzip enabled - #723 2016-03-10 10:28:19 -07:00
Djamil Legato
0716f96d8d Added json_decode and get_cookie twig filters 2016-03-09 20:22:36 -08:00
Andy Miller
ba286cf8c5 minor vendor updates 2016-03-09 19:54:55 -07:00
Tyler Cosgrove
055db441f8 protect 2016-03-08 22:55:43 -05:00
Andy Miller
068eefab7b code analysis fixes 2016-03-08 14:42:07 -07:00
Andy Miller
c053a153fe Code analysis fixes 2016-03-08 14:32:44 -07:00
Matias Griese
f586358ab3 Data\Validation: If field type isn't defined, assume text 2016-03-08 12:21:25 +02:00
Tyler Cosgrove
d5f31db8af Themes and Checks 2016-03-08 00:44:24 -05:00
Tyler Cosgrove
06d9abaede initial not complete 2016-03-07 17:01:52 -05:00
Flavio Copes
09a03f8b1a Gracefully handle invalid packages 2016-03-07 21:16:20 +01:00
Flavio Copes
3317fab0c6 Fix question 2016-03-07 21:16:20 +01:00
Andy Miller
44c99e59f9 Put the dev stuff back in the lock 2016-03-07 12:50:13 -07:00
Matias Griese
c8f87f87ee Composer update on minimum toolbox version 2016-03-07 21:33:41 +02:00
Andy Miller
f11c7b40bb Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-03-07 11:44:58 -07:00
Andy Miller
5155d09765 Fix for corrupted downloads in inherited themes - https://github.com/getgrav/grav-plugin-admin/issues/437 2016-03-07 11:44:45 -07:00
Matias Griese
9a83977913 Merge remote-tracking branch 'origin/develop' into develop 2016-03-07 20:27:29 +02:00
Matias Griese
10a89cf4e7 Expose the active theme metadata and configuration through the grav.theme object (#720) 2016-03-07 20:27:22 +02:00
Andy Miller
a87315c57d updated with stable toolbox 2016-03-07 11:17:33 -07:00
Flavio Copes
0dc9070f2e Update composer.lock 2016-03-07 19:01:21 +01:00
Flavio Copes
cee512c585 Fix issue installing a new plugin 2016-03-07 18:38:31 +01:00
Matias Griese
e9c46e7ace Merge branches 'develop' and 'feature/blueprints-update' of https://github.com/getgrav/grav into develop 2016-03-07 14:58:02 +02:00
Flavio Copes
2f1f48b9b2 Improve command line flow to install packages and dependencies 2016-03-06 17:26:15 +01:00
Flavio Copes
db664b2762 Move common GPM methods from InstallCommand to Common\GPM\GPM. Move tests too 2016-03-06 17:25:56 +01:00
Andy Miller
2db4b519c8 manually merged the newer user profile blueprint 2016-03-04 22:59:24 -07:00
Djamil Legato
d101ffe353 Merge branch 'feature/blueprints-update' of https://github.com/getgrav/grav into feature/blueprints-update 2016-03-04 17:03:10 -08:00
Djamil Legato
c304c40dbf Enable active line for frontmatter 2016-03-04 17:03:04 -08:00
Andy Miller
14353c50d8 added fragment support to URI #711 2016-03-04 16:33:18 -07:00
Andy Miller
42222d1be4 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-03-04 15:44:51 -07:00
Andy Miller
9feebaaa69 user blueprint refactor 2016-03-04 15:44:32 -07:00
Flavio Copes
04aab610c9 Improve uninstall CLI flow 2016-03-04 19:18:34 +01:00
Flavio Copes
606c38b852 Move getPackagesThatDependOnPackage to Common/GPM/GPM 2016-03-04 19:18:34 +01:00
Andy Miller
400213fdf0 added an underline 2016-03-04 09:48:56 -07:00
Andy Miller
91222cb32b Fixed an issue with Retina alternatives not clearing properly between repeat uses. 2016-03-03 19:31:26 -07:00
Matias Griese
3a5d92db1f Merge remote-tracking branch 'origin/feature/blueprints-update' into feature/blueprints-update 2016-03-03 21:07:55 +02:00
Matias Griese
b040596aab Composer update (input@: false property for blueprints) 2016-03-03 21:07:44 +02:00
Djamil Legato
d95881e535 Merge branch 'feature/blueprints-update' of https://github.com/getgrav/grav into feature/blueprints-update 2016-03-03 10:56:04 -08:00
Djamil Legato
7fe50f454e Updated yamls in view of the new admin 2016-03-03 10:55:50 -08:00
Matias Griese
b58cce573a Merge remote-tracking branch 'origin/feature/blueprints-update' into feature/blueprints-update 2016-03-03 20:52:21 +02:00
Matias Griese
ed0d562a3e Remove todos from code 2016-03-03 20:52:10 +02:00
Andy Miller
76f9d85360 Merge branch 'develop' into feature/blueprints-update 2016-03-03 11:39:14 -07:00
Flavio Copes
faac7eb783 Fix issue with updating dependencies packages of type ignore, do not halt the process if not updated 2016-03-03 16:34:01 +01:00
Matias Griese
e0c579d513 Fix plugin/theme names in admin 2016-03-03 15:26:01 +02:00
Matias Griese
7e4f4319d5 Minor refactoring 2016-03-03 15:16:33 +02:00
Matias Griese
d573ebbfe3 Code review: Minor fixes and todos 2016-03-03 14:15:29 +02:00
Matias Griese
99bd25f805 Add streams support for Filesystem\Folder class 2016-03-02 20:58:34 +02:00
Matias Griese
48cabb19e7 Composer update, fixes saving pages 2016-03-02 12:50:50 +02:00
Matias Griese
30f15682e1 Merge branches 'develop' and 'feature/blueprints-update' of https://github.com/getgrav/grav into feature/blueprints-update 2016-03-02 10:13:26 +02:00
Andy Miller
c8cc861b94 Added GravTrait back to ensure 3rd party CLI plugins don't break. 2016-03-01 16:08:39 -07:00
Matias Griese
207e07876f Fix blueprints bug in bin/grav 2016-03-01 21:51:29 +02:00
Matias Griese
830cd5c172 Merge branches 'develop' and 'feature/blueprints-update' of https://github.com/getgrav/grav into feature/blueprints-update
# Conflicts:
#	composer.lock
2016-03-01 21:14:21 +02:00
Djamil Legato
e784b13bdf Minor adjustments to the repository URL for GPM 2016-03-01 10:20:27 -08:00
Matias Griese
091a727fe1 Fix plugin installation from GPM 2016-03-01 20:14:03 +02:00
Andy Miller
8a11269ccd various vendor updates 2016-03-01 10:34:50 -07:00
Andy Miller
ed68714302 updated composer 2016-03-01 10:34:34 -07:00
Matias Griese
3196122f4e Restore old blueprints from develop 2016-03-01 19:14:11 +02:00
Matias Griese
5a4fec7825 Merge branch 'develop' of https://github.com/getgrav/grav into feature/blueprints-update 2016-03-01 19:11:34 +02:00
Matias Griese
ca064d2abc Fix fatal error in GPM\Remote\Plugins|Themes 2016-03-01 15:03:12 +02:00
Matias Griese
9bdccbf2ef Merge branch 'develop' of https://github.com/getgrav/grav into feature/blueprints-update 2016-03-01 14:56:45 +02:00
Flavio Copes
cdef2e105d Fix error with self::getGrav() call 2016-03-01 13:55:41 +01:00
Matias Griese
c5c16fc24d Composer update 2016-03-01 14:55:36 +02:00
Flavio Copes
ffcfd7df6b Merge pull request #682 from getgrav/feature/dependencies
WIP - Versions in dependencies
2016-03-01 11:36:33 +01:00
Flavio Copes
0d77e31036 Changing the month, the monthize() results changed. Take that into account for tests 2016-03-01 11:33:21 +01:00
Flavio Copes
4cd0198bd7 Merge branch 'develop' into feature/dependencies 2016-03-01 11:28:20 +01:00
Flavio Copes
991e4bde8f Handle optionally uninstalling each dependency when uninstalling a package 2016-02-29 20:48:15 +01:00
Matias Griese
048ecb099a Move BlueprintForm class into toolbox 2016-02-29 20:34:33 +02:00
Flavio Copes
ff7d8a4391 Rename dependencies_versions to dependencies in tests 2016-02-29 16:40:21 +01:00
Flavio Copes
b128300439 Bump Grav version constant to 1.1.0-beta, to make use of the new repo versioning 2016-02-29 16:15:43 +01:00
Flavio Copes
072fa63067 Use the new repo versioning 2016-02-29 16:14:21 +01:00
Matias Griese
f2008135bb BlueprintForm: Fix typo 2016-02-29 14:20:12 +02:00
Matias Griese
16d532bb2e Blueprints: Fix empty values in admin fields 2016-02-29 14:17:00 +02:00
Matias Griese
7e4619e0a3 Merge branch 'develop' of https://github.com/getgrav/grav into feature/blueprints-update
# Conflicts:
#	system/src/Grav/Common/Data/Blueprint.php
#	system/src/Grav/Common/Data/Blueprints.php
#	system/src/Grav/Common/Data/Validation.php
#	system/src/Grav/Common/Plugins.php
2016-02-29 13:46:08 +02:00
Matias Griese
8f5a30cc50 Blueprints: Fix for page blueprints 2016-02-29 13:14:16 +02:00
Matias Griese
2be8de4283 BlueprintForm: Add support for dynamic fields 2016-02-26 11:32:14 +02:00
Djamil Legato
afa7d541ec Fixed notice when running through CLI 2016-02-25 17:44:17 -08:00
Djamil Legato
de8302aafa Include the current Grav version when pinging GPM server 2016-02-25 17:08:06 -08:00
Andy Miller
d43c10189b removed extraneous option 2016-02-25 11:53:34 -07:00
Flavio Copes
74e4e4d6ee Minor code improvement 2016-02-25 17:21:07 +01:00
Flavio Copes
db7da685ae Merge pull request #659 from getgrav/feature/reset-grav-every-test
Reinitialize Grav on every test
2016-02-25 17:03:06 +01:00
Flavio Copes
aa1b716469 Fix $grav property initialization in tests 2016-02-25 16:59:39 +01:00
Flavio Copes
6791244e38 Merge branch 'develop' into feature/reset-grav-every-test 2016-02-25 16:52:56 +01:00
Matias Griese
979cf2061c Redo form field reordering in BlueprintForm class 2016-02-25 17:09:50 +02:00
Flavio Copes
7c61ed384a If found, show the plugin dependent packages when uninstalling, and exit the procedure 2016-02-25 12:57:45 +01:00
Flavio Copes
385c758c77 dependencies_versions -> dependencies 2016-02-25 12:09:08 +01:00
Andy Miller
5c2318da28 handles charset in metadata 2016-02-24 15:24:21 -07:00
Andy Miller
85c8072cec Added a couple of missing cache methods - #693 2016-02-24 14:53:50 -07:00
Andy Miller
f74562987d Fix for pure URL fragment getting Url prepended - #701 2016-02-24 14:45:57 -07:00
Matias Griese
5c4c7402fa Restructure blueprint classes (incomplete) 2016-02-24 21:36:40 +02:00
Andy Miller
89fbd4c2bf Added a regex_replace twig filter/function 2016-02-24 12:07:21 -07:00
Flavio Copes
9e6ae57caa Happify linter for Grav/Console 2016-02-23 22:58:51 +01:00
Flavio Copes
6caaeedf93 Lint 2016-02-23 22:41:44 +01:00
Flavio Copes
a83b8513f4 Doc improvements 2016-02-23 22:35:51 +01:00
Flavio Copes
797e513395 Make sure version dependencies work with alpha / beta / rc versioning too 2016-02-23 22:07:56 +01:00
Andy Miller
f93dc7d8ae Merge pull request #699 from getgrav/feature/add-x-ua-compatible-to-http_equiv
Add x-ua-compatible to http_equiv processing
2016-02-23 09:01:06 -07:00
Flavio Copes
af4a1b884a Merge branch 'develop' into feature/dependencies 2016-02-23 15:43:21 +01:00
Flavio Copes
8bf0f2dbab Process available demo content after installing all packages 2016-02-23 15:43:12 +01:00
Flavio Copes
396a694005 Add x-ua-compatible to http_equiv processing 2016-02-23 15:06:33 +01:00
Matias Griese
02d2b05a47 Context is no more needed in Blueprint class 2016-02-22 19:58:43 +02:00
Matias Griese
024ae68782 Blueprints: Move duplicated extends@ logic into BlueprintForm class 2016-02-22 19:57:42 +02:00
Flavio Copes
b96e902160 Allow authentication for proxy 2016-02-22 18:18:37 +01:00
Flavio Copes
5c33bd37eb Drop debugging placeholder 2016-02-22 17:12:41 +01:00
Flavio Copes
8b2d727970 Don't reinstall packages if already installed as dependencies 2016-02-22 16:16:00 +01:00
Flavio Copes
01570baa6b Ask once if should symlinks if symlinks are setup 2016-02-22 16:15:35 +01:00
Flavio Copes
604b6f07f6 Format vars 2016-02-22 16:14:24 +01:00
Flavio Copes
6a78fa633a Rename method 2016-02-22 16:14:12 +01:00
Flavio Copes
0a5d9935b5 Drop processGit 2016-02-22 16:14:02 +01:00
Matias Griese
30b7aaf2b1 Merge branch 'develop' of https://github.com/getgrav/grav into feature/blueprints-update 2016-02-22 11:33:59 +02:00
Matias Griese
86be0b3f34 Remove deprecated import@ from Blueprint class 2016-02-22 11:33:28 +02:00
Andy Miller
f3a44e39b1 Merge pull request #695 from Vivalldi/feature/tests
Adding Tests - On going
2016-02-21 21:18:45 -07:00
Tyler Cosgrove
01af9dfc46 More TwigExtension Tests 2016-02-21 22:18:26 -05:00
Tyler Cosgrove
8051debdcc Change Monthize doc
All results turn 181 to 5 and not 6.
2016-02-21 21:22:19 -05:00
Tyler Cosgrove
bd14963992 Add more TwigExtension tests 2016-02-21 21:18:59 -05:00
Tyler Cosgrove
592fc1b471 Merge remote-tracking branch 'upstream/develop' into develop 2016-02-19 14:10:33 -05:00
Tyler Cosgrove
5ee4eafd5f More Inflector Tests 2016-02-19 14:09:43 -05:00
Flavio Copes
30640ae821 Test dependencies of dependencies 2016-02-19 19:59:59 +01:00
Flavio Copes
5c887495bf Fix tests with GpmStub 2016-02-19 19:59:54 +01:00
Flavio Copes
78864ecc03 GpmStub in test 2016-02-19 19:59:36 +01:00
Flavio Copes
2ab22e46df Cleanup 2016-02-19 19:59:18 +01:00
Flavio Copes
49f9cff9cd Fix getting the return value 2016-02-19 19:59:13 +01:00
Flavio Copes
05ec395f4d Allow a GPM stub, used for tests 2016-02-19 19:59:04 +01:00
Matias Griese
ebe46f1482 Implement import@ in BlueprintForm class 2016-02-19 20:06:41 +02:00
Andy Miller
59fc6c20e8 added a test for new Twig function 2016-02-19 10:50:54 -07:00
Andy Miller
80f9c5782a Added function to allow you to add variable key/value pairs into an array 2016-02-19 10:35:43 -07:00
Flavio Copes
9302610e8f Handle recursive dependencies 2016-02-19 13:50:08 +01:00
Matias Griese
37799fd173 Extend blueprints by using new BlueprintForm class 2016-02-19 14:49:48 +02:00
Matias Griese
17f6a9b877 Fix context on page blueprints 2016-02-19 13:43:32 +02:00
Flavio Copes
d67da7bed6 Check version only if needed 2016-02-19 11:21:29 +01:00
Matias Griese
0b53d39cdb Refactor Blueprints object creation 2016-02-19 11:56:09 +02:00
Matias Griese
989f5bb129 Fix import@ in Blueprint 2016-02-18 20:45:17 +02:00
Flavio Copes
4c7fd6866c Use the new methods in serve() to actually process the dependencies. 2016-02-18 17:39:50 +01:00
Flavio Copes
9cca14338b Use proper structure 2016-02-18 17:38:51 +01:00
Flavio Copes
a5821948e1 Add more logic to processDependencies()
- if I already have the latest release of a package, remove the
dependency
- throw an exception if a required version cannot be found in the GPM
yet
2016-02-18 17:38:28 +01:00
Flavio Copes
9a87ab1a4d Improve installDependencies()
Better output, fix flow
2016-02-18 17:36:57 +01:00
Flavio Copes
c3afb68e9a Add getLatestVersionOfPackage() to GPM 2016-02-18 17:35:32 +01:00
Flavio Copes
75ea201e31 Merge pull request #686 from Vivalldi/develop
Add InflectorTest
2016-02-18 16:31:13 +01:00
Matias Griese
1263a0bcab Always use the same Blueprint class 2016-02-18 17:09:27 +02:00
Matias Griese
931d08b46d Composer update 2016-02-18 15:40:09 +02:00
Flavio Copes
43d63f6976 Add installDependencies()
Prompts to install the dependencies of the passed type
2016-02-18 14:08:36 +01:00
Matias Griese
fb32805f69 Blueprint extend: Implement better way to extend blueprint 2016-02-18 15:06:57 +02:00
Flavio Copes
4a16fe68c3 Add an processDependencies() method to InstallCommand
Fetch the dependencies, check the installed packages and return an
array with the list of packages with associated an information on what
to do: install, update or ignore
2016-02-18 14:03:50 +01:00
Flavio Copes
eb120a2cda Drop duplicate docblock 2016-02-18 14:02:48 +01:00
Matias Griese
be297677e8 Blueprint extend: Fix extending blueprints for configuration 2016-02-18 14:16:37 +02:00
Tyler Cosgrove
1d90107a5a Fix Humanize Test 2016-02-17 18:27:40 -05:00
Tyler Cosgrove
10758eecd1 Add InflectorTest 2016-02-17 18:11:46 -05:00
Flavio Copes
0143ac22e3 Improve calculateVersionNumberFromDependencyVersion using extracted method 2016-02-17 14:33:52 +01:00
Flavio Copes
17c47889a6 Improve calculateMergedDependenciesOfPackages
Raise exceptions if two merged versions in "next significant release"
format are incompatible

Wrote appropriate tests.
2016-02-17 14:33:27 +01:00
Flavio Copes
5cdc10075a Add versionFormatIsNextSignificantRelease and versionFormatIsEqualOrHigher methods
And corresponding tests
2016-02-17 14:22:59 +01:00
Flavio Copes
b331758d9c Add checkNextSignificantReleasesAreCompatible method
Added own tests too.

Returns true if two releases are compatible by the 'next significant
release' meaning.

~1.2 is equivalent to >=1.2 <2.0.0
~1.2.3 is equivalent to >=1.2.3 <1.3.0

In short, allows the last digit specified to go up
2016-02-17 14:19:14 +01:00
Flavio Copes
503ff8d70f First step towards versions in dependencies
Add InstallCommand::calculateMergedDependenciesOfPackages and
InstallCommand::calculateVersionNumberFromDependencyVersion and
corresponding unit tests
2016-02-16 15:24:33 +01:00
Matias Griese
2ba5517d4c Merge remote-tracking branch 'origin/feature/blueprints-update' into feature/blueprints-update 2016-02-16 13:58:26 +02:00
Matias Griese
3a0a20ab97 Blueprint extend: Add blueprint special types support 2016-02-16 13:58:13 +02:00
Flavio Copes
b59cdbfdcf Lint 2016-02-15 16:53:26 +01:00
Flavio Copes
2944289544 Merge branch 'develop' into feature/dependencies 2016-02-15 16:52:57 +01:00
Flavio Copes
a683f661ed Add truncate and truncateHtml tests for input type 2016-02-15 14:39:28 +01:00
Flavio Copes
1c382a1bc6 Fix assertEquals parameters order 2016-02-15 14:39:03 +01:00
Flavio Copes
1e6e9bbbb4 Merge branch 'develop' into feature/blueprints-update 2016-02-15 10:57:01 +01:00
Matias Griese
a4c817147b Merge branches 'develop' and 'feature/blueprints-update' of https://github.com/getgrav/grav into feature/blueprints-update 2016-02-15 11:20:08 +02:00
Matias Griese
ed3c1c7b3a Blueprint extend: reverse order of the multi-extend 2016-02-15 11:19:46 +02:00
Flavio Copes
a1d0494ea2 Test adding media queries 2016-02-14 08:58:31 +01:00
Andy Miller
16889cac31 Merge pull request #671 from rkusa/patch-1
fix lighttpd config
2016-02-12 18:05:26 -07:00
Andy Miller
afc0559d68 log error on invalid slug - only when setting the value from frontmatter 2016-02-12 17:51:20 -07:00
Andy Miller
59b75a339c sort strings naturally and case insensitively #643 2016-02-12 17:36:08 -07:00
Andy Miller
7a1d9e454b Add support for custom page-level dateformat field (core only) 2016-02-12 15:33:23 -07:00
Markus Ast
788c54ea9c fix lighttpd config 2016-02-12 14:49:06 +01:00
Matias Griese
1cfc778467 Composer update 2016-02-12 09:32:38 +02:00
Matias Griese
afd680b133 Merge branch 'develop' of https://github.com/getgrav/grav into feature/blueprints-update
# Conflicts:
#	composer.lock
2016-02-12 09:32:24 +02:00
Andy Miller
3a46dc3dcd fixed some extraneous spaces 2016-02-11 18:05:05 -07:00
Andy Miller
7b6cadbeeb Merge branch 'release/1.0.10' 2016-02-11 15:37:25 -07:00
Andy Miller
0b361c3790 Merge branch 'release/1.0.10' into develop 2016-02-11 15:37:25 -07:00
Andy Miller
bf91d13222 version update 2016-02-11 15:37:14 -07:00
Andy Miller
0bd60d24b7 updated libraries 2016-02-11 15:28:57 -07:00
Andy Miller
864f14344e Add method to get contentMeta and initialize content if needed 2016-02-11 12:59:46 -07:00
Flavio Copes
b50ebba477 Merge branch 'develop' into feature/blueprints-update 2016-02-11 20:10:06 +01:00
Matias Griese
81e25e314b Hide streams blueprint from admin 2016-02-11 20:55:48 +02:00
Flavio Copes
028554dbf8 Fix languages in Grav 2016-02-11 16:27:34 +01:00
Flavio Copes
bda8de3076 Typo 2016-02-11 16:27:34 +01:00
Andy Miller
36be17617d use old cache_id mechanism for safety 2016-02-10 22:48:04 -07:00
Andy Miller
bb23f6157f Support content level meta data .. so you can store things in cache alongside content 2016-02-10 22:44:54 -07:00
Flavio Copes
39ac423bce Merge pull request #665 from gracix/Add-Language-Ja
Add Ja language file.
2016-02-09 08:23:50 +01:00
Takefumi Ota
39b1eed912 Add Ja language file. 2016-02-09 10:27:57 +09:00
Andy Miller
360286f3d4 moved build status 2016-02-06 17:53:43 -07:00
Djamil Legato
88c84ed028 Updated auth token (and kicking of unit tests) 2016-02-05 16:10:51 -08:00
Djamil Legato
f03a7ced06 Check if php version starts with 5.6 for the release 2016-02-05 15:32:51 -08:00
Andy Miller
5605b69844 Merge branch 'release/1.0.9' into develop 2016-02-05 16:00:23 -07:00
Andy Miller
652c5cd4bd Merge branch 'release/1.0.9' 2016-02-05 16:00:22 -07:00
Andy Miller
bfe3a7750e version update 2016-02-05 15:59:40 -07:00
Andy Miller
1d23d29485 Various PSR fixes 2016-02-05 12:39:04 -07:00
Andy Miller
3bec73049b Revert "use ConsoleCommand"
This reverts commit 990663cd60.
2016-02-05 12:35:32 -07:00
Andy Miller
cd7366ca8d removed unused stuff 2016-02-05 12:35:21 -07:00
Andy Miller
63812cc6b1 Use strict boolean compare 2016-02-05 12:26:29 -07:00
Andy Miller
de9b6df2c7 removed TODOs.. 2016-02-05 12:17:08 -07:00
Andy Miller
990663cd60 use ConsoleCommand 2016-02-05 12:11:57 -07:00
Andy Miller
9701908aaa updated changelog 2016-02-05 11:54:05 -07:00
Flavio Copes
49facba84a Composer update 2016-02-05 18:01:50 +01:00
Flavio Copes
7953271265 Linting fixes 2016-02-05 18:01:28 +01:00
Flavio Copes
3f3adfc5c6 Moved Parsedown tests to tests/unit/Grav/Common/Markdown/ParsedownTest.php 2016-02-05 16:59:51 +01:00
Andy Miller
b6c289067f Translations from crowdin 2016-02-04 16:22:32 -07:00
Andy Miller
1d2c1c3a29 Fixed conflict with Grav naming 2016-02-04 14:44:58 -07:00
Djamil Legato
71176f52e9 Added Slack notifications 2016-02-04 11:24:45 -08:00
Flavio Copes
03f48d56a4 Use Grav::instance() instead of using GravTrait's getGrav() method 2016-02-04 18:01:00 +01:00
Flavio Copes
79a3077fdb Cleanup 2016-02-04 14:15:30 +01:00
Flavio Copes
54f959b462 Reinitialize Grav on every test
Don't need to worry about changing configuration or pages or anything
in a test, every test method will start with a clean slate
2016-02-04 14:12:27 +01:00
Matias Griese
927ef9b8ba Form validation: Fix strict mode 2016-02-04 14:31:24 +02:00
Matias Griese
6e3d08d9d0 Form validation: Display multiple validation errors 2016-02-04 13:49:21 +02:00
Flavio Copes
0d97710ffb Merge pull request #658 from Vivalldi/develop
Add composer test command for windows
2016-02-04 09:57:37 +01:00
Tyler Cosgrove
1d65344aa5 Add composer test command for windows
Windows is dumb... gotta use those backslashes
2016-02-03 21:16:28 -05:00
Andy Miller
82a5afa732 Fixed an issue in code and in the tests for untouched image file locations 2016-02-03 12:48:22 -07:00
Andy Miller
72836982e6 various fixes for broken tests 2016-02-02 22:45:42 -07:00
Andy Miller
d12c8b10a2 Merge branch 'feature/converturl-rewrite' into develop 2016-02-02 22:02:21 -07:00
Andy Miller
b208ced437 various fixes 2016-02-02 22:01:56 -07:00
Andy Miller
c4e72819a6 various improvements to image handling .. still some places to fix 2016-02-02 18:48:39 -07:00
Andy Miller
3541ea8ec8 some fixes for image processing 2016-02-02 15:22:25 -07:00
Andy Miller
e4cda6383f Init the URI object 2016-02-02 10:34:11 -07:00
Andy Miller
3cc6700845 Init the URI object 2016-02-02 10:33:25 -07:00
Flavio Copes
36ec6ad513 Fix tests 2016-02-02 15:46:55 +01:00
Flavio Copes
aec95f3fa6 More Pages class tests 2016-02-02 15:31:46 +01:00
Flavio Copes
1fe190998c Add testing page 2016-02-02 15:31:37 +01:00
Flavio Copes
aeca73bdd3 Add "tests" stream location 2016-02-02 15:31:29 +01:00
Matias Griese
1d7fbe42d3 Blueprints: Fix form ordering in @import 2016-02-02 14:31:10 +02:00
Flavio Copes
848497774b 🎨 format and PHPDoc Twig folder 2016-02-02 11:09:22 +01:00
Matias Griese
327826542d Blueprints: Add support for importing fields (#637) 2016-02-02 11:56:12 +02:00
Andy Miller
1d440035a4 Added some language tests 2016-02-01 22:53:24 -07:00
Andy Miller
51104a1d55 Added language support to the initializeFromUrl() method 2016-02-01 22:53:13 -07:00
Andy Miller
6222b22e2a Added a root-level test 2016-02-01 19:55:22 -07:00
Andy Miller
b332e497ab reordered 2016-02-01 19:44:55 -07:00
Andy Miller
75419120be fix for externals with absolute_urls enabled 2016-02-01 19:44:43 -07:00
Andy Miller
94feeac119 fixed a conflict with environment and host 2016-02-01 19:20:03 -07:00
Andy Miller
cf058bb662 bit more progress on links.. images are fubar though 2016-02-01 18:59:58 -07:00
Andy Miller
1e56e92502 Merge branch 'release/converturl_rewrite' into feature/converturl-rewrite 2016-02-01 18:32:52 -07:00
Andy Miller
2025e7c28a most page links working 2016-02-01 18:31:48 -07:00
Djamil Legato
1d08090560 Use more reliable and cross server $_SERVER to retrieve the accepted content type 2016-02-01 16:45:13 -08:00
Djamil Legato
485df7517d Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-02-01 16:39:04 -08:00
Djamil Legato
2a4030e399 Whoops: Serve JSON errors when the Content-Type Request is application/json, rather than blindly rely only on HTTP_X_REQUESTED_WITH 2016-02-01 16:38:58 -08:00
Andy Miller
5743d7e048 commented out some root level test failures that need to be addressed 2016-02-01 13:52:24 -07:00
Djamil Legato
3b8da60cf9 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-02-01 12:26:08 -08:00
Djamil Legato
49a7b11e2b Travis potential fix for PRs and tests runner 2016-02-01 12:26:03 -08:00
Andy Miller
e5d255accd Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-02-01 11:23:02 -07:00
Andy Miller
0e6bf74db1 renamed and added some more tests 2016-02-01 11:22:53 -07:00
Matias Griese
9024d0f3e3 Composer update 2016-02-01 20:16:50 +02:00
Matias Griese
f0a802d2e1 Merge branch 'develop' of https://github.com/getgrav/grav into feature/blueprints-update 2016-02-01 20:14:23 +02:00
Flavio Copes
9d67f1ac33 Fix assertSame param order 2016-02-01 18:55:33 +01:00
Flavio Copes
8c738d0687 Merge pull request #651 from Vivalldi/develop
Server config updates
2016-02-01 18:02:07 +01:00
Tyler Cosgrove
7d35475104 LICENSE renamed to LICENSE.txt 2016-02-01 11:48:12 -05:00
Tyler Cosgrove
1f5641069b Merge pull request #1 from getgrav/develop
Sync Fork
2016-02-01 11:44:48 -05:00
Flavio Copes
f8eeac70a2 Only initialize new pages location once in tests 2016-02-01 17:19:52 +01:00
Flavio Copes
1279cb4ef3 Add Unit module available methods for future usage 2016-02-01 17:19:34 +01:00
Flavio Copes
2934157fb4 Add pages content 2016-02-01 15:18:35 +01:00
Flavio Copes
ddaca8a312 Merge pull request #652 from getgrav/feature/fix-testing-separate-pages-folder
Fix testing separate pages folder
2016-02-01 15:08:48 +01:00
Flavio Copes
57cd5c9e6f Add second set of pages to test 2016-02-01 14:37:19 +01:00
Flavio Copes
31940c03b1 Disable system cache 2016-02-01 14:33:31 +01:00
Matias Griese
e223b506cb Blueprints: Add alternative syntax for extends@: parent@ 2016-02-01 10:30:53 +02:00
Matias Griese
8bc4d1e460 Implement Blueprints::extend() 2016-02-01 10:03:25 +02:00
Andy Miller
56f267ec79 reordered tests 2016-01-31 22:09:27 -07:00
Andy Miller
5f6b09b032 fixed a markdown test 2016-01-31 21:54:57 -07:00
Andy Miller
7de21b1f52 went back to dev-master of Parsedown until release 2016-01-31 21:54:08 -07:00
Andy Miller
9c0deea6c8 added some tests that test various URL and subduer scenarios 2016-01-31 19:06:00 -07:00
Andy Miller
62dbf9b02b Initiate the Uri->init() in bootstrap stage 2016-01-31 19:05:37 -07:00
Andy Miller
0ddfd4c546 value is getting overridden so not needed here 2016-01-31 19:05:15 -07:00
Andy Miller
5abb4060f3 moved grav-based base_uri values into Uri->init() 2016-01-31 19:04:58 -07:00
Tyler Cosgrove
9ba4ced65d Extensive update.
Simplify a few blocks into one.
2016-01-31 12:02:41 -05:00
Tyler Cosgrove
49c4dd197e Deny access to tests folder 2016-01-31 11:48:53 -05:00
Tyler Cosgrove
3d830fb608 Deny access to tests folder 2016-01-31 11:47:53 -05:00
Tyler Cosgrove
47b5cd7db7 Deny access to tests folder 2016-01-31 11:46:43 -05:00
Flavio Copes
d4aeb8e223 Merge pull request #640 from Vivalldi/patch-2
Fix for #612
2016-01-31 15:27:46 +01:00
Flavio Copes
c76be3c4dd Merge pull request #649 from Vivalldi/patch-3
Change user to USER - Easy to note replacement
2016-01-31 15:27:08 +01:00
Tyler Cosgrove
b17a3780ab Change user to USER - Easy to note replacement
Primarily going to be used for install script but it makes it more apparent that someone may need to change their root path.
2016-01-30 18:15:28 -05:00
Flavio Copes
b612347ee7 🚧 Drop unneeded pages unset. Remove second set of pages test, currently not working 2016-01-30 12:20:07 +01:00
Andy Miller
06a76579db more tests 2016-01-30 00:06:15 -07:00
Andy Miller
13db4025b6 reset the pages 2016-01-29 21:32:34 -07:00
Andy Miller
07fa7da920 renaming some tests 2016-01-29 21:32:16 -07:00
Andy Miller
0be127eda7 Merge branch 'feature/page_level_ssl' into develop 2016-01-29 17:40:48 -07:00
Andy Miller
fe01f29872 slug and directory relative links 2016-01-29 17:40:20 -07:00
Andy Miller
a1dca420e4 More progress with tests using page references. 2016-01-29 17:32:44 -07:00
Djamil Legato
2585512946 Typo 2016-01-29 13:33:57 -08:00
Andy Miller
7a1e10ee13 Merge branch 'develop' into feature/page_level_ssl 2016-01-29 14:33:39 -07:00
Andy Miller
99c16d5514 fixes for merge 2016-01-29 14:31:57 -07:00
Djamil Legato
ee99cb7990 Disable xdebug only on non hhvm envs 2016-01-29 13:30:26 -08:00
Djamil Legato
c2fb252a6e Disable xdebug on Travis 2016-01-29 13:27:43 -08:00
Djamil Legato
7d00941876 Updated hipchat notification 2016-01-29 13:23:02 -08:00
Djamil Legato
db59caa764 Added automatic Unit Tests runner in Travis 2016-01-29 12:34:52 -08:00
Djamil Legato
4218e3f81b Removed extra quotes 2016-01-29 12:10:47 -08:00
Djamil Legato
11a14aed76 Updated composer.lock 2016-01-29 12:06:42 -08:00
Djamil Legato
ae3ca8aa2d 😱 Fixed missing variable 2016-01-29 10:26:27 -08:00
Djamil Legato
0bce4a95b7 Refractored Metadata generator. [BC included]
Metadata are now only flat array. To use social metas, such as open graph, specify the key property with the separator in it (ie, 'og:title'). Grav will automatically treat it as social media and render with both `property` and `name`.
Any other meta will be regularly treated as `name` (ie, 'title' or 'description')
2016-01-29 10:13:14 -08:00
Flavio Copes
60ab5cefd0 🚧 Reset instances, children and routes properties in Pages::init() prior to calling buildPages()
Useful when calling Pages::init() multiple times, or the properties are
never reset and the subsequent buildPages() calls fail
2016-01-29 18:32:52 +01:00
Flavio Copes
793f14c3e0 📚 PHPDoc 2016-01-29 18:32:52 +01:00
Flavio Copes
bb1e49dd8e Return $this in Page constructor and Page::init() to allow method chaining 2016-01-29 18:32:52 +01:00
Flavio Copes
4108c7710b First Pages testing in place with first simple site stub structure provided under tests/fake 2016-01-29 18:32:52 +01:00
Flavio Copes
3fb684d608 🚧 Add error log for tests 2016-01-29 18:32:52 +01:00
Flavio Copes
e2d00bec41 Add tear down method 2016-01-29 18:32:52 +01:00
Flavio Copes
aa4fb96b8b Drop generated files, ignored 2016-01-29 18:32:52 +01:00
Flavio Copes
c307f63e1f Cleanup tests 2016-01-29 18:32:52 +01:00
Flavio Copes
1494247c85 Tests code cleanup 2016-01-29 18:32:52 +01:00
Andy Miller
d6b8ae6297 Merge branch 'develop' into feature/page_level_ssl
# Conflicts:
#	system/src/Grav/Common/Markdown/ParsedownGravTrait.php
#	system/src/Grav/Common/Uri.php
2016-01-29 10:30:47 -07:00
Matias Griese
233af34bdc Add missing parameter after merge 2016-01-29 14:24:48 +02:00
Matias Griese
b3a8a66c0e Merge branches 'develop' and 'feature/blueprints-update' of https://github.com/getgrav/grav into feature/blueprints-update
# Conflicts:
#	system/src/Grav/Common/Plugins.php
#	system/src/Grav/Common/Themes.php
2016-01-29 13:43:37 +02:00
Andy Miller
d3202b3210 Merge branch 'feature/proxy_support' into develop 2016-01-28 10:37:06 -07:00
Andy Miller
a08b5a1863 Added proxy_url to config blueprints 2016-01-28 10:34:50 -07:00
Andy Miller
1f75e014d3 added example 2016-01-28 10:30:24 -07:00
Flavio Copes
19891408db 🎨 Code cleanup and PHPDoc 2016-01-28 17:33:23 +01:00
Flavio Copes
57c4f13e53 🎨 PHPDoc 2016-01-28 17:13:19 +01:00
Flavio Copes
4854c72cbb 🐛 Fix typo 2016-01-28 13:51:07 +01:00
Flavio Copes
d440739b8b 🎨 Adjust spacing and PHPDoc 2016-01-28 13:32:18 +01:00
Flavio Copes
2d49054a95 🎨 Fix spacing and code formatting 2016-01-28 11:34:33 +01:00
Flavio Copes
2fb22d813f 🎨 Fix spacing and code formatting 2016-01-28 11:21:17 +01:00
Flavio Copes
6c02bf0c70 🎨 Fix spacing and code formatting 2016-01-28 11:20:26 +01:00
Flavio Copes
172600415d 🎨 Fix spacing and code formatting 2016-01-28 11:18:17 +01:00
Flavio Copes
c55b032928 🎨 Fix spacing and code formatting 2016-01-28 11:11:54 +01:00
Flavio Copes
1d79ef60c3 🎨 PHPDoc and type hints, code style 2016-01-28 10:59:49 +01:00
Flavio Copes
e279817839 🐛 Lookup the correct property for the home route 2016-01-28 10:59:22 +01:00
Flavio Copes
c8983bf7db 🎨 PHPDoc 2016-01-28 10:35:34 +01:00
Flavio Copes
ab5233032d 🎨 Correct inflector method call 2016-01-28 10:31:14 +01:00
Flavio Copes
535e3c982d 🎨 PHPDoc and coding style 2016-01-28 10:29:56 +01:00
Flavio Copes
2d5f721301 🎨 Improve type hints and coding style 2016-01-28 09:52:30 +01:00
Andy Miller
5c746f869a fix for curl 2016-01-27 17:45:58 -07:00
Andy Miller
4485aa3109 remove tests folder when running 'clean' command 2016-01-27 17:17:29 -07:00
Andy Miller
b8437fbd01 Added support for proxy_url to enable GPM behind proxy servers #639 2016-01-27 17:15:39 -07:00
Andy Miller
7e20ef5dd6 Added start of Markdown tests 2016-01-27 15:49:52 -07:00
Andy Miller
04116b3a37 don't process links on special protocols 2016-01-27 14:00:45 -07:00
Andy Miller
086f791c9f removed block shortcode handler, moved to shortcode-core plugin 2016-01-27 14:00:17 -07:00
Andy Miller
86c22c2e29 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-01-27 11:45:46 -07:00
Andy Miller
95241da47c don't iterate over empty redirects/routes 2016-01-27 11:45:41 -07:00
Andy Miller
683b8a2848 if an empty string is passed to array, return null 2016-01-27 11:45:18 -07:00
Andy Miller
8dbe06941c comment out default routes/aliases from system/config/site.yaml 2016-01-27 11:44:46 -07:00
Tyler Cosgrove
af2e416ea1 Fix for #612 2016-01-27 13:25:42 -05:00
Flavio Copes
e576b05078 🎨 Add use statements. Add docblocks. Improve code readability and type hints 2016-01-27 15:57:39 +01:00
Flavio Copes
78c6d60655 🎨 Fix the return type for better type hinting 2016-01-27 15:49:14 +01:00
Flavio Copes
cbb1cc2b85 Test using Streams in Assets::addDir() 2016-01-27 12:09:04 +01:00
Flavio Copes
8a3636d10f 🐛 Fix Assets::addDir() (add addCssDir/addJsDir) to work as expected
Was looking up assets in the /assets folder, which is reserved for
Grav-compiled assets.

Now
- Looks up paths from the Grav ROOT_DIR or from a stream location
- Internally uses Assets::addJs() and Assets::addJs() instead of
directly accessing the assets arrays
- Removed the file extension determination effort already done in
Assets::add(), use Assets::add() instead
2016-01-27 12:08:41 +01:00
Flavio Copes
2721e681ef Test Assets::addDirCss(), Assets::addDirJs(), Assets::addDir() 2016-01-27 11:46:53 +01:00
Flavio Copes
8a41b2e08d 🎨 Move similar methods near each other. 2016-01-27 11:23:48 +01:00
Flavio Copes
dec78b9cbd Test Assets::resetJs() and Assets::resetCss()
Also fix closing parentheses. Added PHPDoc
2016-01-27 10:51:04 +01:00
Flavio Copes
7ab75811ad 📚 Drop old link in README 2016-01-27 10:27:49 +01:00
Flavio Copes
15043e1a11 🐛 In Assets::reset() also reset the inline CSS and inline JS arrays 2016-01-27 10:27:24 +01:00
Flavio Copes
4ef5236a53 Test Assets::registerCollection() 2016-01-27 10:26:03 +01:00
Flavio Copes
2a06cfc5e2 Test Assets::reset() 2016-01-27 10:25:53 +01:00
Flavio Copes
60876f2f09 Test Assets::exists() 2016-01-27 10:24:57 +01:00
Flavio Copes
74fdca79f0 Test Assets::getCollections() 2016-01-27 10:24:47 +01:00
Flavio Copes
c3c7c78e46 Test Assets::getCss() and Assets::getJs() 2016-01-27 09:25:07 +01:00
Andy Miller
24a5c2c03c Fix for #610 when you have an array of just empty string [''] 2016-01-26 21:34:36 -07:00
Andy Miller
9113c86196 Add other method signature items to internal lookup hash 2016-01-26 17:35:16 -07:00
Andy Miller
06b993181c typo in buildRootPath() after refactor 2016-01-26 17:34:38 -07:00
Andy Miller
a579544130 Missed one error 2016-01-26 15:09:31 -07:00
Andy Miller
a8bfa88cac Fix URITest with static methods 2016-01-26 15:08:52 -07:00
Matias Griese
2742f333aa Merge branches 'develop' and 'feature/blueprints-update' of https://github.com/getgrav/grav into feature/blueprints-update
# Conflicts:
#	composer.lock
2016-01-26 20:39:08 +02:00
Matias Griese
b6329b1964 Blueprint refactor: Code style 2016-01-26 20:38:13 +02:00
Andy Miller
d1b24d0077 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2016-01-26 11:25:14 -07:00
Andy Miller
8d93df1633 updated lock file 2016-01-26 11:24:54 -07:00
Flavio Copes
ef095d4fc0 📚 Drop IRC, add link to gitter 2016-01-26 19:23:58 +01:00
Andy Miller
1df6173041 Merge pull request #588 from getgrav/feature/introduce-testing
Introduce testing
2016-01-26 10:54:15 -07:00
Andy Miller
fb50c4a4f0 Merge pull request #623 from getgrav/feature/fix-loading-js-and-css-from-collections
Fix loading js and css from collections
2016-01-26 10:53:49 -07:00
Flavio Copes
febe3123dd Use new jQuery filename 2016-01-26 18:02:27 +01:00
Flavio Copes
23ad20ed13 Test addAsyncJs addInlineCss, addInlineJs 2016-01-26 18:02:03 +01:00
Flavio Copes
bce084841e Ⓜ️ Merge branch 'develop' into feature/introduce-testing 2016-01-26 17:36:12 +01:00
Flavio Copes
172236e58d 🚧 Rename jquery-2.2.0.min.js to jquery-2.x.min.js
When stored in the user config, configuration for collections might
still reference old shipped releases. We move to jquery-2.x.min.js for
all future 2.x releases, and we'll have a jquery-3.x.min.js when it's
shipped.
2016-01-26 13:24:29 +01:00
Flavio Copes
b848f98481 🆙 Update Twig to 1.24. Up composer.lock 2016-01-26 13:06:28 +01:00
Djamil Legato
a69e7ee7cf 🔙 Restored jQuery 2.1.4 for Backward Compatibility 2016-01-25 10:52:32 -08:00
Flavio Copes
e5493573d5 🐛 Also accept a single group as a string instead of requiring an array
In addition to

```yaml
groups:
  - a-group
```

also accept

```yaml
groups: a-group
```

syntax.
2016-01-25 17:11:09 +01:00
Flavio Copes
bdbc14b9c1 🐛 If a user belongs to more than one group, if one group gives us a permission we end the loop and take that permission for granted 2016-01-25 16:40:05 +01:00
Flavio Copes
f82b40ef49 Merge branch 'develop' into feature/fix-loading-js-and-css-from-collections 2016-01-25 09:34:01 +01:00
Flavio Copes
7958db6a17 Merge branch 'develop' into feature/introduce-testing 2016-01-25 09:07:00 +01:00
Andy Miller
ed8cd7f30e Merge pull request #632 from robwent/develop
fix for #631
2016-01-24 20:41:16 -07:00
Robert Went
43f11f5d49 Removing bat's for pull 2016-01-25 02:36:45 +00:00
Robert Went
5a1fa1025d fixes #631 2016-01-25 02:26:24 +00:00
Robert Went
879f0815cb Merge branch 'develop' of https://github.com/robwent/grav into develop 2016-01-25 02:24:52 +00:00
Robert Went
bff84ae8d5 makes cli commands available on windows machines from site root 2016-01-25 02:24:24 +00:00
Andy Miller
4e0db8e540 Merge pull request #622 from getgrav/feature/fix-Append-URL-extension-home-link
Remove any URL extension for the home link
2016-01-24 18:36:03 -07:00
Andy Miller
85ff412768 Merge pull request #624 from getgrav/feature/update-jquery
Update jQuery to 2.2.0
2016-01-24 18:35:37 -07:00
Andy Miller
2b695a985d Merge pull request #630 from getgrav/feature/drop-useless-default-hash-fallback
💫 Drop useless hash fallback, as we always have a system.security.default_hash set
2016-01-24 18:29:59 -07:00
Flavio Copes
a1a75954ae 💫 Drop useless hash fallback, as we always have a system.security.default_hash set 2016-01-24 21:15:07 +01:00
Flavio Copes
c8a5e846c1 Fix permissions when the user has no access level set at all 2016-01-24 20:50:47 +01:00
Matias Griese
e3e47717c6 Blueprint refactor: Composer update 2016-01-22 21:44:23 +02:00
Flavio Copes
515f257ee3 Update jQuery to 2.2.0 2016-01-22 18:25:24 +01:00
Flavio Copes
71795fd775 Add tests/_support/_generated/* and tests/cache/* to .gitignore 2016-01-22 18:10:06 +01:00
Matias Griese
a69116738f Blueprint refactor: Fix Blueprint validation 2016-01-22 14:47:05 +02:00
Matias Griese
f87887920a Blueprint refactor: Fix Blueprint::checkRequired() 2016-01-22 14:39:32 +02:00
Flavio Copes
8cda9a08da Improve Assets class code style 2016-01-22 13:10:33 +01:00
Flavio Copes
684503245c Call addCss & addJs instead of add(), as otherwise it will lose group and loading information 2016-01-22 12:59:22 +01:00
Matias Griese
7760f541fb Blueprint refactor: Fix page blueprints 2016-01-22 13:04:32 +02:00
Matias Griese
4f73fd62c9 Blueprint refactor: Fix missing dynamic properties 2016-01-22 12:49:19 +02:00
Flavio Copes
77c8458fbf 🐛 Fix addJs and addCSS problem
Changes supported by tests in
https://github.com/getgrav/grav/commit/27af9432e0fa9a7abb2b6a2e3f3a6f6d1
55a37e9
2016-01-22 10:43:41 +01:00
Flavio Copes
7f7ba5306d Add test info to readme 2016-01-22 10:39:36 +01:00
Flavio Copes
612e2126ee 🚨 Initialize assets in tests 2016-01-22 10:39:24 +01:00
Flavio Copes
dd43b3b7da 🚨 Remove acceptance test example 2016-01-22 10:39:15 +01:00
Flavio Copes
27af9432e0 🚨 Added a bunch of tests to make sure Assets addJs and addCSS works as expected 2016-01-22 10:38:56 +01:00
Matias Griese
80d0c2a405 Blueprint refactor: fix theme thumbnails 2016-01-22 10:07:40 +02:00
Flavio Copes
774cf2d6d0 Recreated an issue in calling with an array of values {% do assets.addJs('jquery', {'loading':'async'}) %} introduced in d5bd99b363 2016-01-22 00:09:14 +01:00
Flavio Copes
8270edbc78 Fix loading js and css from collections
Calling add() lose information on

- CSS: $group
- JS: $loading, $group
2016-01-21 21:24:26 +01:00
Matias Griese
b791e8efda Blueprint refactor: fix site blueprint 2016-01-21 15:38:12 +02:00
Matias Griese
130d039101 Merge branch 'feature/plugin-early' of https://github.com/getgrav/grav into feature/blueprints-update 2016-01-21 14:11:09 +02:00
Matias Griese
ebee88dd39 Update blueprints object version 2016-01-21 14:00:54 +02:00
Matias Griese
ad25462bd5 Merge branches 'develop' and 'feature/plugin-early' of https://github.com/getgrav/grav into feature/plugin-early
# Conflicts:
#	composer.lock
2016-01-21 13:58:48 +02:00
Flavio Copes
563a990f0d Also continue to handle Whoops 2.0.0-alpha if installed 2016-01-21 12:51:26 +01:00
Flavio Copes
b248b39dc7 Add test script to composer 2016-01-21 12:41:32 +01:00
Flavio Copes
a9ec2af342 Remove any URL extension for the home link 2016-01-21 12:31:20 +01:00
Flavio Copes
1fdc34b43c PHPdoc 2016-01-21 12:07:28 +01:00
Flavio Copes
11dc04262b Fix Whoops APIs after updating Whoops to 2.0 2016-01-21 11:01:44 +01:00
Matias Griese
5e4070188b Merge branch 'feature/plugin-early' of https://github.com/getgrav/grav into feature/blueprints-update 2016-01-21 11:18:11 +02:00
Matias Griese
5c08439633 Update composer requirement for toolbox 2016-01-21 11:17:31 +02:00
Matias Griese
e686472eeb Merge branches 'develop' and 'feature/plugin-early' of https://github.com/getgrav/grav into feature/plugin-early 2016-01-21 11:15:22 +02:00
Matias Griese
152a3c4943 Merge branch 'develop' of https://github.com/getgrav/grav into feature/blueprints-update 2016-01-21 10:53:45 +02:00
Flavio Copes
82a4176816 Merge pull request #616 from Vivalldi/patch-2
Update Whoops to latest
2016-01-21 09:49:28 +01:00
Matias Griese
9a4830808d Refactor Blueprints class 2016-01-21 10:11:57 +02:00
Flavio Copes
722bc3e74b More testing for assets 2016-01-20 11:35:40 +01:00
Flavio Copes
1616fadfe9 Started testing assets 2016-01-20 10:55:31 +01:00
Flavio Copes
71e8ba44fc Test Composer class 2016-01-20 09:21:15 +01:00
Andy Miller
e801c8f44e Added support for absolute_urls: true and page level ssl 2016-01-19 15:48:18 -07:00
Andy Miller
4fa04f6eec added scheme to URI 2016-01-19 15:46:09 -07:00
Andy Miller
f308587624 add SSL page variable and also force include_host if absolute_urls: true 2016-01-19 15:45:51 -07:00
Tyler Cosgrove
8406802a05 Change to next significant release 2016-01-19 14:46:30 -05:00
Tyler Cosgrove
778ae8aced Update Whoops to latest
Should have line highlights.
2016-01-19 14:15:12 -05:00
Flavio Copes
49dd8b3c9d Cleanup 2016-01-19 14:16:15 +01:00
Flavio Copes
1ecd4bfd5a Add Browser test 2016-01-19 14:16:06 +01:00
Flavio Copes
235b7e5ff3 Document Browser 2016-01-19 13:49:39 +01:00
Flavio Copes
68c582a02a Use unused $locator var 2016-01-19 13:38:03 +01:00
Flavio Copes
d0ef86c9a8 Remove unused variables 2016-01-19 13:37:56 +01:00
Flavio Copes
9c89f55274 Merge branch 'develop' into feature/introduce-testing 2016-01-19 13:30:40 +01:00
Flavio Copes
26434d26fe Finish Uri testing with test of Uri::addNonce() 2016-01-19 13:27:50 +01:00
Flavio Copes
d237a1e037 Test Uri::buildUrl() 2016-01-19 13:19:19 +01:00
Flavio Copes
6c7a1b335b Improve test 2016-01-19 13:17:45 +01:00
Flavio Copes
ad65816c35 Fix case 2016-01-19 13:17:36 +01:00
Flavio Copes
ed28a5dc62 Test Uri::referrer(), Uri::ip(), Uri::isExternal(), Uri::currentPage(), Uri::rootUrl(), Uri::base(), Uri::basename() 2016-01-19 13:17:16 +01:00
Flavio Copes
9fee3d4c59 Test Uri::environment() 2016-01-19 13:16:15 +01:00
Flavio Copes
0349169097 Add utility method 2016-01-19 13:15:55 +01:00
Flavio Copes
09e1c844f4 Ensure consistency in port handling, always set as string and not as integer 2016-01-19 11:38:06 +01:00
Flavio Copes
9b1b69fcae Test Uri::port() 2016-01-19 11:37:46 +01:00
Flavio Copes
4dd57daec0 Test Uri::host() 2016-01-19 11:37:35 +01:00
Flavio Copes
7813d18b1b Test Uri::extension() 2016-01-19 11:37:25 +01:00
Flavio Copes
f35bff4f59 Test Uri::path() 2016-01-19 11:37:14 +01:00
Flavio Copes
fd47620817 Test Uri::url() 2016-01-19 11:37:01 +01:00
Flavio Copes
b949b512e2 Test Uri::param() 2016-01-19 11:18:22 +01:00
Andy Miller
00aefa50ed Merge pull request #609 from getgrav/feature/drop-password-compat
Remove ircmaxell/password-compat as it's intended to provide forward compatibility for PHP 5.4
2016-01-18 21:51:50 -07:00
Flavio Copes
1a5abcbcbc Test Uri paths(), route(), query(), params() 2016-01-18 14:29:50 +01:00
Flavio Copes
90568da797 Fix setting port 2016-01-18 13:30:06 +01:00
Flavio Copes
2035a9a800 More testing 2016-01-18 11:17:17 +01:00
Flavio Copes
d29bc41ae7 Formatting 2016-01-18 11:17:12 +01:00
Flavio Copes
25637defa8 Set default port if not set 2016-01-18 11:17:04 +01:00
Flavio Copes
82616b9891 Return self instance in initializeWithUrl() to allow chaining method calls 2016-01-18 11:16:49 +01:00
Flavio Copes
067f75389b Fix reset after recent merge 2016-01-18 10:09:01 +01:00
Flavio Copes
0e6132800e Merge branch 'develop' into feature/introduce-testing 2016-01-18 09:59:52 +01:00
Flavio Copes
0a76e46d8f Remove ircmaxell/password-compat as it's intended to provide backward compatibility for PHP 5.4
However, it will still be installed in `vendor` as required by
`rockettheme/toolbox`
2016-01-17 20:40:45 +01:00
Andy Miller
77d4925f38 Added shortcode square brackets to grav trait 2016-01-16 17:54:43 -07:00
Flavio Copes
e1f95b54d5 Initial testing on the Uri class. Test the new validateHostname() method and tests initializeWithUrl() with some url examples 2016-01-15 21:47:05 +01:00
Flavio Copes
092989cdd0 Some internal rework of the Uri class
- Reworked constructor in methods
- Aded a Uri::initializeWithUrl() method that takes care of
initializing the internal state based on the passed URL
- Ensure Uri::query() does not crash if the internal variable is not an
array but `null`
2016-01-15 21:46:18 +01:00
Flavio Copes
27ab57eede Drop access to tests folder 2016-01-15 17:34:21 +01:00
Flavio Copes
e80a17540c Merge pull request #605 from getgrav/feature/modular-page-modified-date
The date for the last update of a page that is modular is the update time of the module that was last modified
2016-01-15 13:19:51 +01:00
Flavio Copes
72fb77894e Merge pull request #608 from hacklab01/patch-1
Update hr.yaml
2016-01-15 13:00:11 +01:00
Flavio Copes
70f8707b04 Blueprint for New Folder modal 2016-01-15 12:54:28 +01:00
v3d
0d33a1d479 Update hr.yaml
Update MONTHS_OF_THE_YEAR and DAYS_OF_THE_WEEK
2016-01-15 12:40:58 +01:00
Andy Miller
5d38e60076 Enhanced the bin/gpm info CLI command with CHANGELOG support - #559 2016-01-14 17:21:54 -07:00
Matias Griese
431f538536 Fix bug in Data:extra() 2016-01-14 12:59:48 +02:00
Andy Miller
fc08cb8e52 Updated Twig library 2016-01-13 17:43:19 -07:00
Andy Miller
d65ec29408 Moved logic into page recurse where pages are already recursed and use collection() 2016-01-13 17:42:56 -07:00
Andy Miller
758ef2313a Merge branch 'feature/fix-hide-home-in-urls-second-level-childs' into develop 2016-01-13 17:09:03 -07:00
Matias Griese
a118824cf5 Allow plugins to have their own blueprints 2016-01-13 11:00:53 +02:00
Andy Miller
479e73e950 Some optimizations/cleanup on CLI commands 2016-01-12 10:04:27 -07:00
Matias Griese
af6e352083 Fix stream override ordering 2016-01-12 11:59:45 +01:00
Matias Griese
5786530cda Fix stream override ordering 2016-01-12 12:53:54 +02:00
Flavio Copes
7e5b60917b Add ext-* to composer 2016-01-12 11:19:23 +01:00
Andy Miller
3695ff3d03 Some optimizations/cleanup on CLI commands 2016-01-11 18:45:07 -07:00
Andy Miller
be2af197c3 Allow twig_vars to be exposed earlier and merged later 2016-01-11 16:18:57 -07:00
Matias Griese
9d983e7486 Feature: Load plugins early 2016-01-11 19:56:18 +02:00
Flavio Copes
acbbc723eb Add explanation on running tests in the readme 2016-01-10 19:22:23 +01:00
Flavio Copes
7c7df2240b Add first UI test example 2016-01-10 19:10:52 +01:00
Flavio Copes
c43f253805 Fix testPathPrefixedByLangCode test 2016-01-10 19:10:32 +01:00
Flavio Copes
756e2cf0c3 Fix spacing 2016-01-10 19:10:21 +01:00
Matias Griese
6087e786f5 Merge remote-tracking branch 'origin/develop' into develop 2016-01-10 17:19:30 +02:00
Matias Griese
9fa5681a4f Split configuration setup into 2 stages 2016-01-10 17:19:18 +02:00
Flavio Copes
182b6977bd The date for the last update of a page that is modular is the update time of the module that was last modified 2016-01-10 15:03:50 +01:00
Flavio Copes
3da7079777 Fix default generator metadata 2016-01-10 13:23:35 +01:00
Flavio Copes
992f99190b Merge pull request #604 from getgrav/feature/avoid-setting-empty-metadata
Avoid setting empty metadata
2016-01-09 23:40:42 +01:00
Flavio Copes
dfee5fdea9 Avoid setting empty metadata 2016-01-09 23:34:31 +01:00
Flavio Copes
aa9b735a50 Return the parent routes in the route options.
Added a Pages::parentsRawRoutes() method, uses the same internal method
as Pages::parents().

Refactored Pages::getList() to accept an optional $rawRoutes bool and
if set, return the raw routes
2016-01-09 20:45:06 +01:00
Andy Miller
9a3005e3c5 Added a reverse_proxy config option and use it to skip setting ports when enabled 2016-01-08 16:35:33 -07:00
Andy Miller
92ea756d91 fixed changelog typo 2016-01-08 16:34:19 -07:00
Andy Miller
b48449d782 Merge branch 'release/1.0.8' 2016-01-08 15:31:33 -07:00
Andy Miller
5e84ca35f2 Merge branch 'release/1.0.8' into develop 2016-01-08 15:31:33 -07:00
Andy Miller
ee20bf70e0 version update 2016-01-08 15:31:23 -07:00
Andy Miller
8cb098c6e0 Removed IP stuff from nonce.. just too many scenarios where it causes problems. going to rely on session_id() for the uniqueness. 2016-01-08 15:28:03 -07:00
Andy Miller
3054a67078 Added rotate, flip and fixOrientation to available image methods 2016-01-07 18:49:09 -07:00
Andy Miller
8ca14c7c65 Merge branch 'release/1.0.7' 2016-01-07 14:21:56 -07:00
Andy Miller
6e2d9ca3cc Merge branch 'release/1.0.7' into develop 2016-01-07 14:21:56 -07:00
Andy Miller
eff72b73ab version update 2016-01-07 14:21:48 -07:00
Andy Miller
eb29d68958 Safety check for array of nonces 2016-01-07 14:10:58 -07:00
Andy Miller
e0632dee09 Merge branch 'release/1.0.7' into develop 2016-01-07 13:27:02 -07:00
Andy Miller
4549574908 Merge branch 'release/1.0.7' 2016-01-07 13:27:01 -07:00
Andy Miller
0866a62a1f version update 2016-01-07 13:26:53 -07:00
Andy Miller
1a7fd382a9 Merge branch 'feature/https_gpm_urls' into develop 2016-01-07 13:23:43 -07:00
Flavio Copes
c772c2d4ad Finish up Utils testing 2016-01-07 17:38:25 +01:00
Flavio Copes
e47ac59860 Add fake HTTP_CLIENT_IP for command line use 2016-01-07 17:38:16 +01:00
Flavio Copes
4f003bb5fa Add missing phpdoc to Utils 2016-01-07 16:47:40 +01:00
Flavio Copes
74c1e7473a Fix docblock 2016-01-07 14:34:21 +01:00
Flavio Copes
51d2724dfd Return false if the string is less than 4 chars, it cannot contain the lang code. Prevents error in the method 2016-01-07 14:34:13 +01:00
Flavio Copes
5fefa85f4a More tests 2016-01-07 14:33:18 +01:00
Flavio Copes
e8a935570b More tests 2016-01-07 13:58:47 +01:00
Flavio Copes
ce71168ed9 Merge branch 'develop' into feature/introduce-testing 2016-01-07 13:03:06 +01:00
Flavio Copes
cdc96ca574 Improve comment messages for temporary nonce methods 2016-01-07 11:59:40 +01:00
Andy Miller
d121aa3415 Use https for GPM rather than http 2016-01-06 21:54:43 -07:00
Djamil Legato
6aaeb9e1f1 Fixed typo 2016-01-06 16:24:11 -08:00
Andy Miller
fa39629104 changelog updates 2016-01-06 17:10:00 -07:00
Andy Miller
9e13593c11 Merge pull request #592 from getgrav/feature/fix-nonces-ips
Fix nonces for proxied IPs
2016-01-06 15:47:21 -07:00
Flavio Copes
0b3970d7c1 Restore old generateNonceString in generateNonceStringOldStyle 2016-01-06 23:43:18 +01:00
Flavio Copes
95c09f2ce5 Add HTTP_CLIENT_IP too 2016-01-06 23:34:28 +01:00
Flavio Copes
c78619aad3 Temp generation of older token for this release only 2016-01-06 23:19:00 +01:00
Flavio Copes
566da30513 Fix getting the user's IP address when proxied 2016-01-06 23:15:06 +01:00
Djamil Legato
f8c8ac4371 Response Class: Following redirects when open_basedir is set 2016-01-06 13:31:50 -08:00
Flavio Copes
1951722fdb Add Faker to Fixtures 2016-01-06 17:30:53 +01:00
Flavio Copes
90d2856581 Add a test that uses $grav 2016-01-06 17:30:39 +01:00
Flavio Copes
4fdeb4902e Pass $grav to all tests through the Fixtures utility 2016-01-06 17:30:13 +01:00
Flavio Copes
df3a492d3a Also add Faker to require-dev to be used in tests 2016-01-06 17:29:32 +01:00
Flavio Copes
e180e5a52a Add some more tests 2016-01-06 16:33:58 +01:00
Andy Miller
3c4dd26c20 Fix for media with + in the name 2016-01-05 15:45:58 -07:00
Andy Miller
f5fc509f14 Added cache driver setting to debug out 2016-01-05 14:59:24 -07:00
Andy Miller
2d00203a1f updated changelog 2016-01-05 12:08:44 -07:00
Flavio Copes
f1ac509032 Structure tests in folders that resemble the Grav system/src folder 2016-01-05 19:50:07 +01:00
Flavio Copes
5d4705b9fa Add codeception to require-dev 2016-01-05 19:39:00 +01:00
Flavio Copes
ac23ab21b8 Merge pull request #587 from jeromegamez/readme-changelog
Update README and CHANGELOG
2016-01-05 11:57:43 +01:00
Flavio Copes
6cb85dc6a5 Drop default db config from config 2016-01-05 11:56:28 +01:00
Flavio Copes
5b8b8e4ebb First sample test, test Utils 2016-01-05 11:52:17 +01:00
Flavio Copes
a6b1c6b222 Setup _bootstrap to setup Grav 2016-01-05 11:52:07 +01:00
Jérôme Gamez
0261df0d48 Update README and CHANGELOG 2016-01-05 11:17:22 +01:00
Flavio Copes
b3d18be643 Add and bootstrap codeception 2016-01-05 11:01:02 +01:00
Andy Miller
2709938f9f Merge pull request #586 from jeromegamez/feature/composer-branch-alias
composer.json: Add branch alias - fine with this :) 👍
2016-01-04 17:37:08 -07:00
Jérôme Gamez
53e1c790d8 Add branch alias 2016-01-05 01:24:17 +01:00
Andy Miller
f2f9fc4ed6 Merge pull request #585 from jeromegamez/feature/composer-project
Allow grav to be installed as a composer project
2016-01-04 16:51:08 -07:00
Jérôme Gamez
3cbf9c7101 Allow grav to be installed as a composer project 2016-01-04 23:55:16 +01:00
Flavio Copes
c655d9e8fc Revert "Merge pull request #571 from getgrav/feature/gpm-avoid-reinstalling-already-installed-packages"
This reverts commit 418f0972a9, reversing
changes made to 9a777efd52.
2016-01-04 20:50:15 +01:00
Andy Miller
2ef7f7cf36 Merge branch 'feature/hide_home_in_urls' into develop 2016-01-04 11:14:57 -07:00
Andy Miller
418f0972a9 Merge pull request #571 from getgrav/feature/gpm-avoid-reinstalling-already-installed-packages
Command line GPM: Avoid prompting to reinstall already installed packages
2016-01-04 10:36:10 -07:00
Andy Miller
9a777efd52 Merge pull request #569 from getgrav/feature/improve-gpm-unreachable-error-message
Improve error when trying to install a plugin/theme from the command line and GPM is unreachable
2016-01-04 10:30:22 -07:00
Andy Miller
aa8a329c7b Merge pull request #557 from getgrav/feature/use-rawurldecode
Allows '+' in the URLs, such as http://localhost/grav/blog/tag:c++
2016-01-04 10:19:18 -07:00
Andy Miller
e4930a144f Merge pull request #554 from getgrav/feature/session-improvements
Add secure and httponly parameters to sessions
2016-01-04 09:54:49 -07:00
Matias Griese
194014007f Merge pull request #583 from getgrav/feature/fix-checksum
Call finalizeObject on Config from loadCompiledFile() when cache is already built
2016-01-04 15:22:24 +02:00
Matias Griese
dc8f2c1466 Fixed page blueprints and theme inheritance issue (#534) 2016-01-04 15:18:50 +02:00
Flavio Copes
6ee48c74f7 Call finalizeObject on Config from loadCompiledFile() when cache is already built
finalizeObject, which assigns the checksum to the Config object, was
never called after the cache was built
2016-01-03 19:10:17 +01:00
Flavio Copes
136a9e8218 Also check for GPM permissions. Fixes #579 2016-01-02 16:25:31 +01:00
Andy Miller
34045ea62b whitespace removal 2016-01-01 17:27:28 -07:00
Andy Miller
267edbee7d optimization 2015-12-31 16:25:27 -07:00
Andy Miller
da882ebcd2 set twig_first: false by default due to modular pages 2015-12-31 15:35:54 -07:00
Andy Miller
ed0ba1ed98 Merge pull request #577 from mholt/patch-1
Update Caddyfile
2015-12-31 12:42:11 -07:00
Matt Holt
ef9dd3aa28 Update Caddyfile
fastcgi was using php preset defaults, anyway
2015-12-31 12:40:56 -07:00
Andy Miller
73b9abd38b Added a global setting for twig_first processing, and set it to true (was false) 2015-12-31 12:25:22 -07:00
Andy Miller
6e399fe0ed maintain md5 keys during sorting process #566 2015-12-31 12:06:46 -07:00
Andy Miller
5f9ed17091 Added support for APCu and PHP 7.0 2015-12-31 11:47:50 -07:00
Flavio Copes
1f4b3913b6 Typo in changelog 2015-12-31 12:32:10 +01:00
Andy Miller
dc9b9509d7 Moved onPageContentProccessed into content building section so it's fired more reliably 2015-12-30 16:28:02 -07:00
Andy Miller
b4f34c8643 Added plugins config to debugger 2015-12-30 16:26:59 -07:00
Andy Miller
52544a8b25 Fix for not fully reprocessing content with cache_enable: false 2015-12-30 15:44:42 -07:00
Flavio Copes
017500a6b5 Add a Page::topParent() method to retrieve the topmost parent of a page
Adding to this branch as it's needed for the Admin change that handles
this branch change
2015-12-29 19:10:30 +01:00
Andy Miller
425ae30e62 fix for attributes on external urls 2015-12-29 09:56:13 -07:00
Andy Miller
1aa09d8987 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-12-28 15:49:25 -07:00
Andy Miller
a45196dc97 regular date: header should not impact published visibility 2015-12-28 15:49:17 -07:00
Djamil Legato
8d7ab6fdd3 Ignore security yaml 2015-12-28 12:55:34 -08:00
Andy Miller
87870bcde7 Fix for new webserver-config folder 2015-12-28 13:15:51 -07:00
Flavio Copes
9b85c1b0f7 Remove all hardcoded older PHP required version, use GRAV_PHP_MIN constant instead
Thanks @MATsxm for the hint in https://github.com/getgrav/grav/pull/570
2015-12-28 18:46:14 +01:00
Flavio Copes
104012228c Command line GPM: Avoid prompting to reinstall already installed packages 2015-12-28 18:22:16 +01:00
Flavio Copes
e3deb40f69 Improve error when trying to install a plugin/theme from the command line and GPM is unreachable
Previously it listed four times `PHP Warning:  Invalid argument
supplied for foreach()...`, now it fails with an error message
2015-12-28 08:53:23 +01:00
Flavio Copes
492b290845 Fix #565 handle case where we only have inline data for css or js 2015-12-26 08:54:33 +01:00
Andy Miller
3eb2a5664a logic to strip home from Page routes and urls (optional) 2015-12-24 17:42:02 -07:00
Djamil Legato
15fd233e56 Added new --installed-only | -I option for bin/gpm index that filters only the installed packages 2015-12-24 14:44:57 -08:00
Djamil Legato
912f697cff Give ZipBackup a larger timeout when possible (10mins) 2015-12-24 14:30:20 -08:00
Flavio Copes
d827228dc2 Add new languages to Grav 2015-12-24 19:11:24 +01:00
Flavio Copes
84073a53cb Add MONTHS_OF_THE_YEAR and DAYS_OF_THE_WEEK to the Grav language file,
Took translations from
https://github.com/getgrav/grav-theme-twentyfifteen/blob/develop/languag
es.yaml
2015-12-24 19:05:13 +01:00
Flavio Copes
f562573640 Add a contributing readme 2015-12-23 20:13:37 +01:00
Flavio Copes
66aa66954c Add empty thumb.png image as default 2015-12-23 16:30:12 +01:00
Flavio Copes
99275dfe59 Optimize images, save 38% in file size 2015-12-23 16:29:58 +01:00
Flavio Copes
efded08d6e Uses Uri::host() to calculate the host. If localhost, set it to ''
Now also works with Chrome on localhost SSL sites. The problem was,
Chrome on Localhost wants the domain to be `""` or `false` even if the
site is accessed with another domain name.
Worked fine in other browsers.
2015-12-23 09:18:27 +01:00
Andy Miller
d726f15aa3 PHP version update 2015-12-22 21:54:07 -07:00
Andy Miller
7c6cd30aea Merge branch 'release/1.0.6' into develop 2015-12-22 17:15:45 -07:00
Andy Miller
f0145aa659 Merge branch 'release/1.0.6' 2015-12-22 17:15:44 -07:00
Andy Miller
879b5ef272 version update 2015-12-22 17:15:34 -07:00
Flavio Copes
91a57e1a16 Allows '+' in the URLs, such as http://localhost/grav/blog/tag:c++ 2015-12-22 19:06:04 +01:00
Flavio Copes
3698afb8a6 Add secure and httponly parameters to sessions 2015-12-22 17:03:39 +01:00
Matias Griese
8e1b2bc6e4 FastCGI: Use Apache's mod_deflate if Grav's builtin gzip compression was turned off (#548) 2015-12-22 11:54:20 +02:00
Andy Miller
37dd107281 Revert "Fix orientation for images added via twig"
This reverts commit 484a34cd92.
2015-12-21 22:01:38 -07:00
Andy Miller
2d3b41c62d Revert "Fix for images orientation in page content"
This reverts commit 4581077dcd.
2015-12-21 22:01:32 -07:00
Andy Miller
c9b8fc0e1b Revert "Cleanup"
This reverts commit b2c7e22634.
2015-12-21 22:01:18 -07:00
Andy Miller
7eb57b674a Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-12-21 21:58:47 -07:00
Andy Miller
25b33d0204 Revert "Proposed fix for #541"
This reverts commit 6c6871f607.
2015-12-21 21:58:31 -07:00
Flavio Copes
d47faed870 Cleanup 2015-12-21 21:58:31 -07:00
Flavio Copes
9a8efdf9cd Fix for images orientation in page content 2015-12-21 21:58:31 -07:00
Flavio Copes
593fd20a15 Fix orientation for images added via twig 2015-12-21 21:58:31 -07:00
Flavio Copes
ef75582e20 Proposed fix for #541
After reading http://stackoverflow.com/a/6998242 rawurldecode (and
rawurlencode) is better over urldecode/urlencode: "rawurlencode is the
way to go most of the time. It deals with the modern scheme for URI
components, where as urlencode does things the old school way, where +
meant "space."
2015-12-21 21:58:31 -07:00
Andy Miller
7440074491 Revert "Proposed fix for #541"
This reverts commit 6c6871f607.
2015-12-21 21:46:36 -07:00
Andy Miller
9688ed0f51 Merge pull request #543 from getgrav/features/use-rawurldecode-encode
Use rawurldecode and rawurlencode instead of urldecode/urlencode
2015-12-21 21:16:59 -07:00
Andy Miller
45d415e547 Merge branch 'feature/exif-auto-fix-orientation' into develop 2015-12-21 21:13:09 -07:00
Flavio Copes
b2c7e22634 Cleanup 2015-12-21 19:18:51 +01:00
Flavio Copes
4581077dcd Fix for images orientation in page content 2015-12-21 19:10:19 +01:00
Flavio Copes
729f83b3d4 Fix regression in image parameters handling introduced in 23a9a73600
Parameters without a value (e.g. `sepia`, `grayscale`, `emboss` and
others) were not applied any more)
2015-12-21 18:02:25 +01:00
Flavio Copes
bf361db5fc File field validation, handle case multiple not specified 2015-12-21 16:26:05 +01:00
Flavio Copes
328e9b20de Also add config save to themes 2015-12-21 16:16:26 +01:00
Flavio Copes
484a34cd92 Fix orientation for images added via twig 2015-12-21 13:55:29 +01:00
Andy Miller
5ab4d916b0 tweaked whoops sidebar 2015-12-20 12:32:23 -07:00
Andy Miller
f0974e0d24 minor whoops styling 2015-12-20 12:30:15 -07:00
Andy Miller
06a5aa6d01 Manually rolled back APCu support for PHP7 until it is available in the released version of Doctrine (currently only in master branch) 2015-12-20 11:58:53 -07:00
Andy Miller
a88829bd57 Merge branch 'feature/update-whoops' into develop 2015-12-20 11:51:44 -07:00
Andy Miller
c023c74ae5 Merge branch 'feature/update-whoops' of https://github.com/getgrav/grav into feature/update-whoops 2015-12-20 11:51:14 -07:00
Andy Miller
a8ad14222d moved sample web server configs into a dedicated directory 2015-12-20 11:50:45 -07:00
Flavio Copes
6c6871f607 Proposed fix for #541
After reading http://stackoverflow.com/a/6998242 rawurldecode (and
rawurlencode) is better over urldecode/urlencode: "rawurlencode is the
way to go most of the time. It deals with the modern scheme for URI
components, where as urlencode does things the old school way, where +
meant "space."
2015-12-20 14:18:56 +01:00
Flavio Copes
5764e5e686 Merge branch 'develop' into feature/update-whoops 2015-12-20 11:52:52 +01:00
Flavio Copes
b89044a709 Fix language string 2015-12-20 11:51:48 +01:00
Flavio Copes
5fc4755d3b Merge pull request #537 from fbardel/patch-1
Update fr.yaml
2015-12-19 18:39:33 +01:00
François
2f2adaaee8 Update fr.yaml 2015-12-19 18:17:07 +01:00
Flavio Copes
e2ae24faa9 Merge branch 'develop' into feature/update-whoops 2015-12-19 15:30:08 +01:00
Flavio Copes
55bc84c118 Fix #535 case insensitive https check 2015-12-19 14:20:45 +01:00
Flavio Copes
a47d5d00b3 Merge branch 'develop' into feature/update-whoops 2015-12-19 11:53:52 +01:00
Flavio Copes
05c2b98929 Fix #523 locale in url with base_url_* variables, even if include_default_lang is set to false 2015-12-19 10:48:52 +01:00
Flavio Copes
c5d3098b25 Only call extra method on blueprints if blueprints exist
Reverts partial change made in

https://github.com/getgrav/grav/commit/ac3396e6c46f9bcd8d5cbb45370b5daad
c84aadc
2015-12-19 10:28:06 +01:00
Flavio Copes
6805f32a13 Merge pull request #533 from mikewink/patch-1
Fixed hardcoded string "Security"
2015-12-19 09:33:56 +01:00
Andy Miller
b8aa250a22 Merge branch 'develop' into feature/update-whoops 2015-12-18 23:08:31 -07:00
Andy Miller
bf05a36dfe Updated some libs 2015-12-18 23:08:14 -07:00
Andy Miller
8f9cdad916 Updated spelling in Parsedown to match imminent update 2015-12-18 20:50:27 -07:00
Djamil Legato
d2ed424a7c Fixed Travis parsing error [ci skip] 2015-12-18 16:05:35 -08:00
Andy Miller
08cbd9553f Merge branch 'release/1.0.5' 2015-12-18 16:50:33 -07:00
Andy Miller
369d2cb390 Merge branch 'release/1.0.5' into develop 2015-12-18 16:50:33 -07:00
Andy Miller
dcaa9a35c3 Missed changeling entry 2015-12-18 16:50:19 -07:00
Andy Miller
4a80691e07 version update 2015-12-18 16:49:03 -07:00
Mike Wink
215b2cdfa8 Fixed hardcoded string "Security"
Added the PLUGIN_ADMIN.SECURITY constant instead. Will add this to the admin language files too.
2015-12-19 00:12:01 +01:00
Andy Miller
425831a7ae Fix for empty file when writing cache 2015-12-18 15:09:21 -07:00
Djamil Legato
984e0455b1 'informations' is not a thing 😞 2015-12-18 13:44:59 -08:00
Djamil Legato
00ecfb30f3 Ensuring gpm selfupgrades doesn't continue if PHP min version requirement isn't met. Gracefully abort with error and details. 2015-12-18 13:38:28 -08:00
Djamil Legato
c18f20e483 Added GRAV_PHP_MIN 2015-12-18 13:37:19 -08:00
Djamil Legato
71c5ff8c51 Added new Upgrader::meetsRequirements method
Ensures the PHP version meets the Grav's mininum required one.
2015-12-18 13:35:31 -08:00
Djamil Legato
1996dd7de8 Allowing Installer to set errors as string 2015-12-18 13:33:57 -08:00
Andy Miller
e87daa2361 Added support to get plugin languages from individual language files in languages folder of plugin 2015-12-18 12:29:45 -07:00
Flavio Copes
987feb1385 Make saveConfig static so it's more easily accessible 2015-12-18 15:42:33 +01:00
Flavio Copes
8d048c689f Persists to disk the plugin parameters currently stored in the Grav Config object 2015-12-18 14:44:03 +01:00
Flavio Copes
139ef04e0a Handle non-array values in file validation 2015-12-18 10:38:10 +01:00
Flavio Copes
4c01e6c93e Merge pull request #530 from mufac/mufac-patch-1
Prevent error if no collections present
2015-12-18 10:04:11 +01:00
Andy Miller
27744ba747 Merge branch 'feature/markdown_extendability' into develop 2015-12-17 18:09:28 -07:00
Andy Miller
3d3c6f4eba missing doc blocks 2015-12-17 18:09:11 -07:00
Andy Miller
fb4abc5f5f Use Grav's version of Parsedown until PR is accepted (crossing fingers) 2015-12-17 17:52:20 -07:00
mufac
f29b141d69 Prevent error if no collections present
If there are no collections you can get a "Invalid argument supplied for foreach()" without an empty default.
2015-12-17 16:14:48 -06:00
Andy Miller
1cecd09423 requires changes in parsedown 2015-12-17 10:35:22 -07:00
Andy Miller
0142e76270 cleanup 2015-12-16 21:51:38 -07:00
Andy Miller
5f8c7f41ec Add ability to extend markdown 2015-12-16 19:50:10 -07:00
Flavio Copes
451baff26e filterFile if the file field allows multiple items returns an array, otherwise a string 2015-12-16 15:16:14 +01:00
Flavio Copes
78accfe98b Bump whoops version 2015-12-15 22:58:31 +01:00
Flavio Copes
0e8e27877e Fix https://github.com/getgrav/grav-plugin-admin/issues/335, when looping the fields param in a list field, first check it exists 2015-12-15 11:52:27 +01:00
Andy Miller
d8a993bc86 Properly convert comma to spaces for multiple attributes #518 2015-12-14 18:30:55 -07:00
Andy Miller
ec7dbbdc8b Added 7z format to standard file types #521 2015-12-14 18:13:14 -07:00
Flavio Copes
c45652de81 Make sure Grav can work with the 2.0.0-alpha1 Whoops update, and with the current 1.1 too 2015-12-14 14:21:39 +01:00
Djamil Legato
e152cfd10f Forcing travis VM to western most date and echo a Travis date to catch it on log 2015-12-12 17:47:19 -08:00
Andy Miller
747daa46f1 Merge branch 'release/1.0.4' 2015-12-12 13:03:34 -07:00
Andy Miller
17a0590ee4 Merge branch 'release/1.0.4' into develop 2015-12-12 13:03:34 -07:00
Andy Miller
653edb064b version update 2015-12-12 13:03:22 -07:00
Andy Miller
40f5d57737 Default value not in quotes. Needs to be a string for Admin compatibility - https://docs.saltstack.com/en/latest/topics/troubleshooting/yaml_idiosyncrasies.html#integers-are-parsed-as-integers 2015-12-12 08:43:41 -07:00
Flavio Copes
566c5cb38f Revert "Fix issue in images cache permissions"
This reverts commit 7e3058e3f0.
2015-12-12 10:18:32 +01:00
Flavio Copes
7e3058e3f0 Fix issue in images cache permissions
the leading '0' in the default 0755 was omitted as interpreted as an
integer, leading to errors in setting the images cache folder
permissions (not readable by Grav)
2015-12-12 10:13:21 +01:00
Djamil Legato
053d8a3fd5 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-12-11 21:17:30 -08:00
Djamil Legato
0e810c15e2 Keep going if files are not found while creating a new project 2015-12-11 21:17:19 -08:00
Andy Miller
6b9154d1f3 Fix for cleaning build on linux 2015-12-11 22:08:59 -07:00
Andy Miller
4a5a400b89 Merge branch 'release/1.0.3' 2015-12-11 21:52:41 -07:00
Andy Miller
2d7a3232cc Merge branch 'release/1.0.3' into develop 2015-12-11 21:52:41 -07:00
Andy Miller
96d7c4790f version update 2015-12-11 21:52:14 -07:00
Andy Miller
c0b9ada21c fix for Image perms on admin save 2015-12-11 21:43:32 -07:00
Djamil Legato
7b116b41ae Not meant to be checked in 2015-12-11 20:42:30 -08:00
Djamil Legato
fcdd0bc0e9 Reverted CleanCommand to pure Command 2015-12-11 20:19:57 -07:00
Djamil Legato
0619f7c656 Reverted CleanCommand to pure Command 2015-12-11 18:44:52 -08:00
Andy Miller
f7696b61d3 Merge branch 'release/1.0.2' 2015-12-11 18:51:36 -07:00
Andy Miller
48083b203a Merge branch 'release/1.0.2' into develop 2015-12-11 18:51:36 -07:00
Andy Miller
f8aa9fed91 version update 2015-12-11 18:51:26 -07:00
Andy Miller
c55521ac4a fixed timing calculation 2015-12-11 17:16:10 -07:00
Andy Miller
2bb23efa7c Merge branch 'release/1.0.1' 2015-12-11 15:38:45 -07:00
Andy Miller
cdcb76cc55 Merge branch 'release/1.0.1' into develop 2015-12-11 15:38:45 -07:00
Andy Miller
def726a012 version update 2015-12-11 15:38:08 -07:00
Andy Miller
7d1291e2b9 Fixed cleanup to take into account symfony folder changes 2015-12-11 15:17:01 -07:00
Andy Miller
a0297e9d65 Fix error that can results from enabling debugger from admin 2015-12-11 15:00:54 -07:00
Andy Miller
e4e0c06ea8 Merge branch 'release/1.0.0' 2015-12-11 14:00:21 -07:00
Andy Miller
f46ad2d032 Merge branch 'release/1.0.0' into develop 2015-12-11 14:00:21 -07:00
Andy Miller
0c807b6108 version update 2015-12-11 13:59:52 -07:00
Andy Miller
3a47d6a580 force lowercase of username 2015-12-11 10:34:59 -07:00
Andy Miller
52947b3a2c Added Image cache perms option 2015-12-10 20:51:40 -07:00
Andy Miller
eacfc798f4 wrap security section of account blueprints in an authorize check 2015-12-10 16:05:22 -07:00
Andy Miller
5c0e5f3c01 updated debugbar 2015-12-10 16:04:46 -07:00
Andy Miller
985141b842 Merge pull request #515 from lennerd/fix/medium-url
Escape graph root in page medium to work with special characters.
2015-12-10 13:27:02 -07:00
Andy Miller
1aac2ab95d Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-12-10 12:13:01 -07:00
Andy Miller
aa7d5ddf59 translate validation messages 2015-12-10 12:12:56 -07:00
Flavio Copes
e87505378d Fix a parentheses issue that changes the logic and throw an error if $value['error'] is not set 2015-12-10 19:19:32 +01:00
Matias Griese
53f097c2b3 Fix wrong ordering when moving bulk of pages 2015-12-10 11:25:14 +02:00
Matias Griese
6ea7fe9dba Fix moving page if its just placeholder 2015-12-10 11:19:56 +02:00
Matias Griese
0206f1b0c7 Fix Page::copy() and Page::move() to support multiple moves at once 2015-12-10 10:46:09 +02:00
Matias Griese
ef9f2c77dd Minor fix in Page class 2015-12-10 10:24:21 +02:00
Andy Miller
822292f541 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-12-09 10:13:53 -07:00
Andy Miller
ec08cd9374 Better fix for GPM issues 2015-12-09 10:13:44 -07:00
Flavio Copes
8fb4063cf2 Merge pull request #511 from getgrav/feature/fix-multisite-subfolder
Make $container available in setup.php
2015-12-09 17:25:31 +01:00
Lennart Hildebrandt
8a2b444c48 Escape graph root in page medium to work with special characters. 2015-12-09 12:30:08 +01:00
Andy Miller
9c6f243902 Fix for GPM problems "Call to a member function set() on null" 2015-12-08 21:20:41 -07:00
Andy Miller
d5bd99b363 Fix for individual asset pipeline value not functioning + optimizations #513 2015-12-08 11:42:39 -07:00
Matias Griese
5554c07cbf Merge pull request #508 from getgrav/feature/gantry
Add support to manually initialize theme
2015-12-08 10:12:00 +02:00
Andy Miller
acd95aac6f Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-12-07 16:46:37 -07:00
Andy Miller
8ad5f2624d Added iconv polyfill library 2015-12-07 16:46:28 -07:00
Andy Miller
8adc0e1c17 Merge pull request #510 from getgrav/feature/fix-translation
Fix issue when `translations_fallback` is turned off, the translations are always relative to the default language even if the active language is != default
2015-12-07 15:29:56 -07:00
Flavio Copes
fab66cf3a5 Make $container available in setup.php 2015-12-07 19:20:10 +01:00
Flavio Copes
5df48e7a68 Fix issue when translations_fallback is turned off, the translations are always relative to the default language even if the active language is != default 2015-12-07 16:25:46 +01:00
Djamil Legato
079a8c5728 Fixed LICENSE link 2015-12-06 13:24:27 -08:00
Flavio Copes
d9196426a1 Hide the session setting in admin as turning it off crashes the admin. 2015-12-06 18:20:16 +01:00
Flavio Copes
2f686f5b74 Improve a couple page method docs 2015-12-06 18:19:21 +01:00
Djamil Legato
c4b5df20a9 🎈 Added many more gpm index options (--filter, --sort, --updates-only, --plugins-only, --themes-only, --desc) 2015-12-04 17:54:14 -08:00
Djamil Legato
06608a6d3c Implemented sort method for Iterator ($iterator->sort($callback)) 2015-12-04 17:39:49 -08:00
Andy Miller
fd63911faf Useful cache info output 2015-12-04 15:50:04 -07:00
Flavio Copes
66a1e55867 Update pages blueprints to add the page preview in the markdown editor with the current admin changes 2015-12-04 23:12:36 +01:00
Andy Miller
af2eb2e75d Reverted PHP7 apcu as it seems to kill Doctrine Cache 2015-12-04 15:02:26 -07:00
Andy Miller
9b4f32cafd Merge branch 'develop' into feature/gantry 2015-12-03 22:15:17 -07:00
Andy Miller
9179fbd1a2 minor performance optimization 2015-12-03 22:12:01 -07:00
Andy Miller
24ea7f1f55 Support APCu extension loaded for PHP7.0 2015-12-03 19:05:53 -07:00
Andy Miller
9b95053110 Support APCu extension loaded for PHP7.0 2015-12-03 19:05:36 -07:00
Andy Miller
71ffb9c72f Merge branch 'develop' into feature/gantry 2015-12-03 18:06:30 -07:00
Andy Miller
f29f698f61 setter method to allow explicit setting of asset timestamp 2015-12-03 16:56:30 -07:00
Andy Miller
f1f8579a0b New setters to set state of CSS / JS pipelining 2015-12-03 14:48:34 -07:00
Andy Miller
4ca8fab750 removed unused Plugin and Theme initialization 2015-12-03 14:48:15 -07:00
Andy Miller
b80ed731b0 Made Page.evaluate() public so it can be used by twig, plugins etc. 2015-12-03 13:44:25 -07:00
Andy Miller
23a9a73600 Added logic to support link attributes via query string 2015-12-03 12:16:16 -07:00
Djamil Legato
dc8c0b6522 Fixed changelog differ to take into account betas/rc versions (fixes #496) 2015-12-02 23:44:18 -08:00
Andy Miller
e695b1942c .gitignore for accounts - https://github.com/getgrav/grav-plugin-login/issues/16 2015-12-02 15:38:05 -07:00
Andy Miller
3f543e7e84 Merge branch 'feature/gantry' of https://github.com/getgrav/grav into feature/gantry 2015-12-02 15:36:22 -07:00
Andy Miller
7f6f9e82e3 .gitignore for accounts - https://github.com/getgrav/grav-plugin-login/issues/16 2015-12-02 15:36:16 -07:00
Djamil Legato
51529eb0ce Merge branch 'develop' into feature/gantry 2015-12-02 14:10:17 -08:00
Andy Miller
05b24a4b75 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-12-02 12:39:01 -07:00
Andy Miller
ca5819489f Fix for sandbox command 2015-12-02 12:38:56 -07:00
Matias Griese
1d2acf8096 Move onThemeInitialized event into Themes::initTheme() 2015-12-02 17:24:12 +02:00
Andy Miller
98278e965b Merge pull request #495 from tcsizmadia/develop
Updated Hungarian translation with new string.
2015-12-02 07:50:12 -07:00
Matias Griese
7bc990688c Add missing parent constructor to Themes class 2015-12-02 11:24:20 +02:00
Tamas Csizmadia
b86aa6d473 Updated Hungarian translation with new string. 2015-12-01 21:57:31 +01:00
Andy Miller
dba7347c1e Merge branch 'release/1.0.0-rc.6' 2015-12-01 13:13:16 -07:00
Andy Miller
fa52e18e3f Merge branch 'release/1.0.0-rc.6' into develop 2015-12-01 13:13:16 -07:00
Andy Miller
b605753a6d version update 2015-12-01 13:12:59 -07:00
Andy Miller
0af4fb351c changelog updated 2015-12-01 12:47:10 -07:00
Andy Miller
90edf95077 renamed LICENSE to LICENSE.txt 2015-12-01 11:15:00 -07:00
Andy Miller
ab3843442a Merge pull request #494 from getgrav/feature/introduce-user-groups
Feature/introduce user groups
2015-12-01 10:03:30 -07:00
Flavio Copes
023b9dd708 Merge remote-tracking branch 'origin/feature/introduce-user-groups' into feature/introduce-user-groups 2015-12-01 17:56:56 +01:00
Flavio Copes
0ac882314e Merge branch 'develop' into feature/introduce-user-groups 2015-12-01 17:54:20 +01:00
Flavio Copes
0fe9264582 Merge pull request #491 from MATsxm/patch-2
Update fr.yaml
2015-12-01 14:05:25 +01:00
Djamil Legato
b1e16b2206 Added validator for file input fields 2015-11-30 18:22:30 -08:00
Andy Miller
a67c1780c1 Added a new @self.all case that gets all children modular and non-modular 2015-11-30 19:16:46 -07:00
Marc-Antoine Thevenet
1170f2f58d Update fr.yaml
Update following the /en file
Thanks
2015-11-30 15:30:22 -04:00
Andy Miller
199c0a08ea Should not be able to set parent to self (infinite loop) #308 2015-11-30 12:18:32 -07:00
Matias Griese
84ad152536 Only create environmental config if the directory exists 2015-11-30 20:44:08 +02:00
Flavio Copes
5b0f905ae3 Update italian lang file 2015-11-30 19:20:20 +01:00
Flavio Copes
a2bba8f09d Merge pull request #489 from hugoaf/develop
Adding language string for MISSING_REQUIRED_FIELD
2015-11-30 19:19:51 +01:00
Matias Griese
2007975428 If environment does not have its own directory, remove it from the lookup 2015-11-30 10:13:40 -07:00
Matias Griese
e484997515 If environment does not have its own directory, remove it from the lookup 2015-11-30 18:56:34 +02:00
Flavio Copes
af5c52c52f Update session name hints 2015-11-30 14:36:23 +01:00
Hugo Avila
f3d0e10378 Update Blueprint.php 2015-11-29 21:43:05 -08:00
Hugo Avila
b33ab43ff9 Update en.yaml 2015-11-29 21:39:51 -08:00
Hugo Avila
c580399db6 Update es.yaml 2015-11-29 21:33:08 -08:00
Hugo Avila
00d8717d7c Create es.yaml 2015-11-29 21:26:21 -08:00
Andy Miller
6e2f4607a6 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-11-29 20:00:21 -07:00
Andy Miller
3a7abeb18b Added support to set classes and id on a medium object 2015-11-29 20:00:16 -07:00
Andy Miller
84a5984c65 Merge pull request #487 from aqnouch/patch-2
Change the first letter of the word 'français' to uppercase
2015-11-29 17:34:38 -07:00
AQNOUCH Mohammed
1465c26b1f Change the first letter of the word 'français' to uppercase 2015-11-28 19:20:59 +00:00
Flavio Copes
b399d8e3b9 Drop check used by the array field, introduced by 57b18edb55 2015-11-27 19:27:58 +01:00
Andy Miller
b5c04bdc9b Merge pull request #484 from nazwa/web.config-patch
Web.config update
2015-11-26 18:33:27 -07:00
Andy Miller
b4725800c3 Merge pull request #482 from diomed/patch-1
Update hr.yaml
2015-11-26 18:33:14 -07:00
nazwa
2b1a102efa Web.config update
web.config now correctly allows for static files inside vendor folder, just like .htaccess
2015-11-26 22:18:27 +00:00
Kruno H
500c548af4 Update hr.yaml
added PLURAL_MORE_THAN_TWO translations
2015-11-26 22:48:02 +01:00
Flavio Copes
fc7017f822 Merge pull request #480 from getgrav/feature/fix-set-time-limit
Include set_time_limit in a try/catch
2015-11-26 17:36:58 +01:00
Flavio Copes
5b254f4cf8 Drop accidentally added method 2015-11-26 16:19:29 +01:00
Flavio Copes
43783f3ce6 Correct the set_time_limit if 2015-11-26 16:18:05 +01:00
Flavio Copes
ae39aabee1 Include set_time_limit in a try/catch 2015-11-26 16:02:06 +01:00
Flavio Copes
df7a94148b Merge branch 'develop' into feature/introduce-user-groups 2015-11-26 12:14:48 +01:00
Flavio Copes
63890661fe Add security.yaml to the ignored files 2015-11-26 11:55:13 +01:00
Flavio Copes
793ac1a1bb Revert "no message"
This reverts commit b259927348.
2015-11-26 11:54:05 +01:00
Flavio Copes
77db54c50d Revert "If the page does not exist trigger a 404"
This reverts commit 8d8420c0d6.
2015-11-26 11:53:27 +01:00
Andy Miller
b259927348 no message 2015-11-25 15:42:11 -07:00
Andy Miller
e8972a6aa5 vendor updates 2015-11-25 15:41:53 -07:00
Flavio Copes
8d8420c0d6 If the page does not exist trigger a 404 2015-11-25 22:30:45 +01:00
Flavio Copes
7a6707f597 Merge pull request #473 from getgrav/feature/allow-multiple-plurals
Handle languages that support _PLURAL_MORE_THAN_TWO
2015-11-25 17:42:37 +01:00
Djamil Legato
b0ec66cce8 Merge pull request #475 from nazwa/lists-patch
Proper handling of list fields
2015-11-24 15:51:58 -08:00
Maciej Ka
edfd7db88b pretty & clean 2015-11-24 23:48:22 +00:00
Maciej Ka
fb3e68e16e removed old parameters 2015-11-24 23:34:47 +00:00
Maciej Ka
080ab9e289 Fixed conflict caused by w00fz quickfix 2015-11-24 23:17:37 +00:00
nazwa
f67e441b83 Merge pull request #1 from getgrav/develop
Fixed nested logic for lists and forms parsing (fixes #273)
2015-11-24 23:13:47 +00:00
nazwa
9c07d69c45 Proper handling of list fields
Moved field handling to a separate function and added logic to correctly process nested lists.
2015-11-24 23:02:42 +00:00
Djamil Legato
13207f13ad Fixed nested logic for lists and forms parsing (fixes #273) 2015-11-24 14:57:05 -08:00
Flavio Copes
34f83ebde2 Use the new security salt to calculate the nonce instead of using password_hash 2015-11-24 21:13:46 +01:00
Flavio Copes
14ed805656 Merge branch 'develop' into feature/introduce-user-groups 2015-11-24 21:00:08 +01:00
Matias Griese
385233c508 Automatically create unique security salt for each configuration 2015-11-24 21:14:46 +02:00
Flavio Copes
8a3b987cd5 Merge branch 'develop' into feature/introduce-user-groups 2015-11-24 19:45:04 +01:00
Andy Miller
bdd17fc56a Moving back to release version of Toolbox 2015-11-24 10:06:41 -07:00
Andy Miller
29b3c081ee Merge branch 'feature/refactor' into develop 2015-11-24 09:59:51 -07:00
Andy Miller
b1d80b6c5f Merge branch 'develop' into feature/refactor 2015-11-24 09:59:33 -07:00
Flavio Copes
e00560f81a Handle languages that support _PLURAL_MORE_THAN_TWO
Ex. WEEK_PLURAL, WEEK_PLURAL_MORE_THAN_TWO
2015-11-24 15:18:10 +01:00
Flavio Copes
20f17130a2 Add the IP address of the user to the nonce string calculation even if it's logged in 2015-11-24 15:17:08 +01:00
Flavio Copes
583156d2f3 Handle multiple nonce action types per page 2015-11-24 09:03:48 +01:00
Andy Miller
88f36f4987 Merge branch 'develop' into feature/refactor 2015-11-23 19:08:46 -07:00
Andy Miller
965c8cfbe9 Only generate one nonce per process 2015-11-23 19:07:46 -07:00
Andy Miller
b8f00243e6 Make hash() public for future use 2015-11-23 19:07:12 -07:00
Andy Miller
1d97f98515 Made hash() public for future usage 2015-11-23 17:41:16 -07:00
Matias Griese
9764cf3f65 Sync CompiledFile class with Gantry 2015-11-23 11:00:28 +02:00
Matias Griese
1f5df81496 Sync Folder class with Gantry 2015-11-23 11:00:03 +02:00
Matias Griese
5f76a0255c Merge branches 'develop' and 'feature/refactor' of https://github.com/getgrav/grav into feature/refactor
# Conflicts:
#	CHANGELOG.md
#	composer.lock
2015-11-23 09:48:30 +02:00
Flavio Copes
17f3ca6eba Merge pull request #466 from tcsizmadia/develop
Updated system/languages/hu.yaml
2015-11-22 16:32:57 +01:00
Tamas Csizmadia
b29d79738b Updated system/languages/hu.yaml
Tweaked translation for 'ago' - sounds less weird.
2015-11-22 12:34:44 +01:00
Andy Miller
020cdd7324 Merge pull request #464 from tcsizmadia/develop
Hungarian translation in system/languages/hu.yaml
2015-11-21 22:04:51 -07:00
Andy Miller
1e39f3b22d Merge pull request #465 from MAT978/patch-1
Update fr.yaml
2015-11-21 22:04:45 -07:00
Djamil Legato
37035a488d Fixed bin/plugin help output 2015-11-21 20:53:11 -08:00
Marc-Antoine Thevenet
745b418cd7 Update fr.yaml
update based on the version: en
Nov 17, 2015
2015-11-21 21:47:21 -04:00
Tamas Csizmadia
2a02c8bc4f Hungarian translation in system/languages/hu.yaml 2015-11-21 21:53:03 +01:00
Flavio Copes
a15e063b92 Merge branch 'develop' into feature/introduce-user-groups 2015-11-21 16:52:51 +01:00
Andy Miller
2051fed5b7 Merge pull request #458 from benblee/patch-1
Prevent crawling of unnecessary directories
2015-11-20 19:57:45 -07:00
Ben Lee
268714863e Prevent crawling of unnecessary directories
Prevent search engines from crawling and indexing unnecessary files and directories. The "/user/plugins/" directory may need to be added to the Allow list if plugins use frontend accessible assets. This is tested at a basic level using Google Fetch and Render.
2015-11-20 19:33:24 -07:00
Andy Miller
60c6532307 Merge branch 'release/1.0.0-rc.5' into develop 2015-11-20 17:54:40 -07:00
Andy Miller
50c6e81c09 Merge branch 'release/1.0.0-rc.5' 2015-11-20 17:54:39 -07:00
Andy Miller
2a0a9a225c version update 2015-11-20 17:54:28 -07:00
Andy Miller
aee92b58c7 Updated composer.phar 2015-11-20 17:34:34 -07:00
Andy Miller
16db950009 composer updates 2015-11-20 17:34:02 -07:00
Andy Miller
bde33e7188 Lighttpd/Lightly configuration file - Thanks @Mr3ase 2015-11-20 14:59:58 -07:00
Djamil Legato
267efbe164 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-11-20 12:40:52 -08:00
Djamil Legato
f9e137c994 Added pad filter for strings (uses str_pad) 2015-11-20 12:40:48 -08:00
Andy Miller
e7f9751403 add new Page.relativePagePath helper method 2015-11-20 08:08:39 -07:00
Matias Griese
9adf81294d Merge branches 'develop' and 'feature/refactor' of https://github.com/getgrav/grav into feature/refactor 2015-11-20 09:28:58 +02:00
Matias Griese
3033818589 On plaintext authentication verify, use default hash even if its not set in configuration 2015-11-20 09:22:07 +02:00
Djamil Legato
06d663680c Removed unused label 2015-11-19 20:05:29 -08:00
Djamil Legato
1bbdca5032 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-11-19 18:07:40 -08:00
Djamil Legato
c1654a988e Fixed deprecated message 2015-11-19 18:07:16 -08:00
Andy Miller
18a540c867 Don't set a default hash in system.yaml 2015-11-19 18:56:05 -07:00
Andy Miller
99fc8df322 old command was called newuser not new-user, also pointed to login plugin now. 2015-11-19 18:30:31 -07:00
Flavio Copes
2d21cb8b1e Simplify, clear slashes for all nonces automatically. Remove Utils:: getNonceForGetRequest methoid
The reason is, we need to get the nonce in JavaScript and we can simply
use the one in the form, made for POST requests
2015-11-19 23:23:32 +01:00
Flavio Copes
d8008654b9 Add a new Utils::getNonceForGetRequest() method, and use that in Uri:: addNonce() 2015-11-19 22:44:10 +01:00
Andy Miller
146295fb1e fix for state check if user was already logged in without state 2015-11-19 13:43:15 -07:00
Matias Griese
09ed480628 Composer update 2015-11-19 17:05:21 +02:00
Matias Griese
5dd1554e5d Fix modified function in config 2015-11-19 12:02:08 +02:00
Matias Griese
748f329c8e Merge branches 'develop' and 'feature/refactor' of https://github.com/getgrav/grav into feature/refactor
Conflicts:
	CHANGELOG.md
2015-11-19 10:51:26 +02:00
Matias Griese
7228b25393 Fix configuration reload 2015-11-19 10:49:55 +02:00
Djamil Legato
63e083ea37 Implemented new state check for accounts. If an account state is set to disabled no actions will be allowed 2015-11-18 18:31:19 -08:00
Andy Miller
b1630feb5d Disable time limit in case of slow downloads: #385 2015-11-18 19:04:57 -07:00
Andy Miller
1185a91c90 Fix for Media using absolute URLs internally causing breakages in functionality: #401 2015-11-18 18:39:30 -07:00
Andy Miller
dce6d7894b Added form blueprints for new append_url_extension field in system.yaml and page headers 2015-11-18 17:35:07 -07:00
Andy Miller
375ee0d1fa remove version from auto-generated generator tag 2015-11-18 17:17:53 -07:00
Andy Miller
ce0574f897 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-11-18 17:13:31 -07:00
Andy Miller
c515111446 Don't check valid media list if its' in whitelist 2015-11-18 17:13:22 -07:00
Djamil Legato
7d6393628e Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-11-18 16:12:12 -08:00
Djamil Legato
24fde7261a Deprecated: bin/grav new-user is now deprecated in favor of bin/plugin admin new-user 2015-11-18 16:12:08 -08:00
Djamil Legato
3d922abf1a Fixed listing duplicate plugins when multiple commands present. 2015-11-18 16:11:44 -08:00
Andy Miller
7f1d3a94fe Support default case of allowing all valid media types. Config option replaces with a whitelist of types supported. #452 2015-11-18 15:52:01 -07:00
Andy Miller
3d774b7585 moved fallback types to media 2015-11-18 15:50:46 -07:00
Djamil Legato
b0083548b6 Rearranged properly changelog entries 2015-11-18 11:55:34 -08:00
Djamil Legato
905dae3b16 Updated changelog 2015-11-18 11:51:16 -08:00
Djamil Legato
d79979371b Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-11-18 11:47:26 -08:00
Flavio Copes
c4bff94f7d Merge pull request #454 from diomed/patch-1
Croatian translation
2015-11-18 20:43:07 +01:00
Kruno H
7c4fd3858c Croatian translation 2015-11-18 20:35:23 +01:00
Djamil Legato
3b9af8883d Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-11-18 10:43:02 -08:00
Djamil Legato
29b34d7de0 Listing all plugins with CLI available. Better helper when empty arguments 2015-11-18 10:40:06 -08:00
Matias Griese
90fcf448c7 Merge branches 'develop' and 'feature/refactor' of https://github.com/getgrav/grav into feature/refactor 2015-11-18 18:17:33 +02:00
Flavio Copes
5193551d04 Fix date representation in system config
Fixes https://github.com/getgrav/grav-plugin-admin/issues/278
2015-11-18 17:15:18 +01:00
Matias Griese
d2660e0755 Fixed gzip compression making it to work correctly with all servers and browsers 2015-11-18 18:14:35 +02:00
Flavio Copes
2d8ac27fdd Merge pull request #451 from yaman-jain/docfixes
PhpDoc
2015-11-18 14:49:58 +01:00
Matias Griese
dd2ddfeb40 Refactor Config classes 2015-11-18 15:32:14 +02:00
Matias Griese
ac3396e6c4 Data objects: Allow function call chaining, lazy load blueprints 2015-11-18 14:43:32 +02:00
yaman-jain
49a5b38589 PhpDoc: callback definition as per #451 2015-11-18 16:01:19 +05:30
yaman-jain
6e2f792bb9 Merge branch 'develop' into docfixes 2015-11-18 15:55:25 +05:30
Djamil Legato
da098fd46a Implemented support for Plugins to hook into Grav CLI via bin/plugin <plugin-name> 2015-11-17 19:33:55 -08:00
Djamil Legato
3e081b340f Cleaned up Console commands, now extending Grav's own ConsoleCommand class 2015-11-17 19:31:13 -08:00
Djamil Legato
698015a03d Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-11-17 19:12:45 -08:00
Djamil Legato
000a10f936 Added check in Plugins::get method to ensure a plugin exists 2015-11-17 18:36:08 -08:00
Flavio Copes
c764e31c8a Merge pull request #448 from bovisp/patch-3
Added form validation translations
2015-11-17 22:32:38 +01:00
Flavio Copes
c18021d52a Merge pull request #450 from bovisp/patch-2
Added a translation for "Invalid input in " text
2015-11-17 22:32:15 +01:00
Flavio Copes
3d0cc67415 Merge pull request #449 from bovisp/patch-1
Added a translation for "Validation failed:" text
2015-11-17 22:32:00 +01:00
Paul Bovis
3f94a6fda9 moved $language variable inside catch statement
As requested
2015-11-17 14:25:51 -07:00
yaman-jain
7f0eefbde5 updated/added PhpDoc for methods 2015-11-18 02:32:44 +05:30
Paul Bovis
280377985f Added form validation translations
These will need to be translated into other languages.
2015-11-17 11:57:15 -07:00
Paul Bovis
d5b3f070a5 Added a translation for "Invalid input in " text
The English phrase "Invalid input in " was hardcoded at line 40. I created a new translation 'FORM.INVALID_INPUT' and placed it in /system/languages/en.yaml. It will need to be translated into other languages by others.
2015-11-17 11:55:31 -07:00
Paul Bovis
3505ef046d Added a translation for "Validation failed:" text
The English term "Validation failed:" was hard coded on line 83. Instead, I created a translation and placed this at /system/languages/en.yaml. It will need to be translated into other languages by others.
2015-11-17 11:50:47 -07:00
Flavio Copes
a6bc565356 Replace forward slashes automatically to avoid problems when used in GET request 2015-11-17 11:59:30 +01:00
Flavio Copes
a1ee3cf4e4 Avoid using our own hash, let PHP use its own for password_hash, fix #445 2015-11-17 11:59:02 +01:00
Andy Miller
e96445abe3 Added append_url_extension option to system/page headers. 2015-11-16 21:33:24 -07:00
Andy Miller
c22fae0d3d just added a comment 2015-11-16 21:33:01 -07:00
Flavio Copes
d888dcd085 Add some methods to ImageMedium to be used by the media manager 2015-11-16 20:15:47 +01:00
Flavio Copes
184cb9ea3a Media Meta blueprint 2015-11-16 20:15:19 +01:00
Flavio Copes
3cf6e8762c Merge pull request #426 from getgrav/feature/nonce
Add nonce functionality
2015-11-13 19:18:29 +01:00
Flavio Copes
f0cdd7c03e Merge branch 'develop' into feature/nonce 2015-11-13 18:24:03 +01:00
Andy Miller
5e40201888 Merge pull request #441 from yaman-jain/removePackageInterface
PackageInterface was deleted #435
2015-11-13 11:03:08 -06:00
Flavio Copes
f2c2debb28 Fix exception message when label is not set 2015-11-13 17:50:04 +01:00
Matias Griese
997c772b7c Make Data classes to implement proper interfaces 2015-11-13 14:09:03 +02:00
Matias Griese
bc4a09f80d Fix undefined variable in Config class 2015-11-13 14:02:06 +02:00
Andy Miller
0e3e7497ac Fix for https://github.com/getgrav/grav-plugin-form/issues/17 2015-11-12 18:31:15 -07:00
Andy Miller
72313ac9ec Merge branch 'feature/new-imagemedium-methods' into develop 2015-11-12 17:40:21 -07:00
yaman-jain
dc80228f0b PackageInterface was deleted #435 2015-11-13 00:48:54 +05:30
Flavio Copes
a83642a7e3 Added a higherQualityAlternative () method to get the highest quality image available (3x or 2x) 2015-11-12 19:15:26 +01:00
Flavio Copes
00d8403095 Allow to get the image quality in addition to setting it 2015-11-12 19:14:52 +01:00
Matias Griese
e1ec8e9742 Fix undefined variable in Config class 2015-11-12 20:09:23 +02:00
Flavio Copes
0725af5367 Handle case login plugin disabled (thanks @hwmaier) 2015-11-12 09:17:22 +01:00
Andy Miller
65e543af02 Merge pull request #434 from yaman-jain/feature/smallfixes
remove duplicate key
2015-11-11 18:24:29 -07:00
Andy Miller
b49e8315eb Merge pull request #439 from enko/patch-1
Use PCRE_UTF8 so unicode strings don't break up.
2015-11-12 00:42:45 +01:00
Tim
c5a89112b4 Use PCRE_UTF8 so unicode strings don't break up.
The `Truncator`-class fails when the truncated text contains unicode characters with a nice exception:

    "DOMDocumentFragment::appendXML(): Entity: line 1: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xC3 0xE2 0x80 0xA6"

By using the `PCRE_UTF8` modifier `u` everything is UTF8 and all is fine.
2015-11-12 00:13:21 +01:00
Flavio Copes
94ec474ffa Merge branch 'develop' into feature/nonce 2015-11-11 17:47:57 +01:00
Flavio Copes
da4593fdc1 Drop commented referrer code 2015-11-11 17:13:54 +01:00
Flavio Copes
b8413cefaf Avoid having to deal with slashes in URLs 2015-11-10 17:34:23 +01:00
Flavio Copes
d3097e4fd0 Merge pull request #433 from Sommerregen/patch-3
Fixes #432 (Theme autoloading doesn't seem to work)
2015-11-10 14:32:14 +01:00
yaman-jain
51753f0716 remove unused 'use' statements 2015-11-10 18:24:01 +05:30
yaman-jain
b7ada873b8 remove duplicate key 2015-11-10 17:34:01 +05:30
Benny
ed8b08a9e4 Fixes #432 (Theme autoloading doesn't seem to work) 2015-11-10 11:19:30 +01:00
Flavio Copes
e1fdb6803d Add nonce functionality 2015-11-06 15:31:49 +01:00
Andy Miller
5cb9f2f42f Merge pull request #419 from hwmaier/feature/empty-inline-assets
Don't create <style> or <script> tags for empty inline CSS or inline JS
2015-11-06 10:08:10 +05:30
Flavio Copes
fcf48ed2e5 Merge pull request #420 from bariscelik/develop
added "Turkish" language
2015-11-05 09:16:36 +01:00
Barış ÇELİK
050512536a added "Turkish" language 2015-11-05 08:42:24 +03:00
Henrik Maier
99207fca13 Don't create <style> or <script> tags for empty inline CSS or inline JS 2015-11-05 13:37:06 +10:00
Flavio Copes
55890b4fd8 Merge branch 'develop' into feature/introduce-user-groups 2015-11-04 14:54:56 +01:00
Flavio Copes
6fdfaccc92 Add blueprints 2015-11-04 14:54:47 +01:00
Flavio Copes
76e01e7aea Minor fix 2015-11-04 14:44:21 +01:00
Flavio Copes
87378562ea Fix error when logging in with a non-existing username 2015-11-03 14:35:11 +01:00
Andy Miller
77d80f12f3 Fix for untranslated validation messages #246 2015-11-02 17:28:46 -07:00
Flavio Copes
e400207a65 Fix https://github.com/getgrav/grav-plugin-admin/issues/249, password not required any more. If not set, it's not changed. If set, it's changed (if it satisfies the requirements) 2015-11-02 18:57:16 +01:00
Andy Miller
4b68036a1b Fixed assets stream for bin/grav clear 2015-11-01 20:52:14 -07:00
Henrik Maier
a95b716aa7 Return resource even if not physically present 2015-11-01 19:43:54 -07:00
Henrik Maier
dc8efded34 Use streams instead of hardcoded paths for clearCache() 2015-11-01 19:43:53 -07:00
Andy Miller
e016b17276 Revert "Use streams instead of hardcoded paths for clearCache()"
This reverts commit a86ce7cb28.
2015-11-01 19:24:46 -07:00
Andy Miller
b99876f0b4 Revert "Return resource even if not physically present"
This reverts commit b3144ee921.
2015-11-01 19:24:39 -07:00
Andy Miller
66abc842b7 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-11-01 18:34:41 -07:00
Andy Miller
9f36158c67 Merge pull request #405 from hwmaier/feature/trailing-slash
Added support for default routes with a trailing slash
2015-11-01 18:34:31 -07:00
Andy Miller
18c1ca3919 added 'theme' to config containing current theme configuration so now possible to just to {{ config.theme.dropdown_enabled }} #406 2015-11-01 18:32:55 -07:00
Andy Miller
0c729e5b0a latest vendor updates 2015-11-01 13:56:10 -07:00
Andy Miller
55f3b78ab1 Merge pull request #393 from hwmaier/feature/image-height-width
Support for width/height and style attributes to media and image files
2015-11-01 09:43:28 -07:00
Andy Miller
a73b796ca7 Merge pull request #407 from hwmaier/feature/enable-progressive-bug
Clear previously applied operations when doing a reset on image files to avoid calling filters twice
2015-11-01 09:42:29 -07:00
Andy Miller
bb0bca7ef1 Merge pull request #408 from hwmaier/feature/clear-cache
Use streams instead of hardcoded paths for clearCache()
2015-11-01 08:53:54 -07:00
Henrik Maier
b3144ee921 Return resource even if not physically present 2015-11-01 18:55:33 +10:00
Henrik Maier
a86ce7cb28 Use streams instead of hardcoded paths for clearCache() 2015-11-01 17:50:23 +10:00
Henrik Maier
ccf2a780b6 Clear previously applied operations when doing a reset on image files 2015-11-01 10:26:56 +10:00
Henrik Maier
b0c1dbe4b7 Added support for default routes with a trailing slash 2015-10-31 16:21:05 +10:00
Djamil Legato
ec73eef695 Updated comments for subfolders 2015-10-30 10:49:08 -07:00
Andy Miller
467d68344e added a default umask_fix property to system.yaml 2015-10-30 11:42:36 -06:00
Andy Miller
8899b3ebb8 Rewrote nginx.conf to be simpler and more in line with .htaccess 2015-10-30 11:42:08 -06:00
Andy Miller
5478cfaf9f Improved .htaccess security 2015-10-30 11:41:52 -06:00
Andy Miller
4b6a85f30a updated vendor libs 2015-10-30 11:41:03 -06:00
Andy Miller
e62ff07726 Merge branch 'release/1.0.0-rc.4' 2015-10-29 22:11:19 -06:00
Andy Miller
a045107cc7 Merge branch 'release/1.0.0-rc.4' into develop 2015-10-29 22:11:19 -06:00
Andy Miller
c97edb60a5 version update 2015-10-29 22:11:06 -06:00
Andy Miller
695793b752 Merge branch 'release/1.0.0-rc.4' 2015-10-29 21:53:48 -06:00
Andy Miller
c953ffb471 Merge branch 'release/1.0.0-rc.4' into develop 2015-10-29 21:53:48 -06:00
Andy Miller
3d7fa06129 version update 2015-10-29 21:52:52 -06:00
Andy Miller
49d4fbcf3d fix for non-existing page with collection @page: /something format 2015-10-29 21:50:58 -06:00
Andy Miller
fc18a40c35 fixed double bang 2015-10-29 20:03:19 -06:00
Andy Miller
1e81d5e38c whitespace tweak 2015-10-29 16:34:30 -06:00
Andy Miller
daf8b53c0d Merge branch 'release/1.0.0-rc.3' into develop 2015-10-29 14:08:39 -06:00
Andy Miller
8de55a745d Merge branch 'release/1.0.0-rc.3' 2015-10-29 14:08:38 -06:00
Andy Miller
6bf669815d version update 2015-10-29 14:08:09 -06:00
Andy Miller
8ba49e163d version update 2015-10-29 14:06:54 -06:00
Andy Miller
26918d90ab Merge pull request #397 from Sommerregen/patch-2
Addresses # 12 (form-plugin) Trim fields before validation
2015-10-29 11:57:11 -06:00
Benny
929b0806dc Addresses # 12 (form-plugin) Trim fields before validation 2015-10-29 16:58:41 +01:00
Flavio Copes
3e32e61db1 Revert "Add a items() method that returns the Data::items array"
This reverts commit fafd72fcd8.
2015-10-29 14:59:11 +01:00
Flavio Copes
038693bffb Merge pull request #396 from Sommerregen/patch-1
Fix #395
2015-10-29 14:00:54 +01:00
Benny
9445aa43e6 Fix #395 (Problem with default language and slugs that is starting with language name) 2015-10-29 13:44:29 +01:00
Henrik Maier
bb16dbab78 Remove debug error_log output 2015-10-29 13:02:22 +10:00
Andy Miller
658212e7be Merge pull request #392 from nickbalestra/readme
Update README.md
2015-10-28 21:01:56 -06:00
Nick Balestra
e91554770c Update README.md 2015-10-28 19:58:38 -07:00
Henrik Maier
8f9671ad32 Allow width and height attributes to be added to Markdown and Twig image tags 2015-10-29 12:53:00 +10:00
Andy Miller
7f134e39f4 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-10-28 20:52:30 -06:00
Henrik Maier
c87e3f419d Allow inline styles to be added to Markdown and Twig image tags 2015-10-29 12:52:24 +10:00
Andy Miller
07b2767ac9 Changed collection types from .recurse to .descendants 2015-10-28 20:52:22 -06:00
Andy Miller
0ca24a9786 Merge pull request #391 from tuphamnguyen/patch-1
Updated README.md
2015-10-28 20:39:58 -06:00
Tu Pham Nguyen
c84c1366e7 Updated README.md
Just a typo :)
2015-10-28 16:25:29 -05:00
Andy Miller
ebf9bb5c18 Improved collection support #384 2015-10-28 13:33:35 -06:00
Andy Miller
70b67a0805 Created whitelist for fallback route functionality 2015-10-28 10:39:15 -06:00
Andy Miller
545b97716f Merge pull request #387 from hwmaier/feature/asset-stream
Asset management uses now streams rather the constant ASSETS_DIR
2015-10-28 10:12:54 -06:00
Flavio Copes
7e540e0623 Merge branch 'develop' into feature/introduce-user-groups
Use the new isPositive() method to check permissions
2015-10-28 11:00:48 +01:00
Flavio Copes
f7140522f6 Merge pull request #388 from littmus/develop
Typo fixed
2015-10-28 09:56:02 +01:00
littmus
bd2f7088e9 Typo fixed 2015-10-28 17:55:23 +09:00
hwmaier
5260c181a1 Asset management uses now streams rather the constant ASSETS_DIR to configure location. In addition it supports subdirectories for assets location, for example assets/runtime. 2015-10-28 13:15:03 +10:00
Andy Miller
a9538adf2b Merge branch 'release/1.0.0-rc.2' into develop 2015-10-27 14:47:43 -06:00
Andy Miller
8bba0fd332 Merge branch 'release/1.0.0-rc.2' 2015-10-27 14:47:43 -06:00
Andy Miller
abf6d6638e version update 2015-10-27 14:47:27 -06:00
Andy Miller
36e52146f5 changelog updated 2015-10-27 12:35:29 -06:00
Flavio Copes
24eaa24839 Check that label is set prior to access it 2015-10-27 18:30:54 +01:00
Flavio Copes
fafd72fcd8 Add a items() method that returns the Data::items array 2015-10-27 18:30:54 +01:00
Andy Miller
df9b219a16 Merge pull request #386 from hwmaier/feature/onTwigPageVariables
onTwigPageVariables event handler gets Page object passed as Event parameter
2015-10-27 09:49:47 -06:00
hwmaier
5c9c378889 onTwigPageVariables event handler gets Page object passed 2015-10-27 23:04:21 +10:00
Andy Miller
47e1eab6c1 updated bundled composer.phar 2015-10-26 17:31:48 -06:00
Andy Miller
d88f56316d updated changelog 2015-10-26 17:15:25 -06:00
Andy Miller
8b414c388d wrapped_site option in system.yaml 2015-10-26 17:14:58 -06:00
Flavio Copes
acb828eacf Merge pull request #382 from tbreuss/develop
Use of capital and small initial letters
2015-10-26 20:40:31 +01:00
Thomas Breuss
293dfad87e Use of capital and small initial letters 2015-10-26 19:35:08 +01:00
Andy Miller
e4e1927126 Merge pull request #381 from getgrav/feature/check-positive-value
Check a positive value, not just "true"
2015-10-26 11:53:31 -06:00
Flavio Copes
edf6f86cb5 Add a Utils::isPositive(). Use that. 2015-10-26 18:29:22 +01:00
Flavio Copes
d086664a61 Check a positive value, not just "true" 2015-10-26 18:06:28 +01:00
Flavio Copes
b0c171f453 Merge branch 'develop' into feature/introduce-user-groups 2015-10-26 17:48:53 +01:00
Andy Miller
feed15f75b changelog update 2015-10-25 18:46:07 -06:00
Andy Miller
95fd54d909 Moved grav variable into globals and removed from template variables 2015-10-25 16:49:28 -06:00
Andy Miller
79f6380aae improved merging of meta tags into title/alt/class 2015-10-25 16:43:52 -06:00
Andy Miller
8478d690a0 Optimizations to the TAG regex handling for inline CSS/JS 2015-10-25 16:20:01 -06:00
Andy Miller
5db8197db2 use a regex to remove surrounding tags but not inline ones! #376 2015-10-24 22:35:44 -06:00
Andy Miller
8407e5b295 Metadata return a new Data object so nulls are possible #375 2015-10-24 16:01:22 -06:00
Andy Miller
3e3b4548e9 Fix for inline JS and HTML entities #376 2015-10-24 15:21:25 -06:00
Andy Miller
868a61dd34 Fail quietly if file doesn't exist 2015-10-24 14:53:16 -06:00
Andy Miller
a7a5625a8b Revert "Added CSS Group asset support #374"
This reverts commit f65633043a.
2015-10-24 12:19:47 -06:00
Andy Miller
a614c8c7cc Added CSS Group asset support #374 2015-10-24 12:19:22 -06:00
Andy Miller
f65633043a Added CSS Group asset support #374 2015-10-24 12:18:54 -06:00
Djamil Legato
de61d88d29 Synced travis.yml 2015-10-23 16:11:26 -07:00
Djamil Legato
dc57bef5f3 Merge branch 'release/1.0.0-rc.1' 2015-10-23 14:44:38 -07:00
Djamil Legato
9d86c0a9db Merge tag '1.0.0-rc.1' into develop
Release v1.0.0-rc.1
2015-10-23 14:44:38 -07:00
Djamil Legato
2721bb511a Quoting tag for github release 2015-10-23 14:02:52 -07:00
Andy Miller
1e07cb9b5b Merge branch 'release/1.0.0-rc.1' 2015-10-23 14:52:35 -06:00
Andy Miller
39a4a1e9bf Merge branch 'release/1.0.0-rc.1' into develop 2015-10-23 14:52:35 -06:00
Andy Miller
7a56a361a0 version update 2015-10-23 14:52:22 -06:00
Andy Miller
d54359d441 missing semicolons in safeEmailFilter() 2015-10-23 14:12:06 -06:00
Andy Miller
98d0538868 Option to allow all hidden files/folders #306 2015-10-23 10:23:01 -06:00
Andy Miller
f03921690c Created system option for redirect code + allowed [30x] syntax on redirect urls 2015-10-22 14:37:38 -06:00
Andy Miller
46869de29c don't do work if there are no assets found 2015-10-21 18:08:24 -06:00
Andy Miller
b7b29b3f84 Broke out pipeline into two methods for simplicity 2015-10-21 18:03:01 -06:00
Andy Miller
b9e1d9af6e Fix for broken CSS caused by variable overwriting 2015-10-21 17:38:13 -06:00
Andy Miller
edf313a7a2 Fix for empty pipeline asset file 2015-10-21 17:21:14 -06:00
Andy Miller
4f22d1c918 Fix for #373 - pipeline not respecting asset groups 2015-10-21 16:06:56 -06:00
Flavio Copes
67fefb53ad Allow to filter pages by access level 2015-10-21 19:47:06 +02:00
Flavio Copes
0ff5dc0016 Add accessLevels to return the used page access levels 2015-10-21 18:41:34 +02:00
Flavio Copes
ae17a77789 Use config/groups.yaml instead of config/site.yaml 2015-10-21 17:47:39 +02:00
Flavio Copes
5f11ae7482 Allow editing user groups from user form 2015-10-21 12:28:36 +02:00
Flavio Copes
4d33eb2173 Add access to account blueprint 2015-10-21 12:22:04 +02:00
Flavio Copes
fe7873ddbe Allow to remove a group 2015-10-21 12:21:53 +02:00
Flavio Copes
f95a4f5cc6 Move resolve() to Utils. 2015-10-21 12:21:47 +02:00
Flavio Copes
f973b61b5e Change how permissions work: if true in group, but false in user, false has precedence (allows to fine tune removing permissions per-user) 2015-10-21 12:21:23 +02:00
Flavio Copes
f1d4192ae7 Introduce a resolve() function to Utils, used by Group and User to access an array using dot notation 2015-10-21 12:20:45 +02:00
Flavio Copes
fb500d3e1c Handle saving a new group 2015-10-21 11:09:29 +02:00
Andy Miller
98b8f1f9e5 Fix issue with empty yaml not creating an empty array with native YAML parser 2015-10-20 14:39:08 -06:00
Andy Miller
9324847bac Added url_taxonomy_filters to the blueprints 2015-10-20 12:36:42 -06:00
Flavio Copes
14347ebf88 Group object 2015-10-20 19:31:47 +02:00
Flavio Copes
3e0188e40b Group blueprint 2015-10-20 19:31:25 +02:00
Andy Miller
7c6471fe2a Added option to disable url_taxonomy_filters for page collections globally in system.yaml or in content: page header 2015-10-20 10:53:08 -06:00
Andy Miller
647ec528d3 Merge pull request #371 from markioooo/develop
Add dutch language file
2015-10-20 09:10:55 -06:00
Mark de Raaf
667ad5c580 add dutch language file 2015-10-20 16:50:45 +02:00
Flavio Copes
b82f17f367 First draft of group blueprints 2015-10-20 16:36:25 +02:00
Mark de Raaf
2e4866f5fa Add dutch language file nl (nederland) 2015-10-20 16:07:57 +02:00
Flavio Copes
3f28dc59ea Add check 2015-10-20 16:07:04 +02:00
Flavio Copes
77deea8ad4 Allow a user to be assigned to multiple groups 2015-10-20 15:58:07 +02:00
Andy Miller
077ba28706 Added support for collections with @root page and recurse flag 2015-10-19 15:12:21 -06:00
Andy Miller
db2caf4b04 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-10-19 15:05:26 -06:00
Andy Miller
464a65b574 debugger update 2015-10-19 15:05:10 -06:00
Flavio Copes
e27f638fe3 The User authorize method now checks first if the user group the user belongs to has permissions for the resource (single group version) 2015-10-19 20:15:11 +02:00
Flavio Copes
00ae0988ab #368 Block direct access to files and folders beginning with a dot, block access to specific files in the root folder 2015-10-19 20:08:53 +02:00
Andy Miller
ce4350bc63 Fix to address #361 - ability to have multiple collections in a regular list. 2015-10-19 11:18:16 -06:00
Andy Miller
aa60d9f53d Deny direct access to any *.md files (CHANGELOG.md, README.md, etc) 2015-10-19 10:39:18 -06:00
Andy Miller
7cb7891fa7 Always fallback to english if other languages translations are not available. 2015-10-19 10:00:44 -06:00
Andy Miller
3848a266d0 Merge pull request #370 from getgrav/feature/configure-mime-for-downloads
Use media.yaml to determine downloaded files mime type
2015-10-19 09:04:30 -06:00
Flavio Copes
29b8c1d124 Use the 'file' type for some of the recently added mime types
Anything that is an 'image' should be able to have the image
manipulations applied to it. So BMP, Tiff, etc are not valid images in
in this sense. Same goes for Videos, they must be able to be supported
with the tag. -> http://www.w3schools.com/html/html5_video.asp, so
basically that's only: MP4, WebM, and Ogg

Everything else should be under 'files' which are accessible via
media['files'] but not much can be done with them outside of getting
their URL or a simple HTML link
2015-10-19 16:46:26 +02:00
Flavio Copes
813ab70895 Add a remove function to User 2015-10-19 11:39:37 +02:00
Flavio Copes
efcaf00e88 Use media.yaml to determine downloaded files mime type 2015-10-19 10:02:17 +02:00
Andy Miller
5476ef4fa8 Merge pull request #367 from joomline/patch-2
Update ru.yaml
2015-10-16 13:37:23 -06:00
joomline
5857882417 Update ru.yaml
Fix languages
2015-10-16 21:33:07 +02:00
Flavio Copes
fe4d178fb4 Fix #366 SVG content type 2015-10-16 21:24:22 +02:00
Flavio Copes
247e45bfea Merge pull request #365 from aranaur/patch-2
add specific links to 'adding functionality' intro
2015-10-16 15:59:23 +02:00
Drew Gates
b7784a23ff add specific links to 'adding functionality' intro
add links directly to the tabs for plugins and themes on getgrav.org. The first time I loaded the main downloads page I didn't see the plugins/themes tabs because I immediately started scrolling down. It might be worth adding to the bottom of that main page a quick line to the tune of "Looking for plugins or themes? Click here or here."
2015-10-16 09:57:46 -04:00
Flavio Copes
fa4893804e Merge pull request #364 from joomline/patch-1
ru.yaml
2015-10-16 14:52:10 +02:00
joomline
373130d8ac ru.yaml
Russian language for grav cms
2015-10-16 14:43:37 +02:00
Flavio Copes
8e781976eb Fix #362, correct Cache-Control: max-age value 2015-10-16 14:17:44 +02:00
Andy Miller
266b56f947 Updated changelog 2015-10-15 18:15:39 -06:00
Andy Miller
2b8adfee05 Make use of Native YAML parser if available (big speed boost!!) 2015-10-15 17:40:16 -06:00
Andy Miller
d4c4f8593e Updated to latest RocketTheme toolbox 2015-10-15 17:39:22 -06:00
Andy Miller
1f8aa032c4 ensconced leading @-based strings with quotes 2015-10-15 16:34:24 -06:00
Andy Miller
7194f7b674 Updated CHANGELOG 2015-10-15 15:14:12 -06:00
Andy Miller
24db4cfc49 Merge pull request #360 from aranaur/patch-1
formatting
2015-10-15 14:43:48 -06:00
Drew Gates
7781389dea formatting
added a comma.
2015-10-15 16:28:06 -04:00
Andy Miller
30f09994d6 Validate hostname to ensure no nefarious attacks are attempted by manipulating it. 2015-10-15 11:31:32 -06:00
Andy Miller
babd50fb6c Safety check on empty path 2015-10-15 10:23:10 -06:00
Andy Miller
5da88d2751 Ensure error handler is initialized before URI is processed 2015-10-15 10:22:47 -06:00
Andy Miller
1f23f20163 remove multiple slashes in URI 2015-10-15 10:21:56 -06:00
Andy Miller
dadce54a6a Turn off errors by default in preparation for 1.0 2015-10-15 09:58:43 -06:00
Andy Miller
0d3d396229 Various vendor lib updates 2015-10-14 15:44:02 -06:00
Andy Miller
6c39e432d2 Merge pull request #358 from Sommerregen/feature/better-theme-inheritance
Improved theme inheritance to support all kinds of streams
2015-10-14 10:33:27 -06:00
Sommerregen
2a6437a2f1 #357 Improved theme inheritance to support all kinds of streams 2015-10-14 18:22:51 +02:00
Andy Miller
52fcf7c39d Added for consistency #356 2015-10-14 06:07:39 -06:00
Andy Miller
f47d3faea9 fix for redirecting to external URL when under a language #339 2015-10-13 21:49:37 -06:00
Andy Miller
d1e7ec2e22 Merge pull request #353 from Sommerregen/feature/theme-inheritance
Feature/theme inheritance
2015-10-13 17:10:46 -06:00
Andy Miller
1efab799b5 Refactored to make #228 more robust and allow lang to be removed from URL. 2015-10-13 16:58:34 -06:00
Andy Miller
7ad9996cc3 Removed home_redirect settings (conflict with new include_default_lang setting) 2015-10-13 16:53:52 -06:00
Flavio Copes
00ec536761 Add the evaluate Twig function 2015-10-13 23:32:52 +02:00
Andy Miller
3f2d9b42c8 Merge pull request #355 from hwmaier/feature/backupignore
Add a few more common RCS to ignore folders
2015-10-13 11:27:02 -06:00
hwmaier
ce76eeb512 Add a few more common RCS to ignore folders 2015-10-13 19:14:52 +10:00
Andy Miller
1bc4a6f208 Support for a disabling the default language prepend in the URL #228 2015-10-12 17:45:36 -06:00
Sommerregen
8595b7972b Addresses #154 and finalize theme inheritance implementation 2015-10-12 18:47:40 +02:00
Sommerregen
22054e232f Load languages files in the correct way and fallback to parent theme language file else 2015-10-12 18:45:31 +02:00
Flavio Copes
5876b6693a Fix #349, use default language if active language is not set 2015-10-09 12:25:55 +02:00
Andy Miller
9ef501fe0c Merge pull request #346 from Sommerregen/bugfix/load-language-files
Load language files according to stream configurations
2015-10-08 10:14:04 -06:00
Andy Miller
08790aa9a8 Merge branch 'release/0.9.45' 2015-10-08 10:04:00 -06:00
Andy Miller
79f244f012 Merge branch 'release/0.9.45' into develop 2015-10-08 10:04:00 -06:00
Andy Miller
143653e2ce version update 2015-10-08 10:02:59 -06:00
Flavio Copes
ef83d874c3 Make a local copy of the array prior to sorting it, fixes #348 2015-10-08 16:19:34 +02:00
Andy Miller
eb999c3dc9 Merge branch 'release/0.9.44' 2015-10-07 20:49:05 -06:00
Andy Miller
9a455901dd Merge branch 'release/0.9.44' into develop 2015-10-07 20:49:05 -06:00
Andy Miller
c207fe563e version update 2015-10-07 20:48:52 -06:00
Andy Miller
ce8e985e56 Added a check in bin/gpm install command that could cause open_basedir errors. 2015-10-07 16:53:00 -06:00
Andy Miller
0f4c65f689 Fix HHVM error #344 2015-10-07 15:56:29 -06:00
Sommerregen
f332cee568 Load plugins and themes from multiple directories 2015-10-06 19:20:15 +02:00
Sommerregen
0fa53d5f5d Load language files according to stream configurations 2015-10-06 19:19:42 +02:00
Flavio Copes
e5933811fd Fix for repositories not reachable, fixes #345 2015-10-06 18:18:00 +02:00
Andy Miller
9ae506ad07 strip tags is redundant after a urldecode 2015-10-06 09:51:07 -06:00
Andy Miller
12101f6014 Address an XSS vulnerability #15 2015-10-06 09:02:01 -06:00
Andy Miller
93af0e7992 modulus filter 2015-10-05 16:34:22 -06:00
Andy Miller
abfa90755e revert pretty twig error as it obscures useful error messages 2015-10-05 16:34:06 -06:00
Flavio Copes
f302c8a5d4 Fix https://github.com/getgrav/grav-plugin-admin/issues/180, urldecode images basenames in ParsedownGravTrait 2015-10-04 14:28:00 +02:00
Flavio Copes
b7da95bc36 Sort available languages in reverse order so region-specific language comes always prior to the general one (e.g. 'en-GB|en-US|en') 2015-10-03 18:05:34 +02:00
Flavio Copes
14b014be20 Check $page is not null prior to calling some method on it 2015-10-03 18:04:55 +02:00
Flavio Copes
9669fe90d7 If the language name is region-specific (longer then 2 chars), then return it in a readable way, e.g. English (US) / English (GB) 2015-10-03 14:07:30 +02:00
Andy Miller
e0d51beb84 PHP 5.4 fix 2015-10-02 16:58:34 -06:00
Flavio Copes
198046a5d3 Use admin helper methods to get the new page defaults 2015-10-01 15:32:52 +02:00
Flavio Copes
16dd2fea4c Handle special case of <? tags in the Truncator, fixes https://github.com/getgrav/grav-plugin-admin/issues/204 2015-10-01 09:17:03 +02:00
Flavio Copes
b8a38c2fb6 Add a isHuman() method to the Browser class with some basic checks on bot or human request 2015-09-30 18:46:22 +02:00
Flavio Copes
9a2906e9db Make sure validating nested arrays works for string values too, fixes https://github.com/getgrav/grav-plugin-admin/issues/196 2015-09-30 15:39:17 +02:00
Andy Miller
578140256b fix for empty media attributes on assets 2015-09-28 18:48:57 -06:00
Andy Miller
c614d27f3e Merge pull request #338 from maelsoucaze/french-translation
Add French translation
2015-09-28 16:39:21 -06:00
Maël Soucaze
538dff16a6 Add French translation 2015-09-29 00:36:19 +02:00
Andy Miller
fd1118d493 updated the .txt version with indexes 2015-09-28 16:24:45 -06:00
Andy Miller
6bb00c73de Merge pull request #334 from jeffam/develop
Add default apache resource for index.php
2015-09-28 16:20:57 -06:00
Andy Miller
cca7eb6c6d Merge pull request #337 from kunago/develop
Adding the Czech translation.
2015-09-28 16:20:15 -06:00
Miroslav Abrahám
a35aad61ee Adding the Czech translation. 2015-09-28 23:56:42 +02:00
Andy Miller
f30a586b5c Merge pull request #335 from Sommerregen/feature/add-css-media-attribute
Add CSS media attribute
2015-09-27 12:30:44 -06:00
Sommerregen
03fadd86f0 Removed unneccessary code 2015-09-27 19:21:02 +02:00
Sommerregen
2d133f3d57 Add CSS media attribute 2015-09-27 11:13:42 +02:00
Andy Miller
fa60b93ff9 Fix for #331 2015-09-25 10:56:14 -06:00
Jeff Amaral
65729d9d86 Add default apache resource 2015-09-19 22:01:27 -04:00
Andy Miller
15d3d8c709 Fix for ports being included in HTTP_HOST 2015-09-18 14:19:52 -06:00
Andy Miller
8b49eca549 style formatting updates 2015-09-18 10:27:36 -06:00
Andy Miller
2cd2cb0480 added -y option to bin/gpm update #333 2015-09-18 10:27:23 -06:00
Andy Miller
5c1112f552 style format updates 2015-09-18 10:26:31 -06:00
Andy Miller
f84363fbf1 Take into account HTTP_HOST before SERVER_NAME #188 2015-09-18 08:10:01 -06:00
Flavio Copes
3afce91504 Merge pull request #332 from getgrav/feature/fix-saving-array-fields
Fix saving array fields
2015-09-18 14:26:21 +02:00
Flavio Copes
57b18edb55 Fix saving array fields 2015-09-18 14:13:23 +02:00
Flavio Copes
2c278c1fde Fix saving pages when removing the page title and all other header elements 2015-09-17 18:19:42 +02:00
Flavio Copes
1ae743e60c Merge pull request #330 from stell/develop
started german language file
2015-09-17 14:14:05 +02:00
Tom Bohacek
3f701f8c55 Update de.yaml 2015-09-17 14:09:55 +02:00
Tom Bohacek
cff36d7cde Create de.yaml 2015-09-17 14:04:27 +02:00
Flavio Copes
4153dbb8e5 Allow translations for the twig nicetime filter. Provide italian translation. Refs #324 2015-09-17 13:51:56 +02:00
Flavio Copes
d2ee4310e6 Merge pull request #329 from dimayakovlev/develop
Change nativeName for Russian language
2015-09-17 09:35:36 +02:00
Andy Miller
575282dbe8 Added Redis back 2015-09-16 17:02:39 -06:00
Andy Miller
2f3c5b59a5 url decode to allow complex syntax in actions 2015-09-16 16:21:40 -06:00
Дмитрий Яковлев
fb91c361bc Merge pull request #1 from dimayakovlev/dimayakovlev-patch-1
Update LanguageCodes.php
2015-09-17 00:03:53 +03:00
Дмитрий Яковлев
dce8c78882 Update LanguageCodes.php
Change nativeName for Russian language.
2015-09-16 22:38:39 +03:00
Andy Miller
129b5d58d7 Merge pull request #326 from attiks/responsive_image
Fix chaining for sizes and derivatives
2015-09-16 13:26:12 -06:00
Peter Droogmans
9a454a9c89 Fix chaining for sizes and derivatives 2015-09-16 21:16:14 +02:00
Andy Miller
63bb99d2f1 Merge branch 'release/0.9.43' 2015-09-16 12:44:05 -06:00
Andy Miller
60644c38dd Merge branch 'release/0.9.43' into develop 2015-09-16 12:44:05 -06:00
Andy Miller
8ff21e6718 version update 2015-09-16 12:43:51 -06:00
Andy Miller
34a079aae4 Updated changelog again 2015-09-16 12:25:25 -06:00
Andy Miller
a73972f11a missed copy for theme install via CLI GPM 2015-09-16 11:02:02 -06:00
Andy Miller
f18dbbaf4c Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-09-16 10:42:17 -06:00
Andy Miller
633f0a7c6d changelog update 2015-09-16 10:42:07 -06:00
Andy Miller
3ffd6ed833 Merge pull request #325 from attiks/responsive_image
Responsive Image Derivatives support
2015-09-16 10:06:41 -06:00
Andy Miller
da74bd7428 Fix for broken routable logic #322 2015-09-16 10:01:49 -06:00
Andy Miller
51615f4ada composer version updates 2015-09-16 10:00:57 -06:00
Peter Droogmans
9c0525f292 Add comments 2015-09-16 17:41:26 +02:00
Jelle-S
952ed806ac Add support for derivatives 2015-09-16 17:32:21 +02:00
Andy Miller
86ca9cf01c ok this time, trim properly! 2015-09-15 17:18:23 -06:00
Andy Miller
d4bac5a6da trim to remove any extra dashes 2015-09-15 17:16:21 -06:00
Andy Miller
cfdead2bbf hyphenize the site name when doing a backup 2015-09-15 17:09:18 -06:00
Andy Miller
357ebbb6be added post/preflight processing + copyInstall() method for themes 2015-09-15 16:04:49 -06:00
Andy Miller
3908ada113 fail quietly if you try to remove a folder that doesn't exist 2015-09-15 16:04:17 -06:00
Andy Miller
93ae7fbaee fix for ampersand & in XHTML content 2015-09-15 11:02:39 -06:00
Andy Miller
dbe4bb87d0 fixes for image links with multilang support 2015-09-15 10:12:30 -06:00
Andy Miller
565152dee0 only add language prefix for links, not images. 2015-09-14 22:30:38 -06:00
Andy Miller
29fb88fbdc Revert "prepend active language to convertUrl() used by markdown link handling"
This reverts commit 70831690a5.
2015-09-14 22:20:03 -06:00
Andy Miller
70831690a5 prepend active language to convertUrl() used by markdown link handling 2015-09-14 21:41:56 -06:00
Andy Miller
d90da464b3 Merge branch 'feature/assets_grouped' into develop 2015-09-14 16:20:01 -06:00
Andy Miller
d81b08eda7 Fixes for inline JS leaving empty tags 2015-09-14 14:22:20 -06:00
Andy Miller
37f6bef152 more assets work - added default of 'head' for group in JS 2015-09-14 14:03:55 -06:00
Andy Miller
8ed6ebb0fe typo 2015-09-14 14:03:30 -06:00
Flavio Copes
83ceb1b1f7 Restore static $method variable in GPM response 2015-09-14 15:20:56 +02:00
Flavio Copes
4cef330f0b Fix method doc 2015-09-14 14:51:50 +02:00
Andy Miller
8573c3736a updated to latest toolbox version 2015-09-13 22:33:37 -06:00
Andy Miller
bee065d603 fixed a missed camelCase 2015-09-13 21:25:29 -06:00
Andy Miller
0f1f336c3a updated composer packages 2015-09-13 21:19:20 -06:00
Andy Miller
66d5eab041 Removed Traceable Twig Environment that has been deprecated by the Twig project 2015-09-13 21:19:02 -06:00
Andy Miller
075c5f90cc various analysis fixes 2015-09-13 20:04:47 -06:00
Andy Miller
28b88f1566 various unused things removed 2015-09-13 19:31:38 -06:00
Andy Miller
70e347cfce removed todo's 2015-09-13 19:25:43 -06:00
Andy Miller
42987d96e3 switched out logical operator 2015-09-13 19:22:26 -06:00
Andy Miller
2c85f1cc2b Merge pull request #321 from namaless/patch-1
Fix for some unix only commands not intended to be used on Windows platforms
2015-09-13 10:19:35 -06:00
Pereira Ricardo
35c67d6e8f Use local config file only in non windows system. 2015-09-13 18:10:36 +02:00
Pereira Ricardo
c91d06e4c6 Use local config file only in non windows system. 2015-09-13 18:09:03 +02:00
Pereira Ricardo
b991bf5301 Added method for validate if the system is windows 2015-09-13 18:06:53 +02:00
Andy Miller
d2ecdf2016 Merge pull request #320 from DonLiborio/develop
New Audio Medium added
2015-09-13 10:00:14 -06:00
DonLiborio
c27497dd16 Added new Audio Medium 2015-09-13 12:30:55 -03:00
unknown
da58ff3d7a New class AudioMedium added 2015-09-13 12:19:13 -03:00
Andy Miller
e366cdfb05 Merge branch 'hotfix/0.9.42' 2015-09-11 16:29:33 -06:00
Andy Miller
e92e9296c7 Merge branch 'hotfix/0.9.42' into develop 2015-09-11 16:29:33 -06:00
Andy Miller
67d17080e6 version update 2015-09-11 16:29:19 -06:00
Andy Miller
345ed1178c missing return statement 2015-09-11 16:27:53 -06:00
Andy Miller
e54c614f9f Merge branch 'release/0.9.41' into develop 2015-09-11 13:27:00 -06:00
Andy Miller
f8c02d065e Merge branch 'release/0.9.41' 2015-09-11 13:26:59 -06:00
Andy Miller
07fe7f4f89 typos 2015-09-11 13:26:38 -06:00
Andy Miller
546bb9bb13 version update 2015-09-11 13:25:13 -06:00
Andy Miller
5208304ef6 Fix for modular template types not getting found 2015-09-11 12:21:36 -06:00
Andy Miller
9ce5cc8f77 Added logic for configuring redirect in admin 2015-09-11 10:47:26 -06:00
Andy Miller
bef9e3c5ce Add simple redirect: header option for Page 2015-09-11 10:21:25 -06:00
Andy Miller
572bb429ce Fix for #317 markdown_extra: overriding markdown:extra: 2015-09-11 09:38:32 -06:00
Andy Miller
955e985f4d Merge pull request #316 from getgrav/feature/conform-to-authorize
Conform to authorize
2015-09-11 09:21:24 -06:00
Flavio Copes
fab8667dd4 Fix typo 2015-09-11 15:14:23 +02:00
Flavio Copes
03a8baf51c Order twig filters and functions by name 2015-09-11 15:13:01 +02:00
Flavio Copes
1f2f259554 Conform to authorize 2015-09-11 14:59:29 +02:00
Flavio Copes
989f5f5b61 Check to prevent error when Grav cannot reach the remote 2015-09-10 22:33:57 +02:00
Flavio Copes
063b31e7e6 Added authorize twig extension 2015-09-10 21:29:18 +02:00
Andy Miller
9abbb85b4a update composer.lock file with new versions 2015-09-10 12:49:56 -06:00
Andy Miller
2ecebd14b0 added check for mbstring support 2015-09-10 12:49:38 -06:00
Andy Miller
2f38277993 Refactored the truncate and truncateHTML methods. new 'word-safe' versions and UTF8 compatible. #313 #315 2015-09-10 12:49:19 -06:00
Andy Miller
faf690b833 Fixed all() not actually returning all pages... 2015-09-09 19:37:48 -06:00
Andy Miller
506517901d Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-09-09 15:01:55 -06:00
Andy Miller
2a1f5500bd translate message 2015-09-09 15:01:47 -06:00
Flavio Copes
38fad35119 Add ofOneOfTheseTypes() to Collection 2015-09-09 21:18:14 +02:00
Andy Miller
502eab85bf add support for yaml toggle to save in yam format 2015-09-09 13:07:01 -06:00
Flavio Copes
567169c4cb Add ofType() method to Collection, to filter collections by type 2015-09-09 09:27:17 +02:00
Andy Miller
cdc3f45257 Just filter published 2015-09-08 17:49:15 -06:00
Andy Miller
f7ff0f8ad5 fix typos in publish/unpublish date fields 2015-09-08 17:43:50 -06:00
Andy Miller
f9ac87db3a new editable select drop down for default date format 2015-09-08 17:43:23 -06:00
Andy Miller
b712174136 Merge pull request #310 from mufac/patch-3
Fix bug in newuser command
2015-09-08 11:12:24 -06:00
Andy Miller
81ca34ea1d Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-09-08 11:07:45 -06:00
Andy Miller
27a2f462a0 fix for page name and multilang 2015-09-08 11:07:38 -06:00
mufac
986664a766 Fix bug in newuser command
grav newuser was setting password to null irrespective of what was entered at the console
2015-09-07 21:34:55 -05:00
Andy Miller
3a4bea928a Merge pull request #309 from vitorgalvao/patch-1
nginx.conf: cosmetic fixes
2015-09-07 18:02:06 -06:00
Vítor Galvão
0ad8c43c7b nginx.conf: cosmetic fixes 2015-09-08 00:58:55 +01:00
Andy Miller
87ddd619de Added the ability to set the default PHP locale and override via multilang config #299 2015-09-07 16:54:48 -06:00
Andy Miller
5827fe4a22 minor refactor 2015-09-07 15:28:05 -06:00
Andy Miller
bd06842375 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-09-07 15:15:28 -06:00
Andy Miller
71c8dcb595 fix for multisite routing 2015-09-07 15:15:18 -06:00
Andy Miller
1b76486bff Added configurable ignore files/folders 2015-09-07 15:14:57 -06:00
Andy Miller
7b1d5efe0d Merge pull request #308 from nunull/develop
[bin/grav newuser] Hide input when prompting for password (Fixes #307)
2015-09-07 15:00:15 -06:00
Timm Albers
9d7a46fe94 [bin/grav newuser] Prompt twice for password since input is hidden (Fixes #307) 2015-09-07 19:18:26 +02:00
Timm Albers
e494c87e28 [bin/grav newuser] Hide input when prompting for password (Fixes #307) 2015-09-07 18:10:51 +02:00
Andy Miller
6215f148b5 underlines back in site.yam config 2015-09-07 09:23:26 -06:00
Andy Miller
7f35c69b12 Merge pull request #305 from getgrav/feature/work-on-form-plugin
Work related to the Form plugin
2015-09-07 09:19:15 -06:00
Andy Miller
0688909fb7 simple implementation of multiple content collections for a page 2015-09-06 12:59:34 -06:00
Andy Miller
a5e2f76cb8 @taxonomy collection should only get non-modular and published pages 2015-09-06 10:58:14 -06:00
Andy Miller
119e52fa15 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-09-05 19:20:50 -06:00
Andy Miller
083ef6d474 Added routable logic so modular pages are not routable by default (as intended!) 2015-09-05 19:20:43 -06:00
Andy Miller
d7bbbb2d76 Merge pull request #301 from getgrav/allow-validate-pages-from-outside-admin
Allow validating a page from outside the admin plugin
2015-09-05 12:45:13 -06:00
Flavio Copes
2fa9f79962 Allow validating a page from outside the admin plugin
This change allows a plugin to call validate() (which in turn calls blueprints()) on a page from the front, without needing the admin plugin to be active and set in the Grav object.
2015-09-05 11:55:22 +02:00
Andy Miller
8fdac33219 fix for themes with multiple stream prefixes 2015-09-04 09:42:44 -06:00
Flavio Copes
d3e4adb3c4 Renamed uploads form field to pagemedia 2015-09-04 16:59:29 +02:00
Flavio Copes
469ab56b64 Add a string Twig function that renders arrays as json_encoded strings, and just outputs other values (used by the form plugin) 2015-09-04 14:59:41 +02:00
Andy Miller
89c694443d Better twig error msg (part 2) 2015-09-03 16:45:07 -06:00
Andy Miller
6fd95154bb Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-09-03 12:01:53 -06:00
Andy Miller
4de2665192 Truncator improvements 2015-09-03 12:01:43 -06:00
Flavio Copes
23d38083f6 Merge pull request #297 from getgrav/work-on-images
Correctly generate 2x image too and make it available to srcset, fixes #133
2015-09-03 15:13:07 +02:00
Flavio Copes
0ae486737f Correctly generate 2x image too and make it available to srcset, fixes #133 2015-09-03 15:12:02 +02:00
Flavio Copes
cd3aa54a12 Focus on frontmatter in expert mode 2015-09-03 13:20:52 +02:00
Andy Miller
ec55020f77 Filter to save dates based on default format if it has been set 2015-09-02 17:17:21 -06:00
Andy Miller
d4461f075b Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-09-02 15:29:50 -06:00
Andy Miller
f67bb675a1 Added support for custom page date format: https://github.com/getgrav/grav-plugin-admin/issues/135 2015-09-02 15:29:41 -06:00
Andy Miller
a084f804f2 Merge pull request #295 from mufac/patch-2
Set default when config option is empty
2015-09-01 18:59:11 -06:00
mufac
a898f97d21 Set default when config option is empty
The default config option is an empty array, which causes get() to return null, which can lead to an error with the type of the second argument to in_array().
2015-09-01 19:50:00 -05:00
Andy Miller
9c3b062cff changed order to address redirect loop 2015-08-31 21:47:58 -06:00
Andy Miller
dd00f34cb8 Default to performing a 301 redirect for URIs with trailing slashes 2015-08-31 21:28:00 -06:00
Andy Miller
b9e24712a8 added missing accounts/ folder 2015-08-31 18:07:04 -06:00
Andy Miller
1ebbef257e Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-08-31 17:57:23 -06:00
Andy Miller
e7aca138d3 Log all from debug onward 2015-08-31 17:57:09 -06:00
Djamil Legato
f0ed155814 Added support for automatic package release of grav-admin 2015-08-31 16:54:38 -07:00
Andy Miller
838ddabd3c slight modification to not include ellipsis on sentence break 2015-08-31 16:26:29 -06:00
Andy Miller
5f3c20b71b updated truncate filter with a new optional toggle to enable/disable going up to a break character 2015-08-31 16:20:02 -06:00
Andy Miller
76bff5a1a9 moved dependencies to master 2015-08-31 15:41:02 -06:00
Andy Miller
e7270f17fd Merge branch 'release/0.9.40' 2015-08-31 10:22:34 -06:00
Andy Miller
aa709c4089 Merge branch 'release/0.9.40' into develop 2015-08-31 10:22:34 -06:00
Andy Miller
807032b0f0 version update 2015-08-31 10:21:24 -06:00
Andy Miller
b2597d1058 safety check when clearing cache paths 2015-08-31 09:02:07 -06:00
Andy Miller
56bb8c0304 explicit null value 2015-08-31 08:09:30 -06:00
Andy Miller
c4a51c2c9f Merge pull request #294 from fantasticme/develop
.htaccess hardening
2015-08-30 10:21:16 -06:00
Ionut Morariu
c3cdf0238a .htaccess hardening 2015-08-30 18:16:20 +02:00
Andy Miller
f28fc339df Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-08-29 10:40:49 -06:00
Andy Miller
45be24192e Support for page file name + template override 2015-08-29 10:40:43 -06:00
Flavio Copes
bb2929dfe9 Fix space between words 2015-08-29 17:05:40 +02:00
Flavio Copes
5b2cf24840 Merge pull request #289 from getgrav/autofocus-page-title
Put autofocus on page title
2015-08-29 15:42:33 +02:00
Andy Miller
19688ffcb5 Merge pull request #288 from getgrav/fix-123
Solve an issue with apostrophes in the taxonomy name
2015-08-29 07:28:35 -06:00
Flavio Copes
0baab3ae9f Put autofocus on page title
Refs https://github.com/getgrav/grav-plugin-admin/issues/122
2015-08-29 13:23:19 +02:00
Flavio Copes
9364c07c81 Solve an issue with apostrophes in the taxonomy name
Fixes #123
2015-08-29 11:58:24 +02:00
Flavio Copes
b46ab8aa5b Fix order by select size 2015-08-29 10:47:29 +02:00
Andy Miller
9d70a93619 Added a few filters 2015-08-28 13:39:57 -06:00
Andy Miller
688ec17cba some fixes for no siblings 2015-08-28 11:38:52 -06:00
Andy Miller
8bdef0dc57 Merge branch 'develop' of https://github.com/getgrav/grav into develop 2015-08-28 10:59:59 -06:00
Andy Miller
826fa8e225 switch to 'install' by default and use composer.lock 2015-08-28 10:59:54 -06:00
Flavio Copes
c41e58b1d7 Fix translation label 2015-08-28 16:52:18 +02:00
Flavio Copes
198c181ed7 Add help to the username blueprint 2015-08-28 16:01:42 +02:00
Flavio Copes
665974a21e Prevent error, check if $child_page is not null 2015-08-28 15:55:21 +02:00
Flavio Copes
be4af2403b Better explanation for bin/grav newuser username format 2015-08-28 15:55:21 +02:00
Andy Miller
19a4480b96 Merge pull request #284 from mufac/patch-1
Fix issue with date format for PHP 5.1.0+
2015-08-26 15:20:34 -06:00
mufac
f58df3c48f Fix issue with date format for PHP 5.1.0+
As of PHP 5.1.0 the character 'o' represents the ISO-8601 year number in a date format. Therefore the 'o' needs to be escaped to avoid being converted to a year in the admin > configuration > system > long/short date format pulldown menu.

I should note that this fixes the issue for English, but you might want to consider moving the date format into a language string in order to provide better multi-language support.
2015-08-26 15:50:55 -05:00
Andy Miller
a19e20e347 Better error message on incompatible template file 2015-08-26 11:20:14 -06:00
Andy Miller
cb074afd85 Merge branch 'release/0.9.39' 2015-08-25 10:45:28 -06:00
Andy Miller
03613481a3 Merge branch 'release/0.9.39' into develop 2015-08-25 10:45:28 -06:00
Andy Miller
7e3226e596 version update 2015-08-25 10:45:04 -06:00
Flavio Copes
c7c81e5380 Solve issue in page.active for the homepage. Fixes #279 2015-08-25 17:37:16 +02:00
Flavio Copes
b3c1584630 Fix issue with session name containing invalid characters
The underscore '_' is not a valid char for session name. Not sure why I
was only getting this error in Opera
https://stackoverflow.com/questions/3185779/the-session-id-is-too-long-o
r-contains-illegal-characters-valid-characters-are
2015-08-25 11:06:38 +02:00
Andy Miller
889a1a147c Merge branch 'release/0.9.38' into develop 2015-08-24 15:06:40 -06:00
Andy Miller
795268a98b Merge branch 'release/0.9.38' 2015-08-24 15:06:39 -06:00
Andy Miller
70a36602e8 version update 2015-08-24 14:46:14 -06:00
Andy Miller
46736becc7 updated 2015-08-24 14:45:05 -06:00
Andy Miller
af160168f1 Revamped metadata to use same customizable array system as the site.yaml 2015-08-24 13:41:28 -06:00
Flavio Copes
6e21a3f56a Drop @deprecated line 2015-08-24 09:07:30 +02:00
Andy Miller
86f29ebe57 Fix for trailing / not matching active and activeChild paths #277 2015-08-21 13:19:24 -06:00
Andy Miller
cf867d29a0 Added symfony dump() method for debugging 2015-08-21 13:13:33 -06:00
Andy Miller
93a3d800ef remove required to sync with normal 2015-08-21 11:39:20 -06:00
Matias Griese
056ad33f50 Fix blueprint @extends with external context (regression from #38) 2015-08-21 19:04:44 +03:00
Andy Miller
e750e1b183 Merge pull request #276 from Sommerregen/patch-1
Fix error from grav-plugin-admin issue # 80
2015-08-21 09:04:10 -06:00
Andy Miller
257949505c Merge pull request #275 from akoebbe/feature/arbitrary-date-collection-filter
Feature/Allow the use of custom datetime fields for collection filtering
2015-08-21 09:01:51 -06:00
Andrew Koebbe
b688660ff3 Move the $field param to the end of the method for backward compatibility. 2015-08-21 09:54:14 -05:00
Benny
ddc98f99da Fix error from gav-plugin-admin issue # 80
This change fixes an issue connected with https://github.com/getgrav/grav-plugin-admin/issues/80 that occurred when installing plugins removing the duplicate slash in the beginning due to https://github.com/getgrav/grav/blob/develop/system/defines.php#L17 .
2015-08-21 14:15:31 +02:00
Andrew Koebbe
8e41b51cb7 Allow the use of any custom page date field for dateRange collection filtering. 2015-08-20 23:37:29 -05:00
Andy Miller
0675ce718c better/safer parent route logic 2015-08-20 17:38:07 -06:00
Andy Miller
25ac6a0600 Merge branch 'feature/work-on-languages-workflow' into develop 2015-08-20 15:38:40 -06:00
Andy Miller
e8ca646070 updated toolbox 2015-08-20 15:38:21 -06:00
Flavio Copes
ce8fd4d3ef Add pathPrefixedByLangCode to Utils, fix generating pages routes for translated languages 2015-08-20 19:55:00 +02:00
Matias Griese
26d1973110 Fix blueprints loading (regression from #38) 2015-08-20 20:45:39 +03:00
Matias Griese
c4cd355f5b Add support for extending blueprints with its parent (single level only) 2015-08-20 12:23:41 +03:00
Matias Griese
4a59b8ae43 Fix logic to list and load blueprints by using streams (#38) 2015-08-20 11:35:01 +03:00
Andy Miller
c3f2ddf3e4 fixed a typo 2015-08-19 18:11:02 -06:00
Andy Miller
8cbb86045e Added a simple base_url with no language (useful for admin) 2015-08-19 14:58:42 -06:00
Flavio Copes
e54b202de3 Add translatedLanguages and untranslatedLanguages methods to Page class 2015-08-19 14:30:09 +02:00
Andy Miller
6466241cbb unset plaintext pw and hash on user save 2015-08-18 19:07:34 -06:00
Flavio Copes
dbccdbd51f Merge branch 'feature/translate-blueprints' into develop 2015-08-18 20:33:21 +02:00
Flavio Copes
3141336c9b Translate system config 2015-08-18 16:59:17 +02:00
Flavio Copes
07bf588aa4 All pages blueprints translated 2015-08-18 16:18:01 +02:00
Flavio Copes
ce84648689 Translate page default blueprint 2015-08-18 15:51:53 +02:00
Flavio Copes
cdef7d62c8 Translate user blueprints, config/media, config/site 2015-08-18 15:16:06 +02:00
Flavio Copes
440c27d27b blueprints/user/account.yaml 2015-08-18 14:45:10 +02:00
Andy Miller
e82b90b117 better lang chooser 2015-08-17 18:21:04 -06:00
Flavio Copes
1ecf147764 Merge pull request #270 from getgrav/feature/translate-admin
Feature/translate admin
2015-08-17 16:33:36 +02:00
Andy Miller
58b9ecf030 Added ordering to raw blueprints 2015-08-16 14:06:25 -06:00
Andy Miller
0e28dc835e Added translation for frontmatter error 2015-08-16 13:51:04 -06:00
Flavio Copes
8800f48312 Add requirements to the readme, fixes #264 2015-08-16 09:10:53 +02:00
Andy Miller
6315004a24 change title to slug 2015-08-14 22:16:40 -06:00
Andy Miller
ee63192512 catch header parse exception and create a simple page so site doesn't break 2015-08-14 16:30:18 -06:00
Andy Miller
1c9dec6ea4 unset route and slug 2015-08-14 15:01:13 -06:00
Andy Miller
6fd85c8dbd Stuff needed for page vibility/ordering setting 2015-08-14 14:30:11 -06:00
Andy Miller
80e4ed1746 Tweak the default layout 2015-08-14 14:29:04 -06:00
Flavio Copes
06b5a93fe9 Add language to user blueprint 2015-08-13 18:30:17 +02:00
Flavio Copes
7ca2e9b5f0 Merge branch 'develop' into feature/translate-admin 2015-08-13 18:30:02 +02:00
Djamil Legato
274ff3d8c0 Additional slug fixes with GPM (#44). Increased spaces in GPM CLI 2015-08-12 10:41:47 -07:00
Flavio Copes
42e6d587d8 Fix slug to be lowercase 2015-08-12 15:35:45 +02:00
Andy Miller
c13daf7780 Merge branch 'release/0.9.37' 2015-08-12 06:31:53 -06:00
Andy Miller
e47b3e73d3 Merge branch 'release/0.9.37' into develop 2015-08-12 06:31:53 -06:00
Andy Miller
38a7b0d7ab version update 2015-08-12 06:31:07 -06:00
Andy Miller
e13c5c214a reverted !empty to isset and put in some casting logic to handle empty/invalid values 2015-08-12 06:22:49 -06:00
Andy Miller
a975786b7b fix for empty string header values throwing errors 2015-08-12 05:57:14 -06:00
Andy Miller
0bccaf5458 Merge branch 'release/0.9.36' 2015-08-11 19:38:18 -06:00
Andy Miller
9b760da29b Merge branch 'release/0.9.36' into develop 2015-08-11 19:38:18 -06:00
Andy Miller
5a7ad45a7e version update 2015-08-11 19:38:07 -06:00
Andy Miller
3cf5c6e4ab Use GRAV_ROOT for session identifier #53 2015-08-11 15:46:48 -06:00
Flavio Copes
659517001b Revert "Force english in admin"
This reverts commit 8962d2b1e4.
2015-08-11 10:14:08 +02:00
Flavio Copes
4c94776ace Minor code improvements and typos 2015-08-11 10:08:45 +02:00
Andy Miller
76c4da7945 support user and system languages 2015-08-08 14:44:30 -06:00
Andy Miller
aacd9732f2 Added a newuser command to make creating users simpler 2015-08-08 11:24:18 -06:00
Andy Miller
16b2cccea4 Use sessions for admin even when sessions are disabled 2015-08-07 15:15:28 -06:00
Djamil Legato
8922f6a486 Added isSymlink logic to determine if Grav is symbolically linked or not. 2015-08-07 13:33:25 -07:00
Flavio Copes
d28656ce4b Update system blueprint to use the current date in the date format select, refs getgrav/grav-plugin-admin#26 2015-08-07 21:59:50 +02:00
Flavio Copes
8c4f6d68e8 Better example for date format, fixes getgrav/grav-plugin-admin#26 2015-08-07 21:16:17 +02:00
Andy Miller
972987c515 updated composer.phar 2015-08-07 13:10:23 -06:00
Andy Miller
09fc5b768e Merge branch 'feature/update-pages-blueprint' into develop 2015-08-07 11:57:14 -06:00
Andy Miller
77caad9944 refactor recurse with public method to reset pages cache 2015-08-07 08:13:29 -06:00
Flavio Copes
5c367ac598 Update pages blueprint to add toggleable and remove the global options 2015-08-07 12:11:01 +02:00
Andy Miller
867445cbd8 refactor the blueprints fallback a little 2015-08-06 22:26:51 -06:00
Andy Miller
65df265e30 Added a default type as a default type :) 2015-08-06 22:26:19 -06:00
Andy Miller
11869ad4ec Merge branch 'release/0.9.35' 2015-08-06 18:38:48 -06:00
Andy Miller
62b8486431 Merge branch 'release/0.9.35' into develop 2015-08-06 18:38:48 -06:00
Andy Miller
11fc34cfed version update 2015-08-06 18:38:35 -06:00
Andy Miller
b5717c2cbb Merge branch 'develop' of https://github.com/getgrav/grav into develop
# By Djamil Legato (1) and Sommerregen (1)
# Via Andy Miller (1) and Djamil Legato (1)
* 'develop' of https://github.com/getgrav/grav:
  Fixed GPM issue when using cURL throwing an `Undefined offset: 1` exception
  Fix #248 (Plugin language interference) and fixed summary
2015-08-06 18:31:21 -06:00
Andy Miller
0c085a5aab Override save to not store the username field 2015-08-06 18:31:08 -06:00
Andy Miller
5cee23cbfa Added new unsetRoute() to allow route() to rebuild 2015-08-06 18:30:50 -06:00
Andy Miller
1e168b3100 made username disabled 2015-08-06 18:30:24 -06:00
Djamil Legato
018f7a6dec Fixed GPM issue when using cURL throwing an Undefined offset: 1 exception 2015-08-06 11:31:37 -07:00
Andy Miller
a62e88f22b Merge pull request #249 from Sommerregen/bugfix/plugin-language-interference
Fix #248 (Plugin language interference) and fixed summary
2015-08-06 12:20:52 -06:00
Sommerregen
dc5ba9eff4 Fix #248 (Plugin language interference) and fixed summary 2015-08-06 19:59:20 +02:00
Andy Miller
4bebdfe0c7 fixed metadata merging (hopefully!) 2015-08-05 22:27:26 -06:00
Andy Miller
f8fd065192 removed unused body_classes in modular type 2015-08-05 22:26:57 -06:00
Andy Miller
9d38d0818b fix robots field 2015-08-05 22:26:41 -06:00
Andy Miller
a1ad9b7f4d list of pages should show all except root 2015-08-05 18:06:50 -06:00
Andy Miller
29cb55e91c visible toggle and help commands on new page 2015-08-05 18:06:07 -06:00
Andy Miller
0687d2ff78 added body_classes to modular type 2015-08-05 18:05:34 -06:00
Andy Miller
cd04572b78 using new templates field type 2015-08-05 18:04:57 -06:00
Andy Miller
6bb47124a9 added body classes 2015-08-05 18:03:34 -06:00
Andy Miller
1a21186ba1 removed duplicate hidden type field 2015-08-05 18:03:16 -06:00
Andy Miller
82d1193090 removed required from title 2015-08-05 18:02:48 -06:00
Andy Miller
ea76ac024a Merge pull request #244 from notklaatu/develop
added conf settings for running grav in sud dir, on nginx
2015-08-05 09:39:21 -06:00
Klaatu
ff52d61322 added conf settings for running grav in sud dir, on nginx 2015-08-05 11:44:38 +12:00
Andy Miller
83e970731e Merge branch 'release/0.9.34' into develop 2015-08-04 16:53:33 -06:00
Andy Miller
c6ea5eb5e9 Merge branch 'release/0.9.34' 2015-08-04 16:53:32 -06:00
Andy Miller
aa7a4111e6 version update 2015-08-04 16:53:16 -06:00
Andy Miller
2b01f832bd Merge branch 'develop' of https://github.com/getgrav/grav into develop
# By Sommerregen
# Via Andy Miller (1) and Sommerregen (1)
* 'develop' of https://github.com/getgrav/grav:
  Add language property to page
2015-08-04 09:41:21 -06:00
Andy Miller
1401102396 more extensive extension() method 2015-08-04 09:40:59 -06:00
Andy Miller
8963d024a6 more dynamic extension() method 2015-08-04 09:40:28 -06:00
Andy Miller
bb5e7b508f Merge pull request #243 from Sommerregen/feature/add-language-property-to-page
Add language property to page
2015-08-03 16:46:13 -06:00
Andy Miller
bfc9efea92 added new arrayFilterRecursive 2015-08-03 16:11:02 -06:00
Andy Miller
75feea3e75 back to Symfony 2.7.3 2015-08-03 16:10:16 -06:00
Sommerregen
e142f5ee61 Add language property to page 2015-08-03 22:08:07 +02:00
Djamil Legato
9746c2db5d Move yaml missing 2015-08-03 12:43:24 -07:00
Andy Miller
311598e3a6 Merge pull request #242 from flaviocopes/patch-1
Fix moving the page to the root
2015-08-03 08:15:26 -06:00
Andy Miller
109d19f02e changed order 2015-08-03 08:01:27 -06:00
Flavio Copes
bc5ea13821 Fix moving the page to the root
$parent->route() returned null when moving to the root
2015-08-03 10:19:56 +02:00
Andy Miller
e9cc34f481 Merge pull request #241 from aptly-io/fix_twig_vars_sideeffect
Fix #240 I'm ok with this.
2015-08-02 20:07:31 -06:00
franchan
9f254b6c84 Fix #240
$page->content() fires the onPageContentRaw event.
A plugin handler for this event might want to update the twig variable
with additional information during twig rendering.

However, $twig_vars takes a copy of $Twig->twig_vars and
therefore never sees any later changes in $Twig->twig_vars.

By moving the method call $page->content() earlier,
potential twig variable changes from a plugin get now inside this
local variable copy.
2015-08-02 23:52:48 +02:00
Andy Miller
4f442d1edc support admin overrides of blueprints 2015-08-02 12:13:08 -06:00
Andy Miller
a1a10ab23d more tweaks for blueprints 2015-08-01 17:40:58 -06:00
Andy Miller
21beefd387 added array() function to cast as an array 2015-08-01 13:37:32 -06:00
Andy Miller
a7e03c9d5c Stopped storing metadata in page header 2015-08-01 13:37:12 -06:00
Andy Miller
49781f9717 made metadata optional 2015-08-01 13:36:52 -06:00
Andy Miller
ca12c69741 fix for system lang files 2015-08-01 10:20:15 -06:00
Djamil Legato
333814eab0 Reenabled toggleables for Published 2015-07-31 13:10:51 -07:00
Djamil Legato
c18311eeb2 Moved blog and blog item blueprints out of Grav and into Antimatter theme 2015-07-31 13:10:24 -07:00
Andy Miller
3caa0d1ef5 Merge pull request #237 from flaviocopes/feature/separate-sessions-for-site-and-admin
Feature/separate sessions for site and admin
2015-07-31 11:05:56 -06:00
Flavio Copes
dc56f85881 Separate sessions for site and admin 2015-07-31 18:21:43 +02:00
Flavio Copes
532e035724 Load uri before session 2015-07-31 18:21:06 +02:00
Andy Miller
c3431e1ead Merge branch 'develop' of https://github.com/getgrav/grav into develop
# By Flavio Copes
# Via Andy Miller (3) and Flavio Copes (1)
* 'develop' of https://github.com/getgrav/grav:
  Move $session_timeout & $session_path inside the if statement
  Correctly instantiate the Inflector
  Force english in admin
  Refresh session timeout
2015-07-31 08:35:46 -06:00
Andy Miller
3016e77897 loose validation so un-formed values are not lost 2015-07-31 08:35:35 -06:00
Andy Miller
cf69ba0d66 Merge pull request #236 from flaviocopes/patch-4
Correctly instantiate the Inflector
2015-07-31 08:34:27 -06:00
Andy Miller
4e82891779 Merge pull request #232 from flaviocopes/patch-2
Refresh session timeout
2015-07-31 08:33:25 -06:00
Flavio Copes
7fa3e7bf28 Move $session_timeout & $session_path inside the if statement 2015-07-31 16:06:02 +02:00
Flavio Copes
656c23a891 Correctly instantiate the Inflector
$this->grav is not what we expect here. Got a fatal error on `$ bin/gpm` execution
2015-07-31 16:01:52 +02:00
Andy Miller
00f758dd98 Merge pull request #235 from flaviocopes/patch-3
Force english in admin
2015-07-31 07:52:52 -06:00
Flavio Copes
8962d2b1e4 Force english in admin 2015-07-31 15:48:47 +02:00
Flavio Copes
eefb761e98 Refresh session timeout 2015-07-30 19:17:04 +02:00
Andy Miller
9363da137f Merge branch 'develop' of https://github.com/getgrav/grav into develop
# By Djamil Legato
# Via Djamil Legato
* 'develop' of https://github.com/getgrav/grav:
  Added support for select multiple attribute in array filter
2015-07-29 22:00:30 -06:00
Andy Miller
c4daae2f95 added new blueprintName() method that takes into account blueprint value passed via a form 2015-07-29 22:00:03 -06:00
Andy Miller
b201b21e46 added blueprint hidden field to standard blueprints 2015-07-29 21:59:24 -06:00
Andy Miller
c959fd9c48 rolled back to composer 2.7.1 due to broken CLI choice method 2015-07-29 21:58:53 -06:00
Djamil Legato
0845b5e28a Added support for select multiple attribute in array filter 2015-07-29 20:43:13 -07:00
Andy Miller
b9f9570033 minor reformatting 2015-07-29 12:19:56 -06:00
Andy Miller
baa0e73703 updated default yaml 2015-07-29 11:31:50 -06:00
Andy Miller
e97aaccfee added a cache_all option for media images 2015-07-28 20:57:16 -06:00
Andy Miller
f58cfd8571 Merge branch 'feature/blueprint-extend' into develop
Conflicts:
	system/blueprints/config/site.yaml
	system/blueprints/config/system.yaml
2015-07-28 18:36:02 -06:00
Andy Miller
1a43d31c50 whitespace removal 2015-07-28 16:23:49 -06:00
Andy Miller
d244442e70 fixed translations with multiple plugins 2015-07-28 12:11:07 -06:00
Djamil Legato
a009c56271 Supported Language and Taxonomies are now using Selectize tags in admin 2015-07-28 11:08:37 -07:00
Andy Miller
f30af37faf php tidy 2015-07-28 11:10:38 -06:00
Andy Miller
bb4eea7999 missing use statement - issue #230 2015-07-28 04:54:16 -06:00
Andy Miller
e26b80d873 removed some extraneous messages 2015-07-27 08:32:29 -06:00
Andy Miller
b23aa1bc4c tweaks to system blueprint 2015-07-24 17:29:37 -06:00
Andy Miller
e22655b440 updated site.yaml blueprint 2015-07-24 15:16:36 -06:00
Andy Miller
8e57839271 missing some init() checks 2015-07-24 10:55:57 -06:00
Andy Miller
16f779c8f5 changed Inflector from static to class + added multilang support 2015-07-24 10:26:54 -06:00
Andy Miller
bd08d787f2 typo 2015-07-24 08:20:46 -06:00
Andy Miller
df99fe0073 blueprint updates 2015-07-24 08:20:36 -06:00
Andy Miller
7a2fceaee9 renamed translations.fallback property 2015-07-24 08:08:50 -06:00
Andy Miller
bb69656bd7 added base languages config 2015-07-24 08:08:23 -06:00
Andy Miller
5be0618b4d more blueprints progress 2015-07-24 07:50:47 -06:00
Andy Miller
ad00252a4e base translations settings 2015-07-24 07:50:35 -06:00
Andy Miller
84eee30d1f fix for string/array conversion error 2015-07-24 07:50:18 -06:00
Andy Miller
8975c2936c remove unused use that is causing an error 2015-07-23 11:36:43 -06:00
Andy Miller
b64bfc9ab0 more progress on system blueprint 2015-07-23 11:36:26 -06:00
Andy Miller
cc9f5ed096 More validation updates 2015-07-22 15:31:32 -06:00
Andy Miller
2161daa398 Prettier validation messages 2015-07-22 15:31:05 -06:00
Andy Miller
f1a41394ab updates for account validation 2015-07-22 15:30:27 -06:00
Andy Miller
9bcf9a7dcd Merge branch 'release/0.9.33' into develop 2015-07-21 13:48:10 -06:00
Gert
bc1a9b31fa add @config directive to get config values from blueprints 2015-06-03 16:21:49 +02:00
Gert
ff5658e803 update blueprints 2015-06-01 21:23:53 +02:00
Gert
3d986cdd91 Merge branch 'develop' of github.com:getgrav/grav into feature/blueprint-extend
* 'develop' of github.com:getgrav/grav:
  optimization to image handling supporting url encoded filenames and removed a regex
  Fix for #196 - `+` in an image filename
2015-06-01 11:43:39 +02:00
Gert
b4a0a31539 fix pages.process defaults 2015-05-25 17:33:57 +02:00
Gert
acbc7efdc8 remove theme selection from general settings 2015-05-25 17:23:24 +02:00
Gert
8475e0803a Merge branch 'develop' of github.com:getgrav/grav into feature/blueprint-extend
* 'develop' of github.com:getgrav/grav:
  removed unneeded flags from reggae
  fix for dot files
  fix for path detection on windows [fix #194]
  Fix for issue #194 - query string handling
2015-05-25 17:18:41 +02:00
Gert
370b5db34e remove unexisting option 2015-05-20 22:09:43 +02:00
Gert
6adabb5f71 add ignore field for removing fields on extended blueprints 2015-05-20 21:55:04 +02:00
Gert
df9a0eeab2 set context for default blueprint extends 2015-05-20 21:30:35 +02:00
Gert
e6d58b780e load system blueprints as a fallback for pages 2015-05-20 20:33:40 +02:00
Gert
e4b65d5d7f add check for themes without blueprints/templates folders 2015-05-20 18:18:32 +02:00
Gert
bf61a123cc implement blueprints for the list type 2015-05-20 17:13:22 +02:00
Gert
71f0757015 remove debug line 2015-05-20 16:52:41 +02:00
Gert
f1e57e0e9c modular type needs to have modular/ prefix 2015-05-20 16:45:54 +02:00
Gert
adb0b3ab18 Merge branch 'develop' of github.com:getgrav/grav into feature/blueprint-extend
* 'develop' of github.com:getgrav/grav:
  use PHP_BINARY constant
  fix composer execution for various scenarios
  Remove unnecessary white space
  Move default location to class constant
  Improve composer location identification
  Fix line break in command
  Propagate composer check to all occurences
  Use global composer install when available
2015-05-15 22:59:31 +02:00
Gert
921685ff88 fix blueprint type changing when extends 2015-05-15 17:32:21 +02:00
Gert
4f77ef26b5 fix default values for process header 2015-05-15 11:40:38 +02:00
Gert
78e9c8fa1a Merge branch 'develop' of github.com:getgrav/grav into feature/blueprint-extend
* 'develop' of github.com:getgrav/grav:
  add method to set raw markdown on page
  fix modularTypes key properties
2015-05-13 19:41:18 +02:00
Gert
4ae01d48ae fix prefix split on empty prefix 2015-05-13 18:48:52 +02:00
Gert
fe3082c6c9 update taxonomy blueprint 2015-05-13 15:39:37 +02:00
Gert
ab6c257ba6 use new taxonomy field + for all pages 2015-05-12 00:49:31 +02:00
Gert
628ae561d5 more sensible approach to blueprint::extra prefix handling 2015-05-11 12:33:03 +02:00
Gert
56b5a65b24 Merge branch 'develop' of github.com:getgrav/grav into feature/blueprint-extend
* 'develop' of github.com:getgrav/grav:
  fix for alternative media resolutions
  version update
  updated changelog
  composer.par updated to latest
  make sure lookup path does not become empty (root sites)
  ignore .DS_Store in media lookup
  check if medium was created before setting size
  re-add size property to media
2015-05-11 12:29:52 +02:00
Gert
326f1bc890 update item blueprint 2015-05-09 16:47:16 +02:00
Gert
ff04b33efd provide default blueprints for common page types 2015-05-09 15:58:17 +02:00
Gert
4f1a71b145 fix extra prefix implementation for extra data of blueprints 2015-05-09 15:58:07 +02:00
Gert
f7f8aa108a allow custom context for extending blueprints 2015-05-09 15:57:55 +02:00
Robert Went
05e4f96a6b makes cli commands available on windows machines from site root 2014-11-18 16:45:22 +00:00
326 changed files with 27548 additions and 6711 deletions

View File

@@ -2,15 +2,19 @@ git:
problems:
url: https://github.com/getgrav/grav-plugin-problems
path: user/plugins/problems
branch: develop
branch: master
error:
url: https://github.com/getgrav/grav-plugin-error
path: user/plugins/error
branch: develop
branch: master
markdown-notices:
url: https://github.com/getgrav/grav-plugin-markdown-notices
path: user/plugins/markdown-notices
branch: master
antimatter:
url: https://github.com/getgrav/grav-theme-antimatter
path: user/themes/antimatter
branch: develop
branch: master
links:
problems:
src: grav-plugin-problems
@@ -20,6 +24,10 @@ links:
src: grav-plugin-error
path: user/plugins/error
scm: github
markdown-notices:
src: grav-plugin-markdown-notices
path: user/plugins/markdown-notices
scm: github
antimatter:
src: grav-theme-antimatter
path: user/themes/antimatter

14
.gitignore vendored
View File

@@ -1,7 +1,7 @@
# Composer
composer.lock
.composer
vendor/
vendor/*
!*/vendor/*
# Sass
.sass-cache
@@ -17,12 +17,16 @@ logs/*
!logs/.*
images/*
!images/.*
user/accounts/*
!user/accounts/.*
user/data/*
!user/data/.*
user/plugins/*
!user/plugins/.*
user/themes/*
!user/themes/.*
user/localhost/config/security.yaml
user/config/security.yaml
# OS Generated
.DS_Store*
@@ -33,3 +37,9 @@ Thumbs.db
# phpstorm
.idea/*
user/config/security.yaml
tests/_output/*
tests/_support/_generated/*
tests/cache/*
tests/error.log

View File

@@ -3,7 +3,7 @@
RewriteEngine On
## Begin RewriteBase
# If you are getting 404 errors on subpages, you may have to uncomment the RewriteBase entry
# If you are getting 500 or 404 errors on subpages, you may have to uncomment the RewriteBase entry
# You should change the '/' to your appropriate subfolder. For example if you have
# your Grav install at the root of your site '/' should work, else it might be something
# along the lines of: RewriteBase /<your_sub_folder>
@@ -13,6 +13,16 @@ RewriteEngine On
## End - RewriteBase
## Begin - X-Forwarded-Proto
# In some hosted or load balanced environments, SSL negotiation happens upstream.
# In order for Grav to recognize the connection as secure, you need to uncomment
# the following lines.
#
# RewriteCond %{HTTP:X-Forwarded-Proto} https
# RewriteRule .* - [E=HTTPS:on]
#
## End - X-Forwarded-Proto
## Begin - Exploits
# 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
@@ -44,13 +54,22 @@ RewriteRule .* index.php [L]
## Begin - Security
# Block all direct access for these folders
RewriteRule ^(cache|bin|logs|backup)/(.*) error [L]
# Block access to specific file types for these folders
RewriteRule ^(system|user|vendor)/(.*)\.(txt|md|html|yaml|php|twig|sh|bat)$ error [L]
RewriteRule ^(.git|cache|bin|logs|backup|webserver-configs|tests)/(.*) error [F]
# Block access to specific file types for these system folders
RewriteRule ^(system|vendor)/(.*)\.(txt|xml|md|html|yaml|php|pl|py|cgi|twig|sh|bat)$ error [F]
# Block access to specific file types for these user folders
RewriteRule ^(user)/(.*)\.(txt|md|yaml|php|pl|py|cgi|twig|sh|bat)$ error [F]
# Block all direct access to .md files:
RewriteRule \.md$ error [F]
# Block all direct access to files and folders beginning with a dot
RewriteRule (^|/)\.(?!well-known) - [F]
# Block access to specific files in the root folder
RewriteRule ^(LICENSE.txt|composer.lock|composer.json|\.htaccess)$ error [F]
## End - Security
</IfModule>
# Begin - Prevent Browsing
# Begin - Prevent Browsing and Set Default Resources
Options -Indexes
# End - Prevent Browsing
DirectoryIndex index.php index.html index.htm
# End - Prevent Browsing and Set Default Resources

View File

@@ -1,7 +1,12 @@
language: php
php: 5.6
php:
- '5.5'
- '5.6'
- '7.0'
- hhvm
branches:
only:
- develop
- master
- build_test
notifications:
@@ -13,8 +18,10 @@ notifications:
rooms:
- secure: "bqO0wM1B7bJnQw2fuhquSXEqI9gw6WmFytIh9sEWXzbYTzTUP5t0PcKOd3FT2BNMRaDxPJLVl+vG/oqmqDUBkEmOGcG504IQjeNzZqnMz0tXQMIcCc22Las9tFfc4Jf6RVi/qGomFtHGE9Wgii+TAN4zqZaufbNjwd8SyjO0+W8="
template:
- '%{repository}#%{build_number} (%{branch}): Grav Core and Skeletons packages have been uploaded. (<a href="%{build_url}">Details</a>)'
- '%{repository}#%{build_number} (%{branch}): Travis Job Finished [%{duration}] (<a href="%{build_url}">Details</a>)'
format: html
slack:
secure: dowksPsxxCxGKT6nis5hUgkp6+ZDAhoqzQHF9rJnx4hx0iEygPhVBs7pKl9yL2jubYJoLs+EXwE7z1dYgDAEJh4BnfrCokCMLpFGcxVxQC/HeAUdSQ2/RtdBYR5PRT75ScaFpqM/SfXXZVtnwVXAw9Z+JC6BjQ9vmn23m51Jw4k=
env:
global:
# Colors!
@@ -35,32 +42,50 @@ env:
# BB_TOKEN value => "user:pass@"
- secure: "einUtSEkUWy2IrqLXyVjwUU+mwaaoiOXRRVdLBpA3Zye6bZx8cm5h/5AplkPWhM/NmCJoW/MwNZHHkFhlr3mDRov5iOxVmTTYfnXB+I5lxYTSgduOLLErS7mU8hfADpVDU8bHNU44fNGD3UEiG1PD4qQBX4DMlqIFmR20mjs81k="
# GH_API_USER [for curl]
- secure: "Xbk/V9aIys0NxccJGR3Zrm2GRxDnA0RuazBs1puIboTYDhbi0Z7JTL+mOx3xp5Kfoniad/xAuijQESTM9MMrKqq/qCzhAMaC1+vcL4pCHZH4NSG6DBxB9BPkKVFq+1llu5FTEf8bkxHzwGR0l1ARW6TVRcgTHr5B58bCEIwEOrI="
# Latest Release version
- 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)
- secure: "AQGcX1B2NrI8ajflY4AimZDNcK2kBA3F6mbtEFQ78NkDoWhMipsQHayWXiSTzRc0YJKvQl2Y16MTwQF4VHzjTAiiZFATgA8J88vQUjIPabi/kKjqSmcLFoaAOAxStQbW6e0z2GiQ6KBMcNF1y5iUuI63xVrBvtKrYX/w5y+ako8="
before_install:
- export TZ=Pacific/Honolulu
- echo $TRAVIS_PHP_VERSION
- echo $TRAVIS_BRANCH
- echo $TRAVIS_PULL_REQUEST
- composer self-update
- go get github.com/aktau/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}";
./build-grav.sh skeletons.txt;
- if [ $TRAVIS_BRANCH == 'develop' ] || [ $TRAVIS_PULL_REQUEST != 'false' ]; then
composer install --dev --prefer-dist;
fi
- if [ $TRAVIS_BRANCH != 'develop' ] && [ $TRAVIS_PHP_VERSION == "5.6" ] && [ $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);
go get github.com/aktau/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};
./build-grav.sh skeletons.txt;
fi;
fi
before_script:
- if [ $TRAVIS_PHP_VERSION != 'hhvm' ]; then phpenv config-rm xdebug.ini; fi
script:
- if [ ! -z "$TRAVIS_TAG" ]; then
- if [ $TRAVIS_BRANCH == 'develop' ] || [ $TRAVIS_PULL_REQUEST != 'false' ]; then
vendor/bin/codecept run;
fi
- echo "Latest Release Tag - ${TRAVIS_TAG}"
- if [ ! -z "$TRAVIS_TAG" ] && [ $TRAVIS_BRANCH != 'develop' ] && [ $TRAVIS_PHP_VERSION == "5.6" ] && [ $TRAVIS_PULL_REQUEST == "false" ]; then
FILES="$RT_DEVTOOLS/grav-dist/*.zip";
for file in ${FILES[@]}; do
NAME=${file##*/};
REPO="$(echo ${NAME} | rev | cut -f 2- -d "-" | rev)";
if [[ $REPO == 'grav' || $REPO == 'grav-update' ]]; then
if [[ "$NAME" == *"-rc"* ]]; then
REPO="$(echo ${NAME} | rev | cut -f 3- -d "-" | rev)";
else
REPO="$(echo ${NAME} | rev | cut -f 2- -d "-" | rev)";
fi;
if [[ $REPO == 'grav' || $REPO == 'grav-admin' || $REPO == 'grav-update' ]]; then
REPO="grav";
fi;
API="$(curl --fail --user "${GH_API_USER}" -s https://api.github.com/repos/${GH_USER}/${REPO}/releases/latest)";
ASSETS="$(echo "${API}" | node gh-assets.js)";
TAG="$(echo "${API}" | grep tag_name | head -n 1 | cut -d '"' -f 4)";
if [ $REPO == "grav" ]; then
TAG=$TRAVIS_TAG;
TAG="$TRAVIS_TAG";
fi;
if [ ! -z "$ASSETS" ]; then
for asset in ${ASSETS[@]}; do
@@ -73,6 +98,6 @@ script:
done;
fi;
echo "Uploading package ${BOLD}${BLUE}${NAME}${TEXTRESET} to ${YELLOW}${REPO}${TEXTRESET}@${YELLOW}${TAG}${TEXTRESET}";
github-release upload --security-token $GH_TOKEN --user ${GH_USER} --repo $REPO --tag $TAG --name "$NAME" --file "$file";
github-release upload --security-token $GH_TOKEN --user ${GH_USER} --repo $REPO --tag "$TAG" --name "$NAME" --file "$file";
done;
fi

View File

@@ -1,3 +1,977 @@
# v1.1.15
## 01/30/2017
1. [](#new)
* Added a new `Collection::merge()` method to allow merging of multiple collections [#1258](https://github.com/getgrav/grav/pull/1258)
* Added [OpenCollective](https://opencollective.com/grav) backer/sponsor info to `README.md`
1. [](#improved)
* Add an additional parameter to GPM::findPackage to avoid throwing an exception, for use in Twig [#1008](https://github.com/getgrav/grav/issues/1008)
* Skip symlinks if found while clearing cache [#1269](https://github.com/getgrav/grav/issues/1269)
1. [](#bugfix)
* Fixed an issue when page collection with header-based `sort.by` returns an array [#1264](https://github.com/getgrav/grav/issues/1264)
* Fix `Response` object to handle `303` redirects when `open_basedir` in effect [#1267](https://github.com/getgrav/grav/issues/1267)
* Silence `E_WARNING: Zend OPcache API is restricted by "restrict_api" configuration directive`
# v1.1.14
## 01/18/2017
1. [](#bugfix)
* Fixed `Page::collection()` returning array and not Collection object when header variable did not exist
* Revert `Content-Encoding: identity` fix, and let you set `cache: allow_webserver_gzip:` option to switch to `identity` [#548](https://github.com/getgrav/grav/issues/548)
# v1.1.13
## 01/17/2017
1. [](#new)
* Added new `never_cache_twig` page option in `system.yaml` and frontmatter. Allows dynamic Twig logic in regular and modular Twig templates [#1244](https://github.com/getgrav/grav/pull/1244)
1. [](#improved)
* Several improvements to aid theme development [#232](https://github.com/getgrav/grav/pull/1232)
* Added `hash` cache check option and made dropdown more descriptive [Admin #923](https://github.com/getgrav/grav-plugin-admin/issues/923)
1. [](#bugfix)
* Fixed cross volume file system operations [#635](https://github.com/getgrav/grav/issues/635)
* Fix issue with pages folders validation not accepting uppercase letters
* Fix renaming the folder name if the page, in the default language, had a custom slug set in its header
* Fixed issue with `Content-Encoding: none`. It should really be `Content-Encoding: identity` instead
* Fixed broken `hash` method on page modifications detection
* Fixed issue with multi-lang pages not caching independently without unique `.md` file [#1211](https://github.com/getgrav/grav/issues/1211)
* Fixed all `$_GET` parameters missing in Nginx (please update your nginx.conf) [#1245](https://github.com/getgrav/grav/issues/1245)
* Fixed issue in trying to process broken symlink [#1254](https://github.com/getgrav/grav/issues/1254)
# v1.1.12
## 12/26/2016
1. [](#bugfix)
* Fixed issue with JSON calls throwing errors due to debugger enabled [#1227](https://github.com/getgrav/grav/issues/1227)
# v1.1.11
## 12/22/2016
1. [](#improved)
* Fall back properly to HTML if template type not found
1. [](#bugfix)
* Fix issue with modular pages folders validation [#900](https://github.com/getgrav/grav-plugin-admin/issues/900)
# v1.1.10
## 12/21/2016
1. [](#improved)
* Improve detection of home path. Also allow `~/.grav` on Windows, drop `ConsoleTrait::isWindows()` method, used only for that [#1204](https://github.com/getgrav/grav/pull/1204)
* Reworked PHP CLI router [#1219](https://github.com/getgrav/grav/pull/1219)
* More robust theme/plugin logic in `bin/gpm direct-install`
1. [](#bugfix)
* Fixed case where extracting a package would cause an error during rename
* Fix issue with using `Yaml::parse` direcly on a filename, now deprecated
* Add pattern for frontend validation of folder slugs [#891](https://github.com/getgrav/grav-plugin-admin/issues/891)
* Fix issue with Inflector when translation is disabled [SimpleSearch #87](https://github.com/getgrav/grav-plugin-simplesearch/issues/87)
* Explicitly expose `array_unique` Twig filter [Admin #897](https://github.com/getgrav/grav-plugin-admin/issues/897)
# v1.1.9
## 12/13/2016
1. [](#new)
* RC released as stable
1. [](#improved)
* Better error handling in cache clear
* YAML syntax fixes for the future compatibility
* Added new parameter `remove` for `onBeforeCacheClear` event
* Add support for calling Media object as function to get medium by filename
1. [](#bugfix)
* Added checks before accessing admin reference during `Page::blueprints()` call. Allows to access `page.blueprints` from Twig in the frontend
# v1.1.9-rc.3
## 12/07/2016
1. [](#new)
* Add `ignore_empty` property to be used on array fields, if positive only save options with a value
* Use new `permissions` field in user account
* Add `range(int start, int end, int step)` twig function to generate an array of numbers between start and end, inclusive
* New retina Media image derivatives array support (`![](image.jpg?derivatives=[640,1024,1440])`) [#1147](https://github.com/getgrav/grav/pull/1147)
* Added stream support for images (`![Sepia Image](image://image.jpg?sepia)`)
* Added stream support for links (`[Download PDF](user://data/pdf/my.pdf)`)
* Added new `onBeforeCacheClear` event to add custom paths to cache clearing process
1. [](#improved)
* Added alias `selfupdate` to the `self-upgrade` `bin/gpm` CLI command
* Synced `webserver-configs/htaccess.txt` with `.htaccess`
* Use permissions field in group details.
* Updated vendor libraries
* Added a warning on GPM update to update Grav first if needed [#1194](https://github.com/getgrav/grav/pull/1194)
1. [](#bugfix)
* Fix page collections problem with `@page.modular` [#1178](https://github.com/getgrav/grav/pull/1178)
* Fix issue with using a multiple taxonomy filter of which one had no results, thanks to @hughbris [#1184](https://github.com/getgrav/grav/issues/1184)
* Fix saving permissions in group
* Fixed issue with redirect of a page getting moved to a different location
# v1.1.9-rc.2
## 11/26/2016
1. [](#new)
* Added two new sort order options for pages: `publish_date` and `unpublish_date` [#1173](https://github.com/getgrav/grav/pull/1173))
1. [](#improved)
* Multisite: Create image cache folder if it doesn't exist
* Add 2 new language values for French [#1174](https://github.com/getgrav/grav/issues/1174)
1. [](#bugfix)
* Fixed issue when we have a meta file without corresponding media [#1179](https://github.com/getgrav/grav/issues/1179)
* Update class namespace for Admin class [Admin #874](https://github.com/getgrav/grav-plugin-admin/issues/874)
# v1.1.9-rc.1
## 11/09/2016
1. [](#new)
* Added a `CompiledJsonFile` object to better handle Json files.
* Added Base32 encode/decode class
* Added a new `User::find()` method
1. [](#improved)
* Moved `messages` object into core Grav from login plugin
* Added `getTaxonomyItemKeys` to the Taxonomy object [#1124](https://github.com/getgrav/grav/issues/1124)
* Added a `redirect_me` Twig function [#1124](https://github.com/getgrav/grav/issues/1124)
* Added a Caddyfile for newer Caddy versions [#1115](https://github.com/getgrav/grav/issues/1115)
* Allow to override sorting flags for page header-based or default ordering. If the `intl` PHP extension is loaded, only these flags are available: https://secure.php.net/manual/en/collator.asort.php. Otherwise, you can use the PHP standard sorting flags (https://secure.php.net/manual/en/array.constants.php) [#1169](https://github.com/getgrav/grav/issues/1169)
1. [](#bugfix)
* Fixed an issue with site redirects/routes, not processing with extension (.html, .json, etc.)
* Don't truncate HTML if content length is less than summary size [#1125](https://github.com/getgrav/grav/issues/1125)
* Return max available number when calling random() on a collection passing an int > available items [#1135](https://github.com/getgrav/grav/issues/1135)
* Use correct ratio when applying image filters to image alternatives [#1147](https://github.com/getgrav/grav/issues/1147)
* Fixed URI path in multi-site when query parameters were used in front page
# v1.1.8
## 10/22/2016
1. [](#bugfix)
* Fixed warning with unset `ssl` option when using GPM [#1132](https://github.com/getgrav/grav/issues/1132)
# v1.1.7
## 10/22/2016
1. [](#improved)
* Improved the capabilities of Image derivatives [#1107](https://github.com/getgrav/grav/pull/1107)
1. [](#bugfix)
* Only pass verify_peer settings to cURL and fopen if the setting is disabled [#1120](https://github.com/getgrav/grav/issues/1120)
# v1.1.6
## 10/19/2016
1. [](#new)
* Added ability for Page to override the output format (`html`, `xml`, etc..) [#1067](https://github.com/getgrav/grav/issues/1067)
* Added `Utils::getExtensionByMime()` and cleaned up `Utils::getMimeByExtension` + tests
* Added a `cache.check.method: 'hash'` option in `system.yaml` that checks all files + dates inclusively
* Include jQuery 3.x in the Grav assets
* Added the option to automatically fix orientation on images based on their Exif data, by enabling `system.images.auto_fix_orientation`.
1. [](#improved)
* Add `batch()` function to Page Collection class
* Added new `cache.redis.socket` setting that allow to pass a UNIX socket as redis server
* It is now possible to opt-out of the SSL verification via the new `system.gpm.verify_peer` setting. This is sometimes necessary when receiving a "GPM Unable to Connect" error. More details in ([#1053](https://github.com/getgrav/grav/issues/1053))
* It is now possible to force the use of either `curl` or `fopen` as `Response` connection method, via the new `system.gpm.method` setting. By default this is set to 'auto' and gives priority to 'fopen' first, curl otherwise.
* InstallCommand can now handle Licenses
* Uses more helpful `1x`, `2x`, `3x`, etc names in the Retina derivatives cache files.
* Added new method `Plugins::isPluginActiveAdmin()` to check if plugin route is active in Admin plugin
* Added new `Cache::setEnabled` and `Cache::getEnabled` to enable outside control of cache
* Updated vendor libs including Twig `1.25.0`
* Avoid git ignoring any vendor folder in a Grav site subfolder (but still ignore the main `vendor/` folder)
* Added an option to get just a route back from `Uri::convertUrl()` function
* Added option to control split session [#1096](https://github.com/getgrav/grav/pull/1096)
* Added new `verbosity` levels to `system.error.display` to allow for system error messages [#1091](https://github.com/getgrav/grav/pull/1091)
* Improved the API for Grav plugins to access the Parsedown parser directly [#1062](https://github.com/getgrav/grav/pull/1062)
1. [](#bugfix)
* Fixed missing `progress` method in the DirectInstall Command
* `Response` class now handles better unsuccessful requests such as 404 and 401
* Fixed saving of `external` page types [Admin #789](https://github.com/getgrav/grav-plugin-admin/issues/789)
* Fixed issue deleting parent folder of folder with `param_sep` in the folder name [admin #796](https://github.com/getgrav/grav-plugin-admin/issues/796)
* Fixed an issue with streams in `bin/plugin`
* Fixed `jpeg` file format support in Media
# v1.1.5
## 09/09/2016
1. [](#new)
* Added new `bin/gpm direct-install` command to install local and remote zip archives
1. [](#improved)
* Refactored `onPageNotFound` event to fire after `onPageInitialized`
* Follow symlinks in `Folder::all()`
* Twig variable `base_url` now supports multi-site by path feature
* Improved `bin/plugin` to list plugins with commands faster by limiting the depth of recursion
1. [](#bugfix)
* Quietly skip missing streams in `Cache::clearCache()`
* Fix issue in calling page.summary when no content is present in a page
* Fix for HUGE session timeouts [#1050](https://github.com/getgrav/grav/issues/1050)
# v1.1.4
## 09/07/2016
1. [](#new)
* Added new `tmp` folder at root. Accessible via stream `tmp://`. Can be cleared with `bin/grav clear --tmp-only` as well as `--all`.
* Added support for RTL in `LanguageCodes` so you can determine if a language is RTL or not
* Ability to set `custom_base_url` in system configuration
* Added `override` and `force` options for Streams setup
1. [](#improved)
* Important vendor updates to provide PHP 7.1 beta support!
* Added a `Util::arrayFlatten()` static function
* Added support for 'external_url' page header to enable easier external URL based menu items
* Improved the UI for CLI GPM Index view to use a table
* Added `@page.modular` Collection type [#988](https://github.com/getgrav/grav/issues/988)
* Added support for `self@`, `page@`, `taxonomy@`, `root@` Collection syntax for cleaner YAML compatibility
* Improved GPM commands to allow for `-y` to automate **yes** responses and `-o` for **update** and **selfupgrade** to overwrite installations [#985](https://github.com/getgrav/grav/issues/985)
* Added randomization to `safe_email` Twig filter for greater security [#998](https://github.com/getgrav/grav/issues/998)
* Allow `Utils::setDotNotation` to merge data, rather than just set
* Moved default `Image::filter()` to the `save` action to ensure they are applied last [#984](https://github.com/getgrav/grav/issues/984)
* Improved the `Truncator` code to be more reliable [#1019](https://github.com/getgrav/grav/issues/1019)
* Moved media blueprints out of core (now in Admin plugin)
1. [](#bugfix)
* Removed 307 redirect code option as it is not well supported [#743](https://github.com/getgrav/grav-plugin-admin/issues/743)
* Fixed issue with folders with name `*.md` are not confused with pages [#995](https://github.com/getgrav/grav/issues/995)
* Fixed an issue when filtering collections causing null key
* Fix for invalid HTML when rendering GIF and Vector media [#1001](https://github.com/getgrav/grav/issues/1001)
* Use pages.markdown.extra in the user's system.yaml [#1007](https://github.com/getgrav/grav/issues/1007)
* Fix for `Memcached` connection [#1020](https://github.com/getgrav/grav/issues/1020)
# v1.1.3
## 08/14/2016
1. [](#bugfix)
* Fix for lightbox media function throwing error [#981](https://github.com/getgrav/grav/issues/981)
# v1.1.2
## 08/10/2016
1. [](#new)
* Allow forcing SSL by setting `system.force_ssl` (Force SSL in the Admin System Config) [#899](https://github.com/getgrav/grav/pull/899)
1. [](#improved)
* Improved `authorize` Twig extension to accept a nested array of authorizations [#948](https://github.com/getgrav/grav/issues/948)
* Don't add timestamps on remote assets as it can cause conflicts
* Grav now looks at types from `media.yaml` when retrieving page mime types [#966](https://github.com/getgrav/grav/issues/966)
* Added support for dumping exceptions in the Debugger
1. [](#bugfix)
* Fixed `Folder::delete` method to recursively remove files and folders and causing Upgrade to fail.
* Fix [#952](https://github.com/getgrav/grav/issues/952) hyphenize the session name.
* If no parent is set and siblings collection is called, return a new and empty collection [grav-plugin-sitemap/issues/22](https://github.com/getgrav/grav-plugin-sitemap/issues/22)
* Prevent exception being thrown when calling the Collator constructor failed in a Windows environment with the Intl PHP Extension enabled [#961](https://github.com/getgrav/grav/issues/961)
* Fix for markdown images not properly rendering `id` attribute [#956](https://github.com/getgrav/grav/issues/956)
# v1.1.1
## 07/16/2016
1. [](#improved)
* Made `paramsRegex()` static to allow it to be called statically
1. [](#bugfix)
* Fixed backup when using very long site titles with invalid characters [grav-plugin-admin#701](https://github.com/getgrav/grav-plugin-admin/issues/701)
* Fixed a typo in the `webserver-configs/nginx.conf` example
# v1.1.0
## 07/14/2016
1. [](#improved)
* Added support for validation of multiple email in the `type: email` field [grav-plugin-email#31](https://github.com/getgrav/grav-plugin-email/issues/31)
* Unified PHP code header styling
* Added 6 more languages and updated language codes
* set default "releases" option to `stable`
1. [](#bugfix)
* Fix backend validation for file fields marked as required [grav-plugin-form#78](https://github.com/getgrav/grav-plugin-form/issues/78)
# v1.1.0-rc.3
## 06/21/2016
1. [](#new)
* Add a onPageFallBackUrl event when starting the fallbackUrl() method to allow the Login plugin to protect the page media
* Conveniently allow ability to retrieve user information via config object [#913](https://github.com/getgrav/grav/pull/913) - @Vivalldi
* Grav served images can now use header caching [#905](https://github.com/getgrav/grav/pull/905)
1. [](#improved)
* Take asset modification timestamp into consideration in pipelining [#917](https://github.com/getgrav/grav/pull/917) - @Sommerregen
1. [](#bugfix)
* Respect `enable_asset_timestamp` settings for pipelined Assets [#906](https://github.com/getgrav/grav/issues/906)
* Fixed collections end dates for 32-bit systems [#902](https://github.com/getgrav/grav/issues/902)
* Fixed a recent regression (1.1.0-rc1) with parameter separator different than `:`
# v1.1.0-rc.2
## 06/14/2016
1. [](#new)
* Added getters and setters for Assets to allow manipulation of CSS/JS/Collection based assets via plugins [#876](https://github.com/getgrav/grav/issues/876)
1. [](#improved)
* Pass the exception to the `onFatalException()` event
* Updated to latest jQuery 2.2.4 release
* Moved list items in `system/config/media.yaml` config into a `types:` key which allows you delete default items.
* Updated `webserver-configs/nginx.conf` with `try_files` fix from @mrhein and @rondlite [#743](https://github.com/getgrav/grav/pull/743)
* Updated cache references to include `memecache` and `redis` [#887](https://github.com/getgrav/grav/issues/887)
* Updated composer libraries
1. [](#bugfix)
* Fixed `Utils::normalizePath()` that was truncating 0's [#882](https://github.com/getgrav/grav/issues/882)
# v1.1.0-rc.1
## 06/01/2016
1. [](#new)
* Added `Utils::getDotNotation()` and `Utils::setDotNotation()` methods + tests
* Added support for `xx-XX` locale language lookups in `LanguageCodes` class [#854](https://github.com/getgrav/grav/issues/854)
* New CSS/JS Minify library that does a more reliable job [#864](https://github.com/getgrav/grav/issues/864)
1. [](#improved)
* GPM installation of plugins and themes into correct multisite folders [#841](https://github.com/getgrav/grav/issues/841)
* Use `Page::rawRoute()` in blueprints for more reliable mulit-language support
1. [](#bugfix)
* Fixes for `zlib.output_compression` as well as `mod_deflate` GZIP compression
* Fix for corner-case redirect logic causing infinite loops and out-of-memory errors
* Fix for saving fields in expert mode that have no `Validation::typeX()` methods [#626](https://github.com/getgrav/grav-plugin-admin/issues/626)
* Detect if user really meant to extend parent blueprint, not another one (fixes old page type blueprints)
* Fixed a bug in `Page::relativePagePath()` when `Page::$name` is not defined
* Fix for poor handling of params + query element in `Uri::processParams()` [#859](https://github.com/getgrav/grav/issues/859)
* Fix for double encoding in markdown links [#860](https://github.com/getgrav/grav/issues/860)
* Correctly handle language strings to determine if it's in admin or not [#627](https://github.com/getgrav/grav-plugin-admin/issues/627)
# v1.1.0-beta.5
## 05/23/2016
1. [](#improved)
* Updated jQuery from 2.2.0 to 2.2.3
* Set `Uri::ip()` to static by default so it can be used in form fields
* Improved `Session` class with flash storage
* `Page::getContentMeta()` now supports an optional key.
1. [](#bugfix)
* Fixed "Invalid slug set in YAML frontmatter" when setting `Page::slug()` with empty string [#580](https://github.com/getgrav/grav-plugin-admin/issues/580)
* Only `.gitignore` Grav's vendor folder
* Fix trying to remove Grav with `GPM uninstall` of a plugin with Grav dependency
* Fix Page Type blueprints not being able to extend their parents
* `filterFile` validation method always returns an array of files, behaving like `multiple="multiple"`
* Fixed [#835](https://github.com/getgrav/grav-plugin-admin/issues/835) check for empty image file first to prevent getimagesize() fatal error
* Avoid throwing an error when Grav's Gzip and mod_deflate are enabled at the same time on a non php-fpm setup
# v1.1.0-beta.4
## 05/09/2016
1. [](#bugfix)
* Drop dependencies calculations if plugin is installed via symlink
* Drop Grav from dependencies calculations
* Send slug name as part of installed packages
* Fix for summary entities not being properly decoded [#825](https://github.com/getgrav/grav/issues/825)
# v1.1.0-beta.3
## 05/04/2016
1. [](#improved)
* Pass the Page type when calling `onBlueprintCreated`
* Changed `Page::cachePageContent()` form **private** to **public** so a page can be recached via plugin
1. [](#bugfix)
* Fixed handling of `{'loading':'async'}` with Assets Pipeline
* Fix for new modular page modal `Page` field requiring a value [#529](https://github.com/getgrav/grav-plugin-admin/issues/529)
* Fix for broken `bin/gpm version` command
* Fix handling "grav" as a dependency
* Fix when installing multiple packages and one is the dependency of another, don't try to install it twice
* Fix using name instead of the slug to determine a package folder. Broke for packages whose name was 2+ words
# v1.1.0-beta.2
## 04/27/2016
1. [](#new)
* Added new `Plugin::getBlueprint()` and `Theme::getBlueprint()` method
* Allow **page blueprints** to be added via Plugins.
1. [](#improved)
* Moved to new `data-*@` format in blueprints
* Updated composer-based libraries
* Moved some hard-coded `CACHE_DIR` references to use locator
* Set `twig.debug: true` by default
1. [](#bugfix)
* Fixed issue with link rewrites and local assets pipeline with `absolute_urls: true`
* Allow Cyrillic slugs [#520](https://github.com/getgrav/grav-plugin-admin/issues/520)
* Fix ordering issue with accented letters [#784](https://github.com/getgrav/grav/issues/784)
* Fix issue with Assets pipeline and missing newlines causing invalid JavaScript
# v1.1.0-beta.1
## 04/20/2016
1. [](#new)
* **Blueprint Improvements**: The main improvements to Grav take the form of a major rewrite of our blueprint functionality. Blueprints are an essential piece of functionality within Grav that helps define configuration fields. These allow us to create a definition of a form field that can be rendered in the administrator plugin and allow the input, validation, and storage of values into the various configuration and page files that power Grav. Grav 1.0 had extensive support for building and extending blueprints, but Grav 1.1 takes this even further and adds improvements to our existing system.
* **Extending Blueprints**: You could extend forms in Grav 1.0, but now you can use a newer `extends@:` default syntax rather than the previous `'@extends'` string that needed to be quoted in YAML. Also this new format allows for the defining of a `context` which lets you define where to look for the base blueprint. Another new feature is the ability to extend from multiple blueprints.
* **Embedding/Importing Blueprints**: One feature that has been requested is the ability to embed or import one blueprint into another blueprint. This allows you to share fields or sub-form between multiple forms. This is accomplished via the `import@` syntax.
* **Removing Existing Fields and Properties**: Another new feature is the ability to remove completely existing fields or properties from an extended blueprint. This allows the user a lot more flexibility when creating custom forms by simply using the new `unset@: true` syntax. To remove a field property you would use `unset-<property>@: true` in your extended field definition, for example: `unset-options@: true`.
* **Replacing Existing Fields and Properties**: Similar to removing, you can now replace an existing field or property with the `replace@: true` syntax for the whole field, and `replace-<property>@: true` for a specific property.
* **Field Ordering**: Probably the most frequently requested blueprint functionality that we have added is the ability to change field ordering. Imagine that you want to extend the default page blueprint but add a new tab. Previously, this meant your tab would be added at the end of the form, but now you can define that you wish the new tab to be added right after the `content` tab. This works for any field too, so you can extend a blueprint and add your own custom fields anywhere you wish! This is accomplished by using the new `ordering@:` syntax with either an existing property name or an integer.
* **Configuration Properties**: Another useful new feature is the ability to directly access Grav configuration in blueprints with `config-<property>@` syntax. For example you can set a default for a field via `config-default@: site.author.name` which will use the author.name value from the `site.yaml` file as the `default` value for this field.
* **Function Calls**: The ability to call PHP functions for values has been improved in Grav 1.1 to be more powerful. You can use the `data-<property>@` syntax to call static methods to obtain values. For example: `data-default@: '\Grav\Plugin\Admin::route'`. You can now even pass parameters to these methods.
* **Validation Rules**: You can now define a custom blueprint-level validation rule and assign this rule to a form field.
* **Custom Form Field Types**: This advanced new functionality allows you to create a custom field type via a new plugin event called getFormFieldTypes(). This allows you to provide extra functionality or instructions on how to handle the form form field.
* **GPM Versioning**: A new feature that we have wanted to add to our GPM package management system is the ability to control dependencies by version. We have opted to use a syntax very similar to the Composer Package Manager that is already familiar to most PHP developers. This new versioning system allows you to define specific minimum version requirements of dependent packages within Grav. This should ensure that we have less (hopefully none!) issues when you update one package that also requires a specific minimum version of another package. The admin plugin for example may have an update that requires a specific version of Grav itself.
* **GPM Testing Channel**: GPM repository now comes with both a `stable` and `testing` channel. A new setting in `system.gpm.releases` allow to switch between the two channels. Developers will be able to decide whether their resource is going to be in a pre-release state or stable. Only users who switch to the **testing** channel will be able to install a pre-release version.
* **GPM Events**: Packages (plugins and themes) can now add event handlers to hook in the package GPM events: install, update, uninstall. A package can listen for events before and after each of these events, and can execute any PHP code, and optionally halt the procedure or return a message.
* Refactor of the process chain breaking out `Processors` into individual classes to allow for easier modification and addition. Thanks to toovy for this work. - [#745](https://github.com/getgrav/grav/pull/745)
* Added multipart downloads, resumable downloads, download throttling, and video streaming in the `Utils::download()` method.
* Added optional config to allow Twig processing in page frontmatter - [#788](https://github.com/getgrav/grav/pull/788)
* Added the ability to provide blueprints via a plugin (previously limited to Themes only).
* Added Developer CLI Tools to easily create a new theme or plugin
* Allow authentication for proxies - [#698](https://github.com/getgrav/grav/pull/698)
* Allow to override the default Parsedown behavior - [#747](https://github.com/getgrav/grav/pull/747)
* Added an option to allow to exclude external files from the pipeline, and to render the pipeline before/after excluded files
* Added the possibility to store translations of themes in separate files inside the `languages` folder
* Added a method to the Uri class to return the base relative URL including the language prefix, or the base relative url if multilanguage is not enabled
* Added a shortcut for pages.find() alias
1. [](#improved)
* Now supporting hostnames with localhost environments for better vhost support/development
* Refactor hard-coded paths to use PHP Streams that allow a setup file to configure where certain parts of Grav are stored in the physical filesystem.
* If multilanguage is active, include the Intl Twig Extension to allow translating dates automatically (http://twig.sensiolabs.org/doc/extensions/intl.html)
* Allow having local themes with the same name as GPM themes, by adding `gpm: false` to the theme blueprint - [#767](https://github.com/getgrav/grav/pull/767)
* Caddyfile and Lighttpd config files updated
* Removed `node_modules` folder from backups to make them faster
* Display error when `bin/grav install` hasn't been run instead of throwing exception. Prevents "white page" errors if error display is off
* Improved command line flow when installing multiple packages: don't reinstall packages if already installed, ask once if should use symlinks if symlinks are found
* Added more tests to our testing suite
* Added x-ua-compatible to http_equiv metadata processing
* Added ability to have a per-page `frontmatter.yaml` file to set header frontmatter defaults. Especially useful for multilang scenarios - [#775](https://github.com/getgrav/grav/pull/775)
* Removed deprecated `bin/grav newuser` CLI command. use `bin/plugin login newuser` instead.
* Added `webm` and `ogv` video types to the default media types list.
1. [](#bugfix)
* Fix Zend Opcache `opcache.validate_timestamps=0` not detecting changes in compiled yaml and twig files
* Avoid losing params, query and fragment from the URL when auto-redirecting to a language-specific route - [#759](https://github.com/getgrav/grav/pull/759)
* Fix for non-pipeline assets getting lost when pipeline is cached to filesystem
* Fix for double encoding resulting from Markdown Extra
* Fix for a remote link breaking all CSS rewrites for pipeline
* Fix an issue with Retina alternatives not clearing properly between repeat uses
* Fix for non standard http/s external markdown links - [#738](https://github.com/getgrav/grav/issues/738)
* Fix for `find()` calling redirects via `dispatch()` causing infinite loops - [#781](https://github.com/getgrav/grav/issues/781)
# v1.0.10
## 02/11/2016
1. [](#new)
* Added new `Page::contentMeta()` mechanism to store content-level meta data alongside content
* Added Japanese language translation
1. [](#improved)
* Updated some vendor libraries
1. [](#bugfix)
* Hide `streams` blueprint from Admin plugin
* Fix translations of languages with `---` in YAML files
# v1.0.9
## 02/05/2016
1. [](#new)
* New **Unit Testing** via Codeception http://codeception.com/
* New **page-level SSL** functionality when using `absolute_urls`
* Added `reverse_proxy` config option for issues with non-standard ports
* Added `proxy_url` config option to support GPM behind proxy servers #639
* New `Pages::parentsRawRoutes()` method
* Enhanced `bin/gpm info` CLI command with Changelog support #559
* Ability to add empty *Folder* via admin plugin
* Added latest `jQuery 2.2.0` library to core
* Added translations from Crowdin
1. [](#improved)
* [BC] Metadata now supports only flat arrays. To use open graph metas and the likes (ie, 'og:title'), simply specify it in the key.
* Refactored `Uri::convertUrl()` method to be more reliable + tests created
* Date for last update of a modular sub-page sets modified date of modular page itself
* Split configuration up into two steps
* Moved Grav-based `base_uri` variables into `Uri::init()`
* Refactored init in `URI` to better support testing
* Allow `twig_vars` to be exposed earlier and merged later
* Avoid setting empty metadata
* Accept single group access as a string rather than requiring an array
* Return `$this` in Page constructor and init to allow chaining
* Added `ext-*` PHP requirements to `composer.json`
* Use Whoops 2.0 library while supporting old style
* Removed redundant old default-hash fallback mechanisms
* Commented out default redirects and routes in `site.yaml`
* Added `/tests` folder to deny's of all `webserver-configs/*` files
* Various PS and code style fixes
1. [](#bugfix)
* Fix default generator metadata
* Fix for broken image processing caused by `Uri::convertUrl()` bugs
* Fix loading JS and CSS from collections #623
* Fix stream overriding
* Remove the URL extension for home link
* Fix permissions when the user has no access level set at all
* Fix issue with user with multiple groups getting denied on first group
* Fixed an issue with `Pages()` internal cache lookup not being unique enough
* Fix for bug with `site.redirects` and `site.routes` being an empty list
* [Markdown] Don't process links for **special protocols**
* [Whoops] serve JSON errors when request is JSON
# v1.0.8
## 01/08/2016
1. [](#new)
* Added `rotate`, `flip` and `fixOrientation` image medium methods
1. [](#bugfix)
* Removed IP from Nonce generation. Should be more reliable in a variety of scenarios
# v1.0.7
## 01/07/2016
1. [](#new)
* Added `composer create-project` as an additional installation method #585
* New optional system config setting to strip home from page routs and urls #561
* Added Greek, Finnish, Norwegian, Polish, Portuguese, and Romanian languages
* Added new `Page->topParent()` method to return top most parent of a page
* Added plugins configuration tab to debugger
* Added support for APCu and PHP7.0 via new Doctrine Cache release
* Added global setting for `twig_first` processing (false by default)
* New configuration options for Session settings #553
1. [](#improved)
* Switched to SSL for GPM calls
* Use `URI->host()` for session domain
* Add support for `open_basedir` when installing packages via GPM
* Improved `Utils::generateNonceString()` method to handle reverse proxies
* Optimized core thumbnails saving 38% in file size
* Added new `bin/gpm index --installed-only` option
* Improved GPM errors to provider more helpful diagnostic of issues
* Removed old hardcoded PHP version references
* Moved `onPageContentProcessed()` event so it's fired more reliably
* Maintain md5 keys during sorting of Assets #566
* Update to Caddyfile for Caddy web server
1. [](#bugfix)
* Fixed an issue with cache/config checksum not being set on cache load
* Fix for page blueprint and theme inheritance issue #534
* Set `ZipBackup` timeout to 10 minutes if possible
* Fix case where we only have inline data for CSS or JS #565
* Fix `bin/grav sandbox` command to work with new `webserver-config` folder
* Fix for markdown attributes on external URLs
* Fixed issue where `data:` page header was acting as `publish_date:`
* Fix for special characters in URL parameters (e.g. /tag:c++) #541
* Safety check for an array of nonces to only use the first one
# v1.0.6
## 12/22/2015
1. [](#new)
* Set minimum requirements to [PHP 5.5.9](http://bit.ly/1Jt9OXO)
* Added `saveConfig` to Themes
1. [](#improved)
* Updated Whoops to new 2.0 version (PHP 7.0 compatible)
* Moved sample web server configs into dedicated directory
* FastCGI will use Apache's `mod_deflate` if gzip turned off
1. [](#bugfix)
* Fix broken media image operators
* Only call extra method of blueprints if blueprints exist
* Fix lang prefix in url twig variables #523
* Fix case insensitive HTTPS check #535
* Field field validation handles case `multiple` missing
# v1.0.5
## 12/18/2015
1. [](#new)
* Add ability to extend markdown with plugins
* Added support for plugins to have individual language files
* Added `7z` to media formats
* Use Grav's fork of Parsedown until PR is merged
* New function to persist plugin configuration to disk
* GPM `selfupgrade` will now check PHP version requirements
1. [](#improved)
* If the field allows multiple files, return array
* Handle non-array values in file validation
1. [](#bugfix)
* Fix when looping `fields` param in a `list` field
* Properly convert commas to spaces for media attributes
* Forcing Travis VM to HI timezone to address future files in zip file
# v1.0.4
## 12/12/2015
1. [](#bugfix)
* Needed to put default image folder permissions for YAML compatibility
# v1.0.3
## 12/11/2015
1. [](#bugfix)
* Fixed issue when saving config causing incorrect image cache folder perms
# v1.0.2
## 12/11/2015
1. [](#bugfix)
* Fix for timing display in debugbar
# v1.0.1
## 12/11/2015
1. [](#improved)
* Reduced package sizes by removing extra vendor dev bits
1. [](#bugfix)
* Fix issue when you enable debugger from admin plugin
# v1.0.0
## 12/11/2015
1. [](#new)
* Add new link attributes via markdown media
* Added setters to set state of CSS/JS pipelining
* Added `user/accounts` to `.gitignore`
* Added configurable permissions option for Image cache
1. [](#improved)
* Hungarian translation updated
* Refactored Theme initialization for improved flexibility
* Wrapped security section of account blueprints in an 'super user' authorize check
* Minor performance optimizations
* Updated core page blueprints with markdown preview option
* Added useful cache info output to Debugbar
* Added `iconv` polyfill library used by Symfony 2.8
* Force lowercase of username in a few places for case sensitive filesystems
1. [](#bugfix)
* Fix for GPM problems "Call to a member function set() on null"
* Fix for individual asset pipeline values not functioning
* Fix `Page::copy()` and `Page::move()` to support multiple moves at once
* Fixed page moving of a page with no content
* Fix for wrong ordering when moving many pages
* Escape root path in page medium files to work with special characters
* Add missing parent constructor to Themes class
* Fix missing file error in `bin/grav sandbox` command
* Fixed changelog differ when upgrading Grav
* Fixed a logic error in `Validation->validate()`
* Make `$container` available in `setup.php` to fix multi-site
# v1.0.0-rc.6
## 12/01/2015
1. [](#new)
* Refactor Config classes for improved performance!
* Refactor Data classes to use `NestedArrayAccess` instead of `DataMutatorTrait`
* Added support for `classes` and `id` on medium objects to set CSS values
* Data objects: Allow function call chaining
* Data objects: Lazy load blueprints only if needed
* Automatically create unique security salt for each configuration
* Added Hungarian translation
* Added support for User groups
1. [](#improved)
* Improved robots.txt to disallow crawling of non-user folders
* Nonces only generated once per action and process
* Added IP into Nonce string calculation
* Nonces now use random string with random salt to improve performance
* Improved list form handling #475
* Vendor library updates
1. [](#bugfix)
* Fixed help output for `bin/plugin`
* Fix for nested logic for lists and form parsing #273
* Fix for array form fields and last entry not getting deleted
* Should not be able to set parent to self #308
# v1.0.0-rc.5
## 11/20/2015
1. [](#new)
* Added **nonce** functionality for all admin forms for improved security
* Implemented the ability for Plugins to provide their own CLI commands through `bin/plugin`
* Added Croatian translation
* Added missing `umask_fix` property to `system.yaml`
* Added current theme's config to global config. E.g. `config.theme.dropdown_enabled`
* Added `append_url_extension` option to system config & page headers
* Users have a new `state` property to allow disabling/banning
* Added new `Page.relativePagePath()` helper method
* Added new `|pad` Twig filter for strings (uses `str_pad()`)
* Added `lighttpd.conf` for Lightly web server
1. [](#improved)
* Clear previously applied operations when doing a reset on image media
* Password no longer required when editing user
* Improved support for trailing `/` URLs
* Improved `.nginx.conf` configuration file
* Improved `.htaccess` security
* Updated vendor libs
* Updated `composer.phar`
* Use streams instead of paths for `clearCache()`
* Use PCRE_UTF8 so unicode strings can be regexed in Truncator
* Handle case when login plugin is disabled
* Improved `quality` functionality in media handling
* Added some missing translation strings
* Deprecated `bin/grav newuser` in favor of `bin/plugin login new-user`
* Moved fallback types to use any valid media type
* Renamed `system.pages.fallback_types` to `system.media.allowed_fallback_types`
* Removed version number in default `generator` meta tag
* Disable time limit in case of slow downloads
* Removed default hash in `system.yaml`
1. [](#bugfix)
* Fix for media using absolute URLs causing broken links
* Fix theme auto-loading #432
* Don't create empty `<style>` or `<script>` scripts if no data
* Code cleanups
* Fix undefined variable in Config class
* Fix exception message when label is not set
* Check in `Plugins::get()` to ensure plugins exists
* Fixed GZip compression making output buffering work correctly with all servers and browsers
* Fixed date representation in system config
# v1.0.0-rc.4
## 10/29/2015
1. [](#bugfix)
* Fixed a fatal error if you have a collection with missing or invalid `@page: /route`
# v1.0.0-rc.3
## 10/29/2015
1. [](#new)
* New Page collection options! `@self.parent, @self.siblings, @self.descendants` + more
* White list of file types for fallback route functionality (images by default)
1. [](#improved)
* Assets switched from defines to streams
1. [](#bugfix)
* README.md typos fixed
* Fixed issue with routes that have lang string in them (`/en/english`)
* Trim strings before validation so whitespace is not satisfy 'required'
# v1.0.0-rc.2
## 10/27/2015
1. [](#new)
* Added support for CSS Asset groups
* Added a `wrapped_site` system option for themes/plugins to use
* Pass `Page` object as event to `onTwigPageVariables()` event hook
* New `Data.items()` method to get all items
1. [](#improved)
* Missing pipelined remote asset will now fail quietly
* More reliably handle inline JS and CSS to remove only surrounding HTML tags
* `Medium.meta` returns new Data object so null checks are possible
* Improved Medium metadata merging to allow for automatic title/alt/class attributes
* Moved Grav object to global variable rather than template variable (useful for macros)
* German language improvements
* Updated bundled composer
1. [](#bugfix)
* Accept variety of `true` values in `User.authorize()` method
* Fix for `Validation` throwing an error if no label set
# v1.0.0-rc.1
## 10/23/2015
1. [](#new)
* Use native PECL YAML parser if installed for 4X speed boost in parsing YAML files
* Support for inherited theme class
* Added new default language prepend system configuration option
* New `|evaluate` Twig filter to evaluate a string as twig
* New system option to ignore all **hidden** files and folders
* New system option for default redirect code
* Added ability to append specific `[30x]` codes to redirect URLs
* Added `url_taxonomy_filters` for page collections
* Added `@root` page and `recurse` flag for page collections
* Support for **multiple** page collection types as an array
* Added Dutch language file
* Added Russian language file
* Added `remove` method to User object
1. [](#improved)
* Moved hardcoded mimetypes to `media.yaml` to be treated as Page media files
* Set `errors: display: false` by default in `system.yaml`
* Strip out extra slashes in the URI
* Validate hostname to ensure it is valid
* Ignore more SCM folders in Backups
* Removed `home_redirect` settings from `system.yaml`
* Added Page `media` as root twig object for consistency
* Updated to latest vendor libraries
* Optimizations to Asset pipeline logic for minor speed increase
* Block direct access to a variety of files in `.htaccess` for increased security
* Debugbar vendor library update
* Always fallback to english if other translations are not available
1. [](#bugfix)
* Fix for redirecting external URL with multi-language
* Fix for Asset pipeline not respecting asset groups
* Fix language files with child/parent theme relationships
* Fixed a regression issue resulting in incorrect default language
* Ensure error handler is initialized before URI is processed
* Use default language in Twig if active language is not set
* Fixed issue with `safeEmailFilter()` Twig filter not separating with `;` properly
* Fixed empty YAML file causing error with native PECL YAML parser
* Fixed `SVG` mimetype
* Fixed incorrect `Cache-control: max-age` value format
# v0.9.45
## 10/08/2015
1. [](#bugfix)
* Fixed a regression issue resulting in incorrect default language
# v0.9.44
## 10/07/2015
1. [](#new)
* Added Redis back as a supported cache mechanism
* Allow Twig `nicetime` translations
* Added `-y` option for 'Yes to all' in `bin/gpm update`
* Added CSS `media` attribute to the Assets manager
* New German language support
* New Czech language support
* New French language support
* Added `modulus` twig filter
1. [](#improved)
* URL decode in medium actions to allow complex syntax
* Take into account `HTTP_HOST` before `SERVER_NAME` (helpful with Nginx)
* More friendly cache naming to ease manual management of cache systems
* Added default Apache resource for `DirectoryIndex`
1. [](#bugfix)
* Fix GPM failure when offline
* Fix `open_basedir` error in `bin/gpm install`
* Fix an HHVM error in Truncator
* Fix for XSS vulnerability with params
* Fix chaining for responsive size derivatives
* Fix for saving pages when removing the page title and all other header elements
* Fix when saving array fields
* Fix for ports being included in `HTTP_HOST`
* Fix for Truncator to handle PHP tags gracefully
* Fix for locate style lang codes in `getNativeName()`
* Urldecode image basenames in markdown
# v0.9.43
## 09/16/2015
1. [](#new)
* Added new `AudioMedium` for HTML5 audio
* Added ability for Assets to be added and displayed in separate *groups*
* New support for responsive image derivative sizes
1. [](#improved)
* GPM theme install now uses a `copy` method so new files are not lost (e.g. `/css/custom.css`)
* Code analysis improvements and cleanup
* Removed Twig panel from debugger (no longer supported in Twig 1.20)
* Updated composer packages
* Prepend active language to `convertUrl()` when used in markdown links
* Added some pre/post flight options for installer via blueprints
* Hyphenize the site name in the backup filename
1. [](#bugfix)
* Fix broken routable logic
* Check for `phpinfo()` method in case it is restricted by hosting provider
* Fixes for windows when running GPM
* Fix for ampersand (`&`) causing error in `truncateHtml()` via `Page.summary()`
# v0.9.42
## 09/11/2015
1. [](#bugfix)
* Fixed `User.authorise()` to be backwards compabile
# v0.9.41
## 09/11/2015
1. [](#new)
* New and improved multibyte-safe TruncateHTML function and filter
* Added support for custom page date format
* Added a `string` Twig filter to render as json_encoded string
* Added `authorize` Twig filter
* Added support for theme inheritance in the admin
* Support for multiple content collections on a page
* Added configurable files/folders ignores for pages
* Added the ability to set the default PHP locale and override via multi-lang configuration
* Added ability to save as YAML via admin
* Added check for `mbstring` support
* Added new `redirect` header for pages
1. [](#improved)
* Changed dependencies from `develop` to `master`
* Updated logging to log everything from `debug` level on (was `warning`)
* Added missing `accounts/` folder
* Default to performing a 301 redirect for URIs with trailing slashes
* Improved Twig error messages
* Allow validating of forms from anywhere such as plugins
* Added logic so modular pages are by default non-routable
* Hide password input in `bin/grav newuser` command
1. [](#bugfix)
* Fixed `Pages.all()` not returning modular pages
* Fix for modular template types not getting found
* Fix for `markdown_extra:` overriding `markdown:extra:` setting
* Fix for multi-site routing
* Fix for multi-lang page name error
* Fixed a redirect loop in `URI` class
* Fixed a potential error when `unsupported_inline_types` is empty
* Correctly generate 2x retina image
* Typo fixes in page publish/unpublish blueprint
# v0.9.40
## 08/31/2015
1. [](#new)
* Added some new Twig filters: `defined`, `rtrim`, `ltrim`
* Admin support for customizable page file name + template override
1. [](#improved)
* Better message for incompatible/unsupported Twig template
* Improved User blueprints with better help
* Switched to composer **install** rather than **update** by default
* Admin autofocus on page title
* `.htaccess` hardening (`.htaccess` & `htaccess.txt`)
* Cache safety checks for missing folders
1. [](#bugfix)
* Fixed issue with unescaped `o` character in date formats
# v0.9.39
## 08/25/2015
1. [](#bugfix)
* `Page.active()` not triggering on **homepage**
* Fix for invalid session name in Opera browser
# v0.9.38
## 08/24/2015
1. [](#new)
* Added `language` to **user** blueprint
* Added translations to blueprints
* New extending logic for blueprints
* Blueprints are now loaded with Streams to allow for better overrides
* Added new Symfony `dump()` method
1. [](#improved)
* Catch YAML header parse exception so site doesn't die
* Better `Page.parent()` logic
* Improved GPM display layout
* Tweaked default page layout
* Unset route and slug for improved reliability of route changes
* Added requirements to README.md
* Updated various libraries
* Allow use of custom page date field for dateRange collections
1. [](#bugfix)
* Slug fixes with GPM
* Unset plaintext password on save
* Fix for trailing `/` not matching active children
# v0.9.37
## 08/12/2015
3. [](#bugfix)
* Fixed issue when saving `header.process` in page forms via the **admin plugin**
* Fixed error due to use of `set_time_limit` that might be disabled on some hosts
# v0.9.36
## 08/11/2015
1. [](#new)
* Added a new `newuser` CLI command to create user accounts
* Added `default` blueprint for all templates
* Support `user` and `system` language translation merging
1. [](#improved)
* Added isSymlink method in GPM to determine if Grav is symbolically linked or not
* Refactored page recursing
* Updated blueprints to use new toggles
* Updated blueprints to use current date for date format fields
* Updated composer.phar
* Use sessions for admin even when disabled for site
* Use `GRAV_ROOT` in session identifier
# v0.9.35
## 08/06/2015
1. [](#new)
* Added `body_classes` field
* Added `visiblity` toggle and help tooltips on new page form
* Added new `Page.unsetRoute()` method to allow admin to regenerate the route
2. [](#improved)
* User save no longer stores username each time
* Page list form field now shows all pages except root
* Removed required option from page title
* Added configuration settings for running Nginx in sub directory
3. [](#bugfix)
* Fixed deep translation merging
* Fixed broken **metadata** merging with site defaults
* Fixed broken **summary** field
* Fixed broken robots field
* Fixed GPM issue when using cURL, throwing an `Undefined offset: 1` exception
* Removed duplicate hidden page `type` field
# v0.9.34
## 08/04/2015
1. [](#new)
* Added new `cache_all` system setting + media `cache()` method
* Added base languages configuration
* Added property language to page to help plugins identify page language
* New `Utils::arrayFilterRecursive()` method
2. [](#improved)
* Improved Session handling to support site and admin independently
* Allow Twig variables to be modified in other events
* Blueprint updates in preparation for Admin plugin
* Changed `Inflector` from static to object and added multi-language support
* Support for admin override of a page's blueprints
3. [](#bugfix)
* Removed unused `use` in `VideoMedium` that was causing error
* Array fix in `User.authorise()` method
* Fix for typo in `translations_fallback`
* Fixed moving page to the root
# v0.9.33
## 07/21/2015
@@ -5,7 +979,7 @@
* Added new `onImageMediumSaved()` event (useful for post-image processing)
* Added `Vary: Accept-Encoding` option
2. [](#improved)
* Multilang-safe delimeter position
* Multilang-safe delimiter position
* Refactored Twig classes and added optional umask setting
* Removed `pageinit()` timing
* `Page->routable()` now takes `published()` state into account
@@ -91,7 +1065,7 @@
* Improved query string handling
* Optimization to image handling supporting URL encoded filenames
* Use global `composer` when available rather than Grv provided one
* Use `PHP_BINARY` contant rather than `php` executable
* Use `PHP_BINARY` constant rather than `php` executable
* Updated Doctrine Cache library
* Updated Symfony libraries
* Moved `convertUrl()` method to Uri object

124
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,124 @@
# Contributing to Grav
:+1::tada: First, thanks for getting involved with Grav! :tada::+1:
Please take a moment to review this document in order to make the contribution
process easy and effective for everyone involved.
Following these guidelines helps to communicate that you respect the time of
the developers managing and developing this open source project. In return,
they should reciprocate that respect in addressing your issue or assessing
patches and features.
## Grav, Plugins, Themes and Skeletons
Grav is a large open source project—it's made up of over 100 repositories. When you initially consider contributing to Grav, you might be unsure about which of those 200 repositories implements the functionality you want to change or report a bug for.
[https://github.com/getgrav/grav](https://github.com/getgrav/grav) is the main Grav repository. The core of Grav is provided by this repo.
[https://github.com/getgrav/grav-plugin-admin](https://github.com/getgrav/grav-plugin-admin) is the Admin Plugin repository.
Every Plugin and Theme has its own repository. If you have a problem you think is specific to a Theme or Plugin, please report it in its corresponding repository. Please read the Plugin or Theme documentation to ensure the problem is not addressed there already.
Every Skeleton also has its own repository, so if an issue is not specific to a theme or plugin but rather to its usage in the skeleton, report it in the skeleton repository.
## Using the issue tracker
The issue tracker is the preferred channel for [bug reports](#bugs),
[features requests](#features) and [submitting pull
requests](#pull-requests), but please respect the following restrictions:
* Please **do not** use the issue tracker for support requests. Use
[the Forum](http://getgrav.org/forum) or [the Gitter chat](https://gitter.im/getgrav/grav).
<a name="bugs"></a>
## Bug reports
A bug is a _demonstrable problem_ that is caused by the code in the repository.
Good bug reports are extremely helpful - thank you!
Guidelines for bug reports:
1. **Check you satisfy the Grav requirements** &mdash; [http://learn.getgrav.org/basics/requirements](http://learn.getgrav.org/basics/requirements)
2. **Check this happens on a clean Grav install** &mdash; check if the issue happens on any Grav site, or just with a specific configuration of plugins / theme
3. **Use the GitHub issue search** &mdash; check if the issue has already been
reported.
4. **Check if the issue is already being solved in a PR** &mdash; check the open Pull Requests to see if one already solves the problem you're having
5. **Check if the issue has been fixed** &mdash; try to reproduce it using the
latest `develop` branch in the repository.
6. **Isolate the problem** &mdash; create a [reduced test
case](http://css-tricks.com/reduced-test-cases/) and provide a step-by-step instruction set on how to recreate the problem. Include code samples, page snippets or yaml configurations if needed.
7. **Check the problem on Grav 1.1** &mdash; if you're using Grav 1.0, latest stable release, please also check if you can replicate the issue on Grav 1.1 RC as many bugs are already solved in the next Grav release.
A good bug report shouldn't leave others needing to chase you up for more
information. Please try to be as detailed as possible in your report.
What is your environment? Is it localhost, OSX, Linux, on a remote server? Same happening locally and or the server, or just locally or just on Linux?
What steps will reproduce the issue? What browser(s) and OS experience the problem?
What would you expect to be the outcome?
Did the problem start happening recently (e.g. after updating to a new version of Grav) or was this always a problem?
If the problem started happening recently, can you reproduce the problem in an older version of Grav? What's the most recent version in which the problem doesn't happen? You can download older versions of Grav from the releases page on Github.
Can you reliably reproduce the issue? If not, provide details about how often the problem happens and under which conditions it normally happens.
All these details will help people to fix any potential bugs.
Important: [include Code Samples in triple backticks](https://help.github.com/articles/github-flavored-markdown/#fenced-code-blocks) so that Github will provide a proper indentation. [Add the language name after the backticks](https://help.github.com/articles/github-flavored-markdown/#syntax-highlighting) to add syntax highlighting to the code snippets.
Example:
> Short and descriptive example bug report title
>
> A summary of the issue and the browser/OS environment in which it occurs. If
> suitable, include the steps required to reproduce the bug.
>
> 1. This is the first step
> 2. This is the second step
> 3. Further steps, etc.
>>
> Any other information you want to share that is relevant to the issue being
> reported. This might include the lines of code that you have identified as
> causing the bug, and potential solutions (and your opinions on their
> merits).
<a name="features"></a>
## Feature requests
Feature requests are welcome. But take a moment to find out whether your idea
fits with the scope and aims of the project. It's up to *you* to make a strong
case to convince the project's developers of the merits of this feature. Please
provide as much detail and context as possible.
<a name="pull-requests"></a>
## Pull requests
Good pull requests - patches, improvements, new features - are a fantastic
help. They should remain focused in scope and avoid containing unrelated
commits.
**Please ask first** in Gitter or in the Forum before embarking on any significant pull request (e.g.
implementing features, refactoring code..),
otherwise you risk spending a lot of time working on something that the
project's developers might not want to merge into the project.
Please adhere to the coding conventions used throughout the project (indentation,
accurate comments, etc.) and any other requirements.
See [Using Pull Request](https://help.github.com/articles/using-pull-requests/) and [Fork a Repo](https://help.github.com/articles/fork-a-repo/) if you're not familiar with Pull Requests.
**IMPORTANT**: By submitting a patch, you agree to allow the project owner to
license your work under the same license as that used by the project.

114
README.md
View File

@@ -1,29 +1,42 @@
# ![](https://avatars1.githubusercontent.com/u/8237355?v=2&s=50) Grav
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/cfd20465-d0f8-4a0a-8444-467f5b5f16ad/mini.png)](https://insight.sensiolabs.com/projects/cfd20465-d0f8-4a0a-8444-467f5b5f16ad) [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/getgrav/grav?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/cfd20465-d0f8-4a0a-8444-467f5b5f16ad/mini.png)](https://insight.sensiolabs.com/projects/cfd20465-d0f8-4a0a-8444-467f5b5f16ad) [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/getgrav/grav?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![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)
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.
The underlying architecture of Grav is designed to use well-established and _best-in-class_ technologies, to ensure that Grav is simple to use and easy to extend. Some of these key technologies include:
The underlying architecture of Grav is designed to use well-established and _best-in-class_ technologies to ensure that Grav is simple to use and easy to extend. Some of these key technologies include:
* [Twig Templating](http://twig.sensiolabs.org/): for powerful control of the user interface
* [Markdown](http://en.wikipedia.org/wiki/Markdown): for easy content creation
* [YAML](http://yaml.org): for simple configuration
* [Parsedown](http://parsedown.org/): for fast Markdown and Mardown Extra support
* [Doctrine Cache](http://docs.doctrine-project.org/en/2.0.x/reference/caching.html): layer for performance
* [Parsedown](http://parsedown.org/): for fast Markdown and Markdown Extra support
* [Doctrine Cache](http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/caching.html): layer for performance
* [Pimple Dependency Injection Container](http://pimple.sensiolabs.org/): for extensibility and maintainability
* [Symfony Event Dispacher](http://symfony.com/doc/current/components/event_dispatcher/introduction.html): for plugin event handling
* [Symfony Event Dispatcher](http://symfony.com/doc/current/components/event_dispatcher/introduction.html): for plugin event handling
* [Symfony Console](http://symfony.com/doc/current/components/console/introduction.html): for CLI interface
* [Gregwar Image Library](https://github.com/Gregwar/Image): for dynamic image manipulation
# Requirements
- PHP 5.5.9 or higher. Check the [required modules list](http://learn.getgrav.org/basics/requirements#php-requirements)
- Check the [Apache](http://learn.getgrav.org/basics/requirements#apache-requirements) or [IIS](http://learn.getgrav.org/basics/requirements#iis-requirements) requirements
# QuickStart
You have two options to get Grav:
These are the options to get Grav:
### Downloading a Grav Package
You can download a **ready-built** package from the [Downloads page on http://getgrav.org](http://getgrav.org/downloads)
### With Composer
You can create a new project with the latest **stable** Grav release with the following command:
```
$ composer create-project getgrav/grav ~/webroot/grav
```
### From GitHub
1. Clone the Grav repository from [https://github.com/getgrav/grav]() to a folder in the webroot of your server, e.g. `~/webroot/grav`. Launch a **terminal** or **console** and navigate to the webroot folder:
@@ -42,13 +55,13 @@ Check out the [install procedures](http://learn.getgrav.org/basics/installation)
# Adding Functionality
You can download manually from the [Downloads page on http://getgrav.org](http://getgrav.org/downloads), but the preferred solution is to use the [Grav Package Manager](http://learn.getgrav.org/advanced/grav-gpm) or `GPM`:
You can download [plugins](http://getgrav.org/downloads/plugins) or [themes](http://getgrav.org/downloads/themes) manually from the appropriate tab on the [Downloads page on http://getgrav.org](http://getgrav.org/downloads), but the preferred solution is to use the [Grav Package Manager](http://learn.getgrav.org/advanced/grav-gpm) or `GPM`:
```
$ bin/gpm index
```
This will display all the available plugins and then you can install one ore more with:
This will display all the available plugins and then you can install one or more with:
```
$ bin/gpm install <plugin/theme>
@@ -71,7 +84,7 @@ $ bin/gpm update
# Contributing
We appreciate any contribution to Grav, whether it is related to bugs, grammar, or simply a suggestion or improvement.
However, we ask that any contribution follow our simple guidelines in order to be properly received.
However, we ask that any contributions follow our simple guidelines in order to be properly received.
All our projects follow the [GitFlow branching model][gitflow-model], from development to release. If you are not familiar with it, there are several guides and tutorials to make you understand what it is about.
@@ -87,19 +100,94 @@ What you mainly want to know is that:
* [What is Grav?](http://learn.getgrav.org/basics/what-is-grav)
* [Install](http://learn.getgrav.org/basics/installation) Grav in few seconds
* Understand the [Configuration](http://learn.getgrav.org/basics/grav-configuration)
* Take a peek at our available free [Skeletons](http://getgrav.org/downloads/skeletons#extras)
* If you have questions, check out `#grav` on irc.freenode.net
* Take a peek at our available free [Skeletons](http://getgrav.org/downloads/skeletons)
* If you have questions, jump on our [Gitter Room](https://gitter.im/getgrav/grav)!
* Have fun!
# Exploring more
# Exploring More
* Have a look at our [Basic Tutorial](http://learn.getgrav.org/basics/basic-tutorial)
* Dive into more [advanced](http://learn.getgrav.org/advanced) functions
# Backers
Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/grav#backer)]
<a href="https://opencollective.com/grav/backer/0/website" target="_blank"><img src="https://opencollective.com/grav/backer/0/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/1/website" target="_blank"><img src="https://opencollective.com/grav/backer/1/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/2/website" target="_blank"><img src="https://opencollective.com/grav/backer/2/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/3/website" target="_blank"><img src="https://opencollective.com/grav/backer/3/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/4/website" target="_blank"><img src="https://opencollective.com/grav/backer/4/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/5/website" target="_blank"><img src="https://opencollective.com/grav/backer/5/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/6/website" target="_blank"><img src="https://opencollective.com/grav/backer/6/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/7/website" target="_blank"><img src="https://opencollective.com/grav/backer/7/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/8/website" target="_blank"><img src="https://opencollective.com/grav/backer/8/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/9/website" target="_blank"><img src="https://opencollective.com/grav/backer/9/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/10/website" target="_blank"><img src="https://opencollective.com/grav/backer/10/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/11/website" target="_blank"><img src="https://opencollective.com/grav/backer/11/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/12/website" target="_blank"><img src="https://opencollective.com/grav/backer/12/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/13/website" target="_blank"><img src="https://opencollective.com/grav/backer/13/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/14/website" target="_blank"><img src="https://opencollective.com/grav/backer/14/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/15/website" target="_blank"><img src="https://opencollective.com/grav/backer/15/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/16/website" target="_blank"><img src="https://opencollective.com/grav/backer/16/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/17/website" target="_blank"><img src="https://opencollective.com/grav/backer/17/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/18/website" target="_blank"><img src="https://opencollective.com/grav/backer/18/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/19/website" target="_blank"><img src="https://opencollective.com/grav/backer/19/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/20/website" target="_blank"><img src="https://opencollective.com/grav/backer/20/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/21/website" target="_blank"><img src="https://opencollective.com/grav/backer/21/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/22/website" target="_blank"><img src="https://opencollective.com/grav/backer/22/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/23/website" target="_blank"><img src="https://opencollective.com/grav/backer/23/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/24/website" target="_blank"><img src="https://opencollective.com/grav/backer/24/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/25/website" target="_blank"><img src="https://opencollective.com/grav/backer/25/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/26/website" target="_blank"><img src="https://opencollective.com/grav/backer/26/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/27/website" target="_blank"><img src="https://opencollective.com/grav/backer/27/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/28/website" target="_blank"><img src="https://opencollective.com/grav/backer/28/avatar.svg"></a>
<a href="https://opencollective.com/grav/backer/29/website" target="_blank"><img src="https://opencollective.com/grav/backer/29/avatar.svg"></a>
# Sponsors
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/grav#sponsor)]
<a href="https://opencollective.com/grav/sponsor/0/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/1/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/2/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/3/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/4/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/5/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/6/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/7/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/8/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/9/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/9/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/10/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/10/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/11/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/11/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/12/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/12/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/13/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/13/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/14/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/14/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/15/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/15/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/16/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/16/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/17/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/17/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/18/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/18/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/19/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/19/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/20/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/20/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/21/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/21/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/22/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/22/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/23/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/23/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/24/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/24/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/25/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/25/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/26/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/26/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/27/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/27/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/28/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/28/avatar.svg"></a>
<a href="https://opencollective.com/grav/sponsor/29/website" target="_blank"><img src="https://opencollective.com/grav/sponsor/29/avatar.svg"></a>
# License
See [LICENSE](LICENSE)
See [LICENSE](LICENSE.txt)
[gitflow-model]: http://nvie.com/posts/a-successful-git-branching-model/
[gitflow-extensions]: https://github.com/nvie/gitflow
# Running Tests
First install the dev dependencies by running `composer update` from the Grav root.
Then `composer test` will run the Unit Tests, which should be always executed successfully on any site.
You can also run a single unit test file, e.g. `composer test tests/unit/Grav/Common/AssetsTest.php`

Binary file not shown.

29
bin/gpm
View File

@@ -2,15 +2,12 @@
<?php
define('GRAV_CLI', true);
if (version_compare($ver = PHP_VERSION, $req = '5.4.0', '<')) {
exit(sprintf("You are running PHP %s, but Grav needs at least PHP %s to run.\n", $ver, $req));
}
if (!file_exists(__DIR__ . '/../vendor')){
require_once __DIR__ . '/../system/src/Grav/Common/Composer.php';
}
use Grav\Common\Composer;
use Grav\Common\Config\Setup;
if (!file_exists(__DIR__ . '/../vendor')){
// Before we can even start, we need to run composer first
@@ -25,6 +22,10 @@ use Grav\Common\Grav;
$autoload = require_once(__DIR__ . '/../vendor/autoload.php');
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));
}
if (!ini_get('date.timezone')) {
date_default_timezone_set('UTC');
}
@@ -37,11 +38,25 @@ 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();
$environment = $climate->arguments->get('environment');
// Set up environment based on params.
Setup::$environment = $environment;
$grav = Grav::instance(array('loader' => $autoload));
$grav['uri']->init();
$grav['config']->init();
$grav['streams'];
$grav['plugins']->init();
$grav['themes']->init();
$app = new Application('Grav Package Manager', GRAV_VERSION);
$app->addCommands(array(
@@ -52,5 +67,7 @@ $app->addCommands(array(
new \Grav\Console\Gpm\UninstallCommand(),
new \Grav\Console\Gpm\UpdateCommand(),
new \Grav\Console\Gpm\SelfupgradeCommand(),
new \Grav\Console\Gpm\DirectInstallCommand(),
));
$app->run();

View File

@@ -2,10 +2,6 @@
<?php
define('GRAV_CLI', true);
if (version_compare($ver = PHP_VERSION, $req = '5.4.0', '<')) {
exit(sprintf("You are running PHP %s, but Grav needs at least PHP %s to run.\n", $ver, $req));
}
if (!file_exists(__DIR__ . '/../vendor')){
require_once __DIR__ . '/../system/src/Grav/Common/Composer.php';
}
@@ -24,6 +20,10 @@ use Symfony\Component\Console\Application;
require_once __DIR__ . '/../vendor/autoload.php';
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));
}
if (!ini_get('date.timezone')) {
date_default_timezone_set('UTC');
}
@@ -32,14 +32,14 @@ if (!file_exists(ROOT_DIR . 'index.php')) {
exit('FATAL: Must be run from ROOT directory of Grav!');
}
$app = new Application('Grav CLI Application', '0.1.0');
$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\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(),
));
$app->run();

137
bin/plugin Executable file
View File

@@ -0,0 +1,137 @@
#!/usr/bin/env php
<?php
define('GRAV_CLI', true);
if (!file_exists(__DIR__ . '/../vendor')) {
require_once __DIR__ . '/../system/src/Grav/Common/Composer.php';
}
use Grav\Common\Composer;
if (!file_exists(__DIR__ . '/../vendor')) {
// Before we can even start, we need to run composer first
$composer = Composer::getComposerExecutor();
echo "Preparing to install vendor dependencies...\n\n";
echo system($composer . ' --working-dir="' . __DIR__ . '/../" --no-interaction --no-dev --prefer-dist -o install');
echo "\n\n";
}
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\Config\Setup;
use Grav\Common\Filesystem\Folder;
$autoload = require_once(__DIR__ . '/../vendor/autoload.php');
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));
}
if (!ini_get('date.timezone')) {
date_default_timezone_set('UTC');
}
if (!file_exists(ROOT_DIR . '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');
// Set up environment based on params.
Setup::$environment = $environment;
$grav = Grav::instance(array('loader' => $autoload));
$grav['uri']->init();
$grav['config']->init();
$grav['streams'];
$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);
$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]);
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);
if (in_array($entry, $available)) {
continue;
}
$available[] = $entry;
$output->writeln(' ' . $index . ". <red>" . str_pad($entry, 15) . "</red> <white>${bin} ${entry} list</white>");
}
}
exit;
}
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);

16
codeception.yml Normal file
View File

@@ -0,0 +1,16 @@
actor: Tester
paths:
tests: tests
log: tests/_output
data: tests/_data
support: tests/_support
envs: tests/_envs
settings:
bootstrap: _bootstrap.php
colors: true
memory_limit: 1024M
extensions:
enabled:
- Codeception\Extension\RunFailed
modules:
config:

View File

@@ -1,27 +1,40 @@
{
"name": "getgrav/grav",
"type": "library",
"type": "project",
"description": "Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS",
"keywords": ["cms","flat-file cms","flat cms","flatfile cms","php"],
"homepage": "http://getgrav.org",
"license": "MIT",
"require": {
"php": ">=5.4.0",
"twig/twig": "~1.16",
"php": ">=5.5.9",
"twig/twig": "~1.24",
"erusev/parsedown": "dev-master as 1.6.0",
"erusev/parsedown-extra": "~0.7",
"symfony/yaml": "2.7.*",
"symfony/console": "2.7.*",
"symfony/event-dispatcher": "2.7.*",
"doctrine/cache": "~1.4",
"maximebf/debugbar": "dev-master",
"filp/whoops": "1.2.*@dev",
"symfony/yaml": "~2.8",
"symfony/console": "~2.8",
"symfony/event-dispatcher": "~2.8",
"symfony/var-dumper": "~2.8",
"symfony/polyfill-iconv": "~1.0",
"doctrine/cache": "~1.5",
"filp/whoops": "~2.0",
"matthiasmullie/minify": "^1.3",
"monolog/monolog": "~1.0",
"gregwar/image": "~2.0",
"ircmaxell/password-compat": "1.0.*",
"mrclay/minify": "~2.2",
"gregwar/image": "dev-master#72568cfbeb77515278f2ccb386fc344e874b7ae8",
"donatj/phpuseragentparser": "~0.3",
"pimple/pimple": "~3.0",
"rockettheme/toolbox": "1.0.*"
"rockettheme/toolbox": "~1.0",
"maximebf/debugbar": "~1.10",
"ext-mbstring": "*",
"ext-openssl": "*",
"ext-curl": "*",
"ext-zip": "*",
"league/climate": "^3.2",
"antoligy/dom-string-iterators": "^1.0"
},
"require-dev": {
"codeception/codeception": "^2.1",
"phpunit/php-code-coverage": "~2.0",
"fzaninotto/faker": "^1.5"
},
"autoload": {
"psr-4": {
@@ -31,5 +44,15 @@
},
"archive": {
"exclude": ["VERSION"]
},
"scripts": {
"post-create-project-cmd": "bin/grav install",
"test": "vendor/bin/codecept run unit",
"test-windows": "vendor\\bin\\codecept run unit"
},
"extra": {
"branch-alias": {
"dev-develop": "1.x-dev"
}
}
}

3184
composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,24 +1,44 @@
<?php
namespace Grav;
/**
* @package Grav.Core
*
* @copyright Copyright (C) 2014 - 2016 RocketTheme, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
if (version_compare($ver = PHP_VERSION, $req = '5.4.0', '<')) {
throw new \RuntimeException(sprintf('You are running PHP %s, but Grav needs at least <strong>PHP %s</strong> to run.', $ver, $req));
}
namespace Grav;
// Ensure vendor libraries exist
$autoload = __DIR__ . '/vendor/autoload.php';
if (!is_file($autoload)) {
throw new \RuntimeException("Please run: <i>bin/grav install</i>");
die("Please run: <i>bin/grav install</i>");
}
if (PHP_SAPI == 'cli-server') {
if (!isset($_SERVER['PHP_CLI_ROUTER'])) {
die("PHP webserver requires a router to run Grav, please use: <pre>php -S {$_SERVER["SERVER_NAME"]}:{$_SERVER["SERVER_PORT"]} system/router.php</pre>");
}
}
use Grav\Common\Grav;
use RocketTheme\Toolbox\Event\Event;
// Register the auto-loader.
$loader = require_once $autoload;
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));
}
// 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(
@@ -30,7 +50,6 @@ $grav = Grav::instance(
try {
$grav->process();
} catch (\Exception $e) {
$grav->fireEvent('onFatalException');
$grav->fireEvent('onFatalException', new Event(['exception' => $e]));
throw $e;
}

View File

@@ -1,73 +0,0 @@
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location / {
root html;
index index.php;
if (!-e $request_filename){ rewrite ^(.*)$ /index.php last; }
}
location /images/ {
# Serve images as static
}
location /user {
rewrite ^/user/accounts/(.*)$ /error redirect;
rewrite ^/user/config/(.*)$ /error redirect;
rewrite ^/user/(.*)\.(txt|md|html|php|yaml|json|twig|sh|bat)$ /error redirect;
}
location /cache {
rewrite ^/cache/(.*) /error redirect;
}
location /bin {
rewrite ^/bin/(.*)$ /error redirect;
}
location /backup {
rewrite ^/backup/(.*) /error redirect;
}
location /system {
rewrite ^/system/(.*)\.(txt|md|html|php|yaml|json|twig|sh|bat)$ /error redirect;
}
location /vendor {
rewrite ^/vendor/(.*)\.(txt|md|html|php|yaml|json|twig|sh|bat)$ /error redirect;
}
# Remember to change 127.0.0.1:9000 to the Ip/port
# you configured php-cgi.exe to run from
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}

View File

@@ -1,2 +1,11 @@
User-agent: *
Disallow:
Disallow: /backup/
Disallow: /bin/
Disallow: /cache/
Disallow: /grav/
Disallow: /logs/
Disallow: /system/
Disallow: /vendor/
Disallow: /user/
Allow: /user/pages/
Allow: /user/themes/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,110 +1,19 @@
body {
background-color: #eee;
}
body header {
background: #349886;
border-left: 8px solid #29796B;
background: #8552A2;
}
body .clipboard {
width: 28px;
height: 28px;
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcAQMAAABIw03XAAAAA3NCSVQICAjb4U/gAAAABlBMVEX///////9VfPVsAAAAAnRSTlP/AOW3MEoAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAFnRFWHRDcmVhdGlvbiBUaW1lADEwLzE1LzE0xr/LJAAAADhJREFUCJlj+P///wcGBPGDQR5E8OMi2IEEczOIaAQRHSCioQBGHAAR/7AT/z+DiA8MMALVXhABAJf9Sr5aY+UFAAAAAElFTkSuQmCC);
body .left-panel {
background: inherit;
}
body .exc-title-primary {
color: #1C3631;
text-shadow: none;
color: #fff;
}
body .exc-title {
color: #2F5B52;
text-shadow: none;
}
body .data-table-container label {
color: #0082BA;
}
body .frame {
border: 0;
}
body .frames-container {
overflow-y: auto;
overflow-x: hidden;
}
body .active .frame-class {
color: #E3D8E9;
}
body .frame-class {
color: #9055AF;
}
body .frame.active {
border: 0;
box-shadow: none;
background-color: #9055AF;
color: #ddd;
}
body .frame:not(.active):hover {
background: #e9e9e9;
}
body .frame-file, body .data-table tbody {
font-family: "DejaVu Sans Mono", Menlo, Monaco, Consolas, Courier, monospace;
font-size: 13px;
}
body .frame-code {
background: #305669;
border-left: 8px solid #253A47;
padding: 1rem;
}
body .frame-code .frame-file {
background: #253A47;
color: #eee;
text-shadow: none;
box-shadow: none;
font-family: inherit;
}
body .frame-code .frame-file strong {
color: #fff;
font-weight: normal;
}
body .frame-comments {
background: #283E4D;
box-shadow: none;
}
body .frame-comments.empty:before {
color: #789AAB;
}
body .details-container {
border: 0;
}
body .details {
background-color: #eee;
border-left: 8px solid #ddd;
padding: 1rem;
}
body .code-block {
background: #2C4454;
box-shadow: none;
font-family: "DejaVu Sans Mono", Menlo, Monaco, Consolas, Courier, monospace;
font-size: 13px;
}
body .handler.active {
background: #666;
background: #e6e6e6;
}

View File

@@ -1,4 +1,4 @@
title: Media
title: PLUGIN_ADMIN.MEDIA
form:
validation: loose

View File

@@ -1,72 +1,124 @@
title: Site
title: PLUGIN_ADMIN.SITE
form:
validation: loose
fields:
content:
type: section
title: Defaults
title: PLUGIN_ADMIN.DEFAULTS
underline: true
fields:
title:
type: text
label: Site Title
label: PLUGIN_ADMIN.SITE_TITLE
size: large
placeholder: "Site wide title"
help: Default title for your site
placeholder: PLUGIN_ADMIN.SITE_TITLE_PLACEHOLDER
help: PLUGIN_ADMIN.SITE_TITLE_HELP
default_lang:
type: text
label: PLUGIN_ADMIN.SITE_DEFAULT_LANG
size: vsmall
placeholder: PLUGIN_ADMIN.SITE_DEFAULT_LANG_PLACEHOLDER
help: PLUGIN_ADMIN.SITE_DEFAULT_LANG_HELP
author.name:
type: text
size: large
label: Default Author
label: PLUGIN_ADMIN.DEFAULT_AUTHOR
help: PLUGIN_ADMIN.DEFAULT_AUTHOR_HELP
author.email:
type: text
size: large
label: Default Email
label: PLUGIN_ADMIN.DEFAULT_EMAIL
help: PLUGIN_ADMIN.DEFAULT_EMAIL_HELP
validate:
type: email
taxonomies:
type: text
type: selectize
size: large
label: Taxonomy Types
label: PLUGIN_ADMIN.TAXONOMY_TYPES
classes: fancy
help: PLUGIN_ADMIN.TAXONOMY_TYPES_HELP
validate:
type: commalist
metadata:
type: array
label: Metadata
placeholder_key: Name
placeholder_value: Content
blog:
summary:
type: section
title: Blog
title: PLUGIN_ADMIN.PAGE_SUMMARY
underline: true
fields:
blog.route:
type: text
size: large
label: Blog URL
summary.enabled:
type: toggle
label: PLUGIN_ADMIN.ENABLED
highlight: 1
help: PLUGIN_ADMIN.ENABLED_HELP
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
summary.size:
type: text
size: x-small
label: Summary Size
append: PLUGIN_ADMIN.CHARACTERS
label: PLUGIN_ADMIN.SUMMARY_SIZE
help: PLUGIN_ADMIN.SUMMARY_SIZE_HELP
validate:
type: int
min: 0
max: 65536
type: int
min: 0
max: 65536
summary.format:
type: toggle
label: PLUGIN_ADMIN.FORMAT
classes: fancy
help: PLUGIN_ADMIN.FORMAT_HELP
highlight: short
options:
'short': PLUGIN_ADMIN.SHORT
'long': PLUGIN_ADMIN.LONG
summary.delimiter:
type: text
size: x-small
label: PLUGIN_ADMIN.DELIMITER
help: PLUGIN_ADMIN.DELIMITER_HELP
metadata:
type: section
title: PLUGIN_ADMIN.METADATA
underline: true
fields:
metadata:
type: array
label: PLUGIN_ADMIN.METADATA
help: PLUGIN_ADMIN.METADATA_HELP
placeholder_key: PLUGIN_ADMIN.METADATA_KEY
placeholder_value: PLUGIN_ADMIN.METADATA_VALUE
routes:
type: section
title: Routes
title: PLUGIN_ADMIN.REDIRECTS_AND_ROUTES
underline: true
fields:
redirects:
type: array
label: PLUGIN_ADMIN.CUSTOM_REDIRECTS
help: PLUGIN_ADMIN.CUSTOM_REDIRECTS_HELP
placeholder_key: PLUGIN_ADMIN.CUSTOM_REDIRECTS_PLACEHOLDER_KEY
placeholder_value: PLUGIN_ADMIN.CUSTOM_REDIRECTS_PLACEHOLDER_VALUE
routes:
type: array
label: Custom
placeholder_key: /your/alias
placeholder_value: /your/route
label: PLUGIN_ADMIN.CUSTOM_ROUTES
help: PLUGIN_ADMIN.CUSTOM_ROUTES_HELP
placeholder_key: PLUGIN_ADMIN.CUSTOM_ROUTES_PLACEHOLDER_KEY
placeholder_value: PLUGIN_ADMIN.CUSTOM_ROUTES_PLACEHOLDER_VALUE

View File

@@ -1,7 +1,8 @@
title: File Streams
title: PLUGIN_ADMIN.FILE_STREAMS
form:
validation: loose
hidden: true
fields:
schemes.xxx:
type: array

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,315 @@
title: PLUGIN_ADMIN.DEFAULT
rules:
slug:
pattern: '[a-zа-я][a-zа-я0-9_\-]+'
min: 2
max: 80
form:
validation: loose
fields:
tabs:
type: tabs
active: 1
fields:
content:
type: tab
title: PLUGIN_ADMIN.CONTENT
fields:
header.title:
type: text
autofocus: true
style: vertical
label: PLUGIN_ADMIN.TITLE
content:
type: markdown
validate:
type: textarea
uploads:
type: pagemedia
label: PLUGIN_ADMIN.PAGE_MEDIA
options:
type: tab
title: PLUGIN_ADMIN.OPTIONS
fields:
publishing:
type: section
title: PLUGIN_ADMIN.PUBLISHING
underline: true
fields:
header.published:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.PUBLISHED
help: PLUGIN_ADMIN.PUBLISHED_HELP
highlight: 1
size: medium
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
header.date:
type: datetime
label: PLUGIN_ADMIN.DATE
toggleable: true
help: PLUGIN_ADMIN.DATE_HELP
header.publish_date:
type: datetime
label: PLUGIN_ADMIN.PUBLISHED_DATE
toggleable: true
help: PLUGIN_ADMIN.PUBLISHED_DATE_HELP
header.unpublish_date:
type: datetime
label: PLUGIN_ADMIN.UNPUBLISHED_DATE
toggleable: true
help: PLUGIN_ADMIN.UNPUBLISHED_DATE_HELP
header.metadata:
toggleable: true
type: array
label: PLUGIN_ADMIN.METADATA
help: PLUGIN_ADMIN.METADATA_HELP
placeholder_key: PLUGIN_ADMIN.METADATA_KEY
placeholder_value: PLUGIN_ADMIN.METADATA_VALUE
taxonomies:
type: section
title: PLUGIN_ADMIN.TAXONOMIES
underline: true
fields:
header.taxonomy:
type: taxonomy
label: PLUGIN_ADMIN.TAXONOMY
multiple: true
validate:
type: array
advanced:
type: tab
title: PLUGIN_ADMIN.ADVANCED
fields:
columns:
type: columns
fields:
column1:
type: column
fields:
settings:
type: section
title: PLUGIN_ADMIN.SETTINGS
underline: true
ordering:
type: toggle
label: PLUGIN_ADMIN.FOLDER_NUMERIC_PREFIX
help: PLUGIN_ADMIN.FOLDER_NUMERIC_PREFIX_HELP
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
folder:
type: text
label: PLUGIN_ADMIN.FOLDER_NAME
validate:
type: slug
pattern: '[a-zA-Zа-яA-Я0-9_\-]+'
route:
type: select
label: PLUGIN_ADMIN.PARENT
classes: fancy
data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes'
data-default@: '\Grav\Plugin\Admin\Admin::rawRoute'
options:
'/': PLUGIN_ADMIN.DEFAULT_OPTION_ROOT
name:
type: select
classes: fancy
label: PLUGIN_ADMIN.PAGE_FILE
help: PLUGIN_ADMIN.PAGE_FILE_HELP
default: default
data-options@: '\Grav\Common\Page\Pages::pageTypes'
header.body_classes:
type: text
label: PLUGIN_ADMIN.BODY_CLASSES
column2:
type: column
fields:
order_title:
type: section
title: PLUGIN_ADMIN.ORDERING
underline: true
order:
type: order
label: PLUGIN_ADMIN.PAGE_ORDER
sitemap:
overrides:
type: section
title: PLUGIN_ADMIN.OVERRIDES
underline: true
fields:
header.dateformat:
toggleable: true
type: select
size: medium
selectize:
create: true
label: PLUGIN_ADMIN.DEFAULT_DATE_FORMAT
help: PLUGIN_ADMIN.DEFAULT_DATE_FORMAT_HELP
placeholder: PLUGIN_ADMIN.DEFAULT_DATE_FORMAT_PLACEHOLDER
data-options@: '\Grav\Common\Utils::dateFormats'
validate:
type: string
header.menu:
type: text
label: PLUGIN_ADMIN.MENU
toggleable: true
help: PLUGIN_ADMIN.MENU_HELP
header.slug:
type: text
label: PLUGIN_ADMIN.SLUG
toggleable: true
help: PLUGIN_ADMIN.SLUG_HELP
validate:
message: PLUGIN_ADMIN.SLUG_VALIDATE_MESSAGE
rule: slug
header.redirect:
type: text
label: PLUGIN_ADMIN.REDIRECT
toggleable: true
help: PLUGIN_ADMIN.REDIRECT_HELP
header.process:
type: checkboxes
label: PLUGIN_ADMIN.PROCESS
toggleable: true
config-default@: system.pages.process
default:
markdown: true
twig: false
options:
markdown: Markdown
twig: Twig
use: keys
header.twig_first:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.TWIG_FIRST
help: PLUGIN_ADMIN.TWIG_FIRST_HELP
highlight: 0
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
header.never_cache_twig:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.NEVER_CACHE_TWIG
help: PLUGIN_ADMIN.NEVER_CACHE_TWIG_HELP
highlight: 0
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
header.child_type:
type: select
toggleable: true
label: PLUGIN_ADMIN.DEFAULT_CHILD_TYPE
default: default
placeholder: PLUGIN_ADMIN.USE_GLOBAL
data-options@: '\Grav\Common\Page\Pages::types'
header.routable:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.ROUTABLE
help: PLUGIN_ADMIN.ROUTABLE_HELP
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
header.cache_enable:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.CACHING
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
header.visible:
type: toggle
toggleable: true
label: PLUGIN_ADMIN.VISIBLE
help: PLUGIN_ADMIN.VISIBLE_HELP
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
header.template:
type: text
toggleable: true
label: PLUGIN_ADMIN.DISPLAY_TEMPLATE
header.append_url_extension:
type: text
label: PLUGIN_ADMIN.APPEND_URL_EXT
toggleable: true
help: PLUGIN_ADMIN.APPEND_URL_EXT_HELP
header.order_by:
type: hidden
header.order_manual:
type: hidden
validate:
type: commalist
blueprint:
type: blueprint

View File

@@ -0,0 +1,58 @@
title: PLUGIN_ADMIN:EXTERNAL
@extends:
type: default
context: blueprints://pages
rules:
slug:
pattern: '[a-zа-я][a-zа-я0-9_\-]+'
min: 2
max: 80
form:
validation: loose
fields:
tabs:
type: tabs
active: 1
fields:
content:
fields:
header.title:
type: text
autofocus: true
style: horizontal
label: PLUGIN_ADMIN.TITLE
content:
unset@: true
uploads:
unset@: true
header.external_url:
type: text
label: PLUGIN_ADMIN.EXTERNAL_URL
placeholder: https://getgrav.org
validate:
required: true
options:
fields:
publishing:
fields:
header.date:
unset@: true
header.metadata:
unset@: true
taxonomies:
unset@: true

View File

@@ -0,0 +1,47 @@
title: PLUGIN_ADMIN.MODULAR
@extends:
type: default
context: blueprints://pages
form:
fields:
tabs:
type: tabs
active: 1
fields:
content:
fields:
header.content.items:
type: select
label: PLUGIN_ADMIN.ITEMS
default: '@self.modular'
options:
'@self.modular': Modular Children
header.content.order.by:
type: select
label: PLUGIN_ADMIN.ORDER_BY
default: date
options:
folder: PLUGIN_ADMIN.FOLDER
title: PLUGIN_ADMIN.TITLE
date: PLUGIN_ADMIN.DATE
default: PLUGIN_ADMIN.DEFAULT
header.content.order.dir:
type: select
label: PLUGIN_ADMIN.ORDER
default: desc
options:
asc: PLUGIN_ADMIN.ASCENDING
desc: PLUGIN_ADMIN.DESCENDING
header.process:
type: ignore
content:
type: ignore
uploads:
type: ignore

View File

@@ -1,6 +1,6 @@
rules:
slug:
pattern: "[a-z][a-z0-9_\-]+"
pattern: '[a-z][a-z0-9_\-]+'
min: 2
max: 80
@@ -10,40 +10,38 @@ form:
section:
type: section
title: Add Modular Content
title: PLUGIN_ADMIN.ADD_MODULAR_CONTENT
title:
type: text
label: Page Title
label: PLUGIN_ADMIN.PAGE_TITLE
validate:
required: true
folder:
type: text
label: Folder Name
label: PLUGIN_ADMIN.FOLDER_NAME
validate:
type: slug
required: true
pattern: '[a-zA-Zа-яA-Я0-9_\-]+'
route:
type: select
label: Page
label: PLUGIN_ADMIN.PAGE
classes: fancy
@data-options: '\Grav\Common\Page\Pages::parents'
@data-default: '\Grav\Plugin\admin::route'
options:
'': '- Select -'
data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes'
data-default@: '\Grav\Plugin\Admin\Admin::rawRoute'
validate:
required: true
type:
name:
type: select
classes: fancy
label: Modular Template
label: PLUGIN_ADMIN.MODULAR_TEMPLATE
help: PLUGIN_ADMIN.PAGE_FILE_HELP
default: default
@data-options: '\Grav\Common\Page\Pages::modularTypes'
data-options@: '\Grav\Common\Page\Pages::modularTypes'
validate:
required: true
@@ -52,3 +50,6 @@ form:
default: 1
validate:
type: bool
blueprint:
type: blueprint

View File

@@ -1,6 +1,6 @@
rules:
slug:
pattern: "[a-z][a-z0-9_\-]+"
pattern: '[a-z][a-z0-9_\-]+'
min: 2
max: 80
@@ -15,26 +15,35 @@ form:
fields:
content:
type: tab
title: Content
title: PLUGIN_ADMIN.CONTENT
fields:
frontmatter:
type: frontmatter
label: Frontmatter
classes: frontmatter
type: editor
label: PLUGIN_ADMIN.FRONTMATTER
autofocus: true
codemirror:
mode: 'yaml'
indentUnit: 4
autofocus: true
indentWithTabs: false
lineNumbers: true
styleActiveLine: true
gutters: ['CodeMirror-lint-markers']
lint: true
content:
type: markdown
label: Content
uploads:
type: uploads
label: Page Media
type: pagemedia
label: PLUGIN_ADMIN.PAGE_MEDIA
options:
type: tab
title: Options
title: PLUGIN_ADMIN.OPTIONS
fields:
@@ -47,30 +56,42 @@ form:
fields:
ordering:
type: toggle
label: PLUGIN_ADMIN.FOLDER_NUMERIC_PREFIX
help: PLUGIN_ADMIN.FOLDER_NUMERIC_PREFIX_HELP
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
folder:
type: text
label: Filename
label: PLUGIN_ADMIN.FILENAME
validate:
type: slug
required: true
pattern: '[a-zA-Zа-яA-Я0-9_\-]+'
route:
type: select
label: Parent
label: PLUGIN_ADMIN.PARENT
classes: fancy
@data-options: '\Grav\Common\Page\Pages::parents'
@data-default: '\Grav\Plugin\admin::route'
data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes'
data-default@: '\Grav\Plugin\Admin\Admin::rawRoute'
options:
'': '- Select -'
'': PLUGIN_ADMIN.DEFAULT_OPTION_SELECT
validate:
required: true
type:
name:
type: select
classes: fancy
label: Modular Template
label: PLUGIN_ADMIN.MODULAR_TEMPLATE
default: default
@data-options: '\Grav\Common\Page\Pages::modularTypes'
data-options@: '\Grav\Common\Page\Pages::modularTypes'
validate:
required: true
@@ -80,5 +101,7 @@ form:
fields:
order:
type: order
label: Ordering
label: PLUGIN_ADMIN.ORDERING
blueprint:
type: blueprint

View File

@@ -0,0 +1,17 @@
rules:
slug:
pattern: '[a-z][a-z0-9_\-]+'
min: 2
max: 80
form:
validation: loose
fields:
route:
type: select
label: PLUGIN_ADMIN.PARENT
classes: fancy
data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes'
data-default@: '\Grav\Plugin\Admin\Admin::rawRoute'
options:
'/': PLUGIN_ADMIN.DEFAULT_OPTION_ROOT

View File

@@ -1,6 +1,6 @@
rules:
slug:
pattern: "[a-z][a-z0-9_\-]+"
pattern: '[a-z][a-z0-9_\-]+'
min: 2
max: 80
@@ -10,39 +10,58 @@ form:
section:
type: section
title: Add Page
title: PLUGIN_ADMIN.ADD_PAGE
title:
type: text
label: Page Title
label: PLUGIN_ADMIN.PAGE_TITLE
help: PLUGIN_ADMIN.PAGE_TITLE_HELP
validate:
required: true
folder:
type: text
label: Folder Name
label: PLUGIN_ADMIN.FOLDER_NAME
help: PLUGIN_ADMIN.FOLDER_NAME_HELP
validate:
type: slug
required: true
pattern: '[a-zA-Zа-яA-Я0-9_\-]+'
route:
type: select
label: Parent Page
label: PLUGIN_ADMIN.PARENT_PAGE
classes: fancy
@data-options: '\Grav\Common\Page\Pages::parents'
@data-default: '\Grav\Plugin\admin::route'
data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes'
data-default@: '\Grav\Plugin\Admin\Admin::getLastPageRoute'
options:
'/': '- Root -'
'/': PLUGIN_ADMIN.DEFAULT_OPTION_ROOT
validate:
required: true
type:
name:
type: select
classes: fancy
label: Display Template
default: default
@data-options: '\Grav\Common\Page\Pages::types'
label: PLUGIN_ADMIN.PAGE_FILE
help: PLUGIN_ADMIN.PAGE_FILE_HELP
data-options@: '\Grav\Common\Page\Pages::types'
data-default@: '\Grav\Plugin\Admin\Admin::getLastPageName'
validate:
required: true
visible:
type: toggle
label: PLUGIN_ADMIN.VISIBLE
help: PLUGIN_ADMIN.VISIBLE_HELP
highlight: ''
default: ''
options:
'': Auto
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
required: true
blueprint:
type: blueprint

View File

@@ -0,0 +1,36 @@
rules:
slug:
pattern: '[a-z][a-z0-9_\-]+'
min: 2
max: 80
form:
validation: loose
fields:
section:
type: section
title: PLUGIN_ADMIN.ADD_FOLDER
folder:
type: text
label: PLUGIN_ADMIN.FOLDER_NAME
help: PLUGIN_ADMIN.FOLDER_NAME_HELP
validate:
type: slug
required: true
pattern: '[a-zA-Zа-яA-Я0-9_\-]+'
route:
type: select
label: PLUGIN_ADMIN.PARENT_PAGE
classes: fancy
data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes'
data-default@: '\Grav\Plugin\Admin\Admin::getLastPageRoute'
options:
'/': PLUGIN_ADMIN.DEFAULT_OPTION_ROOT
validate:
required: true
blueprint:
type: blueprint

View File

@@ -1,42 +0,0 @@
rules:
slug:
pattern: "[a-z][a-z0-9_\-]+"
min: 2
max: 80
form:
validation: loose
fields:
title:
type: text
label: Title
validate:
required: true
folder:
type: text
label: Folder
validate:
type: slug
required: true
route:
type: select
label: Parent
classes: fancy
@data-options: '\Grav\Common\Page\Pages::parents'
@data-default: '\Grav\Plugin\admin::route'
options:
'/': '- Root -'
validate:
required: true
type:
type: select
classes: fancy
label: Display Template
default: default
@data-options: '\Grav\Common\Page\Pages::types'
validate:
required: true

View File

@@ -1,6 +1,6 @@
rules:
slug:
pattern: "[a-z][a-z0-9_\-]+"
pattern: '[a-z][a-z0-9_\-]+'
min: 2
max: 80
@@ -15,26 +15,34 @@ form:
fields:
content:
type: tab
title: Content
title: PLUGIN_ADMIN.CONTENT
fields:
frontmatter:
type: frontmatter
label: Frontmatter
classes: frontmatter
type: editor
label: PLUGIN_ADMIN.FRONTMATTER
autofocus: true
codemirror:
mode: 'yaml'
indentUnit: 4
autofocus: true
indentWithTabs: false
lineNumbers: true
styleActiveLine: true
gutters: ['CodeMirror-lint-markers']
lint: true
content:
type: markdown
label: Content
uploads:
type: uploads
label: Page Media
type: pagemedia
label: PLUGIN_ADMIN.PAGE_MEDIA
options:
type: tab
title: Options
title: PLUGIN_ADMIN.OPTIONS
fields:
@@ -47,30 +55,42 @@ form:
fields:
ordering:
type: toggle
label: PLUGIN_ADMIN.FOLDER_NUMERIC_PREFIX
help: PLUGIN_ADMIN.FOLDER_NUMERIC_PREFIX_HELP
highlight: 1
options:
1: PLUGIN_ADMIN.ENABLED
0: PLUGIN_ADMIN.DISABLED
validate:
type: bool
folder:
type: text
label: Folder Name
label: PLUGIN_ADMIN.FOLDER_NAME
help: PLUGIN_ADMIN.FOLDER_NAME_HELP
validate:
type: slug
required: true
pattern: '[a-zA-Zа-яA-Я0-9_\-]+'
route:
type: select
label: Parent
label: PLUGIN_ADMIN.PARENT
classes: fancy
@data-options: '\Grav\Common\Page\Pages::parents'
@data-default: '\Grav\Plugin\admin::route'
data-options@: '\Grav\Common\Page\Pages::parentsRawRoutes'
data-default@: '\Grav\Plugin\Admin\Admin::rawRoute'
options:
'/': '- Root -'
validate:
required: true
'/': PLUGIN_ADMIN.DEFAULT_OPTION_ROOT
type:
name:
type: select
classes: fancy
label: Display Template
label: PLUGIN_ADMIN.DISPLAY_TEMPLATE
help: PLUGIN_ADMIN.DISPLAY_TEMPLATE_HELP
default: default
@data-options: '\Grav\Common\Page\Pages::types'
data-options@: '\Grav\Common\Page\Pages::types'
validate:
required: true
@@ -80,5 +100,7 @@ form:
fields:
order:
type: order
label: Ordering
label: PLUGIN_ADMIN.ORDERING
blueprint:
type: blueprint

View File

@@ -1,41 +1,85 @@
title: Site
title: Account
form:
validation: loose
fields:
content:
type: section
title: Account
info:
type: userinfo
size: large
fields:
username:
type: text
size: large
label: Username
readonly: true
content:
type: section
title: PLUGIN_ADMIN.ACCOUNT
underline: true
email:
type: text
size: large
label: Email
validate:
required: true
password:
type: password
size: large
label: Password
validate:
required: true
username:
type: text
size: large
label: PLUGIN_ADMIN.USERNAME
disabled: true
readonly: true
fullname:
type: text
size: large
label: Full name
validate:
required: true
email:
type: email
size: large
label: PLUGIN_ADMIN.EMAIL
validate:
type: email
message: PLUGIN_ADMIN.EMAIL_VALIDATION_MESSAGE
required: true
title:
type: text
size: large
label: Title
password:
type: password
size: large
label: PLUGIN_ADMIN.PASSWORD
validate:
required: false
message: PLUGIN_ADMIN.PASSWORD_VALIDATION_MESSAGE
pattern: '(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}'
fullname:
type: text
size: large
label: PLUGIN_ADMIN.FULL_NAME
validate:
required: true
title:
type: text
size: large
label: PLUGIN_ADMIN.TITLE
language:
type: select
label: PLUGIN_ADMIN.LANGUAGE
size: medium
classes: fancy
data-options@: '\Grav\Plugin\Admin\Admin::adminLanguages'
default: 'en'
help: PLUGIN_ADMIN.LANGUAGE_HELP
security:
title: PLUGIN_ADMIN.ACCESS_LEVELS
type: section
security: admin.super
underline: true
fields:
groups:
type: selectize
size: large
label: PLUGIN_ADMIN.GROUPS
data-options@: '\Grav\User\Groups::groups'
classes: fancy
help: PLUGIN_ADMIN.GROUPS_HELP
validate:
type: commalist
access:
type: permissions
label: PLUGIN_ADMIN.PERMISSIONS
ignore_empty: true
validate:
type: array

View File

@@ -1,4 +1,4 @@
title: Add Account
title: PLUGIN_ADMIN.ADD_ACCOUNT
form:
validation: loose
@@ -6,10 +6,11 @@ form:
content:
type: section
title: Add Account
title: PLUGIN_ADMIN.ADD_ACCOUNT
username:
type: text
label: Username
label: PLUGIN_ADMIN.USERNAME
help: PLUGIN_ADMIN.USERNAME_HELP
validate:
required: true

View File

@@ -0,0 +1,37 @@
title: Group
form:
validation: loose
fields:
spacer:
type: spacer
text: '<br>'
groupname:
type: text
size: large
label: PLUGIN_ADMIN.NAME
disabled: true
readonly: true
readableName:
type: text
size: large
label: PLUGIN_ADMIN_PRO.READABLE_NAME
description:
type: text
size: large
label: PLUGIN_ADMIN.DESCRIPTION
icon:
type: text
size: small
label: PLUGIN_ADMIN_PRO.ICON
access:
type: permissions
label: PLUGIN_ADMIN.PERMISSIONS
ignore_empty: true
validate:
type: array

View File

@@ -0,0 +1,16 @@
title: PLUGIN_ADMIN_PRO.ADD_GROUP
form:
validation: loose
fields:
content:
type: section
title: PLUGIN_ADMIN_PRO.ADD_GROUP
groupname:
type: text
label: PLUGIN_ADMIN_PRO.GROUP_NAME
help: PLUGIN_ADMIN_PRO.GROUP_NAME_HELP
validate:
required: true

View File

@@ -1,114 +1,206 @@
defaults:
type: file
thumb: media/thumb.png
mime: application/octet-stream
image:
filters:
default:
- enableProgressive
types:
defaults:
type: file
thumb: media/thumb.png
mime: application/octet-stream
image:
filters:
default:
- enableProgressive
jpg:
type: image
thumb: media/thumb-jpg.png
mime: image/jpeg
jpeg:
type: image
thumb: media/thumb-jpeg.png
mime: image/jpeg
png:
type: image
thumb: media/thumb-png.png
mime: image/png
gif:
type: animated
thumb: media/thumb-gif.png
mime: image/gif
jpg:
type: image
thumb: media/thumb-jpg.png
mime: image/jpeg
jpe:
type: image
thumb: media/thumb-jpg.png
mime: image/jpeg
jpeg:
type: image
thumb: media/thumb-jpeg.png
mime: image/jpeg
png:
type: image
thumb: media/thumb-png.png
mime: image/png
gif:
type: animated
thumb: media/thumb-gif.png
mime: image/gif
svg:
type: vector
thumb: media/thumb-gif.png
mime: image/svg+xml
svg:
type: vector
thumb: media/thumb.png
mime: image/svg+xml
mp4:
type: video
thumb: media/thumb-mp4.png
mime: video/mp4
mov:
type: video
thumb: media/thumb-mov.png
mime: video/quicktime
m4v:
type: video
thumb: media/thumb-m4v.png
mime: video/x-m4v
swf:
type: video
thumb: media/thumb-swf.png
mime: video/x-flv
flv:
type: video
thumb: media/thumb-flv.png
mime: video/x-flv
mp4:
type: video
thumb: media/thumb-mp4.png
mime: video/mp4
mov:
type: video
thumb: media/thumb-mov.png
mime: video/quicktime
m4v:
type: video
thumb: media/thumb-m4v.png
mime: video/x-m4v
swf:
type: video
thumb: media/thumb-swf.png
mime: video/x-flv
flv:
type: video
thumb: media/thumb-flv.png
mime: video/x-flv
webm:
type: video
thumb: media/thumb.png
mime: video/webm
ogv:
type: video
thumb: media/thumb-ogg.png
mime: video/ogg
mp3:
type: audio
thumb: media/thumb-mp3.png
mime: audio/mp3
ogg:
type: audio
thumb: media/thumb-ogg.png
mime: audio/ogg
wma:
type: audio
thumb: media/thumb-wma.png
mime: audio/wma
m4a:
type: audio
thumb: media/thumb-m4a.png
mime: audio/m4a
wav:
type: audio
thumb: media/thumb-wav.png
mime: audio/wav
mp3:
type: audio
thumb: media/thumb-mp3.png
mime: audio/mp3
ogg:
type: audio
thumb: media/thumb-ogg.png
mime: audio/ogg
wma:
type: audio
thumb: media/thumb-wma.png
mime: audio/wma
m4a:
type: audio
thumb: media/thumb-m4a.png
mime: audio/m4a
wav:
type: audio
thumb: media/thumb-wav.png
mime: audio/wav
aiff:
type: audio
mime: audio/aiff
aif:
type: audio
mime: audio/aif
txt:
type: file
thumb: media/thumb-txt.png
mime: text/plain
xml:
type: file
thumb: media/thumb-xml.png
mime: application/xml
doc:
type: file
thumb: media/thumb-doc.png
mime: application/msword
html:
type: file
thumb: media/thumb-html.png
mime: text/html
pdf:
type: file
thumb: media/thumb-pdf.png
mime: application/pdf
zip:
type: file
thumb: media/thumb-zip.png
mime: application/zip
gz:
type: file
thumb: media/thumb-gz.png
mime: application/gzip
css:
type: file
thumb: media/thumb-css.png
mime: text/css
js:
type: file
thumb: media/thumb-js.png
mime: application/javascript
json:
type: file
thumb: media/thumb-json.png
mime: application/json
txt:
type: file
thumb: media/thumb-txt.png
mime: text/plain
xml:
type: file
thumb: media/thumb-xml.png
mime: application/xml
doc:
type: file
thumb: media/thumb-doc.png
mime: application/msword
docx:
type: file
mime: application/msword
xls:
type: file
mime: application/vnd.ms-excel
xlt:
type: file
mime: application/vnd.ms-excel
xlm:
type: file
mime: application/vnd.ms-excel
xlsm:
type: file
mime: application/vnd.ms-excel
xld:
type: file
mime: application/vnd.ms-excel
xla:
type: file
mime: application/vnd.ms-excel
xlc:
type: file
mime: application/vnd.ms-excel
xlw:
type: file
mime: application/vnd.ms-excel
xll:
type: file
mime: application/vnd.ms-excel
ppt:
type: file
mime: application/vnd.ms-powerpoint
pps:
type: file
mime: application/vnd.ms-powerpoint
rtf:
type: file
mime: application/rtf
bmp:
type: file
mime: image/bmp
tiff:
type: file
mime: image/tiff
mpeg:
type: file
mime: video/mpeg
mpg:
type: file
mime: video/mpeg
mpe:
type: file
mime: video/mpeg
avi:
type: file
mime: video/msvideo
wmv:
type: file
mime: video/x-ms-wmv
html:
type: file
thumb: media/thumb-html.png
mime: text/html
htm:
type: file
thumb: media/thumb-html.png
mime: text/html
pdf:
type: file
thumb: media/thumb-pdf.png
mime: application/pdf
zip:
type: file
thumb: media/thumb-zip.png
mime: application/zip
7z:
type: file
thumb: media/thumb-7zip.png
mime: application/x-7z-compressed
gz:
type: file
thumb: media/thumb-gz.png
mime: application/gzip
tar:
type: file
mime: application/x-tar
css:
type: file
thumb: media/thumb-css.png
mime: text/css
js:
type: file
thumb: media/thumb-js.png
mime: application/javascript
json:
type: file
thumb: media/thumb-json.png
mime: application/json

View File

@@ -1,4 +1,5 @@
title: Grav # Name of the site
default_lang: en # Default language for site (potentially used by theme)
author:
name: John Appleseed # Default author name
@@ -16,12 +17,12 @@ summary:
delimiter: === # The summary delimiter
redirects:
/redirect-test: / # Redirect test goes to home page
/old/(.*): /new/$1 # Would redirect /old/my-page to /new/my-page
# '/redirect-test': '/' # Redirect test goes to home page
# '/old/(.*)': '/new/$1' # Would redirect /old/my-page to /new/my-page
routes:
/something/else: '/blog/sample-3' # Alias for /blog/sample-3
/new/(.*): '/blog/$1' # Regex any /new/my-page URL to /blog/my-page Route
# '/something/else': '/blog/sample-3' # Alias for /blog/sample-3
# '/new/(.*)': '/blog/$1' # Regex any /new/my-page URL to /blog/my-page Route
blog:
route: '/blog' # Custom value added (accessible via system.blog.route)

View File

@@ -1,9 +1,4 @@
schemes:
asset:
type: ReadOnlyStream
paths:
- assets
image:
type: ReadOnlyStream
paths:

View File

@@ -1,96 +1,139 @@
absolute_urls: false # Absolute or relative URLs for `base_url`
timezone: '' # Valid values: http://php.net/manual/en/timezones.php
param_sep: ':' # Parameter separator, use ';' for Apache on windows
absolute_urls: false # Absolute or relative URLs for `base_url`
timezone: '' # Valid values: http://php.net/manual/en/timezones.php
default_locale: # Default locale (defaults to system)
param_sep: ':' # Parameter separator, use ';' for Apache on windows
wrapped_site: false # For themes/plugins to know if Grav is wrapped by another platform
reverse_proxy_setup: false # Running in a reverse proxy scenario with different webserver ports than proxy
force_ssl: false # If enabled, Grav forces to be accessed via HTTPS (NOTE: Not an ideal solution)
custom_base_url: '' # Set the base_url manually
languages:
translations: true # Enable translations by default
supported: [] # List of languages supported. eg: [en, fr, de]
include_default_lang: true # Include the default lang prefix in all URLs
translations: true # Enable translations by default
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
home:
alias: '/home' # Default path for home, ie /
alias: '/home' # Default path for home, ie /
hide_in_urls: false # Hide the home route in URLs
pages:
theme: antimatter # Default theme (defaults to "antimatter" theme)
theme: antimatter # Default theme (defaults to "antimatter" theme)
order:
by: default # Order pages by "default", "alpha" or "date"
dir: asc # Default ordering direction, "asc" or "desc"
by: default # Order pages by "default", "alpha" or "date"
dir: asc # Default ordering direction, "asc" or "desc"
list:
count: 20 # Default item count per page
count: 20 # Default item count per page
dateformat:
short: 'jS M Y' # Short date format
long: 'F jS \a\t g:ia' # Long date format
publish_dates: true # automatically publish/unpublish based on dates
default: # The default date format Grav expects in the `date: ` field
short: 'jS M Y' # Short date format
long: 'F jS \a\t g:ia' # Long date format
publish_dates: true # automatically publish/unpublish based on dates
process:
markdown: true # Process Markdown
twig: false # Process Twig
markdown: true # Process Markdown
twig: false # Process Twig
twig_first: false # Process Twig before markdown when processing both on a page
never_cache_twig: false # Only cache content, never cache twig processed in content (incompatible with `twig_first: true`)
events:
page: true # Enable page level events
twig: true # Enable twig level events
page: true # Enable page level events
twig: true # Enable Twig level events
markdown:
extra: false # Enable support for Markdown Extra support (GFM by default)
auto_line_breaks: false # Enable automatic line breaks
auto_url_links: false # Enable automatic HTML links
escape_markup: false # Escape markup tags into entities
special_chars: # List of special characters to automatically convert to entities
extra: false # Enable support for Markdown Extra support (GFM by default)
auto_line_breaks: false # Enable automatic line breaks
auto_url_links: false # Enable automatic HTML links
escape_markup: false # Escape markup tags into entities
special_chars: # List of special characters to automatically convert to entities
'>': 'gt'
'<': 'lt'
types: [txt,xml,html,json,rss,atom] # list of valid page types
expires: 604800 # Page expires time in seconds (604800 seconds = 7 days)
last_modified: false # Set the last modified date header based on file modifcation timestamp
etag: false # 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
types: [txt,xml,html,htm,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)
last_modified: false # Set the last modified date header based on file modifcation timestamp
etag: false # 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: 301 # Default code to use for redirects
redirect_trailing_slash: true # Handle automatically or 301 redirect a trailing / URL
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
url_taxonomy_filters: true # Enable auto-magic URL-based taxonomy filters for page collections
frontmatter:
process_twig: false # Should the frontmatter be processed to replace Twig variables?
ignore_fields: ['form','forms'] # Fields that might contain Twig variables and should not be processed
cache:
enabled: true # Set to true to enable caching
enabled: true # Set to true to enable caching
check:
method: file # Method to check for updates in pages: file|folder|none
driver: auto # One of: auto|file|apc|xcache|memcache|wincache
prefix: 'g' # Cache prefix string (prevents cache conflicts)
lifetime: 604800 # Lifetime of cached data in seconds (0 = infinite)
gzip: false # GZip compress the page output
method: file # Method to check for updates in pages: file|folder|hash|none
driver: auto # One of: auto|file|apc|xcache|memcache|wincache
prefix: 'g' # Cache prefix string (prevents cache conflicts)
lifetime: 604800 # Lifetime of cached data in seconds (0 = infinite)
gzip: false # GZip compress the page output
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
twig:
cache: true # Set to true to enable twig caching
debug: false # Enable Twig debug
auto_reload: true # Refresh cache on changes
autoescape: false # Autoescape Twig vars
undefined_functions: true # Allow undefined functions
undefined_filters: true # Allow undefined filters
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
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
assets: # Configuration for Assets Manager (JS, CSS)
css_pipeline: false # The CSS pipeline is the unification of multiple CSS resources into one file
css_minify: true # Minify the CSS during pipelining
css_minify_windows: false # Minify Override for Windows platforms. False by default due to ThreadStackSize
css_rewrite: true # Rewrite any CSS relative URLs during pipelining
js_pipeline: false # The JS pipeline is the unification of multiple JS resources into one file
js_minify: true # Minify the JS during pipelining
enable_asset_timestamp: false # Enable asset timestamps
assets: # Configuration for Assets Manager (JS, CSS)
css_pipeline: false # The CSS pipeline is the unification of multiple CSS resources into one file
css_pipeline_include_externals: true # Include external URLs in the pipeline by default
css_pipeline_before_excludes: true # Render the pipeline before any excluded files
css_minify: true # Minify the CSS during pipelining
css_minify_windows: false # Minify Override for Windows platforms. False by default due to ThreadStackSize
css_rewrite: true # Rewrite any CSS relative URLs during pipelining
js_pipeline: false # The JS pipeline is the unification of multiple JS resources into one file
js_pipeline_include_externals: true # Include external URLs in the pipeline by default
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
collections:
jquery: system://assets/jquery/jquery-2.1.4.min.js
jquery: system://assets/jquery/jquery-2.x.min.js
errors:
display: true # Display full backtrace-style error page
log: true # Log errors to /logs folder
display: 0 # Display either (1) Full backtrace | (0) Simple Error | (-1) System Error
log: true # Log errors to /logs folder
debugger:
enabled: false # Enable Grav debugger and following settings
twig: true # Enable debugging of Twig templates
enabled: false # Enable Grav debugger and following settings
shutdown:
close_connection: true # Close the connection before calling onShutdown(). false for debugging
close_connection: true # Close the connection before calling onShutdown(). false for debugging
images:
default_image_quality: 85 # Default image quality to use when resampling images (85%)
debug: false # Show an overlay over images indicating the pixel depth of the image when working with retina for example
default_image_quality: 85 # Default image quality to use when resampling images (85%)
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
media:
enable_media_timestamp: false # Enable media timetsamps
upload_limit: 0 # Set maximum upload size in bytes (0 is unlimited)
unsupported_inline_types: [] # Array of unsupported media file types to try to display inline
enable_media_timestamp: false # Enable media timetsamps
upload_limit: 0 # Set maximum upload size in bytes (0 is unlimited)
unsupported_inline_types: [] # Array of supported media types to try to display inline
allowed_fallback_types: [] # Array of allowed media types of files found if accessed via Page route
session:
enabled: true # Enable Session support
timeout: 1800 # Timeout in seconds
name: grav-site # Name prefix of the session cookie
enabled: true # Enable Session support
timeout: 1800 # Timeout in seconds
name: grav-site # Name prefix of the session cookie. Use alphanumeric, dashes or underscores only. Do not use dots in the session name
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.
split: true # Sessions should be independent between site and plugins (such as admin)
path:
security:
default_hash: $2y$10$kwsyMVwM8/7j0K/6LHT.g.Fs49xOCTp2b8hh/S5.dPJuJcJB6T.UK
gpm:
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.

View File

@@ -1,9 +1,17 @@
<?php
/**
* @package Grav.Core
*
* @copyright Copyright (C) 2014 - 2016 RocketTheme, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
// Some standard defines
define('GRAV', true);
define('GRAV_VERSION', '0.9.33');
define('GRAV_VERSION', '1.1.15');
define('GRAV_TESTING', false);
define('DS', '/');
define('GRAV_PHP_MIN', '5.5.9');
// Directories and Paths
if (!defined('GRAV_ROOT')) {
@@ -12,20 +20,20 @@ if (!defined('GRAV_ROOT')) {
define('ROOT_DIR', GRAV_ROOT . '/');
define('USER_PATH', 'user/');
define('USER_DIR', ROOT_DIR . USER_PATH);
define('SYSTEM_DIR', ROOT_DIR .'system/');
define('ASSETS_DIR', ROOT_DIR . 'assets/');
define('CACHE_DIR', ROOT_DIR . 'cache/');
define('IMAGES_DIR', ROOT_DIR . 'images/');
define('LOG_DIR', ROOT_DIR .'logs/');
define('ACCOUNTS_DIR', USER_DIR .'accounts/');
define('PAGES_DIR', USER_DIR .'pages/');
// DEPRECATED: Do not use!
define('ASSETS_DIR', ROOT_DIR . 'assets/');
define('IMAGES_DIR', ROOT_DIR . '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('VENDOR_DIR', ROOT_DIR .'vendor/');
define('LOG_DIR', ROOT_DIR .'logs/');
// END DEPRECATED
// Some extensions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

75
system/languages/ar.yaml Normal file
View File

@@ -0,0 +1,75 @@
---
FRONTMATTER_ERROR_PAGE: |
---
العنوان: %1$s
---
# خطأ: مادة أمامية غير صحيحة
مسار: '%2$s'
**%3$s**
, , ,
%4$s
, , ,
NICETIME:
NO_DATE_PROVIDED: لم يتم تقديم التاريخ
BAD_DATE: تاريخ خاطئ
AGO: من قبل
FROM_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:
- الاثنين
- الثلاثاء
- الأربعاء
- الخميس
- الجمعة
- السبت
- الأحد

75
system/languages/ca.yaml Normal file
View File

@@ -0,0 +1,75 @@
---
FRONTMATTER_ERROR_PAGE: |
---
title: %1$s
---
# S'ha produït un error: Frontmatter invàlid
Ruta: `%2$s`
**%3$s**
```
%4$s
```
NICETIME:
NO_DATE_PROVIDED: "No s'ha proporcionat data"
BAD_DATE: Data invàlida
AGO: abans
FROM_NOW: "des d'ara"
SECOND: segon
MINUTE: minut
HOUR: hora
DAY: dia
WEEK: setmana
MONTH: mes
YEAR: any
DECADE: dècada
SEC: s
MIN: min
HR: h
WK: setm.
MO: m.
YR: a.
DEC: dèc.
SECOND_PLURAL: segons
MINUTE_PLURAL: minuts
HOUR_PLURAL: hores
DAY_PLURAL: dies
WEEK_PLURAL: setmanes
MONTH_PLURAL: mesos
YEAR_PLURAL: anys
DECADE_PLURAL: dècades
SEC_PLURAL: s
MIN_PLURAL: min
HR_PLURAL: h
WK_PLURAL: setm.
MO_PLURAL: mesos
YR_PLURAL: anys
DEC_PLURAL: dèc.
FORM:
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
- Febrer
- Març
- Abril
- Maig
- Juny
- Juliol
- Agost
- Setembre
- Octubre
- Novembre
- Desembre
DAYS_OF_THE_WEEK:
- Dilluns
- Dimarts
- Dimecres
- Dijous
- Divendres
- Dissabte
- Diumenge

81
system/languages/cs.yaml Normal file
View File

@@ -0,0 +1,81 @@
---
INFLECTOR_UNCOUNTABLE:
- vybavení
- informace
- rýže
- peníze
- druhy
- série
- ryba
- ovce
INFLECTOR_IRREGULAR:
person: lidé
man: muži
child: děti
sex: pohlaví
move: pohyby
INFLECTOR_ORDINALS:
default: '.'
first: '.'
second: '.'
third: '.'
NICETIME:
NO_DATE_PROVIDED: Datum nebylo vloženo
BAD_DATE: Chybné datum
AGO: zpět
FROM_NOW: od teď
SECOND: sekunda
MINUTE: minuta
HOUR: hodina
DAY: den
WEEK: týden
MONTH: měsíc
YEAR: rok
DECADE: dekáda
SEC: sek
MIN: min
HR: hod
WK: t
MO: m
YR: r
DEC: dek
SECOND_PLURAL: sekundy
MINUTE_PLURAL: minuty
HOUR_PLURAL: hodiny
DAY_PLURAL: dny
WEEK_PLURAL: týdny
MONTH_PLURAL: měsíce
YEAR_PLURAL: roky
DECADE_PLURAL: dekády
SEC_PLURAL: sek
MIN_PLURAL: min
HR_PLURAL: hod
WK_PLURAL: t
MO_PLURAL: m
YR_PLURAL: r
DEC_PLURAL: dek
FORM:
VALIDATION_FAIL: '<b>Ověření se nezdařilo:</b>'
INVALID_INPUT: Neplatný vstup v
MISSING_REQUIRED_FIELD: 'Chybí požadované pole:'
MONTHS_OF_THE_YEAR:
- ledna
- února
- března
- dubna
- května
- června
- července
- srpna
- září
- října
- listopadu
- prosince
DAYS_OF_THE_WEEK:
- Pondělí
- Úterý
- Středa
- Čtvrtek
- Pátek
- Sobota
- Neděle

75
system/languages/da.yaml Normal file
View File

@@ -0,0 +1,75 @@
---
FRONTMATTER_ERROR_PAGE: |
---
Titel: %1$s
---
# Fejl: Ugyldigt frontmatter
Sti: `%2$s`
**%3$s**
```
%4$s
```
NICETIME:
NO_DATE_PROVIDED: Ingen dato angivet
BAD_DATE: Ugyldig dato
AGO: siden
FROM_NOW: fra nu
SECOND: sekund
MINUTE: minut
HOUR: time
DAY: dag
WEEK: uge
MONTH: måned
YEAR: år
DECADE: årti
SEC: sek
MIN: min
HR: t
WK: u
MO: md
YR: år
DEC: årti
SECOND_PLURAL: sekunder
MINUTE_PLURAL: minutter
HOUR_PLURAL: timer
DAY_PLURAL: dage
WEEK_PLURAL: uger
MONTH_PLURAL: måneder
YEAR_PLURAL: år
DECADE_PLURAL: årtier
SEC_PLURAL: sek
MIN_PLURAL: min
HR_PLURAL: timer
WK_PLURAL: uger
MO_PLURAL: mdr
YR_PLURAL: år
DEC_PLURAL: årtier
FORM:
VALIDATION_FAIL: '<b>Validering mislykkedes:</b>'
INVALID_INPUT: Ugyldigt input i
MISSING_REQUIRED_FIELD: 'Mangler obligatorisk felt:'
MONTHS_OF_THE_YEAR:
- Januar
- Februar
- Marts
- April
- Maj
- Juni
- Juli
- August
- September
- Oktober
- November
- December
DAYS_OF_THE_WEEK:
- Mandag
- Tirsdag
- Onsdag
- Torsdag
- Fredag
- Lørdag
- Søndag

89
system/languages/de.yaml Normal file
View File

@@ -0,0 +1,89 @@
---
FRONTMATTER_ERROR_PAGE: |
---
title: %1$s
---
# Fehler: Frontmatter enthält Fehler
Pfad: `%2$s`
**%3$s **
```
%4$s
```
INFLECTOR_UNCOUNTABLE:
1: Informationen
2: Reis
3: Geld
INFLECTOR_IRREGULAR:
person: Personen
man: Menschen
child: Kinder
sex: Geschlecht
move: Züge
INFLECTOR_ORDINALS:
default: '.'
first: '.'
second: '.'
third: '.'
NICETIME:
NO_DATE_PROVIDED: Kein Datum angegeben
BAD_DATE: Falsches Datum
AGO: her
FROM_NOW: ab jetzt
SECOND: Sekunde
MINUTE: Minute
HOUR: Stunde
DAY: Tag
WEEK: Woche
MONTH: Monat
YEAR: Jahr
DECADE: Jahrzehnt
SEC: Sek.
MIN: Min.
HR: Std.
WK: Wo.
MO: Mo.
YR: J.
DEC: Dek.
SECOND_PLURAL: Sekunden
MINUTE_PLURAL: Minuten
HOUR_PLURAL: Stunden
DAY_PLURAL: Tage
WEEK_PLURAL: Wochen
MONTH_PLURAL: Monate
YEAR_PLURAL: Jahre
DECADE_PLURAL: Jahrzehnte
SEC_PLURAL: Sekunden
MIN_PLURAL: Minuten
HR_PLURAL: Stunden
WK_PLURAL: Wochen
MO_PLURAL: Monate
YR_PLURAL: Jahre
DEC_PLURAL: Jahrzehnten
FORM:
VALIDATION_FAIL: '<b>Überprüfung fehlgeschlagen:</b>'
INVALID_INPUT: Ungültige Eingabe in
MISSING_REQUIRED_FIELD: 'Erforderliches Feld fehlt:'
MONTHS_OF_THE_YEAR:
- Januar
- Februar
- März
- April
- Mai
- Juni
- Juli
- August
- September
- Oktober
- November
- Dezember
DAYS_OF_THE_WEEK:
- Montag
- Dienstag
- Mittwoch
- Donnerstag
- Freitag
- Samstag
- Sonntag

22
system/languages/el.yaml Normal file
View File

@@ -0,0 +1,22 @@
---
MONTHS_OF_THE_YEAR:
- Ιανουάριος
- Φεβρουάριος
- Μάρτιος
- Απρίλιος
- Μάιος
- Ιούνιος
- Ιούλιος
- Αύγουστος
- Σεπτέμβριος
- Οκτώβριος
- Νοέμβριος
- Δεκέμβριος
DAYS_OF_THE_WEEK:
- Δευτέρα
- Τρίτη
- Τετάρτη
- Πέμπτη
- Παρασκευή
- Σάββατο
- Κυριακή

100
system/languages/en.yaml Normal file
View File

@@ -0,0 +1,100 @@
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Error: Invalid Frontmatter\n\nPath: `%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'
'/s$/i': ''
INFLECTOR_UNCOUNTABLE: ['equipment', 'information', 'rice', 'money', 'species', 'series', 'fish', 'sheep']
INFLECTOR_IRREGULAR:
'person': 'people'
'man': 'men'
'child': 'children'
'sex': 'sexes'
'move': 'moves'
INFLECTOR_ORDINALS:
'default': 'th'
'first': 'st'
'second': 'nd'
'third': 'rd'
NICETIME:
NO_DATE_PROVIDED: No date provided
BAD_DATE: Bad date
AGO: ago
FROM_NOW: from now
SECOND: second
MINUTE: minute
HOUR: hour
DAY: day
WEEK: week
MONTH: month
YEAR: year
DECADE: decade
SEC: sec
MIN: min
HR: hr
DAY: day
WK: wk
MO: mo
YR: yr
DEC: dec
SECOND_PLURAL: seconds
MINUTE_PLURAL: minutes
HOUR_PLURAL: hours
DAY_PLURAL: days
WEEK_PLURAL: weeks
MONTH_PLURAL: months
YEAR_PLURAL: years
DECADE_PLURAL: decades
SEC_PLURAL: secs
MIN_PLURAL: mins
HR_PLURAL: hrs
DAY_PLURAL: days
WK_PLURAL: wks
MO_PLURAL: mos
YR_PLURAL: yrs
DEC_PLURAL: decs
FORM:
VALIDATION_FAIL: <b>Validation failed:</b>
INVALID_INPUT: Invalid input in
MISSING_REQUIRED_FIELD: Missing required 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']

90
system/languages/es.yaml Normal file
View File

@@ -0,0 +1,90 @@
---
FRONTMATTER_ERROR_PAGE: |
---
title: %1$s
---
# Error: Frontmatter Inválido
Ruta: `%2$s`
**%3$s**
```
%4$s
```
INFLECTOR_UNCOUNTABLE:
0: equipo
1: información
3: dinero
5: series
6: pescado
7: oveja
INFLECTOR_IRREGULAR:
man: hombres
child: niños
sex: sexos
INFLECTOR_ORDINALS:
first: ro
second: do
third: ro
NICETIME:
NO_DATE_PROVIDED: No se proporcionó fecha
BAD_DATE: Fecha erronea
AGO: antes
FROM_NOW: desde ahora
SECOND: segundo
MINUTE: minuto
HOUR: hora
DAY: día
WEEK: semana
MONTH: mes
YEAR: año
DECADE: década
SEC: seg
MIN: min
HR: h
WK: sem
MO: mes
YR: año
DEC: dec
SECOND_PLURAL: segundos
MINUTE_PLURAL: minutos
HOUR_PLURAL: horas
DAY_PLURAL: días
WEEK_PLURAL: semanas
MONTH_PLURAL: meses
YEAR_PLURAL: años
DECADE_PLURAL: décadas
SEC_PLURAL: segs
MIN_PLURAL: mins
HR_PLURAL: hs
WK_PLURAL: sem
MO_PLURAL: mes
YR_PLURAL: años
DEC_PLURAL: décadas
FORM:
VALIDATION_FAIL: '<b>Falló la validación. </b>'
INVALID_INPUT: 'Dato inválido en: '
MISSING_REQUIRED_FIELD: 'Falta el campo requerido: '
MONTHS_OF_THE_YEAR:
- Enero
- Febrero
- Marzo
- Abril
- Mayo
- Junio
- Julio
- Agosto
- Septiembre
- Octubre
- Noviembre
- Diciembre
DAYS_OF_THE_WEEK:
- Lunes
- Martes
- Miércoles
- Jueves
- Viernes
- Sábado
- Domingo

60
system/languages/fi.yaml Normal file
View File

@@ -0,0 +1,60 @@
---
NICETIME:
NO_DATE_PROVIDED: Päivämäärää ei annettu
BAD_DATE: Virheellinen päivämäärä
AGO: sitten
FROM_NOW: tästä lähtien
SECOND: sekunti
MINUTE: minuutti
HOUR: tunti
DAY: päivä
WEEK: viikko
MONTH: kuukausi
YEAR: vuosi
DECADE: vuosikymmen
SEC: sek
MIN: min
HR: h
WK: vk
MO: kk
YR: v
DEC: vuosikymmen
SECOND_PLURAL: sekuntia
MINUTE_PLURAL: minuuttia
HOUR_PLURAL: tuntia
DAY_PLURAL: päivää
WEEK_PLURAL: viikkoa
MONTH_PLURAL: kuukautta
YEAR_PLURAL: vuotta
DECADE_PLURAL: vuosikymmentä
SEC_PLURAL: sek
MIN_PLURAL: min
HR_PLURAL: h
WK_PLURAL: v
MO_PLURAL: kk
YR_PLURAL: v
DEC_PLURAL: vuosikymmentä
FORM:
VALIDATION_FAIL: '<b>Vahvistus epäonnistui:</b>'
MISSING_REQUIRED_FIELD: 'Puuttuva pakollinen kenttä:'
MONTHS_OF_THE_YEAR:
- Tammikuu
- Helmikuu
- Maaliskuu
- Huhtikuu
- Toukokuu
- Kesäkuuta
- Heinäkuu
- Elokuu
- Syyskuu
- Lokakuu
- Marraskuu
- Joulukuu
DAYS_OF_THE_WEEK:
- Maanantai
- Tiistai
- Keskiviikko
- Torstai
- Perjantai
- Lauantai
- Sunnuntai

138
system/languages/fr.yaml Normal file
View File

@@ -0,0 +1,138 @@
---
FRONTMATTER_ERROR_PAGE: |
---
title: %1$s
---
# Erreur : Frontmatter invalide
Path: `%2$s`
**%3$s**
```
%4$s
```
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:
- équipement
- informations
- riz
- argent
- espèces
- séries
- poisson
- mouton
INFLECTOR_IRREGULAR:
person: personnes
man: hommes
child: enfants
sex: sexes
move: déplacements
INFLECTOR_ORDINALS:
default: ème
first: er
second: ème
third: ème
NICETIME:
NO_DATE_PROVIDED: Aucune date fournie
BAD_DATE: Date erronée
AGO: plus tôt
FROM_NOW: à partir de maintenant
SECOND: seconde
MINUTE: minute
HOUR: heure
DAY: jour
WEEK: semaine
MONTH: mois
YEAR: année
DECADE: décennie
SEC: s
MIN: m
HR: h
WK: sem
MO: m
YR: an
DEC: déc
SECOND_PLURAL: secondes
MINUTE_PLURAL: minutes
HOUR_PLURAL: heures
DAY_PLURAL: jours
WEEK_PLURAL: semaines
MONTH_PLURAL: mois
YEAR_PLURAL: années
DECADE_PLURAL: décennies
SEC_PLURAL: s
MIN_PLURAL: m
HR_PLURAL: h
WK_PLURAL: sem
MO_PLURAL: mois
YR_PLURAL: a
DEC_PLURAL: décs
FORM:
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
DAYS_OF_THE_WEEK:
- Lundi
- Mardi
- Mercredi
- Jeudi
- Vendredi
- Samedi
- Dimanche

75
system/languages/hr.yaml Normal file
View File

@@ -0,0 +1,75 @@
---
INFLECTOR_UNCOUNTABLE:
- oprema
- informacije
- riža
- novac
- vrsta
- serija
- riba
- ovca
INFLECTOR_IRREGULAR:
person: osobe
man: ljudi
child: djeca
sex: spolovi
move: Pomakni
NICETIME:
NO_DATE_PROVIDED: Datum nije upisan
BAD_DATE: Pogrešan datum
AGO: prije
FROM_NOW: od sada
SECOND: sekunda
MINUTE: minuta
HOUR: sat
DAY: dan
WEEK: tjedan
MONTH: mjesec
YEAR: godina
DECADE: desetljeće
SEC: sek
HR: sat
WK: t
MO: m
YR: g
DEC: des
SECOND_PLURAL: sekundi
MINUTE_PLURAL: minuta
HOUR_PLURAL: sati
DAY_PLURAL: dan
WEEK_PLURAL: tjedana
MONTH_PLURAL: mjeseci
YEAR_PLURAL: godina
DECADE_PLURAL: desetljeća
SEC_PLURAL: sek
MIN_PLURAL: min
HR_PLURAL: sat
WK_PLURAL: t
MO_PLURAL: m
YR_PLURAL: g
DEC_PLURAL: des
FORM:
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
- Veljača
- Ožujak
- Travanj
- Svibanj
- Lipanj
- Srpanj
- Kolovoz
- Rujan
- Listopad
- Studeni
- Prosinac
DAYS_OF_THE_WEEK:
- Ponedjeljak
- Utorak
- Srijeda
- Četvrtak
- Petak
- Subota
- Nedjelja

138
system/languages/hu.yaml Normal file
View File

@@ -0,0 +1,138 @@
---
FRONTMATTER_ERROR_PAGE: |
---
cím: %1$s
---
# Hiba: Érvénytelen Frontmatter
Elérési út: `%2$s`
**%3$s**
```
%4$s
```
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:
- felszerelés
- információ
- rizs
- pénz
- fajok
- sorozat
- hal
- juh
INFLECTOR_IRREGULAR:
person: személyek
man: férfiak
child: gyerekek
sex: nemek
move: lépések
INFLECTOR_ORDINALS:
default: '.'
first: '.'
second: '.'
third: '.'
NICETIME:
NO_DATE_PROVIDED: Nincs dátum megadva
BAD_DATE: Hibás dátum
AGO: elteltével
FROM_NOW: mostantól
SECOND: másodperc
MINUTE: perc
HOUR: óra
DAY: nap
WEEK: hét
MONTH: hónap
YEAR: év
DECADE: évtized
SEC: mp
MIN: p
HR: ó
WK: hét
MO:
YR: év
DEC: évt
SECOND_PLURAL: másodperc
MINUTE_PLURAL: perc
HOUR_PLURAL: óra
DAY_PLURAL: nap
WEEK_PLURAL: hét
MONTH_PLURAL: hónap
YEAR_PLURAL: év
DECADE_PLURAL: évtized
SEC_PLURAL: mp
MIN_PLURAL: perc
HR_PLURAL: ó
WK_PLURAL: hét
MO_PLURAL:
YR_PLURAL: év
DEC_PLURAL: évt
FORM:
VALIDATION_FAIL: '<b>A validáció hibát talált:</b>'
INVALID_INPUT: 'Az itt megadott érték érvénytelen:'
MISSING_REQUIRED_FIELD: 'Ez a kötelező mező nincs kitöltve:'
MONTHS_OF_THE_YEAR:
- január
- február
- március
- április
- május
- június
- július
- augusztus
- szeptember
- október
- november
- december
DAYS_OF_THE_WEEK:
- hétfő
- kedd
- szerda
- csütörtök
- péntek
- szombat
- vasárnap

62
system/languages/it.yaml Normal file
View File

@@ -0,0 +1,62 @@
---
FRONTMATTER_ERROR_PAGE: "---Titolo: %1$s---# Errore: Frontmatter non valido: '%2$s' * *%3$s * * ' '%4$s ' '"
NICETIME:
NO_DATE_PROVIDED: Nessuna data fornita
BAD_DATE: Data non valida
AGO: fa
FROM_NOW: da adesso
SECOND: secondo
MINUTE: minuto
HOUR: ora
DAY: giorno
WEEK: settimana
MONTH: mese
YEAR: anno
DECADE: decennio
SEC: sec
MIN: min
HR: ora
WK: settimana
MO: mese
YR: anno
DEC: decennio
SECOND_PLURAL: secondi
MINUTE_PLURAL: minuti
HOUR_PLURAL: ore
DAY_PLURAL: giorni
WEEK_PLURAL: settimane
MONTH_PLURAL: mesi
YEAR_PLURAL: anni
DECADE_PLURAL: decadi
SEC_PLURAL: secondi
MIN_PLURAL: minuti
HR_PLURAL: ore
WK_PLURAL: settimane
MO_PLURAL: mesi
YR_PLURAL: anni
DEC_PLURAL: decenni
FORM:
VALIDATION_FAIL: '<b>Validazione fallita:</b>'
INVALID_INPUT: Input non valido in
MISSING_REQUIRED_FIELD: 'Campo richiesto mancante:'
MONTHS_OF_THE_YEAR:
- Gennaio
- Febbraio
- Marzo
- Aprile
- Maggio
- Giugno
- Luglio
- Agosto
- Settembre
- Ottobre
- Novembre
- Dicembre
DAYS_OF_THE_WEEK:
- Lunedì
- Martedì
- Mercoledì
- Giovedì
- Venerdì
- Sabato
- Domenica

59
system/languages/ja.yaml Normal file
View File

@@ -0,0 +1,59 @@
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Error: Invalid Frontmatter\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS: []
INFLECTOR_SINGULAR: []
INFLECTOR_UNCOUNTABLE: []
INFLECTOR_IRREGULAR:
'person': 'みんな'
'man': '人'
'child': '子供'
'sex': '性別'
'move': '移動'
INFLECTOR_ORDINALS: []
NICETIME:
NO_DATE_PROVIDED: 日付が設定されていません
BAD_DATE: 不正な日付
AGO:
FROM_NOW: from now
SECOND:
MINUTE:
HOUR:
DAY:
WEEK:
MONTH:
YEAR:
DECADE: 10年
SEC:
MIN:
HR:
DAY:
WK:
MO:
YR:
DEC: dec
SECOND_PLURAL:
MINUTE_PLURAL:
HOUR_PLURAL:
DAY_PLURAL:
WEEK_PLURAL:
MONTH_PLURAL:
YEAR_PLURAL:
DECADE_PLURAL: 10年
SEC_PLURAL:
MIN_PLURAL:
HR_PLURAL:
DAY_PLURAL:
WK_PLURAL:
MO_PLURAL:
YR_PLURAL:
DEC_PLURAL: 10年
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: ['月', '火', '水', '木', '金', '土', '日']

69
system/languages/lt.yaml Normal file
View File

@@ -0,0 +1,69 @@
---
INFLECTOR_UNCOUNTABLE:
2: ryžiai
3: pinigai
4: prieskoniai
5: serijos
6: žuvis
7: avis
INFLECTOR_IRREGULAR:
person: žmonės
man: žmogus
child: vaikai
sex: lytys
move: juda
NICETIME:
NO_DATE_PROVIDED: Nenurodyta data
BAD_DATE: Neteisinga data
AGO: prieš
FROM_NOW: nuo dabar
SECOND: sekundė
MINUTE: minutė
HOUR: valanda
DAY: diena
WEEK: savaitė
MONTH: mėnuo
YEAR: metai
DECADE: dešimtmetis
SEC: sek
MIN: min
HR: val
WK: sav
MO: mėn
YR: m
MINUTE_PLURAL: minutės
HOUR_PLURAL: valandos
DAY_PLURAL: dienos
WEEK_PLURAL: savaitės
MONTH_PLURAL: mėnesiai
YEAR_PLURAL: metai
DECADE_PLURAL: dešimtmečiai
SEC_PLURAL: sek
MIN_PLURAL: min
HR_PLURAL: val
WK_PLURAL: sav
MO_PLURAL: mėn
YR_PLURAL: m
FORM:
MISSING_REQUIRED_FIELD: 'Būtina užpildyti laukelį:'
MONTHS_OF_THE_YEAR:
- Sausis
- Vasaris
- Kovas
- Balandis
- Gegužė
- Birželis
- Liepa
- Rugpjūtis
- Rugsėjis
- Spalis
- Lakpritis
- Gruodis
DAYS_OF_THE_WEEK:
- Pirmadienis
- Antradienis
- Trečiadienis
- Ketvirtadienis
- Penktadienis
- Šeštadienis
- Sekmadienis

2
system/languages/nb.yaml Normal file
View File

@@ -0,0 +1,2 @@
MONTHS_OF_THE_YEAR: ['januar', 'februar', 'mars', 'april', 'mai', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'desember']
DAYS_OF_THE_WEEK: ['mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag', 'søndag']

64
system/languages/nl.yaml Normal file
View File

@@ -0,0 +1,64 @@
---
INFLECTOR_IRREGULAR:
person: personen
man: mensen
child: kinderen
sex: geslacht
move: verplaatsen
NICETIME:
NO_DATE_PROVIDED: geen datum opgegeven
BAD_DATE: Datumformaat onjuist
AGO: geleden
FROM_NOW: vanaf nu
SECOND: seconde
MINUTE: minuut
HOUR: uur
DAY: dag
WEEK: week
MONTH: maand
YEAR: jaar
DECADE: decenium
SEC: s
MIN: min
HR: u
MO: ma
YR: j
SECOND_PLURAL: seconden
MINUTE_PLURAL: minuten
HOUR_PLURAL: uren
DAY_PLURAL: dagen
WEEK_PLURAL: weken
MONTH_PLURAL: maanden
YEAR_PLURAL: jaren
DECADE_PLURAL: decennia
SEC_PLURAL: seconden
MIN_PLURAL: minuten
HR_PLURAL: uren
WK_PLURAL: weken
MO_PLURAL: maanden
YR_PLURAL: jaren
FORM:
VALIDATION_FAIL: '<b>Validatie mislukt:</b>'
INVALID_INPUT: Ongeldige invoer in
MISSING_REQUIRED_FIELD: 'Verplicht veld ontbreekt:'
MONTHS_OF_THE_YEAR:
- Januari
- Februari
- Maart
- april
- Mei
- Juni
- Juli
- Augustus
- september
- Oktober
- november
- december
DAYS_OF_THE_WEEK:
- Maandag
- Dinsdag
- Woensdag
- Donderdag
- Vrijdag
- Zaterdag
- Zondag

93
system/languages/no.yaml Normal file
View File

@@ -0,0 +1,93 @@
---
FRONTMATTER_ERROR_PAGE: |
---
Tittel: %1$s
---
# Feilmelding: Ugyldig Frontmatter
Pane: '%2$s'
**%3$s **
```
%4$s
```
INFLECTOR_PLURALS:
/(quiz)$/i: '\1zes'
/^(ox)$/i: '\1en'
INFLECTOR_UNCOUNTABLE:
- utstyr
- informasjon
- ris
- penger
- arter
- serier
- fisk
- sau
INFLECTOR_IRREGULAR:
person: folk
man: menn
child: barn
sex: kjønn
move: trekk
NICETIME:
NO_DATE_PROVIDED: Ingen dato gitt
BAD_DATE: Dårlig dato
AGO: siden
FROM_NOW: fra nå
SECOND: sekund
MINUTE: minutt
HOUR: time
DAY: dag
WEEK: uke
MONTH: måned
YEAR: år
DECADE: tiår
SEC: sek
MIN: min
HR: t
WK: uke
MO:
YR: år
DEC: des
SECOND_PLURAL: sekunder
MINUTE_PLURAL: minutter
HOUR_PLURAL: timer
DAY_PLURAL: dager
WEEK_PLURAL: uker
MONTH_PLURAL: måneder
YEAR_PLURAL: år
DECADE_PLURAL: tiår
SEC_PLURAL: sek
MIN_PLURAL: min
HR_PLURAL: timer
WK_PLURAL: uker
MO_PLURAL: mdr
YR_PLURAL: år
DEC_PLURAL: årtier
FORM:
VALIDATION_FAIL: '<b>Validering mislyktes:</b>'
INVALID_INPUT: Ugyldig innhold i
MISSING_REQUIRED_FIELD: 'Mangler påkrevd felt:'
MONTHS_OF_THE_YEAR:
- januar
- februar
- mars
- april
- mai
- juni
- juli
- august
- september
- oktober
- november
- desember
DAYS_OF_THE_WEEK:
- mandag
- tirsdag
- onsdag
- torsdag
- fredag
- lørdag
- søndag

75
system/languages/pl.yaml Normal file
View File

@@ -0,0 +1,75 @@
---
FRONTMATTER_ERROR_PAGE: |
---
title: %1$s
---
# Error: Nieprawidłowy Frontmatter
Path: `%2$s`
**%3$s**
```
%4$s
```
NICETIME:
NO_DATE_PROVIDED: Nie podano daty
BAD_DATE: Zła data
AGO: temu
FROM_NOW: od teraz
SECOND: sekunda
MINUTE: minuta
HOUR: godzina
DAY: dzień
WEEK: tydzień
MONTH: miesiąc
YEAR: rok
DECADE: dekada
SEC: sek
MIN: min
HR: godz
WK: tydz
MO: m-c
YR: rok
DEC: dekada
SECOND_PLURAL: sekund
MINUTE_PLURAL: minut
HOUR_PLURAL: godzin
DAY_PLURAL: dni
WEEK_PLURAL: tygodnie
MONTH_PLURAL: miesięcy
YEAR_PLURAL: lat
DECADE_PLURAL: dekad
SEC_PLURAL: sek
MIN_PLURAL: min
HR_PLURAL: godz
WK_PLURAL: tyg
MO_PLURAL: m-ce
YR_PLURAL: lat
DEC_PLURAL: dekad
FORM:
VALIDATION_FAIL: '<b>Weryfikacja nie powiodła się:</b>'
INVALID_INPUT: Nieprawidłowe dane wejściowe
MISSING_REQUIRED_FIELD: 'Opuszczono wymagane pole:'
MONTHS_OF_THE_YEAR:
- Styczeń
- Luty
- Marzec
- Kwiecień
- Maj
- Czerwiec
- Lipiec
- Sierpień
- Wrzesień
- Październik
- Listopad
- Grudzień
DAYS_OF_THE_WEEK:
- Poniedziałek
- Wtorek
- Środa
- Czwartek
- Piątek
- Sobota
- Niedziela

79
system/languages/pt.yaml Normal file
View File

@@ -0,0 +1,79 @@
---
FRONTMATTER_ERROR_PAGE: |
---
título: %1$s
---
# Erro: Frontmatter inválida
Caminho: `%2$s`
**%3$s**
```
%4$s
```
INFLECTOR_UNCOUNTABLE:
1: informação
2: arroz
3: dinheiro
INFLECTOR_IRREGULAR:
man: homens
sex: sexos
NICETIME:
NO_DATE_PROVIDED: Não foi fornecida data
BAD_DATE: Data inválida
AGO: atrás
FROM_NOW: a partir de agora
SECOND: segundo
MINUTE: minuto
HOUR: hora
DAY: dia
WEEK: semana
MONTH: mês
YEAR: ano
DECADE: década
SEC: seg
MIN: mín
HR: h
WK: sem
MO: m
YR: a
DEC: dec
SECOND_PLURAL: segundos
MINUTE_PLURAL: minutos
HOUR_PLURAL: horas
DAY_PLURAL: dias
WEEK_PLURAL: semanas
MONTH_PLURAL: meses
YEAR_PLURAL: anos
DECADE_PLURAL: décadas
SEC_PLURAL: seg
MIN_PLURAL: mins
HR_PLURAL: hrs
WK_PLURAL: sems
YR_PLURAL: anos
FORM:
VALIDATION_FAIL: '<b>Validação falhada: </b>'
MISSING_REQUIRED_FIELD: 'Campo obrigatório ausente:'
MONTHS_OF_THE_YEAR:
- Janeiro
- Fevereiro
- Março
- Abril
- Maio
- Junho
- Julho
- Agosto
- Setembro
- Outubro
- Novembro
- Dezembro
DAYS_OF_THE_WEEK:
- Segunda
- Terça
- Quarta
- Quinta
- Sexta
- Sábado
- Domingo

101
system/languages/ro.yaml Normal file
View File

@@ -0,0 +1,101 @@
---
FRONTMATTER_ERROR_PAGE: |
---
Titlu: %1$s
---
# Eroare: Frontmatter este invalid
Calea: `%2$s`
**%3$s**
```
%4$s
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'
INFLECTOR_UNCOUNTABLE:
- echipament
- informaţie
- orez
- bani
- specii
- serii
- peşte
- oaie
INFLECTOR_IRREGULAR:
person: persoane
man: bărbați
child: copii
sex: sexe
move: mutări
NICETIME:
NO_DATE_PROVIDED: Nu există o dată prevăzută
BAD_DATE: Dată incorectă
AGO: în urmă
FROM_NOW: de acum
SECOND: secundă
MINUTE: minut
HOUR: oră
DAY: zi
WEEK: săptămână
MONTH: lună
YEAR: an
DECADE: decadă
SEC: sec
MIN: min
HR: oră
WK: săpt
MO: lună
YR: an
DEC: decadă
SECOND_PLURAL: secunde
MINUTE_PLURAL: minute
HOUR_PLURAL: ore
DAY_PLURAL: zile
WEEK_PLURAL: săptămâni
MONTH_PLURAL: luni
YEAR_PLURAL: ani
DECADE_PLURAL: decade
SEC_PLURAL: sec
MIN_PLURAL: min
HR_PLURAL: ore
WK_PLURAL: săpt
MO_PLURAL: luni
YR_PLURAL: ani
DEC_PLURAL: decenii
FORM:
VALIDATION_FAIL: '<b>Validare nereușită</b>'
INVALID_INPUT: Date incorecte în
MISSING_REQUIRED_FIELD: 'Câmp obligatoriu lipsă:'
MONTHS_OF_THE_YEAR:
- Ianuarie
- Februarie
- Martie
- Aprilie
- Mai
- Iunie
- Iulie
- August
- Septembrie
- Octombrie
- Noiembrie
- Decembrie
DAYS_OF_THE_WEEK:
- Luni
- Marți
- Miercuri
- Joi
- Vineri
- Sâmbătă
- Duminică

81
system/languages/ru.yaml Normal file
View File

@@ -0,0 +1,81 @@
---
FRONTMATTER_ERROR_PAGE: |
---
title: %1$s
---
# Ошибка: Недопустимое содержимое
Path: `%2$s`
**%3$s**
```
%4$s
```
INFLECTOR_IRREGULAR:
person: люди
man: человек
child: ребенок
sex: пол
move: движется
NICETIME:
NO_DATE_PROVIDED: Дата не указана
BAD_DATE: Неверная дата
AGO: назад
FROM_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:
- Понедельник
- Вторник
- Среда
- Четверг
- Пятница
- Суббота
- Воскресенье

42
system/languages/sk.yaml Normal file
View File

@@ -0,0 +1,42 @@
---
NICETIME:
NO_DATE_PROVIDED: Neposkytnutý žiaden dátum
BAD_DATE: Nesprávny dátum
AGO: pred
FROM_NOW: odteraz
SECOND: sekunda
MINUTE: minúta
HOUR: hodina
DAY: deň
WEEK: týždeň
MONTH: mesiac
YEAR: rok
DECADE: desaťročie
SEC: sek
MIN: min
HR: hod
FORM:
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
- Február
- Marec
- Apríl
- Máj
- Jún
- Júl
- August
- September
- Október
- November
- December
DAYS_OF_THE_WEEK:
- Pondelok
- Utorok
- Streda
- Štvrtok
- Piatok
- Sobota
- Nedeľa

62
system/languages/sv.yaml Normal file
View File

@@ -0,0 +1,62 @@
---
FRONTMATTER_ERROR_PAGE: '--- titel: %1$s --- # Fel: Ogiltig Frontmatter-sökväg: `%2$s` **%3$s** ``` %4$s ```'
NICETIME:
NO_DATE_PROVIDED: Inget datum har angivits
BAD_DATE: Ogiltigt datum
AGO: sedan
FROM_NOW: från nu
SECOND: sekund
MINUTE: minut
HOUR: timme
DAY: dag
WEEK: vecka
MONTH: månad
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
DAY_PLURAL: dagar
WEEK_PLURAL: veckor
MONTH_PLURAL: månader
YEAR_PLURAL: år
DECADE_PLURAL: årtionden
SEC_PLURAL: sek
MIN_PLURAL: min
HR_PLURAL: t
WK_PLURAL: v
MO_PLURAL:
YR_PLURAL: år
DEC_PLURAL: dec
FORM:
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
- Februrari
- Mars
- April
- Maj
- Juni
- Juli
- Augusti
- September
- Oktober
- November
- December
DAYS_OF_THE_WEEK:
- Måndag
- Tisdag
- Onsdag
- Torsdag
- Fredag
- Lördag
- Söndag

75
system/languages/th.yaml Normal file
View File

@@ -0,0 +1,75 @@
---
FRONTMATTER_ERROR_PAGE: |
---
ชื่อเรื่อง: %1$s
---
# ข้อผิดพลาด: Invalid Frontmatter
Path: `%2$s`
**%3$s**
```
%4$s
```
NICETIME:
NO_DATE_PROVIDED: ไม่มีวันที่ให้
BAD_DATE: รูปแบบวันที่ผิด
AGO: ที่ผ่านมา
FROM_NOW: จากตอนนี้
SECOND: วินาที
MINUTE: นาที
HOUR: ชั่วโมง
DAY: วัน
WEEK: สัปดาห์
MONTH: เดือน
YEAR: ปี
DECADE: ทศวรรษที่ผ่านมา
SEC: วิ
MIN: นาที
HR: ชม.
WK: wk
MO: mo
YR: yr
DEC: 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: wks
MO_PLURAL: mos
YR_PLURAL: ปี
DEC_PLURAL: decs
FORM:
VALIDATION_FAIL: '<b>ตรวจสอบล้มเหลว: </b>'
INVALID_INPUT: ป้อนข้อมูลไม่ถูกต้องใน
MISSING_REQUIRED_FIELD: 'ขาดข้อมูลที่จำเป็น:'
MONTHS_OF_THE_YEAR:
- มกราคม
- กุมภาพันธ์
- มีนาคม
- เมษายน
- พฤษภาคม
- มิถุนายน
- กรกฏาคม
- สิงหาคม
- กันยายน
- ตุลาคม
- พฤศจิกายน
- ธันวาคม
DAYS_OF_THE_WEEK:
- จันทร์
- อังคาร
- พุธ
- พฤหัสบดี
- ศุกร์
- เสาร์
- อาทิตย์

59
system/languages/tr.yaml Normal file
View File

@@ -0,0 +1,59 @@
---
NICETIME:
NO_DATE_PROVIDED: Tarih yok
BAD_DATE: Yanlış tarih
AGO: önce
FROM_NOW: (şimdiden)
SECOND: saniye
MINUTE: dakika
HOUR: saat
DAY: gün
WEEK: hafta
MONTH: ay
YEAR: yıl
DECADE: onyıl
SEC: sn
MIN: dk
HR: sa
WK: hft
MO: ay
YR: yl
DEC: onyl
SECOND_PLURAL: saniye
MINUTE_PLURAL: dakika
HOUR_PLURAL: saat
DAY_PLURAL: gün
WEEK_PLURAL: hafta
MONTH_PLURAL: ay
YEAR_PLURAL: yıl
DECADE_PLURAL: onyıl
SEC_PLURAL: sn
MIN_PLURAL: dk
HR_PLURAL: sa
WK_PLURAL: hft
MO_PLURAL: ay
YR_PLURAL: yl
DEC_PLURAL: onyl
FORM:
VALIDATION_FAIL: '<b>Doğrulama başarısız:</b>'
MONTHS_OF_THE_YEAR:
- Ocak
- Şubat
- Mart
- Nisan
- Mayıs
- Haziran
- Temmuz
- Ağustos
- Eylül
- Ekim
- Kasım
- Aralık
DAYS_OF_THE_WEEK:
- Pazartesi
- Salı
- Çarşamba
- Perşembe
- Cuma
- Cumartesi
- Pazar

75
system/languages/uk.yaml Normal file
View File

@@ -0,0 +1,75 @@
---
FRONTMATTER_ERROR_PAGE: |
---
title: %1$s
---
# Помилка: Недопустимий вміст
Path: `%2$s`
**%3$s**
```
%4$s
```
NICETIME:
NO_DATE_PROVIDED: Не вказана дата
BAD_DATE: Невірна дата
AGO: назад
FROM_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:
- Понеділок
- Вівторок
- Середа
- Четвер
- "П'ятниця"
- Субота
- Неділя

75
system/languages/vi.yaml Normal file
View File

@@ -0,0 +1,75 @@
---
FRONTMATTER_ERROR_PAGE: |
---
title: %1$s
---
# Error: Invalid Frontmatter
Path: `%2$s`
**%3$s**
```
%4$s
```
NICETIME:
NO_DATE_PROVIDED: Không có ngày được cung cấp
BAD_DATE: Ngày không hợp lệ
AGO: cách đây
FROM_NOW: từ bây giờ
SECOND: giây
MINUTE: phút
HOUR: giờ
DAY: ngày
WEEK: tuần
MONTH: tháng
YEAR: năm
DECADE: thập kỷ
SEC: giây
MIN: phút
HR: giờ
WK: tuần
MO: tháng
YR: năm
DEC: thập kỷ
SECOND_PLURAL: giây
MINUTE_PLURAL: phút
HOUR_PLURAL: giờ
DAY_PLURAL: ngày
WEEK_PLURAL: tuần
MONTH_PLURAL: tháng
YEAR_PLURAL: năm
DECADE_PLURAL: thập kỷ
SEC_PLURAL: giây
MIN_PLURAL: phút
HR_PLURAL: giờ
WK_PLURAL: tuần
MO_PLURAL: tháng
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
MISSING_REQUIRED_FIELD: 'Thiếu trường bắt buộc:'
MONTHS_OF_THE_YEAR:
- Tháng 1
- Tháng 2
- Tháng 3
- Tháng 4
- Tháng 5
- Tháng 6
- Tháng 7
- Tháng 8
- Tháng 9
- Tháng 10
- Tháng Mười 11
- Tháng 12
DAYS_OF_THE_WEEK:
- Thứ 2
- Thứ 3
- Thứ 4
- Thứ 5
- Thứ 6
- Thứ 7
- Chủ Nhật

5
system/pages/notfound.md Normal file
View File

@@ -0,0 +1,5 @@
---
title: Not Found
routable: false
notfound: true
---

26
system/router.php Normal file
View File

@@ -0,0 +1,26 @@
<?php
/**
* @package Grav.Core
*
* @copyright Copyright (C) 2014 - 2016 RocketTheme, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
if (PHP_SAPI !== 'cli-server') {
exit('This script cannot be run from browser. Run it from a CLI.');
}
$_SERVER['PHP_CLI_ROUTER'] = true;
if (is_file($_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . $_SERVER['SCRIPT_NAME'])) {
return false;
}
$_SERVER = array_merge($_SERVER, $_ENV);
$_SERVER['SCRIPT_FILENAME'] = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'index.php';
$_SERVER['SCRIPT_NAME'] = DIRECTORY_SEPARATOR . 'index.php';
$_SERVER['PHP_SELF'] = DIRECTORY_SEPARATOR . 'index.php';
require 'index.php';
error_log(sprintf('%s:%d [%d]: %s', $_SERVER['REMOTE_ADDR'], $_SERVER['REMOTE_PORT'], http_response_code(), $_SERVER['REQUEST_URI']), 4);

File diff suppressed because it is too large Load Diff

View File

@@ -1,47 +1,59 @@
<?php
/**
* @package Grav.Common.Backup
*
* @copyright Copyright (C) 2014 - 2016 RocketTheme, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common\Backup;
use Grav\Common\GravTrait;
use Grav\Common\Filesystem\Folder;
use Grav\Common\Grav;
use Grav\Common\Inflector;
/**
* The ZipBackup class lets you create simple zip-backups of a grav site
*
* @author RocketTheme
* @license MIT
*/
class ZipBackup
{
use GravTrait;
protected static $ignorePaths = [
'backup',
'cache',
'images',
'logs'
'logs',
'tmp'
];
protected static $ignoreFolders = [
'.git',
'.idea'
'.svn',
'.hg',
'.idea',
'node_modules'
];
/**
* Backup
*
* @param null $destination
* @param callable|null $messager
*
* @return null|string
*/
public static function backup($destination = null, callable $messager = null)
{
if (!$destination) {
$destination = self::getGrav()['locator']->findResource('backup://', true);
$destination = Grav::instance()['locator']->findResource('backup://', true);
if (!$destination)
if (!$destination) {
throw new \RuntimeException('The backup folder is missing.');
Folder::mkdir($destination);
}
}
$name = self::getGrav()['config']->get('site.title', basename(GRAV_ROOT));
$name = substr(strip_tags(Grav::instance()['config']->get('site.title', basename(GRAV_ROOT))), 0, 20);
$inflector = new Inflector();
if (is_dir($destination)) {
$date = date('YmdHis', time());
$filename = $name . '-' . $date . '.zip';
$filename = trim($inflector->hyphenize($name), '-') . '-' . $date . '.zip';
$destination = rtrim($destination, DS) . DS . $filename;
}
@@ -59,6 +71,8 @@ class ZipBackup
$zip = new \ZipArchive();
$zip->open($destination, \ZipArchive::CREATE);
$max_execution_time = ini_set('max_execution_time', 600);
static::folderToZip(GRAV_ROOT, $zip, strlen(rtrim(GRAV_ROOT, DS) . DS), $messager);
$messager && $messager([
@@ -80,6 +94,10 @@ class ZipBackup
$zip->close();
if ($max_execution_time !== false) {
ini_set('max_execution_time', $max_execution_time);
}
return $destination;
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* @package Grav.Common
*
* @copyright Copyright (C) 2014 - 2016 RocketTheme, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common;
/**
* Simple wrapper for the very simple parse_user_agent() function
* Internally uses the PhpUserAgent package https://github.com/donatj/PhpUserAgent
*/
class Browser
{
protected $useragent = [];
/**
* Browser constructor.
*/
public function __construct()
{
try {
@@ -18,24 +27,111 @@ class Browser
}
}
/**
* Get the current browser identifier
*
* Currently detected browsers:
*
* Android Browser
* BlackBerry Browser
* Camino
* Kindle / Silk
* Firefox / Iceweasel
* Safari
* Internet Explorer
* IEMobile
* Chrome
* Opera
* Midori
* Vivaldi
* TizenBrowser
* Lynx
* Wget
* Curl
*
* @return string the lowercase browser name
*/
public function getBrowser()
{
return strtolower($this->useragent['browser']);
}
/**
* Get the current platform identifier
*
* Currently detected platforms:
*
* Desktop
* -> Windows
* -> Linux
* -> Macintosh
* -> Chrome OS
* Mobile
* -> Android
* -> iPhone
* -> iPad / iPod Touch
* -> Windows Phone OS
* -> Kindle
* -> Kindle Fire
* -> BlackBerry
* -> Playbook
* -> Tizen
* Console
* -> Nintendo 3DS
* -> New Nintendo 3DS
* -> Nintendo Wii
* -> Nintendo WiiU
* -> PlayStation 3
* -> PlayStation 4
* -> PlayStation Vita
* -> Xbox 360
* -> Xbox One
*
* @return string the lowercase platform name
*/
public function getPlatform()
{
return strtolower($this->useragent['platform']);
}
/**
* Get the current full version identifier
*
* @return string the browser full version identifier
*/
public function getLongVersion()
{
return $this->useragent['version'];
}
/**
* Get the current major version identifier
*
* @return string the browser major version identifier
*/
public function getVersion()
{
$version = explode('.', $this->getLongVersion());
return intval($version[0]);
}
/**
* Determine if the request comes from a human, or from a bot/crawler
*
* @return bool
*/
public function isHuman()
{
$browser = $this->getBrowser();
if (empty($browser)) {
return false;
}
if (preg_match('~(bot|crawl)~i', $browser)) {
return false;
}
return true;
}
}

View File

@@ -1,9 +1,17 @@
<?php
/**
* @package Grav.Common
*
* @copyright Copyright (C) 2014 - 2016 RocketTheme, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common;
use \Doctrine\Common\Cache\Cache as DoctrineCache;
use \Doctrine\Common\Cache as DoctrineCache;
use Grav\Common\Config\Config;
use Grav\Common\Filesystem\Folder;
use RocketTheme\Toolbox\Event\Event;
/**
* The GravCache object is used throughout Grav to store and retrieve cached data.
@@ -15,9 +23,6 @@ use Grav\Common\Filesystem\Folder;
* MemCache
* MemCacheD
* FileSystem
*
* @author RocketTheme
* @license MIT
*/
class Cache extends Getters
{
@@ -29,13 +34,18 @@ class Cache extends Getters
protected $lifetime;
protected $now;
/** @var Config $config */
protected $config;
/**
* @var DoctrineCache
* @var DoctrineCache\CacheProvider
*/
protected $driver;
protected $driver_name;
protected $driver_setting;
/**
* @var bool
*/
@@ -44,36 +54,41 @@ class Cache extends Getters
protected $cache_dir;
protected static $standard_remove = [
'cache/twig/',
'cache/doctrine/',
'cache/compiled/',
'cache/validated-',
'images/',
'assets/',
'cache://twig/',
'cache://doctrine/',
'cache://compiled/',
'cache://validated-',
'cache://images',
'asset://',
];
protected static $all_remove = [
'cache/',
'images/',
'assets/'
'cache://',
'cache://images',
'asset://',
'tmp://'
];
protected static $assets_remove = [
'assets/'
'asset://'
];
protected static $images_remove = [
'images/'
'cache://images'
];
protected static $cache_remove = [
'cache/'
'cache://'
];
protected static $tmp_remove = [
'tmp://'
];
/**
* Constructor
*
* @params Grav $grav
* @param Grav $grav
*/
public function __construct(Grav $grav)
{
@@ -84,6 +99,7 @@ class Cache extends Getters
* Initialization that sets a base key and the driver based on configuration settings
*
* @param Grav $grav
*
* @return void
*/
public function init(Grav $grav)
@@ -99,10 +115,15 @@ class Cache extends Getters
$prefix = $this->config->get('system.cache.prefix');
$this->enabled = (bool) $this->config->get('system.cache.enabled');
if (is_null($this->enabled)) {
$this->enabled = (bool)$this->config->get('system.cache.enabled');
}
// Cache key allows us to invalidate all cache on configuration changes.
$this->key = substr(md5(($prefix ? $prefix : 'g') . $uri->rootUrl(true) . $this->config->key() . GRAV_VERSION), 2, 8);
$this->key = ($prefix ? $prefix : 'g') . '-' . substr(md5($uri->rootUrl(true) . $this->config->key() . GRAV_VERSION),
2, 8);
$this->driver_setting = $this->config->get('system.cache.driver');
$this->driver = $this->getCacheDriver();
@@ -110,20 +131,52 @@ class Cache extends Getters
$this->driver->setNamespace($this->key);
}
/**
* Public accessor to set the enabled state of the cache
*
* @param $enabled
*/
public function setEnabled($enabled)
{
$this->enabled = (bool) $enabled;
}
/**
* Returns the current enabled state
*
* @return bool
*/
public function getEnabled()
{
return $this->enabled;
}
/**
* Get cache state
*
* @return string
*/
public function getCacheStatus()
{
return 'Cache: [' . ($this->enabled ? 'true' : 'false') . '] Setting: [' . $this->driver_setting . '] Driver: [' . $this->driver_name . ']';
}
/**
* Automatically picks the cache mechanism to use. If you pick one manually it will use that
* If there is no config option for $driver in the config, or it's set to 'auto', it will
* pick the best option based on which cache extensions are installed.
*
* @return DoctrineCacheDriver The cache driver to use
* @return DoctrineCache\CacheProvider The cache driver to use
*/
public function getCacheDriver()
{
$setting = $this->config->get('system.cache.driver');
$setting = $this->driver_setting;
$driver_name = 'file';
if (!$setting || $setting == 'auto') {
if (extension_loaded('apc')) {
if (extension_loaded('apcu')) {
$driver_name = 'apcu';
} elseif (extension_loaded('apc')) {
$driver_name = 'apc';
} elseif (extension_loaded('wincache')) {
$driver_name = 'wincache';
@@ -134,29 +187,58 @@ class Cache extends Getters
$driver_name = $setting;
}
$this->driver_name = $driver_name;
switch ($driver_name) {
case 'apc':
$driver = new \Doctrine\Common\Cache\ApcCache();
$driver = new DoctrineCache\ApcCache();
break;
case 'apcu':
$driver = new DoctrineCache\ApcuCache();
break;
case 'wincache':
$driver = new \Doctrine\Common\Cache\WinCacheCache();
$driver = new DoctrineCache\WinCacheCache();
break;
case 'xcache':
$driver = new \Doctrine\Common\Cache\XcacheCache();
$driver = new DoctrineCache\XcacheCache();
break;
case 'memcache':
$memcache = new \Memcache();
$memcache->connect($this->config->get('system.cache.memcache.server','localhost'),
$this->config->get('system.cache.memcache.port', 11211));
$driver = new \Doctrine\Common\Cache\MemcacheCache();
$memcache->connect($this->config->get('system.cache.memcache.server', 'localhost'),
$this->config->get('system.cache.memcache.port', 11211));
$driver = new DoctrineCache\MemcacheCache();
$driver->setMemcache($memcache);
break;
case 'memcached':
$memcached = new \Memcached();
$memcached->addServer($this->config->get('system.cache.memcached.server', 'localhost'),
$this->config->get('system.cache.memcached.port', 11211));
$driver = new DoctrineCache\MemcachedCache();
$driver->setMemcached($memcached);
break;
case 'redis':
$redis = new \Redis();
$socket = $this->config->get('system.cache.redis.socket', false);
if ($socket) {
$redis->connect($socket);
} else {
$redis->connect($this->config->get('system.cache.redis.server', 'localhost'),
$this->config->get('system.cache.redis.port', 6379));
}
$driver = new DoctrineCache\RedisCache();
$driver->setRedis($redis);
break;
default:
$driver = new \Doctrine\Common\Cache\FilesystemCache($this->cache_dir);
$driver = new DoctrineCache\FilesystemCache($this->cache_dir);
break;
}
@@ -167,6 +249,7 @@ class Cache extends Getters
* Gets a cached entry if it exists based on an id. If it does not exist, it returns false
*
* @param string $id the id of the cached entry
*
* @return object returns the cached entry, can be any type, or false if doesn't exist
*/
public function fetch($id)
@@ -181,9 +264,9 @@ class Cache extends Getters
/**
* Stores a new cached entry.
*
* @param string $id the id of the cached entry
* @param string $id the id of the cached entry
* @param array|object $data the data for the cached entry to store
* @param int $lifetime the lifetime to store the entry in seconds
* @param int $lifetime the lifetime to store the entry in seconds
*/
public function save($id, $data, $lifetime = null)
{
@@ -195,6 +278,34 @@ class Cache extends Getters
}
}
/**
* Deletes an item in the cache based on the id
*
* @param string $id the id of the cached data entry
* @return bool true if the item was deleted successfully
*/
public function delete($id)
{
if ($this->enabled) {
return $this->driver->delete($id);
}
return false;
}
/**
* Returns a boolean state of whether or not the item exists in the cache based on id key
*
* @param string $id the id of the cached data entry
* @return bool true if the cached items exists
*/
public function contains($id)
{
if ($this->enabled) {
return $this->driver->contains(($id));
}
return false;
}
/**
* Getter method to get the cache key
*/
@@ -203,20 +314,29 @@ class Cache extends Getters
return $this->key;
}
/**
* Setter method to set key (Advanced)
*/
public function setKey($key)
{
$this->key = $key;
$this->driver->setNamespace($this->key);
}
/**
* Helper method to clear all Grav caches
*
* @param string $remove standard|all|assets-only|images-only|cache-only
* @param string $remove standard|all|assets-only|images-only|cache-only
*
* @return array
*/
public static function clearCache($remove = 'standard')
{
$locator = Grav::instance()['locator'];
$output = [];
$user_config = USER_DIR . 'config/system.yaml';
switch($remove) {
switch ($remove) {
case 'all':
$remove_paths = self::$all_remove;
break;
@@ -229,31 +349,47 @@ class Cache extends Getters
case 'cache-only':
$remove_paths = self::$cache_remove;
break;
case 'tmp-only':
$remove_paths = self::$tmp_remove;
break;
default:
$remove_paths = self::$standard_remove;
}
// Clearing cache event to add paths to clear
Grav::instance()->fireEvent('onBeforeCacheClear', new Event(['remove' => $remove, 'paths' => &$remove_paths]));
foreach ($remove_paths as $path) {
foreach ($remove_paths as $stream) {
$anything = false;
$files = glob(ROOT_DIR . $path . '*');
// Convert stream to a real path
try {
$path = $locator->findResource($stream, true, true);
foreach ($files as $file) {
if (is_file($file)) {
if (@unlink($file)) {
$anything = true;
}
} elseif (is_dir($file)) {
if (@Folder::delete($file)) {
$anything = true;
$anything = false;
$files = glob($path . '/*');
if (is_array($files)) {
foreach ($files as $file) {
if (is_link($file)) {
$output[] = '<yellow>Skipping symlink: </yellow>' . $file;
} elseif (is_file($file)) {
if (@unlink($file)) {
$anything = true;
}
} elseif (is_dir($file)) {
if (Folder::delete($file)) {
$anything = true;
}
}
}
}
}
if ($anything) {
$output[] = '<red>Cleared: </red>' . $path . '*';
if ($anything) {
$output[] = '<red>Cleared: </red>' . $path . '/*';
}
} catch (\Exception $e) {
// stream not found or another error while deleting files.
$output[] = '<red>ERROR: </red>' . $e->getMessage();
}
}

View File

@@ -1,13 +1,13 @@
<?php
/**
* @package Grav.Common
*
* @copyright Copyright (C) 2014 - 2016 RocketTheme, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common;
/**
* Offers composer helper methods.
*
* @author eschmar
* @license MIT
*/
class Composer
{
/** @const Default composer location */
@@ -35,6 +35,11 @@ class Composer
return $path;
}
/**
* Return the composer executable file path
*
* @return string
*/
public static function getComposerExecutor()
{
$executor = PHP_BINARY . ' ';

View File

@@ -1,207 +0,0 @@
<?php
namespace Grav\Common\Config;
use Grav\Common\File\CompiledYamlFile;
use Grav\Common\Grav;
use Grav\Common\Filesystem\Folder;
use RocketTheme\Toolbox\Blueprints\Blueprints as BaseBlueprints;
use RocketTheme\Toolbox\File\PhpFile;
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
/**
* The Blueprints class contains configuration rules.
*
* @author RocketTheme
* @license MIT
*/
class Blueprints extends BaseBlueprints
{
protected $grav;
protected $files = [];
protected $blueprints;
public function __construct(array $serialized = null, Grav $grav = null)
{
parent::__construct($serialized);
$this->grav = $grav ?: Grav::instance();
}
public function init()
{
/** @var UniformResourceLocator $locator */
$locator = $this->grav['locator'];
$blueprints = $locator->findResources('blueprints://config');
$plugins = $locator->findResources('plugins://');
$blueprintFiles = $this->getBlueprintFiles($blueprints, $plugins);
$this->loadCompiledBlueprints($plugins + $blueprints, $blueprintFiles);
}
protected function loadCompiledBlueprints($blueprints, $blueprintFiles)
{
$checksum = md5(serialize($blueprints));
$filename = CACHE_DIR . 'compiled/blueprints/' . $checksum .'.php';
$checksum .= ':'.md5(serialize($blueprintFiles));
$class = get_class($this);
$file = PhpFile::instance($filename);
if ($file->exists()) {
$cache = $file->exists() ? $file->content() : null;
} else {
$cache = null;
}
// Load real file if cache isn't up to date (or is invalid).
if (
!is_array($cache)
|| empty($cache['checksum'])
|| empty($cache['$class'])
|| $cache['checksum'] != $checksum
|| $cache['@class'] != $class
) {
// Attempt to lock the file for writing.
$file->lock(false);
// Load blueprints.
$this->blueprints = new Blueprints();
foreach ($blueprintFiles as $key => $files) {
$this->loadBlueprints($key);
}
$cache = [
'@class' => $class,
'checksum' => $checksum,
'files' => $blueprintFiles,
'data' => $this->blueprints->toArray()
];
// If compiled file wasn't already locked by another process, save it.
if ($file->locked() !== false) {
$file->save($cache);
$file->unlock();
}
} else {
$this->blueprints = new Blueprints($cache['data']);
}
}
/**
* Load global blueprints.
*
* @param string $key
* @param array $files
*/
public function loadBlueprints($key, array $files = null)
{
if (is_null($files)) {
$files = $this->files[$key];
}
foreach ($files as $name => $item) {
$file = CompiledYamlFile::instance($item['file']);
$this->blueprints->embed($name, $file->content(), '/');
}
}
/**
* Get all blueprint files (including plugins).
*
* @param array $blueprints
* @param array $plugins
* @return array
*/
protected function getBlueprintFiles(array $blueprints, array $plugins)
{
$list = [];
foreach (array_reverse($plugins) as $folder) {
$list += $this->detectPlugins($folder, true);
}
foreach (array_reverse($blueprints) as $folder) {
$list += $this->detectConfig($folder, true);
}
return $list;
}
/**
* Detects all plugins with a configuration file and returns last modification time.
*
* @param string $lookup Location to look up from.
* @param bool $blueprints
* @return array
* @internal
*/
protected function detectPlugins($lookup = SYSTEM_DIR, $blueprints = false)
{
$find = $blueprints ? 'blueprints.yaml' : '.yaml';
$location = $blueprints ? 'blueprintFiles' : 'configFiles';
$path = trim(Folder::getRelativePath($lookup), '/');
if (isset($this->{$location}[$path])) {
return [$path => $this->{$location}[$path]];
}
$list = [];
if (is_dir($lookup)) {
$iterator = new \DirectoryIterator($lookup);
/** @var \DirectoryIterator $directory */
foreach ($iterator as $directory) {
if (!$directory->isDir() || $directory->isDot()) {
continue;
}
$name = $directory->getBasename();
$filename = "{$path}/{$name}/" . ($find && $find[0] != '.' ? $find : $name . $find);
if (is_file($filename)) {
$list["plugins/{$name}"] = ['file' => $filename, 'modified' => filemtime($filename)];
}
}
}
$this->{$location}[$path] = $list;
return [$path => $list];
}
/**
* Detects all plugins with a configuration file and returns last modification time.
*
* @param string $lookup Location to look up from.
* @param bool $blueprints
* @return array
* @internal
*/
protected function detectConfig($lookup = SYSTEM_DIR, $blueprints = false)
{
$location = $blueprints ? 'blueprintFiles' : 'configFiles';
$path = trim(Folder::getRelativePath($lookup), '/');
if (isset($this->{$location}[$path])) {
return [$path => $this->{$location}[$path]];
}
if (is_dir($lookup)) {
// Find all system and user configuration files.
$options = [
'compare' => 'Filename',
'pattern' => '|\.yaml$|',
'filters' => [
'key' => '|\.yaml$|',
'value' => function (\RecursiveDirectoryIterator $file) use ($path) {
return ['file' => "{$path}/{$file->getSubPathname()}", 'modified' => $file->getMTime()];
}],
'key' => 'SubPathname'
];
$list = Folder::all($lookup, $options);
} else {
$list = [];
}
$this->{$location}[$path] = $list;
return [$path => $list];
}
}

View File

@@ -0,0 +1,247 @@
<?php
/**
* @package Grav.Common.Config
*
* @copyright Copyright (C) 2014 - 2016 RocketTheme, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common\Config;
use RocketTheme\Toolbox\File\PhpFile;
abstract class CompiledBase
{
/**
* @var int Version number for the compiled file.
*/
public $version = 1;
/**
* @var string Filename (base name) of the compiled configuration.
*/
public $name;
/**
* @var string|bool Configuration checksum.
*/
public $checksum;
/**
* @var string Cache folder to be used.
*/
protected $cacheFolder;
/**
* @var array List of files to load.
*/
protected $files;
/**
* @var string
*/
protected $path;
/**
* @var mixed Configuration object.
*/
protected $object;
/**
* @param string $cacheFolder Cache folder to be used.
* @param array $files List of files as returned from ConfigFileFinder class.
* @param string $path Base path for the file list.
* @throws \BadMethodCallException
*/
public function __construct($cacheFolder, array $files, $path)
{
if (!$cacheFolder) {
throw new \BadMethodCallException('Cache folder not defined.');
}
$this->cacheFolder = $cacheFolder;
$this->files = $files;
$this->path = $path ? rtrim($path, '\\/') . '/' : '';
}
/**
* Get filename for the compiled PHP file.
*
* @param string $name
* @return $this
*/
public function name($name = null)
{
if (!$this->name) {
$this->name = $name ?: md5(json_encode(array_keys($this->files)));
}
return $this;
}
/**
* Function gets called when cached configuration is saved.
*/
public function modified() {}
/**
* Load the configuration.
*
* @return mixed
*/
public function load()
{
if ($this->object) {
return $this->object;
}
$filename = $this->createFilename();
if (!$this->loadCompiledFile($filename) && $this->loadFiles()) {
$this->saveCompiledFile($filename);
}
return $this->object;
}
/**
* Returns checksum from the configuration files.
*
* You can set $this->checksum = false to disable this check.
*
* @return bool|string
*/
public function checksum()
{
if (!isset($this->checksum)) {
$this->checksum = md5(json_encode($this->files) . $this->version);
}
return $this->checksum;
}
protected function createFilename()
{
return "{$this->cacheFolder}/{$this->name()->name}.php";
}
/**
* Create configuration object.
*
* @param array $data
*/
abstract protected function createObject(array $data = []);
/**
* Finalize configuration object.
*/
abstract protected function finalizeObject();
/**
* Load single configuration file and append it to the correct position.
*
* @param string $name Name of the position.
* @param string $filename File to be loaded.
*/
abstract protected function loadFile($name, $filename);
/**
* Load and join all configuration files.
*
* @return bool
* @internal
*/
protected function loadFiles()
{
$this->createObject();
$list = array_reverse($this->files);
foreach ($list as $files) {
foreach ($files as $name => $item) {
$this->loadFile($name, $this->path . $item['file']);
}
}
$this->finalizeObject();
return true;
}
/**
* Load compiled file.
*
* @param string $filename
* @return bool
* @internal
*/
protected function loadCompiledFile($filename)
{
if (!file_exists($filename)) {
return false;
}
$cache = include $filename;
if (
!is_array($cache)
|| !isset($cache['checksum'])
|| !isset($cache['data'])
|| !isset($cache['@class'])
|| $cache['@class'] != get_class($this)
) {
return false;
}
// Load real file if cache isn't up to date (or is invalid).
if ($cache['checksum'] !== $this->checksum()) {
return false;
}
$this->createObject($cache['data']);
$this->finalizeObject();
return true;
}
/**
* Save compiled file.
*
* @param string $filename
* @throws \RuntimeException
* @internal
*/
protected function saveCompiledFile($filename)
{
$file = PhpFile::instance($filename);
// Attempt to lock the file for writing.
try {
$file->lock(false);
} catch (\Exception $e) {
// Another process has locked the file; we will check this in a bit.
}
if ($file->locked() === false) {
// File was already locked by another process.
return;
}
$cache = [
'@class' => get_class($this),
'timestamp' => time(),
'checksum' => $this->checksum(),
'files' => $this->files,
'data' => $this->getState()
];
$file->save($cache);
$file->unlock();
$file->free();
$this->modified();
}
protected function getState()
{
return $this->object->toArray();
}
}

View File

@@ -0,0 +1,115 @@
<?php
/**
* @package Grav.Common.Config
*
* @copyright Copyright (C) 2014 - 2016 RocketTheme, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common\Config;
use Grav\Common\Data\Blueprint;
use Grav\Common\Data\BlueprintSchema;
use Grav\Common\Grav;
class CompiledBlueprints extends CompiledBase
{
/**
* @var int Version number for the compiled file.
*/
public $version = 2;
/**
* @var BlueprintSchema Blueprints object.
*/
protected $object;
/**
* Returns checksum from the configuration files.
*
* You can set $this->checksum = false to disable this check.
*
* @return bool|string
*/
public function checksum()
{
if (!isset($this->checksum)) {
$this->checksum = md5(json_encode($this->files) . json_encode($this->getTypes()) . $this->version);
}
return $this->checksum;
}
/**
* Create configuration object.
*
* @param array $data
*/
protected function createObject(array $data = [])
{
$this->object = (new BlueprintSchema($data))->setTypes($this->getTypes());
}
/**
* Get list of form field types.
*
* @return array
*/
protected function getTypes()
{
return Grav::instance()['plugins']->formFieldTypes ?: [];
}
/**
* Finalize configuration object.
*/
protected function finalizeObject()
{
}
/**
* Load single configuration file and append it to the correct position.
*
* @param string $name Name of the position.
* @param array $files Files to be loaded.
*/
protected function loadFile($name, $files)
{
// Load blueprint file.
$blueprint = new Blueprint($files);
$this->object->embed($name, $blueprint->load()->toArray(), '/', true);
}
/**
* Load and join all configuration files.
*
* @return bool
* @internal
*/
protected function loadFiles()
{
$this->createObject();
// Convert file list into parent list.
$list = [];
foreach ($this->files as $files) {
foreach ($files as $name => $item) {
$list[$name][] = $this->path . $item['file'];
}
}
// Load files.
foreach ($list as $name => $files) {
$this->loadFile($name, $files);
}
$this->finalizeObject();
return true;
}
protected function getState()
{
return $this->object->getState();
}
}

View File

@@ -0,0 +1,102 @@
<?php
/**
* @package Grav.Common.Config
*
* @copyright Copyright (C) 2014 - 2016 RocketTheme, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common\Config;
use Grav\Common\File\CompiledYamlFile;
class CompiledConfig extends CompiledBase
{
/**
* @var int Version number for the compiled file.
*/
public $version = 1;
/**
* @var Config Configuration object.
*/
protected $object;
/**
* @var callable Blueprints loader.
*/
protected $callable;
/**
* @var bool
*/
protected $withDefaults;
/**
* Set blueprints for the configuration.
*
* @param callable $blueprints
* @return $this
*/
public function setBlueprints(callable $blueprints)
{
$this->callable = $blueprints;
return $this;
}
/**
* @param bool $withDefaults
* @return mixed
*/
public function load($withDefaults = false)
{
$this->withDefaults = $withDefaults;
return parent::load();
}
/**
* Create configuration object.
*
* @param array $data
*/
protected function createObject(array $data = [])
{
if ($this->withDefaults && empty($data) && is_callable($this->callable)) {
$blueprints = $this->callable;
$data = $blueprints()->getDefaults();
}
$this->object = new Config($data, $this->callable);
}
/**
* Finalize configuration object.
*/
protected function finalizeObject()
{
$this->object->checksum($this->checksum());
}
/**
* Function gets called when cached configuration is saved.
*/
public function modified()
{
$this->object->modified(true);
}
/**
* Load single configuration file and append it to the correct position.
*
* @param string $name Name of the position.
* @param string $filename File to be loaded.
*/
protected function loadFile($name, $filename)
{
$file = CompiledYamlFile::instance($filename);
$this->object->join($name, $file->content(), '/');
$file->free();
}
}

View File

@@ -0,0 +1,68 @@
<?php
/**
* @package Grav.Common.Config
*
* @copyright Copyright (C) 2014 - 2016 RocketTheme, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common\Config;
use Grav\Common\File\CompiledYamlFile;
class CompiledLanguages extends CompiledBase
{
/**
* @var int Version number for the compiled file.
*/
public $version = 1;
/**
* @var Languages Configuration object.
*/
protected $object;
/**
* Create configuration object.
*
* @param array $data
*/
protected function createObject(array $data = [])
{
$this->object = new Languages($data);
}
/**
* Finalize configuration object.
*/
protected function finalizeObject()
{
$this->object->checksum($this->checksum());
}
/**
* Function gets called when cached configuration is saved.
*/
public function modified()
{
$this->object->modified(true);
}
/**
* Load single configuration file and append it to the correct position.
*
* @param string $name Name of the position.
* @param string $filename File to be loaded.
*/
protected function loadFile($name, $filename)
{
$file = CompiledYamlFile::instance($filename);
if (preg_match('|languages\.yaml$|', $filename)) {
$this->object->mergeRecursive($file->content());
} else {
$this->object->join($name, $file->content(), '/');
}
$file->free();
}
}

View File

@@ -1,473 +1,98 @@
<?php
/**
* @package Grav.Common.Config
*
* @copyright Copyright (C) 2014 - 2016 RocketTheme, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common\Config;
use Grav\Common\File\CompiledYamlFile;
use Grav\Common\Debugger;
use Grav\Common\Grav;
use Grav\Common\Data\Data;
use RocketTheme\Toolbox\Blueprints\Blueprints;
use RocketTheme\Toolbox\File\PhpFile;
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
use Grav\Common\Service\ConfigServiceProvider;
/**
* The Config class contains configuration information.
*
* @author RocketTheme
* @license MIT
*/
class Config extends Data
{
protected $grav;
protected $streams = [
'system' => [
'type' => 'ReadOnlyStream',
'prefixes' => [
'' => ['system'],
]
],
'user' => [
'type' => 'ReadOnlyStream',
'prefixes' => [
'' => ['user'],
]
],
'blueprints' => [
'type' => 'ReadOnlyStream',
'prefixes' => [
'' => ['user://blueprints', 'system/blueprints'],
]
],
'config' => [
'type' => 'ReadOnlyStream',
'prefixes' => [
'' => ['user://config', 'system/config'],
]
],
'plugins' => [
'type' => 'ReadOnlyStream',
'prefixes' => [
'' => ['user://plugins'],
]
],
'plugin' => [
'type' => 'ReadOnlyStream',
'prefixes' => [
'' => ['user://plugins'],
]
],
'themes' => [
'type' => 'ReadOnlyStream',
'prefixes' => [
'' => ['user://themes'],
]
],
'languages' => [
'type' => 'ReadOnlyStream',
'prefixes' => [
'' => ['user://languages', 'system/languages'],
]
],
'cache' => [
'type' => 'Stream',
'prefixes' => [
'' => ['cache'],
'images' => ['images']
]
],
'log' => [
'type' => 'Stream',
'prefixes' => [
'' => ['logs']
]
],
'backup' => [
'type' => 'Stream',
'prefixes' => [
'' => ['backup']
]
]
];
protected $setup = [];
protected $blueprintFiles = [];
protected $configFiles = [];
protected $languageFiles = [];
protected $checksum;
protected $timestamp;
protected $configLookup;
protected $blueprintLookup;
protected $pluginLookup;
protected $languagesLookup;
protected $finder;
protected $environment;
protected $messages = [];
protected $languages;
public function __construct(array $setup = array(), Grav $grav = null, $environment = null)
{
$this->grav = $grav ?: Grav::instance();
$this->finder = new ConfigFinder;
$this->environment = $environment ?: 'localhost';
$this->messages[] = 'Environment Name: ' . $this->environment;
// Make sure that
if (!isset($setup['streams']['schemes'])) {
$setup['streams']['schemes'] = [];
}
$setup['streams']['schemes'] += $this->streams;
$setup = $this->autoDetectEnvironmentConfig($setup);
$this->messages[] = $setup['streams']['schemes']['config']['prefixes'][''];
$this->setup = $setup;
parent::__construct($setup);
$this->check();
}
protected $modified = false;
public function key()
{
return $this->checksum();
}
public function reload()
public function checksum($checksum = null)
{
$this->items = $this->setup;
$this->check();
$this->init();
$this->debug();
return $this;
}
protected function check()
{
$streams = isset($this->items['streams']['schemes']) ? $this->items['streams']['schemes'] : null;
if (!is_array($streams)) {
throw new \InvalidArgumentException('Configuration is missing streams.schemes!');
}
$diff = array_keys(array_diff_key($this->streams, $streams));
if ($diff) {
throw new \InvalidArgumentException(
sprintf('Configuration is missing keys %s from streams.schemes!', implode(', ', $diff))
);
}
}
public function debug()
{
foreach ($this->messages as $message) {
$this->grav['debugger']->addMessage($message);
}
$this->messages = [];
}
public function init()
{
/** @var UniformResourceLocator $locator */
$locator = $this->grav['locator'];
$this->configLookup = $locator->findResources('config://');
$this->blueprintLookup = $locator->findResources('blueprints://config');
$this->pluginLookup = $locator->findResources('plugins://');
$this->loadCompiledBlueprints($this->blueprintLookup, $this->pluginLookup, 'master');
$this->loadCompiledConfig($this->configLookup, $this->pluginLookup, 'master');
// process languages if supported
if ($this->get('system.languages.translations', true)) {
$this->languagesLookup = $locator->findResources('languages://');
$this->loadCompiledLanguages($this->languagesLookup, $this->pluginLookup, 'master');
}
$this->initializeLocator($locator);
}
public function checksum()
{
if (empty($this->checksum)) {
$checkBlueprints = $this->get('system.cache.check.blueprints', false);
$checkLanguages = $this->get('system.cache.check.languages', false);
$checkConfig = $this->get('system.cache.check.config', true);
$checkSystem = $this->get('system.cache.check.system', true);
if (!$checkBlueprints && !!$checkLanguages && $checkConfig && !$checkSystem) {
$this->messages[] = 'Skip configuration timestamp check.';
return false;
}
// Generate checksum according to the configuration settings.
if (!$checkConfig) {
$this->messages[] = 'Check configuration timestamps from system.yaml files.';
// Just check changes in system.yaml files and ignore all the other files.
$cc = $checkSystem ? $this->finder->locateConfigFile($this->configLookup, 'system') : [];
} else {
$this->messages[] = 'Check configuration timestamps from all configuration files.';
// Check changes in all configuration files.
$cc = $this->finder->locateConfigFiles($this->configLookup, $this->pluginLookup);
}
if ($checkBlueprints) {
$this->messages[] = 'Check blueprint timestamps from all blueprint files.';
$cb = $this->finder->locateBlueprintFiles($this->blueprintLookup, $this->pluginLookup);
} else {
$cb = [];
}
if ($checkLanguages) {
$this->messages[] = 'Check language timestamps from all language files.';
$cl = $this->finder->locateLanguageFiles($this->languagesLookup, $this->pluginLookup);
} else {
$cl = [];
}
$this->checksum = md5(json_encode([$cc, $cb, $cl]));
if ($checksum !== null) {
$this->checksum = $checksum;
}
return $this->checksum;
}
protected function autoDetectEnvironmentConfig($items)
public function modified($modified = null)
{
$environment = $this->environment;
$env_stream = 'user://'.$environment.'/config';
if (file_exists(USER_DIR.$environment.'/config')) {
array_unshift($items['streams']['schemes']['config']['prefixes'][''], $env_stream);
if ($modified !== null) {
$this->modified = $modified;
}
return $items;
return $this->modified;
}
protected function loadCompiledBlueprints($blueprints, $plugins, $filename = null)
public function reload()
{
$checksum = md5(json_encode($blueprints));
$filename = $filename
? CACHE_DIR . 'compiled/blueprints/' . $filename . '-' . $this->environment . '.php'
: CACHE_DIR . 'compiled/blueprints/' . $checksum . '-' . $this->environment . '.php';
$file = PhpFile::instance($filename);
$cache = $file->exists() ? $file->content() : null;
$blueprintFiles = $this->finder->locateBlueprintFiles($blueprints, $plugins);
$checksum .= ':'.md5(json_encode($blueprintFiles));
$class = get_class($this);
$grav = Grav::instance();
// Load real file if cache isn't up to date (or is invalid).
if (
!is_array($cache)
|| !isset($cache['checksum'])
|| !isset($cache['@class'])
|| $cache['checksum'] != $checksum
|| $cache['@class'] != $class
) {
// Attempt to lock the file for writing.
$file->lock(false);
// Load new configuration.
$config = ConfigServiceProvider::load($grav);
// Load blueprints.
$this->blueprints = new Blueprints;
foreach ($blueprintFiles as $files) {
$this->loadBlueprintFiles($files);
}
/** @var Debugger $debugger */
$debugger = $grav['debugger'];
$cache = [
'@class' => $class,
'checksum' => $checksum,
'files' => $blueprintFiles,
'data' => $this->blueprints->toArray()
];
// If compiled file wasn't already locked by another process, save it.
if ($file->locked() !== false) {
$this->messages[] = 'Saving compiled blueprints.';
$file->save($cache);
$file->unlock();
}
} else {
$this->blueprints = new Blueprints($cache['data']);
if ($config->modified()) {
// Update current configuration.
$this->items = $config->toArray();
$this->checksum($config->checksum());
$this->modified(true);
$debugger->addMessage('Configuration was changed and saved.');
}
return $this;
}
public function debug()
{
/** @var Debugger $debugger */
$debugger = Grav::instance()['debugger'];
$debugger->addMessage('Environment Name: ' . $this->environment);
if ($this->modified()) {
$debugger->addMessage('Configuration reloaded and cached.');
}
}
protected function loadCompiledConfig($configs, $plugins, $filename = null)
public function init()
{
$filename = $filename
? CACHE_DIR . 'compiled/config/' . $filename . '-' . $this->environment . '.php'
: CACHE_DIR . 'compiled/config/' . $checksum . '-' . $this->environment . '.php';
$file = PhpFile::instance($filename);
$cache = $file->exists() ? $file->content() : null;
$class = get_class($this);
$checksum = $this->checksum();
if (
!is_array($cache)
|| !isset($cache['checksum'])
|| !isset($cache['@class'])
|| $cache['@class'] != $class
) {
$this->messages[] = 'No cached configuration, compiling new configuration..';
} else if ($cache['checksum'] !== $checksum) {
$this->messages[] = 'Configuration checksum mismatch, reloading configuration..';
} else {
$this->messages[] = 'Configuration checksum matches, using cached version.';
$this->items = $cache['data'];
return;
}
$configFiles = $this->finder->locateConfigFiles($configs, $plugins);
// Attempt to lock the file for writing.
$file->lock(false);
// Load configuration.
foreach ($configFiles as $files) {
$this->loadConfigFiles($files);
}
$cache = [
'@class' => $class,
'timestamp' => time(),
'checksum' => $checksum,
'data' => $this->toArray()
];
// If compiled file wasn't already locked by another process, save it.
if ($file->locked() !== false) {
$this->messages[] = 'Saving compiled configuration.';
$file->save($cache);
$file->unlock();
}
$this->items = $cache['data'];
}
protected function loadCompiledLanguages($languages, $plugins, $filename = null)
{
$checksum = md5(json_encode($languages));
$filename = $filename
? CACHE_DIR . 'compiled/languages/' . $filename . '-' . $this->environment . '.php'
: CACHE_DIR . 'compiled/languages/' . $checksum . '-' . $this->environment . '.php';
$file = PhpFile::instance($filename);
$cache = $file->exists() ? $file->content() : null;
$languageFiles = $this->finder->locateLanguageFiles($languages, $plugins);
$checksum .= ':' . md5(json_encode($languageFiles));
$class = get_class($this);
// Load real file if cache isn't up to date (or is invalid).
if (
!is_array($cache)
|| !isset($cache['checksum'])
|| !isset($cache['@class'])
|| $cache['checksum'] != $checksum
|| $cache['@class'] != $class
) {
// Attempt to lock the file for writing.
$file->lock(false);
// Load languages.
$this->languages = new Languages;
foreach ($languageFiles as $files) {
$this->loadLanguagesFiles($files);
}
$this->languages->reformat();
$cache = [
'@class' => $class,
'checksum' => $checksum,
'files' => $languageFiles,
'data' => $this->languages->toArray()
];
// If compiled file wasn't already locked by another process, save it.
if ($file->locked() !== false) {
$this->messages[] = 'Saving compiled languages.';
$file->save($cache);
$file->unlock();
}
} else {
$this->languages = new Languages($cache['data']);
}
}
/**
* Load blueprints.
*
* @param array $files
*/
public function loadBlueprintFiles(array $files)
{
foreach ($files as $name => $item) {
$file = CompiledYamlFile::instance($item['file']);
$this->blueprints->embed($name, $file->content(), '/');
}
}
/**
* Load configuration.
*
* @param array $files
*/
public function loadConfigFiles(array $files)
{
foreach ($files as $name => $item) {
$file = CompiledYamlFile::instance($item['file']);
$this->join($name, $file->content(), '/');
}
}
public function loadLanguagesFiles(array $files)
{
foreach ($files as $name => $item) {
$file = CompiledYamlFile::instance($item['file']);
$this->languages->join($name, $file->content(), '/');
}
}
/**
* Initialize resource locator by using the configuration.
*
* @param UniformResourceLocator $locator
*/
public function initializeLocator(UniformResourceLocator $locator)
{
$locator->reset();
$schemes = (array) $this->get('streams.schemes', []);
foreach ($schemes as $scheme => $config) {
if (isset($config['paths'])) {
$locator->addPath($scheme, '', $config['paths']);
}
if (isset($config['prefixes'])) {
foreach ($config['prefixes'] as $prefix => $paths) {
$locator->addPath($scheme, $prefix, $paths);
}
$setup = Grav::instance()['setup']->toArray();
foreach ($setup as $key => $value) {
if ($key === 'streams' || !is_array($value)) {
// Optimized as streams and simple values are fully defined in setup.
$this->items[$key] = $value;
} else {
$this->joinDefaults($key, $value);
}
}
}
/**
* Get available streams and their types from the configuration.
*
* @return array
* @return mixed
* @deprecated
*/
public function getStreams()
{
$schemes = [];
foreach ((array) $this->get('streams.schemes') as $scheme => $config) {
$type = !empty($config['type']) ? $config['type'] : 'ReadOnlyStream';
if ($type[0] != '\\') {
$type = '\\RocketTheme\\Toolbox\\StreamWrapper\\' . $type;
}
$schemes[$scheme] = $type;
}
return $schemes;
}
public function getLanguages()
{
return $this->languages;
return Grav::instance()['languages'];
}
}

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