mirror of
https://github.com/getgrav/grav.git
synced 2025-12-05 23:39:58 +01:00
Compare commits
129 Commits
1.6.0-beta
...
1.6.0-rc.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
031bfdc1e7 | ||
|
|
1391dd38a4 | ||
|
|
f8f1d5854c | ||
|
|
a1c8cb9f78 | ||
|
|
54ce1b570a | ||
|
|
f2d66c810a | ||
|
|
26de0340ec | ||
|
|
333fbd0db1 | ||
|
|
4cf4c09339 | ||
|
|
34bf8fb5bb | ||
|
|
06eee1e711 | ||
|
|
b6ab086bf7 | ||
|
|
b1d43d292d | ||
|
|
19b92f17dd | ||
|
|
c713625a38 | ||
|
|
24e6b6c8f1 | ||
|
|
cebe28e591 | ||
|
|
b111a2c29d | ||
|
|
8743a8080c | ||
|
|
f2155aa04f | ||
|
|
45346b72f2 | ||
|
|
632a2d79b6 | ||
|
|
2fa5021a0c | ||
|
|
e4b1d2ed9e | ||
|
|
a3fea3d0fc | ||
|
|
d50e5d954d | ||
|
|
970af3870e | ||
|
|
9ba572d788 | ||
|
|
ba2c37c216 | ||
|
|
0e14a325f8 | ||
|
|
1141dabbd8 | ||
|
|
7a044c7397 | ||
|
|
d0b3dd1d99 | ||
|
|
4f80a1567d | ||
|
|
23098a6b02 | ||
|
|
5c8a37be64 | ||
|
|
7b8944e8f2 | ||
|
|
37fcb12ad1 | ||
|
|
f312c44a46 | ||
|
|
999e439d47 | ||
|
|
0566185c4f | ||
|
|
b91574e5c2 | ||
|
|
604361045b | ||
|
|
d45efb484c | ||
|
|
610c6c341c | ||
|
|
6daf480bfc | ||
|
|
bbdac0fd6d | ||
|
|
5f5bfdaa42 | ||
|
|
ad7fdd5c2b | ||
|
|
1321e582d5 | ||
|
|
6d6689b431 | ||
|
|
f78658738a | ||
|
|
7c99ece0e1 | ||
|
|
9058e1166d | ||
|
|
ebd94a532c | ||
|
|
ff8cc83b3a | ||
|
|
95a4ecb0f1 | ||
|
|
fbd3bbdbf9 | ||
|
|
f0e58adfbc | ||
|
|
5ad4ffd3cf | ||
|
|
0700e4bfdb | ||
|
|
82e5df960d | ||
|
|
3ace15d01a | ||
|
|
d367e6a1fb | ||
|
|
a09940ef6a | ||
|
|
6d89108cc4 | ||
|
|
bd01b07b4b | ||
|
|
4e31a114ef | ||
|
|
18d53079dd | ||
|
|
57de7cc03d | ||
|
|
2d7eeb611d | ||
|
|
e6b6e218f8 | ||
|
|
243055289b | ||
|
|
52c7d8dfb7 | ||
|
|
5b0e2e401e | ||
|
|
8381261b7c | ||
|
|
2ada99d314 | ||
|
|
bd27d6fe8c | ||
|
|
b94631533d | ||
|
|
fb9baaed8a | ||
|
|
254fe990ba | ||
|
|
0afe9d4f93 | ||
|
|
ccca3170d3 | ||
|
|
00b1f12dda | ||
|
|
9ca411aa24 | ||
|
|
e976aa0f5f | ||
|
|
02c979bdf6 | ||
|
|
88625c6362 | ||
|
|
76ff68a594 | ||
|
|
d27a2171ea | ||
|
|
075498d03b | ||
|
|
f04ae315e4 | ||
|
|
2e277f3cb3 | ||
|
|
29098aa8db | ||
|
|
659cd1bb92 | ||
|
|
3bf7c6943a | ||
|
|
189e29b5c6 | ||
|
|
0ede252fa3 | ||
|
|
d7d69b2be8 | ||
|
|
d79729f596 | ||
|
|
988d4ab047 | ||
|
|
437866dfcd | ||
|
|
c40dcf020c | ||
|
|
e520bd0eb8 | ||
|
|
3a9e57e228 | ||
|
|
22ed1286e8 | ||
|
|
1a37c54316 | ||
|
|
b6328944a3 | ||
|
|
751d1da704 | ||
|
|
5cf4eea09e | ||
|
|
f0cf4ed8ff | ||
|
|
fa61ed17b1 | ||
|
|
f1363877d8 | ||
|
|
e8825beae5 | ||
|
|
830a83e3d1 | ||
|
|
7d249c61c2 | ||
|
|
a224c8b348 | ||
|
|
c04208d5dd | ||
|
|
394dfad566 | ||
|
|
2c55fe01ac | ||
|
|
680bfef2c3 | ||
|
|
a23cbd0257 | ||
|
|
f5b77e8082 | ||
|
|
10378ac5af | ||
|
|
4a290e6194 | ||
|
|
c2c0fb242b | ||
|
|
9b37e50492 | ||
|
|
6c6e8d2605 | ||
|
|
5a6e6dceda |
85
CHANGELOG.md
85
CHANGELOG.md
@@ -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
|
||||
|
||||
|
||||
1
bin/grav
1
bin/grav
@@ -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();
|
||||
|
||||
@@ -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
329
composer.lock
generated
@@ -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": [],
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
19
system/blueprints/user/accounts.yaml
Normal file
19
system/blueprints/user/accounts.yaml
Normal 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
|
||||
@@ -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)
|
||||
|
||||
@@ -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
17
system/install.php
Normal 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();
|
||||
@@ -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:
|
||||
- الاثنين
|
||||
- الثلاثاء
|
||||
- الأربعاء
|
||||
- الخميس
|
||||
- الجمعة
|
||||
- السبت
|
||||
- الأحد
|
||||
- 'الاثنين'
|
||||
- 'الثلاثاء'
|
||||
- 'الأربعاء'
|
||||
- 'الخميس'
|
||||
- 'الجمعة'
|
||||
- 'السبت'
|
||||
- 'الأحد'
|
||||
|
||||
@@ -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: Невалидна дата
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -15,7 +15,6 @@ GRAV:
|
||||
YEAR: aasta
|
||||
DECADE: 10 aastat
|
||||
SEC: sek
|
||||
MIN: min
|
||||
HR: t
|
||||
WK: näd
|
||||
MO: k.
|
||||
|
||||
@@ -15,7 +15,6 @@ GRAV:
|
||||
YEAR: urtea
|
||||
DECADE: hamarkada
|
||||
SEC: seg
|
||||
MIN: min
|
||||
HR: h
|
||||
WK: ast
|
||||
MO: hil
|
||||
|
||||
@@ -33,7 +33,6 @@ GRAV:
|
||||
MIN_PLURAL: دقیقه
|
||||
HR_PLURAL: ساعت
|
||||
WK_PLURAL: هفته
|
||||
MO_PLURAL: mos
|
||||
YR_PLURAL: سال
|
||||
DEC_PLURAL: دهه
|
||||
FORM:
|
||||
|
||||
@@ -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 />
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
69
system/languages/is.yaml
Normal 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'
|
||||
@@ -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'
|
||||
|
||||
@@ -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:
|
||||
- '月'
|
||||
- '火'
|
||||
- '水'
|
||||
- '木'
|
||||
- '金'
|
||||
- '土'
|
||||
- '日'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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: må
|
||||
|
||||
@@ -15,7 +15,6 @@ GRAV:
|
||||
YEAR: rok
|
||||
DECADE: dekada
|
||||
SEC: sek
|
||||
MIN: min
|
||||
HR: godz
|
||||
WK: tydz
|
||||
MO: m-c
|
||||
|
||||
@@ -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ă
|
||||
|
||||
@@ -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: Выражение не распознано
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -15,7 +15,6 @@ GRAV:
|
||||
YEAR: leto
|
||||
DECADE: desetletje
|
||||
SEC: sek
|
||||
MIN: min
|
||||
HR: ur
|
||||
WK: T.
|
||||
MO: m
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
- จันทร์
|
||||
- อังคาร
|
||||
- พุธ
|
||||
- พฤหัสบดี
|
||||
- ศุกร์
|
||||
- เสาร์
|
||||
- อาทิตย์
|
||||
- 'จันทร์'
|
||||
- 'อังคาร'
|
||||
- 'พุธ'
|
||||
- 'พฤหัสบดี'
|
||||
- 'ศุกร์'
|
||||
- 'เสาร์'
|
||||
- 'อาทิตย์'
|
||||
|
||||
42
system/languages/zh-tw.yaml
Normal file
42
system/languages/zh-tw.yaml
Normal 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:
|
||||
- '星期一'
|
||||
- '星期二'
|
||||
- '星期三'
|
||||
- '星期四'
|
||||
- '星期五'
|
||||
- '星期六'
|
||||
- '星期日'
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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), '/'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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, ':');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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']) {
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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] ?? '';
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user