Compare commits

...

129 Commits

Author SHA1 Message Date
Andy Miller
031bfdc1e7 prepare for rc.2 release 2019-02-07 16:23:57 -07:00
Matias Griese
1391dd38a4 Changelog update 2019-02-07 23:40:33 +02:00
Andy Miller
f8f1d5854c Squashed commit of the following:
commit 6522db9beb579ee9ccb4f8b73f22bd0a57af5294
Merge: e047173f a1c8cb9f
Author: Matias Griese <matias@trilbymedia.com>
Date:   Thu Feb 7 21:25:18 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

commit e047173fe0acf79a593db5b2e9db87cdc6f416a1
Author: Matias Griese <matias@trilbymedia.com>
Date:   Thu Feb 7 21:09:18 2019 +0200

    Updated FlexCollection to match object isAuthorized() call (fixed oopsie)

commit a937a5834fab908c915d9859479b07088cbe1677
Author: Matias Griese <matias@trilbymedia.com>
Date:   Thu Feb 7 21:02:21 2019 +0200

    Updated FlexCollection to match object isAuthorized() call

commit 24ea31364632dddc38057e243075787340c3e86b
Author: Matias Griese <matias@trilbymedia.com>
Date:   Thu Feb 7 20:48:13 2019 +0200

    Fixed infinite loop when creating DataUser object

commit 5da9fa8e1a4d213e16d8ca5c64a898c1712a28aa
Author: Matias Griese <matias@trilbymedia.com>
Date:   Thu Feb 7 17:34:54 2019 +0200

    Renamed `FlexAuthorizeInterface::authorize()` to `isAuthorized()`

commit 42fcf352a53a89e2082449ff6280804d913cac99
Author: Matias Griese <matias@trilbymedia.com>
Date:   Thu Feb 7 10:10:41 2019 +0200

    Added proper security check for user access levels

commit 43f8051305909f4579a65026de020c4ccdb1d15a
Author: Matias Griese <matias@trilbymedia.com>
Date:   Thu Feb 7 10:07:35 2019 +0200

    Added configuration options for system.accounts fields

commit 9ff8cc6e984744cb1031184721cb3a03d38ca33a
Author: Andy Miller <rhuk@mac.com>
Date:   Wed Feb 6 13:20:02 2019 -0700

    Cleanly handle session corruption due to changing Flex object types

commit 472c7e5367d7e27044e6bf1629800c69178a4b70
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Feb 6 21:50:48 2019 +0200

    Added isValid() method for Data/FlexUser classes

commit 3098479d5e5f0ae370495f77e0615f1a50d9501c
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Feb 6 14:00:06 2019 +0200

    Changelog update

commit 56956e178c93b8eefe055f645693b44f0ce71092
Merge: 84510cdc 466374ba
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Feb 6 13:32:03 2019 +0200

    Merge remote-tracking branch 'origin/1.7' into 1.7

commit 84510cdc24bf445aeb3b4787c6a3198d31789e8c
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Feb 6 13:31:40 2019 +0200

    Restructure Users logic to allow us to switch between old and new classes

commit 466374ba33ba89b396a36cc4fc0bd53f0d974bd0
Merge: 3a84c382 26de0340
Author: Andy Miller <rhuk@mac.com>
Date:   Tue Feb 5 20:37:33 2019 -0700

    Merge branch '1.6' into 1.7

commit 8f9c0e513a48161e97ca8940036c94984b9e814e
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Feb 5 16:23:21 2019 +0200

    Restructure FlexUsers to allow us to switch between old and new classes

commit 3a84c3822b4374dd767fed235003f426a0e48f4b
Merge: 6412498a 34bf8fb5
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Feb 5 14:24:09 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

    # Conflicts:
    #	system/defines.php

commit 6412498acab51bfe96ff2fd071a6875e3f8e435b
Merge: 3467f1d8 b1d43d29
Author: Andy Miller <rhuk@mac.com>
Date:   Mon Feb 4 16:48:04 2019 -0700

    Merge branch '1.6' into 1.7

commit 3467f1d8d0448e588a8902ff70f13e24c4117e33
Merge: 49cf9820 c713625a
Author: Matias Griese <matias@trilbymedia.com>
Date:   Mon Feb 4 22:27:56 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

commit 49cf9820be70b37ae9ac69e7a35950e5b9fb6c25
Merge: e0aca2f6 24e6b6c8
Author: Matias Griese <matias@trilbymedia.com>
Date:   Mon Feb 4 22:21:37 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

commit e0aca2f6a0823b7346dc3eeaed698d55d9ae2f4f
Merge: 0bc93fae 632a2d79
Author: Matias Griese <matias@trilbymedia.com>
Date:   Fri Feb 1 09:06:50 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

    # Conflicts:
    #	system/src/Grav/Common/User/User.php

commit 0bc93faec721e497867bdba224a61bdd397ff8c6
Merge: 91e17b8b e4b1d2ed
Author: Andy Miller <rhuk@mac.com>
Date:   Thu Jan 31 18:42:25 2019 -0700

    Merge branch '1.6' into 1.7

commit 91e17b8b14d4eeeccdd2f297dd27efbc4f515a19
Merge: 959cd21d 9fadb992
Author: Andy Miller <rhuk@mac.com>
Date:   Thu Jan 31 15:41:51 2019 -0700

    Merge branch '1.7' of github.com:getgrav/grav into 1.7

    # Conflicts:
    #	CHANGELOG.md

commit 959cd21da6a3aa3d15e67ad25114b4238fd5eba9
Merge: 22eedbfd a3fea3d0
Author: Andy Miller <rhuk@mac.com>
Date:   Thu Jan 31 15:40:21 2019 -0700

    Merge branch '1.6' into 1.7

    # Conflicts:
    #	CHANGELOG.md
    #	system/defines.php

commit 9fadb992a409473ec047cee329adfd2fc001ec99
Author: Matias Griese <matias@trilbymedia.com>
Date:   Fri Feb 1 00:11:05 2019 +0200

    Added search() for user collection

commit fb1193e465fa0f6719a43215d0218d9e774519f1
Merge: d633eabf d50e5d95
Author: Matias Griese <matias@trilbymedia.com>
Date:   Thu Jan 31 21:19:35 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

commit d633eabf58216f18c3bd2ac179f474f621206d5a
Author: Matias Griese <matias@trilbymedia.com>
Date:   Thu Jan 31 21:17:35 2019 +0200

    Index username and email in lowercase letters

commit 86db584b0075ef7ad523d97bbe600c83815648e0
Author: Matias Griese <matias@trilbymedia.com>
Date:   Thu Jan 31 15:21:40 2019 +0200

    Rework FlexUser index

commit 540dbcd24c790114cec122f8bfbdc4d199cd9e2b
Merge: 28e41fb7 7a044c73
Author: Matias Griese <matias@trilbymedia.com>
Date:   Thu Jan 31 15:08:38 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

    # Conflicts:
    #	CHANGELOG.md

commit 28e41fb7e76bc1e569c0fcb8440c16d228396c73
Author: Matias Griese <matias@trilbymedia.com>
Date:   Thu Jan 31 11:17:29 2019 +0200

    Remove useless check

commit bd7b91efcba0914a3b4a664319c73b230e0e0755
Merge: 22eedbfd 4f80a156
Author: Matias Griese <matias@trilbymedia.com>
Date:   Thu Jan 31 10:16:33 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

    # Conflicts:
    #	CHANGELOG.md
    #	system/defines.php

commit 22eedbfd1160a38f24525c50cb4ca61caec4a1f8
Author: Andy Miller <rhuk@mac.com>
Date:   Wed Jan 30 17:18:59 2019 -0700

    Defines update

commit 338d40993e16e5c233c5fd010a259bbb37433de3
Merge: 1ecb6c4c f312c44a
Author: Andy Miller <rhuk@mac.com>
Date:   Wed Jan 30 17:15:38 2019 -0700

    Merge branch '1.6' into 1.7

commit 1ecb6c4c2b42e61785c473348bbeaffd2319344a
Merge: 22fc6ede 60436104
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 30 21:05:13 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

commit 22fc6edea286a51bb15f23dd8762960b5bb1821f
Merge: 21b9e2cd d45efb48
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 30 20:51:30 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

commit 21b9e2cd7c06e9f286428f2794ebd7d4e8f0e64d
Merge: 09f9eb22 610c6c34
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 30 11:20:39 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

commit 09f9eb228f5980a56602b0a82ca73929d1d0336c
Author: Andy Miller <rhuk@mac.com>
Date:   Tue Jan 29 17:16:42 2019 -0700

    updated changelog

commit d2641c89e5a8e25d5a8d20cb10d7d0d302661ac7
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Jan 29 23:08:04 2019 +0200

    Added support for looking up user by key, flex_key and storage_key

commit 2482ae7b8ca46e9cd6c7759ee5c3a62cb1e58363
Merge: 354bfd95 bbdac0fd
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Jan 29 22:22:29 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

commit 354bfd95fccf169357591a7f4c6b603121012f12
Merge: c0299f0d 5f5bfdaa
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Jan 29 19:32:41 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

commit c0299f0de81ebc3a0d05e147443a1602e7f86a34
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Jan 29 19:22:24 2019 +0200

    Log alert if user index file gets corrupted or cannot be read

commit a9bd316868c45ada12ba7756ef6abc46daa3638d
Merge: 318cff10 ad7fdd5c
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Jan 29 18:15:00 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

commit 318cff102747c863e785f3bdbf3e538c84884b29
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Jan 29 18:00:18 2019 +0200

    FlexUser: Do not fail hard if user index is corrupted

commit a402e675e485c2ccaa9e15f0d4f444073efe1fc5
Merge: a6179018 1321e582
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Jan 29 16:09:10 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

commit a6179018d3e57acf6a0e00ed8cbe65be1b214ae7
Merge: eaeb9d30 f7865873
Author: Matias Griese <matias@trilbymedia.com>
Date:   Mon Jan 28 19:48:39 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

commit eaeb9d30251e9e31cd72c34c2f0f3a9b8e448f6c
Author: Matias Griese <matias@trilbymedia.com>
Date:   Fri Jan 25 12:20:16 2019 +0200

    FlexUser: Fixed original avatar image saving if there wasn't any before resize

commit 6e9b880dba19e3e717065e1d6b9adce4eb4fa100
Merge: d02f1c3d 5ad4ffd3
Author: Matias Griese <matias@trilbymedia.com>
Date:   Fri Jan 25 12:13:03 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

    # Conflicts:
    #	system/src/Grav/Common/Form/FormFlash.php

commit d02f1c3dd6b9e621fd1da5d9fb845faf2efb14d2
Author: Matias Griese <matias@trilbymedia.com>
Date:   Fri Jan 25 11:42:56 2019 +0200

    Fixed a bug on Form file crop with existing data

commit 17221a2a31fb7153e83e6a949bd004fe6aa73af8
Merge: c1c0467e 0700e4bf
Author: Matias Griese <matias@trilbymedia.com>
Date:   Fri Jan 25 11:08:14 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into 1.7

commit c1c0467ea1510bf7a7dceadefccb1358a6e74b28
Author: Matias Griese <matias@trilbymedia.com>
Date:   Thu Jan 24 16:20:51 2019 +0200

    Added `FlexCollection::sort()` method

commit a07f36995573646ce08fa8fb70adcb9f6ccbb95b
Merge: 4929c700 6d89108c
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 23 21:25:35 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into feature/1.6-flex-users

commit 4929c700065c10c6e047fd46169d121aea8c0fad
Merge: 13aac576 4e31a114
Author: Andy Miller <rhuk@mac.com>
Date:   Wed Jan 23 12:17:23 2019 -0700

    Merge branch '1.6' into feature/1.6-flex-users

commit 13aac576f81c0ef1a6721652c04432512c3bb669
Merge: 81b47c21 18d53079
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 23 20:54:29 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into feature/1.6-flex-users

commit 81b47c21ff58d5c6c876857dd9ea24d9cef97880
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 23 15:43:23 2019 +0200

    Move user search index into user-data://accounts folder

commit c7bf4fc71abd1298d729da08e0770dd94ab4f708
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 23 15:41:48 2019 +0200

    Fixed fatal error when user has no avatar

commit 586f6252d84c657b58fe84b79955c4542900e56a
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 23 15:41:18 2019 +0200

    Added configuration option for account storage type, default to old structure

commit 78cd6d05aa06e132ba4090edac5b4a4dab54d13b
Merge: 2d554b55 57de7cc0
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 23 15:14:17 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into feature/1.6-flex-users

commit 2d554b5577224bdd160e1319a9ba51b0b0ee6a34
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 23 12:46:50 2019 +0200

    FlexUser: Added original/cropped image support

commit 3f78f1b82316cf4d8bb2d0109c11ec6bf73c2bc5
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 23 12:13:54 2019 +0200

    FlexUser: Added original image/crop support

commit f8b7e7922cb036d57345d5587e9ba70271722503
Merge: f6b81fde e6b6e218
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 23 11:21:16 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into feature/1.6-flex-users

commit f6b81fde528a2b6ef17b784a5b695bb371b4617c
Merge: d82eeeac 24305528
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 23 11:11:39 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into feature/1.6-flex-users

commit d82eeeac9b50290d17b852e2221d9ae97b375fdc
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 23 10:28:58 2019 +0200

    MediaTrait: Clearing cache should unset media variable

commit ddaa9117ed7e795f95d897b6dd07a604482ca60b
Author: Matias Griese <matias@trilbymedia.com>
Date:   Wed Jan 23 10:11:26 2019 +0200

    FlexUser: Fixed issue on avatar if the field isn't what is expected by default (an array)

commit 8b23a47708106557c41fe497211e4dc3c7c1767e
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Jan 22 22:03:47 2019 +0200

    Added User::getAvatarMedia() method

commit bb175341a5cb556c698481731fe73e9fa4b07643
Merge: bc9d60ca 5b0e2e40
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Jan 22 21:44:18 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into feature/1.6-flex-users

    # Conflicts:
    #	system/src/Grav/Common/User/User.php

commit bc9d60ca79888c1c7eb0087bc841f409a67017b0
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Jan 22 21:25:19 2019 +0200

    FlexUser: Fix extra parameter

commit 93b4b03706e8440e8e7ccad473fc5595ac85b631
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Jan 22 11:10:51 2019 +0200

    FlexUser: Added support for avatar (or images in general)

commit fcd5756d2747cc4126c03fc53c2bd1bd35f0e8dc
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Jan 22 09:29:54 2019 +0200

    Add `FormFlash::clearFiles()` method

commit 9da3c566188fa3f68077292d82a68b793763dc6a
Author: Matias Griese <matias@trilbymedia.com>
Date:   Mon Jan 21 20:57:07 2019 +0200

    Added media support for User

commit bb94022b709cebc73be4b3f010568b6504535aa2
Author: Matias Griese <matias@trilbymedia.com>
Date:   Mon Jan 21 11:44:35 2019 +0200

    Store users with unique ids

commit 6a184c4011ed3ed90cec4d536ead067896a580aa
Merge: 698a291c bd27d6fe
Author: Matias Griese <matias@trilbymedia.com>
Date:   Fri Jan 18 14:14:23 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into feature/1.6-flex-users

    # Conflicts:
    #	system/src/Grav/Common/User/User.php

commit 698a291cc844605dd8e969784883207308bc3a5f
Author: Matias Griese <matias@trilbymedia.com>
Date:   Fri Jan 18 14:02:02 2019 +0200

    Make sure that `authenticated` and `authorized` will not be saved into the file

commit 59c7dd59af86c7e0feaf4a9fa3832bad8a85b631
Author: Matias Griese <matias@trilbymedia.com>
Date:   Fri Jan 18 13:09:43 2019 +0200

    FlexUser: Fixed missing username in the object

commit b139e5daaa67d51baa26222e6155b359ac5a17f5
Merge: 426dae47 254fe990
Author: Matias Griese <matias@trilbymedia.com>
Date:   Fri Jan 18 12:22:22 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into feature/1.6-flex-users

    # Conflicts:
    #	system/src/Grav/Common/User/User.php

commit 426dae4731383bfd64f7e8e611f3721f58776feb
Merge: f4ff6713 0afe9d4f
Author: Matias Griese <matias@trilbymedia.com>
Date:   Fri Jan 18 11:00:36 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into feature/1.6-flex-users

commit f4ff6713ac1c930b3f932b285c762552f99c79b0
Merge: eaab0b0a 751d1da7
Author: Matias Griese <matias@trilbymedia.com>
Date:   Fri Jan 11 13:04:04 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into feature/1.6-flex-users

commit eaab0b0ae9c50ca5995ea7aa769720fc647ec4c2
Author: Matias Griese <matias@trilbymedia.com>
Date:   Fri Jan 11 12:57:15 2019 +0200

    Fixed merge conflict

commit 531dd1a788a6496c228c56103d4512d39c4d7650
Merge: 3bd925d6 f0cf4ed8
Author: Matias Griese <matias@trilbymedia.com>
Date:   Fri Jan 11 12:50:46 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into feature/1.6-flex-users

commit 3bd925d61b96c12ea77cad19f4a9c01ba9afba8f
Merge: a383fbac a224c8b3
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Jan 8 18:37:22 2019 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into feature/1.6-flex-users

commit a383fbac0447d3226ee3a6109b99edca5210c5e5
Merge: 422e1f70 b38a143c
Author: Matias Griese <matias@trilbymedia.com>
Date:   Tue Dec 4 15:32:39 2018 +0200

    Merge branch '1.6' of https://github.com/getgrav/grav into feature/flex-users

    # Conflicts:
    #	system/src/Grav/Common/Grav.php

commit 422e1f7027389fd1727dac4e269309a33187ea69
Author: Matias Griese <matias@trilbymedia.com>
Date:   Mon Nov 26 19:57:28 2018 +0200

    Implement Flex User classes
2019-02-07 14:36:07 -07:00
Matias Griese
a1c8cb9f78 Typo in changelog 2019-02-07 14:42:19 +02:00
Matias Griese
54ce1b570a Regression: $session->getFlashObject('files-upload) did not work with Form 3.0 2019-02-07 11:28:54 +02:00
Matias Griese
f2d66c810a Use standard filename check in FormTrait 2019-02-07 08:35:43 +02:00
Andy Miller
26de0340ec Updated vendor libs including Symfony 4.2.3 2019-02-05 16:47:53 -07:00
Andy Miller
333fbd0db1 Update vendor libraries 2019-02-05 16:47:05 -07:00
Andy Miller
4cf4c09339 limit stack track rows… 50+ is nuts! 2019-02-05 14:18:48 -07:00
Matias Griese
34bf8fb5bb Minor fix when installing full package via direct install 2019-02-05 13:51:07 +02:00
Matias Griese
06eee1e711 Some installer fixes (clear cache, direct install with full package) 2019-02-05 13:23:16 +02:00
Matias Griese
b6ab086bf7 Changelog update 2019-02-05 11:35:11 +02:00
Andy Miller
b1d43d292d Added some useful object twig functions/filters 2019-02-04 16:30:18 -07:00
Matias Griese
19b92f17dd Improved Grav Core installer 2019-02-04 22:34:46 +02:00
Matias Griese
c713625a38 FlexIndex: Fixed undefined index 2019-02-04 22:27:21 +02:00
Matias Griese
24e6b6c8f1 Fixed Flex from indexing hidden folders/files as objects 2019-02-04 22:21:11 +02:00
Andy Miller
cebe28e591 Updated changelog 2019-02-01 19:02:16 -07:00
Andy Miller
b111a2c29d Added standard Yes/No lang strings to Grav 2019-02-01 13:34:23 -07:00
Matias Griese
8743a8080c Changelog update for #2350 2019-02-01 21:31:59 +02:00
Andy Miller
f2155aa04f Merge branch '1.6' of github.com:getgrav/grav into 1.6 2019-02-01 11:26:21 -07:00
Andy Miller
45346b72f2 Fix for trailing slash redirect in multlang 2019-02-01 11:26:16 -07:00
Matias Griese
632a2d79b6 Merge branch 'develop' of https://github.com/getgrav/grav into 1.6
# Conflicts:
#	CHANGELOG.md
2019-02-01 09:05:29 +02:00
Matias Griese
2fa5021a0c Improved User unserialize to not to break the object if serialized data is not what expected 2019-02-01 09:04:01 +02:00
Andy Miller
e4b1d2ed9e Enhancements to logviewer output to support lines in trace 2019-01-31 18:38:31 -07:00
Andy Miller
a3fea3d0fc Added LogViewer class and CLI command 2019-01-31 15:39:46 -07:00
Matias Griese
d50e5d954d Fixed oopsie in Package class 2019-01-31 20:49:12 +02:00
Matias Griese
970af3870e Some code cleanup 2019-01-31 17:57:05 +02:00
Matias Griese
9ba572d788 Fixed non-namespaced exceptions in scheduler 2019-01-31 17:53:11 +02:00
Matias Griese
ba2c37c216 Removed apc and xcache support, made apc alias of apcu 2019-01-31 17:51:04 +02:00
Matias Griese
0e14a325f8 Fixed some static/object calls to match the method 2019-01-31 17:42:18 +02:00
Matias Griese
1141dabbd8 Code cleanup 2019-01-31 17:32:06 +02:00
Matias Griese
7a044c7397 Added index file support for Flex Objects 2019-01-31 15:07:30 +02:00
Matias Griese
d0b3dd1d99 Improved error detection for broken Flex Objects 2019-01-31 15:06:41 +02:00
Matias Griese
4f80a1567d Update PHP file headers and copyrights 2019-01-31 10:04:57 +02:00
Andy Miller
23098a6b02 Revert "Grav 1.6 copyright updates and cleanup (PHP files only) (#2351)"
This reverts commit 0566185c4f.
2019-01-30 17:54:37 -07:00
Andy Miller
5c8a37be64 Updated version 2019-01-30 17:35:30 -07:00
Andy Miller
7b8944e8f2 updated changelog 2019-01-30 17:34:17 -07:00
Andy Miller
37fcb12ad1 Updated languages 2019-01-30 17:33:25 -07:00
Matias Griese
f312c44a46 Changelog update 2019-01-31 00:13:16 +02:00
Andy Miller
999e439d47 Merge branch 'develop' into 1.6 2019-01-30 13:45:19 -07:00
Matias Griese
0566185c4f Grav 1.6 copyright updates and cleanup (PHP files only) (#2351)
* Framework: update copyrights to 2019

* Some code cleanup (Assets, Backup, Config, Session)

* Continue code cleanup, update copyrights

* Fixed exception issues in scheduler, code cleanup

* Remove apc and xcache support, make apc alias of apcu

* Fixed Getters::count() method not returning anything

* More code cleanup, copyright updates

* Copyright updates for Grav\Console
2019-01-30 13:44:19 -07:00
Hamilton Turner
b91574e5c2 Remove unused parameter (#2357) 2019-01-30 13:42:34 -07:00
Matias Griese
604361045b Fixed bad host header in PSR-7 (if using 'php -S localhost:8000 system/router.php') part 2 2019-01-30 21:04:53 +02:00
Matias Griese
d45efb484c Fixed bad host header in PSR-7 (if using 'php -S localhost:8000 system/router.php') 2019-01-30 20:51:09 +02:00
Matias Griese
610c6c341c Fixed ImageMedium constructor warning when file cannot be accessed 2019-01-30 11:20:12 +02:00
Matias Griese
6daf480bfc Fixed FlexMediaTrait::getMedia() trying to include uploaded but already moved media 2019-01-30 11:17:49 +02:00
Matias Griese
bbdac0fd6d Made FormFlashFile more robust against deleted files (over time) 2019-01-29 22:22:00 +02:00
Matias Griese
5f5bfdaa42 Add protected method FormTrait::unsetFlash() 2019-01-29 19:32:19 +02:00
Matias Griese
ad7fdd5c2b Fixed a bug in FormFlashFile::moveTo() not deleting the old file 2019-01-29 18:12:38 +02:00
Matias Griese
1321e582d5 FlexObject: Fixed a bug when updating media 2019-01-29 14:13:14 +02:00
Stefan Bauer
6d6689b431 Update CHANGELOG.md (#2355) 2019-01-29 10:21:39 +02:00
Matias Griese
f78658738a FlexObject: Fixed a bug when updating media 2019-01-28 13:00:51 +02:00
Andy Miller
7c99ece0e1 make sure HTTP_DNT is set before inspecting it 2019-01-25 16:49:23 -07:00
Andy Miller
9058e1166d prepare for release 2019-01-25 14:42:33 -07:00
Andy Miller
ebd94a532c Merge branch 'develop' into 1.6
# Conflicts:
#	CHANGELOG.md
#	composer.lock
#	system/defines.php
2019-01-25 14:41:36 -07:00
Andy Miller
ff8cc83b3a Merge tag '1.5.7' into develop
Release v1.5.7
2019-01-25 14:38:52 -07:00
Andy Miller
95a4ecb0f1 Merge branch 'release/1.5.7' 2019-01-25 14:38:52 -07:00
Andy Miller
fbd3bbdbf9 Prepare for release 2019-01-25 14:38:31 -07:00
Andy Miller
f0e58adfbc Updated vendor libraries 2019-01-25 14:37:43 -07:00
Matias Griese
5ad4ffd3cf FormFlash: Fixed some image cropping issues 2019-01-25 12:12:04 +02:00
Matias Griese
0700e4bfdb Replace array cast in FormTrait::getFiles() 2019-01-25 10:42:21 +02:00
Matias Griese
82e5df960d Merge remote-tracking branch 'origin/1.6' into 1.6 2019-01-25 10:40:36 +02:00
Matias Griese
3ace15d01a Added FlexCollection::sort() method 2019-01-25 10:40:28 +02:00
Andy Miller
d367e6a1fb Fix null -> array issue 2019-01-24 15:08:23 -07:00
Matias Griese
a09940ef6a Added FlexCollection::sort() method 2019-01-24 16:21:26 +02:00
Matias Griese
6d89108cc4 Merge remote-tracking branch 'origin/1.6' into 1.6 2019-01-23 21:24:37 +02:00
Matias Griese
bd01b07b4b Reverted Route::__toString() behavior and added deprecated message for proper use (part 2) 2019-01-23 21:24:31 +02:00
Andy Miller
4e31a114ef Use new toString() 2019-01-23 12:16:48 -07:00
Matias Griese
18d53079dd Reverted Route::__toString() behavior and added deprecated message for proper use 2019-01-23 20:54:10 +02:00
Matias Griese
57de7cc03d Missing docblock parameter 2019-01-23 15:13:52 +02:00
Matias Griese
2d7eeb611d Added missing Flex::getObject() and Flex::getCollection() parameters 2019-01-23 13:02:33 +02:00
Matias Griese
e6b6e218f8 Fixed MediaTrait::getMedia() to return refreshed Media object after calling MediaTrait::clearMediaCache() 2019-01-23 11:20:44 +02:00
Matias Griese
243055289b Add FormFlash::clearFiles() method 2019-01-23 10:59:04 +02:00
Matias Griese
52c7d8dfb7 Fixed Grav\Framework\Route::__toString() returning relative URL, not relative route 2019-01-23 10:55:32 +02:00
Andy Miller
5b0e2e401e vendor udpates 2019-01-22 09:40:09 -07:00
Matias Griese
8381261b7c Do not cache FlexObject::authorize() 2019-01-22 13:33:44 +02:00
Matias Griese
2ada99d314 Make $user->update() to behave like $user->merge() 2019-01-21 21:00:58 +02:00
Matias Griese
bd27d6fe8c Fixed backwards incompatibility: Form::getData($name) 2019-01-18 14:12:28 +02:00
Matias Griese
b94631533d User: Ignore authenticated and authorized on object creation 2019-01-18 14:11:33 +02:00
Matias Griese
fb9baaed8a Make sure that authenticated and authorized will not be saved into the file 2019-01-18 13:33:17 +02:00
Matias Griese
254fe990ba Improved Grav\Common\User class; added $user->update() method 2019-01-18 12:20:57 +02:00
Matias Griese
0afe9d4f93 Undo comment out, code works now 2019-01-17 15:26:22 +02:00
Matias Griese
ccca3170d3 Fixed HTTP codes for non-standard response codes becoming 500 server errors 2019-01-17 12:08:19 +02:00
Andy Miller
00b1f12dda Updated changelog 2019-01-16 17:05:48 -07:00
Andy Miller
9ca411aa24 Fixed issue with redirect_trailing_slash losing query string #2269 2019-01-16 17:05:42 -07:00
Andy Miller
e976aa0f5f Fixed some issues with Medium querystring + timestamps 2019-01-16 14:21:56 -07:00
Matias Griese
02c979bdf6 Fixed FlexForm::getValue() call to return the correct data 2019-01-16 21:53:44 +02:00
Matias Griese
88625c6362 For now, do not save form data in flex submit 2019-01-16 18:09:04 +02:00
Matias Griese
76ff68a594 Added file modification timestamps for media images 2019-01-16 17:59:29 +02:00
Matias Griese
d27a2171ea Route: Added support for file extension (part 2) 2019-01-16 15:10:00 +02:00
Matias Griese
075498d03b Route: Added support for file extension 2019-01-16 12:04:26 +02:00
Matias Griese
f04ae315e4 Filter unknown array fields as arrays, not text 2019-01-16 10:45:19 +02:00
Matias Griese
2e277f3cb3 Make Form::getFlash() public 2019-01-16 10:10:53 +02:00
Andy Miller
29098aa8db Updated changelog 2019-01-15 16:32:00 -07:00
Andy Miller
659cd1bb92 return $this from init() 2019-01-15 16:31:54 -07:00
Andy Miller
3bf7c6943a Added some Util array functions 2019-01-15 16:31:43 -07:00
Andy Miller
189e29b5c6 Add FlexObject::getChanges() method 2019-01-15 16:29:47 -07:00
Matias Griese
0ede252fa3 Fix undefined variable id on FormTrait::getFlash() 2019-01-15 20:18:46 +02:00
Matias Griese
d7d69b2be8 Added support for storing form state by user or session 2019-01-15 12:31:03 +02:00
Matias Griese
d79729f596 Fixed a timer bug in Tasks Processor 2019-01-15 11:31:33 +02:00
Matias Griese
988d4ab047 Fix a bug in FormTrait::validate() 2019-01-15 11:31:08 +02:00
Andy Miller
437866dfcd Merge branch 'develop' into 1.6 2019-01-14 19:00:21 -07:00
Rotzbua
c40dcf020c add do not track header detection (#2334) 2019-01-14 17:49:46 -07:00
Andy Miller
e520bd0eb8 Fixed environment issue #2284 2019-01-14 13:55:29 -07:00
Matias Griese
3a9e57e228 Added form preview support for FlexObject, including a way to render newly uploaded files before saving them 2019-01-14 18:44:37 +02:00
Matias Griese
22ed1286e8 Added support to add extra files to Media object 2019-01-14 18:41:05 +02:00
Matias Griese
1a37c54316 Fixed FlexForm::updateObject() to update array values when they are empty in the form 2019-01-14 14:15:22 +02:00
Andy Miller
b6328944a3 Move processMarkdown() method from TwigExtension to more general Utils class 2019-01-13 16:20:19 -07:00
Matias Griese
751d1da704 Added unset type/filter to the validation 2019-01-11 13:03:04 +02:00
Matias Griese
5cf4eea09e Remove debug backtrace and die when session fails to start 2019-01-11 13:02:37 +02:00
Matias Griese
f0cf4ed8ff Regression: Fix serialize issues with forms 2019-01-11 00:28:57 +02:00
Matias Griese
fa61ed17b1 Added check for bad JSON back (tracked down and fixed the issue in form plugin) 2019-01-10 19:59:11 +02:00
Raphaël Droz
f1363877d8 preserve accents in fields containing Twig expr. using unicode (#2279)
When a fields contain accentuated characters, reduce the risk of messing with it by passing unicode characters unescaped.
Twig will deal with them. And fewer backslash-escaping problems will arise.
2019-01-09 13:05:32 -07:00
Basile Trujillo [L0gIn]
e8825beae5 Added support for AWS Cloudfront forwarded scheme header (#2297)
AWS Cloudfront does not provide HTTP_X_FORWARDED_PROTO header but provide a HTTP_CLOUDFRONT_FORWARDED_PROTO header instead
2019-01-09 13:04:32 -07:00
Matias Griese
830a83e3d1 Symfony library update 2019-01-09 09:28:33 +02:00
Matias Griese
7d249c61c2 Added check for bad JSON back (tracked down and fixed the issue in form plugin) 2019-01-08 19:35:51 +02:00
Matias Griese
a224c8b348 FlexForm: Maintain form state on page reloads 2019-01-08 14:32:18 +02:00
Matias Griese
c04208d5dd FlexForm: Fixed missing inputs after save, reset form after save 2019-01-08 13:52:13 +02:00
ranitham
394dfad566 Small bugfix for responsive images (#2300)
* Replace spaces in image filename with %20 to avoid parse errors with the srcset attribute

* Update system/src/Grav/Common/Page/Medium/ImageMedium.php

Co-Authored-By: ranitham <ranitha.m@gmail.com>
2019-01-07 21:34:00 -07:00
Rotzbua
2c55fe01ac add return types for user/authentication (#2293) 2019-01-07 21:29:30 -07:00
Rotzbua
680bfef2c3 http to https (#2299) 2019-01-07 21:28:56 -07:00
Matias Griese
a23cbd0257 Added Blueprint::processForm() method to filter form inputs in Flex form 2018-12-21 12:37:08 +02:00
Matias Griese
f5b77e8082 Added onPageAction, onPageTask, onPageAction.{$action} and onPageTask.{$action} events 2018-12-20 14:08:40 +02:00
Matias Griese
10378ac5af FlexForm: Added support for custom(ized) blueprint layouts 2018-12-20 11:36:01 +02:00
Matias Griese
4a290e6194 Added Grav\Framework\Form\Interfaces\FormFactoryInterface 2018-12-19 22:44:31 +02:00
Matias Griese
c2c0fb242b Minor bugfix 2018-12-19 21:00:10 +02:00
Matias Griese
9b37e50492 Added Page::forms() method to get normalized list of all forms defined in the page 2018-12-19 20:57:47 +02:00
Matias Griese
6c6e8d2605 Added Flex::getObject() for getting flex object directly 2018-12-19 17:40:09 +02:00
Matias Griese
5a6e6dceda Define FormInterface 2018-12-19 13:35:02 +02:00
349 changed files with 7044 additions and 2995 deletions

View File

@@ -1,3 +1,70 @@
# v1.6.0-rc.2
## 02/07/2019
1. [](#new)
* New experimental **FlexObjects** powered `Users` for increased performance and capability (**disabled** by default)
* New `$grav['users']` service to allow custom user classes implementing `UserInterface`
* Added index file support for Flex Objects
* Added `LogViewer` helper class and CLI command: `bin/grav logviewer`
1. [](#improved)
* Improved error detection for broken Flex Objects
* Removed `apc` and `xcache` support, made `apc` alias of `apcu`
* Support admin and regular translations via the `|t` twig filter and `t()` twig function
* Improved Grav Core installer/updater to run installer script
* Updated vendor libraries including Symfony `4.2.3`
* Renamed old `User` class to `Grav\Common\User\DataUser\User` with multiple improvements and small fixes
* `User` class now acts as a compatibility layer to older versions of Grav
* Deprecated `new User()`, `User::load()`, `User::find()` and `User::delete()` in favor of `$grav['users']` service
* `Media` constructor has now support to not to initialize the media objects
* Cleanly handle session corruption due to changing Flex object types
* Renamed `FlexAuthorizeInterface::authorize()` to `isAuthorized()`
1. [](#bugfix)
* Fixed non-namespaced exceptions in scheduler
* Fixed trailing slash redirect in multlang environment [#2350](https://github.com/getgrav/grav/issues/2350)
* Fixed Flex from indexing hidden folders/files as objects
* Regression: `$session->getFlashObject('files-upload')` did not work with Form 3.0
# v1.6.0-rc.1
## 01/30/2019
1. [](#improved)
* Improved `$page->forms()` call, added `$page->addForms()`
* Made `FormFlashFile` more robust against deleted files
* Updated languages from crowdin
* Fixed a bug in `FormFlashFile::moveTo()` not deleting the old file
* Fixed `FlexMediaTrait::getMedia()` trying to include uploaded but already moved media
* Fixed `ImageMedium` constructor warning when file does not exist
* Fixed bad host header in PSR-7 (if using `php -S localhost:8000 system/router.php`)
# v1.6.0-beta.8
## 01/25/2019
1. [](#new)
* Added `Grav\Framework\Form\Interfaces\FormInterface`
* Added `Grav\Framework\Form\Interfaces\FormFactoryInterface`
* Added `Grav\Framework\Form\FormTrait`
* Added `Page::forms()` method to get normalized list of all form headers defined in the page
* Added `onPageAction`, `onPageTask`, `onPageAction.{$action}` and `onPageTask.{$task}` events
* Added `Blueprint::processForm()` method to filter form inputs
* Move `processMarkdown()` method from `TwigExtension` to more general `Utils` class
* Added support to include extra files into `Media` (such as uploaded files)
* Added form preview support for `FlexObject`, including a way to render newly uploaded files before saving them
* Added `FlexObject::getChanges()` to determine what fields change during an update
* Added `arrayDiffMultidimensional`, `arrayIsAssociative`, `arrayCombine` Util functions
1. [](#improved)
* Added method argument `Data::filter($missingValuesAsNull)`, defaulting to `false`
* Improved `Grav\Common\User` class; added `$user->update()` method
* Added trim support for text input fields `validate: trim: true`
1. [](#bugfix)
* Fixed environment getting port added [#2284](https://github.com/getgrav/grav/issues/2284)
* Fixed `FlexForm::updateObject()` to update array values when they are empty in the form
* Fixed some issues related to Medium objects losing query string attributes
* Broke out Medium timestamp so it's not cleared on `reset()s`
* Fixed issue with `redirect_trailing_slash` losing query string [#2269](https://github.com/getgrav/grav/issues/2269)
* Fixed failed login if user attempts to log in with upper case non-english letters
* Removed extra authenticated/authorized fields when saving existing user from a form
* Fixed `Grav\Framework\Route::__toString()` returning relative URL, not relative route
# v1.6.0-beta.7
## 12/14/2018
@@ -123,6 +190,24 @@
* Doctrine filecache is now namespaced with prefix to support purging
* Register all page types into `blueprint://pages` stream
# v1.5.8
## mm/dd/2019
1. [](#improved)
* Improved `User` unserialize to not to break the object if serialized data is not what expected
# v1.5.7
## 01/25/2019
1. [](#new)
* Support for AWS Cloudfront forwarded scheme header [#2297](https://github.com/getgrav/grav/pull/2297)
1. [](#improved)
* Set homepage with `https://` protocol [#2299](https://github.com/getgrav/grav/pull/2299)
* Preserve accents in fields containing Twig expr. using unicode [#2279](https://github.com/getgrav/grav/pull/2279)
* Updated vendor libraries
1. [](#bugfix)
* Support spaces with filenames in responsive images [#2300](https://github.com/getgrav/grav/pull/2300)
# v1.5.6
## 12/14/2018

View File

@@ -45,5 +45,6 @@ $app->addCommands(array(
new \Grav\Console\Cli\NewProjectCommand(),
new \Grav\Console\Cli\SchedulerCommand(),
new \Grav\Console\Cli\SecurityCommand(),
new \Grav\Console\Cli\LogViewerCommand(),
));
$app->run();

View File

@@ -3,7 +3,7 @@
"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",
"homepage": "https://getgrav.org",
"license": "MIT",
"require": {
"php": ">=7.1.3",
@@ -20,7 +20,7 @@
"psr/http-message": "^1.0",
"psr/http-server-middleware": "^1.0",
"nyholm/psr7-server": "^0.3",
"kodus/psr7-server": "*",
"nyholm/psr7": "^1.0",
"twig/twig": "~1.35",

329
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "15456de6102c76e49b23e3dad39658d5",
"content-hash": "96bb72327a133062393d3391201403d9",
"packages": [
{
"name": "antoligy/dom-string-iterators",
@@ -52,16 +52,16 @@
},
{
"name": "composer/ca-bundle",
"version": "1.1.3",
"version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/composer/ca-bundle.git",
"reference": "8afa52cd417f4ec417b4bfe86b68106538a87660"
"reference": "558f321c52faeb4828c03e7dc0cfe39a09e09a2d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/8afa52cd417f4ec417b4bfe86b68106538a87660",
"reference": "8afa52cd417f4ec417b4bfe86b68106538a87660",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/558f321c52faeb4828c03e7dc0cfe39a09e09a2d",
"reference": "558f321c52faeb4828c03e7dc0cfe39a09e09a2d",
"shasum": ""
},
"require": {
@@ -104,7 +104,7 @@
"ssl",
"tls"
],
"time": "2018-10-18T06:09:13+00:00"
"time": "2019-01-28T09:30:10+00:00"
},
{
"name": "doctrine/cache",
@@ -538,17 +538,17 @@
},
{
"name": "gregwar/image",
"version": "v2.0.23",
"version": "v2.0.24",
"target-dir": "Gregwar/Image",
"source": {
"type": "git",
"url": "https://github.com/Gregwar/Image.git",
"reference": "25fbb91a95d41d44587ee7ca8923745b66221a7d"
"reference": "52145816255dd20cb4bb115d0f9e1030c6287994"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Gregwar/Image/zipball/25fbb91a95d41d44587ee7ca8923745b66221a7d",
"reference": "25fbb91a95d41d44587ee7ca8923745b66221a7d",
"url": "https://api.github.com/repos/Gregwar/Image/zipball/52145816255dd20cb4bb115d0f9e1030c6287994",
"reference": "52145816255dd20cb4bb115d0f9e1030c6287994",
"shasum": ""
},
"require": {
@@ -586,7 +586,7 @@
"gd",
"image"
],
"time": "2018-10-25T17:12:13+00:00"
"time": "2019-01-27T15:10:06+00:00"
},
{
"name": "guzzlehttp/psr7",
@@ -655,6 +655,61 @@
],
"time": "2018-12-04T20:46:45+00:00"
},
{
"name": "kodus/psr7-server",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/kodus/psr7-server.git",
"reference": "7c0e9c72e6cb282bf58e9e73386e4ded26c6ae13"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/kodus/psr7-server/zipball/7c0e9c72e6cb282bf58e9e73386e4ded26c6ae13",
"reference": "7c0e9c72e6cb282bf58e9e73386e4ded26c6ae13",
"shasum": ""
},
"require": {
"php": "^7.1",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.0"
},
"replace": {
"nyholm/psr7-server": "^0.3"
},
"require-dev": {
"nyholm/nsa": "^1.1",
"nyholm/psr7": "^1.0",
"phpunit/phpunit": "^7.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Nyholm\\Psr7Server\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com"
},
{
"name": "Martijn van der Ven",
"email": "martijn@vanderven.se"
}
],
"description": "Helper classes to handle PSR-7 server requests",
"homepage": "http://tnyholm.se",
"keywords": [
"psr-17",
"psr-7"
],
"time": "2018-12-05T09:09:19+00:00"
},
{
"name": "league/climate",
"version": "3.4.1",
@@ -1081,58 +1136,6 @@
],
"time": "2018-09-02T11:50:33+00:00"
},
{
"name": "nyholm/psr7-server",
"version": "0.3.0",
"source": {
"type": "git",
"url": "https://github.com/Nyholm/psr7-server.git",
"reference": "1b71a848fcb066fb805b7a9ab3f41ff65bffcde8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Nyholm/psr7-server/zipball/1b71a848fcb066fb805b7a9ab3f41ff65bffcde8",
"reference": "1b71a848fcb066fb805b7a9ab3f41ff65bffcde8",
"shasum": ""
},
"require": {
"php": "^7.1",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.0"
},
"require-dev": {
"nyholm/nsa": "^1.1",
"nyholm/psr7": "^1.0",
"phpunit/phpunit": "^7.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Nyholm\\Psr7Server\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com"
},
{
"name": "Martijn van der Ven",
"email": "martijn@vanderven.se"
}
],
"description": "Helper classes to handle PSR-7 server requests",
"homepage": "http://tnyholm.se",
"keywords": [
"psr-17",
"psr-7"
],
"time": "2018-09-02T10:41:28+00:00"
},
{
"name": "phive/twig-extensions-deferred",
"version": "v1.0.2",
@@ -1767,16 +1770,16 @@
},
{
"name": "symfony/console",
"version": "v4.2.1",
"version": "v4.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "4dff24e5d01e713818805c1862d2e3f901ee7dd0"
"reference": "1f0ad51dfde4da8a6070f06adc58b4e37cbb37a4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/4dff24e5d01e713818805c1862d2e3f901ee7dd0",
"reference": "4dff24e5d01e713818805c1862d2e3f901ee7dd0",
"url": "https://api.github.com/repos/symfony/console/zipball/1f0ad51dfde4da8a6070f06adc58b4e37cbb37a4",
"reference": "1f0ad51dfde4da8a6070f06adc58b4e37cbb37a4",
"shasum": ""
},
"require": {
@@ -1788,6 +1791,9 @@
"symfony/dependency-injection": "<3.4",
"symfony/process": "<3.3"
},
"provide": {
"psr/log-implementation": "1.0"
},
"require-dev": {
"psr/log": "~1.0",
"symfony/config": "~3.4|~4.0",
@@ -1797,7 +1803,7 @@
"symfony/process": "~3.4|~4.0"
},
"suggest": {
"psr/log-implementation": "For using the console logger",
"psr/log": "For using the console logger",
"symfony/event-dispatcher": "",
"symfony/lock": "",
"symfony/process": ""
@@ -1832,7 +1838,7 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
"time": "2018-11-27T07:40:44+00:00"
"time": "2019-01-25T14:35:16+00:00"
},
{
"name": "symfony/contracts",
@@ -1904,16 +1910,16 @@
},
{
"name": "symfony/event-dispatcher",
"version": "v4.2.1",
"version": "v4.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
"reference": "921f49c3158a276d27c0d770a5a347a3b718b328"
"reference": "bd09ad265cd50b2b9d09d65ce6aba2d29bc81fe1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/921f49c3158a276d27c0d770a5a347a3b718b328",
"reference": "921f49c3158a276d27c0d770a5a347a3b718b328",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/bd09ad265cd50b2b9d09d65ce6aba2d29bc81fe1",
"reference": "bd09ad265cd50b2b9d09d65ce6aba2d29bc81fe1",
"shasum": ""
},
"require": {
@@ -1964,7 +1970,7 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
"time": "2018-12-01T08:52:38+00:00"
"time": "2019-01-16T20:35:37+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -2254,16 +2260,16 @@
},
{
"name": "symfony/process",
"version": "v4.2.1",
"version": "v4.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "2b341009ccec76837a7f46f59641b431e4d4c2b0"
"reference": "6c05edb11fbeff9e2b324b4270ecb17911a8b7ad"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/2b341009ccec76837a7f46f59641b431e4d4c2b0",
"reference": "2b341009ccec76837a7f46f59641b431e4d4c2b0",
"url": "https://api.github.com/repos/symfony/process/zipball/6c05edb11fbeff9e2b324b4270ecb17911a8b7ad",
"reference": "6c05edb11fbeff9e2b324b4270ecb17911a8b7ad",
"shasum": ""
},
"require": {
@@ -2299,20 +2305,20 @@
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
"time": "2018-11-20T16:22:05+00:00"
"time": "2019-01-24T22:05:03+00:00"
},
{
"name": "symfony/var-dumper",
"version": "v4.2.1",
"version": "v4.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "db61258540350725f4beb6b84006e32398acd120"
"reference": "223bda89f9be41cf7033eeaf11bc61a280489c17"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/db61258540350725f4beb6b84006e32398acd120",
"reference": "db61258540350725f4beb6b84006e32398acd120",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/223bda89f9be41cf7033eeaf11bc61a280489c17",
"reference": "223bda89f9be41cf7033eeaf11bc61a280489c17",
"shasum": ""
},
"require": {
@@ -2326,6 +2332,7 @@
},
"require-dev": {
"ext-iconv": "*",
"symfony/console": "~3.4|~4.0",
"symfony/process": "~3.4|~4.0",
"twig/twig": "~1.34|~2.4"
},
@@ -2374,20 +2381,20 @@
"debug",
"dump"
],
"time": "2018-11-25T12:50:42+00:00"
"time": "2019-01-30T11:44:30+00:00"
},
{
"name": "symfony/yaml",
"version": "v4.2.1",
"version": "v4.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
"reference": "c41175c801e3edfda90f32e292619d10c27103d7"
"reference": "d461670ee145092b7e2a56c1da7118f19cadadb0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/c41175c801e3edfda90f32e292619d10c27103d7",
"reference": "c41175c801e3edfda90f32e292619d10c27103d7",
"url": "https://api.github.com/repos/symfony/yaml/zipball/d461670ee145092b7e2a56c1da7118f19cadadb0",
"reference": "d461670ee145092b7e2a56c1da7118f19cadadb0",
"shasum": ""
},
"require": {
@@ -2433,35 +2440,35 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
"time": "2018-11-11T19:52:12+00:00"
"time": "2019-01-16T20:35:37+00:00"
},
{
"name": "twig/twig",
"version": "v1.35.4",
"version": "v1.37.1",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "7e081e98378a1e78c29cc9eba4aefa5d78a05d2a"
"reference": "66be9366c76cbf23e82e7171d47cbfa54a057a62"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/7e081e98378a1e78c29cc9eba4aefa5d78a05d2a",
"reference": "7e081e98378a1e78c29cc9eba4aefa5d78a05d2a",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/66be9366c76cbf23e82e7171d47cbfa54a057a62",
"reference": "66be9366c76cbf23e82e7171d47cbfa54a057a62",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"php": ">=5.4.0",
"symfony/polyfill-ctype": "^1.8"
},
"require-dev": {
"psr/container": "^1.0",
"symfony/debug": "^2.7",
"symfony/phpunit-bridge": "^3.3"
"symfony/phpunit-bridge": "^3.4.19|^4.1.8"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.35-dev"
"dev-master": "1.37-dev"
}
},
"autoload": {
@@ -2499,7 +2506,7 @@
"keywords": [
"templating"
],
"time": "2018-07-13T07:12:17+00:00"
"time": "2019-01-14T14:59:29+00:00"
},
{
"name": "willdurand/negotiation",
@@ -2557,16 +2564,16 @@
"packages-dev": [
{
"name": "behat/gherkin",
"version": "v4.5.1",
"version": "v4.6.0",
"source": {
"type": "git",
"url": "https://github.com/Behat/Gherkin.git",
"reference": "74ac03d52c5e23ad8abd5c5cce4ab0e8dc1b530a"
"reference": "ab0a02ea14893860bca00f225f5621d351a3ad07"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Behat/Gherkin/zipball/74ac03d52c5e23ad8abd5c5cce4ab0e8dc1b530a",
"reference": "74ac03d52c5e23ad8abd5c5cce4ab0e8dc1b530a",
"url": "https://api.github.com/repos/Behat/Gherkin/zipball/ab0a02ea14893860bca00f225f5621d351a3ad07",
"reference": "ab0a02ea14893860bca00f225f5621d351a3ad07",
"shasum": ""
},
"require": {
@@ -2574,8 +2581,8 @@
},
"require-dev": {
"phpunit/phpunit": "~4.5|~5",
"symfony/phpunit-bridge": "~2.7|~3",
"symfony/yaml": "~2.3|~3"
"symfony/phpunit-bridge": "~2.7|~3|~4",
"symfony/yaml": "~2.3|~3|~4"
},
"suggest": {
"symfony/yaml": "If you want to parse features, represented in YAML files"
@@ -2612,20 +2619,20 @@
"gherkin",
"parser"
],
"time": "2017-08-30T11:04:43+00:00"
"time": "2019-01-16T14:22:17+00:00"
},
{
"name": "codeception/codeception",
"version": "2.5.1",
"version": "2.5.3",
"source": {
"type": "git",
"url": "https://github.com/Codeception/Codeception.git",
"reference": "e0a658c64e98811a6fd4f6aa7c3222e0609066a9"
"reference": "19f0fe845c0af5af2a6c094dc0df3a178a3fd5b0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Codeception/Codeception/zipball/e0a658c64e98811a6fd4f6aa7c3222e0609066a9",
"reference": "e0a658c64e98811a6fd4f6aa7c3222e0609066a9",
"url": "https://api.github.com/repos/Codeception/Codeception/zipball/19f0fe845c0af5af2a6c094dc0df3a178a3fd5b0",
"reference": "19f0fe845c0af5af2a6c094dc0df3a178a3fd5b0",
"shasum": ""
},
"require": {
@@ -2657,7 +2664,7 @@
"predis/predis": "^1.0",
"squizlabs/php_codesniffer": "~2.0",
"symfony/process": ">=2.7 <5.0",
"vlucas/phpdotenv": "^2.4.0"
"vlucas/phpdotenv": "^3.0"
},
"suggest": {
"aws/aws-sdk-php": "For using AWS Auth in REST module and Queue module",
@@ -2704,20 +2711,20 @@
"functional testing",
"unit testing"
],
"time": "2018-10-29T21:23:19+00:00"
"time": "2019-02-02T15:39:58+00:00"
},
{
"name": "codeception/phpunit-wrapper",
"version": "7.5.0",
"version": "7.6.1",
"source": {
"type": "git",
"url": "https://github.com/Codeception/phpunit-wrapper.git",
"reference": "c4272e2d140ff408c8a93fa9aec659a8621cbd58"
"reference": "ed4b12beb167dc2ecea293b4f6df6c20ce8d280f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/c4272e2d140ff408c8a93fa9aec659a8621cbd58",
"reference": "c4272e2d140ff408c8a93fa9aec659a8621cbd58",
"url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/ed4b12beb167dc2ecea293b4f6df6c20ce8d280f",
"reference": "ed4b12beb167dc2ecea293b4f6df6c20ce8d280f",
"shasum": ""
},
"require": {
@@ -2747,7 +2754,7 @@
}
],
"description": "PHPUnit classes used by Codeception",
"time": "2018-12-07T10:48:17+00:00"
"time": "2019-01-13T10:34:39+00:00"
},
{
"name": "codeception/stub",
@@ -3678,16 +3685,16 @@
},
{
"name": "phpunit/phpunit",
"version": "7.5.1",
"version": "7.5.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "c23d78776ad415d5506e0679723cb461d71f488f"
"reference": "2cb759721e53bc05f56487f628c6b9fbb6c18746"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c23d78776ad415d5506e0679723cb461d71f488f",
"reference": "c23d78776ad415d5506e0679723cb461d71f488f",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2cb759721e53bc05f56487f628c6b9fbb6c18746",
"reference": "2cb759721e53bc05f56487f628c6b9fbb6c18746",
"shasum": ""
},
"require": {
@@ -3758,7 +3765,7 @@
"testing",
"xunit"
],
"time": "2018-12-12T07:20:32+00:00"
"time": "2019-02-01T05:24:07+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
@@ -3871,23 +3878,23 @@
},
{
"name": "sebastian/diff",
"version": "3.0.1",
"version": "3.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
"reference": "366541b989927187c4ca70490a35615d3fef2dce"
"reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/366541b989927187c4ca70490a35615d3fef2dce",
"reference": "366541b989927187c4ca70490a35615d3fef2dce",
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
"reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
"shasum": ""
},
"require": {
"php": "^7.1"
},
"require-dev": {
"phpunit/phpunit": "^7.0",
"phpunit/phpunit": "^7.5 || ^8.0",
"symfony/process": "^2 || ^3.3 || ^4"
},
"type": "library",
@@ -3923,32 +3930,35 @@
"unidiff",
"unified diff"
],
"time": "2018-06-10T07:54:39+00:00"
"time": "2019-02-04T06:01:07+00:00"
},
{
"name": "sebastian/environment",
"version": "4.0.1",
"version": "4.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
"reference": "febd209a219cea7b56ad799b30ebbea34b71eb8f"
"reference": "6fda8ce1974b62b14935adc02a9ed38252eca656"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/febd209a219cea7b56ad799b30ebbea34b71eb8f",
"reference": "febd209a219cea7b56ad799b30ebbea34b71eb8f",
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6fda8ce1974b62b14935adc02a9ed38252eca656",
"reference": "6fda8ce1974b62b14935adc02a9ed38252eca656",
"shasum": ""
},
"require": {
"php": "^7.1"
},
"require-dev": {
"phpunit/phpunit": "^7.4"
"phpunit/phpunit": "^7.5"
},
"suggest": {
"ext-posix": "*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "4.0-dev"
"dev-master": "4.1-dev"
}
},
"autoload": {
@@ -3973,7 +3983,7 @@
"environment",
"hhvm"
],
"time": "2018-11-25T09:31:21+00:00"
"time": "2019-02-01T05:27:49+00:00"
},
{
"name": "sebastian/exporter",
@@ -4325,16 +4335,16 @@
},
{
"name": "symfony/browser-kit",
"version": "v4.2.1",
"version": "v4.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/browser-kit.git",
"reference": "db7e59fec9c82d45e745eb500e6ede2d96f4a6e9"
"reference": "ee4462581eb54bf34b746e4a5d522a4f21620160"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/browser-kit/zipball/db7e59fec9c82d45e745eb500e6ede2d96f4a6e9",
"reference": "db7e59fec9c82d45e745eb500e6ede2d96f4a6e9",
"url": "https://api.github.com/repos/symfony/browser-kit/zipball/ee4462581eb54bf34b746e4a5d522a4f21620160",
"reference": "ee4462581eb54bf34b746e4a5d522a4f21620160",
"shasum": ""
},
"require": {
@@ -4378,20 +4388,20 @@
],
"description": "Symfony BrowserKit Component",
"homepage": "https://symfony.com",
"time": "2018-11-26T11:49:31+00:00"
"time": "2019-01-16T21:31:25+00:00"
},
{
"name": "symfony/css-selector",
"version": "v4.2.1",
"version": "v4.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
"reference": "aa9fa526ba1b2ec087ffdfb32753803d999fcfcd"
"reference": "48eddf66950fa57996e1be4a55916d65c10c604a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/aa9fa526ba1b2ec087ffdfb32753803d999fcfcd",
"reference": "aa9fa526ba1b2ec087ffdfb32753803d999fcfcd",
"url": "https://api.github.com/repos/symfony/css-selector/zipball/48eddf66950fa57996e1be4a55916d65c10c604a",
"reference": "48eddf66950fa57996e1be4a55916d65c10c604a",
"shasum": ""
},
"require": {
@@ -4431,20 +4441,20 @@
],
"description": "Symfony CssSelector Component",
"homepage": "https://symfony.com",
"time": "2018-11-11T19:52:12+00:00"
"time": "2019-01-16T20:31:39+00:00"
},
{
"name": "symfony/dom-crawler",
"version": "v4.2.1",
"version": "v4.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
"reference": "7438a32108fdd555295f443605d6de2cce473159"
"reference": "d8476760b04cdf7b499c8718aa437c20a9155103"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/7438a32108fdd555295f443605d6de2cce473159",
"reference": "7438a32108fdd555295f443605d6de2cce473159",
"url": "https://api.github.com/repos/symfony/dom-crawler/zipball/d8476760b04cdf7b499c8718aa437c20a9155103",
"reference": "d8476760b04cdf7b499c8718aa437c20a9155103",
"shasum": ""
},
"require": {
@@ -4488,20 +4498,20 @@
],
"description": "Symfony DomCrawler Component",
"homepage": "https://symfony.com",
"time": "2018-11-26T10:55:26+00:00"
"time": "2019-01-16T20:35:37+00:00"
},
{
"name": "symfony/finder",
"version": "v4.2.1",
"version": "v4.2.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "e53d477d7b5c4982d0e1bfd2298dbee63d01441d"
"reference": "ef71816cbb264988bb57fe6a73f610888b9aa70c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/e53d477d7b5c4982d0e1bfd2298dbee63d01441d",
"reference": "e53d477d7b5c4982d0e1bfd2298dbee63d01441d",
"url": "https://api.github.com/repos/symfony/finder/zipball/ef71816cbb264988bb57fe6a73f610888b9aa70c",
"reference": "ef71816cbb264988bb57fe6a73f610888b9aa70c",
"shasum": ""
},
"require": {
@@ -4537,7 +4547,7 @@
],
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
"time": "2018-11-11T19:52:12+00:00"
"time": "2019-01-16T20:35:37+00:00"
},
{
"name": "theseer/tokenizer",
@@ -4627,20 +4637,21 @@
},
{
"name": "webmozart/assert",
"version": "1.3.0",
"version": "1.4.0",
"source": {
"type": "git",
"url": "https://github.com/webmozart/assert.git",
"reference": "0df1908962e7a3071564e857d86874dad1ef204a"
"reference": "83e253c8e0be5b0257b881e1827274667c5c17a9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a",
"reference": "0df1908962e7a3071564e857d86874dad1ef204a",
"url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9",
"reference": "83e253c8e0be5b0257b881e1827274667c5c17a9",
"shasum": ""
},
"require": {
"php": "^5.3.3 || ^7.0"
"php": "^5.3.3 || ^7.0",
"symfony/polyfill-ctype": "^1.8"
},
"require-dev": {
"phpunit/phpunit": "^4.6",
@@ -4673,7 +4684,7 @@
"check",
"validate"
],
"time": "2018-01-29T19:49:41+00:00"
"time": "2018-12-25T11:19:39+00:00"
}
],
"aliases": [],

View File

@@ -1341,6 +1341,12 @@ form:
label: PLUGIN_ADMIN.CUSTOM_BASE_URL
help: PLUGIN_ADMIN.CUSTOM_BASE_URL_HELP
accounts.type:
type: hidden
accounts.storage:
type: hidden
strict_mode.yaml_compat:
type: toggle
label: PLUGIN_ADMIN.STRICT_YAML_COMPAT

View File

@@ -4,122 +4,122 @@ form:
fields:
info:
type: userinfo
size: large
info:
type: userinfo
size: large
avatar:
type: file
size: large
destination: 'user://accounts/avatars'
multiple: false
random_name: true
avatar:
type: file
size: large
destination: 'user://accounts/avatars'
multiple: false
random_name: true
content:
type: section
title: PLUGIN_ADMIN.ACCOUNT
underline: true
content:
type: section
title: PLUGIN_ADMIN.ACCOUNT
underline: true
username:
type: text
size: large
label: PLUGIN_ADMIN.USERNAME
disabled: true
readonly: true
username:
type: text
size: large
label: PLUGIN_ADMIN.USERNAME
disabled: true
readonly: true
email:
type: email
size: large
label: PLUGIN_ADMIN.EMAIL
validate:
type: email
message: PLUGIN_ADMIN.EMAIL_VALIDATION_MESSAGE
required: true
email:
type: email
size: large
label: PLUGIN_ADMIN.EMAIL
validate:
type: email
message: PLUGIN_ADMIN.EMAIL_VALIDATION_MESSAGE
required: true
password:
type: password
size: large
label: PLUGIN_ADMIN.PASSWORD
autocomplete: new-password
validate:
required: false
message: PLUGIN_ADMIN.PASSWORD_VALIDATION_MESSAGE
config-pattern@: system.pwd_regex
password:
type: password
size: large
label: PLUGIN_ADMIN.PASSWORD
autocomplete: new-password
validate:
required: false
message: PLUGIN_ADMIN.PASSWORD_VALIDATION_MESSAGE
config-pattern@: system.pwd_regex
fullname:
type: text
size: large
label: PLUGIN_ADMIN.FULL_NAME
validate:
required: true
fullname:
type: text
size: large
label: PLUGIN_ADMIN.FULL_NAME
validate:
required: true
title:
type: text
size: large
label: PLUGIN_ADMIN.TITLE
title:
type: text
size: large
label: PLUGIN_ADMIN.TITLE
language:
type: select
label: PLUGIN_ADMIN.LANGUAGE
size: medium
classes: fancy
data-options@: '\Grav\Plugin\Admin\Admin::adminLanguages'
default: 'en'
help: PLUGIN_ADMIN.LANGUAGE_HELP
language:
type: select
label: PLUGIN_ADMIN.LANGUAGE
size: medium
classes: fancy
data-options@: '\Grav\Plugin\Admin\Admin::adminLanguages'
default: 'en'
help: PLUGIN_ADMIN.LANGUAGE_HELP
twofa_check:
type: conditional
condition: config.plugins.admin.twofa_enabled
twofa_check:
type: conditional
condition: config.plugins.admin.twofa_enabled
fields:
fields:
twofa:
title: PLUGIN_ADMIN.2FA_TITLE
type: section
underline: true
twofa:
title: PLUGIN_ADMIN.2FA_TITLE
type: section
underline: true
twofa_enabled:
type: toggle
label: PLUGIN_ADMIN.2FA_ENABLED
classes: twofa-toggle
highlight: 1
default: 0
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
twofa_enabled:
type: toggle
label: PLUGIN_ADMIN.2FA_ENABLED
classes: twofa-toggle
highlight: 1
default: 0
options:
1: PLUGIN_ADMIN.YES
0: PLUGIN_ADMIN.NO
validate:
type: bool
twofa_secret:
type: 2fa_secret
outerclasses: 'twofa-secret'
markdown: true
label: PLUGIN_ADMIN.2FA_SECRET
sublabel: PLUGIN_ADMIN.2FA_SECRET_HELP
twofa_secret:
type: 2fa_secret
outerclasses: 'twofa-secret'
markdown: true
label: PLUGIN_ADMIN.2FA_SECRET
sublabel: PLUGIN_ADMIN.2FA_SECRET_HELP
security:
title: PLUGIN_ADMIN.ACCESS_LEVELS
type: section
security: admin.super
underline: true
security:
security@: admin.super
title: PLUGIN_ADMIN.ACCESS_LEVELS
type: section
underline: true
fields:
groups:
type: select
multiple: true
size: large
label: PLUGIN_ADMIN.GROUPS
data-options@: '\Grav\Common\User\Group::groupNames'
classes: fancy
help: PLUGIN_ADMIN.GROUPS_HELP
validate:
type: commalist
fields:
groups:
type: select
multiple: true
size: large
label: PLUGIN_ADMIN.GROUPS
data-options@: '\Grav\Common\User\Group::groupNames'
classes: fancy
help: PLUGIN_ADMIN.GROUPS_HELP
validate:
type: commalist
access:
type: permissions
label: PLUGIN_ADMIN.PERMISSIONS
ignore_empty: true
validate:
type: array
access:
type: permissions
label: PLUGIN_ADMIN.PERMISSIONS
ignore_empty: true
validate:
type: array

View File

@@ -0,0 +1,19 @@
title: Accounts
description: User Accounts
type: flex-objects
extends@: 'user/account'
config:
admin:
list:
fields:
username:
link: edit
email:
title:
options:
per_page: 20
order:
by: username
dir: asc

View File

@@ -156,6 +156,10 @@ gpm:
verify_peer: true # Sometimes on some systems (Windows most commonly) GPM is unable to connect because the SSL certificate cannot be verified. Disabling this setting might help.
official_gpm_only: true # By default GPM direct-install will only allow URLs via the official GPM proxy to ensure security
accounts:
type: data # Account type: data or flex
storage: file # Flex storage type: file or folder
strict_mode:
yaml_compat: true # Grav 1.5+: Enables YAML backwards compatibility
twig_compat: true # Grav 1.5+: Enables deprecated Twig autoescape setting (autoescape: false)

View File

@@ -1,14 +1,14 @@
<?php
/**
* @package Grav.Core
* @package Grav\Core
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
// Some standard defines
define('GRAV', true);
define('GRAV_VERSION', '1.6.0-beta.7');
define('GRAV_VERSION', '1.6.0-rc.2');
define('GRAV_TESTING', true);
define('DS', '/');

17
system/install.php Normal file
View File

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

View File

@@ -1,19 +1,6 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: |
---
العنوان: %1$s
---
# خطأ: مادة أمامية غير صحيحة
مسار: '%2$s'
**%3$s**
, , ,
%4$s
, , ,
FRONTMATTER_ERROR_PAGE: "---\nالعنوان: %1$s\n---\n# خطأ: مادة أمامية غير صحيحة\n\nمسار: '%2$s'\n\n**%3$s**\n\n, , ,\n\n%4$s\n, , ,"
NICETIME:
NO_DATE_PROVIDED: لم يتم تقديم التاريخ
BAD_DATE: تاريخ خاطئ
@@ -35,7 +22,7 @@ GRAV:
YR: سنة
DEC: عقد
SECOND_PLURAL: ثواني
MINUTE_PLURAL: ‮دقائق
MINUTE_PLURAL: '‮دقائق'
HOUR_PLURAL: ساعات
DAY_PLURAL: أيام
WEEK_PLURAL: أسابيع
@@ -50,27 +37,27 @@ GRAV:
YR_PLURAL: سنوات
DEC_PLURAL: عقود
FORM:
VALIDATION_FAIL: '<b>فشل التحقق من صحة:</b>'
VALIDATION_FAIL: <b>فشل التحقق من صحة:</b>
INVALID_INPUT: إدخال غير صحيح في
MISSING_REQUIRED_FIELD: 'حقل مطلوب مفقود:'
MONTHS_OF_THE_YEAR:
- كانون الثاني
- شباط
- آذار/ مارس
- نيسان
- أيار
- حزيران
- تموز
- آب
- أيلول
- تشرين الأول
- تشرين الثاني
- كانون الأول
- 'كانون الثاني'
- 'شباط'
- 'آذار/ مارس'
- 'نيسان'
- 'أيار'
- 'حزيران'
- 'تموز'
- 'آب'
- 'أيلول'
- 'تشرين الأول'
- 'تشرين الثاني'
- 'كانون الأول'
DAYS_OF_THE_WEEK:
- الاثنين
- الثلاثاء
- الأربعاء
- الخميس
- الجمعة
- السبت
- الأحد
- 'الاثنين'
- 'الثلاثاء'
- 'الأربعاء'
- 'الخميس'
- 'الجمعة'
- 'السبت'
- 'الأحد'

View File

@@ -1,6 +1,5 @@
---
GRAV:
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```"
NICETIME:
NO_DATE_PROVIDED: Не е въведена дата
BAD_DATE: Невалидна дата

View File

@@ -1,24 +1,11 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: |
---
title: %1$s
---
# S'ha produït un error: Frontmatter invàlid
Ruta: `%2$s`
**%3$s**
```
%4$s
```
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# S'ha produït un error: Frontmatter invàlid\n\nRuta: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
NICETIME:
NO_DATE_PROVIDED: "No s'ha proporcionat data"
NO_DATE_PROVIDED: No s'ha proporcionat data
BAD_DATE: Data invàlida
AGO: abans
FROM_NOW: "des d'ara"
FROM_NOW: des d'ara
SECOND: segon
MINUTE: minut
HOUR: hora
@@ -28,7 +15,6 @@ GRAV:
YEAR: any
DECADE: dècada
SEC: s
MIN: min
HR: h
WK: setm.
MO: m.
@@ -50,27 +36,27 @@ GRAV:
YR_PLURAL: anys
DEC_PLURAL: dèc.
FORM:
VALIDATION_FAIL: '<b>Ha fallat la validació:</b>'
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
- 'Gener'
- 'Febrer'
- 'Març'
- 'Abril'
- 'Maig'
- 'Juny'
- 'Juliol'
- 'Agost'
- 'Setembre'
- 'Octubre'
- 'Novembre'
- 'Desembre'
DAYS_OF_THE_WEEK:
- Dilluns
- Dimarts
- Dimecres
- Dijous
- Divendres
- Dissabte
- Diumenge
- 'Dilluns'
- 'Dimarts'
- 'Dimecres'
- 'Dijous'
- 'Divendres'
- 'Dissabte'
- 'Diumenge'

View File

@@ -1,6 +1,49 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Chyba: Chybný 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'
INFLECTOR_UNCOUNTABLE:
- 'vybavení'
- 'informace'
@@ -26,6 +69,7 @@ GRAV:
BAD_DATE: Chybné datum
AGO: zpět
FROM_NOW: od teď
JUST_NOW: právě teď
SECOND: sekunda
MINUTE: minuta
HOUR: hodina
@@ -81,3 +125,20 @@ GRAV:
- 'pátek'
- 'sobota'
- 'neděle'
CRON:
EVERY: každý
EVERY_HOUR: každou hodinu
EVERY_MINUTE: každou minutu
EVERY_DAY_OF_WEEK: každý den v týdnu
EVERY_DAY_OF_MONTH: každý den v měsíci
EVERY_MONTH: každý měsíc
TEXT_PERIOD: Every <b />
TEXT_MINS: ' at <b /> minute(s) past the hour'
TEXT_TIME: ' at <b />:<b />'
TEXT_DOW: ' on <b />'
TEXT_MONTH: ' of <b />'
TEXT_DOM: ' on <b />'
ERROR1: Tag %s není podporován!
ERROR2: Chybný počet prvků
ERROR3: jquery_element musí být nastaven v nastaveních pro jqCron
ERROR4: Nerozpoznaný výraz

View File

@@ -15,7 +15,6 @@ GRAV:
YEAR: år
DECADE: årti
SEC: sek
MIN: min
HR: t
WK: u
MO: md
@@ -41,23 +40,23 @@ GRAV:
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'
- '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'
- 'tirsdag'
- 'onsdag'
- 'torsdag'
- 'fredag'
- 'lørdag'
- 'søndag'

View File

@@ -1,15 +1,58 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n# Fehler: Frontmatter enthält Fehler\n\nPfad: `%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': '\1ice'
'/(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': '\1ies'
'/(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\2ves'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- 'equipment'
- 'Ausstattung'
- 'Informationen'
- 'Reis'
- 'Geld'
- 'species'
- 'series'
- 'fish'
- 'sheep'
- 'Arten'
- 'Serie'
- 'Fisch'
- 'Schaf'
INFLECTOR_IRREGULAR:
'person': 'Personen'
'man': 'Menschen'
@@ -26,6 +69,7 @@ GRAV:
BAD_DATE: Falsches Datum
AGO: her
FROM_NOW: ab jetzt
JUST_NOW: jetzt gerade
SECOND: Sekunde
MINUTE: Minute
HOUR: Stunde
@@ -81,3 +125,20 @@ GRAV:
- 'Freitag'
- 'Samstag'
- 'Sonntag'
CRON:
EVERY: jede
EVERY_HOUR: jede Stunde
EVERY_MINUTE: Jede Minute
EVERY_DAY_OF_WEEK: jeden Tag der Woche
EVERY_DAY_OF_MONTH: jeden Tag des Monats
EVERY_MONTH: jeden Monat
TEXT_PERIOD: Alle <b />
TEXT_MINS: ' bei <b /> Minuten nach der vollen Stunde (n)'
TEXT_TIME: ' bei <b />:<b />'
TEXT_DOW: ' auf <b />'
TEXT_MONTH: ' von <b />'
TEXT_DOM: ' auf <b />'
ERROR1: Der Tag %s wird nicht unterstützt!
ERROR2: Ungültige Anzahl von Elementen
ERROR3: jquery_element sollte in den jqCron Einstellungen gesetzt werden
ERROR4: Unbekannter Ausdruck

View File

@@ -99,6 +99,8 @@ GRAV:
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']
YES: "Yes"
NO: "No"
CRON:
EVERY: every
EVERY_HOUR: every hour

View File

@@ -23,6 +23,7 @@ GRAV:
BAD_DATE: Fecha errónea
AGO: antes
FROM_NOW: desde ahora
JUST_NOW: justo ahora
SECOND: segundo
MINUTE: minuto
HOUR: hora
@@ -32,12 +33,10 @@ GRAV:
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
@@ -47,7 +46,6 @@ GRAV:
YEAR_PLURAL: años
DECADE_PLURAL: décadas
SEC_PLURAL: segs
MIN_PLURAL: mins
HR_PLURAL: hs
WK_PLURAL: sem
MO_PLURAL: mes
@@ -78,3 +76,20 @@ GRAV:
- 'Viernes'
- 'Sábado'
- 'Domingo'
CRON:
EVERY: cada
EVERY_HOUR: cada hora
EVERY_MINUTE: cada minuto
EVERY_DAY_OF_WEEK: cada día de la semana
EVERY_DAY_OF_MONTH: cada día del mes
EVERY_MONTH: cada mes
TEXT_PERIOD: Cada <b />
TEXT_MINS: ' a <b /> minuto(s) despues de la hora'
TEXT_TIME: ' a <b />:<b />'
TEXT_DOW: ' en <b />'
TEXT_MONTH: ' de<b />'
TEXT_DOM: ' en<b />'
ERROR1: La etiqueta %s no está soportada!
ERROR2: El número de elementos es erroneo
ERROR3: El jquery_element debería establecerse en la configuración del jqCron
ERROR4: Expresión no reconocida

View File

@@ -15,7 +15,6 @@ GRAV:
YEAR: aasta
DECADE: 10 aastat
SEC: sek
MIN: min
HR: t
WK: näd
MO: k.

View File

@@ -15,7 +15,6 @@ GRAV:
YEAR: urtea
DECADE: hamarkada
SEC: seg
MIN: min
HR: h
WK: ast
MO: hil

View File

@@ -33,7 +33,6 @@ GRAV:
MIN_PLURAL: دقیقه
HR_PLURAL: ساعت
WK_PLURAL: هفته
MO_PLURAL: mos
YR_PLURAL: سال
DEC_PLURAL: دهه
FORM:

View File

@@ -1,11 +1,74 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\notsikko: %1$s\n---\n\n# Virhe: Virheellinen Frontmatter\n\nPolku: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1zes'
'/^(ox)$/i': '\1en'
'/([m|l])ouse$/i': '\1ice'
'/(matr|vert|ind)ix|ex$/i': '\1ices'
'/(x|ch|ss|sh)$/i': '\1es'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([^aeiouy]|qu)y$/i': '\1ies'
'/(hive)$/i': '\1s'
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
'/sis$/i': 'ses'
'/([ti])um$/i': '\1a'
'/(buffal|tomat)o$/i': '\1oes'
'/(bu)s$/i': '\1ses'
'/(alias|status)/i': '\1es'
'/(octop|vir)us$/i': '\1i'
'/(ax|test)is$/i': '\1es'
'/s$/i': 's'
'/$/': 's'
INFLECTOR_SINGULAR:
'/(quiz)zes$/i': '\1'
'/(matr)ices$/i': '\1ix'
'/(vert|ind)ices$/i': '\1ex'
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/([octop|vir])i$/i': '\1us'
'/(cris|ax|test)es$/i': '\1is'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/([m|l])ice$/i': '\1ouse'
'/(x|ch|ss|sh)es$/i': '\1'
'/(m)ovies$/i': '\1ovie'
'/(s)eries$/i': '\1eries'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([lr])ves$/i': '\1f'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
'/([^f])ves$/i': '\1fe'
'/(^analy)ses$/i': '\1sis'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- 'equipment'
- 'information'
- 'riisi'
- 'raha'
- 'lajit'
- 'series'
- 'kala'
- 'lammas'
INFLECTOR_IRREGULAR:
'person': 'ihmiset'
'man': 'miehet'
'child': 'lapset'
'sex': 'sukupuoli'
INFLECTOR_ORDINALS:
'default': '.'
'first': '.'
'second': '.'
'third': '.'
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
JUST_NOW: juuri nyt
SECOND: sekuntti
MINUTE: minuutti
HOUR: tunti
@@ -61,3 +124,11 @@ GRAV:
- 'Perjantai'
- 'Lauantai'
- 'Sunnuntai'
CRON:
EVERY: joka
EVERY_HOUR: joka tunti
EVERY_MINUTE: joka minuutti
EVERY_DAY_OF_WEEK: viikon jokaisena päivänä
EVERY_DAY_OF_MONTH: kuukauden jokaisena päivänä
EVERY_MONTH: joka kuukausi
TEXT_PERIOD: Joka <b />

View File

@@ -1,87 +1,52 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: |
---
title: %1$s
---
# Erreur : Frontmatter invalide
Path: `%2$s`
**%3$s**
```
%4$s
```
FRONTMATTER_ERROR_PAGE: "---\ntitre: %1$s\n---\n\n# Erreur : Frontmatter invalide\n\nChemin: `%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
'/(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': '\1es'
'/(ax|test)is$/i': '\1s'
'/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'
'/(quiz)zes$/i': '\1'
'/(alias|status)es$/i': '\1'
'/([octop|vir])i$/i': '\1us'
INFLECTOR_UNCOUNTABLE:
- équipement
- informations
- riz
- argent
- espèces
- séries
- poisson
- mouton
- 'équipement'
- 'information'
- 'riz'
- 'argent'
- 'espèces'
- 'séries'
- 'poisson'
- 'mouton'
INFLECTOR_IRREGULAR:
person: personnes
man: hommes
child: enfants
sex: sexes
move: déplacements
'person': 'personnes'
'man': 'hommes'
'child': 'enfants'
'sex': 'sexes'
'move': 'déplacements'
INFLECTOR_ORDINALS:
default: ème
first: er
second: ème
third: ème
'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
JUST_NOW: à l'instant
SECOND: seconde
MINUTE: minute
HOUR: heure
@@ -113,27 +78,44 @@ GRAV:
YR_PLURAL: a
DEC_PLURAL: décs
FORM:
VALIDATION_FAIL: '<b>La validation a échoué :</b>'
VALIDATION_FAIL: <b>La validation a échoué :</b>
INVALID_INPUT: Saisie non valide
MISSING_REQUIRED_FIELD: 'Champ obligatoire manquant :'
MONTHS_OF_THE_YEAR:
- Janvier
- Février
- Mars
- Avril
- Mai
- Juin
- Juillet
- Août
- Septembre
- Octobre
- Novembre
- Décembre
- 'Janvier'
- 'Février'
- 'Mars'
- 'Avril'
- 'Mai'
- 'Juin'
- 'Juillet'
- 'Août'
- 'Septembre'
- 'Octobre'
- 'Novembre'
- 'Décembre'
DAYS_OF_THE_WEEK:
- Lundi
- Mardi
- Mercredi
- Jeudi
- Vendredi
- Samedi
- Dimanche
- 'Lundi'
- 'Mardi'
- 'Mercredi'
- 'Jeudi'
- 'Vendredi'
- 'Samedi'
- 'Dimanche'
CRON:
EVERY: chaque
EVERY_HOUR: toutes les heures
EVERY_MINUTE: chaque minute
EVERY_DAY_OF_WEEK: tous les jours de la semaine
EVERY_DAY_OF_MONTH: tous les jours du mois
EVERY_MONTH: chaque mois
TEXT_PERIOD: Chaque<b/>
TEXT_MINS: ' à <b /> minute(s) après l''heure'
TEXT_TIME: ' à<b/>:<b/>'
TEXT_DOW: ' sur <b/>'
TEXT_MONTH: ' de <b />'
TEXT_DOM: ' sur <b/>'
ERROR1: La balise %s n'est pas supportée!
ERROR2: Nombre invalide d'éléments
ERROR3: L'élément jquery_element doit être défini dans les paramètres jqCron
ERROR4: Expression non reconnue

View File

@@ -1,20 +1,20 @@
---
GRAV:
INFLECTOR_UNCOUNTABLE:
- oprema
- informacije
- riža
- novac
- vrsta
- serija
- riba
- ovca
- 'oprema'
- 'informacije'
- 'riža'
- 'novac'
- 'vrsta'
- 'serija'
- 'riba'
- 'ovca'
INFLECTOR_IRREGULAR:
person: osobe
man: ljudi
child: djeca
sex: spolovi
move: Pomakni
'person': 'osobe'
'man': 'ljudi'
'child': 'djeca'
'sex': 'spolovi'
'move': 'Pomakni'
NICETIME:
NO_DATE_PROVIDED: Datum nije upisan
BAD_DATE: Pogrešan datum
@@ -50,27 +50,27 @@ GRAV:
YR_PLURAL: g
DEC_PLURAL: des
FORM:
VALIDATION_FAIL: '<b>Validacija nije uspjela:</b>'
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
- '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
- 'Ponedjeljak'
- 'Utorak'
- 'Srijeda'
- 'Četvrtak'
- 'Petak'
- 'Subota'
- 'Nedjelja'

View File

@@ -1,49 +1,6 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ncím: %1$s\n---\n\n# Hiba: Érvénytelen Frontmatter\n\nElérési út: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1zes'
'/^(ox)$/i': '\1en'
'/([m|l])ouse$/i': '\1ice'
'/(matr|vert|ind)ix|ex$/i': '\1ices'
'/(x|ch|ss|sh)$/i': '\1es'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([^aeiouy]|qu)y$/i': '\1ies'
'/(hive)$/i': '\1s'
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
'/sis$/i': 'ses'
'/([ti])um$/i': '\1a'
'/(buffal|tomat)o$/i': '\1oes'
'/(bu)s$/i': '\1ses'
'/(alias|status)/i': '\1es'
'/(octop|vir)us$/i': '\1i'
'/(ax|test)is$/i': '\1es'
'/s$/i': 's'
'/$/': 's'
INFLECTOR_SINGULAR:
'/(quiz)zes$/i': '\1'
'/(matr)ices$/i': '\1ix'
'/(vert|ind)ices$/i': '\1ex'
'/^(ox)en/i': '\1'
'/(alias|status)es$/i': '\1'
'/([octop|vir])i$/i': '\1us'
'/(cris|ax|test)es$/i': '\1is'
'/(shoe)s$/i': '\1'
'/(o)es$/i': '\1'
'/(bus)es$/i': '\1'
'/([m|l])ice$/i': '\1ouse'
'/(x|ch|ss|sh)es$/i': '\1'
'/(m)ovies$/i': '\1ovie'
'/(s)eries$/i': '\1eries'
'/([^aeiouy]|qu)ies$/i': '\1y'
'/([lr])ves$/i': '\1f'
'/(tive)s$/i': '\1'
'/(hive)s$/i': '\1'
'/([^f])ves$/i': '\1fe'
'/(^analy)ses$/i': '\1sis'
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
'/([ti])a$/i': '\1um'
'/(n)ews$/i': '\1ews'
INFLECTOR_UNCOUNTABLE:
- 'felszerelés'
- 'információ'
@@ -69,6 +26,7 @@ GRAV:
BAD_DATE: Hibás dátum
AGO: elteltével
FROM_NOW: mostantól
JUST_NOW: épp most
SECOND: másodperc
MINUTE: perc
HOUR: óra
@@ -124,3 +82,16 @@ GRAV:
- 'péntek'
- 'szombat'
- 'vasárnap'
CRON:
EVERY: minden
EVERY_HOUR: óránként
EVERY_MINUTE: percenként
EVERY_DAY_OF_WEEK: a hét minden napján
EVERY_DAY_OF_MONTH: a hónap minden napján
EVERY_MONTH: minden hónapban
TEXT_PERIOD: Minden <b />
TEXT_MINS: '<b /> perccel az óra elteltével'
ERROR1: A %s címke nem engedélyezett!
ERROR2: Hibás elemszám
ERROR3: A jquery_element-et a jqCron beállítsokban kell meghatározni
ERROR4: Ismeretlen kifejezés

View File

@@ -1,11 +1,26 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\njudul: %1$s\n---\n\n# Error: Frontmatter Tidak Valid\n\nLokasi Path: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Error: Frontmatter tidak valid\n\nLokasi: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_UNCOUNTABLE:
- 'peralatan'
- 'informasi'
- 'nasi'
- 'uang'
- 'spesies'
- 'rangkaian'
- 'ikan'
- 'domba'
INFLECTOR_IRREGULAR:
'person': 'orang-orang'
'man': 'laki-laki'
'child': 'anak-anak'
'sex': 'jenis kelamin'
NICETIME:
NO_DATE_PROVIDED: Tanggal tidak ada
NO_DATE_PROVIDED: Tanggal tidak tersedia
BAD_DATE: Format tanggal salah
AGO: yang lalu
FROM_NOW: sejak sekarang
FROM_NOW: dari saat ini
JUST_NOW: baru saja
SECOND: detik
MINUTE: menit
HOUR: jam
@@ -17,7 +32,7 @@ GRAV:
SEC: dtk
MIN: mnt
HR: j
WK: mgg
WK: mng
MO: bln
YR: thn
DEC: desimal
@@ -61,3 +76,15 @@ GRAV:
- 'Jumat'
- 'Sabtu'
- 'Minggu'
CRON:
EVERY_DAY_OF_MONTH: pada tanggal setiap bulannya
EVERY_MONTH: setiap bulan
TEXT_PERIOD: Setiap <b />
TEXT_TIME: ' pada <b />:<b />'
TEXT_DOW: ' pada <b />'
TEXT_MONTH: ' pada <b />'
TEXT_DOM: ' pada <b />'
ERROR1: Tag %s tidak didukung!
ERROR2: Jumlah elemen tidak valid
ERROR3: jquery_element harus ditetapkan ke pengaturan jqCron
ERROR4: Ekspresi tidak dikenali

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

@@ -0,0 +1,69 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntitill: %1$s\n---\n\n# Villa: Ógilt efni á forsíðu\n\nSlóð: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_UNCOUNTABLE:
- 'equipment'
- 'upplýsingar'
- 'rice'
- 'money'
- 'species'
- 'series'
- 'fish'
- 'sheep'
NICETIME:
AGO: síðan
JUST_NOW: í þessu
SECOND: sekúndu
MINUTE: mínútu
HOUR: klukkustund
DAY: degi
WEEK: viku
MONTH: mánuði
YEAR: ári
DECADE: áratug
SEC: sek
MIN: mín
HR: klst
WK: vk
MO: mán
YR: ár
DEC: árat
SECOND_PLURAL: sekúndum
MINUTE_PLURAL: mínútum
HOUR_PLURAL: klukkustundum
DAY_PLURAL: dögum
WEEK_PLURAL: vikum
MONTH_PLURAL: mánuðum
YEAR_PLURAL: árum
DECADE_PLURAL: áratugum
SEC_PLURAL: sek
MIN_PLURAL: mín
HR_PLURAL: klst
WK_PLURAL: vik
MO_PLURAL: mán
YR_PLURAL: árum
DEC_PLURAL: árat
FORM:
VALIDATION_FAIL: <b>Sannvottun mistókst:</b>
MISSING_REQUIRED_FIELD: 'Vantar nauðsynlegan reit:'
MONTHS_OF_THE_YEAR:
- 'janúar'
- 'Febrúar'
- 'Mars'
- 'Apríl'
- 'Maí'
- 'Júní'
- 'Júlí'
- 'Ágúst'
- 'September'
- 'Október'
- 'Nóvember'
- 'Desember'
DAYS_OF_THE_WEEK:
- 'Mánudagur'
- 'Þriðjudagur'
- 'Miðvikudagur'
- 'Fimmtudagur'
- 'Föstudagur'
- 'Laugardagur'
- 'Sunnudagur'

View File

@@ -14,8 +14,6 @@ GRAV:
MONTH: mese
YEAR: anno
DECADE: decennio
SEC: sec
MIN: min
HR: ora
WK: settimana
MO: mese
@@ -37,27 +35,27 @@ GRAV:
YR_PLURAL: anni
DEC_PLURAL: decenni
FORM:
VALIDATION_FAIL: '<b>Validazione fallita:</b>'
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
- 'Gennaio'
- 'Febbraio'
- 'Marzo'
- 'Aprile'
- 'Maggio'
- 'Giugno'
- 'Luglio'
- 'Agosto'
- 'Settembre'
- 'Ottobre'
- 'Novembre'
- 'Dicembre'
DAYS_OF_THE_WEEK:
- Lunedì
- Martedì
- Mercoledì
- Giovedì
- Venerdì
- Sabato
- Domenica
- 'Lunedì'
- 'Martedì'
- 'Mercoledì'
- 'Giovedì'
- 'Venerdì'
- 'Sabato'
- 'Domenica'

View File

@@ -1,59 +1,66 @@
---
GRAV:
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:
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:
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: ['月', '火', '水', '木', '金', '土', '日']
INFLECTOR_IRREGULAR:
'person': 'みんな'
'man': '人'
'child': '子供'
'sex': '性別'
'move': '移動'
NICETIME:
NO_DATE_PROVIDED: 日付が設定されていません
BAD_DATE: 不正な日付
AGO:
SECOND:
MINUTE:
HOUR:
DAY:
WEEK:
MONTH:
YEAR:
DECADE: 10年
SEC:
MIN:
HR:
WK:
MO:
YR:
SECOND_PLURAL:
MINUTE_PLURAL:
HOUR_PLURAL:
DAY_PLURAL:
WEEK_PLURAL:
MONTH_PLURAL:
YEAR_PLURAL:
DECADE_PLURAL: 10年
SEC_PLURAL:
MIN_PLURAL:
HR_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:
- '月'
- '火'
- '水'
- '木'
- '金'
- '土'
- '日'

View File

@@ -16,17 +16,13 @@ GRAV:
MINUTE: minuut
HOUR: uur
DAY: dag
WEEK: week
MONTH: maand
YEAR: jaar
DECADE: decennium
SEC: s
MIN: min
HR: u
WK: wk
MO: ma
YR: j
DEC: dec
SECOND_PLURAL: seconden
MINUTE_PLURAL: minuten
HOUR_PLURAL: uren

View File

@@ -1,9 +1,6 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\nTittel: %1$s\n---\n\n# Feilmelding: Ugyldig Frontmatter\n\nSti: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_PLURALS:
'/(quiz)$/i': '\1zes'
'/^(ox)$/i': '\1en'
INFLECTOR_UNCOUNTABLE:
- 'utstyr'
- 'informasjon'
@@ -33,7 +30,6 @@ GRAV:
YEAR: år
DECADE: tiår
SEC: sek
MIN: min
HR: t
WK: uke
MO:

View File

@@ -15,7 +15,6 @@ GRAV:
YEAR: rok
DECADE: dekada
SEC: sek
MIN: min
HR: godz
WK: tydz
MO: m-c

View File

@@ -1,50 +1,27 @@
---
GRAV:
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'
FRONTMATTER_ERROR_PAGE: "---\nTitlu: %1$s\n---\n# Eroare: Frontmatter este invalid\n\nCalea: `%2$s`\n\n**%3$s**\n\n```\n%4$s"
INFLECTOR_UNCOUNTABLE:
- echipament
- informaţie
- orez
- bani
- specii
- serii
- peşte
- oaie
- '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
'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
JUST_NOW: chiar acum
SECOND: secundă
MINUTE: minut
HOUR: oră
@@ -53,8 +30,8 @@ GRAV:
MONTH: lună
YEAR: an
DECADE: decadă
SEC: sec
MIN: min
SEC: secunde
MIN: minute
HR: oră
WK: săpt
MO: lună
@@ -76,27 +53,44 @@ GRAV:
YR_PLURAL: ani
DEC_PLURAL: decenii
FORM:
VALIDATION_FAIL: '<b>Validare nereușită</b>'
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
- '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ă
- 'Luni'
- 'Marți'
- 'Miercuri'
- 'Joi'
- 'Vineri'
- 'Sâmbătă'
- 'Duminică'
CRON:
EVERY: la fiecare
EVERY_HOUR: la fiecare oră
EVERY_MINUTE: la fiecare minut
EVERY_DAY_OF_WEEK: fiecare zi a săptămânii
EVERY_DAY_OF_MONTH: fiecare zi a lunii
EVERY_MONTH: fiecare lună
TEXT_PERIOD: Fiecare <b />
TEXT_MINS: ' la <b /> minut(e) ale fiecărei ore'
TEXT_TIME: ' la <b />:<b />'
TEXT_DOW: ' pe <b />'
TEXT_MONTH: 'al(e) <b />'
TEXT_DOM: ' pe <b />'
ERROR1: Eticheta %s nu este acceptată!
ERROR2: Număr nevalid de elemente
ERROR3: jquery_element ar trebui setat în opțiunile jqCron
ERROR4: Expresie necunoscută

View File

@@ -1,17 +1,20 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Ошибка: недопустимое содержимое\n\nПуть: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Ошибка: недопустимое содержимое Frontmatter\n\nПуть: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
INFLECTOR_IRREGULAR:
'person': 'люди'
'man': 'человек'
'child': 'ребенок'
'sex': 'пол'
'move': 'движется'
INFLECTOR_ORDINALS:
'first': 'й'
NICETIME:
NO_DATE_PROVIDED: Дата не указана
BAD_DATE: Неверная дата
AGO: назад
FROM_NOW: теперь
JUST_NOW: только что
SECOND: секунда
MINUTE: минута
HOUR: час
@@ -67,3 +70,14 @@ GRAV:
- 'пятница'
- 'суббота'
- 'воскресенье'
CRON:
EVERY: раз в
EVERY_HOUR: раз в час
EVERY_MINUTE: раз в минуту
EVERY_DAY_OF_WEEK: каждый день недели
EVERY_DAY_OF_MONTH: каждый день недели
EVERY_MONTH: раз в месяц
ERROR1: Тег %s не поддерживается!
ERROR2: Неверное количество элементов
ERROR3: jquery_element должен быть установлен в настройки jqCron
ERROR4: Выражение не распознано

View File

@@ -14,12 +14,10 @@ GRAV:
YEAR: rok
DECADE: desaťročie
SEC: sek
MIN: min
HR: hod
WK: t
MO: m
YR: r
DEC: dec
SECOND_PLURAL: sekúnd
MINUTE_PLURAL: minút
HOUR_PLURAL: hodín

View File

@@ -15,7 +15,6 @@ GRAV:
YEAR: leto
DECADE: desetletje
SEC: sek
MIN: min
HR: ur
WK: T.
MO: m

View File

@@ -15,12 +15,10 @@ GRAV:
YEAR: år
DECADE: årtionde
SEC: sek
MIN: min
HR: t
WK: v
MO: m
YR: år
DEC: dec
SECOND_PLURAL: sekunder
MINUTE_PLURAL: minuter
HOUR_PLURAL: timmar

View File

@@ -1,19 +1,6 @@
---
GRAV:
FRONTMATTER_ERROR_PAGE: |
---
ชื่อเรื่อง: %1$s
---
# ข้อผิดพลาด: Invalid Frontmatter
Path: `%2$s`
**%3$s**
```
%4$s
```
FRONTMATTER_ERROR_PAGE: "---\nชื่อเรื่อง: %1$s\n---\n\n# ข้อผิดพลาด: Invalid Frontmatter\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
NICETIME:
NO_DATE_PROVIDED: ไม่มีวันที่ให้
BAD_DATE: รูปแบบวันที่ผิด
@@ -30,10 +17,6 @@ GRAV:
SEC: วิ
MIN: นาที
HR: ชม.
WK: wk
MO: mo
YR: yr
DEC: dec
SECOND_PLURAL: วินาที
MINUTE_PLURAL: นาที
HOUR_PLURAL: ชั่วโมง
@@ -45,32 +28,29 @@ GRAV:
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:
- จันทร์
- อังคาร
- พุธ
- พฤหัสบดี
- ศุกร์
- เสาร์
- อาทิตย์
- 'จันทร์'
- 'อังคาร'
- 'พุธ'
- 'พฤหัสบดี'
- 'ศุกร์'
- 'เสาร์'
- 'อาทิตย์'

View File

@@ -0,0 +1,42 @@
---
GRAV:
NICETIME:
SECOND:
MINUTE:
HOUR: 小時
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: 十年
MONTHS_OF_THE_YEAR:
- '一月'
- '二月'
- '三月'
- '四月'
- '五月'
- '六月'
- '七月'
- '八月'
- '九月'
- '十月'
- '十一月'
- '十二月'
DAYS_OF_THE_WEEK:
- '星期一'
- '星期二'
- '星期三'
- '星期四'
- '星期五'
- '星期六'
- '星期日'

View File

@@ -1,9 +1,9 @@
<?php
/**
* @package Grav.Core
* @package Grav\Core
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common
* @package Grav\Common
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Assets
* @package Grav\Common\Assets
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -13,7 +14,6 @@ use Grav\Common\Grav;
use Grav\Common\Uri;
use Grav\Common\Utils;
use Grav\Framework\Object\PropertyObject;
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
abstract class BaseAsset extends PropertyObject
{
@@ -81,7 +81,7 @@ abstract class BaseAsset extends PropertyObject
// Do some special stuff for CSS/JS (not inline)
if (!Utils::startsWith($this->getType(), 'inline')) {
$this->base_url = rtrim($uri->rootUrl($config->get('system.absolute_urls')), '/') . '/';
$this->remote = $this->isRemoteLink($asset);
$this->remote = static::isRemoteLink($asset);
// Move this to render?
if (!$this->remote) {

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Assets
* @package Grav\Common\Assets
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -12,7 +13,6 @@ use Grav\Common\Utils;
class Css extends BaseAsset
{
public function __construct(array $elements = [], $key = null)
{
$base_options = [

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Assets
* @package Grav\Common\Assets
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Assets
* @package Grav\Common\Assets
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Assets
* @package Grav\Common\Assets
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Assets
* @package Grav\Common\Assets
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -140,7 +141,7 @@ class Pipeline extends PropertyObject
}
// Write file
if (\strlen(trim($buffer)) > 0) {
if (trim($buffer) !== '') {
file_put_contents($this->assets_dir . $file, $buffer);
}
}
@@ -213,16 +214,16 @@ class Pipeline extends PropertyObject
}
// Write file
if (\strlen(trim($buffer)) > 0) {
if (trim($buffer) !== '') {
file_put_contents($this->assets_dir . $file, $buffer);
}
}
if ($inline_group) {
$output = "<script" . $this->renderAttributes(). ">\n" . $buffer . "\n</script>\n";
$output = '<script' . $this->renderAttributes(). ">\n" . $buffer . "\n</script>\n";
} else {
$this->asset = $relative_path;
$output = "<script src=\"" . $relative_path . $this->renderQueryString() . "\"" . $this->renderAttributes() . "></script>\n";
$output = '<script src="' . $relative_path . $this->renderQueryString() . '"' . $this->renderAttributes() . "></script>\n";
}
return $output;
@@ -249,7 +250,7 @@ class Pipeline extends PropertyObject
$old_url = $matches[2];
// Ensure link is not rooted to webserver, a data URL, or to a remote host
// Ensure link is not rooted to web server, a data URL, or to a remote host
if (Utils::startsWith($old_url, '/') || Utils::startsWith($old_url, 'data:') || $this->isRemoteLink($old_url)) {
return $matches[0];
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Assets.Traits
* @package Grav\Common\Assets\Traits
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -24,7 +25,7 @@ trait AssetUtilsTrait
{
$base = Grav::instance()['uri']->rootUrl(true);
// sanity check for local URLs with absolute URL's enabled
// Sanity check for local URLs with absolute URL's enabled
if (Utils::startsWith($link, $base)) {
return false;
}
@@ -52,12 +53,12 @@ trait AssetUtilsTrait
$link = $asset->getAsset();
$relative_path = $link;
if ($this->isRemoteLink($link)) {
if (static::isRemoteLink($link)) {
$local = false;
if (0 === strpos($link, '//')) {
$link = 'http:' . $link;
}
$relative_dir = dirname($relative_path);
$relative_dir = \dirname($relative_path);
} else {
// Fix to remove relative dir if grav is in one
if (($this->base_url !== '/') && Utils::startsWith($relative_path, $this->base_url)) {
@@ -65,7 +66,7 @@ trait AssetUtilsTrait
$relative_path = ltrim(preg_replace($base_url, '/', $link, 1), '/');
}
$relative_dir = dirname($relative_path);
$relative_dir = \dirname($relative_path);
$link = ROOT_DIR . $relative_path;
}
@@ -73,7 +74,7 @@ trait AssetUtilsTrait
// No file found, skip it...
if ($file === false) {
if (!$local) { // Assume we coudln't download this file for some reason assume it's not pipeline compatible
if (!$local) { // Assume we couldn't download this file for some reason assume it's not pipeline compatible
$no_pipeline[$id] = $asset;
}
continue;
@@ -125,8 +126,6 @@ trait AssetUtilsTrait
*
* Build an HTML attribute string from an array.
*
* @param array $attributes
*
* @return string
*/
protected function renderAttributes()
@@ -157,6 +156,7 @@ trait AssetUtilsTrait
/**
* Render Querystring
*
* @param string $asset
* @return string
*/
protected function renderQueryString($asset = null)

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Assets.Traits
* @package Grav\Common\Assets\Traits
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Assets.Traits
* @package Grav\Common\Assets\Traits
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -44,6 +45,7 @@ trait TestingAssetsTrait
public function setCollection($collections)
{
$this->collections = $collections;
return $this;
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Backup
* @package Grav\Common\Backup
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -39,7 +40,7 @@ class Backups
public function setup()
{
if (is_null(static::$backup_dir)) {
if (null === static::$backup_dir) {
static::$backup_dir = Grav::instance()['locator']->findResource('backup://', true, true);
Folder::create(static::$backup_dir);
}
@@ -53,9 +54,9 @@ class Backups
/** @var Inflector $inflector */
$inflector = Grav::instance()['inflector'];
foreach ($this->getBackupProfiles() as $id => $profile) {
foreach (static::getBackupProfiles() as $id => $profile) {
$at = $profile['schedule_at'];
$name = $inflector->hyphenize($profile['name']);
$name = $inflector::hyphenize($profile['name']);
$logs = 'logs/backup-' . $name . '.out';
/** @var Job $job */
$job = $scheduler->addFunction('Grav\Common\Backup\Backups::backup', [$id], $name );
@@ -86,7 +87,7 @@ class Backups
public function getBackupNames()
{
return array_column($this->getBackupProfiles(), 'name');
return array_column(static::getBackupProfiles(), 'name');
}
public static function getTotalBackupsSize()
@@ -99,7 +100,7 @@ class Backups
public static function getAvailableBackups($force = false)
{
if ($force || is_null(static::$backups)) {
if ($force || null === static::$backups) {
static::$backups = [];
$backups_itr = new \GlobIterator(static::$backup_dir . '/*.zip', \FilesystemIterator::KEY_AS_FILENAME);
$inflector = Grav::instance()['inflector'];
@@ -165,7 +166,7 @@ class Backups
}
if (!file_exists($backup_root)) {
throw new \RuntimeException("Backup location: " . $backup_root . ' does not exist...');
throw new \RuntimeException("Backup location: {$backup_root} does not exist...");
}
$options = [
@@ -245,6 +246,6 @@ class Backups
protected static function convertExclude($exclude)
{
$lines = preg_split("/[\s,]+/", $exclude);
return array_map('trim', $lines, array_fill(0,count($lines),'/'));
return array_map('trim', $lines, array_fill(0, \count($lines), '/'));
}
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common
* @package Grav\Common
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -113,7 +114,7 @@ class Browser
{
$version = explode('.', $this->getLongVersion());
return intval($version[0]);
return (int)$version[0];
}
/**
@@ -134,4 +135,15 @@ class Browser
return true;
}
/**
* Determine if “Do Not Track” is set by browser
* @see https://www.w3.org/TR/tracking-dnt/
*
* @return bool
*/
public function isTrackable(): bool
{
return !(isset($_SERVER['HTTP_DNT']) && $_SERVER['HTTP_DNT'] === '1');
}
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common
* @package Grav\Common
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -11,7 +12,9 @@ namespace Grav\Common;
use \Doctrine\Common\Cache as DoctrineCache;
use Grav\Common\Config\Config;
use Grav\Common\Filesystem\Folder;
use Grav\Common\Scheduler\Scheduler;
use RocketTheme\Toolbox\Event\Event;
use RocketTheme\Toolbox\Event\EventDispatcher;
/**
* The GravCache object is used throughout Grav to store and retrieve cached data.
@@ -117,7 +120,7 @@ class Cache extends Getters
$this->config = $grav['config'];
$this->now = time();
if (is_null($this->enabled)) {
if (null === $this->enabled) {
$this->enabled = (bool)$this->config->get('system.cache.enabled');
}
@@ -147,7 +150,7 @@ class Cache extends Getters
foreach (new \DirectoryIterator($cache_dir) as $file) {
$dir = $file->getBasename();
if ($file->isDot() || $file->isFile() || $dir === $current) {
if ($dir === $current || $file->isDot() || $file->isFile()) {
continue;
}
@@ -165,7 +168,7 @@ class Cache extends Getters
*/
public function setEnabled($enabled)
{
$this->enabled = (bool) $enabled;
$this->enabled = (bool)$enabled;
}
/**
@@ -202,19 +205,15 @@ class Cache extends Getters
// CLI compatibility requires a non-volatile cache driver
if ($this->config->get('system.cache.cli_compatibility') && (
$setting == 'auto' || $this->isVolatileDriver($setting))) {
$setting === 'auto' || $this->isVolatileDriver($setting))) {
$setting = $driver_name;
}
if (!$setting || $setting == 'auto') {
if (!$setting || $setting === 'auto') {
if (extension_loaded('apcu')) {
$driver_name = 'apcu';
} elseif (extension_loaded('apc')) {
$driver_name = 'apc';
} elseif (extension_loaded('wincache')) {
$driver_name = 'wincache';
} elseif (extension_loaded('xcache')) {
$driver_name = 'xcache';
}
} else {
$driver_name = $setting;
@@ -224,9 +223,6 @@ class Cache extends Getters
switch ($driver_name) {
case 'apc':
$driver = new DoctrineCache\ApcCache();
break;
case 'apcu':
$driver = new DoctrineCache\ApcuCache();
break;
@@ -235,10 +231,6 @@ class Cache extends Getters
$driver = new DoctrineCache\WinCacheCache();
break;
case 'xcache':
$driver = new DoctrineCache\XcacheCache();
break;
case 'memcache':
$memcache = new \Memcache();
$memcache->connect($this->config->get('system.cache.memcache.server', 'localhost'),
@@ -295,9 +287,9 @@ class Cache extends Getters
{
if ($this->enabled) {
return $this->driver->fetch($id);
} else {
return false;
}
return false;
}
/**
@@ -328,6 +320,7 @@ class Cache extends Getters
if ($this->enabled) {
return $this->driver->delete($id);
}
return false;
}
@@ -341,6 +334,7 @@ class Cache extends Getters
if ($this->enabled) {
return $this->driver->deleteAll();
}
return false;
}
@@ -355,6 +349,7 @@ class Cache extends Getters
if ($this->enabled) {
return $this->driver->contains(($id));
}
return false;
}
@@ -459,7 +454,7 @@ class Cache extends Getters
$output[] = '';
if (($remove == 'all' || $remove == 'standard') && file_exists($user_config)) {
if (($remove === 'all' || $remove === 'standard') && file_exists($user_config)) {
touch($user_config);
$output[] = '<red>Touched: </red>' . $user_config;
@@ -540,17 +535,17 @@ class Cache extends Getters
{
if (in_array($setting, ['apc', 'apcu', 'xcache', 'wincache'])) {
return true;
} else {
return false;
}
return false;
}
public static function purgeJob()
{
$cache = Grav::instance()['cache'];
$deleted_folders = $cache->purgeOldCache();
$msg = 'Purged ' . $deleted_folders . ' old cache folders...';
return $msg;
return 'Purged ' . $deleted_folders . ' old cache folders...';
}
public function onSchedulerInitialized(Event $event)

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common
* @package Grav\Common
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Config
* @package Grav\Common\Config
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -198,9 +199,7 @@ abstract class CompiledBase
$cache = include $filename;
if (
!\is_array($cache)
|| !isset($cache['checksum'])
|| !isset($cache['data'])
|| !isset($cache['@class'])
|| !isset($cache['checksum'], $cache['data'], $cache['@class'])
|| $cache['@class'] !== \get_class($this)
) {
return false;

View File

@@ -1,27 +1,30 @@
<?php
/**
* @package Grav.Common.Config
* @package Grav\Common\Config
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, 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
* @package Grav\Common\Config
*/
class CompiledBlueprints extends CompiledBase
{
/**
* @var int Version number for the compiled file.
*/
public $version = 2;
public function __construct($cacheFolder, array $files, $path)
{
parent::__construct($cacheFolder, $files, $path);
/**
* @var BlueprintSchema Blueprints object.
*/
protected $object;
$this->version = 2;
}
/**
* Returns checksum from the configuration files.

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Config
* @package Grav\Common\Config
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -12,16 +13,6 @@ 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.
*/
@@ -32,6 +23,13 @@ class CompiledConfig extends CompiledBase
*/
protected $withDefaults;
public function __construct($cacheFolder, array $files, $path)
{
parent::__construct($cacheFolder, $files, $path);
$this->version = 1;
}
/**
* Set blueprints for the configuration.
*

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Config
* @package Grav\Common\Config
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -12,15 +13,12 @@ use Grav\Common\File\CompiledYamlFile;
class CompiledLanguages extends CompiledBase
{
/**
* @var int Version number for the compiled file.
*/
public $version = 1;
public function __construct($cacheFolder, array $files, $path)
{
parent::__construct($cacheFolder, $files, $path);
/**
* @var Languages Configuration object.
*/
protected $object;
$this->version = 1;
}
/**
* Create configuration object.

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Config
* @package Grav\Common\Config
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Config
* @package Grav\Common\Config
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Config
* @package Grav\Common\Config
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Config
* @package Grav\Common\Config
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -11,8 +12,8 @@ namespace Grav\Common\Config;
use Grav\Common\File\CompiledYamlFile;
use Grav\Common\Data\Data;
use Grav\Common\Utils;
use Grav\Framework\Psr7\ServerRequest;
use Pimple\Container;
use Psr\Http\Message\ServerRequestInterface;
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
class Setup extends Data
@@ -157,11 +158,11 @@ class Setup extends Data
if (\defined('GRAV_CLI')) {
static::$environment = 'cli';
} else {
/** @var ServerRequest $request */
/** @var ServerRequestInterface $request */
$request = $container['request'];
$host = $request->getUri()->getHost();
static::$environment = $host;
static::$environment = Utils::substrToString($host, ':');
}
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Data
* @package Grav\Common\Data
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -74,6 +75,20 @@ class Blueprint extends BlueprintForm
return $this->blueprintSchema->mergeData($data1, $data2, $name, $separator);
}
/**
* Process data coming from a form.
*
* @param array $data
* @param array $toggles
* @return array
*/
public function processForm(array $data, array $toggles = [])
{
$this->initInternals();
return $this->blueprintSchema->processForm($data, $toggles);
}
/**
* Return data fields that do not exist in blueprints.
*
@@ -105,13 +120,14 @@ class Blueprint extends BlueprintForm
* Filter data by using blueprints.
*
* @param array $data
* @param bool $missingValuesAsNull
* @return array
*/
public function filter(array $data)
public function filter(array $data, bool $missingValuesAsNull = false)
{
$this->initInternals();
return $this->blueprintSchema->filter($data);
return $this->blueprintSchema->filter($data, $missingValuesAsNull);
}
/**
@@ -268,7 +284,7 @@ class Blueprint extends BlueprintForm
*/
protected function dynamicSecurity(array &$field, $property, array &$call)
{
if ($property) {
if ($property || !empty($field['validate']['ignore'])) {
return;
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Data
* @package Grav\Common\Data
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -63,6 +64,16 @@ class BlueprintSchema extends BlueprintSchemaBase implements ExportInterface
}
}
/**
* @param array $data
* @param array $toggles
* @return array
*/
public function processForm(array $data, array $toggles = [])
{
return $this->processFormRecursive($data, $toggles, $this->nested);
}
/**
* Filter data by using blueprints.
*
@@ -160,6 +171,52 @@ class BlueprintSchema extends BlueprintSchemaBase implements ExportInterface
return $results;
}
/**
* @param array $data
* @param array $toggles
* @param array $nested
* @return array
*/
protected function processFormRecursive(array $data, array $toggles, array $nested)
{
foreach ($nested as $key => $value) {
if ($key === '') {
continue;
}
if ($key === '*') {
// TODO: Add support to collections.
continue;
}
if (is_array($value)) {
// Recursively fetch the items.
$array = $this->processFormRecursive($data[$key] ?? [], $toggles[$key] ?? [], $value);
if (!empty($array)) {
$data[$key] = $array;
}
} else {
$field = $this->get($value);
// Do not add the field if:
if (
// Not an input field
!$field
// Field validation is set to be ignored
|| !empty($field['validate']['ignore'])
// Field is toggleable and the toggle is turned off
|| (!empty($field['toggleable']) && empty($toggles[$key]))
) {
continue;
}
if (!isset($data[$key])) {
$data[$key] = null;
}
}
}
return $data;
}
/**
* @param array $data
* @param array $fields

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Data
* @package Grav\Common\Data
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Data
* @package Grav\Common\Data
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -196,12 +197,13 @@ class Data implements DataInterface, \ArrayAccess, \Countable, \JsonSerializable
}
/**
* @param bool $missingValuesAsNull
* @return $this
* Filter all items by using blueprints.
*/
public function filter()
public function filter(bool $missingValuesAsNull = false)
{
$this->items = $this->blueprints()->filter($this->items);
$this->items = $this->blueprints()->filter($this->items, $missingValuesAsNull);
return $this;
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Data
* @package Grav\Common\Data
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Data
* @package Grav\Common\Data
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -11,7 +12,6 @@ namespace Grav\Common\Data;
use Grav\Common\Grav;
use Grav\Common\Utils;
use Grav\Common\Yaml;
use RocketTheme\Toolbox\Compat\Yaml\Yaml as FallbackYaml;
class Validation
{
@@ -89,7 +89,7 @@ class Validation
*/
public static function filter($value, array $field)
{
$validate = isset($field['validate']) ? (array) $field['validate'] : [];
$validate = (array)($field['validate'] ?? null);
// If value isn't required, we will return null if empty value is given.
if (($value === null || $value === '') && empty($validate['required'])) {
@@ -111,7 +111,7 @@ class Validation
}
if (!method_exists(__CLASS__, $method)) {
$method = 'filterText';
$method = isset($field['array']) && $field['array'] === true ? 'filterArray' : 'filterText';
}
return self::$method($value, $validate, $field);
@@ -133,6 +133,10 @@ class Validation
$value = (string)$value;
if (!empty($params['trim'])) {
$value = trim($value);
}
if (isset($params['min']) && \strlen($value) < $params['min']) {
return false;
}
@@ -155,6 +159,10 @@ class Validation
protected static function filterText($value, array $params, array $field)
{
if (!empty($params['trim'])) {
$value = trim($value);
}
return (string) $value;
}
@@ -253,8 +261,8 @@ class Validation
*/
public static function typeCheckbox($value, array $params, array $field)
{
$value = (string) $value;
$field_value = (string) ($field['value'] ?? '1');
$value = (string)$value;
$field_value = (string)($field['value'] ?? '1');
return $value === $field_value;
}
@@ -295,12 +303,12 @@ class Validation
*/
public static function typeFile($value, array $params, array $field)
{
return self::typeArray((array) $value, $params, $field);
return self::typeArray((array)$value, $params, $field);
}
protected static function filterFile($value, array $params, array $field)
{
return (array) $value;
return (array)$value;
}
/**
@@ -597,9 +605,13 @@ class Validation
if (isset($field['ignore_empty']) && Utils::isPositive($field['ignore_empty'])) {
foreach ($values as $key => $val) {
foreach ($val as $inner_key => $inner_value) {
if ($inner_value == '') {
unset($val[$inner_key]);
if ($val === '') {
unset($values[$key]);
} elseif (\is_array($val)) {
foreach ($val as $inner_key => $inner_value) {
if ($inner_value === '') {
unset($val[$inner_key]);
}
}
}
@@ -662,6 +674,23 @@ class Validation
return $value;
}
/**
* Input value which can be ignored.
*
* @param mixed $value Value to be validated.
* @param array $params Validation parameters.
* @param array $field Blueprint for the field.
* @return bool True if validation succeeded.
*/
public static function typeUnset($value, array $params, array $field)
{
return true;
}
public static function filterUnset($value, array $params, array $field)
{
return null;
}
// HTML5 attributes (min, max and range are handled inside the types)
@@ -729,20 +758,17 @@ class Validation
public static function validateInt($value, $params)
{
return is_numeric($value) && (int) $value == $value;
return is_numeric($value) && (int)$value == $value;
}
protected static function filterInt($value, $params)
{
return (int) $value;
return (int)$value;
}
public static function validateArray($value, $params)
{
return \is_array($value)
|| ($value instanceof \ArrayAccess
&& $value instanceof \Traversable
&& $value instanceof \Countable);
return \is_array($value) || ($value instanceof \ArrayAccess && $value instanceof \Traversable && $value instanceof \Countable);
}
public static function filterItem_List($value, $params)

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Data
* @package Grav\Common\Data
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common
* @package Grav\Common
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -269,7 +270,7 @@ class Debugger
*/
public function startTimer($name, $description = null)
{
if ($name[0] === '_' || $this->enabled()) {
if (strpos($name, '_') === 0 || $this->enabled()) {
$this->debugbar['time']->startMeasure($name, $description);
$this->timers[] = $name;
}
@@ -286,7 +287,7 @@ class Debugger
*/
public function stopTimer($name)
{
if (\in_array($name, $this->timers, true) && ($name[0] === '_' || $this->enabled())) {
if (\in_array($name, $this->timers, true) && (strpos($name, '_') === 0 || $this->enabled())) {
$this->debugbar['time']->stopMeasure($name);
}
@@ -319,7 +320,7 @@ class Debugger
*/
public function addException(\Exception $e)
{
if ($this->enabled() && $this->initialized) {
if ($this->initialized && $this->enabled()) {
$this->debugbar['exceptions']->addException($e);
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Errors
* @package Grav\Common\Errors
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Errors
* @package Grav\Common\Errors
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -17,11 +18,11 @@ class Errors
{
$grav = Grav::instance();
$config = $grav['config']->get('system.errors');
$jsonRequest = $_SERVER && isset($_SERVER['HTTP_ACCEPT']) && $_SERVER['HTTP_ACCEPT'] == 'application/json';
$jsonRequest = $_SERVER && isset($_SERVER['HTTP_ACCEPT']) && $_SERVER['HTTP_ACCEPT'] === 'application/json';
// Setup Whoops-based error handler
$system = new SystemFacade;
$whoops = new \Whoops\Run($system);
$whoops = new Whoops\Run($system);
$verbosity = 1;
@@ -49,17 +50,8 @@ class Errors
break;
}
if (method_exists('Whoops\Util\Misc', 'isAjaxRequest')) { //Whoops 2.0
if (Whoops\Util\Misc::isAjaxRequest() || $jsonRequest) {
$whoops->pushHandler(new Whoops\Handler\JsonResponseHandler);
}
} elseif (function_exists('Whoops\isAjaxRequest')) { //Whoops 2.0.0-alpha
if (Whoops\isAjaxRequest() || $jsonRequest) {
$whoops->pushHandler(new Whoops\Handler\JsonResponseHandler);
}
} else { //Whoops 1.x
$json_page = new Whoops\Handler\JsonResponseHandler;
$json_page->onlyForAjaxRequests(true);
if (Whoops\Util\Misc::isAjaxRequest() || $jsonRequest) {
$whoops->pushHandler(new Whoops\Handler\JsonResponseHandler);
}
if (isset($config['log']) && $config['log']) {

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Errors
* @package Grav\Common\Errors
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -20,7 +21,7 @@ class SimplePageHandler extends Handler
public function __construct()
{
// Add the default, local resource search path:
$this->searchPaths[] = __DIR__ . "/Resources";
$this->searchPaths[] = __DIR__ . '/Resources';
}
/**
@@ -31,8 +32,8 @@ class SimplePageHandler extends Handler
$inspector = $this->getInspector();
$helper = new TemplateHelper();
$templateFile = $this->getResource("layout.html.php");
$cssFile = $this->getResource("error.css");
$templateFile = $this->getResource('layout.html.php');
$cssFile = $this->getResource('error.css');
$code = $inspector->getException()->getCode();
if ( ($code >= 400) && ($code < 600) )
@@ -46,9 +47,9 @@ class SimplePageHandler extends Handler
}
$vars = array(
"stylesheet" => file_get_contents($cssFile),
"code" => $code,
"message" => filter_var(rawurldecode($message), FILTER_SANITIZE_STRING),
'stylesheet' => file_get_contents($cssFile),
'code' => $code,
'message' => filter_var(rawurldecode($message), FILTER_SANITIZE_STRING),
);
$helper->setVariables($vars);
@@ -74,7 +75,7 @@ class SimplePageHandler extends Handler
// Search through available search paths, until we find the
// resource we're after:
foreach ($this->searchPaths as $path) {
$fullPath = $path . "/$resource";
$fullPath = "{$path}/{$resource}";
if (is_file($fullPath)) {
// Cache the result:

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.Errors
* @package Grav\Common\Errors
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.File
* @package Grav\Common\File
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.File
* @package Grav\Common\File
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -23,6 +24,6 @@ class CompiledJsonFile extends JsonFile
*/
protected function decode($var, $assoc = true)
{
return (array) json_decode($var, $assoc);
return (array)json_decode($var, $assoc);
}
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.File
* @package Grav\Common\File
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.File
* @package Grav\Common\File
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.FileSystem
* @package Grav\Common\Filesystem
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -19,11 +20,11 @@ abstract class Archiver
public static function create($compression)
{
if ($compression == 'zip') {
return new ZipArchiver();
} else {
if ($compression === 'zip') {
return new ZipArchiver();
}
return new ZipArchiver();
}
public function setArchive($archive_file)

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.FileSystem
* @package Grav\Common\Filesystem
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -141,6 +142,7 @@ abstract class Folder
*/
public static function getRelativePathDotDot($path, $base)
{
// Normalize paths.
$base = preg_replace('![\\\/]+!', '/', $base);
$path = preg_replace('![\\\/]+!', '/', $path);
@@ -164,7 +166,7 @@ abstract class Folder
$path = str_repeat('../', count($baseParts)) . implode('/', $pathParts);
return '' === $path
|| '/' === $path[0]
|| strpos($path, '/') === 0
|| false !== ($colonPos = strpos($path, ':')) && ($colonPos < ($slashPos = strpos($path, '/')) || false === $slashPos)
? "./$path" : $path;
}
@@ -199,14 +201,14 @@ abstract class Folder
}
$compare = isset($params['compare']) ? 'get' . $params['compare'] : null;
$pattern = isset($params['pattern']) ? $params['pattern'] : null;
$filters = isset($params['filters']) ? $params['filters'] : null;
$recursive = isset($params['recursive']) ? $params['recursive'] : true;
$levels = isset($params['levels']) ? $params['levels'] : -1;
$pattern = $params['pattern'] ?? null;
$filters = $params['filters'] ?? null;
$recursive = $params['recursive'] ?? true;
$levels = $params['levels'] ?? -1;
$key = isset($params['key']) ? 'get' . $params['key'] : null;
$value = isset($params['value']) ? 'get' . $params['value'] : ($recursive ? 'getSubPathname' : 'getFilename');
$folders = isset($params['folders']) ? $params['folders'] : true;
$files = isset($params['files']) ? $params['files'] : true;
$value = 'get' . ($params['value'] ?? ($recursive ? 'SubPathname' : 'Filename'));
$folders = $params['folders'] ?? true;
$files = $params['files'] ?? true;
/** @var UniformResourceLocator $locator */
$locator = Grav::instance()['locator'];
@@ -233,7 +235,7 @@ abstract class Folder
/** @var \RecursiveDirectoryIterator $file */
foreach ($iterator as $file) {
// Ignore hidden files.
if ($file->getFilename()[0] === '.') {
if (strpos($file->getFilename(), '.') === 0) {
continue;
}
if (!$folders && $file->isDir()) {
@@ -255,7 +257,7 @@ abstract class Folder
if (isset($filters['value'])) {
$filter = $filters['value'];
if (is_callable($filter)) {
$filePath = call_user_func($filter, $file);
$filePath = $filter($file);
} else {
$filePath = preg_replace($filter, '', $filePath);
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.FileSystem
* @package Grav\Common\Filesystem
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.FileSystem
* @package Grav\Common\Filesystem
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -41,9 +42,6 @@ class RecursiveFolderFilterIterator extends \RecursiveFilterIterator
/** @var $current \SplFileInfo */
$current = $this->current();
if ($current->isDir() && !in_array($current->getFilename(), $this::$ignore_folders, true)) {
return true;
}
return false;
return $current->isDir() && !in_array($current->getFilename(), $this::$ignore_folders, true);
}
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.FileSystem
* @package Grav\Common\Filesystem
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,9 +1,9 @@
<?php
/**
* @package Grav\Framework\Common
* @package Grav\Common\Form
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -101,28 +101,9 @@ class FormFlash extends \Grav\Framework\Form\FormFlash
}
$upload['file']['tmp_name'] = $basename;
if (!isset($this->files[$field])) {
$this->files[$field] = [];
}
// Prepare object for later save
$upload['file']['name'] = $filename;
// Replace old file, including original
$oldUpload = $this->files[$field][$filename] ?? null;
if (isset($oldUpload['tmp_name'])) {
$this->removeTmpFile($oldUpload['tmp_name']);
}
$originalUpload = $this->files[$field . '/original'][$filename] ?? null;
if (isset($originalUpload['tmp_name'])) {
$this->removeTmpFile($originalUpload['tmp_name']);
unset($this->files[$field . '/original'][$filename]);
}
// Prepare data to be saved later
$this->files[$field][$filename] = $upload['file'];
$this->addFileInternal($field, $filename, $upload['file']);
return true;
}
@@ -149,27 +130,9 @@ class FormFlash extends \Grav\Framework\Form\FormFlash
}
$upload['file']['tmp_name'] = $basename;
if (!isset($this->files[$field])) {
$this->files[$field] = [];
}
// Prepare object for later save
$upload['file']['name'] = $filename;
$oldUpload = $this->files[$field][$filename] ?? null;
if ($oldUpload) {
$originalUpload = $this->files[$field . '/original'][$filename] ?? null;
if ($originalUpload) {
$this->removeTmpFile($oldUpload['tmp_name']);
} else {
$oldUpload['crop'] = $crop;
$this->files[$field . '/original'][$filename] = $oldUpload;
}
}
// Prepare data to be saved later
$this->files[$field][$filename] = $upload['file'];
$this->addFileInternal($field, $filename, $upload['file'], $crop);
return true;
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -14,13 +15,7 @@ abstract class AbstractCollection extends Iterator
{
public function toJson()
{
$items = [];
foreach ($this->items as $name => $package) {
$items[$name] = $package->toArray();
}
return json_encode($items);
return json_encode($this->toArray());
}
public function toArray()

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -17,11 +18,11 @@ class CachedCollection extends Iterator {
public function __construct($items)
{
// local cache to speed things up
if (!isset(self::$cache[get_called_class().__METHOD__])) {
self::$cache[get_called_class().__METHOD__] = $items;
if (!isset(self::$cache[get_called_class() . __METHOD__])) {
self::$cache[get_called_class() . __METHOD__] = $items;
}
foreach (self::$cache[get_called_class().__METHOD__] as $name => $item) {
foreach (self::$cache[get_called_class() . __METHOD__] as $name => $item) {
$this->append([$name => $item]);
}
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -14,7 +15,8 @@ class Package {
protected $data;
public function __construct(Data $package, $type = null) {
public function __construct(Data $package, $type = null)
{
$this->data = $package;
if ($type) {
@@ -22,28 +24,38 @@ class Package {
}
}
public function getData() {
public function getData()
{
return $this->data;
}
public function __get($key) {
public function __get($key)
{
return $this->data->get($key);
}
public function __isset($key) {
return isset($this->data->$key);
public function __set($key, $value)
{
return $this->data->set($key, $value);
}
public function __toString() {
public function __isset($key)
{
return isset($this->data->{$key});
}
public function __toString()
{
return $this->toJson();
}
public function toJson() {
public function toJson()
{
return $this->data->toJson();
}
public function toArray() {
public function toArray()
{
return $this->data->toArray();
}
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -242,7 +243,7 @@ class GPM extends Iterator
continue;
}
$local_version = $plugin->version ? $plugin->version : 'Unknown';
$local_version = $plugin->version ?: 'Unknown';
$remote_version = $repository[$slug]->version;
if (version_compare($local_version, $remote_version) < 0) {
@@ -322,7 +323,7 @@ class GPM extends Iterator
continue;
}
$local_version = $plugin->version ? $plugin->version : 'Unknown';
$local_version = $plugin->version ?: 'Unknown';
$remote_version = $repository[$slug]->version;
if (version_compare($local_version, $remote_version) < 0) {
@@ -564,31 +565,33 @@ class GPM extends Iterator
file_exists($source . 'system/config/system.yaml')
) {
return 'grav';
} else {
// must have a blueprint
if (!file_exists($source . 'blueprints.yaml')) {
return false;
}
}
// either theme or plugin
$name = basename($source);
if (Utils::contains($name, 'theme')) {
return 'theme';
} elseif (Utils::contains($name, 'plugin')) {
return 'plugin';
}
foreach (glob($source . "*.php") as $filename) {
$contents = file_get_contents($filename);
if (preg_match($theme_regex, $contents)) {
return 'theme';
} elseif (preg_match($plugin_regex, $contents)) {
return 'plugin';
}
}
// must have a blueprint
if (!file_exists($source . 'blueprints.yaml')) {
return false;
}
// Assume it's a theme
// either theme or plugin
$name = basename($source);
if (Utils::contains($name, 'theme')) {
return 'theme';
}
if (Utils::contains($name, 'plugin')) {
return 'plugin';
}
foreach (glob($source . '*.php') as $filename) {
$contents = file_get_contents($filename);
if (preg_match($theme_regex, $contents)) {
return 'theme';
}
if (preg_match($plugin_regex, $contents)) {
return 'plugin';
}
}
// Assume it's a theme
return 'theme';
}
/**
@@ -601,7 +604,7 @@ class GPM extends Iterator
{
$ignore_yaml_files = ['blueprints', 'languages'];
foreach (glob($source . "*.yaml") as $filename) {
foreach (glob($source . '*.yaml') as $filename) {
$name = strtolower(basename($filename, '.yaml'));
if (in_array($name, $ignore_yaml_files)) {
continue;
@@ -692,7 +695,7 @@ class GPM extends Iterator
}
$not_found = new \stdClass();
$not_found->name = $inflector->camelize($search);
$not_found->name = $inflector::camelize($search);
$not_found->slug = $search;
$not_found->package_type = $type;
$not_found->install_path = str_replace('%name%', $search, $this->install_paths[$type]);
@@ -845,7 +848,7 @@ class GPM extends Iterator
$current_php_version) === 1
) {
//Needs a Grav update first
throw new \Exception("<red>One of the packages require PHP " . $dependencies['php'] . ". Please update PHP to resolve this");
throw new \RuntimeException("<red>One of the packages require PHP {$dependencies['php']}. Please update PHP to resolve this");
} else {
unset($dependencies[$dependency_slug]);
continue;
@@ -858,7 +861,7 @@ class GPM extends Iterator
GRAV_VERSION) === 1
) {
//Needs a Grav update first
throw new \Exception("<red>One of the packages require Grav " . $dependencies['grav'] . ". Please update Grav to the latest release.");
throw new \RuntimeException("<red>One of the packages require Grav {$dependencies['grav']}. Please update Grav to the latest release.");
} else {
unset($dependencies[$dependency_slug]);
continue;
@@ -888,7 +891,7 @@ class GPM extends Iterator
$currentlyInstalledVersion);
if (!$compatible) {
throw new \Exception('Dependency <cyan>' . $dependency_slug . '</cyan> is required in an older version than the one installed. This package must be updated. Please get in touch with its developer.',
throw new \RuntimeException('Dependency <cyan>' . $dependency_slug . '</cyan> is required in an older version than the one installed. This package must be updated. Please get in touch with its developer.',
2);
}
}
@@ -899,7 +902,7 @@ class GPM extends Iterator
if ($this->firstVersionIsLower($latestRelease, $dependencyVersion)) {
//throw an exception if a required version cannot be found in the GPM yet
throw new \Exception('Dependency <cyan>' . $package_yaml['name'] . '</cyan> is required in version <cyan>' . $dependencyVersion . '</cyan> which is higher than the latest release, <cyan>' . $latestRelease . '</cyan>. Try running `bin/gpm -f index` to force a refresh of the GPM cache',
throw new \RuntimeException('Dependency <cyan>' . $package_yaml['name'] . '</cyan> is required in version <cyan>' . $dependencyVersion . '</cyan> which is higher than the latest release, <cyan>' . $latestRelease . '</cyan>. Try running `bin/gpm -f index` to force a refresh of the GPM cache',
1);
}
@@ -1005,7 +1008,7 @@ class GPM extends Iterator
$current_package_version_number = $this->calculateVersionNumberFromDependencyVersion($current_package_version_information);
if (!$current_package_version_number) {
throw new \Exception('Bad format for version of dependency ' . $current_package_name . ' for package ' . $packageName,
throw new \RuntimeException('Bad format for version of dependency ' . $current_package_name . ' for package ' . $packageName,
1);
}
@@ -1029,7 +1032,7 @@ class GPM extends Iterator
$compatible = $this->checkNextSignificantReleasesAreCompatible($currently_stored_version_number,
$current_package_version_number);
if (!$compatible) {
throw new \Exception('Dependency ' . $current_package_name . ' is required in two incompatible versions',
throw new \RuntimeException('Dependency ' . $current_package_name . ' is required in two incompatible versions',
2);
}
}
@@ -1076,17 +1079,19 @@ class GPM extends Iterator
*/
public function calculateVersionNumberFromDependencyVersion($version)
{
if ($version == '*') {
if ($version === '*') {
return null;
} elseif ($version == '') {
return null;
} elseif ($this->versionFormatIsNextSignificantRelease($version)) {
return trim(substr($version, 1));
} elseif ($this->versionFormatIsEqualOrHigher($version)) {
return trim(substr($version, 2));
} else {
return $version;
}
if ($version === '') {
return null;
}
if ($this->versionFormatIsNextSignificantRelease($version)) {
return trim(substr($version, 1));
}
if ($this->versionFormatIsEqualOrHigher($version)) {
return trim(substr($version, 2));
}
return $version;
}
/**
@@ -1100,7 +1105,7 @@ class GPM extends Iterator
*/
public function versionFormatIsNextSignificantRelease($version)
{
return substr($version, 0, 1) == '~';
return strpos($version, '~') === 0;
}
/**
@@ -1114,7 +1119,7 @@ class GPM extends Iterator
*/
public function versionFormatIsEqualOrHigher($version)
{
return substr($version, 0, 2) == '>=';
return strpos($version, '>=') === 0;
}
/**
@@ -1135,12 +1140,12 @@ class GPM extends Iterator
$version1array = explode('.', $version1);
$version2array = explode('.', $version2);
if (count($version1array) > count($version2array)) {
if (\count($version1array) > \count($version2array)) {
list($version1array, $version2array) = [$version2array, $version1array];
}
$i = 0;
while ($i < count($version1array) - 1) {
while ($i < \count($version1array) - 1) {
if ($version1array[$i] != $version2array[$i]) {
return false;
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -14,23 +15,23 @@ use Grav\Common\Grav;
class Installer
{
/** @const No error */
const OK = 0;
public const OK = 0;
/** @const Target already exists */
const EXISTS = 1;
public const EXISTS = 1;
/** @const Target is a symbolic link */
const IS_LINK = 2;
public const IS_LINK = 2;
/** @const Target doesn't exist */
const NOT_FOUND = 4;
public const NOT_FOUND = 4;
/** @const Target is not a directory */
const NOT_DIRECTORY = 8;
public const NOT_DIRECTORY = 8;
/** @const Target is not a Grav instance */
const NOT_GRAV_ROOT = 16;
public const NOT_GRAV_ROOT = 16;
/** @const Error while trying to open the ZIP package */
const ZIP_OPEN_ERROR = 32;
public const ZIP_OPEN_ERROR = 32;
/** @const Error while trying to extract the ZIP package */
const ZIP_EXTRACT_ERROR = 64;
public const ZIP_EXTRACT_ERROR = 64;
/** @const Invalid source file */
const INVALID_SOURCE = 128;
public const INVALID_SOURCE = 128;
/**
* Destination folder on which validation checks are applied
@@ -74,9 +75,10 @@ class Installer
* @param string $destination The local path to the Grav Instance
* @param array $options Options to use for installing. ie, ['install_path' => 'user/themes/antimatter']
* @param string $extracted The local path to the extacted ZIP package
* @param bool $keepExtracted True if you want to keep the original files
* @return bool True if everything went fine, False otherwise.
*/
public static function install($zip, $destination, $options = [], $extracted = null)
public static function install($zip, $destination, $options = [], $extracted = null, $keepExtracted = false)
{
$destination = rtrim($destination, DS);
$options = array_merge(self::$options, $options);
@@ -96,7 +98,7 @@ class Installer
// Create a tmp location
$tmp_dir = Grav::instance()['locator']->findResource('tmp://', true, true);
$tmp = $tmp_dir . '/Grav-' . uniqid();
$tmp = $tmp_dir . '/Grav-' . uniqid('', false);
if (!$extracted) {
$extracted = self::unZip($zip, $tmp);
@@ -111,7 +113,6 @@ class Installer
return false;
}
$is_install = true;
$installer = self::loadInstaller($extracted, $is_install);
@@ -140,7 +141,7 @@ class Installer
self::moveInstall($extracted, $install_path);
}
} else {
self::sophisticatedInstall($extracted, $install_path, $options['ignores']);
self::sophisticatedInstall($extracted, $install_path, $options['ignores'], $keepExtracted);
}
Folder::delete($tmp);
@@ -189,9 +190,8 @@ class Installer
$package_folder_name = preg_replace('#\./$#', '', $zip->getNameIndex(0));
$zip->close();
$extracted_folder = $destination . '/' . $package_folder_name;
return $extracted_folder;
return $destination . '/' . $package_folder_name;
}
self::$error = self::ZIP_EXTRACT_ERROR;
@@ -216,7 +216,7 @@ class Installer
$install_file = $installer_file_folder . DS . 'install.php';
if (file_exists($install_file)) {
require_once($install_file);
require_once $install_file;
} else {
return null;
}
@@ -279,24 +279,26 @@ class Installer
{
if (empty($source_path)) {
throw new \RuntimeException("Directory $source_path is missing");
} else {
Folder::rcopy($source_path, $install_path);
}
Folder::rcopy($source_path, $install_path);
return true;
}
/**
* @param $source_path
* @param $install_path
* @param $ignores
* @param $keep_source
*
* @return bool
*/
public static function sophisticatedInstall($source_path, $install_path, $ignores = [])
public static function sophisticatedInstall($source_path, $install_path, $ignores = [], $keep_source = false)
{
foreach (new \DirectoryIterator($source_path) as $file) {
if ($file->isLink() || $file->isDot() || in_array($file->getFilename(), $ignores)) {
if ($file->isLink() || $file->isDot() || \in_array($file->getFilename(), $ignores, true)) {
continue;
}
@@ -304,7 +306,11 @@ class Installer
if ($file->isDir()) {
Folder::delete($path);
Folder::move($file->getPathname(), $path);
if ($keep_source) {
Folder::copy($file->getPathname(), $path);
} else {
Folder::move($file->getPathname(), $path);
}
if ($file->getFilename() === 'bin') {
foreach (glob($path . DS . '*') as $bin_file) {
@@ -389,7 +395,7 @@ class Installer
return true;
}
return !(self::$error);
return !self::$error;
}
/**
@@ -469,23 +475,23 @@ class Installer
if (self::$error_zip) {
switch(self::$error_zip) {
case \ZipArchive::ER_EXISTS:
$msg .= "File already exists.";
$msg .= 'File already exists.';
break;
case \ZipArchive::ER_INCONS:
$msg .= "Zip archive inconsistent.";
$msg .= 'Zip archive inconsistent.';
break;
case \ZipArchive::ER_MEMORY:
$msg .= "Malloc failure.";
$msg .= 'Memory allocation failure.';
break;
case \ZipArchive::ER_NOENT:
$msg .= "No such file.";
$msg .= 'No such file.';
break;
case \ZipArchive::ER_NOZIP:
$msg .= "Not a zip archive.";
$msg .= 'Not a zip archive.';
break;
case \ZipArchive::ER_OPEN:
@@ -493,16 +499,20 @@ class Installer
break;
case \ZipArchive::ER_READ:
$msg .= "Read error.";
$msg .= 'Read error.';
break;
case \ZipArchive::ER_SEEK:
$msg .= "Seek error.";
$msg .= 'Seek error.';
break;
}
}
break;
case self::INVALID_SOURCE:
$msg = 'Invalid source file';
break;
default:
$msg = 'Unknown Error';
break;

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -40,14 +41,14 @@ class Licenses
public static function set($slug, $license)
{
$licenses = self::getLicenseFile();
$data = $licenses->content();
$data = (array)$licenses->content();
$slug = strtolower($slug);
if ($license && !self::validate($license)) {
return false;
}
if (!is_string($license)) {
if (!\is_string($license)) {
if (isset($data['licenses'][$slug])) {
unset($data['licenses'][$slug]);
} else {
@@ -68,24 +69,20 @@ class Licenses
*
* @param $slug
*
* @return string
* @return array|string
*/
public static function get($slug = null)
{
$licenses = self::getLicenseFile();
$data = $licenses->content();
$data = (array)$licenses->content();
$licenses->free();
$slug = strtolower($slug);
if (!$slug) {
return isset($data['licenses']) ? $data['licenses'] : [];
return $data['licenses'] ?? [];
}
if (!isset($data['licenses']) || !isset($data['licenses'][$slug])) {
return '';
}
return $data['licenses'][$slug];
return $data['licenses'][$slug] ?? '';
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -122,7 +123,7 @@ class GravCore extends AbstractPackageCollection
public function getMinPHPVersion()
{
// If non min set, assume current PHP version
if (is_null($this->min_php)) {
if (null === $this->min_php) {
$this->min_php = phpversion();
}
return $this->min_php;

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
@@ -11,8 +12,10 @@ namespace Grav\Common\GPM\Remote;
use Grav\Common\Data\Data;
use Grav\Common\GPM\Common\Package as BasePackage;
class Package extends BasePackage {
public function __construct($package, $package_type = null) {
class Package extends BasePackage
{
public function __construct($package, $package_type = null)
{
$data = new Data($package);
parent::__construct($data, $package_type);
}

View File

@@ -1,8 +1,9 @@
<?php
/**
* @package Grav.Common.GPM
* @package Grav\Common\GPM
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/

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