mirror of
https://github.com/getgrav/grav.git
synced 2025-12-05 23:39:58 +01:00
Compare commits
352 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
78b8125eae | ||
|
|
3ea86e1794 | ||
|
|
6df03063c8 | ||
|
|
e5990f431d | ||
|
|
b3d55ca81a | ||
|
|
a0e728b540 | ||
|
|
171a5c074c | ||
|
|
f33e89fa45 | ||
|
|
e33d71e4b9 | ||
|
|
ddbb1362dc | ||
|
|
a71403f158 | ||
|
|
88eb9f915a | ||
|
|
70e5262512 | ||
|
|
a1c116dd82 | ||
|
|
cc08da0c74 | ||
|
|
f7eab6b163 | ||
|
|
f59fa9a291 | ||
|
|
458c64086e | ||
|
|
345086538c | ||
|
|
c62e173955 | ||
|
|
1b8e267d0a | ||
|
|
eb72cb32bb | ||
|
|
4e01398545 | ||
|
|
b0dd2358f4 | ||
|
|
0c9333e60d | ||
|
|
0b53609fa0 | ||
|
|
cfa510e7f7 | ||
|
|
6d5f0ff9ba | ||
|
|
71939e18be | ||
|
|
45f8fe4d0b | ||
|
|
2179ef33a7 | ||
|
|
d0ae677e61 | ||
|
|
6a9b1f2214 | ||
|
|
b1117e45c9 | ||
|
|
382a836d80 | ||
|
|
db3e39f0cb | ||
|
|
80ce87e4a9 | ||
|
|
f0f29891d6 | ||
|
|
c66da5bedb | ||
|
|
1f21d259ea | ||
|
|
21b218e464 | ||
|
|
3b2fb023b8 | ||
|
|
92babda742 | ||
|
|
3cdbc5890a | ||
|
|
a8042a666c | ||
|
|
79f9640b12 | ||
|
|
65aeb82e21 | ||
|
|
e3b0aa0c50 | ||
|
|
7e617a632e | ||
|
|
fb5dd14875 | ||
|
|
490bdd6ce7 | ||
|
|
893b1dd1db | ||
|
|
1146959806 | ||
|
|
45103f81b4 | ||
|
|
c426f4a9cc | ||
|
|
0d27f2d77e | ||
|
|
b4c62101a4 | ||
|
|
950cd0854f | ||
|
|
4cd137830b | ||
|
|
aa19bcdcbe | ||
|
|
cf6bf7d1ec | ||
|
|
47665dbddb | ||
|
|
dc209453d0 | ||
|
|
5b89091f13 | ||
|
|
50ee844759 | ||
|
|
244758d438 | ||
|
|
71bbed12f9 | ||
|
|
8c2c1cb726 | ||
|
|
9d01140a63 | ||
|
|
259e775db8 | ||
|
|
d4c617ff19 | ||
|
|
c7680bb50a | ||
|
|
722ce55ccb | ||
|
|
5b950ce73f | ||
|
|
8dfa2110bf | ||
|
|
31aeaf6309 | ||
|
|
d96b023d72 | ||
|
|
4de3cab522 | ||
|
|
b34f70f91d | ||
|
|
9da8cad7fe | ||
|
|
e4a30f5966 | ||
|
|
814a050858 | ||
|
|
b6179bd2de | ||
|
|
e5ac37e3cf | ||
|
|
66463ddff3 | ||
|
|
956c2993ae | ||
|
|
3cf67cb2fd | ||
|
|
36afa9d848 | ||
|
|
694ab76d1e | ||
|
|
369c2e9ffa | ||
|
|
95ae35216a | ||
|
|
9c0477fa52 | ||
|
|
e1ab15e323 | ||
|
|
ff77d58acb | ||
|
|
adfbd5730b | ||
|
|
bf175983ec | ||
|
|
470b69c775 | ||
|
|
60648c43db | ||
|
|
75cd4f4306 | ||
|
|
2412115f41 | ||
|
|
598836d656 | ||
|
|
e1019c4420 | ||
|
|
a8a6c0c520 | ||
|
|
685d76231a | ||
|
|
0f9b9f780f | ||
|
|
1e2792874d | ||
|
|
0a061ce95e | ||
|
|
d82ee029e1 | ||
|
|
3b83c8204d | ||
|
|
9ab7a4759a | ||
|
|
c261d0d3f7 | ||
|
|
940415dddb | ||
|
|
60506e6f34 | ||
|
|
bd7a74d79e | ||
|
|
5fcf690918 | ||
|
|
904ec46a9f | ||
|
|
259c148edb | ||
|
|
0ae980062f | ||
|
|
a888f19ad1 | ||
|
|
479b89134d | ||
|
|
d0d083d985 | ||
|
|
396b412dda | ||
|
|
8be02e44c6 | ||
|
|
ec115a6a64 | ||
|
|
3b92c1aca4 | ||
|
|
2d9df03766 | ||
|
|
f086f84ff2 | ||
|
|
a2b23ad80e | ||
|
|
88350d9090 | ||
|
|
b2f27fbdf2 | ||
|
|
72b769aa63 | ||
|
|
8a7e38751a | ||
|
|
3e6c719441 | ||
|
|
8efb000801 | ||
|
|
6d6e92048e | ||
|
|
8c365d45a4 | ||
|
|
ee6448c307 | ||
|
|
f8c9e9ada4 | ||
|
|
87ab3ae4a7 | ||
|
|
68dc461bc0 | ||
|
|
4dd98610a4 | ||
|
|
0358e55aed | ||
|
|
9e5ed10925 | ||
|
|
3b7eb198cf | ||
|
|
81ed7379a9 | ||
|
|
e1950e985b | ||
|
|
84c61af807 | ||
|
|
93755c7329 | ||
|
|
5329918e2f | ||
|
|
efd7726646 | ||
|
|
4c762c0ac3 | ||
|
|
81a911572c | ||
|
|
c56bb86b61 | ||
|
|
ea010f19f0 | ||
|
|
1fae4504a2 | ||
|
|
d99c84d9f8 | ||
|
|
c732bfaeef | ||
|
|
4f0fee684a | ||
|
|
884faa91bb | ||
|
|
8c261a05cc | ||
|
|
95aa57ca50 | ||
|
|
0bc0e58707 | ||
|
|
a86e0d4b96 | ||
|
|
44c819b021 | ||
|
|
3f13d81c6f | ||
|
|
720a965c7e | ||
|
|
f0e263a404 | ||
|
|
ad33a63ad2 | ||
|
|
f7b7f3337d | ||
|
|
983fcc5e40 | ||
|
|
9c5b8b6496 | ||
|
|
71fc4eb16b | ||
|
|
ea2858ea2b | ||
|
|
d080578e83 | ||
|
|
8427eb6d3e | ||
|
|
e3a342dabd | ||
|
|
00b13d1093 | ||
|
|
7e5ff71623 | ||
|
|
72ba7ccab6 | ||
|
|
ea9c9fdca8 | ||
|
|
5e379bfa39 | ||
|
|
fb1e31d0e4 | ||
|
|
8e6b823833 | ||
|
|
6fcc4ec5d0 | ||
|
|
3e9866920b | ||
|
|
3a00ca0457 | ||
|
|
2f6e4b1ad8 | ||
|
|
01d627e8f7 | ||
|
|
51a386e252 | ||
|
|
30502e8042 | ||
|
|
01264ef70d | ||
|
|
de642df06e | ||
|
|
dd8945124e | ||
|
|
0b6428ec29 | ||
|
|
840862c26d | ||
|
|
f799a71001 | ||
|
|
3f10c05840 | ||
|
|
dbca0b451c | ||
|
|
6882037b85 | ||
|
|
5d2dc6c329 | ||
|
|
e9f28ab824 | ||
|
|
186eb8ae6c | ||
|
|
2258adcb05 | ||
|
|
20c4cdefe8 | ||
|
|
aba6382f2e | ||
|
|
32dd550178 | ||
|
|
ec3175fc89 | ||
|
|
dac1614306 | ||
|
|
37e92e4f55 | ||
|
|
1b0c3d1fce | ||
|
|
00cb9c3540 | ||
|
|
b9800b7c35 | ||
|
|
b5ab00639b | ||
|
|
cf38cccda1 | ||
|
|
024964eafb | ||
|
|
f8d736b24a | ||
|
|
62c4f3c768 | ||
|
|
31920bb153 | ||
|
|
b18b49a239 | ||
|
|
9d6a2dba09 | ||
|
|
de4af5dbcc | ||
|
|
f31541250f | ||
|
|
f570cea3bd | ||
|
|
0b54a7b4bc | ||
|
|
f464492582 | ||
|
|
81aa4601e4 | ||
|
|
6b57f29511 | ||
|
|
74296a80d0 | ||
|
|
8dbc394ae7 | ||
|
|
89709a7190 | ||
|
|
e6320fa327 | ||
|
|
3bf979bd0f | ||
|
|
6fa96ca554 | ||
|
|
60ce105fa5 | ||
|
|
ec16b5184e | ||
|
|
a7a9b5d132 | ||
|
|
460ca49f9b | ||
|
|
32a486f1d4 | ||
|
|
1237f0a6d6 | ||
|
|
9ec3e7d731 | ||
|
|
d6dcd96301 | ||
|
|
2957077935 | ||
|
|
6ba1cff114 | ||
|
|
6218a4b366 | ||
|
|
28c4305d46 | ||
|
|
a2413718f3 | ||
|
|
767a17bf50 | ||
|
|
d75c87ca5e | ||
|
|
c2a8145f2c | ||
|
|
26e4768bc5 | ||
|
|
4464f29169 | ||
|
|
2ea39309b6 | ||
|
|
1c0ed43afa | ||
|
|
a092aed4ed | ||
|
|
7c2b21fb60 | ||
|
|
e1ca3c2f70 | ||
|
|
0da5ccb3e1 | ||
|
|
2830ba9120 | ||
|
|
5a355fb94e | ||
|
|
b0add67cdd | ||
|
|
236c38e65d | ||
|
|
c9c23c6c4f | ||
|
|
8f0443a73d | ||
|
|
c9271c80a7 | ||
|
|
62d9db7650 | ||
|
|
4f7dad2872 | ||
|
|
57d6be0f78 | ||
|
|
ae55b4794f | ||
|
|
d82851af10 | ||
|
|
730231b8b7 | ||
|
|
82015d4ae7 | ||
|
|
4376c8ce57 | ||
|
|
aa1e1bc0ad | ||
|
|
35d4d00429 | ||
|
|
3e7f67f589 | ||
|
|
c08341046b | ||
|
|
010753bdd6 | ||
|
|
d36bc4b8a2 | ||
|
|
847f09a2ac | ||
|
|
28469a6bf6 | ||
|
|
0d19bc6e97 | ||
|
|
492cc1d2f1 | ||
|
|
4d4efb31e3 | ||
|
|
c7bc5f5b59 | ||
|
|
41b8fbb0e0 | ||
|
|
e60ba13d75 | ||
|
|
e0deeeb551 | ||
|
|
499b25aad8 | ||
|
|
9fd580c49b | ||
|
|
e09bae918c | ||
|
|
0abde01442 | ||
|
|
03f71fa49d | ||
|
|
4f92568171 | ||
|
|
b80fcca0cf | ||
|
|
879eb27540 | ||
|
|
7b7235297e | ||
|
|
34ab8408fa | ||
|
|
f19297d5f7 | ||
|
|
78b8051627 | ||
|
|
3dd0cabeac | ||
|
|
b992d7f185 | ||
|
|
a7e82f279a | ||
|
|
6d0d6c22d3 | ||
|
|
7e52112b21 | ||
|
|
a900b89795 | ||
|
|
cad8510dae | ||
|
|
7cafeb2870 | ||
|
|
b3b5fca16c | ||
|
|
ec884997ef | ||
|
|
3a45748ce6 | ||
|
|
c4e10cf59f | ||
|
|
2c252c43b4 | ||
|
|
382756f79b | ||
|
|
11013cbb57 | ||
|
|
2377be9a2b | ||
|
|
b1938c9790 | ||
|
|
5d842349e5 | ||
|
|
0323a898cb | ||
|
|
d275532cf8 | ||
|
|
7306f164e9 | ||
|
|
3ca58e9ae1 | ||
|
|
88219fbf0e | ||
|
|
5eefc91781 | ||
|
|
67ef9b221a | ||
|
|
c82a35cea0 | ||
|
|
840441bc9b | ||
|
|
9556e47874 | ||
|
|
45fd533186 | ||
|
|
5248519c37 | ||
|
|
5b9a0fb237 | ||
|
|
389ffe1c7a | ||
|
|
7b39a1bd8f | ||
|
|
4c5c5925b2 | ||
|
|
96df7deaf4 | ||
|
|
7666651324 | ||
|
|
b9db2f3322 | ||
|
|
84a1ab6ca5 | ||
|
|
3b89377570 | ||
|
|
c3c31880b0 | ||
|
|
52449246e5 | ||
|
|
b03de18304 | ||
|
|
9bb6f5366e | ||
|
|
d126d1b656 | ||
|
|
6f2fa9311a | ||
|
|
61061220d7 | ||
|
|
aa7e64f2b7 | ||
|
|
b58210de1a | ||
|
|
0bb52c75ce | ||
|
|
da6b41f8a6 | ||
|
|
1ab2f7083c | ||
|
|
707710d679 | ||
|
|
c103efea22 |
8
.github/workflows/build.yaml
vendored
8
.github/workflows/build.yaml
vendored
@@ -4,8 +4,13 @@ on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
permissions:
|
||||
contents: write # for release creation (svenstaro/upload-release-action)
|
||||
|
||||
if: "!github.event.release.prerelease"
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -52,6 +57,9 @@ jobs:
|
||||
file_glob: true
|
||||
|
||||
slack:
|
||||
permissions:
|
||||
actions: read # to list jobs for workflow run (technote-space/workflow-conclusion-action)
|
||||
|
||||
name: Slack
|
||||
needs: build
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
5
.github/workflows/tests.yaml
vendored
5
.github/workflows/tests.yaml
vendored
@@ -6,6 +6,9 @@ on:
|
||||
pull_request:
|
||||
branches: [ develop ]
|
||||
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
|
||||
jobs:
|
||||
|
||||
unit-tests:
|
||||
@@ -14,7 +17,7 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php: [ 8.1, 8.0, 7.4, 7.3]
|
||||
php: [8.3, 8.2, 8.1, 8.0, 7.4, 7.3]
|
||||
os: [ubuntu-latest]
|
||||
|
||||
steps:
|
||||
|
||||
3
.github/workflows/trigger-skeletons.yml
vendored
3
.github/workflows/trigger-skeletons.yml
vendored
@@ -12,6 +12,9 @@ on:
|
||||
required: true
|
||||
default: true
|
||||
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
8
.gitignore
vendored
8
.gitignore
vendored
@@ -25,8 +25,11 @@ user/plugins/*
|
||||
!user/plugins/.*
|
||||
user/themes/*
|
||||
!user/themes/.*
|
||||
user/localhost/config/security.yaml
|
||||
user/config/security.yaml
|
||||
user/**/config/security.yaml
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.gravenv
|
||||
|
||||
# OS Generated
|
||||
.DS_Store*
|
||||
@@ -45,4 +48,3 @@ tests/cache/*
|
||||
tests/error.log
|
||||
system/templates/testing/*
|
||||
/user/config/versions.yaml
|
||||
/user/cli/config/security.yaml
|
||||
|
||||
298
CHANGELOG.md
298
CHANGELOG.md
@@ -1,8 +1,304 @@
|
||||
# v1.7.44
|
||||
## 01/05/2024
|
||||
|
||||
1. [](#new)
|
||||
* Added PHP `8.3` to tests [#3782](https://github.com/getgrav/grav/pull/3782)
|
||||
* Added debugger messages when Page routes conflict
|
||||
* Added `ISO 8601` date format [#3721](https://github.com/getgrav/grav/pull/37210)
|
||||
* Added support for `.vcf` (vCard) in media configuration [#3772](https://github.com/getgrav/grav/pull/3772)
|
||||
1. [](#improved)
|
||||
* Update jQuery to `v3.6.4` [#3713](https://github.com/getgrav/grav/pull/3713)
|
||||
* Updated vendor libraries including Dom-Sanitizer `v1.0.7` that addresses an XSS issue
|
||||
* Updated `bin/composer.phar` to latest `2.6.6`
|
||||
* Updated vendor libraries to latest
|
||||
* Updated language files
|
||||
* Updated copyright year
|
||||
1. [](#bugfix)
|
||||
* Fixed a math rounding issue with number validation when using floating point steps [#3761](https://github.com/getgrav/grav/issues/3761)
|
||||
* Fixed an issue with `Inflector::ordinalize()` not working as expected [#3759](https://github.com/getgrav/grav/pull/3759)
|
||||
* Fixed various issues with file extension checking with dangerous extensions [#3756(https://github.com/getgrav/grav/pull/3756)]
|
||||
* Fix for invalid input to foreach in `UserGroupObject` [#3724](https://github.com/getgrav/grav/pull/3724)
|
||||
* Fixed exception: `Property 'jsmodule_pipeline_include_externals' does not exist in object` [#3661](https://github.com/getgrav/grav/pull/3661)
|
||||
* Fixed `too few arguments exception` in FlexObjects [#3658](https://github.com/getgrav/grav/pull/3658)
|
||||
|
||||
# v1.7.43
|
||||
## 10/02/2023
|
||||
|
||||
1. [](#new)
|
||||
* Add the ability to programatically set a page's `modified` timestamp via a `modified:` frontmatter entry
|
||||
2. [](#improved)
|
||||
* Update vendor libraries
|
||||
* Include `phar` in the list of `security.uploads_dangerous_extensions`
|
||||
* When enabled `system.languages.debug` now dumps **Key -> Value** to debugger [#3752](https://github.com/getgrav/grav/issues/3752)
|
||||
* Updated built-in composer to latest `2.6.4` [#3748](https://github.com/getgrav/grav/issues/3748)
|
||||
* Added support for `@import` to ensure paths are rewritten correctly in CSS pipeline [#3750](https://github.com/getgrav/grav/pull/3750)
|
||||
|
||||
# v1.7.42.3
|
||||
## 07/18/2023
|
||||
|
||||
2. [](#improved)
|
||||
* Fixed a typo in `Utils::isDangerousFunction`
|
||||
|
||||
# v1.7.42.2
|
||||
## 07/18/2023
|
||||
|
||||
2. [](#improved)
|
||||
* In `Utils::isDangerousFunction`, handle double `\\` in `|map` twig filter to mitigate SSTI attack
|
||||
* Better handle empty email in `Validatoin::typeEmail()`
|
||||
|
||||
# v1.7.42.1
|
||||
## 06/15/2023
|
||||
|
||||
2. [](#improved)
|
||||
* Quick fix for `isDangerousFunction` when `$name` was a closure [#3727](https://github.com/getgrav/grav/issues/3727)
|
||||
|
||||
# v1.7.42
|
||||
## 06/14/2023
|
||||
|
||||
1. [](#new)
|
||||
* Added a new `system.languages.debug` option that adds a `<span class="translate-debug"></span>` around strings translated with `|t`. This can be styled by the theme as needed.
|
||||
1. [](#improved)
|
||||
* More robust SSTI handling in `filter`, `map`, and `reduce` Twig filters and functions
|
||||
* Various SSTI improvements `Utils::isDangerousFunction()`
|
||||
1. [](#bugfix)
|
||||
* Fixed Twig `|map()` allowing code execution
|
||||
* Fixed Twig `|reduce()` allowing code execution
|
||||
|
||||
# v1.7.41.2
|
||||
## 06/01/2023
|
||||
|
||||
1. [](#improved)
|
||||
* Added the ability to set a configurable 'key' for the Twig Cache Tag: `{% cache 'my-key' 600 %}`
|
||||
1. [](#bugfix)
|
||||
* Fixed an issue with special characters in slug's would cause redirect loops
|
||||
|
||||
# v1.7.41.1
|
||||
## 05/10/2023
|
||||
|
||||
1. [](#bugfix)
|
||||
* Fixed certain UTF-8 characters breaking `Truncator` class [#3716](https://github.com/getgrav/grav/issues/3716)
|
||||
|
||||
# v1.7.41
|
||||
## 05/09/2023
|
||||
|
||||
1. [](#improved)
|
||||
* Removed `FILTER_SANITIZE_STRING` input filter in favor of `htmlspecialchars(strip_tags())` for PHP 8.2+
|
||||
* Added `GRAV_SANITIZE_STRING` constant to replace `FILTER_SANITIZE_STRING` for PHP 8.2+
|
||||
* Support non-deprecated style dynamic properties in `Parsedown` class via `ParseDownGravTrait` for PHP 8.2+
|
||||
* Modified `Truncator` to not use deprecated `mb_convert_encoding()` for PHP 8.2+
|
||||
* Fixed passing null into `mb_strpos()` deprecated for PHP 8.2+
|
||||
* Updated internal `TwigDeferredExtension` to be PHP 8.2+ compatible
|
||||
* Upgraded `getgrav/image` fork to take advantage of various PHP 8.2+ fixes
|
||||
* Use `UserGroupObject::groupNames` method in blueprints for PHP 8.2+
|
||||
* Comment out `files-upload` deprecated message as this is not going to be removed
|
||||
* Added various public `Twig` class variables used by admin to address deprecated messages for PHP 8.2+
|
||||
* Added `parse_url` to list of PHP functions supported in Twig Extension
|
||||
* Added support for dynamic functions in `Parsedown` to stop deprecation messages in PHP 8.2+
|
||||
|
||||
# v1.7.40
|
||||
## 03/22/2023
|
||||
|
||||
1. [](#new)
|
||||
* Added a new `timestamp: true|false` option for individual assets
|
||||
1. [](#improved)
|
||||
* Removed outdated `xcache` setting [#3615](https://github.com/getgrav/grav/pull/3615)
|
||||
* Updated `robots.txt` [#3625](https://github.com/getgrav/grav/pull/3625)
|
||||
1. [](#bugfix)
|
||||
* Fixed `force_ssl` redirect in case of undefined hostname [#3702](https://github.com/getgrav/grav/pull/3702)
|
||||
* Fixed an issue with duplicate identical page paths
|
||||
* Fixed `BlueprintSchema:flattenData` to properly handle ignored fields
|
||||
* Fixed LogViewer regex greediness [#3684](https://github.com/getgrav/grav/pull/3684)
|
||||
* Fixed `whoami` command [#3695](https://github.com/getgrav/grav/pull/3695)
|
||||
|
||||
# v1.7.39.4
|
||||
## 02/22/2023
|
||||
|
||||
1. [](#bugfix)
|
||||
* Reverted a reorganization of `account.yaml` that caused username to be disabled [admin#2344](https://github.com/getgrav/grav-plugin-admin/issues/2344)
|
||||
|
||||
# v1.7.39.3
|
||||
## 02/21/2023
|
||||
|
||||
1. [](#bugfix)
|
||||
* Fix for overzealous modular page template rendering fix in 1.7.39 causing Feed plugin to break [#3689](https://github.com/getgrav/grav/issues/3689)
|
||||
|
||||
# v1.7.39.2
|
||||
## 02/20/2023
|
||||
|
||||
1. [](#bugfix)
|
||||
* Fix for invalid session breaking Flex Accounts (when switching from Regular to Flex)
|
||||
|
||||
# v1.7.39.1
|
||||
## 02/20/2023
|
||||
|
||||
1. [](#bugfix)
|
||||
* Fix for broken image CSS with the latest version of DebugBar
|
||||
|
||||
# v1.7.39
|
||||
## 02/19/2023
|
||||
|
||||
1. [](#improved)
|
||||
* Vendor library updates to latest versions
|
||||
1. [](#bugfix)
|
||||
* Various PHP 8.2 fixes
|
||||
* Fixed an issue with modular pages rendering thew wrong template when dynamically changing the page
|
||||
* Fixed an issue with `email` validation that was failing on UTF-8 characters. Following best practices and now only check for `@` and length.
|
||||
* Fixed PHPUnit tests to remove deprecation warnings
|
||||
|
||||
# v1.7.38
|
||||
## 01/02/2023
|
||||
|
||||
1. [](#new)
|
||||
* New `onBeforeSessionStart()` event to be used to store data lost during session regeneration (e.g. login)
|
||||
1. [](#improved)
|
||||
* Vendor library updates to latest versions
|
||||
* Updated `bin/composer.phar` to latest `2.4.4` version [#3627](https://github.com/getgrav/grav/issues/3627)
|
||||
1. [](#bugfix)
|
||||
* Don't fail hard if pages recurse with same path
|
||||
* Github workflows security hardening [#3624](https://github.com/getgrav/grav/pull/3624)
|
||||
|
||||
# v1.7.37.1
|
||||
## 10/05/2022
|
||||
|
||||
1. [](#bugfix)
|
||||
* Fixed a bad return type [#3630](https://github.com/getgrav/grav/issues/3630)
|
||||
|
||||
# v1.7.37
|
||||
## 10/05/2022
|
||||
|
||||
1. [](#new)
|
||||
* Added new `onPageHeaders()` event to allow for header modification as needed
|
||||
* Added a `system.pages.dirs` configuration option to allow for configurable paths, and multiple page paths
|
||||
* Added new `Pages::getSimplePagesHash` which is useful for caching pages specific data
|
||||
* Updated to latest vendor libraries
|
||||
1. [](#bugfix)
|
||||
* An attempt to workaround windows reading locked file issue [getgrav/grav-plugin-admin#2299](https://github.com/getgrav/grav-plugin-admin/issues/2299)
|
||||
* Force user index file to be updated to fix email addresses [getgrav/grav-plugin-login#229](https://github.com/getgrav/grav-plugin-login/issues/229)
|
||||
|
||||
# v1.7.36
|
||||
## 09/08/2022
|
||||
|
||||
1. [](#new)
|
||||
* Added `authorize-*@:` support for Flex blueprints, e.g. `authorize-disabled@: not delete` disables the field if user does not have access to delete object
|
||||
* Added support for `flex-ignore@` to hide all the nested fields in the blueprint
|
||||
1. [](#bugfix)
|
||||
* Fixed login with a capitalised email address when using old users [getgrav/grav-plugin-login#229](https://github.com/getgrav/grav-plugin-login/issues/229)
|
||||
|
||||
# v1.7.35
|
||||
## 08/04/2022
|
||||
|
||||
1. [](#new)
|
||||
* Added support for `multipart/form-data` content type in PUT and PATCH requests
|
||||
* Added support for object relationships
|
||||
* Added variables `$environment` (string), `$request` (PSR-7 ServerRequestInterface|null) and `$uri` (PSR-7 Uri|null) to be used in `setup.php`
|
||||
1. [](#improved)
|
||||
* Minor vendor updates
|
||||
|
||||
# v1.7.34
|
||||
## 06/14/2022
|
||||
|
||||
1. [](#new)
|
||||
* Added back Yiddish to Language Codes [#3336](https://github.com/getgrav/grav/pull/3336)
|
||||
* Ignore upcoming `media.json` file in media
|
||||
1. [](#bugfix)
|
||||
* Regression: Fixed saving page with a new language causing cache corruption [getgrav/grav-plugin-admin#2282](https://github.com/getgrav/grav-plugin-admin/issues/2282)
|
||||
* Fixed a potential fatal error when using watermark in images
|
||||
* Fixed `bin/grav install` command with arbitrary destination folder name
|
||||
* Fixed Twig `|filter()` allowing code execution
|
||||
* Fixed login and user search by email not being case-insensitive when using Flex Users
|
||||
|
||||
# v1.7.33
|
||||
## 04/25/2022
|
||||
|
||||
1. [](#improved)
|
||||
* When saving yaml and markdown, create also a cached version of the file and recompile it in opcache
|
||||
2. [](#bugfix)
|
||||
* Fixed missing changes in **yaml** & **markdown** files if saved multiple times during the same second because of a caching issue
|
||||
* Fixed XSS check not detecting onX events without quotes
|
||||
* Fixed default collection ordering in pages admin
|
||||
|
||||
# v1.7.32
|
||||
## 03/28/2022
|
||||
|
||||
1. [](#new)
|
||||
* Added `|replace_last(search, replace)` filter
|
||||
* Added `parseurl` Twig function to expose PHP's `parse_url` function
|
||||
2. [](#improved)
|
||||
* Added multi-language support for page routes in `Utils::url()`
|
||||
* Set default maximum length for text fields
|
||||
- `password`: 256
|
||||
- `email`: 320
|
||||
- `text`, `url`, `hidden`, `commalist`: 2048
|
||||
- `text` (multiline), `textarea`: 65536
|
||||
3. [](#bugfix)
|
||||
* Fixed issue with `system.cache.gzip: true` resulted in "Fetch Failed" for PHP 8.0.17 and PHP 8.1.4 [PHP issue #8218](https://github.com/php/php-src/issues/8218)
|
||||
* Fix for multi-lang issues with Security Report
|
||||
* Fixed page search not working with selected language [#3316](https://github.com/getgrav/grav/issues/3316)
|
||||
|
||||
# v1.7.31
|
||||
## 03/14/2022
|
||||
|
||||
1. [](#new)
|
||||
* Added new local Multiavatar (local generation). **This will be default in Grav 1.8**
|
||||
* Added support to get image size for SVG vector images [#3533](https://github.com/getgrav/grav/pull/3533)
|
||||
* Added XSS check for uploaded SVG files before they get stored
|
||||
* Fixed phpstan issues (All level 2, Framework level 5)
|
||||
2. [](#improved)
|
||||
* Moved Accounts out of Experimental section of System configuration to new "Accounts" tab
|
||||
3. [](#bugfix)
|
||||
* Fixed `'mbstring' extension is not loaded` error, use Polyfill instead [#3504](https://github.com/getgrav/grav/pull/3504)
|
||||
* Fixed new `Utils::pathinfo()` and `Utils::basename()` being too strict for legacy use [#3542](https://github.com/getgrav/grav/issues/3542)
|
||||
* Fixed non-standard video html atributes generated by `{{ media.html() }}` [#3540](https://github.com/getgrav/grav/issues/3540)
|
||||
* Fixed entity sanitization for XSS detection
|
||||
* Fixed avatar save location when `account://` stream points to custom directory
|
||||
* Fixed bug in `Utils::url()` when path contains part of root
|
||||
|
||||
# v1.7.30
|
||||
## 02/07/2022
|
||||
|
||||
1. [](#new)
|
||||
* Added twig filter `|field_parent` to get parent field name
|
||||
2. [](#bugfix)
|
||||
* Fixed error while deleting retina image in admin
|
||||
* Fixed "Page Authors" field in Security tab, wrongly loading and saving the value [#3525](https://github.com/getgrav/grav/issues/3525)
|
||||
* Fixed accounts filter only matches against email address [getgrav/grav-plugin-admin#2224](https://github.com/getgrav/grav-plugin-admin/issues/2224)
|
||||
|
||||
# v1.7.29.1
|
||||
## 01/31/2022
|
||||
|
||||
1. [](#bugfix)
|
||||
* Fixed `Call to undefined method` error when upgrading from Grav 1.6 [#3523](https://github.com/getgrav/grav/issues/3523)
|
||||
|
||||
# v1.7.29
|
||||
## 01/28/2022
|
||||
|
||||
1. [](#new)
|
||||
* Added support for registering assets from `HtmlBlock`
|
||||
* Added unicode-safe `Utils::basename()` and `Utils::pathinfo()` methods
|
||||
2. [](#improved)
|
||||
* Improved `Filesystem::basename()` and `Filesystem::pathinfo()` to be unicode-safe
|
||||
* Made path handling unicode-safe, use new `Utils::basename()` and `Utils::pathinfo()` everywhere
|
||||
3. [](#bugfix)
|
||||
* Fixed error on thumbnail image creation
|
||||
* Fixed MimeType for `gzip` (`application/x-gzip`)
|
||||
|
||||
# v1.7.28
|
||||
## 01/24/2022
|
||||
|
||||
1. [](#new)
|
||||
* Added links and modules support to `HtmlBlock` class
|
||||
* Added module support for twig script tag: `{% script module 'theme://js/module.mjs' %}`
|
||||
* Added twig tag for links: `{% link icon 'theme://images/favicon.png' priority: 20 with { type: 'image/png' } %}`
|
||||
* Added `HtmlBlock` support for `{% style %}`, `{% script %}` and `{% link %}` tags
|
||||
* Support for page-level `redirect_default_route` frontmatter header override
|
||||
3. [](#bugfix)
|
||||
* Fixed XSS check not detecting escaped `:`
|
||||
|
||||
# v1.7.27.1
|
||||
## 01/12/2022
|
||||
|
||||
3. [](#bugfix)
|
||||
* Fixed a typo in CSS Asset pipeline that was erroneously joining files with `;`
|
||||
* Fixed a typo in CSS Asset pipeline that was erroneously joining files with `;`
|
||||
|
||||
# v1.7.27
|
||||
## 01/12/2022
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[](https://github.com/phpstan/phpstan)
|
||||
[](https://chat.getgrav.org)
|
||||
[](https://github.com/getgrav/grav/actions?query=workflow%3A%22PHP+Tests%22) [](#backers) [](#supporters) [](#sponsors)
|
||||
[](https://github.com/getgrav/grav/actions?query=workflow%3A%22PHP+Tests%22) [](#backers) [](#supporters) [](#sponsors)
|
||||
|
||||
Grav is a **Fast**, **Simple**, and **Flexible**, file-based Web-platform. There is **Zero** installation required. Just extract the ZIP archive, and you are already up and running. It follows similar principles to other flat-file CMS platforms, but has a different design philosophy than most. Grav comes with a powerful **Package Management System** to allow for simple installation and upgrading of plugins and themes, as well as simple updating of Grav itself.
|
||||
|
||||
@@ -13,7 +13,7 @@ The underlying architecture of Grav is designed to use well-established and _bes
|
||||
* [YAML](https://yaml.org): for simple configuration
|
||||
* [Parsedown](https://parsedown.org/): for fast Markdown and Markdown Extra support
|
||||
* [Doctrine Cache](https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/caching.html): layer for performance
|
||||
* [Pimple Dependency Injection Container](https://pimple.sensiolabs.org/): for extensibility and maintainability
|
||||
* [Pimple Dependency Injection Container](https://github.com/silexphp/Pimple): for extensibility and maintainability
|
||||
* [Symfony Event Dispatcher](https://symfony.com/doc/current/components/event_dispatcher/introduction.html): for plugin event handling
|
||||
* [Symfony Console](https://symfony.com/doc/current/components/console/introduction.html): for CLI interface
|
||||
* [Gregwar Image Library](https://github.com/Gregwar/Image): for dynamic image manipulation
|
||||
|
||||
10
SECURITY.md
10
SECURITY.md
@@ -18,4 +18,12 @@ If you cannot update to the latest stable version available because, for example
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Please contact security@getgrav.org with a detailed explaination of the security issue found and we will work with you to get it resolved as fast as possible.
|
||||
Please contact security@getgrav.org with a detailed explanation of the security issue found. If it appears to be a legitimate issues, please submit an **advisory via GitHub Security**: https://github.com/getgrav/grav/security/advisories
|
||||
|
||||
>> NOTE: Please do not use 3rd party security issue reporting services, we like to keep everything in the GitHub ecosystem for easier manageability.
|
||||
|
||||
## Bug Bounties
|
||||
|
||||
We do greatly appreciate your efforts to improve Grav, but unfortunately because we are a small open source project, we **do not have the resources to offer bounties** for security issues found.
|
||||
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
/* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved. */
|
||||
/* @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. */
|
||||
|
||||
@@ -1 +1 @@
|
||||
/* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved. */
|
||||
/* @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. */
|
||||
|
||||
Binary file not shown.
10
bin/gpm
10
bin/gpm
@@ -2,7 +2,7 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -25,14 +25,10 @@ if (!file_exists(__DIR__ . '/../vendor/autoload.php')){
|
||||
|
||||
$autoload = require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
if (!ini_get('date.timezone')) {
|
||||
date_default_timezone_set('UTC');
|
||||
}
|
||||
// Set timezone to default, falls back to system if php.ini not set
|
||||
date_default_timezone_set(@date_default_timezone_get());
|
||||
|
||||
// Set internal encoding.
|
||||
if (!\extension_loaded('mbstring')) {
|
||||
die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
|
||||
}
|
||||
@ini_set('default_charset', 'UTF-8');
|
||||
mb_internal_encoding('UTF-8');
|
||||
|
||||
|
||||
10
bin/grav
10
bin/grav
@@ -2,7 +2,7 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -25,14 +25,10 @@ if (!file_exists(__DIR__ . '/../vendor/autoload.php')){
|
||||
|
||||
$autoload = require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
if (!ini_get('date.timezone')) {
|
||||
date_default_timezone_set('UTC');
|
||||
}
|
||||
// Set timezone to default, falls back to system if php.ini not set
|
||||
date_default_timezone_set(@date_default_timezone_get());
|
||||
|
||||
// Set internal encoding.
|
||||
if (!\extension_loaded('mbstring')) {
|
||||
die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
|
||||
}
|
||||
@ini_set('default_charset', 'UTF-8');
|
||||
mb_internal_encoding('UTF-8');
|
||||
|
||||
|
||||
10
bin/plugin
10
bin/plugin
@@ -2,7 +2,7 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -25,14 +25,10 @@ if (!file_exists(__DIR__ . '/../vendor/autoload.php')){
|
||||
|
||||
$autoload = require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
if (!ini_get('date.timezone')) {
|
||||
date_default_timezone_set('UTC');
|
||||
}
|
||||
// Set timezone to default, falls back to system if php.ini not set
|
||||
date_default_timezone_set(@date_default_timezone_get());
|
||||
|
||||
// Set internal encoding.
|
||||
if (!\extension_loaded('mbstring')) {
|
||||
die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
|
||||
}
|
||||
@ini_set('default_charset', 'UTF-8');
|
||||
mb_internal_encoding('UTF-8');
|
||||
|
||||
|
||||
2
cache/.gitkeep
vendored
2
cache/.gitkeep
vendored
@@ -1 +1 @@
|
||||
/* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved. */
|
||||
/* @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. */
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
"ext-zip": "*",
|
||||
"ext-dom": "*",
|
||||
"ext-libxml": "*",
|
||||
"ext-gd": "*",
|
||||
"symfony/polyfill-mbstring": "~1.23",
|
||||
"symfony/polyfill-iconv": "^1.23",
|
||||
"symfony/polyfill-php74": "^1.23",
|
||||
@@ -59,11 +60,12 @@
|
||||
"itsgoingd/clockwork": "^5.0",
|
||||
"symfony/http-client": "^4.4",
|
||||
"composer/semver": "^1.4",
|
||||
"rhukster/dom-sanitizer": "^1.0"
|
||||
"rhukster/dom-sanitizer": "^1.0",
|
||||
"multiavatar/multiavatar-php": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"codeception/codeception": "^4.1",
|
||||
"phpstan/phpstan": "^1.2",
|
||||
"phpstan/phpstan": "^1.8",
|
||||
"phpstan/phpstan-deprecation-rules": "^1.0",
|
||||
"phpunit/php-code-coverage": "~9.2",
|
||||
"getgrav/markdowndocs": "^2.0",
|
||||
@@ -82,7 +84,8 @@
|
||||
"ext-intl": "Recommended for multi-language sites",
|
||||
"ext-memcache": "Needed to support Memcache servers",
|
||||
"ext-memcached": "Needed to support Memcached servers",
|
||||
"ext-redis": "Needed to support Redis servers"
|
||||
"ext-redis": "Needed to support Redis servers",
|
||||
"ext-exif": "Needed to use exif data from images."
|
||||
},
|
||||
"config": {
|
||||
"apcu-autoloader": true,
|
||||
@@ -114,8 +117,8 @@
|
||||
"scripts": {
|
||||
"api-17": "vendor/bin/phpdoc-md generate system/src > user/pages/14.api/default.17.md",
|
||||
"post-create-project-cmd": "bin/grav install",
|
||||
"phpstan": "vendor/bin/phpstan analyse -l 1 -c ./tests/phpstan/phpstan.neon --memory-limit=720M system/src",
|
||||
"phpstan-framework": "vendor/bin/phpstan analyse -l 4 -c ./tests/phpstan/phpstan.neon --memory-limit=480M system/src/Grav/Framework system/src/Grav/Events system/src/Grav/Installer",
|
||||
"phpstan": "vendor/bin/phpstan analyse -l 2 -c ./tests/phpstan/phpstan.neon --memory-limit=720M system/src",
|
||||
"phpstan-framework": "vendor/bin/phpstan analyse -l 5 -c ./tests/phpstan/phpstan.neon --memory-limit=480M system/src/Grav/Framework system/src/Grav/Events system/src/Grav/Installer",
|
||||
"phpstan-plugins": "vendor/bin/phpstan analyse -l 1 -c ./tests/phpstan/plugins.neon --memory-limit=400M user/plugins",
|
||||
"test": "vendor/bin/codecept run unit",
|
||||
"test-windows": "vendor\\bin\\codecept run unit"
|
||||
|
||||
1588
composer.lock
generated
1588
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
||||
/* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved. */
|
||||
/* @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. */
|
||||
|
||||
30
index.php
30
index.php
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav.Core
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -20,16 +20,6 @@ if (PHP_SAPI === 'cli-server') {
|
||||
}
|
||||
}
|
||||
|
||||
// Set timezone to default, falls back to system if php.ini not set
|
||||
date_default_timezone_set(@date_default_timezone_get());
|
||||
|
||||
// Set internal encoding.
|
||||
if (!\extension_loaded('mbstring')) {
|
||||
die("'mbstring' extension is not loaded. This is required for Grav to run correctly");
|
||||
}
|
||||
@ini_set('default_charset', 'UTF-8');
|
||||
mb_internal_encoding('UTF-8');
|
||||
|
||||
// Ensure vendor libraries exist
|
||||
$autoload = __DIR__ . '/vendor/autoload.php';
|
||||
if (!is_file($autoload)) {
|
||||
@@ -39,23 +29,23 @@ if (!is_file($autoload)) {
|
||||
// Register the auto-loader.
|
||||
$loader = require $autoload;
|
||||
|
||||
// Set timezone to default, falls back to system if php.ini not set
|
||||
date_default_timezone_set(@date_default_timezone_get());
|
||||
|
||||
// Set internal encoding.
|
||||
@ini_set('default_charset', 'UTF-8');
|
||||
mb_internal_encoding('UTF-8');
|
||||
|
||||
use Grav\Common\Grav;
|
||||
use RocketTheme\Toolbox\Event\Event;
|
||||
|
||||
// Get the Grav instance
|
||||
$grav = Grav::instance(
|
||||
array(
|
||||
'loader' => $loader
|
||||
)
|
||||
);
|
||||
$grav = Grav::instance(array('loader' => $loader));
|
||||
|
||||
// Process the page
|
||||
try {
|
||||
$grav->process();
|
||||
} catch (\Error $e) {
|
||||
$grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
|
||||
throw $e;
|
||||
} catch (\Exception $e) {
|
||||
} catch (\Error|\Exception $e) {
|
||||
$grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
|
||||
throw $e;
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
/* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved. */
|
||||
/* @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. */
|
||||
|
||||
11
robots.txt
11
robots.txt
@@ -1,16 +1,21 @@
|
||||
User-agent: *
|
||||
Disallow: /.github/
|
||||
Disallow: /.phan/
|
||||
Disallow: /assets/
|
||||
Disallow: /backup/
|
||||
Disallow: /bin/
|
||||
Disallow: /cache/
|
||||
Disallow: /grav/
|
||||
Disallow: /logs/
|
||||
Disallow: /system/
|
||||
Disallow: /vendor/
|
||||
Disallow: /tests/
|
||||
Disallow: /tmp/
|
||||
Disallow: /user/
|
||||
Disallow: /vendor/
|
||||
Disallow: /webserver-configs/
|
||||
Allow: /user/pages/
|
||||
Allow: /user/themes/
|
||||
Allow: /user/images/
|
||||
Allow: /
|
||||
Allow: *.css$
|
||||
Allow: *.js$
|
||||
Allow: /system/*.js$
|
||||
Allow: /system/*.js$
|
||||
|
||||
@@ -14,11 +14,8 @@ div.phpdebugbar {
|
||||
padding: 5px 8px;
|
||||
}
|
||||
|
||||
.phpdebugbar div.phpdebugbar-header, .phpdebugbar a.phpdebugbar-restore-btn {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAA/1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh4AAAD///8EBAT7+/sLCwv29vYVFRUvLy/t7e3m5ubCwsKxsbE/Pz+mpqZMTEwcHBzy8vLp6emfn5+AgIA2Njbi4uLf39+rq6tzc3NWVlYhISHa2trW1tbS0tLMzMy7u7uZmZmUlJSMjIxvb29kZGRHR0c7Ozt5eXkqKiq1tbWQkJBqampbW1tSUlLHx8eHh4ckJCRDQ0M3wD42AAAAI3RSTlMA/PibTbQ0x76TVAlw4LhZLOuEYCAN9Hjx0a2ppGZEGYw97djhXHwAAATZSURBVFjDlVcHW+MwDO1eFCjj2McNOzvdpXTTXVbL/P+/5SQ7QSSX5Di1X1onfi/Sk+Q4sTDbKqWK+YuznZ2zi3wxVdqK/Zf92M1nT9gnO8rmd398GX6Z3xaoOFoiAQcx3E5efgmeSuN8F6Xg1x3G06l/wjNpMR1B0uif4EhnIuFb+0diIoFXk3IVfokisR+h52GO4JKgyjmfaMhAFNlSaPR7DpwI+lzn/E4QKIqmKIJirxCMP4izBPPZPXhgXwMBYgULw0nfg/BF5scDbslb7QeJ08yqqTEmGYoB95d4H8ETL8+n9wBqrLu6ao3bBsMwAnxISf/9BHcqxNB8Y7cWl3Zz7TAUfPrvAT6AoNEFFXvsjutL01yOuMrtBxnFXsmT/1wQHmdWAFNnI3uI48Yj0FUcHbKf62GfUfr8eeQt7Uk3mQZpZNoVRPEui5vtEz5zFEpgWnyqVBZMc6oaGNriH2hGVZ0OxEvInPeMaZWJBA7vmPbCr5jjws5HBnAUxvDMH40aCIf4G5BjRQSs8E8HFFYf8bGxgDvD55bzGhwWkoBcuIyHR/AMdaCagxXDhtL6tSqoWpd4BMnlIR+Or+rYTK/a3EAGcc6e4AWHISnWv20iCCojsHoVlQdjrMexFF2C7UMg2A2WEGWbQhXN6l3eXC6XGp4b9qxbuEB2EBGBwtocrK90cVG5mbRXm6vmx/0phq1sIAGKDgLOBiN1MrO5a9aDl+D0W6x0Ar9BCTRuIIANa90Y7LrLVRXzwVtDInCqMRWcf2bUOEAsa4wJqFowQALL9EiAtVRk8QC4OW+1pOM9jIaVASwYagyNXDj+W0NcfuZNzjtXOiL0Zzg30Llj+ptfxQs4+vBPNiL5PawFCBkgXpUaVtqGl+A8dgZHL34BcBUQrwPptToW+o37Ku+UH9eYByJIx3YkAeFnMFuGO7S5gEp7YhXxa5OOAM39RXDPXb0qmpROsswZe+twXdU55oUIZAiEv3bD1UFwIYKkmGqytPCDCwKFQCKK0yL7qtSAPX54UAbtsLuBHkb9zyLmPQSNjsSgmQwKUOIfEY8F8t4B34DvndJY9BA8tNBJq1Nev9axmaStFcQLhgYoCTo0salkIaW8OUDdWjMTR2sHPhrAFZqx6cqcKE4pl2BJJ4K6hfwvqNgAnXfKX/HU6X3Zrhnu0k7tLNZtTBRv1hkwTDBY1NzFU6doDYjJbWdQkQhWwuU7/LvhTh3SDoco4ECL4i5dwURbc8NdDZz2IwKicE8d0KIqWetLE3+lL4hvUuGSeRfVWNLfj/gpOw4smBJBkKQHCzlHGwvAj4woB1gq5NGGLSXtORBPnUQPV5/MPVkDMxbpwG7w4x0xL6Ltxka0A/4NBvV09UVk4DoSn/jl2+JQS9q9KYawisAD4CfhsZ4TH3htylsdEHARIQBusqCKyUpymycgbbkkXEXjT3z7/oKQFTFVuZD2FMJHZIDsO5x2d4aAr2jR+GLwZhtAb028/0yJ9J8dE87jQyKObcjtTXT8dH+fDuKF4/eiPwzH44wTf/yUi6wrpRIOZ9lM1EtXAifFI+CJn9+iX/t2xMQwOMth/UZbASi8btAwR9FHWSpJr75g9Oqbin3VDg+SpwlP6k6TB4ex/7JvmcJx8jydy6XPk8eFTKhyfwCgX71MSvaBHgAAAABJRU5ErkJggg==);
|
||||
}
|
||||
|
||||
.phpdebugbar a.phpdebugbar-restore-btn {
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAA/1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHh4AAAD///8EBAT7+/sLCwv29vYVFRUvLy/t7e3m5ubCwsKxsbE/Pz+mpqZMTEwcHBzy8vLp6emfn5+AgIA2Njbi4uLf39+rq6tzc3NWVlYhISHa2trW1tbS0tLMzMy7u7uZmZmUlJSMjIxvb29kZGRHR0c7Ozt5eXkqKiq1tbWQkJBqampbW1tSUlLHx8eHh4ckJCRDQ0M3wD42AAAAI3RSTlMA/PibTbQ0x76TVAlw4LhZLOuEYCAN9Hjx0a2ppGZEGYw97djhXHwAAATZSURBVFjDlVcHW+MwDO1eFCjj2McNOzvdpXTTXVbL/P+/5SQ7QSSX5Di1X1onfi/Sk+Q4sTDbKqWK+YuznZ2zi3wxVdqK/Zf92M1nT9gnO8rmd398GX6Z3xaoOFoiAQcx3E5efgmeSuN8F6Xg1x3G06l/wjNpMR1B0uif4EhnIuFb+0diIoFXk3IVfokisR+h52GO4JKgyjmfaMhAFNlSaPR7DpwI+lzn/E4QKIqmKIJirxCMP4izBPPZPXhgXwMBYgULw0nfg/BF5scDbslb7QeJ08yqqTEmGYoB95d4H8ETL8+n9wBqrLu6ao3bBsMwAnxISf/9BHcqxNB8Y7cWl3Zz7TAUfPrvAT6AoNEFFXvsjutL01yOuMrtBxnFXsmT/1wQHmdWAFNnI3uI48Yj0FUcHbKf62GfUfr8eeQt7Uk3mQZpZNoVRPEui5vtEz5zFEpgWnyqVBZMc6oaGNriH2hGVZ0OxEvInPeMaZWJBA7vmPbCr5jjws5HBnAUxvDMH40aCIf4G5BjRQSs8E8HFFYf8bGxgDvD55bzGhwWkoBcuIyHR/AMdaCagxXDhtL6tSqoWpd4BMnlIR+Or+rYTK/a3EAGcc6e4AWHISnWv20iCCojsHoVlQdjrMexFF2C7UMg2A2WEGWbQhXN6l3eXC6XGp4b9qxbuEB2EBGBwtocrK90cVG5mbRXm6vmx/0phq1sIAGKDgLOBiN1MrO5a9aDl+D0W6x0Ar9BCTRuIIANa90Y7LrLVRXzwVtDInCqMRWcf2bUOEAsa4wJqFowQALL9EiAtVRk8QC4OW+1pOM9jIaVASwYagyNXDj+W0NcfuZNzjtXOiL0Zzg30Llj+ptfxQs4+vBPNiL5PawFCBkgXpUaVtqGl+A8dgZHL34BcBUQrwPptToW+o37Ku+UH9eYByJIx3YkAeFnMFuGO7S5gEp7YhXxa5OOAM39RXDPXb0qmpROsswZe+twXdU55oUIZAiEv3bD1UFwIYKkmGqytPCDCwKFQCKK0yL7qtSAPX54UAbtsLuBHkb9zyLmPQSNjsSgmQwKUOIfEY8F8t4B34DvndJY9BA8tNBJq1Nev9axmaStFcQLhgYoCTo0salkIaW8OUDdWjMTR2sHPhrAFZqx6cqcKE4pl2BJJ4K6hfwvqNgAnXfKX/HU6X3Zrhnu0k7tLNZtTBRv1hkwTDBY1NzFU6doDYjJbWdQkQhWwuU7/LvhTh3SDoco4ECL4i5dwURbc8NdDZz2IwKicE8d0KIqWetLE3+lL4hvUuGSeRfVWNLfj/gpOw4smBJBkKQHCzlHGwvAj4woB1gq5NGGLSXtORBPnUQPV5/MPVkDMxbpwG7w4x0xL6Ltxka0A/4NBvV09UVk4DoSn/jl2+JQS9q9KYawisAD4CfhsZ4TH3htylsdEHARIQBusqCKyUpymycgbbkkXEXjT3z7/oKQFTFVuZD2FMJHZIDsO5x2d4aAr2jR+GLwZhtAb028/0yJ9J8dE87jQyKObcjtTXT8dH+fDuKF4/eiPwzH44wTf/yUi6wrpRIOZ9lM1EtXAifFI+CJn9+iX/t2xMQwOMth/UZbASi8btAwR9FHWSpJr75g9Oqbin3VDg+SpwlP6k6TB4ex/7JvmcJx8jydy6XPk8eFTKhyfwCgX71MSvaBHgAAAABJRU5ErkJggg==);
|
||||
width: 13px;
|
||||
}
|
||||
|
||||
|
||||
4
system/assets/jquery/jquery-3.x.min.js
vendored
4
system/assets/jquery/jquery-3.x.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -103,6 +103,7 @@ form:
|
||||
"D, d M Y G:i:s": Date3
|
||||
"d-m-y G:i": Date4
|
||||
"jS M Y": Date5
|
||||
"Y-m-d G:i": Date6
|
||||
|
||||
pages.dateformat.long:
|
||||
type: dateformat
|
||||
@@ -116,6 +117,7 @@ form:
|
||||
"D, d M Y G:i:s": Date3
|
||||
"d-m-y G:i": Date4
|
||||
"jS M Y": Date5
|
||||
"Y-m-d G:i:s": Date6
|
||||
|
||||
pages.order.by:
|
||||
type: select
|
||||
@@ -448,6 +450,17 @@ form:
|
||||
validate:
|
||||
type: bool
|
||||
|
||||
languages.debug:
|
||||
type: toggle
|
||||
label: PLUGIN_ADMIN.LANGUAGE_DEBUG
|
||||
help: PLUGIN_ADMIN.LANGUAGE_DEBUG_HELP
|
||||
highlight: 0
|
||||
options:
|
||||
1: PLUGIN_ADMIN.YES
|
||||
0: PLUGIN_ADMIN.NO
|
||||
validate:
|
||||
type: bool
|
||||
|
||||
http_headers:
|
||||
type: tab
|
||||
title: PLUGIN_ADMIN.HTTP_HEADERS
|
||||
@@ -608,7 +621,6 @@ form:
|
||||
file: File
|
||||
apc: APC
|
||||
apcu: APCu
|
||||
xcache: Xcache
|
||||
memcache: Memcache
|
||||
memcached: Memcached
|
||||
wincache: WinCache
|
||||
@@ -1156,6 +1168,13 @@ form:
|
||||
local6: local6
|
||||
local7: local7
|
||||
|
||||
log.syslog.tag:
|
||||
type: text
|
||||
size: small
|
||||
label: PLUGIN_ADMIN.SYSLOG_TAG
|
||||
help: PLUGIN_ADMIN.SYSLOG_TAG_HELP
|
||||
placeholder: "grav"
|
||||
|
||||
debugger:
|
||||
type: tab
|
||||
title: PLUGIN_ADMIN.DEBUGGER
|
||||
@@ -1786,35 +1805,15 @@ form:
|
||||
validate:
|
||||
type: bool
|
||||
|
||||
experimental:
|
||||
|
||||
accounts:
|
||||
type: tab
|
||||
title: PLUGIN_ADMIN.EXPERIMENTAL
|
||||
title: PLUGIN_ADMIN.ACCOUNTS
|
||||
|
||||
fields:
|
||||
experimental_section:
|
||||
type: section
|
||||
title: PLUGIN_ADMIN.EXPERIMENTAL
|
||||
underline: true
|
||||
|
||||
# flex_pages:
|
||||
# type: section
|
||||
# title: Flex Pages
|
||||
#
|
||||
# pages.type:
|
||||
# type: select
|
||||
# label: PLUGIN_ADMIN.PAGES_TYPE
|
||||
# highlight: regular
|
||||
# help: PLUGIN_ADMIN.PAGES_TYPE_HELP
|
||||
# options:
|
||||
# regular: PLUGIN_ADMIN.REGULAR
|
||||
# flex: PLUGIN_ADMIN.FLEX
|
||||
|
||||
pages.type:
|
||||
type: hidden
|
||||
|
||||
flex_accounts:
|
||||
type: section
|
||||
title: Flex Accounts
|
||||
title: User Accounts
|
||||
|
||||
accounts.type:
|
||||
type: select
|
||||
@@ -1833,3 +1832,41 @@ form:
|
||||
options:
|
||||
file: PLUGIN_ADMIN.FILE
|
||||
folder: PLUGIN_ADMIN.FOLDER
|
||||
|
||||
accounts.avatar:
|
||||
type: select
|
||||
label: PLUGIN_ADMIN.AVATAR
|
||||
default: gravatar
|
||||
help: PLUGIN_ADMIN.AVATAR_HELP
|
||||
options:
|
||||
multiavatar: Multiavatar [local]
|
||||
gravatar: Gravatar [external]
|
||||
|
||||
# experimental:
|
||||
# type: tab
|
||||
# title: PLUGIN_ADMIN.EXPERIMENTAL
|
||||
#
|
||||
# fields:
|
||||
# experimental_section:
|
||||
# type: section
|
||||
# title: PLUGIN_ADMIN.EXPERIMENTAL
|
||||
# underline: true
|
||||
#
|
||||
# flex_pages:
|
||||
# type: section
|
||||
# title: Flex Pages
|
||||
#
|
||||
# pages.type:
|
||||
# type: select
|
||||
# label: PLUGIN_ADMIN.PAGES_TYPE
|
||||
# highlight: regular
|
||||
# help: PLUGIN_ADMIN.PAGES_TYPE_HELP
|
||||
# options:
|
||||
# regular: PLUGIN_ADMIN.REGULAR
|
||||
# flex: PLUGIN_ADMIN.FLEX
|
||||
#
|
||||
# pages.type:
|
||||
# type: hidden
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -122,6 +122,19 @@ config:
|
||||
fields:
|
||||
- key
|
||||
- email
|
||||
- username
|
||||
- fullname
|
||||
|
||||
relationships:
|
||||
media:
|
||||
type: media
|
||||
cardinality: to-many
|
||||
avatar:
|
||||
type: media
|
||||
cardinality: to-one
|
||||
# roles:
|
||||
# type: user-groups
|
||||
# cardinality: to-many
|
||||
|
||||
blueprints:
|
||||
configure:
|
||||
|
||||
@@ -113,6 +113,7 @@ config:
|
||||
fields:
|
||||
- key
|
||||
- groupname
|
||||
- readableName
|
||||
- description
|
||||
|
||||
blueprints:
|
||||
|
||||
@@ -320,6 +320,18 @@ form:
|
||||
|
||||
fields:
|
||||
|
||||
header.redirect_default_route:
|
||||
type: toggle
|
||||
toggleable: true
|
||||
label: PLUGIN_ADMIN.REDIRECT_DEFAULT_ROUTE
|
||||
help: PLUGIN_ADMIN.REDIRECT_DEFAULT_ROUTE_HELP
|
||||
config-highlight@: system.pages.redirect_default_route
|
||||
options:
|
||||
1: PLUGIN_ADMIN.YES
|
||||
0: PLUGIN_ADMIN.NO
|
||||
validate:
|
||||
type: bool
|
||||
|
||||
header.routes.default:
|
||||
type: text
|
||||
toggleable: true
|
||||
|
||||
@@ -51,17 +51,13 @@ form:
|
||||
type: bool
|
||||
|
||||
header.permissions.authors:
|
||||
type: list
|
||||
type: array
|
||||
toggleable: true
|
||||
value_only: true
|
||||
placeholder_value: PLUGIN_ADMIN.USERNAME
|
||||
label: PLUGIN_ADMIN.PAGE_AUTHORS
|
||||
help: PLUGIN_ADMIN.PAGE_AUTHORS_HELP
|
||||
|
||||
fields:
|
||||
value:
|
||||
type: text
|
||||
placeholder: PLUGIN_ADMIN.USERNAME
|
||||
style: vertical
|
||||
|
||||
header.permissions.groups:
|
||||
ignore@: true
|
||||
type: acl_picker
|
||||
|
||||
@@ -11,10 +11,21 @@ form:
|
||||
avatar:
|
||||
type: file
|
||||
size: large
|
||||
destination: 'user://accounts/avatars'
|
||||
destination: 'account://avatars'
|
||||
multiple: false
|
||||
random_name: true
|
||||
|
||||
multiavatar_only:
|
||||
type: conditional
|
||||
condition: config.system.accounts.avatar == 'multiavatar'
|
||||
fields:
|
||||
avatar_hash:
|
||||
type: text
|
||||
label: ''
|
||||
placeholder: 'e.g. dceaadcfda491f4e45'
|
||||
description: PLUGIN_ADMIN.AVATAR_HASH
|
||||
size: large
|
||||
|
||||
content:
|
||||
type: section
|
||||
title: PLUGIN_ADMIN.ACCOUNT
|
||||
|
||||
@@ -199,7 +199,7 @@ types:
|
||||
gz:
|
||||
type: file
|
||||
thumb: media/thumb-gz.png
|
||||
mime: application/gzip
|
||||
mime: application/x-gzip
|
||||
tar:
|
||||
type: file
|
||||
thumb: media/thumb-tar.png
|
||||
@@ -216,3 +216,8 @@ types:
|
||||
type: file
|
||||
thumb: media/thumb-json.png
|
||||
mime: application/json
|
||||
vcf:
|
||||
type: file
|
||||
thumb: media/thumb-vcf.png
|
||||
mime: text/x-vcard
|
||||
|
||||
|
||||
@@ -32,8 +32,16 @@ xss_dangerous_tags:
|
||||
- base
|
||||
uploads_dangerous_extensions:
|
||||
- php
|
||||
- php2
|
||||
- php3
|
||||
- php4
|
||||
- php5
|
||||
- phar
|
||||
- phtml
|
||||
- html
|
||||
- htm
|
||||
- shtml
|
||||
- shtm
|
||||
- js
|
||||
- exe
|
||||
sanitize_svg: true
|
||||
|
||||
@@ -25,7 +25,7 @@ routes:
|
||||
# '/new/(.*)': '/blog/$1' # Regex any /new/my-page URL to /blog/my-page Route
|
||||
|
||||
blog:
|
||||
route: '/blog' # Custom value added (accessible via system.blog.route)
|
||||
route: '/blog' # Custom value added (accessible via site.blog.route)
|
||||
|
||||
#menu: # Menu Example
|
||||
# - text: Source
|
||||
|
||||
@@ -28,6 +28,7 @@ languages:
|
||||
override_locale: false # Override the default or system locale with language specific one
|
||||
content_fallback: {} # Custom language fallbacks. eg: {fr: ['fr', 'en']}
|
||||
pages_fallback_only: false # DEPRECATED: Use `content_fallback` instead
|
||||
debug: false # Debug language detection
|
||||
|
||||
home:
|
||||
alias: '/home' # Default path for home, ie /
|
||||
@@ -35,6 +36,7 @@ home:
|
||||
|
||||
pages:
|
||||
type: regular # EXPERIMENTAL: Page type: regular or flex
|
||||
dirs: ['page://'] # Advanced functionality, allows for multiple page paths
|
||||
theme: quark # Default theme (defaults to "quark" theme)
|
||||
order:
|
||||
by: default # Order pages by "default", "alpha" or "date"
|
||||
@@ -144,6 +146,7 @@ log:
|
||||
handler: file # Log handler. Currently supported: file | syslog
|
||||
syslog:
|
||||
facility: local6 # Syslog facilities output
|
||||
tag: grav # Syslog tag. Default: "grav".
|
||||
|
||||
debugger:
|
||||
enabled: false # Enable Grav debugger and following settings
|
||||
@@ -208,6 +211,7 @@ http:
|
||||
accounts:
|
||||
type: regular # EXPERIMENTAL: Account type: regular or flex
|
||||
storage: file # EXPERIMENTAL: Flex storage type: file or folder
|
||||
avatar: gravatar # Avatar generator [multiavatar|gravatar]
|
||||
|
||||
flex:
|
||||
cache:
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
/**
|
||||
* @package Grav\Core
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
// Some standard defines
|
||||
define('GRAV', true);
|
||||
define('GRAV_VERSION', '1.7.27.1');
|
||||
define('GRAV_VERSION', '1.7.44');
|
||||
define('GRAV_SCHEMA', '1.7.0_2020-11-20_1');
|
||||
define('GRAV_TESTING', false);
|
||||
|
||||
@@ -99,3 +99,6 @@ define('RAW_CONTENT', 1);
|
||||
define('TWIG_CONTENT', 2);
|
||||
define('TWIG_CONTENT_LIST', 3);
|
||||
define('TWIG_TEMPLATES', 4);
|
||||
|
||||
// Filters
|
||||
define('GRAV_SANITIZE_STRING', 5001);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/**
|
||||
* @package Grav\Core
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ GRAV:
|
||||
BAD_DATE: Невалидна дата
|
||||
AGO: преди
|
||||
FROM_NOW: от сега
|
||||
JUST_NOW: току що
|
||||
SECOND: секунда
|
||||
MINUTE: минута
|
||||
HOUR: час
|
||||
@@ -60,3 +61,12 @@ GRAV:
|
||||
- 'петък'
|
||||
- 'събота'
|
||||
- 'неделя'
|
||||
YES: "Да"
|
||||
NO: "Не"
|
||||
CRON:
|
||||
EVERY: всеки
|
||||
EVERY_HOUR: Всеки час
|
||||
EVERY_MINUTE: Всяка минута
|
||||
EVERY_DAY_OF_WEEK: Всеки ден от седмицата
|
||||
EVERY_DAY_OF_MONTH: Всеки ден от месеца
|
||||
EVERY_MONTH: Всеки месец
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
GRAV:
|
||||
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# S'ha produït un error: Frontmatter invàlid\n\nRuta: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
|
||||
INFLECTOR_UNCOUNTABLE:
|
||||
- 'equipment'
|
||||
- ''
|
||||
- 'informació'
|
||||
- 'rice'
|
||||
- 'money'
|
||||
- 'species'
|
||||
- 'series'
|
||||
- 'fish'
|
||||
- 'sheep'
|
||||
- ''
|
||||
- ''
|
||||
- ''
|
||||
- ''
|
||||
- ''
|
||||
- ''
|
||||
NICETIME:
|
||||
NO_DATE_PROVIDED: No s'ha proporcionat data
|
||||
BAD_DATE: Data invàlida
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
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```"
|
||||
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Chyba: Chybná hlavička\n\nCesta: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
|
||||
INFLECTOR_PLURALS:
|
||||
'/(quiz)$/i': '\1zes'
|
||||
'/^(ox)$/i': '\1en'
|
||||
|
||||
40
system/languages/eo.yaml
Normal file
40
system/languages/eo.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
GRAV:
|
||||
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Eraro: Nevalida Frontmatter\n\nVojo: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
|
||||
INFLECTOR_PLURALS:
|
||||
'/sis$/i': 'j'
|
||||
NICETIME:
|
||||
FROM_NOW: ekde nun
|
||||
JUST_NOW: Ĝuste nun
|
||||
SECOND: sekundo
|
||||
MINUTE: minuto
|
||||
HOUR: horo
|
||||
DAY: tago
|
||||
WEEK: semajno
|
||||
MONTH: monato
|
||||
YEAR: jaro
|
||||
DECADE: jardeko
|
||||
SEC: sek.
|
||||
MIN: min.
|
||||
HR: horo
|
||||
SECOND_PLURAL: sekundoj
|
||||
MINUTE_PLURAL: minutoj
|
||||
HOUR_PLURAL: horoj
|
||||
DAY_PLURAL: tagoj
|
||||
WEEK_PLURAL: semajnoj
|
||||
MONTH_PLURAL: monatoj
|
||||
YEAR_PLURAL: jaroj
|
||||
DECADE_PLURAL: jardekoj
|
||||
MONTHS_OF_THE_YEAR:
|
||||
- 'januaro'
|
||||
- 'februaro'
|
||||
- 'marto'
|
||||
- 'aprilo'
|
||||
- ''
|
||||
- ''
|
||||
- ''
|
||||
- ''
|
||||
- ''
|
||||
- ''
|
||||
- ''
|
||||
- ''
|
||||
@@ -21,9 +21,9 @@ GRAV:
|
||||
'sex': 'sexos'
|
||||
'move': 'movido'
|
||||
INFLECTOR_ORDINALS:
|
||||
'first': 'ro'
|
||||
'second': 'do'
|
||||
'third': 'ro'
|
||||
'first': '.º'
|
||||
'second': '.º'
|
||||
'third': '.º'
|
||||
NICETIME:
|
||||
NO_DATE_PROVIDED: No se proporcionó fecha
|
||||
BAD_DATE: Fecha errónea
|
||||
@@ -101,7 +101,7 @@ GRAV:
|
||||
TEXT_DOW: ' en <b />'
|
||||
TEXT_MONTH: ' de<b />'
|
||||
TEXT_DOM: ' en<b />'
|
||||
ERROR1: '¡La etiqueta %s no está soportada!'
|
||||
ERROR1: No se admite la etiqueta %s.
|
||||
ERROR2: El número de elementos es erróneo
|
||||
ERROR3: El jquery_element debería establecerse en la configuración del jqCron
|
||||
ERROR4: Expresión no reconocida
|
||||
|
||||
@@ -13,12 +13,12 @@ GRAV:
|
||||
'/(tive)s$/i': '\1'
|
||||
'/(hive)s$/i': '\1'
|
||||
INFLECTOR_UNCOUNTABLE:
|
||||
- 'equipment'
|
||||
- ''
|
||||
- 'informatsioon'
|
||||
- 'riis'
|
||||
- 'raha'
|
||||
- 'species'
|
||||
- 'series'
|
||||
- ''
|
||||
- ''
|
||||
- 'kala'
|
||||
- 'lammas'
|
||||
INFLECTOR_IRREGULAR:
|
||||
@@ -70,6 +70,7 @@ GRAV:
|
||||
VALIDATION_FAIL: '<b>Kinnitamine nurjus:</b>'
|
||||
INVALID_INPUT: 'Vigane sisend:'
|
||||
MISSING_REQUIRED_FIELD: 'Nõutud väli puudub:'
|
||||
XSS_ISSUES: "Tuvastasime '%s' väljal võimaliku XSS-riski"
|
||||
MONTHS_OF_THE_YEAR:
|
||||
- 'jaanuar'
|
||||
- 'veebruar'
|
||||
@@ -91,11 +92,14 @@ GRAV:
|
||||
- 'reede'
|
||||
- 'laupäev'
|
||||
- 'pühapäev'
|
||||
YES: "Jah"
|
||||
NO: "Ei"
|
||||
CRON:
|
||||
EVERY: iga
|
||||
EVERY_HOUR: iga tund
|
||||
EVERY_MINUTE: iga minut
|
||||
EVERY_DAY_OF_WEEK: iga nädala päev
|
||||
EVERY_DAY_OF_WEEK: nädala igal päeval
|
||||
EVERY_DAY_OF_MONTH: kuu igal päeval
|
||||
EVERY_MONTH: iga kuu
|
||||
TEXT_PERIOD: Iga <b />
|
||||
ERROR1: Silt %s pole toetatud!
|
||||
|
||||
@@ -45,12 +45,12 @@ GRAV:
|
||||
'/([ti])a$/i': '\1um'
|
||||
'/(n)ews$/i': '\1ews'
|
||||
INFLECTOR_UNCOUNTABLE:
|
||||
- 'equipment'
|
||||
- 'information'
|
||||
- ''
|
||||
- ''
|
||||
- 'riisi'
|
||||
- 'raha'
|
||||
- 'lajit'
|
||||
- 'series'
|
||||
- ''
|
||||
- 'kala'
|
||||
- 'lammas'
|
||||
INFLECTOR_IRREGULAR:
|
||||
|
||||
@@ -22,8 +22,27 @@ GRAV:
|
||||
'/$/': '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': '\1ouvelles'
|
||||
INFLECTOR_UNCOUNTABLE:
|
||||
- 'équipement'
|
||||
|
||||
@@ -1,11 +1,27 @@
|
||||
---
|
||||
GRAV:
|
||||
FRONTMATTER_ERROR_PAGE: "---\nכותרת: %1$s\n---\n# שגיאה: Fronmatter לא חוקי\nנתיב: `%2$s`\n**%3$s**\n```\n%4$s\n```"
|
||||
INFLECTOR_UNCOUNTABLE:
|
||||
- 'ציוד'
|
||||
- 'מידע'
|
||||
- 'אורז'
|
||||
- 'כסף'
|
||||
- 'מינים'
|
||||
- 'סדרה'
|
||||
- 'דג'
|
||||
- 'כבשה'
|
||||
INFLECTOR_IRREGULAR:
|
||||
'person': 'אנשים'
|
||||
'man': 'גברים'
|
||||
'child': 'ילדים'
|
||||
'sex': 'מינים'
|
||||
'move': 'מהלכים'
|
||||
NICETIME:
|
||||
NO_DATE_PROVIDED: לא סופק תאריך
|
||||
BAD_DATE: תאריך פגום
|
||||
AGO: לפני
|
||||
FROM_NOW: כרגע
|
||||
JUST_NOW: כרגע
|
||||
SECOND: שנייה
|
||||
MINUTE: דקה
|
||||
HOUR: שעה
|
||||
@@ -40,6 +56,7 @@ GRAV:
|
||||
VALIDATION_FAIL: '<b>האימות נכשל:</b>'
|
||||
INVALID_INPUT: 'קלט לא חוקי'
|
||||
MISSING_REQUIRED_FIELD: 'שדות חובה חסרים:'
|
||||
XSS_ISSUES: "בעיות XSS פוטנציאליות זוהו בשדה '%s'"
|
||||
MONTHS_OF_THE_YEAR:
|
||||
- 'ינואר'
|
||||
- 'פברואר'
|
||||
@@ -61,3 +78,22 @@ GRAV:
|
||||
- 'שישי'
|
||||
- 'שבת'
|
||||
- 'ראשון'
|
||||
YES: "כן"
|
||||
NO: "לא"
|
||||
CRON:
|
||||
EVERY: בכל
|
||||
EVERY_HOUR: בכל שעה
|
||||
EVERY_MINUTE: כל דקה
|
||||
EVERY_DAY_OF_WEEK: כל יום בשבוע
|
||||
EVERY_DAY_OF_MONTH: בכל יום בחודש
|
||||
EVERY_MONTH: כל חודש
|
||||
TEXT_PERIOD: כל <b />
|
||||
TEXT_MINS: 'ב <b /> דקות אחרי השעה'
|
||||
TEXT_TIME: 'ב <b />:<b />'
|
||||
TEXT_DOW: 'ב <b />'
|
||||
TEXT_MONTH: 'של <b />'
|
||||
TEXT_DOM: 'ב <b />'
|
||||
ERROR1: התגית %s אינו נתמכת
|
||||
ERROR2: מספר לא חוקי של משתנים.
|
||||
ERROR3: יש להגדיר את ה-jquery_element להגדרות jqCron
|
||||
ERROR4: ביטוי לא מזוהה
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
---
|
||||
GRAV:
|
||||
FRONTMATTER_ERROR_PAGE: "---\nnaslov: %1$s\n---\n\n# Pogreška: nevažeći frontmatter\n\nPutanja datoteke: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
|
||||
INFLECTOR_UNCOUNTABLE:
|
||||
- 'oprema'
|
||||
- 'informacije'
|
||||
- 'informacija'
|
||||
- 'riža'
|
||||
- 'novac'
|
||||
- 'vrsta'
|
||||
@@ -15,11 +16,17 @@ GRAV:
|
||||
'child': 'djeca'
|
||||
'sex': 'spolovi'
|
||||
'move': 'Pomakni'
|
||||
INFLECTOR_ORDINALS:
|
||||
'default': '.'
|
||||
'first': '.'
|
||||
'second': '.'
|
||||
'third': '.'
|
||||
NICETIME:
|
||||
NO_DATE_PROVIDED: Datum nije upisan
|
||||
BAD_DATE: Pogrešan datum
|
||||
AGO: prije
|
||||
FROM_NOW: od sada
|
||||
JUST_NOW: upravo sad
|
||||
SECOND: sekunda
|
||||
MINUTE: minuta
|
||||
HOUR: sat
|
||||
@@ -29,6 +36,7 @@ GRAV:
|
||||
YEAR: godina
|
||||
DECADE: desetljeće
|
||||
SEC: sek
|
||||
MIN: min
|
||||
HR: sat
|
||||
WK: t
|
||||
MO: m
|
||||
@@ -53,6 +61,7 @@ GRAV:
|
||||
VALIDATION_FAIL: '<b>Validacija nije uspjela:</b>'
|
||||
INVALID_INPUT: 'Pogrešan unos u'
|
||||
MISSING_REQUIRED_FIELD: 'Nedostaje obavezno polje:'
|
||||
XSS_ISSUES: "Potencijalni XSS problemi otkriveni u polju '%s'"
|
||||
MONTHS_OF_THE_YEAR:
|
||||
- 'Siječanj'
|
||||
- 'Veljača'
|
||||
@@ -74,3 +83,22 @@ GRAV:
|
||||
- 'Petak'
|
||||
- 'Subota'
|
||||
- 'Nedjelja'
|
||||
YES: "Da"
|
||||
NO: "Ne"
|
||||
CRON:
|
||||
EVERY: svaki
|
||||
EVERY_HOUR: svaki sat
|
||||
EVERY_MINUTE: svake minute
|
||||
EVERY_DAY_OF_WEEK: svaki dan u tjednu
|
||||
EVERY_DAY_OF_MONTH: svaki dan u mjesecu
|
||||
EVERY_MONTH: svaki mjesec
|
||||
TEXT_PERIOD: Svakih <b />
|
||||
TEXT_MINS: ' u <b /> minut(e) nakon sata'
|
||||
TEXT_TIME: ' u <b />:<b />'
|
||||
TEXT_DOW: ' na <b />'
|
||||
TEXT_MONTH: ' <b />'
|
||||
TEXT_DOM: ' na <b />'
|
||||
ERROR1: Oznaka %s nije podržana!
|
||||
ERROR2: Pogrešan broj elemenata.
|
||||
ERROR3: jquery_element treba postaviti u postavke jqCron
|
||||
ERROR4: Izraz nije prepoznat
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
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:
|
||||
NO_DATE_PROVIDED: Engin dagsetning gefin
|
||||
BAD_DATE: Röng dagsetning
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
---
|
||||
GRAV:
|
||||
INFLECTOR_UNCOUNTABLE:
|
||||
- 'equipment'
|
||||
- ''
|
||||
- '情報'
|
||||
- 'rice'
|
||||
- ''
|
||||
- 'お金'
|
||||
- 'species'
|
||||
- 'series'
|
||||
- ''
|
||||
- ''
|
||||
- '魚'
|
||||
- 'ヒツジ'
|
||||
INFLECTOR_IRREGULAR:
|
||||
|
||||
@@ -1,11 +1,23 @@
|
||||
---
|
||||
GRAV:
|
||||
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_UNCOUNTABLE:
|
||||
- '장비'
|
||||
- '정보'
|
||||
- ''
|
||||
- ''
|
||||
- ''
|
||||
- '시리즈'
|
||||
- '물고기'
|
||||
- ''
|
||||
INFLECTOR_IRREGULAR:
|
||||
'person': '사람들'
|
||||
NICETIME:
|
||||
NO_DATE_PROVIDED: 제공된 날짜가 없습니다
|
||||
BAD_DATE: 잘못된 날짜
|
||||
AGO: 전
|
||||
FROM_NOW: 후
|
||||
JUST_NOW: 방금
|
||||
SECOND: 초
|
||||
MINUTE: 분
|
||||
HOUR: 시간
|
||||
@@ -40,6 +52,7 @@ GRAV:
|
||||
VALIDATION_FAIL: '<b>유효성 검사 실패:</b>'
|
||||
INVALID_INPUT: '잘못된 입력'
|
||||
MISSING_REQUIRED_FIELD: '누락 된 필수 필드:'
|
||||
XSS_ISSUES: "'%s' 필드에서 잠재적인 XSS 문제가 감지되었습니다."
|
||||
MONTHS_OF_THE_YEAR:
|
||||
- '일월'
|
||||
- '이월'
|
||||
@@ -61,3 +74,17 @@ GRAV:
|
||||
- '금요일'
|
||||
- '토요일'
|
||||
- '일요일'
|
||||
YES: "네"
|
||||
NO: "아니요"
|
||||
CRON:
|
||||
EVERY: 모두
|
||||
EVERY_HOUR: 매 시간
|
||||
EVERY_MINUTE: 매 분
|
||||
EVERY_DAY_OF_WEEK: 일주일간 매일
|
||||
EVERY_DAY_OF_MONTH: 일개월간 매일
|
||||
EVERY_MONTH: 매달
|
||||
TEXT_PERIOD: 모든 <b />
|
||||
ERROR1: '%s 태그는 지원되지 않습니다. '
|
||||
ERROR2: 잘못된 요소 수
|
||||
ERROR3: jquery_element는 jqCron 설정에서 설정할 수 있습니다.
|
||||
ERROR4: 인식할 수 없는 표현
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
GRAV:
|
||||
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Klaida: klaidinga įžanginė konfigūracija\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n %4$s\n```"
|
||||
INFLECTOR_UNCOUNTABLE:
|
||||
- 'equipment'
|
||||
- 'information'
|
||||
- ''
|
||||
- ''
|
||||
- 'ryžiai'
|
||||
- 'pinigai'
|
||||
- 'prieskoniai'
|
||||
|
||||
84
system/languages/lv.yaml
Normal file
84
system/languages/lv.yaml
Normal file
@@ -0,0 +1,84 @@
|
||||
---
|
||||
GRAV:
|
||||
FRONTMATTER_ERROR_PAGE: "---\nNosaukums: %1$s\n---\n\n# Kļūda: Nederīgs Frontmatter\n\nCeļš: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
|
||||
INFLECTOR_ORDINALS:
|
||||
'default': '.'
|
||||
'first': '.'
|
||||
'second': '.'
|
||||
'third': '.'
|
||||
NICETIME:
|
||||
NO_DATE_PROVIDED: Nav norādīts datums
|
||||
BAD_DATE: Nederīgs datums
|
||||
AGO: iepriekš
|
||||
FROM_NOW: no šī brīža
|
||||
JUST_NOW: tikko
|
||||
SECOND: sekundes
|
||||
MINUTE: minūte
|
||||
HOUR: stunda
|
||||
DAY: diena
|
||||
WEEK: nedēļa
|
||||
MONTH: mēnesis
|
||||
YEAR: gads
|
||||
DECADE: dekāde
|
||||
SEC: s
|
||||
MIN: m
|
||||
HR: st
|
||||
WK: ned
|
||||
MO: mēn.
|
||||
YR: g.
|
||||
DEC: dec
|
||||
SECOND_PLURAL: sekundes
|
||||
MINUTE_PLURAL: minūtes
|
||||
HOUR_PLURAL: stundas
|
||||
DAY_PLURAL: dienas
|
||||
WEEK_PLURAL: nedēļas
|
||||
MONTH_PLURAL: mēneši
|
||||
YEAR_PLURAL: gadi
|
||||
DECADE_PLURAL: desmitgades
|
||||
SEC_PLURAL: s
|
||||
MIN_PLURAL: m
|
||||
HR_PLURAL: st.
|
||||
WK_PLURAL: ned.
|
||||
MO_PLURAL: mēn.
|
||||
YR_PLURAL: g.
|
||||
DEC_PLURAL: d
|
||||
FORM:
|
||||
VALIDATION_FAIL: '<b>Validācija neizdevās:</b>'
|
||||
INVALID_INPUT: 'Nederīga ievade'
|
||||
MISSING_REQUIRED_FIELD: 'Laukā trūkst datu'
|
||||
XSS_ISSUES: "Atrastas iespējamas XSS problēmas laukā '%s'"
|
||||
MONTHS_OF_THE_YEAR:
|
||||
- 'Janvāris'
|
||||
- 'Februāris'
|
||||
- 'Marts'
|
||||
- 'Aprīlis'
|
||||
- 'Maijs'
|
||||
- 'Jūnijs'
|
||||
- 'Jūlijs'
|
||||
- 'Augusts'
|
||||
- 'Septembris'
|
||||
- 'Oktobris'
|
||||
- 'Novembris'
|
||||
- 'Decembris'
|
||||
DAYS_OF_THE_WEEK:
|
||||
- 'Pirmdiena'
|
||||
- 'Otrdiena'
|
||||
- 'Trešdiena'
|
||||
- 'Ceturtdiena'
|
||||
- 'Piektdiena'
|
||||
- 'Sestdiena'
|
||||
- 'Svētdiena'
|
||||
YES: "Jā"
|
||||
NO: "Nē"
|
||||
CRON:
|
||||
EVERY: katru
|
||||
EVERY_HOUR: katru stundu
|
||||
EVERY_MINUTE: katru minūti
|
||||
EVERY_DAY_OF_WEEK: katru nedēļas dienu
|
||||
EVERY_DAY_OF_MONTH: katru mēneša dienu
|
||||
EVERY_MONTH: katru mēnesi
|
||||
TEXT_PERIOD: Katru <b />
|
||||
ERROR1: Marķieris %s nav atbalstīts!
|
||||
ERROR2: Nederīgs elementu skaits
|
||||
ERROR3: jquery_element nevajadzētu definēt jqCron iestatījumos
|
||||
ERROR4: Neatpazīta izteiksme
|
||||
147
system/languages/my.yaml
Normal file
147
system/languages/my.yaml
Normal file
@@ -0,0 +1,147 @@
|
||||
---
|
||||
GRAV:
|
||||
FRONTMATTER_ERROR_PAGE: "---\nခေါင်းစဥ်: %1$s\n---\n\n# အမှား - Frontmatter မမှန်ကန်ပါ\n\nလမ်းကြောင်း `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
|
||||
INFLECTOR_PLURALS:
|
||||
'/(quiz)$/i': '\1zes'
|
||||
'/^(ox)$/i': '\1en'
|
||||
'/([m|l])ouse$/i': '\1ice'
|
||||
'/(matr|vert|ind)ix|ex$/i': '\1ices'
|
||||
'/(x|ch|ss|sh)$/i': '\1es'
|
||||
'/([^aeiouy]|qu)ies$/i': '\1y'
|
||||
'/([^aeiouy]|qu)y$/i': '\1ies'
|
||||
'/(hive)$/i': '\1s'
|
||||
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
|
||||
'/sis$/i': 'ses'
|
||||
'/([ti])um$/i': '\1a'
|
||||
'/(buffal|tomat)o$/i': '\1oes'
|
||||
'/(bu)s$/i': '\1ses'
|
||||
'/(alias|status)/i': '\1es'
|
||||
'/(octop|vir)us$/i': '\1i'
|
||||
'/(ax|test)is$/i': '\1es'
|
||||
'/s$/i': 's'
|
||||
'/$/': 's'
|
||||
INFLECTOR_SINGULAR:
|
||||
'/(quiz)zes$/i': '\1'
|
||||
'/(matr)ices$/i': '\1ix'
|
||||
'/(vert|ind)ices$/i': '\1ex'
|
||||
'/^(ox)en/i': '\1'
|
||||
'/(alias|status)es$/i': '\1'
|
||||
'/([octop|vir])i$/i': '\1us'
|
||||
'/(cris|ax|test)es$/i': '\1is'
|
||||
'/(shoe)s$/i': '\1'
|
||||
'/(o)es$/i': '\1'
|
||||
'/(bus)es$/i': '\1'
|
||||
'/([m|l])ice$/i': '\1ouse'
|
||||
'/(x|ch|ss|sh)es$/i': '\1'
|
||||
'/(m)ovies$/i': '\1ovie'
|
||||
'/(s)eries$/i': '\1eries'
|
||||
'/([^aeiouy]|qu)ies$/i': '\1y'
|
||||
'/([lr])ves$/i': '\1f'
|
||||
'/(tive)s$/i': '\1'
|
||||
'/(hive)s$/i': '\1'
|
||||
'/([^f])ves$/i': '\1fe'
|
||||
'/(^analy)ses$/i': '\1sis'
|
||||
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
|
||||
'/([ti])a$/i': '\1um'
|
||||
'/(n)ews$/i': '\1ews'
|
||||
INFLECTOR_UNCOUNTABLE:
|
||||
- 'ကိရိယာ'
|
||||
- 'အချက်အလက်'
|
||||
- 'ဆန်'
|
||||
- 'ငွေ'
|
||||
- 'မျိုးစိတ်'
|
||||
- 'အတွဲများ'
|
||||
- 'ငါး'
|
||||
- 'သိုးများ'
|
||||
INFLECTOR_IRREGULAR:
|
||||
'person': 'လူ'
|
||||
'man': 'ယောက်ျား'
|
||||
'child': 'ကလေးများ'
|
||||
'sex': 'လိင်'
|
||||
'move': 'ရွှေ့ခြင်း'
|
||||
INFLECTOR_ORDINALS:
|
||||
'default': 'th'
|
||||
'first': 'st'
|
||||
'second': 'nd'
|
||||
'third': 'rd'
|
||||
NICETIME:
|
||||
NO_DATE_PROVIDED: နေ့စွဲ မသတ်မှတ်ထား
|
||||
BAD_DATE: ရက်စွဲမမှန်ပါ
|
||||
AGO: လွန်ခဲ့တဲ့
|
||||
FROM_NOW: ယခုမှ
|
||||
JUST_NOW: အခုပဲ
|
||||
SECOND: ဒုတိယ
|
||||
MINUTE: မိနစ်
|
||||
HOUR: နာရီ
|
||||
DAY: နေ့
|
||||
WEEK: တစ်ပတ်
|
||||
MONTH: လ
|
||||
YEAR: နှစ်
|
||||
DECADE: ဆယ်စုနှစ်
|
||||
SEC: စက္ကန့်
|
||||
MIN: မိနစ်
|
||||
HR: နာရီ
|
||||
WK: တစ်ပတ်
|
||||
MO: လ
|
||||
YR: နှစ်
|
||||
DEC: ဒီဇင်ဘာ
|
||||
SECOND_PLURAL: စက္ကန့်
|
||||
MINUTE_PLURAL: မိနစ်
|
||||
HOUR_PLURAL: နာရီ
|
||||
DAY_PLURAL: နေ့
|
||||
WEEK_PLURAL: ရက်သတ္တပတ်
|
||||
MONTH_PLURAL: လ
|
||||
YEAR_PLURAL: နှစ်
|
||||
DECADE_PLURAL: ဆယ်စုနှစ်များစွ
|
||||
SEC_PLURAL: စက္ကန့်
|
||||
MIN_PLURAL: မိနစ်
|
||||
HR_PLURAL: နာရီ
|
||||
WK_PLURAL: အပတ်
|
||||
MO_PLURAL: လ
|
||||
YR_PLURAL: နှစ်
|
||||
DEC_PLURAL: ဆယ်စုနှစ်
|
||||
FORM:
|
||||
VALIDATION_FAIL: '<b> အတည်ပြုခြင်းမအောင်မြင်ပါ: </b>'
|
||||
INVALID_INPUT: 'ထည့်သွင်းမှုမမှန်ပါ'
|
||||
MISSING_REQUIRED_FIELD: 'လိုအပ်သောအကွက်ပျောက်နေသည်'
|
||||
XSS_ISSUES: "XSS ပြဿနာ ဖြစ်နိုင်ချေ ကို '%s' အကွက်တွင် တွေ့"
|
||||
MONTHS_OF_THE_YEAR:
|
||||
- 'ဇန်နဝါရီ'
|
||||
- 'ဖေဖော်ဝါရီ'
|
||||
- 'မတ်'
|
||||
- 'ဧပြီ'
|
||||
- 'မေ'
|
||||
- 'ဇွန်'
|
||||
- 'ဇူလိုင်'
|
||||
- 'သြဂုတ်'
|
||||
- 'စက်တင်ဘာ'
|
||||
- 'အောက်တိုဘာ'
|
||||
- 'နိုဝင်ဘာ'
|
||||
- 'ဒီဇင်ဘာ'
|
||||
DAYS_OF_THE_WEEK:
|
||||
- 'တနင်္လာ'
|
||||
- ' အင်္ဂါ'
|
||||
- 'ဗုဒ္ဓဟူး'
|
||||
- 'ကြာသပတေး'
|
||||
- 'သောကြာ'
|
||||
- 'စနေ'
|
||||
- 'တနင်္ဂနွေ'
|
||||
YES: "လုပ်"
|
||||
NO: "မလုပ်"
|
||||
CRON:
|
||||
EVERY: အမြဲတမ်း
|
||||
EVERY_HOUR: နာရီတိုင်း
|
||||
EVERY_MINUTE: မိနစ်တိုင်း
|
||||
EVERY_DAY_OF_WEEK: တစ်ပတ်လုံး နေ့တိုင်း
|
||||
EVERY_DAY_OF_MONTH: တစ်လလုံး နေ့တိုင်း
|
||||
EVERY_MONTH: လစဉ်လတိုင်း
|
||||
TEXT_PERIOD: </b>တိုင်း
|
||||
TEXT_MINS: 'နာရီ ကျော်ပြီး <b /> မိနစ် တွင်'
|
||||
TEXT_TIME: ' <b />:<b /> တွင် '
|
||||
TEXT_DOW: '<b /> ပေါ်တွင် '
|
||||
TEXT_MONTH: '<b />၏ '
|
||||
TEXT_DOM: '<b /> တွင် '
|
||||
ERROR1: ဤ %s တက် ကိုပံ့ပိုးမထားပါ။
|
||||
ERROR2: လိုအပ်သောထည့်သွင်း နာပတ် အမှားဖြစ်နေသည်
|
||||
ERROR3: jquery_element ကို jqCron ဆက်တင် တွင်ထားရမည်
|
||||
ERROR4: အသိအမှတ်မပြုသော အသုံးအနှုန်း
|
||||
@@ -104,6 +104,7 @@ GRAV:
|
||||
VALIDATION_FAIL: '<b>Validatie mislukt:</b>'
|
||||
INVALID_INPUT: 'Ongeldige invoer in'
|
||||
MISSING_REQUIRED_FIELD: 'Ontbrekend verplicht veld:'
|
||||
XSS_ISSUES: "Mogelijke XSS-problemen ontdekt in '%s' veld"
|
||||
MONTHS_OF_THE_YEAR:
|
||||
- 'Januari'
|
||||
- 'Februari'
|
||||
@@ -125,6 +126,8 @@ GRAV:
|
||||
- 'Vrijdag'
|
||||
- 'Zaterdag'
|
||||
- 'Zondag'
|
||||
YES: "Ja"
|
||||
NO: "Nee"
|
||||
CRON:
|
||||
EVERY: elke
|
||||
EVERY_HOUR: elk uur
|
||||
|
||||
@@ -6,10 +6,10 @@ GRAV:
|
||||
INFLECTOR_UNCOUNTABLE:
|
||||
- 'wyposażenie'
|
||||
- 'informacja'
|
||||
- 'rice'
|
||||
- ''
|
||||
- 'pieniądze'
|
||||
- 'species'
|
||||
- 'series'
|
||||
- ''
|
||||
- ''
|
||||
- 'ryba'
|
||||
- 'owca'
|
||||
INFLECTOR_IRREGULAR:
|
||||
|
||||
@@ -67,7 +67,7 @@ GRAV:
|
||||
NICETIME:
|
||||
NO_DATE_PROVIDED: Nenhuma data fornecida
|
||||
BAD_DATE: Data inválida
|
||||
AGO: atrás
|
||||
AGO: há
|
||||
FROM_NOW: a partir de agora
|
||||
JUST_NOW: mesmo agora
|
||||
SECOND: segundo
|
||||
|
||||
@@ -1,6 +1,16 @@
|
||||
---
|
||||
GRAV:
|
||||
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_SINGULAR:
|
||||
'/([octop|vir])i$/i': '\1us'
|
||||
'/(cris|ax|test)es$/i': '\1is'
|
||||
'/(shoe)s$/i': '\1'
|
||||
'/([lr])ves$/i': '\1f'
|
||||
'/(tive)s$/i': "\\1\n"
|
||||
'/(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'
|
||||
INFLECTOR_UNCOUNTABLE:
|
||||
- 'экипировка'
|
||||
- 'информация'
|
||||
|
||||
@@ -1,9 +1,120 @@
|
||||
---
|
||||
GRAV:
|
||||
FRONTMATTER_ERROR_PAGE: "---\nමාතෘකාව: %1$s\n---\n\n# දෝෂය: වලංගු නොවන ඉදිරිපස\n\nමාර්ගය: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
|
||||
INFLECTOR_PLURALS:
|
||||
'/([m|l])ouse$/i': '\1අයිස්'
|
||||
'/(matr|vert|ind)ix|ex$/i': '\1අයිස්'
|
||||
'/(?:([^f])fe|([lr])f)$/i': '\1\2වෙස්'
|
||||
'/([ti])um$/i': '\1අ'
|
||||
'/(buffal|tomat)o$/i': '\1ඕඑස්'
|
||||
'/(bu)s$/i': '\1සෙස්'
|
||||
INFLECTOR_SINGULAR:
|
||||
'/(quiz)zes$/i': '\1'
|
||||
'/^(ox)en/i': '\1'
|
||||
'/(alias|status)es$/i': '\1'
|
||||
'/([octop|vir])i$/i': '\1 අප'
|
||||
'/(cris|ax|test)es$/i': '\1 වේ'
|
||||
'/(o)es$/i': '\1'
|
||||
'/(bus)es$/i': '\1'
|
||||
'/([m|l])ice$/i': '\1 භාවිතා කරන්න'
|
||||
'/(x|ch|ss|sh)es$/i': '\1'
|
||||
'/(m)ovies$/i': '\1ඕවී'
|
||||
'/(s)eries$/i': '\1මාලා'
|
||||
'/(^analy)ses$/i': '\1සිස්'
|
||||
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2සිස්'
|
||||
'/([ti])a$/i': '\1ම්'
|
||||
INFLECTOR_UNCOUNTABLE:
|
||||
- 'උපකරණ'
|
||||
- 'විස්තර'
|
||||
- 'සහල්'
|
||||
- 'මුදල'
|
||||
- 'විශේෂ'
|
||||
- 'මාලාවක්'
|
||||
- 'මාළු'
|
||||
- 'බැටළුවන්'
|
||||
INFLECTOR_IRREGULAR:
|
||||
'person': 'මහජන'
|
||||
'man': 'මිනිසුන්'
|
||||
'child': 'දරුවන්'
|
||||
'sex': 'ලිංගිකත්වය'
|
||||
'move': 'චලනය කරයි'
|
||||
INFLECTOR_ORDINALS:
|
||||
'first': 'ශාන්ත'
|
||||
NICETIME:
|
||||
NO_DATE_PROVIDED: දිනයක් සපයා නැත
|
||||
BAD_DATE: නරක දිනය
|
||||
AGO: පෙර
|
||||
FROM_NOW: මෙතැන් සිට
|
||||
JUST_NOW: මේ දැන්
|
||||
SECOND: දෙවැනි
|
||||
MINUTE: මිනිත්තුව
|
||||
HOUR: පැය
|
||||
DAY: දින
|
||||
WEEK: සතිය
|
||||
MONTH: මස
|
||||
YEAR: වර්ෂය
|
||||
DECADE: දශකය
|
||||
SEC: තත්පර
|
||||
MIN: මිනි
|
||||
HR: පැය
|
||||
YR: වසර
|
||||
DEC: දෙසැ
|
||||
SECOND_PLURAL: තත්පර
|
||||
MINUTE_PLURAL: මිනිත්තු
|
||||
HOUR_PLURAL: පැය
|
||||
DAY_PLURAL: දින
|
||||
WEEK_PLURAL: සති
|
||||
MONTH_PLURAL: මාස
|
||||
YEAR_PLURAL: වසර
|
||||
DECADE_PLURAL: දශක
|
||||
SEC_PLURAL: තත්පර
|
||||
MIN_PLURAL: මිනිත්තු
|
||||
HR_PLURAL: පැය
|
||||
WK_PLURAL: සති
|
||||
YR_PLURAL: වසර
|
||||
DEC_PLURAL: දෙසැ
|
||||
FORM:
|
||||
VALIDATION_FAIL: '<b>වලංගු කිරීම අසාර්ථක විය:</b>'
|
||||
INVALID_INPUT: 'වලංගු නොවන ආදානය'
|
||||
MISSING_REQUIRED_FIELD: 'අවශ්ය ක්ෂේත්රය අස්ථානගත වී ඇත:'
|
||||
XSS_ISSUES: "විභව XSS ගැටළු '%s' ක්ෂේත්රයේ අනාවරණය විය"
|
||||
MONTHS_OF_THE_YEAR:
|
||||
- 'ජනවාරි'
|
||||
- 'පෙබරවාරි'
|
||||
- 'මාර්තු'
|
||||
- 'අප්රේල්'
|
||||
- 'මැයි'
|
||||
- 'ජූනි'
|
||||
- 'ජුලි'
|
||||
- 'අගෝස්තු'
|
||||
- 'සැප්තැම්බර්'
|
||||
- 'ඔක්තෝම්බර්'
|
||||
- 'නොවැම්බර්'
|
||||
- 'දෙසැම්බර්'
|
||||
DAYS_OF_THE_WEEK:
|
||||
- 'සඳුදා'
|
||||
- 'අඟහරුවාදා'
|
||||
- 'බදාදා'
|
||||
- 'බ්රහස්පතින්දා'
|
||||
- 'සිකුරාදා'
|
||||
- 'සෙනසුරාදා'
|
||||
- 'ඉරිදා'
|
||||
YES: "ඔව්"
|
||||
NO: "නැත"
|
||||
CRON:
|
||||
EVERY: සෑම
|
||||
EVERY_HOUR: සෑම පැයකටම
|
||||
EVERY_MINUTE: සෑම විනාඩියකටම
|
||||
EVERY_DAY_OF_WEEK: සතියේ සෑම දිනකම
|
||||
EVERY_DAY_OF_MONTH: මාසයේ සෑම දිනකම
|
||||
EVERY_MONTH: සෑම මාසයකම
|
||||
TEXT_PERIOD: සෑම <b />
|
||||
TEXT_MINS: ' පැයට පසු විනාඩි <b /> කින්'
|
||||
TEXT_TIME: ' <b />:<b />ට'
|
||||
TEXT_DOW: ' <b />මත'
|
||||
TEXT_MONTH: ' <b />'
|
||||
TEXT_DOM: ' <b />මත'
|
||||
ERROR1: ටැගය %s සහාය නොදක්වයි!
|
||||
ERROR2: නරක මූලද්රව්ය සංඛ්යාව
|
||||
ERROR3: jquery_element jqCron සැකසුම් වලට සැකසිය යුතුය
|
||||
ERROR4: හඳුනා නොගත් ප්රකාශනය
|
||||
|
||||
@@ -1,6 +1,17 @@
|
||||
---
|
||||
GRAV:
|
||||
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Napaka: Neveljavna Frontmatter\n\nPath: `%2$s`\n\n**%3$s ** \n\n```\n%4$s \n```"
|
||||
INFLECTOR_UNCOUNTABLE:
|
||||
- 'oprema'
|
||||
- 'informacija'
|
||||
- 'riž'
|
||||
- 'denar'
|
||||
- 'vrste'
|
||||
- 'serija'
|
||||
- 'riba'
|
||||
- 'ovca'
|
||||
INFLECTOR_IRREGULAR:
|
||||
'person': 'ljudje'
|
||||
NICETIME:
|
||||
NO_DATE_PROVIDED: Datum ni na voljo
|
||||
BAD_DATE: Neveljaven datum
|
||||
@@ -43,15 +54,15 @@ GRAV:
|
||||
- 'Januar'
|
||||
- 'Februar'
|
||||
- 'Marec'
|
||||
- 'April'
|
||||
- 'april'
|
||||
- 'Maj'
|
||||
- 'Junij'
|
||||
- 'Julij'
|
||||
- 'Avgust'
|
||||
- 'September'
|
||||
- 'september'
|
||||
- 'Oktober'
|
||||
- 'November'
|
||||
- 'December'
|
||||
- 'november'
|
||||
- 'december'
|
||||
DAYS_OF_THE_WEEK:
|
||||
- 'Ponedeljek'
|
||||
- 'Torek'
|
||||
@@ -60,3 +71,15 @@ GRAV:
|
||||
- 'Petek'
|
||||
- 'Sobota'
|
||||
- 'Nedelja'
|
||||
YES: "Da"
|
||||
NO: "Ne"
|
||||
CRON:
|
||||
EVERY: vsak
|
||||
EVERY_HOUR: vsako uro
|
||||
EVERY_MINUTE: vsako minuto
|
||||
EVERY_DAY_OF_WEEK: vsak dan v tednu
|
||||
EVERY_DAY_OF_MONTH: vsak dan v mesecu
|
||||
EVERY_MONTH: vsak mesec
|
||||
ERROR1: Oznaka %s ni podprta!
|
||||
ERROR2: Napačno število elementov.
|
||||
ERROR4: Neznan izraz
|
||||
|
||||
147
system/languages/sw.yaml
Normal file
147
system/languages/sw.yaml
Normal file
@@ -0,0 +1,147 @@
|
||||
---
|
||||
GRAV:
|
||||
FRONTMATTER_ERROR_PAGE: "---\nkichwa: %1$s\n---\n\n# Kosa: Mbele ya Mbele\n\nNjia: `%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:
|
||||
- 'vifaa'
|
||||
- 'habari'
|
||||
- 'mchele'
|
||||
- 'pesa'
|
||||
- 'spishi'
|
||||
- 'mfululizo'
|
||||
- 'samaki'
|
||||
- 'kondoo'
|
||||
INFLECTOR_IRREGULAR:
|
||||
'person': 'watu'
|
||||
'man': 'wanaume'
|
||||
'child': 'watoto'
|
||||
'sex': 'jinsia'
|
||||
'move': 'songa'
|
||||
INFLECTOR_ORDINALS:
|
||||
'default': 'th'
|
||||
'first': 'st'
|
||||
'second': 'nd'
|
||||
'third': 'rd'
|
||||
NICETIME:
|
||||
NO_DATE_PROVIDED: Hakuna tarehe iliyotolewa
|
||||
BAD_DATE: Tarehe mbaya
|
||||
AGO: zilizopita
|
||||
FROM_NOW: kuanzia sasa
|
||||
JUST_NOW: sasa hivi
|
||||
SECOND: pili
|
||||
MINUTE: dakika
|
||||
HOUR: saa
|
||||
DAY: siku
|
||||
WEEK: wiki
|
||||
MONTH: mwezi
|
||||
YEAR: mwaka
|
||||
DECADE: muongo
|
||||
SEC: sec
|
||||
MIN: min
|
||||
HR: hr
|
||||
WK: wk
|
||||
MO: mo
|
||||
YR: yr
|
||||
DEC: dec
|
||||
SECOND_PLURAL: sekunde
|
||||
MINUTE_PLURAL: dakika
|
||||
HOUR_PLURAL: masaa
|
||||
DAY_PLURAL: siku
|
||||
WEEK_PLURAL: wiki
|
||||
MONTH_PLURAL: miezi
|
||||
YEAR_PLURAL: miaka
|
||||
DECADE_PLURAL: miongo
|
||||
SEC_PLURAL: secs
|
||||
MIN_PLURAL: mins
|
||||
HR_PLURAL: hrs
|
||||
WK_PLURAL: wks
|
||||
MO_PLURAL: mos
|
||||
YR_PLURAL: yrs
|
||||
DEC_PLURAL: decs
|
||||
FORM:
|
||||
VALIDATION_FAIL: '<b> Uthibitishaji umeshindwa: </b>'
|
||||
INVALID_INPUT: 'Ingizo batili katika'
|
||||
MISSING_REQUIRED_FIELD: 'Sehemu inayokosekana inahitajika:'
|
||||
XSS_ISSUES: "Masuala yanayowezekana ya XSS yamegunduliwa katika uwanja wa '% s"
|
||||
MONTHS_OF_THE_YEAR:
|
||||
- 'Januari'
|
||||
- 'Februari'
|
||||
- 'Machi'
|
||||
- 'Aprili'
|
||||
- 'Mei'
|
||||
- 'Juni'
|
||||
- 'Julai'
|
||||
- 'Agosti'
|
||||
- 'Septemba'
|
||||
- 'Oktoba'
|
||||
- 'Novemba'
|
||||
- 'Desemba'
|
||||
DAYS_OF_THE_WEEK:
|
||||
- 'Jumatatu'
|
||||
- 'Jumanne'
|
||||
- 'Jumatano'
|
||||
- 'Alhamisi'
|
||||
- 'Ijumaa'
|
||||
- 'Jumamosi'
|
||||
- 'Jumapili'
|
||||
YES: "Ndiyo"
|
||||
NO: "Hapana"
|
||||
CRON:
|
||||
EVERY: kila
|
||||
EVERY_HOUR: kila saa
|
||||
EVERY_MINUTE: kila dakika
|
||||
EVERY_DAY_OF_WEEK: kila siku ya juma
|
||||
EVERY_DAY_OF_MONTH: kila siku ya mwezi
|
||||
EVERY_MONTH: kila mwezi
|
||||
TEXT_PERIOD: Kila <b />
|
||||
TEXT_MINS: ' saa <b /> dakika (saa) zilizopita saa'
|
||||
TEXT_TIME: ' saa <b />: <b />'
|
||||
TEXT_DOW: ' kwenye <b />'
|
||||
TEXT_MONTH: ' ya <b />'
|
||||
TEXT_DOM: ' kwenye <b />'
|
||||
ERROR1: Lebo% s haitumiki!
|
||||
ERROR2: Idadi mbaya ya vitu
|
||||
ERROR3: Jquery_element inapaswa kuwekwa kwenye mipangilio ya jqCron
|
||||
ERROR4: Maneno yasiyotambulika
|
||||
@@ -1,11 +1,75 @@
|
||||
---
|
||||
GRAV:
|
||||
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```"
|
||||
FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Error: Invalid Frontmatter\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```"
|
||||
INFLECTOR_PLURALS:
|
||||
'/(quiz)$/i': '\1zes'
|
||||
'/^(ox)$/i': '\1en'
|
||||
'/([m|l])ouse$/i': '\1ice'
|
||||
'/(matr|vert|ind)ix|ex$/i': '\1ices'
|
||||
'/(x|ch|ss|sh)$/i': '\1es'
|
||||
'/([^aeiouy]|qu)ies$/i': '\1y'
|
||||
'/([^aeiouy]|qu)y$/i': '\1ies'
|
||||
'/(hive)$/i': '\1s'
|
||||
'/(?:([^f])fe|([lr])f)$/i': '\1\2ves'
|
||||
'/sis$/i': 'ses'
|
||||
'/([ti])um$/i': '\1a'
|
||||
'/(buffal|tomat)o$/i': '\1oes'
|
||||
'/(bu)s$/i': '\1ses'
|
||||
'/(alias|status)/i': '\1es'
|
||||
'/(octop|vir)us$/i': '\1i'
|
||||
'/(ax|test)is$/i': '\1es'
|
||||
'/s$/i': 's'
|
||||
'/$/': 's'
|
||||
INFLECTOR_SINGULAR:
|
||||
'/(quiz)zes$/i': '\1'
|
||||
'/(matr)ices$/i': '\1ix'
|
||||
'/(vert|ind)ices$/i': '\1ex'
|
||||
'/^(ox)en/i': '\1'
|
||||
'/(alias|status)es$/i': '\1'
|
||||
'/([octop|vir])i$/i': '\1us'
|
||||
'/(cris|ax|test)es$/i': '\1is'
|
||||
'/(shoe)s$/i': '\1'
|
||||
'/(o)es$/i': '\1'
|
||||
'/(bus)es$/i': '\1'
|
||||
'/([m|l])ice$/i': '\1ouse'
|
||||
'/(x|ch|ss|sh)es$/i': '\1'
|
||||
'/(m)ovies$/i': '\1ovie'
|
||||
'/(s)eries$/i': '\1eries'
|
||||
'/([^aeiouy]|qu)ies$/i': '\1y'
|
||||
'/([lr])ves$/i': '\1f'
|
||||
'/(tive)s$/i': '\1'
|
||||
'/(hive)s$/i': '\1'
|
||||
'/([^f])ves$/i': '\1fe'
|
||||
'/(^analy)ses$/i': '\1sis'
|
||||
'/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis'
|
||||
'/([ti])a$/i': '\1um'
|
||||
'/(n)ews$/i': '\1ews'
|
||||
INFLECTOR_UNCOUNTABLE:
|
||||
- 'อุปกรณ์'
|
||||
- 'ข้อมูล'
|
||||
- 'ข้าว'
|
||||
- 'เงิน'
|
||||
- 'สายพันธุ์'
|
||||
- 'ซีรีส์'
|
||||
- 'ปลา'
|
||||
- 'แกะ'
|
||||
INFLECTOR_IRREGULAR:
|
||||
'person': 'คน'
|
||||
'man': 'ผู้ชาย'
|
||||
'child': 'เด็กเด็ก'
|
||||
'sex': 'เพศ'
|
||||
'move': 'ย้าย'
|
||||
INFLECTOR_ORDINALS:
|
||||
'default': 'th'
|
||||
'first': 'st'
|
||||
'second': 'nd'
|
||||
'third': 'rd'
|
||||
NICETIME:
|
||||
NO_DATE_PROVIDED: ไม่มีวันที่ให้
|
||||
BAD_DATE: รูปแบบวันที่ผิด
|
||||
AGO: ที่ผ่านมา
|
||||
FROM_NOW: จากตอนนี้
|
||||
JUST_NOW: เมื่อกี้
|
||||
SECOND: วินาที
|
||||
MINUTE: นาที
|
||||
HOUR: ชั่วโมง
|
||||
@@ -17,6 +81,10 @@ GRAV:
|
||||
SEC: วิ
|
||||
MIN: นาที
|
||||
HR: ชม.
|
||||
WK: wk
|
||||
MO: mo
|
||||
YR: yr
|
||||
DEC: dec
|
||||
SECOND_PLURAL: วินาที
|
||||
MINUTE_PLURAL: นาที
|
||||
HOUR_PLURAL: ชั่วโมง
|
||||
@@ -28,11 +96,15 @@ 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: 'ขาดข้อมูลที่จำเป็น:'
|
||||
XSS_ISSUES: "ตรวจพบปัญหา XSS ที่เป็นไปได้ในฟิลด์ '%s'"
|
||||
MONTHS_OF_THE_YEAR:
|
||||
- 'มกราคม'
|
||||
- 'กุมภาพันธ์'
|
||||
@@ -54,3 +126,22 @@ GRAV:
|
||||
- 'ศุกร์'
|
||||
- 'เสาร์'
|
||||
- 'อาทิตย์'
|
||||
YES: "ใช่"
|
||||
NO: "ไม่"
|
||||
CRON:
|
||||
EVERY: ทุก ๆ
|
||||
EVERY_HOUR: ทุกชั่วโมง
|
||||
EVERY_MINUTE: ทุกนาที
|
||||
EVERY_DAY_OF_WEEK: ทุกวันในสัปดาห์
|
||||
EVERY_DAY_OF_MONTH: ทุกวันของเดือน
|
||||
EVERY_MONTH: ทุกเดือน
|
||||
TEXT_PERIOD: ทุก ๆ <b />
|
||||
TEXT_MINS: ' ที่ <b /> นาทีที่ผ่านไปแล้ว'
|
||||
TEXT_TIME: ' เวลา <b />:<b />'
|
||||
TEXT_DOW: ' บน <b />'
|
||||
TEXT_MONTH: ' จาก <b />'
|
||||
TEXT_DOM: ' บน <b />'
|
||||
ERROR1: ไม่รองรับแท็ก %s!
|
||||
ERROR2: จำนวนองค์ประกอบไม่ดี
|
||||
ERROR3: ควรตั้งค่า jquery_element เป็นการตั้งค่า jqCron
|
||||
ERROR4: นิพจน์ที่ไม่รู้จัก
|
||||
|
||||
@@ -125,6 +125,8 @@ GRAV:
|
||||
- '星期五'
|
||||
- '星期六'
|
||||
- '星期日'
|
||||
YES: "是"
|
||||
NO: "否"
|
||||
CRON:
|
||||
EVERY: 每隔
|
||||
EVERY_HOUR: 每小时
|
||||
|
||||
@@ -62,6 +62,8 @@ GRAV:
|
||||
- '星期五'
|
||||
- '星期六'
|
||||
- '星期日'
|
||||
YES: "是"
|
||||
NO: "否"
|
||||
CRON:
|
||||
EVERY: 每
|
||||
EVERY_HOUR: 每小時
|
||||
|
||||
@@ -125,6 +125,8 @@ GRAV:
|
||||
- '星期五'
|
||||
- '星期六'
|
||||
- '星期日'
|
||||
YES: "是"
|
||||
NO: "否"
|
||||
CRON:
|
||||
EVERY: 每隔
|
||||
EVERY_HOUR: 每小时
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Core
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -16,8 +16,8 @@ use Grav\Common\Assets\Traits\TestingAssetsTrait;
|
||||
use Grav\Common\Config\Config;
|
||||
use Grav\Framework\Object\PropertyObject;
|
||||
use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator;
|
||||
use function array_slice;
|
||||
use function call_user_func_array;
|
||||
use function count;
|
||||
use function func_get_args;
|
||||
use function is_array;
|
||||
|
||||
@@ -174,6 +174,10 @@ class Assets extends PropertyObject
|
||||
*/
|
||||
public function add($asset)
|
||||
{
|
||||
if (!$asset) {
|
||||
return $this;
|
||||
}
|
||||
|
||||
$args = func_get_args();
|
||||
|
||||
// More than one asset
|
||||
@@ -198,7 +202,8 @@ class Assets extends PropertyObject
|
||||
call_user_func_array([$this, 'add'], $args);
|
||||
} else {
|
||||
// Get extension
|
||||
$extension = pathinfo(parse_url($asset, PHP_URL_PATH), PATHINFO_EXTENSION);
|
||||
$path = parse_url($asset, PHP_URL_PATH);
|
||||
$extension = $path ? Utils::pathinfo($path, PATHINFO_EXTENSION) : '';
|
||||
|
||||
// JavaScript or CSS
|
||||
if ($extension !== '') {
|
||||
@@ -263,7 +268,13 @@ class Assets extends PropertyObject
|
||||
}
|
||||
|
||||
// Add timestamp
|
||||
$options['timestamp'] = $this->timestamp;
|
||||
$timestamp_override = $options['timestamp'] ?? true;
|
||||
|
||||
if (filter_var($timestamp_override, FILTER_VALIDATE_BOOLEAN)) {
|
||||
$options['timestamp'] = $this->timestamp;
|
||||
} else {
|
||||
$options['timestamp'] = null;
|
||||
}
|
||||
|
||||
// Set order
|
||||
$group = $options['group'] ?? 'head';
|
||||
@@ -387,6 +398,9 @@ class Assets extends PropertyObject
|
||||
|
||||
if ($key === 'position' && $value === 'pipeline') {
|
||||
$type = $asset->getType();
|
||||
if ($type === 'jsmodule') {
|
||||
$type = 'js_module';
|
||||
}
|
||||
|
||||
if ($asset->getRemote() && $this->{strtolower($type) . '_pipeline_include_externals'} === false && $asset['position'] === 'pipeline') {
|
||||
if ($this->{strtolower($type) . '_pipeline_before_excludes'}) {
|
||||
@@ -525,8 +539,8 @@ class Assets extends PropertyObject
|
||||
/**
|
||||
* Build the Javascript Modules tags
|
||||
*
|
||||
* @param $group
|
||||
* @param $attributes
|
||||
* @param string $group
|
||||
* @param array $attributes
|
||||
* @return string
|
||||
*/
|
||||
public function jsModule($group = 'head', $attributes = [])
|
||||
@@ -534,6 +548,11 @@ class Assets extends PropertyObject
|
||||
return $this->render(self::JS_MODULE, $group, $attributes);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $group
|
||||
* @param array $attributes
|
||||
* @return string
|
||||
*/
|
||||
public function all($group = 'head', $attributes = [])
|
||||
{
|
||||
$output = $this->css($group, $attributes, false);
|
||||
@@ -543,11 +562,19 @@ class Assets extends PropertyObject
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param class-string $type
|
||||
* @return bool
|
||||
*/
|
||||
protected function isValidType($type)
|
||||
{
|
||||
return in_array($type, [self::CSS_TYPE, self::JS_TYPE, self::JS_MODULE_TYPE]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param class-string $type
|
||||
* @return string
|
||||
*/
|
||||
protected function getBaseType($type)
|
||||
{
|
||||
switch ($type) {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Assets
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -267,4 +267,17 @@ abstract class BaseAsset extends PropertyObject
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds relative JS urls() and rewrites the URL with an absolute one
|
||||
*
|
||||
* @param string $file the css source file
|
||||
* @param string $dir local relative path to the css file
|
||||
* @param bool $local is this a local or remote asset
|
||||
* @return string
|
||||
*/
|
||||
protected function jsRewrite($file, $dir, $local)
|
||||
{
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
207
system/src/Grav/Common/Assets/BlockAssets.php
Normal file
207
system/src/Grav/Common/Assets/BlockAssets.php
Normal file
@@ -0,0 +1,207 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Grav\Common\Assets
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
namespace Grav\Common\Assets;
|
||||
|
||||
use Grav\Common\Assets;
|
||||
use Grav\Common\Config\Config;
|
||||
use Grav\Common\Grav;
|
||||
use Grav\Framework\ContentBlock\HtmlBlock;
|
||||
use function strlen;
|
||||
|
||||
/**
|
||||
* Register block assets into Grav.
|
||||
*/
|
||||
class BlockAssets
|
||||
{
|
||||
/**
|
||||
* @param HtmlBlock $block
|
||||
* @return void
|
||||
*/
|
||||
public static function registerAssets(HtmlBlock $block): void
|
||||
{
|
||||
$grav = Grav::instance();
|
||||
|
||||
/** @var Assets $assets */
|
||||
$assets = $grav['assets'];
|
||||
|
||||
$types = $block->getAssets();
|
||||
foreach ($types as $type => $groups) {
|
||||
switch ($type) {
|
||||
case 'frameworks':
|
||||
static::registerFrameworks($assets, $groups);
|
||||
break;
|
||||
case 'styles':
|
||||
static::registerStyles($assets, $groups);
|
||||
break;
|
||||
case 'scripts':
|
||||
static::registerScripts($assets, $groups);
|
||||
break;
|
||||
case 'links':
|
||||
static::registerLinks($assets, $groups);
|
||||
break;
|
||||
case 'html':
|
||||
static::registerHtml($assets, $groups);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Assets $assets
|
||||
* @param array $list
|
||||
* @return void
|
||||
*/
|
||||
protected static function registerFrameworks(Assets $assets, array $list): void
|
||||
{
|
||||
if ($list) {
|
||||
throw new \RuntimeException('Not Implemented');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Assets $assets
|
||||
* @param array $groups
|
||||
* @return void
|
||||
*/
|
||||
protected static function registerStyles(Assets $assets, array $groups): void
|
||||
{
|
||||
$grav = Grav::instance();
|
||||
|
||||
/** @var Config $config */
|
||||
$config = $grav['config'];
|
||||
|
||||
foreach ($groups as $group => $styles) {
|
||||
foreach ($styles as $style) {
|
||||
switch ($style[':type']) {
|
||||
case 'file':
|
||||
$options = [
|
||||
'priority' => $style[':priority'],
|
||||
'group' => $group,
|
||||
'type' => $style['type'],
|
||||
'media' => $style['media']
|
||||
] + $style['element'];
|
||||
|
||||
$assets->addCss(static::getRelativeUrl($style['href'], $config->get('system.assets.css_pipeline')), $options);
|
||||
break;
|
||||
case 'inline':
|
||||
$options = [
|
||||
'priority' => $style[':priority'],
|
||||
'group' => $group,
|
||||
'type' => $style['type'],
|
||||
] + $style['element'];
|
||||
|
||||
$assets->addInlineCss($style['content'], $options);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Assets $assets
|
||||
* @param array $groups
|
||||
* @return void
|
||||
*/
|
||||
protected static function registerScripts(Assets $assets, array $groups): void
|
||||
{
|
||||
$grav = Grav::instance();
|
||||
|
||||
/** @var Config $config */
|
||||
$config = $grav['config'];
|
||||
|
||||
foreach ($groups as $group => $scripts) {
|
||||
$group = $group === 'footer' ? 'bottom' : $group;
|
||||
|
||||
foreach ($scripts as $script) {
|
||||
switch ($script[':type']) {
|
||||
case 'file':
|
||||
$options = [
|
||||
'group' => $group,
|
||||
'priority' => $script[':priority'],
|
||||
'src' => $script['src'],
|
||||
'type' => $script['type'],
|
||||
'loading' => $script['loading'],
|
||||
'defer' => $script['defer'],
|
||||
'async' => $script['async'],
|
||||
'handle' => $script['handle']
|
||||
] + $script['element'];
|
||||
|
||||
$assets->addJs(static::getRelativeUrl($script['src'], $config->get('system.assets.js_pipeline')), $options);
|
||||
break;
|
||||
case 'inline':
|
||||
$options = [
|
||||
'priority' => $script[':priority'],
|
||||
'group' => $group,
|
||||
'type' => $script['type'],
|
||||
'loading' => $script['loading']
|
||||
] + $script['element'];
|
||||
|
||||
$assets->addInlineJs($script['content'], $options);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Assets $assets
|
||||
* @param array $groups
|
||||
* @return void
|
||||
*/
|
||||
protected static function registerLinks(Assets $assets, array $groups): void
|
||||
{
|
||||
foreach ($groups as $group => $links) {
|
||||
foreach ($links as $link) {
|
||||
$href = $link['href'];
|
||||
$options = [
|
||||
'group' => $group,
|
||||
'priority' => $link[':priority'],
|
||||
'rel' => $link['rel'],
|
||||
] + $link['element'];
|
||||
|
||||
$assets->addLink($href, $options);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Assets $assets
|
||||
* @param array $groups
|
||||
* @return void
|
||||
*/
|
||||
protected static function registerHtml(Assets $assets, array $groups): void
|
||||
{
|
||||
if ($groups) {
|
||||
throw new \RuntimeException('Not Implemented');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $url
|
||||
* @param bool $pipeline
|
||||
* @return string
|
||||
*/
|
||||
protected static function getRelativeUrl($url, $pipeline)
|
||||
{
|
||||
$grav = Grav::instance();
|
||||
|
||||
$base = rtrim($grav['base_url'], '/') ?: '/';
|
||||
|
||||
if (strpos($url, $base) === 0) {
|
||||
if ($pipeline) {
|
||||
// Remove file timestamp if CSS pipeline has been enabled.
|
||||
$url = preg_replace('|[?#].*|', '', $url);
|
||||
}
|
||||
|
||||
return substr($url, strlen($base) - 1);
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Assets
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Assets
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Assets
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Assets
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Assets
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Assets
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Assets
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Assets
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -34,7 +34,7 @@ class Pipeline extends PropertyObject
|
||||
protected const JS_MODULE_ASSET = 3;
|
||||
|
||||
/** @const Regex to match CSS urls */
|
||||
protected const CSS_URL_REGEX = '{url\(([\'\"]?)(.*?)\1\)}';
|
||||
protected const CSS_URL_REGEX = '{url\(([\'\"]?)(.*?)\1\)|(@import)\s+([\'\"])(.*?)\4}';
|
||||
|
||||
/** @const Regex to match JS imports */
|
||||
protected const JS_IMPORT_REGEX = '{import.+from\s?[\'|\"](.+?)[\'|\"]}';
|
||||
@@ -257,9 +257,14 @@ class Pipeline extends PropertyObject
|
||||
// Find any css url() elements, grab the URLs and calculate an absolute path
|
||||
// Then replace the old url with the new one
|
||||
$file = (string)preg_replace_callback(self::CSS_URL_REGEX, function ($matches) use ($dir, $local) {
|
||||
$isImport = count($matches) > 3 && $matches[3] === '@import';
|
||||
|
||||
$old_url = $matches[2];
|
||||
|
||||
if ($isImport) {
|
||||
$old_url = $matches[5];
|
||||
} else {
|
||||
$old_url = $matches[2];
|
||||
}
|
||||
|
||||
// Ensure link is not rooted to web server, a data URL, or to a remote host
|
||||
if (preg_match(self::FIRST_FORWARDSLASH_REGEX, $old_url) || Utils::startsWith($old_url, 'data:') || $this->isRemoteLink($old_url)) {
|
||||
return $matches[0];
|
||||
@@ -273,17 +278,21 @@ class Pipeline extends PropertyObject
|
||||
|
||||
$new_url = ($local ? $this->base_url : '') . $old_url;
|
||||
|
||||
return str_replace($matches[2], $new_url, $matches[0]);
|
||||
if ($isImport) {
|
||||
return str_replace($matches[5], $new_url, $matches[0]);
|
||||
} else {
|
||||
return str_replace($matches[2], $new_url, $matches[0]);
|
||||
}
|
||||
}, $file);
|
||||
|
||||
return $file;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Finds relative JS urls() and rewrites the URL with an absolute one
|
||||
*
|
||||
* @param string $file the css source file
|
||||
* @param string $dir , $local relative path to the css file
|
||||
* @param string $dir local relative path to the css file
|
||||
* @param bool $local is this a local or remote asset
|
||||
* @return string
|
||||
*/
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Assets\Traits
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -192,6 +192,7 @@ trait AssetUtilsTrait
|
||||
$querystring = '';
|
||||
|
||||
$asset = $asset ?? $this->asset;
|
||||
$attributes = $this->attributes;
|
||||
|
||||
if (!empty($this->query)) {
|
||||
if (Utils::contains($asset, '?')) {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Assets\Traits
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Assets\Traits
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Backup
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -104,8 +104,8 @@ class Backups
|
||||
*/
|
||||
public function getBackupDownloadUrl($backup, $base_url)
|
||||
{
|
||||
$param_sep = $param_sep = Grav::instance()['config']->get('system.param_sep', ':');
|
||||
$download = urlencode(base64_encode(basename($backup)));
|
||||
$param_sep = Grav::instance()['config']->get('system.param_sep', ':');
|
||||
$download = urlencode(base64_encode(Utils::basename($backup)));
|
||||
$url = rtrim(Grav::instance()['uri']->rootUrl(true), '/') . '/' . trim(
|
||||
$base_url,
|
||||
'/'
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -177,7 +177,7 @@ class Cache extends Getters
|
||||
public function purgeOldCache()
|
||||
{
|
||||
$cache_dir = dirname($this->cache_dir);
|
||||
$current = basename($this->cache_dir);
|
||||
$current = Utils::basename($this->cache_dir);
|
||||
$count = 0;
|
||||
|
||||
foreach (new DirectoryIterator($cache_dir) as $file) {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Config
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Config
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Config
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Config
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Config
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Config
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Config
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Config
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -182,13 +182,14 @@ class Setup extends Data
|
||||
// If no environment is set, make sure we get one (CLI or hostname).
|
||||
if (null === $environment) {
|
||||
if (defined('GRAV_CLI')) {
|
||||
$request = null;
|
||||
$uri = null;
|
||||
$environment = 'cli';
|
||||
} else {
|
||||
/** @var ServerRequestInterface $request */
|
||||
$request = $container['request'];
|
||||
$host = $request->getUri()->getHost();
|
||||
|
||||
$environment = Utils::substrToString($host, ':');
|
||||
$uri = $request->getUri();
|
||||
$environment = $uri->getHost();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -401,7 +402,7 @@ class Setup extends Data
|
||||
}
|
||||
|
||||
// Create security.yaml salt if it doesn't exist into existing configuration environment if possible.
|
||||
$securityFile = basename(static::$securityFile);
|
||||
$securityFile = Utils::basename(static::$securityFile);
|
||||
$securityFolder = substr(static::$securityFile, 0, -\strlen($securityFile));
|
||||
$securityFolder = $locator->findResource($securityFolder, true) ?: $locator->findResource($securityFolder, true, true);
|
||||
$filename = "{$securityFolder}/{$securityFile}";
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Data
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -515,7 +515,7 @@ class Blueprint extends BlueprintForm
|
||||
$success = $this->resolveActions($user, $actions);
|
||||
}
|
||||
if (!$success) {
|
||||
$this->addPropertyRecursive($field, 'validate', ['ignore' => true]);
|
||||
static::addPropertyRecursive($field, 'validate', ['ignore' => true]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -566,7 +566,7 @@ class Blueprint extends BlueprintForm
|
||||
}
|
||||
|
||||
if ($matches) {
|
||||
$this->addPropertyRecursive($field, 'validate', ['ignore' => true]);
|
||||
static::addPropertyRecursive($field, 'validate', ['ignore' => true]);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -577,7 +577,7 @@ class Blueprint extends BlueprintForm
|
||||
* @param mixed $value
|
||||
* @return void
|
||||
*/
|
||||
protected function addPropertyRecursive(array &$field, $property, $value)
|
||||
public static function addPropertyRecursive(array &$field, $property, $value)
|
||||
{
|
||||
if (is_array($value) && isset($field[$property]) && is_array($field[$property])) {
|
||||
$field[$property] = array_merge_recursive($field[$property], $value);
|
||||
@@ -587,7 +587,7 @@ class Blueprint extends BlueprintForm
|
||||
|
||||
if (!empty($field['fields'])) {
|
||||
foreach ($field['fields'] as $key => &$child) {
|
||||
$this->addPropertyRecursive($child, $property, $value);
|
||||
static::addPropertyRecursive($child, $property, $value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Data
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -129,7 +129,8 @@ class BlueprintSchema extends BlueprintSchemaBase implements ExportInterface
|
||||
$items = $name !== '' ? $this->getProperty($name)['fields'] ?? [] : $this->items;
|
||||
foreach ($items as $key => $rules) {
|
||||
$type = $rules['type'] ?? '';
|
||||
if (!str_starts_with($type, '_') && !str_contains($key, '*')) {
|
||||
$ignore = (bool) array_filter((array)($rules['validate']['ignore'] ?? [])) ?? false;
|
||||
if (!str_starts_with($type, '_') && !str_contains($key, '*') && $ignore !== true) {
|
||||
$list[$prefix . $key] = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Data
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Data
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Data
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Data
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -246,7 +246,9 @@ class Validation
|
||||
return false;
|
||||
}
|
||||
|
||||
$max = (int)($params['max'] ?? 0);
|
||||
$multiline = isset($params['multiline']) && $params['multiline'];
|
||||
|
||||
$max = (int)($params['max'] ?? ($multiline ? 65536 : 2048));
|
||||
if ($max && $len > $max) {
|
||||
return false;
|
||||
}
|
||||
@@ -256,7 +258,7 @@ class Validation
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((!isset($params['multiline']) || !$params['multiline']) && preg_match('/\R/um', $value)) {
|
||||
if (!$multiline && preg_match('/\R/um', $value)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -317,6 +319,10 @@ class Validation
|
||||
*/
|
||||
public static function typeCommaList($value, array $params, array $field)
|
||||
{
|
||||
if (!isset($params['max'])) {
|
||||
$params['max'] = 2048;
|
||||
}
|
||||
|
||||
return is_array($value) ? true : self::typeText($value, $params, $field);
|
||||
}
|
||||
|
||||
@@ -379,6 +385,10 @@ class Validation
|
||||
*/
|
||||
public static function typePassword($value, array $params, array $field)
|
||||
{
|
||||
if (!isset($params['max'])) {
|
||||
$params['max'] = 256;
|
||||
}
|
||||
|
||||
return self::typeText($value, $params, $field);
|
||||
}
|
||||
|
||||
@@ -540,7 +550,7 @@ class Validation
|
||||
$step = (float)$params['step'];
|
||||
// Count of how many steps we are above/below the minimum value.
|
||||
$pos = ($value - $min) / $step;
|
||||
|
||||
$pos = round($pos, 10);
|
||||
return is_int(static::filterNumber($pos, $params, $field));
|
||||
}
|
||||
|
||||
@@ -621,10 +631,18 @@ class Validation
|
||||
*/
|
||||
public static function typeEmail($value, array $params, array $field)
|
||||
{
|
||||
if (empty($value)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!isset($params['max'])) {
|
||||
$params['max'] = 320;
|
||||
}
|
||||
|
||||
$values = !is_array($value) ? explode(',', preg_replace('/\s+/', '', $value)) : $value;
|
||||
|
||||
foreach ($values as $val) {
|
||||
if (!(self::typeText($val, $params, $field) && filter_var($val, FILTER_VALIDATE_EMAIL))) {
|
||||
if (!(self::typeText($val, $params, $field) && strpos($val, '@', 1))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -642,6 +660,10 @@ class Validation
|
||||
*/
|
||||
public static function typeUrl($value, array $params, array $field)
|
||||
{
|
||||
if (!isset($params['max'])) {
|
||||
$params['max'] = 2048;
|
||||
}
|
||||
|
||||
return self::typeText($value, $params, $field) && filter_var($value, FILTER_VALIDATE_URL);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Data
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Errors
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Errors
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Errors
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -57,7 +57,7 @@ class SimplePageHandler extends Handler
|
||||
$vars = array(
|
||||
'stylesheet' => file_get_contents($cssFile),
|
||||
'code' => $code,
|
||||
'message' => filter_var(rawurldecode($message), FILTER_SANITIZE_STRING),
|
||||
'message' => htmlspecialchars(strip_tags(rawurldecode($message)), ENT_QUOTES, 'UTF-8'),
|
||||
);
|
||||
|
||||
$helper->setVariables($vars);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* @package Grav\Common\Errors
|
||||
*
|
||||
* @copyright Copyright (c) 2015 - 2022 Trilby Media, LLC. All rights reserved.
|
||||
* @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved.
|
||||
* @license MIT License; see LICENSE file for details.
|
||||
*/
|
||||
|
||||
@@ -43,4 +43,25 @@ class SystemFacade extends \Whoops\Util\SystemFacade
|
||||
$handler();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param int $httpCode
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function setHttpResponseCode($httpCode)
|
||||
{
|
||||
if (!headers_sent()) {
|
||||
// Ensure that no 'location' header is present as otherwise this
|
||||
// will override the HTTP code being set here, and mask the
|
||||
// expected error page.
|
||||
header_remove('location');
|
||||
|
||||
// Work around PHP bug #8218 (8.0.17 & 8.1.4).
|
||||
header_remove('Content-Encoding');
|
||||
}
|
||||
|
||||
return http_response_code($httpCode);
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user