Update Kirby and dependencies
This commit is contained in:
parent
07150a0011
commit
c7c5d615a4
451 changed files with 67540 additions and 63740 deletions
197
composer.lock
generated
197
composer.lock
generated
|
@ -53,16 +53,16 @@
|
|||
},
|
||||
{
|
||||
"name": "claviska/simpleimage",
|
||||
"version": "3.6.5",
|
||||
"version": "3.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/claviska/SimpleImage.git",
|
||||
"reference": "00f90662686696b9b7157dbb176183aabe89700f"
|
||||
"reference": "abd15ced313c7b8041d7d73d8d2398b4f2510cf1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/claviska/SimpleImage/zipball/00f90662686696b9b7157dbb176183aabe89700f",
|
||||
"reference": "00f90662686696b9b7157dbb176183aabe89700f",
|
||||
"url": "https://api.github.com/repos/claviska/SimpleImage/zipball/abd15ced313c7b8041d7d73d8d2398b4f2510cf1",
|
||||
"reference": "abd15ced313c7b8041d7d73d8d2398b4f2510cf1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -90,7 +90,7 @@
|
|||
"description": "A PHP class that makes working with images as simple as possible.",
|
||||
"support": {
|
||||
"issues": "https://github.com/claviska/SimpleImage/issues",
|
||||
"source": "https://github.com/claviska/SimpleImage/tree/3.6.5"
|
||||
"source": "https://github.com/claviska/SimpleImage/tree/3.7.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -98,7 +98,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-12-01T12:42:55+00:00"
|
||||
"time": "2022-07-05T13:18:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "filp/whoops",
|
||||
|
@ -173,35 +173,53 @@
|
|||
},
|
||||
{
|
||||
"name": "getkirby/cms",
|
||||
"version": "3.6.3",
|
||||
"version": "3.7.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/getkirby/kirby.git",
|
||||
"reference": "6b20fa11843f57cd9a1e611bc9e8e8a91b855156"
|
||||
"reference": "021561f7444896fc9917eccb52768a6e715e9a74"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/getkirby/kirby/zipball/6b20fa11843f57cd9a1e611bc9e8e8a91b855156",
|
||||
"reference": "6b20fa11843f57cd9a1e611bc9e8e8a91b855156",
|
||||
"url": "https://api.github.com/repos/getkirby/kirby/zipball/021561f7444896fc9917eccb52768a6e715e9a74",
|
||||
"reference": "021561f7444896fc9917eccb52768a6e715e9a74",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"claviska/simpleimage": "3.6.5",
|
||||
"claviska/simpleimage": "3.7.0",
|
||||
"ext-ctype": "*",
|
||||
"ext-curl": "*",
|
||||
"ext-dom": "*",
|
||||
"ext-filter": "*",
|
||||
"ext-hash": "*",
|
||||
"ext-iconv": "*",
|
||||
"ext-json": "*",
|
||||
"ext-libxml": "*",
|
||||
"ext-mbstring": "*",
|
||||
"ext-openssl": "*",
|
||||
"ext-simplexml": "*",
|
||||
"filp/whoops": "2.14.5",
|
||||
"getkirby/composer-installer": "^1.2.1",
|
||||
"laminas/laminas-escaper": "2.9.0",
|
||||
"laminas/laminas-escaper": "2.10.0",
|
||||
"michelf/php-smartypants": "1.8.1",
|
||||
"php": ">=7.4.0 <8.2.0",
|
||||
"phpmailer/phpmailer": "6.5.4",
|
||||
"psr/log": "1.1.4",
|
||||
"symfony/polyfill-intl-idn": "1.24.0",
|
||||
"symfony/polyfill-mbstring": "1.24.0"
|
||||
"phpmailer/phpmailer": "6.6.4",
|
||||
"symfony/polyfill-intl-idn": "1.26.0",
|
||||
"symfony/polyfill-mbstring": "1.26.0"
|
||||
},
|
||||
"replace": {
|
||||
"symfony/polyfill-php72": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-PDO": "Support for using databases",
|
||||
"ext-apcu": "Support for the Apcu cache driver",
|
||||
"ext-exif": "Support for exif information from images",
|
||||
"ext-fileinfo": "Improved mime type detection for files",
|
||||
"ext-intl": "Improved i18n number formatting",
|
||||
"ext-memcached": "Support for the Memcached cache driver",
|
||||
"ext-zip": "Support for ZIP archive file functions",
|
||||
"ext-zlib": "Sanitization and validation for svgz files"
|
||||
},
|
||||
"type": "kirby-cms",
|
||||
"extra": {
|
||||
"unused": [
|
||||
|
@ -250,7 +268,7 @@
|
|||
"type": "custom"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-22T09:36:50+00:00"
|
||||
"time": "2022-08-30T18:27:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "getkirby/composer-installer",
|
||||
|
@ -338,33 +356,33 @@
|
|||
},
|
||||
{
|
||||
"name": "laminas/laminas-escaper",
|
||||
"version": "2.9.0",
|
||||
"version": "2.10.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laminas/laminas-escaper.git",
|
||||
"reference": "891ad70986729e20ed2e86355fcf93c9dc238a5f"
|
||||
"reference": "58af67282db37d24e584a837a94ee55b9c7552be"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/891ad70986729e20ed2e86355fcf93c9dc238a5f",
|
||||
"reference": "891ad70986729e20ed2e86355fcf93c9dc238a5f",
|
||||
"url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/58af67282db37d24e584a837a94ee55b9c7552be",
|
||||
"reference": "58af67282db37d24e584a837a94ee55b9c7552be",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.3 || ~8.0.0 || ~8.1.0"
|
||||
"ext-ctype": "*",
|
||||
"ext-mbstring": "*",
|
||||
"php": "^7.4 || ~8.0.0 || ~8.1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"zendframework/zend-escaper": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"infection/infection": "^0.26.6",
|
||||
"laminas/laminas-coding-standard": "~2.3.0",
|
||||
"phpunit/phpunit": "^9.3",
|
||||
"psalm/plugin-phpunit": "^0.12.2",
|
||||
"vimeo/psalm": "^3.16"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-iconv": "*",
|
||||
"ext-mbstring": "*"
|
||||
"maglnet/composer-require-checker": "^3.8.0",
|
||||
"phpunit/phpunit": "^9.5.18",
|
||||
"psalm/plugin-phpunit": "^0.16.1",
|
||||
"vimeo/psalm": "^4.22.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
|
@ -396,7 +414,7 @@
|
|||
"type": "community_bridge"
|
||||
}
|
||||
],
|
||||
"time": "2021-09-02T17:10:53+00:00"
|
||||
"time": "2022-03-08T20:15:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/color-extractor",
|
||||
|
@ -512,21 +530,24 @@
|
|||
},
|
||||
{
|
||||
"name": "mullema/k3-image-clip",
|
||||
"version": "3.0.0",
|
||||
"version": "3.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/mullema/k3-image-clip.git",
|
||||
"reference": "ac6a4a461ae8972557da24755005a3937a275b0c"
|
||||
"reference": "c2e01f2ceb9eb5bc56895177359d398a3a2dbcf4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/mullema/k3-image-clip/zipball/ac6a4a461ae8972557da24755005a3937a275b0c",
|
||||
"reference": "ac6a4a461ae8972557da24755005a3937a275b0c",
|
||||
"url": "https://api.github.com/repos/mullema/k3-image-clip/zipball/c2e01f2ceb9eb5bc56895177359d398a3a2dbcf4",
|
||||
"reference": "c2e01f2ceb9eb5bc56895177359d398a3a2dbcf4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"getkirby/composer-installer": "^1.2"
|
||||
},
|
||||
"conflict": {
|
||||
"getkirby/cms": "<3.6"
|
||||
},
|
||||
"type": "kirby-plugin",
|
||||
"extra": {
|
||||
"installer-name": "k3-image-clip"
|
||||
|
@ -545,22 +566,22 @@
|
|||
"description": "Visual image clip for Kirby 3",
|
||||
"support": {
|
||||
"issues": "https://github.com/mullema/k3-image-clip/issues",
|
||||
"source": "https://github.com/mullema/k3-image-clip/tree/3.0.0"
|
||||
"source": "https://github.com/mullema/k3-image-clip/tree/3.1.0"
|
||||
},
|
||||
"time": "2021-12-05T21:47:42+00:00"
|
||||
"time": "2022-06-26T08:59:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpmailer/phpmailer",
|
||||
"version": "v6.5.4",
|
||||
"version": "v6.6.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/PHPMailer/PHPMailer.git",
|
||||
"reference": "c0d9f7dd3c2aa247ca44791e9209233829d82285"
|
||||
"reference": "a94fdebaea6bd17f51be0c2373ab80d3d681269b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/c0d9f7dd3c2aa247ca44791e9209233829d82285",
|
||||
"reference": "c0d9f7dd3c2aa247ca44791e9209233829d82285",
|
||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/a94fdebaea6bd17f51be0c2373ab80d3d681269b",
|
||||
"reference": "a94fdebaea6bd17f51be0c2373ab80d3d681269b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -572,8 +593,8 @@
|
|||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
|
||||
"doctrine/annotations": "^1.2",
|
||||
"php-parallel-lint/php-console-highlighter": "^0.5.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3.1",
|
||||
"php-parallel-lint/php-console-highlighter": "^1.0.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3.2",
|
||||
"phpcompatibility/php-compatibility": "^9.3.5",
|
||||
"roave/security-advisories": "dev-latest",
|
||||
"squizlabs/php_codesniffer": "^3.6.2",
|
||||
|
@ -617,7 +638,7 @@
|
|||
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
|
||||
"support": {
|
||||
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
|
||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.5.4"
|
||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -625,34 +646,34 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-02-17T08:19:04+00:00"
|
||||
"time": "2022-08-22T09:22:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
"version": "1.1.4",
|
||||
"version": "3.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/log.git",
|
||||
"reference": "d49695b909c3b7628b6289db5479a1c204601f11"
|
||||
"reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
|
||||
"reference": "d49695b909c3b7628b6289db5479a1c204601f11",
|
||||
"url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
|
||||
"reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
"php": ">=8.0.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.1.x-dev"
|
||||
"dev-master": "3.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Psr\\Log\\": "Psr/Log/"
|
||||
"Psr\\Log\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
|
@ -673,9 +694,9 @@
|
|||
"psr-3"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/log/tree/1.1.4"
|
||||
"source": "https://github.com/php-fig/log/tree/3.0.0"
|
||||
},
|
||||
"time": "2021-05-03T11:20:27+00:00"
|
||||
"time": "2021-07-14T16:46:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sylvainjule/matomo",
|
||||
|
@ -717,16 +738,16 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
"version": "v1.25.0",
|
||||
"version": "v1.26.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||
"reference": "30885182c981ab175d4d034db0f6f469898070ab"
|
||||
"reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
|
||||
"reference": "30885182c981ab175d4d034db0f6f469898070ab",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4",
|
||||
"reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -741,7 +762,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
"dev-main": "1.26-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
@ -779,7 +800,7 @@
|
|||
"portable"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0"
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -795,20 +816,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-10-20T20:35:02+00:00"
|
||||
"time": "2022-05-24T11:49:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.24.0",
|
||||
"version": "v1.26.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "749045c69efb97c70d25d7463abba812e91f3a44"
|
||||
"reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/749045c69efb97c70d25d7463abba812e91f3a44",
|
||||
"reference": "749045c69efb97c70d25d7463abba812e91f3a44",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
|
||||
"reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -822,7 +843,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
"dev-main": "1.26-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
@ -866,7 +887,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.24.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -882,20 +903,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-09-14T14:02:44+00:00"
|
||||
"time": "2022-05-24T11:49:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.25.0",
|
||||
"version": "v1.26.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8"
|
||||
"reference": "219aa369ceff116e673852dce47c3a41794c14bd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8",
|
||||
"reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd",
|
||||
"reference": "219aa369ceff116e673852dce47c3a41794c14bd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -907,7 +928,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
"dev-main": "1.26-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
@ -950,7 +971,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -966,20 +987,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-19T12:13:01+00:00"
|
||||
"time": "2022-05-24T11:49:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.24.0",
|
||||
"version": "v1.26.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825"
|
||||
"reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
|
||||
"reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
|
||||
"reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -994,7 +1015,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
"dev-main": "1.26-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
@ -1033,7 +1054,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0"
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1049,20 +1070,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-11-30T18:21:41+00:00"
|
||||
"time": "2022-05-24T11:49:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
"version": "v3.3.8",
|
||||
"version": "v3.4.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twigphp/Twig.git",
|
||||
"reference": "972d8604a92b7054828b539f2febb0211dd5945c"
|
||||
"reference": "e07cdd3d430cd7e453c31b36eb5ad6c0c5e43077"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/972d8604a92b7054828b539f2febb0211dd5945c",
|
||||
"reference": "972d8604a92b7054828b539f2febb0211dd5945c",
|
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/e07cdd3d430cd7e453c31b36eb5ad6c0c5e43077",
|
||||
"reference": "e07cdd3d430cd7e453c31b36eb5ad6c0c5e43077",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -1077,7 +1098,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.3-dev"
|
||||
"dev-master": "3.4-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
|
@ -1113,7 +1134,7 @@
|
|||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/twigphp/Twig/issues",
|
||||
"source": "https://github.com/twigphp/Twig/tree/v3.3.8"
|
||||
"source": "https://github.com/twigphp/Twig/tree/v3.4.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -1125,7 +1146,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-02-04T06:59:48+00:00"
|
||||
"time": "2022-08-12T06:47:24+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
|
|
|
@ -6,10 +6,19 @@
|
|||
|
||||
root = true
|
||||
|
||||
[*.php]
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
indent_style = tab
|
||||
indent_size = 2
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = space
|
||||
|
||||
[*.php]
|
||||
indent_size = 4
|
||||
insert_final_newline = true
|
||||
|
||||
[*.yml]
|
||||
indent_style = space
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
6
kirby/.vscode/extensions.json
vendored
6
kirby/.vscode/extensions.json
vendored
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"recommendations": [
|
||||
"dbaeumer.vscode-eslint",
|
||||
"esbenp.prettier-vscode"
|
||||
]
|
||||
}
|
4
kirby/.vscode/settings.json
vendored
4
kirby/.vscode/settings.json
vendored
|
@ -1,4 +0,0 @@
|
|||
{
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
"editor.formatOnSave": true
|
||||
}
|
|
@ -28,7 +28,7 @@ Please post all bug reports in our [issue tracker](https://github.com/getkirby/k
|
|||
If you have ideas for a feature or enhancement for Kirby, please use our [feedback platform](https://feedback.getkirby.com).
|
||||
|
||||
**Translations, bug fixes, code contributions ...**
|
||||
Read about how to contribute to the development in our [contributing guide](/.github/CONTRIBUTING.md).
|
||||
Read about how to contribute to the development in our [contributing guide](/CONTRIBUTING.md).
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ if (
|
|||
}
|
||||
|
||||
if (is_file($autoloader = dirname(__DIR__) . '/vendor/autoload.php')) {
|
||||
|
||||
/**
|
||||
* Always prefer a site-wide Composer autoloader
|
||||
* if it exists, it means that the user has probably
|
||||
|
@ -20,13 +19,11 @@ if (is_file($autoloader = dirname(__DIR__) . '/vendor/autoload.php')) {
|
|||
*/
|
||||
include $autoloader;
|
||||
} elseif (is_file($autoloader = __DIR__ . '/vendor/autoload.php')) {
|
||||
|
||||
/**
|
||||
* Fall back to the local autoloader if that exists
|
||||
*/
|
||||
include $autoloader;
|
||||
} else {
|
||||
|
||||
/**
|
||||
* If neither one exists, don't bother searching;
|
||||
* it's a custom directory setup and the users need to
|
||||
|
|
231
kirby/cacert.pem
231
kirby/cacert.pem
|
@ -1,7 +1,7 @@
|
|||
##
|
||||
## Bundle of CA Root Certificates
|
||||
##
|
||||
## Certificate data from Mozilla as of: Fri Mar 18 12:29:51 2022 GMT
|
||||
## Certificate data from Mozilla as of: Tue Jul 19 03:12:06 2022 GMT
|
||||
##
|
||||
## This is a bundle of X.509 certificates of public Certificate Authorities
|
||||
## (CA). These were automatically extracted from Mozilla's root certificates
|
||||
|
@ -14,7 +14,7 @@
|
|||
## Just configure this file as the SSLCACertificateFile.
|
||||
##
|
||||
## Conversion done with mk-ca-bundle.pl version 1.29.
|
||||
## SHA256: 187ef9dc231135324fe78830cf4462f1ecdeab3e6c9d5e38d623391e88dc5d3c
|
||||
## SHA256: 9bf3799611fb58197f61d45e71ce3dc19f30e7dd73731915872ce5108a7bb066
|
||||
##
|
||||
|
||||
|
||||
|
@ -993,30 +993,6 @@ tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29
|
|||
mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Hellenic Academic and Research Institutions RootCA 2011
|
||||
=======================================================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT
|
||||
O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y
|
||||
aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
|
||||
IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT
|
||||
AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z
|
||||
IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo
|
||||
IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
||||
AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI
|
||||
1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa
|
||||
71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u
|
||||
8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH
|
||||
3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/
|
||||
MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8
|
||||
MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu
|
||||
b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt
|
||||
XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
|
||||
TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD
|
||||
/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N
|
||||
7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Actalis Authentication Root CA
|
||||
==============================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
|
@ -3279,3 +3255,206 @@ PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C
|
|||
r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh
|
||||
4rsUecrNIdSUtUlD
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Telia Root CA v2
|
||||
================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT
|
||||
AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2
|
||||
MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK
|
||||
DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI
|
||||
hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7
|
||||
6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q
|
||||
9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn
|
||||
pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl
|
||||
tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW
|
||||
5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr
|
||||
RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E
|
||||
BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4
|
||||
M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau
|
||||
BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W
|
||||
xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD
|
||||
VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ
|
||||
8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5
|
||||
tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H
|
||||
eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C
|
||||
y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC
|
||||
QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15
|
||||
h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70
|
||||
sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9
|
||||
xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ
|
||||
raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
D-TRUST BR Root CA 1 2020
|
||||
=========================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE
|
||||
RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy
|
||||
MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV
|
||||
BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG
|
||||
ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7
|
||||
dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu
|
||||
QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t
|
||||
MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu
|
||||
bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj
|
||||
dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP
|
||||
PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD
|
||||
AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom
|
||||
AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
D-TRUST EV Root CA 1 2020
|
||||
=========================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE
|
||||
RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy
|
||||
MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV
|
||||
BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG
|
||||
ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8
|
||||
ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ
|
||||
raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL
|
||||
MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu
|
||||
bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj
|
||||
dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP
|
||||
PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD
|
||||
AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR
|
||||
AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
DigiCert TLS ECC P384 Root G5
|
||||
=============================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV
|
||||
UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4
|
||||
NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx
|
||||
FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg
|
||||
Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd
|
||||
lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj
|
||||
n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB
|
||||
/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds
|
||||
Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx
|
||||
AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
DigiCert TLS RSA4096 Root G5
|
||||
============================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG
|
||||
EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0
|
||||
MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV
|
||||
UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2
|
||||
IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8
|
||||
7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU
|
||||
AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces
|
||||
tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa
|
||||
zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV
|
||||
DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q
|
||||
TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy
|
||||
z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/
|
||||
MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk
|
||||
wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E
|
||||
FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w
|
||||
DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw
|
||||
GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN
|
||||
lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN
|
||||
MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/
|
||||
u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G
|
||||
OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh
|
||||
47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU
|
||||
FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ
|
||||
yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP
|
||||
bEtoL8pU9ozaMv7Da4M/OMZ+
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Certainly Root R1
|
||||
=================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE
|
||||
BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN
|
||||
MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy
|
||||
dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
|
||||
ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O
|
||||
5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl
|
||||
8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl
|
||||
DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI
|
||||
XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN
|
||||
KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ
|
||||
AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb
|
||||
rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1
|
||||
VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS
|
||||
p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
|
||||
DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz
|
||||
HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d
|
||||
8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v
|
||||
MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB
|
||||
GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+
|
||||
gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH
|
||||
JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7
|
||||
fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw
|
||||
x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S
|
||||
X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
Certainly Root E1
|
||||
=================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV
|
||||
UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0
|
||||
MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu
|
||||
bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4
|
||||
fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9
|
||||
YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw
|
||||
DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E
|
||||
AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8
|
||||
rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
E-Tugra Global Root CA RSA v3
|
||||
=============================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF8zCCA9ugAwIBAgIUDU3FzRYilZYIfrgLfxUGNPt5EDQwDQYJKoZIhvcNAQELBQAwgYAxCzAJ
|
||||
BgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVncmEgRUJHIEEuUy4xHTAb
|
||||
BgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYDVQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290
|
||||
IENBIFJTQSB2MzAeFw0yMDAzMTgwOTA3MTdaFw00NTAzMTIwOTA3MTdaMIGAMQswCQYDVQQGEwJU
|
||||
UjEPMA0GA1UEBxMGQW5rYXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRF
|
||||
LVR1Z3JhIFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBSU0Eg
|
||||
djMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCiZvCJt3J77gnJY9LTQ91ew6aEOErx
|
||||
jYG7FL1H6EAX8z3DeEVypi6Q3po61CBxyryfHUuXCscxuj7X/iWpKo429NEvx7epXTPcMHD4QGxL
|
||||
sqYxYdE0PD0xesevxKenhOGXpOhL9hd87jwH7eKKV9y2+/hDJVDqJ4GohryPUkqWOmAalrv9c/SF
|
||||
/YP9f4RtNGx/ardLAQO/rWm31zLZ9Vdq6YaCPqVmMbMWPcLzJmAy01IesGykNz709a/r4d+ABs8q
|
||||
QedmCeFLl+d3vSFtKbZnwy1+7dZ5ZdHPOrbRsV5WYVB6Ws5OUDGAA5hH5+QYfERaxqSzO8bGwzrw
|
||||
bMOLyKSRBfP12baqBqG3q+Sx6iEUXIOk/P+2UNOMEiaZdnDpwA+mdPy70Bt4znKS4iicvObpCdg6
|
||||
04nmvi533wEKb5b25Y08TVJ2Glbhc34XrD2tbKNSEhhw5oBOM/J+JjKsBY04pOZ2PJ8QaQ5tndLB
|
||||
eSBrW88zjdGUdjXnXVXHt6woq0bM5zshtQoK5EpZ3IE1S0SVEgpnpaH/WwAH0sDM+T/8nzPyAPiM
|
||||
bIedBi3x7+PmBvrFZhNb/FAHnnGGstpvdDDPk1Po3CLW3iAfYY2jLqN4MpBs3KwytQXk9TwzDdbg
|
||||
h3cXTJ2w2AmoDVf3RIXwyAS+XF1a4xeOVGNpf0l0ZAWMowIDAQABo2MwYTAPBgNVHRMBAf8EBTAD
|
||||
AQH/MB8GA1UdIwQYMBaAFLK0ruYt9ybVqnUtdkvAG1Mh0EjvMB0GA1UdDgQWBBSytK7mLfcm1ap1
|
||||
LXZLwBtTIdBI7zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAImocn+M684uGMQQ
|
||||
gC0QDP/7FM0E4BQ8Tpr7nym/Ip5XuYJzEmMmtcyQ6dIqKe6cLcwsmb5FJ+Sxce3kOJUxQfJ9emN4
|
||||
38o2Fi+CiJ+8EUdPdk3ILY7r3y18Tjvarvbj2l0Upq7ohUSdBm6O++96SmotKygY/r+QLHUWnw/q
|
||||
ln0F7psTpURs+APQ3SPh/QMSEgj0GDSz4DcLdxEBSL9htLX4GdnLTeqjjO/98Aa1bZL0SmFQhO3s
|
||||
SdPkvmjmLuMxC1QLGpLWgti2omU8ZgT5Vdps+9u1FGZNlIM7zR6mK7L+d0CGq+ffCsn99t2HVhjY
|
||||
sCxVYJb6CH5SkPVLpi6HfMsg2wY+oF0Dd32iPBMbKaITVaA9FCKvb7jQmhty3QUBjYZgv6Rn7rWl
|
||||
DdF/5horYmbDB7rnoEgcOMPpRfunf/ztAmgayncSd6YAVSgU7NbHEqIbZULpkejLPoeJVF3Zr52X
|
||||
nGnnCv8PWniLYypMfUeUP95L6VPQMPHF9p5J3zugkaOj/s1YzOrfr28oO6Bpm4/srK4rVJ2bBLFH
|
||||
IK+WEj5jlB0E5y67hscMmoi/dkfv97ALl2bSRM9gUgfh1SxKOidhd8rXj+eHDjD/DLsE4mHDosiX
|
||||
YY60MGo8bcIHX0pzLz/5FooBZu+6kcpSV3uu1OYP3Qt6f4ueJiDPO++BcYNZ
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
E-Tugra Global Root CA ECC v3
|
||||
=============================
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICpTCCAiqgAwIBAgIUJkYZdzHhT28oNt45UYbm1JeIIsEwCgYIKoZIzj0EAwMwgYAxCzAJBgNV
|
||||
BAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVncmEgRUJHIEEuUy4xHTAbBgNV
|
||||
BAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYDVQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENB
|
||||
IEVDQyB2MzAeFw0yMDAzMTgwOTQ2NThaFw00NTAzMTIwOTQ2NThaMIGAMQswCQYDVQQGEwJUUjEP
|
||||
MA0GA1UEBxMGQW5rYXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1
|
||||
Z3JhIFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBFQ0MgdjMw
|
||||
djAQBgcqhkjOPQIBBgUrgQQAIgNiAASOmCm/xxAeJ9urA8woLNheSBkQKczLWYHMjLiSF4mDKpL2
|
||||
w6QdTGLVn9agRtwcvHbB40fQWxPa56WzZkjnIZpKT4YKfWzqTTKACrJ6CZtpS5iB4i7sAnCWH/31
|
||||
Rs7K3IKjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU/4Ixcj75xGZsrTie0bBRiKWQ
|
||||
zPUwHQYDVR0OBBYEFP+CMXI++cRmbK04ntGwUYilkMz1MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO
|
||||
PQQDAwNpADBmAjEA5gVYaWHlLcoNy/EZCL3W/VGSGn5jVASQkZo1kTmZ+gepZpO6yGjUij/67W4W
|
||||
Aie3AjEA3VoXK3YdZUKWpqxdinlW2Iob35reX8dQj7FbcQwm32pAAOwzkSFxvmjkI6TZraE3
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"description": "The Kirby 3 core",
|
||||
"license": "proprietary",
|
||||
"type": "kirby-cms",
|
||||
"version": "3.6.3",
|
||||
"version": "3.7.5",
|
||||
"keywords": [
|
||||
"kirby",
|
||||
"cms",
|
||||
|
@ -23,24 +23,41 @@
|
|||
"forum": "https://forum.getkirby.com",
|
||||
"source": "https://github.com/getkirby/kirby"
|
||||
},
|
||||
"_comment": "TODO: psr/log is not used by Kirby; drop pinned version when Kirby no longer supports PHP 7",
|
||||
"require": {
|
||||
"php": ">=7.4.0 <8.2.0",
|
||||
"ext-SimpleXML": "*",
|
||||
"ext-ctype": "*",
|
||||
"ext-curl": "*",
|
||||
"ext-dom": "*",
|
||||
"ext-filter": "*",
|
||||
"ext-hash": "*",
|
||||
"ext-iconv": "*",
|
||||
"ext-json": "*",
|
||||
"ext-libxml": "*",
|
||||
"ext-mbstring": "*",
|
||||
"claviska/simpleimage": "3.6.5",
|
||||
"ext-openssl": "*",
|
||||
"claviska/simpleimage": "3.7.0",
|
||||
"filp/whoops": "2.14.5",
|
||||
"getkirby/composer-installer": "^1.2.1",
|
||||
"laminas/laminas-escaper": "2.9.0",
|
||||
"laminas/laminas-escaper": "2.10.0",
|
||||
"michelf/php-smartypants": "1.8.1",
|
||||
"phpmailer/phpmailer": "6.5.4",
|
||||
"psr/log": "1.1.4",
|
||||
"symfony/polyfill-intl-idn": "1.24.0",
|
||||
"symfony/polyfill-mbstring": "1.24.0"
|
||||
"phpmailer/phpmailer": "6.6.4",
|
||||
"symfony/polyfill-intl-idn": "1.26.0",
|
||||
"symfony/polyfill-mbstring": "1.26.0"
|
||||
},
|
||||
"replace": {
|
||||
"symfony/polyfill-php72": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-PDO": "Support for using databases",
|
||||
"ext-apcu": "Support for the Apcu cache driver",
|
||||
"ext-exif": "Support for exif information from images",
|
||||
"ext-fileinfo": "Improved mime type detection for files",
|
||||
"ext-intl": "Improved i18n number formatting",
|
||||
"ext-memcached": "Support for the Memcached cache driver",
|
||||
"ext-zip": "Support for ZIP archive file functions",
|
||||
"ext-zlib": "Sanitization and validation for svgz files"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Kirby\\": "src/"
|
||||
|
@ -58,6 +75,9 @@
|
|||
"getkirby/composer-installer": true
|
||||
},
|
||||
"optimize-autoloader": true,
|
||||
"platform": {
|
||||
"php": "7.4.0"
|
||||
},
|
||||
"platform-check": false
|
||||
},
|
||||
"extra": {
|
||||
|
|
114
kirby/composer.lock
generated
114
kirby/composer.lock
generated
|
@ -4,20 +4,20 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "d4cf75084dae428fe0ab54124637d51f",
|
||||
"content-hash": "fb087946fb5ac5910e25a4d263905d99",
|
||||
"packages": [
|
||||
{
|
||||
"name": "claviska/simpleimage",
|
||||
"version": "3.6.5",
|
||||
"version": "3.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/claviska/SimpleImage.git",
|
||||
"reference": "00f90662686696b9b7157dbb176183aabe89700f"
|
||||
"reference": "abd15ced313c7b8041d7d73d8d2398b4f2510cf1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/claviska/SimpleImage/zipball/00f90662686696b9b7157dbb176183aabe89700f",
|
||||
"reference": "00f90662686696b9b7157dbb176183aabe89700f",
|
||||
"url": "https://api.github.com/repos/claviska/SimpleImage/zipball/abd15ced313c7b8041d7d73d8d2398b4f2510cf1",
|
||||
"reference": "abd15ced313c7b8041d7d73d8d2398b4f2510cf1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -45,7 +45,7 @@
|
|||
"description": "A PHP class that makes working with images as simple as possible.",
|
||||
"support": {
|
||||
"issues": "https://github.com/claviska/SimpleImage/issues",
|
||||
"source": "https://github.com/claviska/SimpleImage/tree/3.6.5"
|
||||
"source": "https://github.com/claviska/SimpleImage/tree/3.7.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -53,7 +53,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-12-01T12:42:55+00:00"
|
||||
"time": "2022-07-05T13:18:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "filp/whoops",
|
||||
|
@ -175,33 +175,33 @@
|
|||
},
|
||||
{
|
||||
"name": "laminas/laminas-escaper",
|
||||
"version": "2.9.0",
|
||||
"version": "2.10.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/laminas/laminas-escaper.git",
|
||||
"reference": "891ad70986729e20ed2e86355fcf93c9dc238a5f"
|
||||
"reference": "58af67282db37d24e584a837a94ee55b9c7552be"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/891ad70986729e20ed2e86355fcf93c9dc238a5f",
|
||||
"reference": "891ad70986729e20ed2e86355fcf93c9dc238a5f",
|
||||
"url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/58af67282db37d24e584a837a94ee55b9c7552be",
|
||||
"reference": "58af67282db37d24e584a837a94ee55b9c7552be",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.3 || ~8.0.0 || ~8.1.0"
|
||||
"ext-ctype": "*",
|
||||
"ext-mbstring": "*",
|
||||
"php": "^7.4 || ~8.0.0 || ~8.1.0"
|
||||
},
|
||||
"conflict": {
|
||||
"zendframework/zend-escaper": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"infection/infection": "^0.26.6",
|
||||
"laminas/laminas-coding-standard": "~2.3.0",
|
||||
"phpunit/phpunit": "^9.3",
|
||||
"psalm/plugin-phpunit": "^0.12.2",
|
||||
"vimeo/psalm": "^3.16"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-iconv": "*",
|
||||
"ext-mbstring": "*"
|
||||
"maglnet/composer-require-checker": "^3.8.0",
|
||||
"phpunit/phpunit": "^9.5.18",
|
||||
"psalm/plugin-phpunit": "^0.16.1",
|
||||
"vimeo/psalm": "^4.22.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
|
@ -233,7 +233,7 @@
|
|||
"type": "community_bridge"
|
||||
}
|
||||
],
|
||||
"time": "2021-09-02T17:10:53+00:00"
|
||||
"time": "2022-03-08T20:15:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/color-extractor",
|
||||
|
@ -349,16 +349,16 @@
|
|||
},
|
||||
{
|
||||
"name": "phpmailer/phpmailer",
|
||||
"version": "v6.5.4",
|
||||
"version": "v6.6.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/PHPMailer/PHPMailer.git",
|
||||
"reference": "c0d9f7dd3c2aa247ca44791e9209233829d82285"
|
||||
"reference": "a94fdebaea6bd17f51be0c2373ab80d3d681269b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/c0d9f7dd3c2aa247ca44791e9209233829d82285",
|
||||
"reference": "c0d9f7dd3c2aa247ca44791e9209233829d82285",
|
||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/a94fdebaea6bd17f51be0c2373ab80d3d681269b",
|
||||
"reference": "a94fdebaea6bd17f51be0c2373ab80d3d681269b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -370,8 +370,8 @@
|
|||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
|
||||
"doctrine/annotations": "^1.2",
|
||||
"php-parallel-lint/php-console-highlighter": "^0.5.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3.1",
|
||||
"php-parallel-lint/php-console-highlighter": "^1.0.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3.2",
|
||||
"phpcompatibility/php-compatibility": "^9.3.5",
|
||||
"roave/security-advisories": "dev-latest",
|
||||
"squizlabs/php_codesniffer": "^3.6.2",
|
||||
|
@ -415,7 +415,7 @@
|
|||
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
|
||||
"support": {
|
||||
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
|
||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.5.4"
|
||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -423,7 +423,7 @@
|
|||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-02-17T08:19:04+00:00"
|
||||
"time": "2022-08-22T09:22:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
|
@ -477,16 +477,16 @@
|
|||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-idn",
|
||||
"version": "v1.24.0",
|
||||
"version": "v1.26.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-idn.git",
|
||||
"reference": "749045c69efb97c70d25d7463abba812e91f3a44"
|
||||
"reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/749045c69efb97c70d25d7463abba812e91f3a44",
|
||||
"reference": "749045c69efb97c70d25d7463abba812e91f3a44",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
|
||||
"reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -500,7 +500,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
"dev-main": "1.26-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
@ -544,7 +544,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.24.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -560,20 +560,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-09-14T14:02:44+00:00"
|
||||
"time": "2022-05-24T11:49:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-intl-normalizer",
|
||||
"version": "v1.25.0",
|
||||
"version": "v1.26.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
|
||||
"reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8"
|
||||
"reference": "219aa369ceff116e673852dce47c3a41794c14bd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8",
|
||||
"reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd",
|
||||
"reference": "219aa369ceff116e673852dce47c3a41794c14bd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -585,7 +585,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
"dev-main": "1.26-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
@ -628,7 +628,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0"
|
||||
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -644,20 +644,20 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-02-19T12:13:01+00:00"
|
||||
"time": "2022-05-24T11:49:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.24.0",
|
||||
"version": "v1.26.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825"
|
||||
"reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
|
||||
"reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
|
||||
"reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -672,7 +672,7 @@
|
|||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.23-dev"
|
||||
"dev-main": "1.26-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
@ -711,7 +711,7 @@
|
|||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0"
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
@ -727,7 +727,7 @@
|
|||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-11-30T18:21:41+00:00"
|
||||
"time": "2022-05-24T11:49:31+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
|
@ -738,9 +738,21 @@
|
|||
"prefer-lowest": false,
|
||||
"platform": {
|
||||
"php": ">=7.4.0 <8.2.0",
|
||||
"ext-simplexml": "*",
|
||||
"ext-ctype": "*",
|
||||
"ext-mbstring": "*"
|
||||
"ext-curl": "*",
|
||||
"ext-dom": "*",
|
||||
"ext-filter": "*",
|
||||
"ext-hash": "*",
|
||||
"ext-iconv": "*",
|
||||
"ext-json": "*",
|
||||
"ext-libxml": "*",
|
||||
"ext-mbstring": "*",
|
||||
"ext-openssl": "*"
|
||||
},
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.1.0"
|
||||
"platform-overrides": {
|
||||
"php": "7.4.0"
|
||||
},
|
||||
"plugin-api-version": "2.3.0"
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ return [
|
|||
'file' => 'Kirby\Cms\File',
|
||||
'files' => 'Kirby\Cms\Files',
|
||||
'find' => 'Kirby\Cms\Find',
|
||||
'helpers' => 'Kirby\Cms\Helpers',
|
||||
'html' => 'Kirby\Cms\Html',
|
||||
'kirby' => 'Kirby\Cms\App',
|
||||
'page' => 'Kirby\Cms\Page',
|
||||
|
|
|
@ -29,13 +29,6 @@ return [
|
|||
},
|
||||
'niceSize' => fn (File $file) => $file->niceSize(),
|
||||
'options' => fn (File $file) => $file->panel()->options(),
|
||||
'panelIcon' => function (File $file) {
|
||||
// TODO: remove in 3.7.0
|
||||
// @codeCoverageIgnoreStart
|
||||
deprecated('The API field file.panelIcon has been deprecated and will be removed in 3.7.0. Use file.panelImage instead');
|
||||
return $file->panel()->image();
|
||||
// @codeCoverageIgnoreEnd
|
||||
},
|
||||
'panelImage' => fn (File $file) => $file->panel()->image(),
|
||||
'panelUrl' => fn (File $file) => $file->panel()->url(true),
|
||||
'prev' => fn (File $file) => $file->prev(),
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\Helpers;
|
||||
use Kirby\Cms\Page;
|
||||
use Kirby\Form\Form;
|
||||
|
||||
|
@ -22,11 +23,12 @@ return [
|
|||
'isSortable' => fn (Page $page) => $page->isSortable(),
|
||||
/**
|
||||
* @deprecated 3.6.0
|
||||
* @todo Throw deprecated warning in 3.7.0
|
||||
* @todo Remove in 3.8.0
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
'next' => function (Page $page) {
|
||||
Helpers::deprecated('The API field page.next has been deprecated and will be removed in 3.8.0.');
|
||||
|
||||
return $page
|
||||
->nextAll()
|
||||
->filter('intendedTemplate', $page->intendedTemplate())
|
||||
|
@ -36,24 +38,17 @@ return [
|
|||
},
|
||||
'num' => fn (Page $page) => $page->num(),
|
||||
'options' => fn (Page $page) => $page->panel()->options(['preview']),
|
||||
/**
|
||||
* @todo Remove in 3.7.0
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
'panelIcon' => function (Page $page) {
|
||||
deprecated('The API field page.panelIcon has been deprecated and will be removed in 3.7.0. Use page.panelImage instead');
|
||||
return $page->panel()->image();
|
||||
},
|
||||
'panelImage' => fn (Page $page) => $page->panel()->image(),
|
||||
'parent' => fn (Page $page) => $page->parent(),
|
||||
'parents' => fn (Page $page) => $page->parents()->flip(),
|
||||
/**
|
||||
* @deprecated 3.6.0
|
||||
* @todo Throw deprecated warning in 3.7.0
|
||||
* @todo Remove in 3.8.0
|
||||
* @codeCoverageIgnore
|
||||
*/
|
||||
'prev' => function (Page $page) {
|
||||
Helpers::deprecated('The API field page.prev has been deprecated and will be removed in 3.8.0.');
|
||||
|
||||
return $page
|
||||
->prevAll()
|
||||
->filter('intendedTemplate', $page->intendedTemplate())
|
||||
|
|
|
@ -5,29 +5,6 @@
|
|||
* Content Lock Routes
|
||||
*/
|
||||
return [
|
||||
[
|
||||
'pattern' => '(:all)/lock',
|
||||
'method' => 'GET',
|
||||
/**
|
||||
* @deprecated 3.6.0
|
||||
* @todo Remove in 3.7.0
|
||||
*/
|
||||
'action' => function (string $path) {
|
||||
deprecated('The `GET (:all)/lock` API endpoint has been deprecated and will be removed in 3.7.0');
|
||||
|
||||
if ($lock = $this->parent($path)->lock()) {
|
||||
return [
|
||||
'supported' => true,
|
||||
'locked' => $lock->get()
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'supported' => false,
|
||||
'locked' => null
|
||||
];
|
||||
}
|
||||
],
|
||||
[
|
||||
'pattern' => '(:all)/lock',
|
||||
'method' => 'PATCH',
|
||||
|
@ -46,30 +23,6 @@ return [
|
|||
}
|
||||
}
|
||||
],
|
||||
[
|
||||
'pattern' => '(:all)/unlock',
|
||||
'method' => 'GET',
|
||||
/**
|
||||
* @deprecated 3.6.0
|
||||
* @todo Remove in 3.7.0
|
||||
*/
|
||||
'action' => function (string $path) {
|
||||
deprecated('The `GET (:all)/unlock` API endpoint has been deprecated and will be removed in 3.7.0');
|
||||
|
||||
|
||||
if ($lock = $this->parent($path)->lock()) {
|
||||
return [
|
||||
'supported' => true,
|
||||
'unlocked' => $lock->isUnlocked()
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'supported' => false,
|
||||
'unlocked' => null
|
||||
];
|
||||
}
|
||||
],
|
||||
[
|
||||
'pattern' => '(:all)/unlock',
|
||||
'method' => 'PATCH',
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
|
||||
/**
|
||||
* Page Routes
|
||||
*/
|
||||
|
@ -34,21 +35,9 @@ return [
|
|||
}
|
||||
],
|
||||
[
|
||||
'pattern' => [
|
||||
'pages/(:any)/blueprints',
|
||||
/**
|
||||
* @deprecated
|
||||
* @todo remove in 3.7.0
|
||||
*/
|
||||
'pages/(:any)/children/blueprints',
|
||||
],
|
||||
'pattern' => 'pages/(:any)/blueprints',
|
||||
'method' => 'GET',
|
||||
'action' => function (string $id) {
|
||||
// @codeCoverageIgnoreStart
|
||||
if ($this->route->pattern() === 'pages/([a-zA-Z0-9\.\-_%= \+\@\(\)]+)/children/blueprints') {
|
||||
deprecated('`GET pages/(:any)/children/blueprints` API endpoint has been deprecated and will be removed in 3.7.0. Use `GET pages/(:any)/blueprints` instead');
|
||||
}
|
||||
// @codeCoverageIgnoreEnd
|
||||
return $this->page($id)->blueprints($this->requestQuery('section'));
|
||||
}
|
||||
],
|
||||
|
|
|
@ -8,13 +8,15 @@ return [
|
|||
'pattern' => 'roles',
|
||||
'method' => 'GET',
|
||||
'action' => function () {
|
||||
switch (get('canBe')) {
|
||||
$kirby = $this->kirby();
|
||||
|
||||
switch ($kirby->request()->get('canBe')) {
|
||||
case 'changed':
|
||||
return $this->kirby()->roles()->canBeChanged();
|
||||
return $kirby->roles()->canBeChanged();
|
||||
case 'created':
|
||||
return $this->kirby()->roles()->canBeCreated();
|
||||
return $kirby->roles()->canBeCreated();
|
||||
default:
|
||||
return $this->kirby()->roles();
|
||||
return $kirby->roles();
|
||||
}
|
||||
}
|
||||
],
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
|
||||
/**
|
||||
* Site Routes
|
||||
*/
|
||||
|
@ -47,21 +48,9 @@ return [
|
|||
}
|
||||
],
|
||||
[
|
||||
'pattern' => [
|
||||
'site/blueprints',
|
||||
/**
|
||||
* @deprecated
|
||||
* @todo remove in 3.7.0
|
||||
*/
|
||||
'site/children/blueprints',
|
||||
],
|
||||
'pattern' => 'site/blueprints',
|
||||
'method' => 'GET',
|
||||
'action' => function () {
|
||||
// @codeCoverageIgnoreStart
|
||||
if ($this->route->pattern() === 'site/children/blueprints') {
|
||||
deprecated('`GET site/children/blueprints` API endpoint has been deprecated and will be removed in 3.7.0. Use `GET site/blueprints` instead.');
|
||||
}
|
||||
// @codeCoverageIgnoreEnd
|
||||
return $this->site()->blueprints($this->requestQuery('section'));
|
||||
}
|
||||
],
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return function () {
|
||||
return [
|
||||
'icon' => 'account',
|
||||
'label' => t('view.account'),
|
||||
'label' => I18n::translate('view.account'),
|
||||
'search' => 'users',
|
||||
'dialogs' => require __DIR__ . '/account/dialogs.php',
|
||||
'dropdowns' => require __DIR__ . '/account/dropdowns.php',
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Cms\Find;
|
||||
use Kirby\Panel\Panel;
|
||||
|
||||
return [
|
||||
'account' => [
|
||||
'pattern' => 'account',
|
||||
'action' => fn () => [
|
||||
'component' => 'k-account-view',
|
||||
'props' => kirby()->user()->panel()->props(),
|
||||
'props' => App::instance()->user()->panel()->props(),
|
||||
],
|
||||
],
|
||||
'account.file' => [
|
||||
|
@ -17,16 +17,6 @@ return [
|
|||
return Find::file('account', $filename)->panel()->view();
|
||||
}
|
||||
],
|
||||
'account.logout' => [
|
||||
'pattern' => 'logout',
|
||||
'auth' => false,
|
||||
'action' => function () {
|
||||
if ($user = kirby()->user()) {
|
||||
$user->logout();
|
||||
}
|
||||
Panel::go('login');
|
||||
},
|
||||
],
|
||||
'account.password' => [
|
||||
'pattern' => 'reset-password',
|
||||
'action' => fn () => ['component' => 'k-reset-password-view']
|
||||
|
|
|
@ -4,6 +4,7 @@ use Kirby\Cms\Find;
|
|||
use Kirby\Panel\Field;
|
||||
use Kirby\Panel\Panel;
|
||||
use Kirby\Toolkit\Escape;
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
/**
|
||||
* Shared file dialogs
|
||||
|
@ -21,7 +22,7 @@ return [
|
|||
'props' => [
|
||||
'fields' => [
|
||||
'name' => [
|
||||
'label' => t('name'),
|
||||
'label' => I18n::translate('name'),
|
||||
'type' => 'slug',
|
||||
'required' => true,
|
||||
'icon' => 'title',
|
||||
|
@ -30,7 +31,7 @@ return [
|
|||
'preselect' => true
|
||||
]
|
||||
],
|
||||
'submitButton' => t('rename'),
|
||||
'submitButton' => I18n::translate('rename'),
|
||||
'value' => [
|
||||
'name' => $file->name(),
|
||||
]
|
||||
|
@ -39,7 +40,7 @@ return [
|
|||
},
|
||||
'submit' => function (string $path, string $filename) {
|
||||
$file = Find::file($path, $filename);
|
||||
$renamed = $file->changeName(get('name'));
|
||||
$renamed = $file->changeName($file->kirby()->request()->get('name'));
|
||||
$oldUrl = $file->panel()->url(true);
|
||||
$newUrl = $renamed->panel()->url(true);
|
||||
$response = [
|
||||
|
@ -70,7 +71,7 @@ return [
|
|||
'fields' => [
|
||||
'position' => Field::filePosition($file)
|
||||
],
|
||||
'submitButton' => t('change'),
|
||||
'submitButton' => I18n::translate('change'),
|
||||
'value' => [
|
||||
'position' => $file->sort()->isEmpty() ? $file->siblings(false)->count() + 1 : $file->sort()->toInt(),
|
||||
]
|
||||
|
@ -81,7 +82,7 @@ return [
|
|||
$file = Find::file($path, $filename);
|
||||
$files = $file->siblings()->sorted();
|
||||
$ids = $files->keys();
|
||||
$newIndex = (int)(get('position')) - 1;
|
||||
$newIndex = (int)($file->kirby()->request()->get('position')) - 1;
|
||||
$oldIndex = $files->indexOf($file);
|
||||
|
||||
array_splice($ids, $oldIndex, 1);
|
||||
|
@ -101,7 +102,7 @@ return [
|
|||
return [
|
||||
'component' => 'k-remove-dialog',
|
||||
'props' => [
|
||||
'text' => tt('file.delete.confirm', [
|
||||
'text' => I18n::template('file.delete.confirm', [
|
||||
'filename' => Escape::html($file->filename())
|
||||
]),
|
||||
]
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Panel\Panel;
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return function ($kirby) {
|
||||
return [
|
||||
'icon' => 'settings',
|
||||
'label' => t('view.installation'),
|
||||
'label' => I18n::translate('view.installation'),
|
||||
'views' => [
|
||||
'installation' => [
|
||||
'pattern' => 'installation',
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return function ($kirby) {
|
||||
return [
|
||||
'icon' => 'globe',
|
||||
'label' => t('view.languages'),
|
||||
'label' => I18n::translate('view.languages'),
|
||||
'menu' => true,
|
||||
'dialogs' => require __DIR__ . '/languages/dialogs.php',
|
||||
'views' => require __DIR__ . '/languages/views.php'
|
||||
|
|
|
@ -1,19 +1,21 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Cms\Find;
|
||||
use Kirby\Panel\Field;
|
||||
use Kirby\Toolkit\A;
|
||||
use Kirby\Toolkit\Escape;
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
$languageDialogFields = [
|
||||
'name' => [
|
||||
'label' => t('language.name'),
|
||||
'label' => I18n::translate('language.name'),
|
||||
'type' => 'text',
|
||||
'required' => true,
|
||||
'icon' => 'title'
|
||||
],
|
||||
'code' => [
|
||||
'label' => t('language.code'),
|
||||
'label' => I18n::translate('language.code'),
|
||||
'type' => 'text',
|
||||
'required' => true,
|
||||
'counter' => false,
|
||||
|
@ -21,18 +23,18 @@ $languageDialogFields = [
|
|||
'width' => '1/2'
|
||||
],
|
||||
'direction' => [
|
||||
'label' => t('language.direction'),
|
||||
'label' => I18n::translate('language.direction'),
|
||||
'type' => 'select',
|
||||
'required' => true,
|
||||
'empty' => false,
|
||||
'options' => [
|
||||
['value' => 'ltr', 'text' => t('language.direction.ltr')],
|
||||
['value' => 'rtl', 'text' => t('language.direction.rtl')]
|
||||
['value' => 'ltr', 'text' => I18n::translate('language.direction.ltr')],
|
||||
['value' => 'rtl', 'text' => I18n::translate('language.direction.rtl')]
|
||||
],
|
||||
'width' => '1/2'
|
||||
],
|
||||
'locale' => [
|
||||
'label' => t('language.locale'),
|
||||
'label' => I18n::translate('language.locale'),
|
||||
'type' => 'text',
|
||||
],
|
||||
];
|
||||
|
@ -47,7 +49,7 @@ return [
|
|||
'component' => 'k-language-dialog',
|
||||
'props' => [
|
||||
'fields' => $languageDialogFields,
|
||||
'submitButton' => t('language.create'),
|
||||
'submitButton' => I18n::translate('language.create'),
|
||||
'value' => [
|
||||
'code' => '',
|
||||
'direction' => 'ltr',
|
||||
|
@ -58,12 +60,16 @@ return [
|
|||
];
|
||||
},
|
||||
'submit' => function () {
|
||||
kirby()->languages()->create([
|
||||
'code' => get('code'),
|
||||
'direction' => get('direction'),
|
||||
'locale' => get('locale'),
|
||||
'name' => get('name'),
|
||||
$kirby = App::instance();
|
||||
|
||||
$data = $kirby->request()->get([
|
||||
'code',
|
||||
'direction',
|
||||
'locale',
|
||||
'name'
|
||||
]);
|
||||
$kirby->languages()->create($data);
|
||||
|
||||
return [
|
||||
'event' => 'language.create'
|
||||
];
|
||||
|
@ -78,7 +84,7 @@ return [
|
|||
return [
|
||||
'component' => 'k-remove-dialog',
|
||||
'props' => [
|
||||
'text' => tt('language.delete.confirm', [
|
||||
'text' => I18n::template('language.delete.confirm', [
|
||||
'name' => Escape::html($language->name())
|
||||
])
|
||||
]
|
||||
|
@ -116,7 +122,7 @@ return [
|
|||
$fields['locale'] = [
|
||||
'label' => $fields['locale']['label'],
|
||||
'type' => 'info',
|
||||
'text' => t('language.locale.warning')
|
||||
'text' => I18n::translate('language.locale.warning')
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -124,7 +130,7 @@ return [
|
|||
'component' => 'k-language-dialog',
|
||||
'props' => [
|
||||
'fields' => $fields,
|
||||
'submitButton' => t('save'),
|
||||
'submitButton' => I18n::translate('save'),
|
||||
'value' => [
|
||||
'code' => $language->code(),
|
||||
'direction' => $language->direction(),
|
||||
|
@ -136,11 +142,11 @@ return [
|
|||
];
|
||||
},
|
||||
'submit' => function (string $id) {
|
||||
$language = Find::language($id)->update([
|
||||
'direction' => get('direction'),
|
||||
'locale' => get('locale'),
|
||||
'name' => get('name'),
|
||||
]);
|
||||
$kirby = App::instance();
|
||||
|
||||
$data = $kirby->request()->get(['direction', 'locale', 'name']);
|
||||
$language = Find::language($id)->update($data);
|
||||
|
||||
return [
|
||||
'event' => 'language.update'
|
||||
];
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Toolkit\Escape;
|
||||
|
||||
return [
|
||||
'languages' => [
|
||||
'pattern' => 'languages',
|
||||
'action' => function () {
|
||||
$kirby = kirby();
|
||||
$kirby = App::instance();
|
||||
|
||||
return [
|
||||
'component' => 'k-languages-view',
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Panel\Panel;
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return function ($kirby) {
|
||||
return [
|
||||
'icon' => 'user',
|
||||
'label' => t('login'),
|
||||
'label' => I18n::translate('login'),
|
||||
'views' => [
|
||||
'login' => [
|
||||
'pattern' => 'login',
|
||||
|
|
21
kirby/config/areas/logout.php
Normal file
21
kirby/config/areas/logout.php
Normal file
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Panel\Panel;
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return function ($kirby) {
|
||||
return [
|
||||
'icon' => 'user',
|
||||
'label' => I18n::translate('logout'),
|
||||
'views' => [
|
||||
'logout' => [
|
||||
'pattern' => 'logout',
|
||||
'auth' => false,
|
||||
'action' => function () use ($kirby) {
|
||||
$kirby->auth()->logout();
|
||||
Panel::go('login');
|
||||
},
|
||||
]
|
||||
]
|
||||
];
|
||||
};
|
|
@ -1,13 +1,14 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return function ($kirby) {
|
||||
return [
|
||||
'breadcrumbLabel' => function () use ($kirby) {
|
||||
return $kirby->site()->title()->or(t('view.site'))->toString();
|
||||
return $kirby->site()->title()->or(I18n::translate('view.site'))->toString();
|
||||
},
|
||||
'icon' => 'home',
|
||||
'label' => $kirby->site()->blueprint()->title() ?? t('view.site'),
|
||||
'label' => $kirby->site()->blueprint()->title() ?? I18n::translate('view.site'),
|
||||
'menu' => true,
|
||||
'dialogs' => require __DIR__ . '/site/dialogs.php',
|
||||
'dropdowns' => require __DIR__ . '/site/dropdowns.php',
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Cms\Find;
|
||||
use Kirby\Exception\Exception;
|
||||
use Kirby\Exception\InvalidArgumentException;
|
||||
use Kirby\Exception\PermissionException;
|
||||
use Kirby\Panel\Field;
|
||||
use Kirby\Panel\Panel;
|
||||
use Kirby\Toolkit\I18n;
|
||||
use Kirby\Toolkit\Str;
|
||||
|
||||
$files = require __DIR__ . '/../files/dialogs.php';
|
||||
|
@ -17,7 +19,6 @@ return [
|
|||
'pattern' => 'pages/(:any)/changeSort',
|
||||
'load' => function (string $id) {
|
||||
$page = Find::page($id);
|
||||
$position = null;
|
||||
|
||||
if ($page->blueprint()->num() !== 'default') {
|
||||
throw new PermissionException([
|
||||
|
@ -34,7 +35,7 @@ return [
|
|||
'fields' => [
|
||||
'position' => Field::pagePosition($page),
|
||||
],
|
||||
'submitButton' => t('change'),
|
||||
'submitButton' => I18n::translate('change'),
|
||||
'value' => [
|
||||
'position' => $page->panel()->position()
|
||||
]
|
||||
|
@ -42,7 +43,13 @@ return [
|
|||
];
|
||||
},
|
||||
'submit' => function (string $id) {
|
||||
Find::page($id)->changeStatus('listed', get('position'));
|
||||
$request = App::instance()->request();
|
||||
|
||||
Find::page($id)->changeStatus(
|
||||
'listed',
|
||||
$request->get('position')
|
||||
);
|
||||
|
||||
return [
|
||||
'event' => 'page.sort',
|
||||
];
|
||||
|
@ -76,7 +83,7 @@ return [
|
|||
return [
|
||||
'component' => 'k-error-dialog',
|
||||
'props' => [
|
||||
'message' => t('error.page.changeStatus.incomplete'),
|
||||
'message' => I18n::translate('error.page.changeStatus.incomplete'),
|
||||
'details' => $errors,
|
||||
]
|
||||
];
|
||||
|
@ -85,7 +92,7 @@ return [
|
|||
|
||||
$fields = [
|
||||
'status' => [
|
||||
'label' => t('page.changeStatus.select'),
|
||||
'label' => I18n::translate('page.changeStatus.select'),
|
||||
'type' => 'radio',
|
||||
'required' => true,
|
||||
'options' => $states
|
||||
|
@ -106,7 +113,7 @@ return [
|
|||
'component' => 'k-form-dialog',
|
||||
'props' => [
|
||||
'fields' => $fields,
|
||||
'submitButton' => t('change'),
|
||||
'submitButton' => I18n::translate('change'),
|
||||
'value' => [
|
||||
'status' => $status,
|
||||
'position' => $position
|
||||
|
@ -115,7 +122,13 @@ return [
|
|||
];
|
||||
},
|
||||
'submit' => function (string $id) {
|
||||
Find::page($id)->changeStatus(get('status'), get('position'));
|
||||
$request = App::instance()->request();
|
||||
|
||||
Find::page($id)->changeStatus(
|
||||
$request->get('status'),
|
||||
$request->get('position')
|
||||
);
|
||||
|
||||
return [
|
||||
'event' => 'page.changeStatus',
|
||||
];
|
||||
|
@ -146,7 +159,7 @@ return [
|
|||
'required' => true
|
||||
])
|
||||
],
|
||||
'submitButton' => t('change'),
|
||||
'submitButton' => I18n::translate('change'),
|
||||
'value' => [
|
||||
'template' => $page->intendedTemplate()->name()
|
||||
]
|
||||
|
@ -154,7 +167,10 @@ return [
|
|||
];
|
||||
},
|
||||
'submit' => function (string $id) {
|
||||
Find::page($id)->changeTemplate(get('template'));
|
||||
$request = App::instance()->request();
|
||||
|
||||
Find::page($id)->changeTemplate($request->get('template'));
|
||||
|
||||
return [
|
||||
'event' => 'page.changeTemplate',
|
||||
];
|
||||
|
@ -165,9 +181,11 @@ return [
|
|||
'page.changeTitle' => [
|
||||
'pattern' => 'pages/(:any)/changeTitle',
|
||||
'load' => function (string $id) {
|
||||
$request = App::instance()->request();
|
||||
|
||||
$page = Find::page($id);
|
||||
$permissions = $page->permissions();
|
||||
$select = get('select', 'title');
|
||||
$select = $request->get('select', 'title');
|
||||
|
||||
return [
|
||||
'component' => 'k-form-dialog',
|
||||
|
@ -184,13 +202,13 @@ return [
|
|||
'path' => $page->parent() ? '/' . $page->parent()->id() . '/' : '/',
|
||||
'disabled' => $permissions->can('changeSlug') === false,
|
||||
'wizard' => [
|
||||
'text' => t('page.changeSlug.fromTitle'),
|
||||
'text' => I18n::translate('page.changeSlug.fromTitle'),
|
||||
'field' => 'title'
|
||||
]
|
||||
])
|
||||
],
|
||||
'autofocus' => false,
|
||||
'submitButton' => t('change'),
|
||||
'submitButton' => I18n::translate('change'),
|
||||
'value' => [
|
||||
'title' => $page->title()->value(),
|
||||
'slug' => $page->slug(),
|
||||
|
@ -199,9 +217,11 @@ return [
|
|||
];
|
||||
},
|
||||
'submit' => function (string $id) {
|
||||
$request = App::instance()->request();
|
||||
|
||||
$page = Find::page($id);
|
||||
$title = trim(get('title', ''));
|
||||
$slug = trim(get('slug', ''));
|
||||
$title = trim($request->get('title', ''));
|
||||
$slug = trim($request->get('slug', ''));
|
||||
|
||||
// basic input validation before we move on
|
||||
if (Str::length($title) === 0) {
|
||||
|
@ -257,17 +277,20 @@ return [
|
|||
'page.create' => [
|
||||
'pattern' => 'pages/create',
|
||||
'load' => function () {
|
||||
$kirby = App::instance();
|
||||
$request = $kirby->request();
|
||||
|
||||
// the parent model for the new page
|
||||
$parent = get('parent', 'site');
|
||||
$parent = $request->get('parent', 'site');
|
||||
|
||||
// the view on which the add button is located
|
||||
// this is important to find the right section
|
||||
// and provide the correct templates for the new page
|
||||
$view = get('view', $parent);
|
||||
$view = $request->get('view', $parent);
|
||||
|
||||
// templates will be fetched depending on the
|
||||
// section settings in the blueprint
|
||||
$section = get('section');
|
||||
$section = $request->get('section');
|
||||
|
||||
// this is the parent model
|
||||
$model = Find::parent($parent);
|
||||
|
@ -301,7 +324,7 @@ return [
|
|||
|
||||
// only show template field if > 1 templates available
|
||||
// or when in debug mode
|
||||
if (count($blueprints) > 1 || option('debug') === true) {
|
||||
if (count($blueprints) > 1 || $kirby->option('debug') === true) {
|
||||
$fields['template'] = Field::template($blueprints, [
|
||||
'required' => true
|
||||
]);
|
||||
|
@ -311,7 +334,7 @@ return [
|
|||
'component' => 'k-form-dialog',
|
||||
'props' => [
|
||||
'fields' => $fields,
|
||||
'submitButton' => t('page.draft.create'),
|
||||
'submitButton' => I18n::translate('page.draft.create'),
|
||||
'value' => [
|
||||
'parent' => $parent,
|
||||
'slug' => '',
|
||||
|
@ -322,7 +345,8 @@ return [
|
|||
];
|
||||
},
|
||||
'submit' => function () {
|
||||
$title = trim(get('title', ''));
|
||||
$request = App::instance()->request();
|
||||
$title = trim($request->get('title', ''));
|
||||
|
||||
if (Str::length($title) === 0) {
|
||||
throw new InvalidArgumentException([
|
||||
|
@ -330,10 +354,10 @@ return [
|
|||
]);
|
||||
}
|
||||
|
||||
$page = Find::parent(get('parent', 'site'))->createChild([
|
||||
$page = Find::parent($request->get('parent', 'site'))->createChild([
|
||||
'content' => ['title' => $title],
|
||||
'slug' => get('slug'),
|
||||
'template' => get('template'),
|
||||
'slug' => $request->get('slug'),
|
||||
'template' => $request->get('template'),
|
||||
]);
|
||||
|
||||
return [
|
||||
|
@ -348,7 +372,7 @@ return [
|
|||
'pattern' => 'pages/(:any)/delete',
|
||||
'load' => function (string $id) {
|
||||
$page = Find::page($id);
|
||||
$text = tt('page.delete.confirm', [
|
||||
$text = I18n::template('page.delete.confirm', [
|
||||
'title' => Escape::html($page->title()->value())
|
||||
]);
|
||||
|
||||
|
@ -360,16 +384,16 @@ return [
|
|||
'info' => [
|
||||
'type' => 'info',
|
||||
'theme' => 'negative',
|
||||
'text' => t('page.delete.confirm.subpages')
|
||||
'text' => I18n::translate('page.delete.confirm.subpages')
|
||||
],
|
||||
'check' => [
|
||||
'label' => t('page.delete.confirm.title'),
|
||||
'label' => I18n::translate('page.delete.confirm.title'),
|
||||
'type' => 'text',
|
||||
'counter' => false
|
||||
]
|
||||
],
|
||||
'size' => 'medium',
|
||||
'submitButton' => t('delete'),
|
||||
'submitButton' => I18n::translate('delete'),
|
||||
'text' => $text,
|
||||
'theme' => 'negative',
|
||||
]
|
||||
|
@ -384,12 +408,17 @@ return [
|
|||
];
|
||||
},
|
||||
'submit' => function (string $id) {
|
||||
$request = App::instance()->request();
|
||||
|
||||
$page = Find::page($id);
|
||||
$redirect = false;
|
||||
$referrer = Panel::referrer();
|
||||
$url = $page->panel()->url(true);
|
||||
|
||||
if ($page->childrenAndDrafts()->count() > 0 && get('check') !== $page->title()->value()) {
|
||||
if (
|
||||
$page->childrenAndDrafts()->count() > 0 &&
|
||||
$request->get('check') !== $page->title()->value()
|
||||
) {
|
||||
throw new InvalidArgumentException(['key' => 'page.delete.confirm']);
|
||||
}
|
||||
|
||||
|
@ -426,7 +455,7 @@ return [
|
|||
'required' => true,
|
||||
'path' => $page->parent() ? '/' . $page->parent()->id() . '/' : '/',
|
||||
'wizard' => [
|
||||
'text' => t('page.changeSlug.fromTitle'),
|
||||
'text' => I18n::translate('page.changeSlug.fromTitle'),
|
||||
'field' => 'title'
|
||||
]
|
||||
])
|
||||
|
@ -434,7 +463,7 @@ return [
|
|||
|
||||
if ($hasFiles === true) {
|
||||
$fields['files'] = [
|
||||
'label' => t('page.duplicate.files'),
|
||||
'label' => I18n::translate('page.duplicate.files'),
|
||||
'type' => 'toggle',
|
||||
'required' => true,
|
||||
'width' => $toggleWidth
|
||||
|
@ -443,7 +472,7 @@ return [
|
|||
|
||||
if ($hasChildren === true) {
|
||||
$fields['children'] = [
|
||||
'label' => t('page.duplicate.pages'),
|
||||
'label' => I18n::translate('page.duplicate.pages'),
|
||||
'type' => 'toggle',
|
||||
'required' => true,
|
||||
'width' => $toggleWidth
|
||||
|
@ -454,21 +483,23 @@ return [
|
|||
'component' => 'k-form-dialog',
|
||||
'props' => [
|
||||
'fields' => $fields,
|
||||
'submitButton' => t('duplicate'),
|
||||
'submitButton' => I18n::translate('duplicate'),
|
||||
'value' => [
|
||||
'children' => false,
|
||||
'files' => false,
|
||||
'slug' => $page->slug() . '-' . Str::slug(t('page.duplicate.appendix')),
|
||||
'title' => $page->title() . ' ' . t('page.duplicate.appendix')
|
||||
'slug' => $page->slug() . '-' . Str::slug(I18n::translate('page.duplicate.appendix')),
|
||||
'title' => $page->title() . ' ' . I18n::translate('page.duplicate.appendix')
|
||||
]
|
||||
]
|
||||
];
|
||||
},
|
||||
'submit' => function (string $id) {
|
||||
$newPage = Find::page($id)->duplicate(get('slug'), [
|
||||
'children' => (bool)get('children'),
|
||||
'files' => (bool)get('files'),
|
||||
'title' => (string)get('title'),
|
||||
$request = App::instance()->request();
|
||||
|
||||
$newPage = Find::page($id)->duplicate($request->get('slug'), [
|
||||
'children' => (bool)$request->get('children'),
|
||||
'files' => (bool)$request->get('files'),
|
||||
'title' => (string)$request->get('title'),
|
||||
]);
|
||||
|
||||
return [
|
||||
|
@ -512,15 +543,17 @@ return [
|
|||
'preselect' => true
|
||||
])
|
||||
],
|
||||
'submitButton' => t('rename'),
|
||||
'submitButton' => I18n::translate('rename'),
|
||||
'value' => [
|
||||
'title' => site()->title()->value()
|
||||
'title' => App::instance()->site()->title()->value()
|
||||
]
|
||||
]
|
||||
];
|
||||
},
|
||||
'submit' => function () {
|
||||
site()->changeTitle(get('title'));
|
||||
$kirby = App::instance();
|
||||
|
||||
$kirby->site()->changeTitle($kirby->request()->get('title'));
|
||||
return [
|
||||
'event' => 'site.changeTitle',
|
||||
];
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Toolkit\Escape;
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return [
|
||||
'pages' => [
|
||||
'label' => t('pages'),
|
||||
'label' => I18n::translate('pages'),
|
||||
'icon' => 'page',
|
||||
'query' => function (string $query = null) {
|
||||
$pages = site()
|
||||
$pages = App::instance()->site()
|
||||
->index(true)
|
||||
->search($query)
|
||||
->filter('isReadable', true)
|
||||
|
@ -28,10 +30,10 @@ return [
|
|||
}
|
||||
],
|
||||
'files' => [
|
||||
'label' => t('files'),
|
||||
'label' => I18n::translate('files'),
|
||||
'icon' => 'image',
|
||||
'query' => function (string $query = null) {
|
||||
$files = site()
|
||||
$files = App::instance()->site()
|
||||
->index(true)
|
||||
->filter('isReadable', true)
|
||||
->files()
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Cms\Find;
|
||||
|
||||
return [
|
||||
|
@ -15,7 +16,7 @@ return [
|
|||
],
|
||||
'site' => [
|
||||
'pattern' => 'site',
|
||||
'action' => fn () => site()->panel()->view()
|
||||
'action' => fn () => App::instance()->site()->panel()->view()
|
||||
],
|
||||
'site.file' => [
|
||||
'pattern' => 'site/files/(:any)',
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return function ($kirby) {
|
||||
return [
|
||||
'icon' => 'settings',
|
||||
'label' => t('view.system'),
|
||||
'label' => I18n::translate('view.system'),
|
||||
'menu' => true,
|
||||
'dialogs' => require __DIR__ . '/system/dialogs.php',
|
||||
'views' => require __DIR__ . '/system/views.php'
|
||||
|
|
|
@ -1,8 +1,46 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Panel\Field;
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return [
|
||||
// license key
|
||||
'license' => [
|
||||
'load' => function () {
|
||||
$license = App::instance()->system()->license();
|
||||
|
||||
// @codeCoverageIgnoreStart
|
||||
// the system is registered but the license
|
||||
// key is only visible for admins
|
||||
if ($license === true) {
|
||||
$license = 'Kirby 3';
|
||||
}
|
||||
// @codeCoverageIgnoreEnd
|
||||
|
||||
return [
|
||||
'component' => 'k-form-dialog',
|
||||
'props' => [
|
||||
'size' => 'medium',
|
||||
'fields' => [
|
||||
'license' => [
|
||||
'type' => 'info',
|
||||
'label' => I18n::translate('license'),
|
||||
'text' => $license ? $license : I18n::translate('license.unregistered.label'),
|
||||
'theme' => $license ? 'code' : 'negative',
|
||||
'help' => $license ?
|
||||
// @codeCoverageIgnoreStart
|
||||
'<a href="https://hub.getkirby.com">' . I18n::translate('license.manage') . ' →</a>' :
|
||||
// @codeCoverageIgnoreEnd
|
||||
'<a href="https://getkirby.com/buy">' . I18n::translate('license.buy') . ' →</a>'
|
||||
]
|
||||
],
|
||||
'submitButton' => false,
|
||||
'cancelButton' => false,
|
||||
]
|
||||
];
|
||||
}
|
||||
],
|
||||
// license registration
|
||||
'registration' => [
|
||||
'load' => function () {
|
||||
|
@ -11,18 +49,18 @@ return [
|
|||
'props' => [
|
||||
'fields' => [
|
||||
'license' => [
|
||||
'label' => t('license.register.label'),
|
||||
'label' => I18n::translate('license.register.label'),
|
||||
'type' => 'text',
|
||||
'required' => true,
|
||||
'counter' => false,
|
||||
'placeholder' => 'K3-',
|
||||
'help' => t('license.register.help')
|
||||
'help' => I18n::translate('license.register.help')
|
||||
],
|
||||
'email' => Field::email([
|
||||
'required' => true
|
||||
])
|
||||
],
|
||||
'submitButton' => t('license.register'),
|
||||
'submitButton' => I18n::translate('license.register'),
|
||||
'value' => [
|
||||
'license' => null,
|
||||
'email' => null
|
||||
|
@ -32,10 +70,15 @@ return [
|
|||
},
|
||||
'submit' => function () {
|
||||
// @codeCoverageIgnoreStart
|
||||
kirby()->system()->register(get('license'), get('email'));
|
||||
$kirby = App::instance();
|
||||
$kirby->system()->register(
|
||||
$kirby->request()->get('license'),
|
||||
$kirby->request()->get('email')
|
||||
);
|
||||
|
||||
return [
|
||||
'event' => 'system.register',
|
||||
'message' => t('license.register.success')
|
||||
'message' => I18n::translate('license.register.success')
|
||||
];
|
||||
// @codeCoverageIgnoreEnd
|
||||
}
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Http\Server;
|
||||
use Kirby\Cms\App;
|
||||
|
||||
return [
|
||||
'system' => [
|
||||
'pattern' => 'system',
|
||||
'action' => function () {
|
||||
$kirby = kirby();
|
||||
$kirby = App::instance();
|
||||
$system = $kirby->system();
|
||||
$license = $system->license();
|
||||
|
||||
|
@ -24,8 +24,10 @@ return [
|
|||
return [
|
||||
'author' => $plugin->authorsNames(),
|
||||
'license' => $plugin->license(),
|
||||
'link' => $plugin->link(),
|
||||
'name' => $plugin->name(),
|
||||
'name' => [
|
||||
'text' => $plugin->name(),
|
||||
'href' => $plugin->link(),
|
||||
],
|
||||
'version' => $plugin->version(),
|
||||
];
|
||||
});
|
||||
|
@ -38,8 +40,14 @@ return [
|
|||
'plugins' => $plugins,
|
||||
'php' => phpversion(),
|
||||
'server' => $system->serverSoftware(),
|
||||
'https' => Server::https(),
|
||||
'https' => $kirby->environment()->https(),
|
||||
'version' => $kirby->version(),
|
||||
'urls' => [
|
||||
'content' => $system->exposedFileUrl('content'),
|
||||
'git' => $system->exposedFileUrl('git'),
|
||||
'kirby' => $system->exposedFileUrl('kirby'),
|
||||
'site' => $system->exposedFileUrl('site')
|
||||
]
|
||||
]
|
||||
];
|
||||
}
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return function ($kirby) {
|
||||
return [
|
||||
'icon' => 'users',
|
||||
'label' => t('view.users'),
|
||||
'label' => I18n::translate('view.users'),
|
||||
'search' => 'users',
|
||||
'menu' => true,
|
||||
'dialogs' => require __DIR__ . '/users/dialogs.php',
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Cms\Find;
|
||||
use Kirby\Cms\UserRules;
|
||||
use Kirby\Exception\InvalidArgumentException;
|
||||
use Kirby\Panel\Field;
|
||||
use Kirby\Panel\Panel;
|
||||
use Kirby\Toolkit\Escape;
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
$files = require __DIR__ . '/../files/dialogs.php';
|
||||
|
||||
|
@ -15,7 +17,7 @@ return [
|
|||
'user.create' => [
|
||||
'pattern' => 'users/create',
|
||||
'load' => function () {
|
||||
$kirby = kirby();
|
||||
$kirby = App::instance();
|
||||
return [
|
||||
'component' => 'k-form-dialog',
|
||||
'props' => [
|
||||
|
@ -33,7 +35,7 @@ return [
|
|||
'required' => true
|
||||
])
|
||||
],
|
||||
'submitButton' => t('create'),
|
||||
'submitButton' => I18n::translate('create'),
|
||||
'value' => [
|
||||
'name' => '',
|
||||
'email' => '',
|
||||
|
@ -45,13 +47,16 @@ return [
|
|||
];
|
||||
},
|
||||
'submit' => function () {
|
||||
kirby()->users()->create([
|
||||
'name' => get('name'),
|
||||
'email' => get('email'),
|
||||
'password' => get('password'),
|
||||
'language' => get('translation'),
|
||||
'role' => get('role')
|
||||
$kirby = App::instance();
|
||||
|
||||
$kirby->users()->create([
|
||||
'name' => $kirby->request()->get('name'),
|
||||
'email' => $kirby->request()->get('email'),
|
||||
'password' => $kirby->request()->get('password'),
|
||||
'language' => $kirby->request()->get('translation'),
|
||||
'role' => $kirby->request()->get('role')
|
||||
]);
|
||||
|
||||
return [
|
||||
'event' => 'user.create'
|
||||
];
|
||||
|
@ -69,13 +74,13 @@ return [
|
|||
'props' => [
|
||||
'fields' => [
|
||||
'email' => [
|
||||
'label' => t('email'),
|
||||
'label' => I18n::translate('email'),
|
||||
'required' => true,
|
||||
'type' => 'email',
|
||||
'preselect' => true
|
||||
]
|
||||
],
|
||||
'submitButton' => t('change'),
|
||||
'submitButton' => I18n::translate('change'),
|
||||
'value' => [
|
||||
'email' => $user->email()
|
||||
]
|
||||
|
@ -83,7 +88,10 @@ return [
|
|||
];
|
||||
},
|
||||
'submit' => function (string $id) {
|
||||
Find::user($id)->changeEmail(get('email'));
|
||||
$request = App::instance()->request();
|
||||
|
||||
Find::user($id)->changeEmail($request->get('email'));
|
||||
|
||||
return [
|
||||
'event' => 'user.changeEmail'
|
||||
];
|
||||
|
@ -102,7 +110,7 @@ return [
|
|||
'fields' => [
|
||||
'translation' => Field::translation(['required' => true])
|
||||
],
|
||||
'submitButton' => t('change'),
|
||||
'submitButton' => I18n::translate('change'),
|
||||
'value' => [
|
||||
'translation' => $user->language()
|
||||
]
|
||||
|
@ -110,7 +118,9 @@ return [
|
|||
];
|
||||
},
|
||||
'submit' => function (string $id) {
|
||||
Find::user($id)->changeLanguage(get('translation'));
|
||||
$request = App::instance()->request();
|
||||
|
||||
Find::user($id)->changeLanguage($request->get('translation'));
|
||||
|
||||
return [
|
||||
'event' => 'user.changeLanguage',
|
||||
|
@ -135,7 +145,7 @@ return [
|
|||
'preselect' => true
|
||||
])
|
||||
],
|
||||
'submitButton' => t('rename'),
|
||||
'submitButton' => I18n::translate('rename'),
|
||||
'value' => [
|
||||
'name' => $user->name()->value()
|
||||
]
|
||||
|
@ -143,7 +153,9 @@ return [
|
|||
];
|
||||
},
|
||||
'submit' => function (string $id) {
|
||||
Find::user($id)->changeName(get('name'));
|
||||
$request = App::instance()->request();
|
||||
|
||||
Find::user($id)->changeName($request->get('name'));
|
||||
|
||||
return [
|
||||
'event' => 'user.changeName'
|
||||
|
@ -162,20 +174,22 @@ return [
|
|||
'props' => [
|
||||
'fields' => [
|
||||
'password' => Field::password([
|
||||
'label' => t('user.changePassword.new'),
|
||||
'label' => I18n::translate('user.changePassword.new'),
|
||||
]),
|
||||
'passwordConfirmation' => Field::password([
|
||||
'label' => t('user.changePassword.new.confirm'),
|
||||
'label' => I18n::translate('user.changePassword.new.confirm'),
|
||||
])
|
||||
],
|
||||
'submitButton' => t('change'),
|
||||
'submitButton' => I18n::translate('change'),
|
||||
]
|
||||
];
|
||||
},
|
||||
'submit' => function (string $id) {
|
||||
$request = App::instance()->request();
|
||||
|
||||
$user = Find::user($id);
|
||||
$password = get('password');
|
||||
$passwordConfirmation = get('passwordConfirmation');
|
||||
$password = $request->get('password');
|
||||
$passwordConfirmation = $request->get('passwordConfirmation');
|
||||
|
||||
// validate the password
|
||||
UserRules::validPassword($user, $password ?? '');
|
||||
|
@ -207,11 +221,11 @@ return [
|
|||
'props' => [
|
||||
'fields' => [
|
||||
'role' => Field::role([
|
||||
'label' => t('user.changeRole.select'),
|
||||
'label' => I18n::translate('user.changeRole.select'),
|
||||
'required' => true,
|
||||
])
|
||||
],
|
||||
'submitButton' => t('user.changeRole'),
|
||||
'submitButton' => I18n::translate('user.changeRole'),
|
||||
'value' => [
|
||||
'role' => $user->role()->name()
|
||||
]
|
||||
|
@ -219,7 +233,9 @@ return [
|
|||
];
|
||||
},
|
||||
'submit' => function (string $id) {
|
||||
$user = Find::user($id)->changeRole(get('role'));
|
||||
$request = App::instance()->request();
|
||||
|
||||
$user = Find::user($id)->changeRole($request->get('role'));
|
||||
|
||||
return [
|
||||
'event' => 'user.changeRole',
|
||||
|
@ -238,7 +254,7 @@ return [
|
|||
return [
|
||||
'component' => 'k-remove-dialog',
|
||||
'props' => [
|
||||
'text' => tt($i18nPrefix . '.delete.confirm', [
|
||||
'text' => I18n::template($i18nPrefix . '.delete.confirm', [
|
||||
'email' => Escape::html($user->email())
|
||||
])
|
||||
]
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Toolkit\Escape;
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return [
|
||||
'users' => [
|
||||
'label' => t('users'),
|
||||
'label' => I18n::translate('users'),
|
||||
'icon' => 'users',
|
||||
'query' => function (string $query = null) {
|
||||
$users = kirby()->users()->search($query)->limit(10);
|
||||
$users = App::instance()->users()->search($query)->limit(10);
|
||||
$results = [];
|
||||
|
||||
foreach ($users as $user) {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Cms\Find;
|
||||
use Kirby\Toolkit\Escape;
|
||||
|
||||
|
@ -7,8 +8,8 @@ return [
|
|||
'users' => [
|
||||
'pattern' => 'users',
|
||||
'action' => function () {
|
||||
$kirby = kirby();
|
||||
$role = get('role');
|
||||
$kirby = App::instance();
|
||||
$role = $kirby->request()->get('role');
|
||||
$roles = $kirby->roles()->toArray(fn ($role) => [
|
||||
'id' => $role->id(),
|
||||
'title' => $role->title(),
|
||||
|
@ -32,7 +33,7 @@ return [
|
|||
|
||||
$users = $users->paginate([
|
||||
'limit' => 20,
|
||||
'page' => get('page')
|
||||
'page' => $kirby->request()->get('page')
|
||||
]);
|
||||
|
||||
return [
|
||||
|
|
|
@ -5,6 +5,7 @@ fields:
|
|||
images:
|
||||
label: field.blocks.gallery.images.label
|
||||
type: files
|
||||
query: model.images
|
||||
multiple: true
|
||||
layout: cards
|
||||
size: tiny
|
||||
|
|
|
@ -17,9 +17,9 @@ if ($block->location() == 'web') {
|
|||
|
||||
?>
|
||||
<?php if ($src): ?>
|
||||
<figure<?= attr(['data-ratio' => $ratio, 'data-crop' => $crop], ' ') ?>>
|
||||
<figure<?= Html::attr(['data-ratio' => $ratio, 'data-crop' => $crop], null, ' ') ?>>
|
||||
<?php if ($link->isNotEmpty()): ?>
|
||||
<a href="<?= esc($link->toUrl()) ?>">
|
||||
<a href="<?= Str::esc($link->toUrl()) ?>">
|
||||
<img src="<?= $src ?>" alt="<?= $alt->esc() ?>">
|
||||
</a>
|
||||
<?php else: ?>
|
||||
|
|
|
@ -13,6 +13,7 @@ fields:
|
|||
image:
|
||||
label: field.blocks.image.name
|
||||
type: files
|
||||
query: model.images
|
||||
multiple: false
|
||||
image:
|
||||
back: black
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
<?php /** @var \Kirby\Cms\Block $block */ ?>
|
||||
<?php if ($video = video($block->url())): ?>
|
||||
<?php
|
||||
use Kirby\Cms\Html;
|
||||
|
||||
/** @var \Kirby\Cms\Block $block */
|
||||
?>
|
||||
<?php if ($video = Html::video($block->url())): ?>
|
||||
<figure>
|
||||
<?= $video ?>
|
||||
<?php if ($block->caption()->isNotEmpty()): ?>
|
||||
|
|
|
@ -4,12 +4,12 @@ use Kirby\Cms\App;
|
|||
use Kirby\Cms\Collection;
|
||||
use Kirby\Cms\File;
|
||||
use Kirby\Cms\FileVersion;
|
||||
use Kirby\Cms\Helpers;
|
||||
use Kirby\Cms\Template;
|
||||
use Kirby\Data\Data;
|
||||
use Kirby\Email\PHPMailer as Emailer;
|
||||
use Kirby\Filesystem\F;
|
||||
use Kirby\Filesystem\Filename;
|
||||
use Kirby\Http\Server;
|
||||
use Kirby\Http\Uri;
|
||||
use Kirby\Http\Url;
|
||||
use Kirby\Image\Darkroom;
|
||||
|
@ -39,9 +39,12 @@ return [
|
|||
* @param mixed $variable
|
||||
* @param bool $echo
|
||||
* @return string
|
||||
*
|
||||
* @deprecated 3.7.0 Disable `dump()` via `KIRBY_HELPER_DUMP` instead and create your own function
|
||||
* @todo move to `Helpers::dump()`, remove component in 3.8.0
|
||||
*/
|
||||
'dump' => function (App $kirby, $variable, bool $echo = true) {
|
||||
if (Server::cli() === true) {
|
||||
if ($kirby->environment()->cli() === true) {
|
||||
$output = print_r($variable, true) . PHP_EOL;
|
||||
} else {
|
||||
$output = '<pre>' . print_r($variable, true) . '</pre>';
|
||||
|
@ -98,7 +101,6 @@ return [
|
|||
|
||||
// check if the thumb already exists
|
||||
if (file_exists($thumbRoot) === false) {
|
||||
|
||||
// if not, create job file
|
||||
$job = $mediaRoot . '/.jobs/' . $thumbName . '.json';
|
||||
|
||||
|
@ -138,13 +140,19 @@ return [
|
|||
* @param array $options Markdown options
|
||||
* @param bool $inline Whether to wrap the text in `<p>` tags (deprecated: set via $options['inline'] instead)
|
||||
* @return string
|
||||
* @todo add deprecation warning for $inline parameter in 3.7.0
|
||||
* @todo remove $inline parameter in in 3.8.0
|
||||
*/
|
||||
'markdown' => function (App $kirby, string $text = null, array $options = [], bool $inline = false): string {
|
||||
static $markdown;
|
||||
static $config;
|
||||
|
||||
// warning for deprecated fourth parameter
|
||||
if (func_num_args() === 4 && isset($options['inline']) === false) {
|
||||
// @codeCoverageIgnoreStart
|
||||
Helpers::deprecated('markdown component: the $inline parameter is deprecated and will be removed in Kirby 3.8.0. Use $options[\'inline\'] instead.');
|
||||
// @codeCoverageIgnoreEnd
|
||||
}
|
||||
|
||||
// support for the deprecated fourth argument
|
||||
$options['inline'] ??= $inline;
|
||||
|
||||
|
@ -155,7 +163,7 @@ return [
|
|||
$config = $options;
|
||||
}
|
||||
|
||||
return $markdown->parse($text, $options['inline']);
|
||||
return $markdown->parse($text, $options['inline'] ?? false);
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -168,7 +176,7 @@ return [
|
|||
* @return \Kirby\Cms\Collection|bool
|
||||
*/
|
||||
'search' => function (App $kirby, Collection $collection, string $query = null, $params = []) {
|
||||
if (empty(trim($query)) === true) {
|
||||
if (empty(trim($query ?? '')) === true) {
|
||||
return $collection->limit(0);
|
||||
}
|
||||
|
||||
|
@ -332,8 +340,8 @@ return [
|
|||
*/
|
||||
'thumb' => function (App $kirby, string $src, string $dst, array $options): string {
|
||||
$darkroom = Darkroom::factory(
|
||||
option('thumbs.driver', 'gd'),
|
||||
option('thumbs', [])
|
||||
$kirby->option('thumbs.driver', 'gd'),
|
||||
$kirby->option('thumbs', [])
|
||||
);
|
||||
$options = $darkroom->preprocess($src, $options);
|
||||
$root = (new Filename($src, $dst, $options))->toString();
|
||||
|
@ -371,7 +379,13 @@ return [
|
|||
if ($kirby->multilang() === true) {
|
||||
$parts = Str::split($path, '#');
|
||||
|
||||
if ($page = page($parts[0] ?? null)) {
|
||||
if ($parts[0] ?? null) {
|
||||
$page = $kirby->site()->find($parts[0]);
|
||||
} else {
|
||||
$page = $kirby->site()->page();
|
||||
}
|
||||
|
||||
if ($page) {
|
||||
$path = $page->url($language);
|
||||
|
||||
if (isset($parts[1]) === true) {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Data\Data;
|
||||
use Kirby\Toolkit\A;
|
||||
|
||||
|
@ -62,7 +63,7 @@ return [
|
|||
},
|
||||
'toPages' => function ($value = null) {
|
||||
$pages = [];
|
||||
$kirby = kirby();
|
||||
$kirby = App::instance();
|
||||
|
||||
foreach (Data::decode($value, 'yaml') as $id) {
|
||||
if (is_array($id) === true) {
|
||||
|
|
|
@ -106,10 +106,10 @@ return [
|
|||
},
|
||||
'columns' => function () {
|
||||
$columns = [];
|
||||
$mobile = 0;
|
||||
|
||||
if (empty($this->columns)) {
|
||||
foreach ($this->fields as $field) {
|
||||
|
||||
// Skip hidden and unsaveable fields
|
||||
// They should never be included as column
|
||||
if ($field['type'] === 'hidden' || $field['saveable'] === false) {
|
||||
|
@ -133,6 +133,10 @@ return [
|
|||
continue;
|
||||
}
|
||||
|
||||
if (($columnProps['mobile'] ?? false) === true) {
|
||||
$mobile++;
|
||||
}
|
||||
|
||||
$columns[$columnName] = array_merge($columnProps, [
|
||||
'type' => $field['type'],
|
||||
'label' => $field['label'] ?? $field['name']
|
||||
|
@ -140,6 +144,12 @@ return [
|
|||
}
|
||||
}
|
||||
|
||||
// make the first column visible on mobile
|
||||
// if no other mobile columns are defined
|
||||
if ($mobile === 0) {
|
||||
$columns[array_key_first($columns)]['mobile'] = true;
|
||||
}
|
||||
|
||||
return $columns;
|
||||
}
|
||||
],
|
||||
|
|
|
@ -71,7 +71,6 @@ return [
|
|||
|
||||
// transform into value-text objects
|
||||
return array_map(function ($option) use ($options) {
|
||||
|
||||
// already a valid object
|
||||
if (is_array($option) === true && isset($option['value'], $option['text']) === true) {
|
||||
return $option;
|
||||
|
|
|
@ -69,14 +69,13 @@ return [
|
|||
return $value;
|
||||
}
|
||||
|
||||
$value = trim($value);
|
||||
$converter = $this->converters()[$this->converter()];
|
||||
|
||||
if (is_array($value) === true) {
|
||||
return array_map($converter, $value);
|
||||
}
|
||||
|
||||
return call_user_func($converter, $value);
|
||||
return call_user_func($converter, trim($value ?? ''));
|
||||
},
|
||||
'converters' => function (): array {
|
||||
return [
|
||||
|
|
41
kirby/config/fields/toggles.php
Normal file
41
kirby/config/fields/toggles.php
Normal file
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'mixins' => ['options'],
|
||||
'props' => [
|
||||
/**
|
||||
* Unset inherited props
|
||||
*/
|
||||
'after' => null,
|
||||
'before' => null,
|
||||
'icon' => null,
|
||||
'placeholder' => null,
|
||||
|
||||
/**
|
||||
* Toggles will automatically span the full width of the field. With the grow option, you can disable this behaviour for a more compact layout.
|
||||
*/
|
||||
'grow' => function (bool $grow = true) {
|
||||
return $grow;
|
||||
},
|
||||
/**
|
||||
* If `false` all labels will be hidden for icon-only toggles.
|
||||
*/
|
||||
'labels' => function (bool $labels = true) {
|
||||
return $labels;
|
||||
},
|
||||
/**
|
||||
* A toggle can be deactivated on click. If reset is `false` deactivating a toggle is no longer possible.
|
||||
*/
|
||||
'reset' => function (bool $reset = true) {
|
||||
return $reset;
|
||||
}
|
||||
],
|
||||
'computed' => [
|
||||
'default' => function () {
|
||||
return $this->sanitizeOption($this->default);
|
||||
},
|
||||
'value' => function () {
|
||||
return $this->sanitizeOption($this->value) ?? '';
|
||||
},
|
||||
]
|
||||
];
|
|
@ -10,6 +10,7 @@ return [
|
|||
*/
|
||||
'converter' => null,
|
||||
'counter' => null,
|
||||
'pattern' => null,
|
||||
'spellcheck' => null,
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Data\Data;
|
||||
use Kirby\Toolkit\A;
|
||||
|
||||
|
@ -58,7 +59,7 @@ return [
|
|||
},
|
||||
'toUsers' => function ($value = null) {
|
||||
$users = [];
|
||||
$kirby = kirby();
|
||||
$kirby = App::instance();
|
||||
|
||||
foreach (Data::decode($value, 'yaml') as $email) {
|
||||
if (is_array($email) === true) {
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Cms\Helpers;
|
||||
use Kirby\Cms\Html;
|
||||
use Kirby\Cms\Response;
|
||||
use Kirby\Cms\Url;
|
||||
use Kirby\Exception\InvalidArgumentException;
|
||||
use Kirby\Filesystem\Asset;
|
||||
use Kirby\Filesystem\F;
|
||||
use Kirby\Http\Response;
|
||||
use Kirby\Http\Router;
|
||||
use Kirby\Toolkit\Date;
|
||||
use Kirby\Toolkit\Escape;
|
||||
use Kirby\Toolkit\I18n;
|
||||
use Kirby\Toolkit\Str;
|
||||
use Kirby\Toolkit\V;
|
||||
|
||||
if (Helpers::hasOverride('asset') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Helper to create an asset object
|
||||
*
|
||||
|
@ -24,7 +24,9 @@ function asset(string $path)
|
|||
{
|
||||
return new Asset($path);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('attr') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Generates a list of HTML attributes
|
||||
*
|
||||
|
@ -35,13 +37,11 @@ function asset(string $path)
|
|||
*/
|
||||
function attr(?array $attr = null, ?string $before = null, ?string $after = null): ?string
|
||||
{
|
||||
if ($attrs = Html::attr($attr)) {
|
||||
return $before . $attrs . $after;
|
||||
}
|
||||
|
||||
return null;
|
||||
return Html::attr($attr, null, $before, $after);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('collection') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Returns the result of a collection by name
|
||||
*
|
||||
|
@ -52,7 +52,9 @@ function collection(string $name)
|
|||
{
|
||||
return App::instance()->collection($name);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('csrf') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Checks / returns a CSRF token
|
||||
*
|
||||
|
@ -61,34 +63,18 @@ function collection(string $name)
|
|||
*/
|
||||
function csrf(?string $check = null)
|
||||
{
|
||||
$session = App::instance()->session();
|
||||
|
||||
// no arguments, generate/return a token
|
||||
// (check explicitly if there have been no arguments at all;
|
||||
// check explicitly if there have been no arguments at all;
|
||||
// checking for null introduces a security issue because null could come
|
||||
// from user input or bugs in the calling code!)
|
||||
// from user input or bugs in the calling code!
|
||||
if (func_num_args() === 0) {
|
||||
$token = $session->get('kirby.csrf');
|
||||
|
||||
if (is_string($token) !== true) {
|
||||
$token = bin2hex(random_bytes(32));
|
||||
$session->set('kirby.csrf', $token);
|
||||
return App::instance()->csrf();
|
||||
}
|
||||
|
||||
return $token;
|
||||
}
|
||||
|
||||
// argument has been passed, check the token
|
||||
if (
|
||||
is_string($check) === true &&
|
||||
is_string($session->get('kirby.csrf')) === true
|
||||
) {
|
||||
return hash_equals($session->get('kirby.csrf'), $check) === true;
|
||||
}
|
||||
|
||||
return false;
|
||||
return App::instance()->csrf($check);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('css') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Creates one or multiple CSS link tags
|
||||
*
|
||||
|
@ -98,40 +84,11 @@ function csrf(?string $check = null)
|
|||
*/
|
||||
function css($url, $options = null): ?string
|
||||
{
|
||||
if (is_array($url) === true) {
|
||||
$links = A::map($url, fn ($url) => css($url, $options));
|
||||
return implode(PHP_EOL, $links);
|
||||
}
|
||||
|
||||
if (is_string($options) === true) {
|
||||
$options = ['media' => $options];
|
||||
}
|
||||
|
||||
$kirby = App::instance();
|
||||
|
||||
if ($url === '@auto') {
|
||||
if (!$url = Url::toTemplateAsset('css/templates', 'css')) {
|
||||
return null;
|
||||
return Html::css($url, $options);
|
||||
}
|
||||
}
|
||||
|
||||
// only valid value for 'rel' is 'alternate stylesheet', if 'title' is given as well
|
||||
if (
|
||||
($options['rel'] ?? '') !== 'alternate stylesheet' ||
|
||||
($options['title'] ?? '') === ''
|
||||
) {
|
||||
$options['rel'] = 'stylesheet';
|
||||
}
|
||||
|
||||
$url = ($kirby->component('css'))($kirby, $url, $options);
|
||||
$url = Url::to($url);
|
||||
$attr = array_merge((array)$options, [
|
||||
'href' => $url
|
||||
]);
|
||||
|
||||
return '<link ' . attr($attr) . '>';
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('deprecated') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Triggers a deprecation warning if debug mode is active
|
||||
* @since 3.3.0
|
||||
|
@ -141,14 +98,11 @@ function css($url, $options = null): ?string
|
|||
*/
|
||||
function deprecated(string $message): bool
|
||||
{
|
||||
if (App::instance()->option('debug') === true) {
|
||||
return trigger_error($message, E_USER_DEPRECATED) === true;
|
||||
return Helpers::deprecated($message);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (function_exists('dump') === false) {
|
||||
if (Helpers::hasOverride('dump') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Simple object and variable dumper
|
||||
* to help with debugging.
|
||||
|
@ -159,12 +113,11 @@ if (function_exists('dump') === false) {
|
|||
*/
|
||||
function dump($variable, bool $echo = true): string
|
||||
{
|
||||
$kirby = App::instance();
|
||||
return ($kirby->component('dump'))($kirby, $variable, $echo);
|
||||
return Helpers::dump($variable, $echo);
|
||||
}
|
||||
}
|
||||
|
||||
if (function_exists('e') === false) {
|
||||
if (Helpers::hasOverride('e') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Smart version of echo with an if condition as first argument
|
||||
*
|
||||
|
@ -174,10 +127,11 @@ if (function_exists('e') === false) {
|
|||
*/
|
||||
function e($condition, $value, $alternative = null)
|
||||
{
|
||||
echo r($condition, $value, $alternative);
|
||||
echo $condition ? $value : $alternative;
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('esc') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Escape context specific output
|
||||
*
|
||||
|
@ -187,14 +141,11 @@ if (function_exists('e') === false) {
|
|||
*/
|
||||
function esc(string $string, string $context = 'html'): string
|
||||
{
|
||||
if (method_exists('Kirby\Toolkit\Escape', $context) === true) {
|
||||
return Escape::$context($string);
|
||||
return Str::esc($string, $context);
|
||||
}
|
||||
}
|
||||
|
||||
return $string;
|
||||
}
|
||||
|
||||
|
||||
if (Helpers::hasOverride('get') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Shortcut for $kirby->request()->get()
|
||||
*
|
||||
|
@ -206,7 +157,9 @@ function get($key = null, $default = null)
|
|||
{
|
||||
return App::instance()->request()->get($key, $default);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('gist') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Embeds a Github Gist
|
||||
*
|
||||
|
@ -216,12 +169,14 @@ function get($key = null, $default = null)
|
|||
*/
|
||||
function gist(string $url, ?string $file = null): string
|
||||
{
|
||||
return kirbytag([
|
||||
return App::instance()->kirbytag([
|
||||
'gist' => $url,
|
||||
'file' => $file,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('go') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Redirects to the given Urls
|
||||
* Urls can be relative or absolute.
|
||||
|
@ -232,9 +187,11 @@ function gist(string $url, ?string $file = null): string
|
|||
*/
|
||||
function go(string $url = '/', int $code = 302)
|
||||
{
|
||||
die(Response::redirect($url, $code));
|
||||
Response::go($url, $code);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('h') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Shortcut for html()
|
||||
*
|
||||
|
@ -242,11 +199,13 @@ function go(string $url = '/', int $code = 302)
|
|||
* @param bool $keepTags
|
||||
* @return string
|
||||
*/
|
||||
function h(?string $string, bool $keepTags = false)
|
||||
function h(?string $string, bool $keepTags = false): string
|
||||
{
|
||||
return Html::encode($string, $keepTags);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('html') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Creates safe html by encoding special characters
|
||||
*
|
||||
|
@ -254,11 +213,13 @@ function h(?string $string, bool $keepTags = false)
|
|||
* @param bool $keepTags
|
||||
* @return string
|
||||
*/
|
||||
function html(?string $string, bool $keepTags = false)
|
||||
function html(?string $string, bool $keepTags = false): string
|
||||
{
|
||||
return Html::encode($string, $keepTags);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('image') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Return an image from any page
|
||||
* specified by the path
|
||||
|
@ -271,36 +232,11 @@ function html(?string $string, bool $keepTags = false)
|
|||
*/
|
||||
function image(?string $path = null)
|
||||
{
|
||||
if ($path === null) {
|
||||
return page()->image();
|
||||
}
|
||||
|
||||
$uri = dirname($path);
|
||||
$filename = basename($path);
|
||||
|
||||
if ($uri === '.') {
|
||||
$uri = null;
|
||||
}
|
||||
|
||||
switch ($uri) {
|
||||
case '/':
|
||||
$parent = site();
|
||||
break;
|
||||
case null:
|
||||
$parent = page();
|
||||
break;
|
||||
default:
|
||||
$parent = page($uri);
|
||||
break;
|
||||
}
|
||||
|
||||
if ($parent) {
|
||||
return $parent->image($filename);
|
||||
} else {
|
||||
return null;
|
||||
return App::instance()->image($path);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('invalid') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Runs a number of validators on a set of data and checks if the data is invalid
|
||||
*
|
||||
|
@ -311,63 +247,11 @@ function image(?string $path = null)
|
|||
*/
|
||||
function invalid(array $data = [], array $rules = [], array $messages = []): array
|
||||
{
|
||||
$errors = [];
|
||||
|
||||
foreach ($rules as $field => $validations) {
|
||||
$validationIndex = -1;
|
||||
|
||||
// See: http://php.net/manual/en/types.comparisons.php
|
||||
// only false for: null, undefined variable, '', []
|
||||
$value = $data[$field] ?? null;
|
||||
$filled = $value !== null && $value !== '' && $value !== [];
|
||||
$message = $messages[$field] ?? $field;
|
||||
|
||||
// True if there is an error message for each validation method.
|
||||
$messageArray = is_array($message);
|
||||
|
||||
foreach ($validations as $method => $options) {
|
||||
// If the index is numeric, there is no option
|
||||
// and `$value` is sent directly as a `$options` parameter
|
||||
if (is_numeric($method) === true) {
|
||||
$method = $options;
|
||||
$options = [$value];
|
||||
} else {
|
||||
if (is_array($options) === false) {
|
||||
$options = [$options];
|
||||
}
|
||||
|
||||
array_unshift($options, $value);
|
||||
}
|
||||
|
||||
$validationIndex++;
|
||||
|
||||
if ($method === 'required') {
|
||||
if ($filled) {
|
||||
// Field is required and filled.
|
||||
continue;
|
||||
}
|
||||
} elseif ($filled) {
|
||||
if (V::$method(...$options) === true) {
|
||||
// Field is filled and passes validation method.
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
// If a field is not required and not filled, no validation should be done.
|
||||
continue;
|
||||
}
|
||||
|
||||
// If no continue was called we have a failed validation.
|
||||
if ($messageArray) {
|
||||
$errors[$field][] = $message[$validationIndex] ?? $field;
|
||||
} else {
|
||||
$errors[$field] = $message;
|
||||
}
|
||||
return V::invalid($data, $rules, $messages);
|
||||
}
|
||||
}
|
||||
|
||||
return $errors;
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('js') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Creates a script tag to load a javascript file
|
||||
*
|
||||
|
@ -377,30 +261,11 @@ function invalid(array $data = [], array $rules = [], array $messages = []): arr
|
|||
*/
|
||||
function js($url, $options = null): ?string
|
||||
{
|
||||
if (is_array($url) === true) {
|
||||
$scripts = A::map($url, fn ($url) => js($url, $options));
|
||||
return implode(PHP_EOL, $scripts);
|
||||
}
|
||||
|
||||
if (is_bool($options) === true) {
|
||||
$options = ['async' => $options];
|
||||
}
|
||||
|
||||
$kirby = App::instance();
|
||||
|
||||
if ($url === '@auto') {
|
||||
if (!$url = Url::toTemplateAsset('js/templates', 'js')) {
|
||||
return null;
|
||||
return Html::js($url, $options);
|
||||
}
|
||||
}
|
||||
|
||||
$url = ($kirby->component('js'))($kirby, $url, $options);
|
||||
$url = Url::to($url);
|
||||
$attr = array_merge((array)$options, ['src' => $url]);
|
||||
|
||||
return '<script ' . attr($attr) . '></script>';
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('kirby') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Returns the Kirby object in any situation
|
||||
*
|
||||
|
@ -410,7 +275,9 @@ function kirby()
|
|||
{
|
||||
return App::instance();
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('kirbytag') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Makes it possible to use any defined Kirbytag as standalone function
|
||||
*
|
||||
|
@ -422,22 +289,11 @@ function kirby()
|
|||
*/
|
||||
function kirbytag($type, ?string $value = null, array $attr = [], array $data = []): string
|
||||
{
|
||||
if (is_array($type) === true) {
|
||||
$kirbytag = $type;
|
||||
$type = key($kirbytag);
|
||||
$value = current($kirbytag);
|
||||
$attr = $kirbytag;
|
||||
|
||||
// check data attribute and separate from attr data if exists
|
||||
if (isset($attr['data']) === true) {
|
||||
$data = $attr['data'];
|
||||
unset($attr['data']);
|
||||
}
|
||||
}
|
||||
|
||||
return App::instance()->kirbytag($type, $value, $attr, $data);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('kirbytags') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Parses KirbyTags in the given string. Shortcut
|
||||
* for `$kirby->kirbytags($text, $data)`
|
||||
|
@ -450,7 +306,9 @@ function kirbytags(?string $text = null, array $data = []): string
|
|||
{
|
||||
return App::instance()->kirbytags($text, $data);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('kirbytext') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Parses KirbyTags and Markdown in the
|
||||
* given string. Shortcut for `$kirby->kirbytext()`
|
||||
|
@ -463,21 +321,26 @@ function kirbytext(?string $text = null, array $data = []): string
|
|||
{
|
||||
return App::instance()->kirbytext($text, $data);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('kirbytextinline') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Parses KirbyTags and inline Markdown in the
|
||||
* given string.
|
||||
* @since 3.1.0
|
||||
*
|
||||
* @param string|null $text
|
||||
* @param array $data
|
||||
* @param array $options
|
||||
* @return string
|
||||
*/
|
||||
function kirbytextinline(?string $text = null, array $data = []): string
|
||||
function kirbytextinline(?string $text = null, array $options = []): string
|
||||
{
|
||||
return App::instance()->kirbytext($text, $data, true);
|
||||
$options['markdown']['inline'] = true;
|
||||
return App::instance()->kirbytext($text, $options);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('kt') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Shortcut for `kirbytext()` helper
|
||||
*
|
||||
|
@ -487,22 +350,27 @@ function kirbytextinline(?string $text = null, array $data = []): string
|
|||
*/
|
||||
function kt(?string $text = null, array $data = []): string
|
||||
{
|
||||
return kirbytext($text, $data);
|
||||
return App::instance()->kirbytext($text, $data);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('kti') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Shortcut for `kirbytextinline()` helper
|
||||
* @since 3.1.0
|
||||
*
|
||||
* @param string|null $text
|
||||
* @param array $data
|
||||
* @param array $options
|
||||
* @return string
|
||||
*/
|
||||
function kti(?string $text = null, array $data = []): string
|
||||
function kti(?string $text = null, array $options = []): string
|
||||
{
|
||||
return kirbytextinline($text, $data);
|
||||
$options['markdown']['inline'] = true;
|
||||
return App::instance()->kirbytext($text, $options);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('load') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* A super simple class autoloader
|
||||
*
|
||||
|
@ -510,26 +378,13 @@ function kti(?string $text = null, array $data = []): string
|
|||
* @param string|null $base
|
||||
* @return void
|
||||
*/
|
||||
function load(array $classmap, ?string $base = null)
|
||||
function load(array $classmap, ?string $base = null): void
|
||||
{
|
||||
// convert all classnames to lowercase
|
||||
$classmap = array_change_key_case($classmap);
|
||||
|
||||
spl_autoload_register(function ($class) use ($classmap, $base) {
|
||||
$class = strtolower($class);
|
||||
|
||||
if (!isset($classmap[$class])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($base) {
|
||||
include $base . '/' . $classmap[$class];
|
||||
} else {
|
||||
include $classmap[$class];
|
||||
}
|
||||
});
|
||||
F::loadClasses($classmap, $base);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('markdown') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Parses markdown in the given string. Shortcut for
|
||||
* `$kirby->markdown($text)`
|
||||
|
@ -542,7 +397,9 @@ function markdown(?string $text = null, array $options = []): string
|
|||
{
|
||||
return App::instance()->markdown($text, $options);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('option') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Shortcut for `$kirby->option($key, $default)`
|
||||
*
|
||||
|
@ -554,48 +411,48 @@ function option(string $key, $default = null)
|
|||
{
|
||||
return App::instance()->option($key, $default);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('page') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Fetches a single page or multiple pages by
|
||||
* id or the current page when no id is specified
|
||||
* Fetches a single page by id or
|
||||
* the current page when no id is specified
|
||||
*
|
||||
* @param string|array ...$id
|
||||
* @return \Kirby\Cms\Page|\Kirby\Cms\Pages|null
|
||||
* @todo reduce to one parameter in 3.7.0 (also change return and return type)
|
||||
* @param string|null $id
|
||||
* @return \Kirby\Cms\Page|null
|
||||
*/
|
||||
function page(...$id)
|
||||
function page(?string $id = null)
|
||||
{
|
||||
if (empty($id) === true) {
|
||||
return App::instance()->site()->page();
|
||||
}
|
||||
|
||||
if (count($id) > 1) {
|
||||
// @codeCoverageIgnoreStart
|
||||
deprecated('Passing multiple parameters to the `page()` helper has been deprecated. Please use the `pages()` helper instead.');
|
||||
// @codeCoverageIgnoreEnd
|
||||
}
|
||||
|
||||
return App::instance()->site()->find(...$id);
|
||||
return App::instance()->site()->find($id);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('pages') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Helper to build page collections
|
||||
* Helper to build pages collection
|
||||
*
|
||||
* @param string|array ...$id
|
||||
* @return \Kirby\Cms\Page|\Kirby\Cms\Pages|null
|
||||
* @todo return only Pages|null in 3.7.0, wrap in Pages for single passed id
|
||||
* @return \Kirby\Cms\Pages|null
|
||||
*/
|
||||
function pages(...$id)
|
||||
{
|
||||
if (count($id) === 1 && is_array($id[0]) === false) {
|
||||
// @codeCoverageIgnoreStart
|
||||
deprecated('Passing a single id to the `pages()` helper will return a Kirby\Cms\Pages collection with a single element instead of the single Kirby\Cms\Page object itself - starting in 3.7.0.');
|
||||
// @codeCoverageIgnoreEnd
|
||||
// ensure that a list of string arguments and an array
|
||||
// as the first argument are treated the same
|
||||
if (count($id) === 1 && is_array($id[0]) === true) {
|
||||
$id = $id[0];
|
||||
}
|
||||
|
||||
return App::instance()->site()->find(...$id);
|
||||
// always passes $id an array; ensures we get a
|
||||
// collection even if only one ID is passed
|
||||
return App::instance()->site()->find($id);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('param') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Returns a single param from the URL
|
||||
*
|
||||
|
@ -607,7 +464,9 @@ function param(string $key, ?string $fallback = null): ?string
|
|||
{
|
||||
return App::instance()->request()->url()->params()->$key ?? $fallback;
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('params') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Returns all params from the current Url
|
||||
*
|
||||
|
@ -617,7 +476,9 @@ function params(): array
|
|||
{
|
||||
return App::instance()->request()->url()->params()->toArray();
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('r') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Smart version of return with an if condition as first argument
|
||||
*
|
||||
|
@ -630,7 +491,9 @@ function r($condition, $value, $alternative = null)
|
|||
{
|
||||
return $condition ? $value : $alternative;
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('router') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Creates a micro-router and executes
|
||||
* the routing action immediately
|
||||
|
@ -644,9 +507,11 @@ function r($condition, $value, $alternative = null)
|
|||
*/
|
||||
function router(?string $path = null, string $method = 'GET', array $routes = [], ?Closure $callback = null)
|
||||
{
|
||||
return (new Router($routes))->call($path, $method, $callback);
|
||||
return Router::execute($path, $method, $routes, $callback);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('site') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Returns the current site object
|
||||
*
|
||||
|
@ -656,7 +521,9 @@ function site()
|
|||
{
|
||||
return App::instance()->site();
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('size') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Determines the size/length of numbers, strings, arrays and countable objects
|
||||
*
|
||||
|
@ -666,31 +533,11 @@ function site()
|
|||
*/
|
||||
function size($value): int
|
||||
{
|
||||
if (is_numeric($value)) {
|
||||
return (int)$value;
|
||||
}
|
||||
|
||||
if (is_string($value)) {
|
||||
return Str::length(trim($value));
|
||||
}
|
||||
|
||||
if (is_array($value)) {
|
||||
return count($value);
|
||||
}
|
||||
|
||||
if (is_object($value)) {
|
||||
if (is_a($value, 'Countable') === true) {
|
||||
return count($value);
|
||||
}
|
||||
|
||||
if (is_a($value, 'Kirby\Toolkit\Collection') === true) {
|
||||
return $value->count();
|
||||
return Helpers::size($value);
|
||||
}
|
||||
}
|
||||
|
||||
throw new InvalidArgumentException('Could not determine the size of the given value');
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('smartypants') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Enhances the given string with
|
||||
* smartypants. Shortcut for `$kirby->smartypants($text)`
|
||||
|
@ -702,30 +549,24 @@ function smartypants(?string $text = null): string
|
|||
{
|
||||
return App::instance()->smartypants($text);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('snippet') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Embeds a snippet from the snippet folder
|
||||
*
|
||||
* @param string|array $name
|
||||
* @param array|object $data
|
||||
* @param bool $return
|
||||
* @return string
|
||||
* @return string|null
|
||||
*/
|
||||
function snippet($name, $data = [], bool $return = false)
|
||||
function snippet($name, $data = [], bool $return = false): ?string
|
||||
{
|
||||
if (is_object($data) === true) {
|
||||
$data = ['item' => $data];
|
||||
}
|
||||
|
||||
$snippet = App::instance()->snippet($name, $data);
|
||||
|
||||
if ($return === true) {
|
||||
return $snippet;
|
||||
}
|
||||
|
||||
echo $snippet;
|
||||
return App::instance()->snippet($name, $data, $return);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('svg') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Includes an SVG file by absolute or
|
||||
* relative file path.
|
||||
|
@ -735,31 +576,11 @@ function snippet($name, $data = [], bool $return = false)
|
|||
*/
|
||||
function svg($file)
|
||||
{
|
||||
// support for Kirby's file objects
|
||||
if (is_a($file, 'Kirby\Cms\File') === true && $file->extension() === 'svg') {
|
||||
return $file->read();
|
||||
}
|
||||
|
||||
if (is_string($file) === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$extension = F::extension($file);
|
||||
|
||||
// check for valid svg files
|
||||
if ($extension !== 'svg') {
|
||||
return false;
|
||||
}
|
||||
|
||||
// try to convert relative paths to absolute
|
||||
if (file_exists($file) === false) {
|
||||
$root = App::instance()->root();
|
||||
$file = realpath($root . '/' . $file);
|
||||
}
|
||||
|
||||
return F::read($file);
|
||||
return Html::svg($file);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('t') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Returns translate string for key from translation file
|
||||
*
|
||||
|
@ -772,7 +593,9 @@ function t($key, string $fallback = null, string $locale = null)
|
|||
{
|
||||
return I18n::translate($key, $fallback, $locale);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('tc') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Translates a count
|
||||
*
|
||||
|
@ -782,11 +605,17 @@ function t($key, string $fallback = null, string $locale = null)
|
|||
* @param bool $formatNumber If set to `false`, the count is not formatted
|
||||
* @return mixed
|
||||
*/
|
||||
function tc(string $key, int $count, string $locale = null, bool $formatNumber = true)
|
||||
{
|
||||
function tc(
|
||||
string $key,
|
||||
int $count,
|
||||
string $locale = null,
|
||||
bool $formatNumber = true
|
||||
) {
|
||||
return I18n::translateCount($key, $count, $locale, $formatNumber);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('timestamp') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Rounds the minutes of the given date
|
||||
* by the defined step
|
||||
|
@ -797,21 +626,11 @@ function tc(string $key, int $count, string $locale = null, bool $formatNumber =
|
|||
*/
|
||||
function timestamp(?string $date = null, $step = null): ?int
|
||||
{
|
||||
if ($date = Date::optional($date)) {
|
||||
if ($step !== null) {
|
||||
$step = Date::stepConfig($step, [
|
||||
'unit' => 'minute',
|
||||
'size' => 1
|
||||
]);
|
||||
$date->round($step['unit'], $step['size']);
|
||||
}
|
||||
|
||||
return $date->timestamp();
|
||||
}
|
||||
|
||||
return null;
|
||||
return Date::roundedTimestamp($date, $step);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('tt') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Translate by key and then replace
|
||||
* placeholders in the text
|
||||
|
@ -822,11 +641,13 @@ function timestamp(?string $date = null, $step = null): ?int
|
|||
* @param string|null $locale
|
||||
* @return string
|
||||
*/
|
||||
function tt(string $key, $fallback = null, ?array $replace = null, ?string $locale = null)
|
||||
function tt(string $key, $fallback = null, ?array $replace = null, ?string $locale = null): string
|
||||
{
|
||||
return I18n::template($key, $fallback, $replace, $locale);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('twitter') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Builds a Twitter link
|
||||
*
|
||||
|
@ -838,14 +659,16 @@ function tt(string $key, $fallback = null, ?array $replace = null, ?string $loca
|
|||
*/
|
||||
function twitter(string $username, ?string $text = null, ?string $title = null, ?string $class = null): string
|
||||
{
|
||||
return kirbytag([
|
||||
return App::instance()->kirbytag([
|
||||
'twitter' => $username,
|
||||
'text' => $text,
|
||||
'title' => $title,
|
||||
'class' => $class
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('u') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Shortcut for url()
|
||||
*
|
||||
|
@ -857,7 +680,9 @@ function u(?string $path = null, $options = null): string
|
|||
{
|
||||
return Url::to($path, $options);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('url') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Builds an absolute URL for a given path
|
||||
*
|
||||
|
@ -869,37 +694,21 @@ function url(?string $path = null, $options = null): string
|
|||
{
|
||||
return Url::to($path, $options);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('uuid') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Creates a compliant v4 UUID
|
||||
* Taken from: https://github.com/symfony/polyfill
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function uuid(): string
|
||||
{
|
||||
$uuid = bin2hex(random_bytes(16));
|
||||
|
||||
return sprintf(
|
||||
'%08s-%04s-4%03s-%04x-%012s',
|
||||
// 32 bits for "time_low"
|
||||
substr($uuid, 0, 8),
|
||||
// 16 bits for "time_mid"
|
||||
substr($uuid, 8, 4),
|
||||
// 16 bits for "time_hi_and_version",
|
||||
// four most significant bits holds version number 4
|
||||
substr($uuid, 13, 3),
|
||||
// 16 bits:
|
||||
// * 8 bits for "clk_seq_hi_res",
|
||||
// * 8 bits for "clk_seq_low",
|
||||
// two most significant bits holds zero and one for variant DCE1.1
|
||||
hexdec(substr($uuid, 16, 4)) & 0x3fff | 0x8000,
|
||||
// 48 bits for "node"
|
||||
substr($uuid, 20, 12)
|
||||
);
|
||||
return Str::uuid();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (Helpers::hasOverride('video') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Creates a video embed via iframe for Youtube or Vimeo
|
||||
* videos. The embed Urls are automatically detected from
|
||||
|
@ -914,7 +723,9 @@ function video(string $url, array $options = [], array $attr = []): ?string
|
|||
{
|
||||
return Html::video($url, $options, $attr);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('vimeo') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Embeds a Vimeo video by URL in an iframe
|
||||
*
|
||||
|
@ -927,7 +738,9 @@ function vimeo(string $url, array $options = [], array $attr = []): ?string
|
|||
{
|
||||
return Html::vimeo($url, $options, $attr);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('widont') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* The widont function makes sure that there are no
|
||||
* typographical widows at the end of a paragraph –
|
||||
|
@ -940,7 +753,9 @@ function widont(string $string = null): string
|
|||
{
|
||||
return Str::widont($string);
|
||||
}
|
||||
}
|
||||
|
||||
if (Helpers::hasOverride('youtube') === false) { // @codeCoverageIgnore
|
||||
/**
|
||||
* Embeds a Youtube video by URL in an iframe
|
||||
*
|
||||
|
@ -953,3 +768,4 @@ function youtube(string $url, array $options = [], array $attr = []): ?string
|
|||
{
|
||||
return Html::youtube($url, $options, $attr);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -112,11 +112,11 @@ return function (App $app) {
|
|||
* Converts the field value to a timestamp or a formatted date
|
||||
*
|
||||
* @param \Kirby\Cms\Field $field
|
||||
* @param string|null $format PHP date formatting string
|
||||
* @param string|\IntlDateFormatter|null $format PHP date formatting string
|
||||
* @param string|null $fallback Fallback string for `strtotime` (since 3.2)
|
||||
* @return string|int
|
||||
*/
|
||||
'toDate' => function (Field $field, string $format = null, string $fallback = null) use ($app) {
|
||||
'toDate' => function (Field $field, $format = null, string $fallback = null) use ($app) {
|
||||
if (empty($field->value) === true && $fallback === null) {
|
||||
return null;
|
||||
}
|
||||
|
@ -341,7 +341,7 @@ return function (App $app) {
|
|||
* @param string $context Location of output (`html`, `attr`, `js`, `css`, `url` or `xml`)
|
||||
*/
|
||||
'escape' => function (Field $field, string $context = 'html') {
|
||||
$field->value = esc($field->value, $context);
|
||||
$field->value = Str::esc($field->value, $context);
|
||||
return $field;
|
||||
},
|
||||
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return function (array $props) {
|
||||
$props['sections'] = [
|
||||
'files' => [
|
||||
'headline' => $props['headline'] ?? t('files'),
|
||||
'headline' => $props['headline'] ?? I18n::translate('files'),
|
||||
'type' => 'files',
|
||||
'layout' => $props['layout'] ?? 'cards',
|
||||
'template' => $props['template'] ?? null,
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return function ($props) {
|
||||
$section = function ($defaults, $props) {
|
||||
if ($props === true) {
|
||||
|
@ -25,7 +27,7 @@ return function ($props) {
|
|||
|
||||
if ($pages !== false) {
|
||||
$sidebar['pages'] = $section([
|
||||
'headline' => t('pages'),
|
||||
'headline' => I18n::translate('pages'),
|
||||
'type' => 'pages',
|
||||
'status' => 'all',
|
||||
'layout' => 'list',
|
||||
|
@ -34,7 +36,7 @@ return function ($props) {
|
|||
|
||||
if ($files !== false) {
|
||||
$sidebar['files'] = $section([
|
||||
'headline' => t('files'),
|
||||
'headline' => I18n::translate('files'),
|
||||
'type' => 'files',
|
||||
'layout' => 'list'
|
||||
], $files);
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
<?php
|
||||
|
||||
return function (array $props) {
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return function (array $props) {
|
||||
// load the general templates setting for all sections
|
||||
$templates = $props['templates'] ?? null;
|
||||
|
||||
|
@ -39,15 +40,15 @@ return function (array $props) {
|
|||
|
||||
|
||||
if ($drafts !== false) {
|
||||
$sections['drafts'] = $section(t('pages.status.draft'), 'drafts', $drafts);
|
||||
$sections['drafts'] = $section(I18n::translate('pages.status.draft'), 'drafts', $drafts);
|
||||
}
|
||||
|
||||
if ($unlisted !== false) {
|
||||
$sections['unlisted'] = $section(t('pages.status.unlisted'), 'unlisted', $unlisted);
|
||||
$sections['unlisted'] = $section(I18n::translate('pages.status.unlisted'), 'unlisted', $unlisted);
|
||||
}
|
||||
|
||||
if ($listed !== false) {
|
||||
$sections['listed'] = $section(t('pages.status.listed'), 'listed', $listed);
|
||||
$sections['listed'] = $section(I18n::translate('pages.status.listed'), 'listed', $listed);
|
||||
}
|
||||
|
||||
// cleaning up
|
||||
|
|
|
@ -107,7 +107,6 @@ return function ($kirby) {
|
|||
if ($kirby->multilang() === true) {
|
||||
$after = LanguageRoutes::create($kirby);
|
||||
} else {
|
||||
|
||||
// Single-language home
|
||||
$after[] = [
|
||||
'pattern' => '',
|
||||
|
|
|
@ -12,7 +12,8 @@ return [
|
|||
'form' => function () {
|
||||
$fields = $this->fields;
|
||||
$disabled = $this->model->permissions()->update() === false;
|
||||
$content = $this->model->content()->toArray();
|
||||
$lang = $this->model->kirby()->languageCode();
|
||||
$content = $this->model->content($lang)->toArray();
|
||||
|
||||
if ($disabled === true) {
|
||||
foreach ($fields as $key => $props) {
|
||||
|
|
|
@ -5,6 +5,7 @@ use Kirby\Toolkit\I18n;
|
|||
|
||||
return [
|
||||
'mixins' => [
|
||||
'details',
|
||||
'empty',
|
||||
'headline',
|
||||
'help',
|
||||
|
@ -13,44 +14,10 @@ return [
|
|||
'max',
|
||||
'pagination',
|
||||
'parent',
|
||||
'search',
|
||||
'sort'
|
||||
],
|
||||
'props' => [
|
||||
/**
|
||||
* Enables/disables reverse sorting
|
||||
*/
|
||||
'flip' => function (bool $flip = false) {
|
||||
return $flip;
|
||||
},
|
||||
/**
|
||||
* Image options to control the source and look of file previews
|
||||
*/
|
||||
'image' => function ($image = null) {
|
||||
return $image ?? [];
|
||||
},
|
||||
/**
|
||||
* Optional info text setup. Info text is shown on the right (lists, cardlets) or below (cards) the filename.
|
||||
*/
|
||||
'info' => function ($info = null) {
|
||||
return I18n::translate($info, $info);
|
||||
},
|
||||
/**
|
||||
* The size option controls the size of cards. By default cards are auto-sized and the cards grid will always fill the full width. With a size you can disable auto-sizing. Available sizes: `tiny`, `small`, `medium`, `large`, `huge`
|
||||
*/
|
||||
'size' => function (string $size = 'auto') {
|
||||
return $size;
|
||||
},
|
||||
/**
|
||||
* Enables/disables manual sorting
|
||||
*/
|
||||
'sortable' => function (bool $sortable = true) {
|
||||
return $sortable;
|
||||
},
|
||||
/**
|
||||
* Overwrites manual sorting and sorts by the given field and sorting direction (i.e. `filename desc`)
|
||||
*/
|
||||
'sortBy' => function (string $sortBy = null) {
|
||||
return $sortBy;
|
||||
},
|
||||
/**
|
||||
* Filters all files by template and also sets the template, which will be used for all uploads
|
||||
*/
|
||||
|
@ -87,6 +54,12 @@ return [
|
|||
// filter out all protected files
|
||||
$files = $files->filter('isReadable', true);
|
||||
|
||||
// search
|
||||
if ($this->search === true && empty($this->searchterm()) === false) {
|
||||
$files = $files->search($this->searchterm());
|
||||
}
|
||||
|
||||
// sort
|
||||
if ($this->sortBy) {
|
||||
$files = $files->sort(...$files::sortArgs($this->sortBy));
|
||||
} else {
|
||||
|
@ -117,12 +90,15 @@ return [
|
|||
foreach ($this->files as $file) {
|
||||
$panel = $file->panel();
|
||||
|
||||
$data[] = [
|
||||
$item = [
|
||||
'dragText' => $panel->dragText('auto', $dragTextAbsolute),
|
||||
'extension' => $file->extension(),
|
||||
'filename' => $file->filename(),
|
||||
'id' => $file->id(),
|
||||
'image' => $panel->image($this->image, $this->layout),
|
||||
'image' => $panel->image(
|
||||
$this->image,
|
||||
$this->layout === 'table' ? 'list' : $this->layout
|
||||
),
|
||||
'info' => $file->toSafeString($this->info ?? false),
|
||||
'link' => $panel->url(true),
|
||||
'mime' => $file->mime(),
|
||||
|
@ -131,6 +107,12 @@ return [
|
|||
'text' => $file->toSafeString($this->text),
|
||||
'url' => $file->url(),
|
||||
];
|
||||
|
||||
if ($this->layout === 'table') {
|
||||
$item = $this->columnsValues($item, $file);
|
||||
}
|
||||
|
||||
$data[] = $item;
|
||||
}
|
||||
|
||||
return $data;
|
||||
|
@ -166,32 +148,9 @@ return [
|
|||
]
|
||||
];
|
||||
},
|
||||
'link' => function () {
|
||||
$modelLink = $this->model->panel()->url(true);
|
||||
$parentLink = $this->parent->panel()->url(true);
|
||||
|
||||
if ($modelLink !== $parentLink) {
|
||||
return $parentLink;
|
||||
}
|
||||
},
|
||||
'pagination' => function () {
|
||||
return $this->pagination();
|
||||
},
|
||||
'sortable' => function () {
|
||||
if ($this->sortable === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->sortBy !== null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->flip === true) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
'upload' => function () {
|
||||
if ($this->isFull() === true) {
|
||||
return false;
|
||||
|
@ -228,13 +187,15 @@ return [
|
|||
'options' => [
|
||||
'accept' => $this->accept,
|
||||
'apiUrl' => $this->parent->apiUrl(true),
|
||||
'columns' => $this->columns,
|
||||
'empty' => $this->empty,
|
||||
'headline' => $this->headline,
|
||||
'help' => $this->help,
|
||||
'layout' => $this->layout,
|
||||
'link' => $this->link,
|
||||
'link' => $this->link(),
|
||||
'max' => $this->max,
|
||||
'min' => $this->min,
|
||||
'search' => $this->search,
|
||||
'size' => $this->size,
|
||||
'sortable' => $this->sortable,
|
||||
'upload' => $this->upload
|
||||
|
|
36
kirby/config/sections/mixins/details.php
Normal file
36
kirby/config/sections/mixins/details.php
Normal file
|
@ -0,0 +1,36 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return [
|
||||
'props' => [
|
||||
/**
|
||||
* Image options to control the source and look of preview
|
||||
*/
|
||||
'image' => function ($image = null) {
|
||||
return $image ?? [];
|
||||
},
|
||||
/**
|
||||
* Optional info text setup. Info text is shown on the right (lists, cardlets) or below (cards) the title.
|
||||
*/
|
||||
'info' => function ($info = null) {
|
||||
return I18n::translate($info, $info);
|
||||
},
|
||||
/**
|
||||
* Setup for the main text in the list or cards. By default this will display the title.
|
||||
*/
|
||||
'text' => function ($text = '{{ model.title }}') {
|
||||
return I18n::translate($text, $text);
|
||||
}
|
||||
],
|
||||
'methods' => [
|
||||
'link' => function () {
|
||||
$modelLink = $this->model->panel()->url(true);
|
||||
$parentLink = $this->parent->panel()->url(true);
|
||||
|
||||
if ($modelLink !== $parentLink) {
|
||||
return $parentLink;
|
||||
}
|
||||
}
|
||||
]
|
||||
];
|
|
@ -1,14 +1,29 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\Helpers;
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return [
|
||||
'props' => [
|
||||
/**
|
||||
* The headline for the section. This can be a simple string or a template with additional info from the parent page.
|
||||
* @todo remove in 3.9.0
|
||||
*/
|
||||
'headline' => function ($headline = null) {
|
||||
// TODO: add deprecation notive in 3.8.0
|
||||
// if ($headline !== null) {
|
||||
// Helpers::deprecated('`headline` prop for sections has been deprecated and will be removed in Kirby 3.9.0. Use `label` instead.');
|
||||
// }
|
||||
|
||||
return I18n::translate($headline, $headline);
|
||||
},
|
||||
/**
|
||||
* The label for the section. This can be a simple string or
|
||||
* a template with additional info from the parent page.
|
||||
* Replaces the `headline` prop.
|
||||
*/
|
||||
'label' => function ($label = null) {
|
||||
return I18n::translate($label, $label);
|
||||
}
|
||||
],
|
||||
'computed' => [
|
||||
|
@ -17,6 +32,10 @@ return [
|
|||
return $this->model()->toString($this->headline);
|
||||
}
|
||||
|
||||
if ($this->label) {
|
||||
return $this->model()->toString($this->label);
|
||||
}
|
||||
|
||||
return ucfirst($this->name);
|
||||
}
|
||||
]
|
||||
|
|
|
@ -1,14 +1,129 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Toolkit\I18n;
|
||||
use Kirby\Toolkit\Str;
|
||||
|
||||
return [
|
||||
'props' => [
|
||||
/**
|
||||
* Columns config for `layout: table`
|
||||
*/
|
||||
'columns' => function (array $columns = null) {
|
||||
return $columns ?? [];
|
||||
},
|
||||
/**
|
||||
* Section layout.
|
||||
* Available layout methods: `list`, `cardlets`, `cards`.
|
||||
* Available layout methods: `list`, `cardlets`, `cards`, `table`.
|
||||
*/
|
||||
'layout' => function (string $layout = 'list') {
|
||||
$layouts = ['list', 'cardlets', 'cards'];
|
||||
$layouts = ['list', 'cardlets', 'cards', 'table'];
|
||||
return in_array($layout, $layouts) ? $layout : 'list';
|
||||
},
|
||||
/**
|
||||
* The size option controls the size of cards. By default cards are auto-sized and the cards grid will always fill the full width. With a size you can disable auto-sizing. Available sizes: `tiny`, `small`, `medium`, `large`, `huge`
|
||||
*/
|
||||
'size' => function (string $size = 'auto') {
|
||||
return $size;
|
||||
},
|
||||
],
|
||||
'computed' => [
|
||||
'columns' => function () {
|
||||
$columns = [];
|
||||
|
||||
if ($this->layout !== 'table') {
|
||||
return [];
|
||||
}
|
||||
]
|
||||
|
||||
if ($this->image !== false) {
|
||||
$columns['image'] = [
|
||||
'label' => ' ',
|
||||
'mobile' => true,
|
||||
'type' => 'image',
|
||||
'width' => 'var(--table-row-height)'
|
||||
];
|
||||
}
|
||||
|
||||
if ($this->text) {
|
||||
$columns['title'] = [
|
||||
'label' => I18n::translate('title'),
|
||||
'mobile' => true,
|
||||
'type' => 'url',
|
||||
];
|
||||
}
|
||||
|
||||
if ($this->info) {
|
||||
$columns['info'] = [
|
||||
'label' => I18n::translate('info'),
|
||||
'type' => 'text',
|
||||
];
|
||||
}
|
||||
|
||||
foreach ($this->columns as $columnName => $column) {
|
||||
if ($column === true) {
|
||||
$column = [];
|
||||
}
|
||||
|
||||
if ($column === false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// fallback for labels
|
||||
$column['label'] ??= Str::ucfirst($columnName);
|
||||
|
||||
// make sure to translate labels
|
||||
$column['label'] = I18n::translate($column['label'], $column['label']);
|
||||
|
||||
// keep the original column name as id
|
||||
$column['id'] = $columnName;
|
||||
|
||||
// add the custom column to the array with a key that won't
|
||||
// override the system columns
|
||||
$columns[$columnName . 'Cell'] = $column;
|
||||
}
|
||||
|
||||
if ($this->type === 'pages') {
|
||||
$columns['flag'] = [
|
||||
'label' => ' ',
|
||||
'mobile' => true,
|
||||
'type' => 'flag',
|
||||
'width' => 'var(--table-row-height)',
|
||||
];
|
||||
}
|
||||
|
||||
return $columns;
|
||||
},
|
||||
],
|
||||
'methods' => [
|
||||
'columnsValues' => function (array $item, $model) {
|
||||
$item['title'] = [
|
||||
// override toSafeString() coming from `$item`
|
||||
// because the table cells don't use v-html
|
||||
'text' => $model->toString($this->text),
|
||||
'href' => $model->panel()->url(true)
|
||||
];
|
||||
|
||||
if ($this->info) {
|
||||
// override toSafeString() coming from `$item`
|
||||
// because the table cells don't use v-html
|
||||
$item['info'] = $model->toString($this->info);
|
||||
}
|
||||
|
||||
foreach ($this->columns as $columnName => $column) {
|
||||
// don't overwrite essential columns
|
||||
if (isset($item[$columnName]) === true) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (empty($column['value']) === false) {
|
||||
$value = $model->toString($column['value']);
|
||||
} else {
|
||||
$value = $model->content()->get($column['id'] ?? $columnName)->value();
|
||||
}
|
||||
|
||||
$item[$columnName] = $value;
|
||||
}
|
||||
|
||||
return $item;
|
||||
}
|
||||
],
|
||||
];
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
use Kirby\Toolkit\Pagination;
|
||||
|
||||
return [
|
||||
|
@ -14,7 +15,7 @@ return [
|
|||
* Sets the default page for the pagination. This will overwrite default pagination.
|
||||
*/
|
||||
'page' => function (int $page = null) {
|
||||
return get('page', $page);
|
||||
return App::instance()->request()->get('page', $page);
|
||||
},
|
||||
],
|
||||
'methods' => [
|
||||
|
@ -31,6 +32,6 @@ return [
|
|||
'page' => $pagination->page(),
|
||||
'total' => $pagination->total(),
|
||||
];
|
||||
},
|
||||
}
|
||||
]
|
||||
];
|
||||
|
|
19
kirby/config/sections/mixins/search.php
Normal file
19
kirby/config/sections/mixins/search.php
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Cms\App;
|
||||
|
||||
return [
|
||||
'props' => [
|
||||
/**
|
||||
* Enable/disable the search in the sections
|
||||
*/
|
||||
'search' => function (bool $search = false): bool {
|
||||
return $search;
|
||||
}
|
||||
],
|
||||
'methods' => [
|
||||
'searchterm' => function (): ?string {
|
||||
return App::instance()->request()->get('searchterm');
|
||||
}
|
||||
]
|
||||
];
|
53
kirby/config/sections/mixins/sort.php
Normal file
53
kirby/config/sections/mixins/sort.php
Normal file
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'props' => [
|
||||
/**
|
||||
* Enables/disables reverse sorting
|
||||
*/
|
||||
'flip' => function (bool $flip = false) {
|
||||
return $flip;
|
||||
},
|
||||
/**
|
||||
* Enables/disables manual sorting
|
||||
*/
|
||||
'sortable' => function (bool $sortable = true) {
|
||||
return $sortable;
|
||||
},
|
||||
/**
|
||||
* Overwrites manual sorting and sorts by the given field and sorting direction (i.e. `date desc`)
|
||||
*/
|
||||
'sortBy' => function (string $sortBy = null) {
|
||||
return $sortBy;
|
||||
},
|
||||
],
|
||||
'computed' => [
|
||||
'sortable' => function () {
|
||||
if ($this->sortable === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (
|
||||
$this->type === 'pages' &&
|
||||
in_array($this->status, ['listed', 'published', 'all']) === false
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// don't allow sorting while search filter is active
|
||||
if (empty($this->searchterm()) === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->sortBy !== null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->flip === true) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
]
|
||||
];
|
|
@ -7,6 +7,7 @@ use Kirby\Toolkit\I18n;
|
|||
|
||||
return [
|
||||
'mixins' => [
|
||||
'details',
|
||||
'empty',
|
||||
'headline',
|
||||
'help',
|
||||
|
@ -14,7 +15,9 @@ return [
|
|||
'min',
|
||||
'max',
|
||||
'pagination',
|
||||
'parent'
|
||||
'parent',
|
||||
'search',
|
||||
'sort'
|
||||
],
|
||||
'props' => [
|
||||
/**
|
||||
|
@ -24,42 +27,6 @@ return [
|
|||
'create' => function ($create = null) {
|
||||
return $create;
|
||||
},
|
||||
/**
|
||||
* Enables/disables reverse sorting
|
||||
*/
|
||||
'flip' => function (bool $flip = false) {
|
||||
return $flip;
|
||||
},
|
||||
/**
|
||||
* Image options to control the source and look of page previews
|
||||
*/
|
||||
'image' => function ($image = null) {
|
||||
return $image ?? [];
|
||||
},
|
||||
/**
|
||||
* Optional info text setup. Info text is shown on the right (lists) or below (cards) the page title.
|
||||
*/
|
||||
'info' => function ($info = null) {
|
||||
return I18n::translate($info, $info);
|
||||
},
|
||||
/**
|
||||
* The size option controls the size of cards. By default cards are auto-sized and the cards grid will always fill the full width. With a size you can disable auto-sizing. Available sizes: `tiny`, `small`, `medium`, `large`, `huge`
|
||||
*/
|
||||
'size' => function (string $size = 'auto') {
|
||||
return $size;
|
||||
},
|
||||
/**
|
||||
* Enables/disables manual sorting
|
||||
*/
|
||||
'sortable' => function (bool $sortable = true) {
|
||||
return $sortable;
|
||||
},
|
||||
/**
|
||||
* Overwrites manual sorting and sorts by the given field and sorting direction (i.e. `date desc`)
|
||||
*/
|
||||
'sortBy' => function (string $sortBy = null) {
|
||||
return $sortBy;
|
||||
},
|
||||
/**
|
||||
* Filters pages by their status. Available status settings: `draft`, `unlisted`, `listed`, `published`, `all`.
|
||||
*/
|
||||
|
@ -79,19 +46,16 @@ return [
|
|||
*/
|
||||
'templates' => function ($templates = null) {
|
||||
return A::wrap($templates ?? $this->template);
|
||||
},
|
||||
/**
|
||||
* Setup for the main text in the list or cards. By default this will display the page title.
|
||||
*/
|
||||
'text' => function ($text = '{{ page.title }}') {
|
||||
return I18n::translate($text, $text);
|
||||
}
|
||||
],
|
||||
'computed' => [
|
||||
'parent' => function () {
|
||||
$parent = $this->parentModel();
|
||||
|
||||
if (is_a($parent, 'Kirby\Cms\Site') === false && is_a($parent, 'Kirby\Cms\Page') === false) {
|
||||
if (
|
||||
is_a($parent, 'Kirby\Cms\Site') === false &&
|
||||
is_a($parent, 'Kirby\Cms\Page') === false
|
||||
) {
|
||||
throw new InvalidArgumentException('The parent is invalid. You must choose the site or a page as parent.');
|
||||
}
|
||||
|
||||
|
@ -115,20 +79,28 @@ return [
|
|||
$pages = $this->parent->childrenAndDrafts();
|
||||
}
|
||||
|
||||
// loop for the best performance
|
||||
foreach ($pages->data as $id => $page) {
|
||||
|
||||
// filters pages that are protected and not in the templates list
|
||||
// internal `filter()` method used instead of foreach loop that previously included `unset()`
|
||||
// because `unset()` is updating the original data, `filter()` is just filtering
|
||||
// also it has been tested that there is no performance difference
|
||||
// even in 0.1 seconds on 100k virtual pages
|
||||
$pages = $pages->filter(function ($page) {
|
||||
// remove all protected pages
|
||||
if ($page->isReadable() === false) {
|
||||
unset($pages->data[$id]);
|
||||
continue;
|
||||
return false;
|
||||
}
|
||||
|
||||
// filter by all set templates
|
||||
if ($this->templates && in_array($page->intendedTemplate()->name(), $this->templates) === false) {
|
||||
unset($pages->data[$id]);
|
||||
continue;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
// search
|
||||
if ($this->search === true && empty($this->searchterm()) === false) {
|
||||
$pages = $pages->search($this->searchterm());
|
||||
}
|
||||
|
||||
// sort
|
||||
|
@ -156,27 +128,36 @@ return [
|
|||
'data' => function () {
|
||||
$data = [];
|
||||
|
||||
foreach ($this->pages as $item) {
|
||||
$panel = $item->panel();
|
||||
$permissions = $item->permissions();
|
||||
foreach ($this->pages as $page) {
|
||||
$panel = $page->panel();
|
||||
$permissions = $page->permissions();
|
||||
|
||||
$data[] = [
|
||||
$item = [
|
||||
'dragText' => $panel->dragText(),
|
||||
'id' => $item->id(),
|
||||
'image' => $panel->image($this->image, $this->layout),
|
||||
'info' => $item->toSafeString($this->info ?? false),
|
||||
'id' => $page->id(),
|
||||
'image' => $panel->image(
|
||||
$this->image,
|
||||
$this->layout === 'table' ? 'list' : $this->layout
|
||||
),
|
||||
'info' => $page->toSafeString($this->info ?? false),
|
||||
'link' => $panel->url(true),
|
||||
'parent' => $item->parentId(),
|
||||
'parent' => $page->parentId(),
|
||||
'permissions' => [
|
||||
'sort' => $permissions->can('sort'),
|
||||
'changeSlug' => $permissions->can('changeSlug'),
|
||||
'changeStatus' => $permissions->can('changeStatus'),
|
||||
'changeTitle' => $permissions->can('changeTitle'),
|
||||
],
|
||||
'status' => $item->status(),
|
||||
'template' => $item->intendedTemplate()->name(),
|
||||
'text' => $item->toSafeString($this->text),
|
||||
'status' => $page->status(),
|
||||
'template' => $page->intendedTemplate()->name(),
|
||||
'text' => $page->toSafeString($this->text),
|
||||
];
|
||||
|
||||
if ($this->layout === 'table') {
|
||||
$item = $this->columnsValues($item, $page);
|
||||
}
|
||||
|
||||
$data[] = $item;
|
||||
}
|
||||
|
||||
return $data;
|
||||
|
@ -224,35 +205,8 @@ return [
|
|||
|
||||
return true;
|
||||
},
|
||||
'link' => function () {
|
||||
$modelLink = $this->model->panel()->url(true);
|
||||
$parentLink = $this->parent->panel()->url(true);
|
||||
|
||||
if ($modelLink !== $parentLink) {
|
||||
return $parentLink;
|
||||
}
|
||||
},
|
||||
'pagination' => function () {
|
||||
return $this->pagination();
|
||||
},
|
||||
'sortable' => function () {
|
||||
if (in_array($this->status, ['listed', 'published', 'all']) === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->sortable === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->sortBy !== null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->flip === true) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
],
|
||||
'methods' => [
|
||||
|
@ -291,13 +245,15 @@ return [
|
|||
'errors' => $this->errors,
|
||||
'options' => [
|
||||
'add' => $this->add,
|
||||
'columns' => $this->columns,
|
||||
'empty' => $this->empty,
|
||||
'headline' => $this->headline,
|
||||
'help' => $this->help,
|
||||
'layout' => $this->layout,
|
||||
'link' => $this->link,
|
||||
'link' => $this->link(),
|
||||
'max' => $this->max,
|
||||
'min' => $this->min,
|
||||
'search' => $this->search,
|
||||
'size' => $this->size,
|
||||
'sortable' => $this->sortable
|
||||
],
|
||||
|
|
62
kirby/config/sections/stats.php
Normal file
62
kirby/config/sections/stats.php
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
|
||||
use Kirby\Toolkit\I18n;
|
||||
|
||||
return [
|
||||
'mixins' => [
|
||||
'headline',
|
||||
],
|
||||
'props' => [
|
||||
/**
|
||||
* Array or query string for reports. Each report needs a `label` and `value` and can have additional `info`, `link` and `theme` settings.
|
||||
*/
|
||||
'reports' => function ($reports = null) {
|
||||
if ($reports === null) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if (is_string($reports) === true) {
|
||||
$reports = $this->model()->query($reports);
|
||||
}
|
||||
|
||||
if (is_array($reports) === false) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return $reports;
|
||||
},
|
||||
/**
|
||||
* The size of the report cards. Available sizes: `tiny`, `small`, `medium`, `large`
|
||||
*/
|
||||
'size' => function (string $size = 'large') {
|
||||
return $size;
|
||||
}
|
||||
],
|
||||
'computed' => [
|
||||
'reports' => function () {
|
||||
$reports = [];
|
||||
$model = $this->model();
|
||||
$value = fn ($value) => $value === null ? null : $model->toString($value);
|
||||
|
||||
foreach ($this->reports as $report) {
|
||||
if (is_string($report) === true) {
|
||||
$report = $model->query($report);
|
||||
}
|
||||
|
||||
if (is_array($report) === false) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$reports[] = [
|
||||
'label' => I18n::translate($report['label'], $report['label']),
|
||||
'value' => $value($report['value'] ?? null),
|
||||
'info' => $value($report['info'] ?? null),
|
||||
'link' => $value($report['link'] ?? null),
|
||||
'theme' => $value($report['theme'] ?? null)
|
||||
];
|
||||
}
|
||||
|
||||
return $reports;
|
||||
}
|
||||
]
|
||||
];
|
|
@ -144,7 +144,9 @@ return [
|
|||
|
||||
// render KirbyText in caption
|
||||
if ($tag->caption) {
|
||||
$tag->caption = [$tag->kirby()->kirbytext($tag->caption, [], true)];
|
||||
$options = ['markdown' => ['inline' => true]];
|
||||
$caption = $tag->kirby()->kirbytext($tag->caption, $options);
|
||||
$tag->caption = [$caption];
|
||||
}
|
||||
|
||||
return Html::figure([ $link($image) ], $tag->caption, [
|
||||
|
@ -212,7 +214,6 @@ return [
|
|||
'title'
|
||||
],
|
||||
'html' => function ($tag) {
|
||||
|
||||
// get and sanitize the username
|
||||
$username = str_replace('@', '', $tag->value);
|
||||
|
||||
|
@ -244,6 +245,7 @@ return [
|
|||
'height',
|
||||
'loop',
|
||||
'muted',
|
||||
'playsinline',
|
||||
'poster',
|
||||
'preload',
|
||||
'style',
|
||||
|
@ -290,6 +292,7 @@ return [
|
|||
$attrs['controls'] = Str::toType($tag->controls ?? true, 'bool');
|
||||
$attrs['loop'] = Str::toType($tag->loop, 'bool');
|
||||
$attrs['muted'] = Str::toType($tag->muted ?? $autoplay, 'bool');
|
||||
$attrs['playsinline'] = Str::toType($tag->playsinline ?? $autoplay, 'bool');
|
||||
$attrs['poster'] = $tag->poster;
|
||||
$attrs['preload'] = $tag->preload;
|
||||
}
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Email",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Environment",
|
||||
|
||||
"error.access.code": "Invalid code",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Hide",
|
||||
"hour": "Hour",
|
||||
"import": "Import",
|
||||
"info": "Info",
|
||||
"insert": "\u0412\u043c\u044a\u043a\u043d\u0438",
|
||||
"insert.after": "Insert after",
|
||||
"insert.before": "Insert before",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "\u041b\u0438\u0446\u0435\u043d\u0437 \u0437\u0430 Kirby",
|
||||
"license.buy": "Купи лиценз",
|
||||
"license.register": "Регистрирай",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "You received your license code after the purchase via email. Please copy and paste it to register.",
|
||||
"license.register.label": "Please enter your license code",
|
||||
"license.register.success": "Thank you for supporting Kirby",
|
||||
"license.unregistered": "Това е нерегистрирана демо версия на Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "\u0412\u0440\u044a\u0437\u043a\u0430",
|
||||
"link.text": "Текстова връзка",
|
||||
|
@ -354,7 +360,7 @@
|
|||
"lock.unlock": "Unlock",
|
||||
"lock.isUnlocked": "Your unsaved changes have been overwritten by another user. You can download your changes to merge them manually.",
|
||||
|
||||
"login": "Вход",
|
||||
"login": "Подписване",
|
||||
"login.code.label.login": "Login code",
|
||||
"login.code.label.password-reset": "Password reset code",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "The section is required",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Избери",
|
||||
"server": "Server",
|
||||
"settings": "Настройки",
|
||||
"show": "Show",
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Размер",
|
||||
"slug": "URL-\u0434\u043e\u0431\u0430\u0432\u043a\u0430",
|
||||
"sort": "Сортирай",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Заглавие",
|
||||
"template": "Образец",
|
||||
"today": "Днес",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Код",
|
||||
"toolbar.button.bold": "\u041f\u043e\u043b\u0443\u0447\u0435\u0440 \u0448\u0440\u0438\u0444\u0442",
|
||||
"toolbar.button.email": "Email",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Email",
|
||||
"email.placeholder": "mail@exemple.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Environment",
|
||||
|
||||
"error.access.code": "Codi invàlid",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Hide",
|
||||
"hour": "Hora",
|
||||
"import": "Import",
|
||||
"info": "Info",
|
||||
"insert": "Insertar",
|
||||
"insert.after": "Insert after",
|
||||
"insert.before": "Insert before",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Llic\u00e8ncia Kirby",
|
||||
"license.buy": "Comprar una llicència",
|
||||
"license.register": "Registrar",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Heu rebut el codi de la vostra llicència després de la compra, per correu electrònic. Copieu-lo i enganxeu-lo per registrar-vos.",
|
||||
"license.register.label": "Si us plau, introdueixi el seu codi de llicència",
|
||||
"license.register.success": "Gràcies per donar suport a Kirby",
|
||||
"license.unregistered": "Aquesta és una demo no registrada de Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Enlla\u00e7",
|
||||
"link.text": "Enllaç de text",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "La secció és obligatòria",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Seleccionar",
|
||||
"server": "Server",
|
||||
"settings": "Configuració",
|
||||
"show": "Show",
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Tamany",
|
||||
"slug": "URL-ap\u00e8ndix",
|
||||
"sort": "Ordenar",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Títol",
|
||||
"template": "Plantilla",
|
||||
"today": "Avui",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Codi",
|
||||
"toolbar.button.bold": "Negreta",
|
||||
"toolbar.button.email": "Email",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Email",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Prostředí",
|
||||
|
||||
"error.access.code": "Neplatný kód",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Skrýt",
|
||||
"hour": "Hodina",
|
||||
"import": "Import",
|
||||
"info": "Info",
|
||||
"insert": "Vlo\u017eit",
|
||||
"insert.after": "Vložit za",
|
||||
"insert.before": "Vložit před",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Kirby licence",
|
||||
"license.buy": "Zakoupit licenci",
|
||||
"license.register": "Registrovat",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Licenční kód jste po zakoupení obdrželi na email. Vložte prosím kód a zaregistrujte Vaší kopii.",
|
||||
"license.register.label": "Zadejte prosím licenční kód",
|
||||
"license.register.success": "Děkujeme Vám za podporu Kirby",
|
||||
"license.unregistered": "Toto je neregistrovaná kopie Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Odkaz",
|
||||
"link.text": "Text odkazu",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Sekce musí být vyplněna",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Vybrat",
|
||||
"server": "Server",
|
||||
"settings": "Nastavení",
|
||||
"show": "Zobrazit",
|
||||
"site.blueprint": "Hlavní panel nemá blueprint. Blueprint můžete definovat v <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Velikost",
|
||||
"slug": "P\u0159\u00edpona URL",
|
||||
"sort": "Řadit",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Název",
|
||||
"template": "\u0160ablona",
|
||||
"today": "Dnes",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "Hlavní panel nemá blueprint. Blueprint můžete definovat v <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Kód",
|
||||
"toolbar.button.bold": "Tu\u010dn\u00fd text",
|
||||
"toolbar.button.email": "Email",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Email",
|
||||
"email.placeholder": "mail@eksempel.dk",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Miljø",
|
||||
|
||||
"error.access.code": "Ugyldig kode",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Skjul",
|
||||
"hour": "Time",
|
||||
"import": "Importer",
|
||||
"info": "Info",
|
||||
"insert": "Inds\u00e6t",
|
||||
"insert.after": "Indsæt efter",
|
||||
"insert.before": "Indsæt før",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Kirby licens",
|
||||
"license.buy": "Køb en licens",
|
||||
"license.register": "Registrer",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Du modtog din licenskode efter købet via email. Venligst kopier og indsæt den for at registrere.",
|
||||
"license.register.label": "Indtast venligst din licenskode",
|
||||
"license.register.success": "Tak for din støtte af Kirby",
|
||||
"license.unregistered": "Dette er en uregistreret demo af Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Link",
|
||||
"link.text": "Link tekst",
|
||||
|
@ -396,7 +402,7 @@
|
|||
"next": "Næste",
|
||||
"no": "nej",
|
||||
"off": "Sluk",
|
||||
"on": "Tænd",
|
||||
"on": "Aktiveret",
|
||||
"open": "Åben",
|
||||
"open.newWindow": "Åben i et nyt vindue",
|
||||
"options": "Indstillinger",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Sektionen er påkrævet",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Vælg",
|
||||
"server": "Server",
|
||||
"settings": "Indstillinger",
|
||||
"show": "Vis",
|
||||
"site.blueprint": "Sitet har intet blueprint endnu. Du kan definere opsætningen i <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Størrelse",
|
||||
"slug": "URL-appendiks",
|
||||
"sort": "Sorter",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Titel",
|
||||
"template": "Skabelon",
|
||||
"today": "Idag",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "Sitet har intet blueprint endnu. Du kan definere opsætningen i <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Kode",
|
||||
"toolbar.button.bold": "Fed tekst",
|
||||
"toolbar.button.email": "Email",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "E-Mail",
|
||||
"email.placeholder": "mail@beispiel.de",
|
||||
|
||||
"entries": "Einträge",
|
||||
"entry": "Eintrag",
|
||||
|
||||
"environment": "Umgebung",
|
||||
|
||||
"error.access.code": "Ungültiger Code",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Verbergen",
|
||||
"hour": "Stunde",
|
||||
"import": "Importieren",
|
||||
"info": "Info",
|
||||
"insert": "Einf\u00fcgen",
|
||||
"insert.after": "Danach einfügen",
|
||||
"insert.before": "Davor einfügen",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Lizenz",
|
||||
"license.buy": "Kaufe eine Lizenz",
|
||||
"license.register": "Registrieren",
|
||||
"license.manage": "Verwalte deine Lizenzen",
|
||||
"license.register.help": "Den Lizenzcode findest du in der Bestätigungsmail zu deinem Kauf. Bitte kopiere und füge ihn ein, um Kirby zu registrieren.",
|
||||
"license.register.label": "Bitte gib deinen Lizenzcode ein",
|
||||
"license.register.success": "Vielen Dank für deine Unterstützung",
|
||||
"license.unregistered": "Dies ist eine unregistrierte Kirby-Demo",
|
||||
"license.unregistered.label": "Unregistriert",
|
||||
|
||||
"link": "Link",
|
||||
"link.text": "Linktext",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Der Bereich ist Pflicht",
|
||||
|
||||
"security": "Sicherheit",
|
||||
"select": "Auswählen",
|
||||
"server": "Server",
|
||||
"settings": "Einstellungen",
|
||||
"show": "Anzeigen",
|
||||
"site.blueprint": "Du kannst zusätzliche Felder und Bereiche für die Seite in <strong>/site/blueprints/site.yml</strong> anlegen",
|
||||
"size": "Größe",
|
||||
"slug": "URL-Anhang",
|
||||
"sort": "Sortieren",
|
||||
|
||||
"stats.empty": "Keine Daten",
|
||||
"system.issues.content": "Der content Ordner scheint öffentlich zugänglich zu sein",
|
||||
"system.issues.debug": "Debugging muss im öffentlichen Betrieb ausgeschaltet sein",
|
||||
"system.issues.git": "Der .git Ordner scheint öffentlich zugänglich zu sein",
|
||||
"system.issues.https": "Wir empfehlen HTTPS für alle deine Seiten",
|
||||
"system.issues.kirby": "Der kirby Ordner scheint öffentlich zugänglich zu sein",
|
||||
"system.issues.site": "Der site Ordner scheint öffentlich zugänglich zu sein",
|
||||
|
||||
"title": "Titel",
|
||||
"template": "Vorlage",
|
||||
"today": "Heute",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "Du kannst zusätzliche Felder und Bereiche für die Seite in <strong>/site/blueprints/site.yml</strong> anlegen",
|
||||
|
||||
"toolbar.button.code": "Code",
|
||||
"toolbar.button.bold": "Fetter Text",
|
||||
"toolbar.button.email": "E-Mail",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Διεύθυνση ηλεκτρονικού ταχυδρομείου",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Environment",
|
||||
|
||||
"error.access.code": "Mη έγκυρος κωδικός",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Hide",
|
||||
"hour": "Ώρα",
|
||||
"import": "Import",
|
||||
"info": "Info",
|
||||
"insert": "\u0395\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03ae",
|
||||
"insert.after": "Insert after",
|
||||
"insert.before": "Insert before",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "\u0386\u03b4\u03b5\u03b9\u03b1 \u03a7\u03c1\u03ae\u03c3\u03b7\u03c2 \u03c4\u03bf\u03c5 Kirby",
|
||||
"license.buy": "Αγοράστε μια άδεια",
|
||||
"license.register": "Εγγραφή",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Έχετε λάβει τον κωδικό άδειας χρήσης μετά την αγορά μέσω ηλεκτρονικού ταχυδρομείου. Παρακαλώ αντιγράψτε και επικολλήστε τον για να εγγραφείτε.",
|
||||
"license.register.label": "Παρακαλώ εισαγάγετε τον κωδικό άδειας χρήσης",
|
||||
"license.register.success": "Σας ευχαριστούμε για την υποστήριξη του Kirby",
|
||||
"license.unregistered": "Αυτό είναι ένα μη καταχωρημένο demo του Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03bc\u03bf\u03c2",
|
||||
"link.text": "\u039a\u03b5\u03af\u03bc\u03b5\u03bd\u03bf \u03c3\u03c5\u03bd\u03b4\u03ad\u03c3\u03bc\u03bf\u03c5",
|
||||
|
@ -354,7 +360,7 @@
|
|||
"lock.unlock": "Unlock",
|
||||
"lock.isUnlocked": "Your unsaved changes have been overwritten by another user. You can download your changes to merge them manually.",
|
||||
|
||||
"login": "\u03a3\u03cd\u03bd\u03b4\u03b5\u03c3\u03b7",
|
||||
"login": "Σύνδεση",
|
||||
"login.code.label.login": "Login code",
|
||||
"login.code.label.password-reset": "Password reset code",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "The section is required",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Επιλογή",
|
||||
"server": "Server",
|
||||
"settings": "Ρυθμίσεις",
|
||||
"show": "Show",
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Μέγεθος",
|
||||
"slug": "\u0395\u03c0\u03af\u03b8\u03b5\u03bc\u03b1 URL",
|
||||
"sort": "Ταξινόμηση",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Τίτλος",
|
||||
"template": "\u03a0\u03c1\u03cc\u03c4\u03c5\u03c0\u03bf",
|
||||
"today": "Σήμερα",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Κώδικας",
|
||||
"toolbar.button.bold": "\u0388\u03bd\u03c4\u03bf\u03bd\u03b7 \u03b3\u03c1\u03b1\u03c6\u03ae",
|
||||
"toolbar.button.email": "Email",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Email",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Environment",
|
||||
|
||||
"error.access.code": "Invalid code",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Hide",
|
||||
"hour": "Hour",
|
||||
"import": "Import",
|
||||
"info": "Info",
|
||||
"insert": "Insert",
|
||||
"insert.after": "Insert after",
|
||||
"insert.before": "Insert before",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "License",
|
||||
"license.buy": "Buy a license",
|
||||
"license.register": "Register",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "You received your license code after the purchase via email. Please copy and paste it to register.",
|
||||
"license.register.label": "Please enter your license code",
|
||||
"license.register.success": "Thank you for supporting Kirby",
|
||||
"license.unregistered": "This is an unregistered demo of Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Link",
|
||||
"link.text": "Link text",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "The section is required",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Select",
|
||||
"server": "Server",
|
||||
"settings": "Settings",
|
||||
"show": "Show",
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Size",
|
||||
"slug": "URL appendix",
|
||||
"sort": "Sort",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Title",
|
||||
"template": "Template",
|
||||
"today": "Today",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Code",
|
||||
"toolbar.button.bold": "Bold",
|
||||
"toolbar.button.email": "Email",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Retpoŝto",
|
||||
"email.placeholder": "retpoŝto@ekzemplo.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Medio",
|
||||
|
||||
"error.access.code": "Nevalida kodo",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Kaŝi",
|
||||
"hour": "Horo",
|
||||
"import": "Importi",
|
||||
"info": "Info",
|
||||
"insert": "Enmeti",
|
||||
"insert.after": "Enmeti post",
|
||||
"insert.before": "Enmeti antaŭ",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Permisilo",
|
||||
"license.buy": "Aĉeti permisilon",
|
||||
"license.register": "Registriĝi",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Vi ricevis vian kodon de permisilo retpoŝte, post aĉeti ĝin. Bonvolu kopii kaj alglui ĝin por registriĝi.",
|
||||
"license.register.label": "Bonvolu entajpi vian kodon de permisilo",
|
||||
"license.register.success": "Dankon pro subteni Kirby",
|
||||
"license.unregistered": "Ĉi tiu estas neregistrita kopio de Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Ligilo",
|
||||
"link.text": "Ligila teksto",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "La sekcio estas deviga",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Elekti",
|
||||
"server": "Servilo",
|
||||
"settings": "Agordoj",
|
||||
"show": "Montri",
|
||||
"site.blueprint": "La retejo ankoraŭ ne havas planon. Vi povas difini planon ĉe <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Grando",
|
||||
"slug": "URL-nomo",
|
||||
"sort": "Ordigi",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Titolo",
|
||||
"template": "Ŝablono",
|
||||
"today": "Hodiaŭ",
|
||||
|
||||
"server": "Servilo",
|
||||
|
||||
"site.blueprint": "La retejo ankoraŭ ne havas planon. Vi povas difini planon ĉe <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Kodo",
|
||||
"toolbar.button.bold": "Grasa",
|
||||
"toolbar.button.email": "Retpoŝto",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Correo Electrónico",
|
||||
"email.placeholder": "correo@ejemplo.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Ambiente",
|
||||
|
||||
"error.access.code": "Código inválido",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Hide",
|
||||
"hour": "Hora",
|
||||
"import": "Import",
|
||||
"info": "Info",
|
||||
"insert": "Insertar",
|
||||
"insert.after": "Insert after",
|
||||
"insert.before": "Insert before",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Licencia",
|
||||
"license.buy": "Comprar una licencia",
|
||||
"license.register": "Registrar",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Recibió su código de licencia después de la compra por correo electrónico. Por favor copie y pegue para registrarse.",
|
||||
"license.register.label": "Por favor, ingresa tu código de licencia",
|
||||
"license.register.success": "Gracias por apoyar a Kirby",
|
||||
"license.unregistered": "Este es un demo no registrado de Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Enlace",
|
||||
"link.text": "Texto de Enlace",
|
||||
|
@ -354,7 +360,7 @@
|
|||
"lock.unlock": "Desbloquear",
|
||||
"lock.isUnlocked": "Tus cambios sin guardar han sido sobrescritos por otro usuario. Puedes descargar los cambios y fusionarlos manualmente.",
|
||||
|
||||
"login": "Iniciar sesi\u00f3n",
|
||||
"login": "Iniciar sesión",
|
||||
"login.code.label.login": "Login code",
|
||||
"login.code.label.password-reset": "Password reset code",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Esta sección es requerida",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Seleccionar",
|
||||
"server": "Server",
|
||||
"settings": "Ajustes",
|
||||
"show": "Show",
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Tamaño",
|
||||
"slug": "Apéndice URL",
|
||||
"sort": "Ordenar",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Título",
|
||||
"template": "Plantilla",
|
||||
"today": "Hoy",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Código",
|
||||
"toolbar.button.bold": "Negrita",
|
||||
"toolbar.button.email": "Email",
|
||||
|
@ -490,9 +504,9 @@
|
|||
"toolbar.button.heading.1": "Encabezado 1",
|
||||
"toolbar.button.heading.2": "Encabezado 2",
|
||||
"toolbar.button.heading.3": "Encabezado 3",
|
||||
"toolbar.button.heading.4": "Heading 4",
|
||||
"toolbar.button.heading.5": "Heading 5",
|
||||
"toolbar.button.heading.6": "Heading 6",
|
||||
"toolbar.button.heading.4": "Encabezado 4",
|
||||
"toolbar.button.heading.5": "Encabezado 5",
|
||||
"toolbar.button.heading.6": "Encabezado 6",
|
||||
"toolbar.button.italic": "Texto en It\u00e1licas",
|
||||
"toolbar.button.file": "Archivo",
|
||||
"toolbar.button.file.select": "Selecciona un archivo",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Correo electrónico",
|
||||
"email.placeholder": "correo@ejemplo.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Ambiente",
|
||||
|
||||
"error.access.code": "Código inválido",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Hide",
|
||||
"hour": "Hora",
|
||||
"import": "Import",
|
||||
"info": "Info",
|
||||
"insert": "Insertar",
|
||||
"insert.after": "Insert after",
|
||||
"insert.before": "Insert before",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Licencia",
|
||||
"license.buy": "Comprar una licencia",
|
||||
"license.register": "Registro",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Recibió su código de licencia después de la compra por correo electrónico. Por favor copie y pegue para registrarse.",
|
||||
"license.register.label": "Por favor ingrese su código de licencia",
|
||||
"license.register.success": "Gracias por apoyar a Kirby",
|
||||
"license.unregistered": "Esta es una demo no registrada de Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Enlace",
|
||||
"link.text": "Texto del enlace",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Esta sección es requerida",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Seleccionar",
|
||||
"server": "Server",
|
||||
"settings": "Ajustes",
|
||||
"show": "Show",
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Tamaño",
|
||||
"slug": "Apéndice URL",
|
||||
"sort": "Ordenar",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Titulo",
|
||||
"template": "Plantilla",
|
||||
"today": "Hoy",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Código",
|
||||
"toolbar.button.bold": "Negritas",
|
||||
"toolbar.button.email": "Correo electrónico",
|
||||
|
@ -490,9 +504,9 @@
|
|||
"toolbar.button.heading.1": "Encabezado 1",
|
||||
"toolbar.button.heading.2": "Encabezado 2",
|
||||
"toolbar.button.heading.3": "Encabezado 3",
|
||||
"toolbar.button.heading.4": "Heading 4",
|
||||
"toolbar.button.heading.5": "Heading 5",
|
||||
"toolbar.button.heading.6": "Heading 6",
|
||||
"toolbar.button.heading.4": "Encabezado 4",
|
||||
"toolbar.button.heading.5": "Encabezado 5",
|
||||
"toolbar.button.heading.6": "Encabezado 6",
|
||||
"toolbar.button.italic": "Italica",
|
||||
"toolbar.button.file": "Archivo",
|
||||
"toolbar.button.file.select": "Seleccione un archivo",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "\u067e\u0633\u062a \u0627\u0644\u06a9\u062a\u0631\u0648\u0646\u06cc\u06a9",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Environment",
|
||||
|
||||
"error.access.code": "Invalid code",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Hide",
|
||||
"hour": "ساعت",
|
||||
"import": "Import",
|
||||
"info": "Info",
|
||||
"insert": "\u062f\u0631\u062c",
|
||||
"insert.after": "Insert after",
|
||||
"insert.before": "Insert before",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "\u0645\u062c\u0648\u0632",
|
||||
"license.buy": "خرید مجوز",
|
||||
"license.register": "ثبت",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "پس از خرید از طریق ایمیل، کد مجوز خود را دریافت کردید. لطفا برای ثبتنام آن را کپی و اینجا پیست کنید.",
|
||||
"license.register.label": "لطفا کد مجوز خود را وارد کنید",
|
||||
"license.register.success": "با تشکر از شما برای حمایت از کربی",
|
||||
"license.unregistered": "این یک نسخه آزمایشی ثبت نشده از کربی است",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "\u067e\u06cc\u0648\u0646\u062f",
|
||||
"link.text": "\u0645\u062a\u0646 \u067e\u06cc\u0648\u0646\u062f",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "The section is required",
|
||||
|
||||
"security": "Security",
|
||||
"select": "انتخاب",
|
||||
"server": "Server",
|
||||
"settings": "تنظیمات",
|
||||
"show": "Show",
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "اندازه",
|
||||
"slug": "پسوند Url",
|
||||
"sort": "ترتیب",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "عنوان",
|
||||
"template": "\u0642\u0627\u0644\u0628 \u0635\u0641\u062d\u0647",
|
||||
"today": "امروز",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "کد",
|
||||
"toolbar.button.bold": "\u0645\u062a\u0646 \u0628\u0627 \u062d\u0631\u0648\u0641 \u062f\u0631\u0634\u062a",
|
||||
"toolbar.button.email": "\u067e\u0633\u062a \u0627\u0644\u06a9\u062a\u0631\u0648\u0646\u06cc\u06a9",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "S\u00e4hk\u00f6posti",
|
||||
"email.placeholder": "nimi@osoite.fi",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Ympäristö",
|
||||
|
||||
"error.access.code": "Väärä koodi",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Piilota",
|
||||
"hour": "Tunti",
|
||||
"import": "Tuo",
|
||||
"info": "Info",
|
||||
"insert": "Lis\u00e4\u00e4",
|
||||
"insert.after": "Lisää eteen",
|
||||
"insert.before": "Lisää jälkeen",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Lisenssi",
|
||||
"license.buy": "Osta lisenssi",
|
||||
"license.register": "Rekisteröi",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Lisenssiavain on lähetetty oston jälkeen sähköpostiisi. Kopioi ja liitä avain tähän.",
|
||||
"license.register.label": "Anna lisenssiavain",
|
||||
"license.register.success": "Kiitos kun tuet Kirbyä",
|
||||
"license.unregistered": "Tämä on rekisteröimätön demo Kirbystä",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Linkki",
|
||||
"link.text": "Linkin teksti",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Osio on pakollinen",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Valitse",
|
||||
"server": "Palvelin",
|
||||
"settings": "Asetukset",
|
||||
"show": "Näytä",
|
||||
"site.blueprint": "Tällä sivustolla ei ole vielä suunnitelmaa. Voit määrittää suunnitelman tiedostoon <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Koko",
|
||||
"slug": "URL-tunniste",
|
||||
"sort": "Järjestele",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Nimi",
|
||||
"template": "Sivupohja",
|
||||
"today": "Tänään",
|
||||
|
||||
"server": "Palvelin",
|
||||
|
||||
"site.blueprint": "Tällä sivustolla ei ole vielä suunnitelmaa. Voit määrittää suunnitelman tiedostoon <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Koodi",
|
||||
"toolbar.button.bold": "Lihavointi",
|
||||
"toolbar.button.email": "S\u00e4hk\u00f6posti",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"account.changeName": "Modifier votre nom",
|
||||
"account.delete": "Supprimer votre compte",
|
||||
"account.delete.confirm": "Voulez-vous vraiment supprimer votre compte ? Vous serez déconnecté immédiatement. Votre compte ne pourra pas être récupéré.",
|
||||
"account.delete.confirm": "Voulez-vous vraiment supprimer votre compte ? Vous serez déconnecté immédiatement. Votre compte ne pourra pas être récupéré.",
|
||||
|
||||
"add": "Ajouter",
|
||||
"author": "Auteur",
|
||||
|
@ -18,7 +18,7 @@
|
|||
"create": "Créer",
|
||||
|
||||
"date": "Date",
|
||||
"date.select": "Choisissez une date",
|
||||
"date.select": "Choisir une date",
|
||||
|
||||
"day": "Jour",
|
||||
"days.fri": "Ven",
|
||||
|
@ -49,6 +49,9 @@
|
|||
"email": "Courriel",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "Entrées",
|
||||
"entry": "Entrée",
|
||||
|
||||
"environment": "Environnement",
|
||||
|
||||
"error.access.code": "Code incorrect",
|
||||
|
@ -61,7 +64,7 @@
|
|||
"error.avatar.dimensions.invalid": "Veuillez choisir une image de profil de largeur et hauteur inférieures à 3000 pixels",
|
||||
"error.avatar.mime.forbidden": "L'image du profil utilisateur doit être un fichier JPEG ou PNG",
|
||||
|
||||
"error.blueprint.notFound": "Le blueprint « {name} » n’a pu être chargé",
|
||||
"error.blueprint.notFound": "Le blueprint « {name} » n’a pu être chargé",
|
||||
|
||||
"error.blocks.max.plural": "Vous ne devez pas ajouter plus de {max} blocs",
|
||||
"error.blocks.max.singular": "Vous ne devez pas ajouter plus d'un bloc",
|
||||
|
@ -69,29 +72,29 @@
|
|||
"error.blocks.min.singular": "Vous devez ajouter au moins un bloc",
|
||||
"error.blocks.validation": "Il y a une erreur dans le bloc {index}",
|
||||
|
||||
"error.email.preset.notFound": "La configuration de courriel « {name} » n’a pu être trouvé",
|
||||
"error.email.preset.notFound": "La configuration de courriel « {name} » n’a pu être trouvé ",
|
||||
|
||||
"error.field.converter.invalid": "Convertisseur « {converter} » incorrect",
|
||||
"error.field.converter.invalid": "Convertisseur « {converter} » incorrect",
|
||||
|
||||
"error.file.changeName.empty": "Le nom ne peut être vide",
|
||||
"error.file.changeName.permission": "Vous n’êtes pas autorisé à modifier le nom de « {filename} »",
|
||||
"error.file.duplicate": "Un fichier nommé « {filename} » existe déjà",
|
||||
"error.file.extension.forbidden": "L’extension « {extension} » n’est pas autorisée",
|
||||
"error.file.changeName.permission": "Vous n’êtes pas autorisé à modifier le nom de « {filename} »",
|
||||
"error.file.duplicate": "Un fichier nommé « {filename} » existe déjà",
|
||||
"error.file.extension.forbidden": "L’extension « {extension} » n’est pas autorisée",
|
||||
"error.file.extension.invalid": "Extension non valide : {extension}",
|
||||
"error.file.extension.missing": "L’extension pour « {filename} » est manquante",
|
||||
"error.file.extension.missing": "L’extension pour « {filename} » est manquante",
|
||||
"error.file.maxheight": "La hauteur de l'image ne doit pas excéder {height} pixels",
|
||||
"error.file.maxsize": "Le fichier est trop volumineux",
|
||||
"error.file.maxwidth": "La largeur de l'image ne doit pas excéder {width} pixels",
|
||||
"error.file.mime.differs": "Le fichier transféré doit être du même type de média « {mime} »",
|
||||
"error.file.mime.forbidden": "Le type de média « {mime} » n’est pas autorisé",
|
||||
"error.file.mime.differs": "Le fichier transféré doit être du même type de média « {mime} »",
|
||||
"error.file.mime.forbidden": "Le type de média « {mime} » n’est pas autorisé",
|
||||
"error.file.mime.invalid": "Type de média non valide : {mime}",
|
||||
"error.file.mime.missing": "Le type de média de « {filename} » n’a pu être détecté",
|
||||
"error.file.mime.missing": "Le type de média de « {filename} » n’a pu être détecté",
|
||||
"error.file.minheight": "La hauteur de l'image doit être au moins {height} pixels",
|
||||
"error.file.minsize": "Le fichier n'est pas assez volumineux",
|
||||
"error.file.minwidth": "La largeur de l'image doit être au moins {width} pixels",
|
||||
"error.file.name.missing": "Veuillez entrer un titre",
|
||||
"error.file.notFound": "Le fichier « {filename} » n’a pu être trouvé",
|
||||
"error.file.orientation": "L'orientation de l'image doit être \"{orientation}\"",
|
||||
"error.file.notFound": "Le fichier « {filename} » n’a pu être trouvé",
|
||||
"error.file.orientation": "L'orientation de l'image doit être « {orientation} »",
|
||||
"error.file.type.forbidden": "Vous n’êtes pas autorisé à transférer des fichiers {type}",
|
||||
"error.file.type.invalid": "Type de fichier non valide : {type}",
|
||||
"error.file.undefined": "Le fichier n’a pu être trouvé",
|
||||
|
@ -113,43 +116,43 @@
|
|||
|
||||
"error.offline": "Le Panel est actuellement hors ligne",
|
||||
|
||||
"error.page.changeSlug.permission": "Vous n’êtes pas autorisé à modifier l’identifiant d’URL pour « {slug} »",
|
||||
"error.page.changeSlug.permission": "Vous n’êtes pas autorisé à modifier l’identifiant d’URL pour « {slug} »",
|
||||
"error.page.changeStatus.incomplete": "La page comporte des erreurs et ne peut pas être publiée",
|
||||
"error.page.changeStatus.permission": "Le statut de cette page ne peut être modifié",
|
||||
"error.page.changeStatus.toDraft.invalid": "La page « {slug} » ne peut être convertie en brouillon",
|
||||
"error.page.changeTemplate.invalid": "Le modèle de la page « {slug} » ne peut être changé",
|
||||
"error.page.changeTemplate.permission": "Vous n’êtes pas autorisé à changer le modèle de « {slug} »",
|
||||
"error.page.changeStatus.toDraft.invalid": "La page « {slug} » ne peut être convertie en brouillon",
|
||||
"error.page.changeTemplate.invalid": "Le modèle de la page « {slug} » ne peut être changé",
|
||||
"error.page.changeTemplate.permission": "Vous n’êtes pas autorisé à changer le modèle de « {slug} »",
|
||||
"error.page.changeTitle.empty": "Le titre ne peut être vide",
|
||||
"error.page.changeTitle.permission": "Vous n’êtes pas autorisé à modifier le titre de « {slug} »",
|
||||
"error.page.create.permission": "Vous n’êtes pas autorisé à créer « {slug} »",
|
||||
"error.page.delete": "La page « {slug} » ne peut être supprimée",
|
||||
"error.page.changeTitle.permission": "Vous n’êtes pas autorisé à modifier le titre de « {slug} »",
|
||||
"error.page.create.permission": "Vous n’êtes pas autorisé à créer « {slug} »",
|
||||
"error.page.delete": "La page « {slug} » ne peut être supprimée",
|
||||
"error.page.delete.confirm": "Veuillez saisir le titre de la page pour confirmer",
|
||||
"error.page.delete.hasChildren": "La page comporte des sous-pages et ne peut pas être supprimée",
|
||||
"error.page.delete.permission": "Vous n’êtes pas autorisé à supprimer « {slug} »",
|
||||
"error.page.draft.duplicate": "Un brouillon avec l’identifiant d’URL « {slug} » existe déjà",
|
||||
"error.page.duplicate": "Une page avec l’identifiant d’URL « {slug} » existe déjà",
|
||||
"error.page.duplicate.permission": "Vous n'êtes pas autorisé à dupliquer « {slug} »",
|
||||
"error.page.notFound": "La page « {slug} » n’a pu être trouvée",
|
||||
"error.page.delete.permission": "Vous n’êtes pas autorisé à supprimer « {slug} »",
|
||||
"error.page.draft.duplicate": "Un brouillon avec l’identifiant d’URL « {slug} » existe déjà",
|
||||
"error.page.duplicate": "Une page avec l’identifiant d’URL « {slug} » existe déjà",
|
||||
"error.page.duplicate.permission": "Vous n'êtes pas autorisé à dupliquer « {slug} »",
|
||||
"error.page.notFound": "La page « {slug} » n’a pu être trouvée",
|
||||
"error.page.num.invalid": "Veuillez saisir un numéro de position valide. Les numéros ne doivent pas être négatifs.",
|
||||
"error.page.slug.invalid": "Veuillez entrer un identifiant d’URL valide",
|
||||
"error.page.slug.maxlength": "L’identifiant d’URL doit faire moins de \"{length}\" caractères",
|
||||
"error.page.sort.permission": "La page « {slug} » ne peut être réordonnée",
|
||||
"error.page.slug.maxlength": "L’identifiant d’URL doit faire moins de « {length} » caractères",
|
||||
"error.page.sort.permission": "La page « {slug} » ne peut être réordonnée",
|
||||
"error.page.status.invalid": "Veuillez choisir un statut de page valide",
|
||||
"error.page.undefined": "La page n’a pu être trouvée",
|
||||
"error.page.update.permission": "Vous n’êtes pas autorisé à modifier « {slug} »",
|
||||
"error.page.update.permission": "Vous n’êtes pas autorisé à modifier « {slug} »",
|
||||
|
||||
"error.section.files.max.plural": "Vous ne pouvez ajouter plus de {max} fichier(s) à la section « {section} »",
|
||||
"error.section.files.max.singular": "Vous ne pouvez ajouter plus d’un fichier à la section « {section} »",
|
||||
"error.section.files.min.plural": "La section « {section}\" » requiert au moins {min} fichiers",
|
||||
"error.section.files.min.singular": "La section « {section}\" » requiert au moins un fichier",
|
||||
"error.section.files.max.plural": "Vous ne pouvez ajouter plus de {max} fichier(s) à la section « {section} »",
|
||||
"error.section.files.max.singular": "Vous ne pouvez ajouter plus d’un fichier à la section « {section} »",
|
||||
"error.section.files.min.plural": "La section « {section} » requiert au moins {min} fichiers",
|
||||
"error.section.files.min.singular": "La section « {section} » requiert au moins un fichier",
|
||||
|
||||
"error.section.pages.max.plural": "Vous ne pouvez ajouter plus de {max} pages à la section « {section} »",
|
||||
"error.section.pages.max.singular": "Vous ne pouvez ajouter plus d’une page à la section « {section} »",
|
||||
"error.section.pages.min.plural": "La section « {section}\" » requiert au moins {min} pages",
|
||||
"error.section.pages.min.singular": "La section « {section}\" » requiert au moins une page",
|
||||
"error.section.pages.max.plural": "Vous ne pouvez ajouter plus de {max} pages à la section « {section} »",
|
||||
"error.section.pages.max.singular": "Vous ne pouvez ajouter plus d’une page à la section « {section} »",
|
||||
"error.section.pages.min.plural": "La section « {section} » requiert au moins {min} pages",
|
||||
"error.section.pages.min.singular": "La section « {section} » requiert au moins une page",
|
||||
|
||||
"error.section.notLoaded": "La section « {name} » n’a pu être chargée",
|
||||
"error.section.type.invalid": "Le type de section « {type} » est incorrect",
|
||||
"error.section.notLoaded": "La section « {name} » n’a pu être chargée",
|
||||
"error.section.type.invalid": "Le type de section « {type} » est incorrect",
|
||||
|
||||
"error.site.changeTitle.empty": "Le titre ne peut être vide",
|
||||
"error.site.changeTitle.permission": "Vous n’êtes pas autorisé à modifier le titre du site",
|
||||
|
@ -157,46 +160,46 @@
|
|||
|
||||
"error.template.default.notFound": "Le modèle par défaut n’existe pas",
|
||||
|
||||
"error.unexpected": "Une erreur inattendue est survenue ! Activez le mode de débogage pour plus d'informations : https://getkirby.com/docs/reference/system/options/debug",
|
||||
"error.unexpected": "Une erreur inattendue est survenue ! Activez le mode de débogage pour plus d'informations : https://getkirby.com/docs/reference/system/options/debug",
|
||||
|
||||
"error.user.changeEmail.permission": "Vous n’êtes pas autorisé à modifier le courriel de l’utilisateur « {name} »",
|
||||
"error.user.changeLanguage.permission": "Vous n’êtes pas autorisé à changer la langue de l’utilisateur « {name} »",
|
||||
"error.user.changeName.permission": "Vous n’êtes pas autorisé à modifier le nom de l’utilisateur « {name} »",
|
||||
"error.user.changePassword.permission": "Vous n’êtes pas autorisé à changer le mot de passe de l’utilisateur « {name} »",
|
||||
"error.user.changeEmail.permission": "Vous n’êtes pas autorisé à modifier le courriel de l’utilisateur « {name} »",
|
||||
"error.user.changeLanguage.permission": "Vous n’êtes pas autorisé à changer la langue de l’utilisateur « {name} »",
|
||||
"error.user.changeName.permission": "Vous n’êtes pas autorisé à modifier le nom de l’utilisateur « {name} »",
|
||||
"error.user.changePassword.permission": "Vous n’êtes pas autorisé à changer le mot de passe de l’utilisateur « {name} »",
|
||||
"error.user.changeRole.lastAdmin": "Le rôle du dernier administrateur ne peut être modifié",
|
||||
"error.user.changeRole.permission": "Vous n’êtes pas autorisé à changer le rôle de l’utilisateur « {name} »",
|
||||
"error.user.changeRole.permission": "Vous n’êtes pas autorisé à changer le rôle de l’utilisateur « {name} »",
|
||||
"error.user.changeRole.toAdmin": "Vous n’êtes pas autorisé à attribuer le rôle d’administrateur aux utilisateurs",
|
||||
"error.user.create.permission": "Vous n’êtes pas autorisé à créer cet utilisateur",
|
||||
"error.user.delete": "L’utilisateur « {name} » ne peut être supprimé",
|
||||
"error.user.delete": "L’utilisateur « {name} » ne peut être supprimé",
|
||||
"error.user.delete.lastAdmin": "Le dernier administrateur ne peut être supprimé",
|
||||
"error.user.delete.lastUser": "Le dernier utilisateur ne peut être supprimé",
|
||||
"error.user.delete.permission": "Vous n’êtes pas autorisé à supprimer l’utilisateur « {name} »",
|
||||
"error.user.duplicate": "Un utilisateur avec le courriel « {email} » existe déjà",
|
||||
"error.user.delete.permission": "Vous n’êtes pas autorisé à supprimer l’utilisateur « {name} »",
|
||||
"error.user.duplicate": "Un utilisateur avec le courriel « {email} » existe déjà",
|
||||
"error.user.email.invalid": "Veuillez saisir un courriel valide",
|
||||
"error.user.language.invalid": "Veuillez saisir une langue valide",
|
||||
"error.user.notFound": "L’utilisateur « {name} » n’a pu être trouvé",
|
||||
"error.user.notFound": "L’utilisateur « {name} » n’a pu être trouvé",
|
||||
"error.user.password.invalid": "Veuillez saisir un mot de passe valide. Les mots de passe doivent comporter au moins 8 caractères.",
|
||||
"error.user.password.notSame": "Les mots de passe ne sont pas identiques",
|
||||
"error.user.password.undefined": "Cet utilisateur n’a pas de mot de passe",
|
||||
"error.user.password.wrong": "Mot de passe incorrect",
|
||||
"error.user.role.invalid": "Veuillez saisir un rôle valide",
|
||||
"error.user.undefined": "L’utilisateur n’a pu être trouvé",
|
||||
"error.user.update.permission": "Vous n’êtes pas autorisé à modifier l’utilisateur « {name} »",
|
||||
"error.user.update.permission": "Vous n’êtes pas autorisé à modifier l’utilisateur « {name} »",
|
||||
|
||||
"error.validation.accepted": "Veuillez confirmer",
|
||||
"error.validation.alpha": "Veuillez saisir uniquement des caractères alphabétiques minuscules",
|
||||
"error.validation.alphanum": "Veuillez ne saisir que des minuscules de a à z et des chiffres de 0 à 9",
|
||||
"error.validation.between": "Veuillez saisir une valeur entre « {min} » et « {max} »",
|
||||
"error.validation.between": "Veuillez saisir une valeur entre « {min} » et « {max} »",
|
||||
"error.validation.boolean": "Veuillez confirmer ou refuser",
|
||||
"error.validation.contains": "Veuillez saisir une valeur contenant « {needle} »",
|
||||
"error.validation.contains": "Veuillez saisir une valeur contenant « {needle} »",
|
||||
"error.validation.date": "Veuillez saisir une date valide",
|
||||
"error.validation.date.after": "Veuillez saisir une date après {date}",
|
||||
"error.validation.date.before": "Veuillez saisir une date avant {date}",
|
||||
"error.validation.date.between": "Veuillez saisir une date entre {min} et {max}",
|
||||
"error.validation.denied": "Veuillez refuser",
|
||||
"error.validation.different": "La valeur ne doit pas être « {other} »",
|
||||
"error.validation.different": "La valeur ne doit pas être « {other} »",
|
||||
"error.validation.email": "Veuillez saisir un courriel valide",
|
||||
"error.validation.endswith": "La valeur doit se terminer par « {end} »",
|
||||
"error.validation.endswith": "La valeur doit se terminer par « {end} »",
|
||||
"error.validation.filename": "Veuillez saisir un nom de fichier valide",
|
||||
"error.validation.in": "Veuillez saisir l’un des éléments suivants: ({in})",
|
||||
"error.validation.integer": "Veuillez saisir un entier valide",
|
||||
|
@ -210,14 +213,14 @@
|
|||
"error.validation.minlength": "Veuillez saisir une valeur plus longue (min. {min} caractères)",
|
||||
"error.validation.minwords": "Veuillez saisir au moins {min} mot(s)",
|
||||
"error.validation.more": "Veuillez saisir une valeur supérieure à {min}",
|
||||
"error.validation.notcontains": "Veuillez saisir une valeur ne contenant pas « {needle} »",
|
||||
"error.validation.notcontains": "Veuillez saisir une valeur ne contenant pas « {needle} »",
|
||||
"error.validation.notin": "Veuillez ne saisir aucun des éléments suivants: ({notIn})",
|
||||
"error.validation.option": "Veuillez sélectionner une option valide",
|
||||
"error.validation.num": "Veuillez saisir un nombre valide",
|
||||
"error.validation.required": "Veuillez saisir quelque chose",
|
||||
"error.validation.same": "Veuillez saisir « {other} »",
|
||||
"error.validation.size": "La grandeur de la valeur doit être « {size} »",
|
||||
"error.validation.startswith": "La valeur doit commencer par « {start} »",
|
||||
"error.validation.same": "Veuillez saisir « {other} »",
|
||||
"error.validation.size": "La grandeur de la valeur doit être « {size} »",
|
||||
"error.validation.startswith": "La valeur doit commencer par « {start} »",
|
||||
"error.validation.time": "Veuillez saisir une heure valide",
|
||||
"error.validation.time.after": "Veuillez entrer une heure après {time}",
|
||||
"error.validation.time.before": "Veuillez entrer une heure avant {time}",
|
||||
|
@ -232,9 +235,9 @@
|
|||
"field.blocks.code.name": "Code",
|
||||
"field.blocks.code.language": "Langue",
|
||||
"field.blocks.code.placeholder": "Votre code…",
|
||||
"field.blocks.delete.confirm": "Voulez-vous vraiment supprimer ce bloc ?",
|
||||
"field.blocks.delete.confirm.all": "Voulez-vous vraiment supprimer tous les blocs ?",
|
||||
"field.blocks.delete.confirm.selected": "Voulez-vous vraiment supprimer les blocs sélectionnés ?",
|
||||
"field.blocks.delete.confirm": "Voulez-vous vraiment supprimer ce bloc ?",
|
||||
"field.blocks.delete.confirm.all": "Voulez-vous vraiment supprimer tous les blocs ?",
|
||||
"field.blocks.delete.confirm.selected": "Voulez-vous vraiment supprimer les blocs sélectionnés ?",
|
||||
"field.blocks.empty": "Pas encore de blocs",
|
||||
"field.blocks.fieldsets.label": "Veuillez sélectionner un type de bloc…",
|
||||
"field.blocks.fieldsets.paste": "Presser <kbd>{{ shortcut }}</kbd> pour coller/importer des blocks depuis votre presse-papier",
|
||||
|
@ -275,17 +278,17 @@
|
|||
"field.files.empty": "Pas encore de fichier sélectionné",
|
||||
|
||||
"field.layout.delete": "Supprimer cette disposition",
|
||||
"field.layout.delete.confirm": "Voulez-vous vraiment supprimer cette disposition ?",
|
||||
"field.layout.delete.confirm": "Voulez-vous vraiment supprimer cette disposition ?",
|
||||
"field.layout.empty": "Pas encore de rangées",
|
||||
"field.layout.select": "Choisir une disposition",
|
||||
|
||||
"field.pages.empty": "Pas encore de page sélectionnée",
|
||||
"field.structure.delete.confirm": "Voulez-vous vraiment supprimer cette ligne?",
|
||||
"field.structure.delete.confirm": "Voulez-vous vraiment supprimer cette ligne ?",
|
||||
"field.structure.empty": "Pas encore d’entrée",
|
||||
"field.users.empty": "Pas encore d’utilisateur sélectionné",
|
||||
|
||||
"file.blueprint": "Ce fichier n’a pas encore de blueprint. Vous pouvez en définir les paramètres dans <strong>/site/blueprints/files/{blueprint}.yml</strong>",
|
||||
"file.delete.confirm": "Voulez-vous vraiment supprimer <br><strong>{filename}</strong> ?",
|
||||
"file.delete.confirm": "Voulez-vous vraiment supprimer <br><strong>{filename}</strong> ?",
|
||||
"file.sort": "Modifier la position",
|
||||
|
||||
"files": "Fichiers",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Masquer",
|
||||
"hour": "Heure",
|
||||
"import": "Importer",
|
||||
"info": "Info",
|
||||
"insert": "Insérer",
|
||||
"insert.after": "Insérer après",
|
||||
"insert.before": "Insérer avant",
|
||||
|
@ -315,9 +319,9 @@
|
|||
"language": "Langue",
|
||||
"language.code": "Code",
|
||||
"language.convert": "Choisir comme langue par défaut",
|
||||
"language.convert.confirm": "<p>Souhaitez-vous vraiment convertir <strong>{name}</strong> vers la langue par défaut ? Cette action ne peut pas être annulée.</p><p>Si <strong>{name}</strong> a un contenu non traduit, il n’y aura plus de solution de secours possible et certaines parties de votre site pourraient être vides.</p>",
|
||||
"language.convert.confirm": "<p>Souhaitez-vous vraiment convertir <strong>{name}</strong> vers la langue par défaut ? Cette action ne peut pas être annulée.</p><p>Si <strong>{name}</strong> a un contenu non traduit, il n’y aura plus de solution de secours possible et certaines parties de votre site pourraient être vides.</p>",
|
||||
"language.create": "Ajouter une nouvelle langue",
|
||||
"language.delete.confirm": "Voulez-vous vraiment supprimer la langue <strong>{name}</strong>, ainsi que toutes ses traductions ? Cette action ne peut être annulée !",
|
||||
"language.delete.confirm": "Voulez-vous vraiment supprimer la langue <strong>{name}</strong>, ainsi que toutes ses traductions ? Cette action ne peut être annulée !",
|
||||
"language.deleted": "La langue a été supprimée",
|
||||
"language.direction": "Sens de lecture",
|
||||
"language.direction.ltr": "De gauche à droite",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Licence",
|
||||
"license.buy": "Acheter une licence",
|
||||
"license.register": "S’enregistrer",
|
||||
"license.manage": "Gérer vos licences",
|
||||
"license.register.help": "Vous avez reçu votre numéro de licence par courriel après l'achat. Veuillez le copier et le coller ici pour l'enregistrer.",
|
||||
"license.register.label": "Veuillez saisir votre numéro de licence",
|
||||
"license.register.success": "Merci pour votre soutien à Kirby",
|
||||
"license.unregistered": "Ceci est une démo non enregistrée de Kirby",
|
||||
"license.unregistered.label": "Non enregistré",
|
||||
|
||||
"link": "Lien",
|
||||
"link.text": "Texte du lien",
|
||||
|
@ -354,7 +360,7 @@
|
|||
"lock.unlock": "Déverrouiller",
|
||||
"lock.isUnlocked": "Vos modifications non enregistrées ont été écrasées pas un autre utilisateur. Vous pouvez télécharger vos modifications pour les fusionner manuellement.",
|
||||
|
||||
"login": "Se connecter",
|
||||
"login": "Connexion",
|
||||
"login.code.label.login": "Code de connexion",
|
||||
"login.code.label.password-reset": "Code de réinitialisation du mot de passe",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
|
@ -367,7 +373,7 @@
|
|||
"login.reset": "Réinitialiser le mot de passe",
|
||||
"login.toggleText.code.email": "Se connecter par courriel",
|
||||
"login.toggleText.code.email-password": "Se connecter avec un mot de passe",
|
||||
"login.toggleText.password-reset.email": "Mot de passe oublié ?",
|
||||
"login.toggleText.password-reset.email": "Mot de passe oublié ?",
|
||||
"login.toggleText.password-reset.email-password": "← Retour à la connexion",
|
||||
|
||||
"logout": "Se déconnecter",
|
||||
|
@ -414,7 +420,7 @@
|
|||
"page.changeStatus.position": "Veuillez sélectionner une position",
|
||||
"page.changeStatus.select": "Sélectionner un nouveau statut",
|
||||
"page.changeTemplate": "Changer de modèle",
|
||||
"page.delete.confirm": "Voulez-vous vraiment supprimer <strong>{title}</strong> ?",
|
||||
"page.delete.confirm": "Voulez-vous vraiment supprimer <strong>{title}</strong> ?",
|
||||
"page.delete.confirm.subpages": "<strong>Cette page contient des sous-pages</strong>. <br>Toutes les sous-pages seront également supprimées.",
|
||||
"page.delete.confirm.title": "Veuillez saisir le titre de la page pour confirmer",
|
||||
"page.draft.create": "Créer un brouillon",
|
||||
|
@ -450,7 +456,7 @@
|
|||
"replace": "Remplacer",
|
||||
"retry": "Essayer à nouveau",
|
||||
"revert": "Revenir",
|
||||
"revert.confirm": "Voulez-vous vraiment <strong>supprimer toutes les modifications non-enregistrées</strong> ?",
|
||||
"revert.confirm": "Voulez-vous vraiment <strong>supprimer toutes les modifications non-enregistrées</strong> ?",
|
||||
|
||||
"role": "Rôle",
|
||||
"role.admin.description": "L’administrateur dispose de tous les droits",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Cette section est obligatoire",
|
||||
|
||||
"security": "Sécurité",
|
||||
"select": "Sélectionner",
|
||||
"server": "Serveur",
|
||||
"settings": "Paramètres",
|
||||
"show": "Afficher",
|
||||
"site.blueprint": "Ce site n’a pas encore de blueprint. Vous pouvez en définir les paramètres dans <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Poids",
|
||||
"slug": "Identifiant de l’URL",
|
||||
"sort": "Trier",
|
||||
|
||||
"stats.empty": "Aucun rapport",
|
||||
"system.issues.content": "Le dossier content semble exposé",
|
||||
"system.issues.debug": "Le débogage doit être désactivé en production",
|
||||
"system.issues.git": "Le dossier .git semble exposé",
|
||||
"system.issues.https": "Nous recommandons HTTPS pour tous vos sites",
|
||||
"system.issues.kirby": "Le dossier kirby semble exposé",
|
||||
"system.issues.site": "Le dossier site semble exposé",
|
||||
|
||||
"title": "Titre",
|
||||
"template": "Modèle",
|
||||
"today": "Aujourd’hui",
|
||||
|
||||
"server": "Serveur",
|
||||
|
||||
"site.blueprint": "Ce site n’a pas encore de blueprint. Vous pouvez en définir les paramètres dans <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Code",
|
||||
"toolbar.button.bold": "Gras",
|
||||
"toolbar.button.email": "Courriel",
|
||||
|
@ -539,7 +553,7 @@
|
|||
"user.changeRole.select": "Sélectionner un nouveau rôle",
|
||||
"user.create": "Ajouter un nouvel utilisateur",
|
||||
"user.delete": "Supprimer cet utilisateur",
|
||||
"user.delete.confirm": "Voulez-vous vraiment supprimer <br><strong>{email}</strong>?",
|
||||
"user.delete.confirm": "Voulez-vous vraiment supprimer <br><strong>{email}</strong> ?",
|
||||
|
||||
"users": "Utilisateurs",
|
||||
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Email",
|
||||
"email.placeholder": "mail@pelda.hu",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Környezet",
|
||||
|
||||
"error.access.code": "Érvénytelen kód",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Elrejtés",
|
||||
"hour": "Óra",
|
||||
"import": "Importálás",
|
||||
"info": "Info",
|
||||
"insert": "Beilleszt",
|
||||
"insert.after": "Beszúrás mögé",
|
||||
"insert.before": "Beszúrás elé",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Kirby licenc",
|
||||
"license.buy": "Licenc vásárlása",
|
||||
"license.register": "Regisztráció",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "A vásárlás után emailben küldjük el a licenc-kódot. Regisztrációhoz másold ide a kapott kódot.",
|
||||
"license.register.label": "Kérlek írd be a licenc-kódot",
|
||||
"license.register.success": "Köszönjük, hogy támogatod a Kirby-t",
|
||||
"license.unregistered": "Jelenleg a Kirby nem regisztrált próbaverzióját használod",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Link",
|
||||
"link.text": "Link szövege",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Ez a szakasz kötelező",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Kiválasztás",
|
||||
"server": "Szerver",
|
||||
"settings": "Beállítások",
|
||||
"show": "Mutat",
|
||||
"site.blueprint": "Ehhez a weblaphoz még nem tartozik oldalsablon. Itt hozhatod létre: <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Méret",
|
||||
"slug": "URL n\u00e9v",
|
||||
"sort": "Rendezés",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Cím",
|
||||
"template": "Sablon",
|
||||
"today": "Ma",
|
||||
|
||||
"server": "Szerver",
|
||||
|
||||
"site.blueprint": "Ehhez a weblaphoz még nem tartozik oldalsablon. Itt hozhatod létre: <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Kód",
|
||||
"toolbar.button.bold": "F\u00e9lk\u00f6v\u00e9r sz\u00f6veg",
|
||||
"toolbar.button.email": "Email",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Surel",
|
||||
"email.placeholder": "surel@contoh.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Environment",
|
||||
|
||||
"error.access.code": "Kode tidak valid",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Sembunyikan",
|
||||
"hour": "Jam",
|
||||
"import": "Import",
|
||||
"info": "Info",
|
||||
"insert": "Sisipkan",
|
||||
"insert.after": "Sisipkan setelah",
|
||||
"insert.before": "Sisipkan sebelum",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Lisensi Kirby",
|
||||
"license.buy": "Beli lisensi",
|
||||
"license.register": "Daftar",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Anda menerima kode lisensi via surel setelah pembelian. Salin dan tempel kode tersebut untuk mendaftarkan.",
|
||||
"license.register.label": "Masukkan kode lisensi Anda",
|
||||
"license.register.success": "Terima kasih atas dukungan untuk Kirby",
|
||||
"license.unregistered": "Ini adalah demo tidak diregistrasi dari Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Tautan",
|
||||
"link.text": "Teks tautan",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Bagian ini wajib",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Pilih",
|
||||
"server": "Server",
|
||||
"settings": "Pengaturan",
|
||||
"show": "Tampilkan",
|
||||
"site.blueprint": "Situs ini belum memiliki cetak biru. Anda dapat mendefinisikannya di <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Ukuran",
|
||||
"slug": "Akhiran URL",
|
||||
"sort": "Urutkan",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Judul",
|
||||
"template": "Templat",
|
||||
"today": "Hari ini",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "Situs ini belum memiliki cetak biru. Anda dapat mendefinisikannya di <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Kode",
|
||||
"toolbar.button.bold": "Tebal",
|
||||
"toolbar.button.email": "Surel",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Netfang",
|
||||
"email.placeholder": "nafn@netfang.is",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Umhverfi",
|
||||
|
||||
"error.access.code": "Ógildur kóði",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Fela",
|
||||
"hour": "Klukkustund",
|
||||
"import": "Hlaða inn",
|
||||
"info": "Info",
|
||||
"insert": "Setja inn",
|
||||
"insert.after": "Setja eftir",
|
||||
"insert.before": "Setja fyrir",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Leyfi",
|
||||
"license.buy": "Kaupa leyfi",
|
||||
"license.register": "Skr\u00E1 Kirby",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Þú fékkst sendan tölvupóst með leyfiskóðanum þegar þú keyptir leyfi. Vinsamlegast afritaðu hann og settu hann hingað til að skrá þig.",
|
||||
"license.register.label": "Vinsamlegast settu inn leyfiskóðan",
|
||||
"license.register.success": "Þakka þér fyrir að velja Kirby",
|
||||
"license.unregistered": "Þetta er óskráð prufueintak af Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Tengill",
|
||||
"link.text": "Tengilstexti",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Þetta svæði er nauðsynlegt",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Velja",
|
||||
"server": "Vefþjónn",
|
||||
"settings": "Stillingar",
|
||||
"show": "Sýna",
|
||||
"site.blueprint": "Þessi vefur hefur ekki skipan (e. blueprint) ennþá. Þú mátt skilgreina skipanina í <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Stærð",
|
||||
"slug": "Slögg",
|
||||
"sort": "Raða",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Titill",
|
||||
"template": "Sniðmát",
|
||||
"today": "Núna",
|
||||
|
||||
"server": "Vefþjónn",
|
||||
|
||||
"site.blueprint": "Þessi vefur hefur ekki skipan (e. blueprint) ennþá. Þú mátt skilgreina skipanina í <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Kóðasnið",
|
||||
"toolbar.button.bold": "Feitletrun",
|
||||
"toolbar.button.email": "Netfang",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Email",
|
||||
"email.placeholder": "mail@esempio.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Ambiente",
|
||||
|
||||
"error.access.code": "Codice non valido",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Nascondi",
|
||||
"hour": "Ora",
|
||||
"import": "Importa",
|
||||
"info": "Info",
|
||||
"insert": "Inserisci",
|
||||
"insert.after": "Inserisci dopo",
|
||||
"insert.before": "Inserisci prima",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Licenza di Kirby",
|
||||
"license.buy": "Acquista una licenza",
|
||||
"license.register": "Registra",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Hai ricevuto il codice di licenza tramite email dopo l'acquisto. Per favore inseriscilo per registrare Kirby.",
|
||||
"license.register.label": "Inserisci il codice di licenza",
|
||||
"license.register.success": "Ti ringraziamo per aver supportato Kirby",
|
||||
"license.unregistered": "Questa è una versione demo di Kirby non registrata",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Link",
|
||||
"link.text": "Testo del link",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "La sezione è obbligatoria",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Seleziona",
|
||||
"server": "Server",
|
||||
"settings": "Impostazioni",
|
||||
"show": "Mostra",
|
||||
"site.blueprint": "Il sito non ha ancora un \"blueprint\". Puoi impostarne uno in <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Dimensioni",
|
||||
"slug": "URL",
|
||||
"sort": "Ordina",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Titolo",
|
||||
"template": "Template",
|
||||
"today": "Oggi",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "Il sito non ha ancora un \"blueprint\". Puoi impostarne uno in <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Codice",
|
||||
"toolbar.button.bold": "Grassetto",
|
||||
"toolbar.button.email": "Email",
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
"days.tue": "\ud654",
|
||||
"days.wed": "\uc218",
|
||||
|
||||
"debugging": "디버깅",
|
||||
"debugging": "디버그",
|
||||
|
||||
"delete": "\uc0ad\uc81c",
|
||||
"delete.all": "모두 삭제",
|
||||
|
@ -49,6 +49,9 @@
|
|||
"email": "\uc774\uba54\uc77c \uc8fc\uc18c",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "항목",
|
||||
"entry": "항목",
|
||||
|
||||
"environment": "구동 환경",
|
||||
|
||||
"error.access.code": "코드가 올바르지 않습니다.",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "숨기기",
|
||||
"hour": "시",
|
||||
"import": "가져오기",
|
||||
"info": "정보",
|
||||
"insert": "\uc0bd\uc785",
|
||||
"insert.after": "뒤에 삽입",
|
||||
"insert.before": "앞에 삽입",
|
||||
|
@ -302,15 +306,15 @@
|
|||
"installation": "설치",
|
||||
"installation.completed": "패널을 설치했습니다.",
|
||||
"installation.disabled": "패널 설치 관리자는 로컬 서버에서 실행하거나 <code>panel.install</code> 옵션을 설정하세요.",
|
||||
"installation.issues.accounts": "폴더(<code>/site/accounts</code>)에 쓰기 권한이 없습니다.",
|
||||
"installation.issues.content": "폴더(<code>/content</code>)에 쓰기 권한이 없습니다.",
|
||||
"installation.issues.accounts": "<code>/site/accounts</code> 폴더의 쓰기 권한을 확인하세요.",
|
||||
"installation.issues.content": "<code>/content</code> 폴더의 쓰기 권한을 확인하세요.",
|
||||
"installation.issues.curl": "<code>cURL</code> 확장 모듈이 필요합니다.",
|
||||
"installation.issues.headline": "패널을 설치할 수 없습니다.",
|
||||
"installation.issues.mbstring": "<code>MB String</code> 확장 모듈이 필요합니다.",
|
||||
"installation.issues.media": "폴더(<code>/media</code>)에 쓰기 권한이 없습니다.",
|
||||
"installation.issues.media": "<code>/media</code> 폴더의 쓰기 권한을 확인하세요.",
|
||||
"installation.issues.php": "<code>PHP</code> 버전이 7 이상인지 확인하세요.",
|
||||
"installation.issues.server": "Kirby를 실행하려면 <code>Apache</code>, <code>Nginx</code>, 또는 <code>Caddy</code>가 필요합니다.",
|
||||
"installation.issues.sessions": "폴더(<code>/site/sessions</code>)에 쓰기 권한이 없습니다.",
|
||||
"installation.issues.sessions": "<code>/site/sessions</code> 폴더의 쓰기 권한을 확인하세요.",
|
||||
|
||||
"language": "\uc5b8\uc5b4",
|
||||
"language.code": "언어 코드",
|
||||
|
@ -323,7 +327,7 @@
|
|||
"language.direction.ltr": "왼쪽에서 오른쪽",
|
||||
"language.direction.rtl": "오른쪽에서 왼쪽",
|
||||
"language.locale": "PHP 로캘 문자열",
|
||||
"language.locale.warning": "사용자 지정 로캘을 사용 중입니다. 폴더(<code>/site/languages</code>)의 언어 파일을 수정하세요.",
|
||||
"language.locale.warning": "사용자 지정 로캘을 사용 중입니다. <code>/site/languages</code> 폴더의 언어 파일을 수정하세요.",
|
||||
"language.name": "언어명",
|
||||
"language.updated": "언어를 변경했습니다.",
|
||||
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "라이선스",
|
||||
"license.buy": "라이선스 구매",
|
||||
"license.register": "등록",
|
||||
"license.manage": "라이선스 관리",
|
||||
"license.register.help": "Kirby를 등록하려면 이메일로 전송받은 라이선스 코드와 이메일 주소를 입력하세요.",
|
||||
"license.register.label": "라이선스 코드를 입력하세요.",
|
||||
"license.register.success": "Kirby와 함께해주셔서 감사합니다.",
|
||||
"license.unregistered": "Kirby가 등록되지 않았습니다.",
|
||||
"license.unregistered.label": "Kirby가 등록되지 않았습니다.",
|
||||
|
||||
"link": "\uc77c\ubc18 \ub9c1\ud06c",
|
||||
"link.text": "\ubb38\uc790",
|
||||
|
@ -354,7 +360,7 @@
|
|||
"lock.unlock": "잠금 해제",
|
||||
"lock.isUnlocked": "다른 사용자가 이미 내용을 수정했으므로 현재 내용이 올바르게 저장되지 않았습니다. 저장되지 않은 내용은 다운로드해 수동으로 대치할 수 있습니다.",
|
||||
|
||||
"login": "\ub85c\uadf8\uc778",
|
||||
"login": "로그인",
|
||||
"login.code.label.login": "로그인 코드",
|
||||
"login.code.label.password-reset": "암호 초기화 코드",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "섹션이 필요합니다.",
|
||||
|
||||
"security": "보안",
|
||||
"select": "선택",
|
||||
"server": "서버",
|
||||
"settings": "설정",
|
||||
"show": "보기",
|
||||
"site.blueprint": "블루프린트(<strong>/site/blueprints/site.yml</strong>)를 설정하세요.",
|
||||
"size": "크기",
|
||||
"slug": "고유 주소",
|
||||
"sort": "정렬",
|
||||
|
||||
"stats.empty": "관련 기록이 없습니다.",
|
||||
"system.issues.content": "<code>/content</code> 폴더의 권한을 확인하세요.",
|
||||
"system.issues.debug": "공개 서버상에서는 디버그 모드를 해제하세요.",
|
||||
"system.issues.git": "<code>/.git</code> 폴더의 권한을 확인하세요.",
|
||||
"system.issues.https": "HTTPS를 권장합니다.",
|
||||
"system.issues.kirby": "<code>/kirby</code> 폴더의 권한을 확인하세요.",
|
||||
"system.issues.site": "<code>/site</code> 폴더의 권한을 확인하세요.",
|
||||
|
||||
"title": "제목",
|
||||
"template": "\ud15c\ud50c\ub9bf",
|
||||
"today": "오늘",
|
||||
|
||||
"server": "서버",
|
||||
|
||||
"site.blueprint": "블루프린트(<strong>/site/blueprints/site.yml</strong>)를 설정하세요.",
|
||||
|
||||
"toolbar.button.code": "코드",
|
||||
"toolbar.button.bold": "강조",
|
||||
"toolbar.button.email": "이메일 주소",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "El. paštas",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Environment",
|
||||
|
||||
"error.access.code": "Neteisinas kodas",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Paslėpti",
|
||||
"hour": "Valanda",
|
||||
"import": "Importuoti",
|
||||
"info": "Info",
|
||||
"insert": "Įterpti",
|
||||
"insert.after": "Įterpti po",
|
||||
"insert.before": "Įterpti prieš",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Licenzija",
|
||||
"license.buy": "Pirkti licenziją",
|
||||
"license.register": "Registruoti",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Licenzijos kodą gavote el. paštu po apmokėjimo. Prašome įterpti čia, kad sistema būtų užregistruota.",
|
||||
"license.register.label": "Prašome įrašyti jūsų licenzijos kodą",
|
||||
"license.register.success": "Ačiū, kad palaikote Kirby",
|
||||
"license.unregistered": "Tai neregistruota Kirby demo versija",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Nuoroda",
|
||||
"link.text": "Nuorodos tekstas",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Sekcija privaloma",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Pasirinkti",
|
||||
"server": "Server",
|
||||
"settings": "Nustatymai",
|
||||
"show": "Rodyti",
|
||||
"site.blueprint": "Svetainė neturi blueprint. Jūs galite nustatyti jį <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Dydis",
|
||||
"slug": "URL pabaiga",
|
||||
"sort": "Rikiuoti",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Pavadinimas",
|
||||
"template": "Puslapio šablonas",
|
||||
"today": "Šiandien",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "Svetainė neturi blueprint. Jūs galite nustatyti jį <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Kodas",
|
||||
"toolbar.button.bold": "Bold",
|
||||
"toolbar.button.email": "El. paštas",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Epost",
|
||||
"email.placeholder": "epost@eksempel.no",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Miljø",
|
||||
|
||||
"error.access.code": "Ugyldig kode",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Skjul",
|
||||
"hour": "Tid",
|
||||
"import": "Importer",
|
||||
"info": "Info",
|
||||
"insert": "Sett Inn",
|
||||
"insert.after": "Sett inn etter",
|
||||
"insert.before": "Sett inn før",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Kirby lisens",
|
||||
"license.buy": "Kjøp lisens",
|
||||
"license.register": "Registrer",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Du skal ha mottatt din lisenskode for kjøpet via e-post. Vennligst kopier og lim inn denne for å registrere deg.",
|
||||
"license.register.label": "Vennligst skriv inn din lisenskode",
|
||||
"license.register.success": "Takk for at du støtter Kirby",
|
||||
"license.unregistered": "Dette er en uregistrert demo av Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Adresse",
|
||||
"link.text": "Koblingstekst",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Denne seksjonen er påkrevd",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Velg",
|
||||
"server": "Server",
|
||||
"settings": "Innstillinger",
|
||||
"show": "Vis",
|
||||
"site.blueprint": "Denne siden har ikke en blueprint enda. Du kan definere oppsettet i <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Størrelse",
|
||||
"slug": "URL-appendiks",
|
||||
"sort": "Sortere",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Tittel",
|
||||
"template": "Mal",
|
||||
"today": "I dag",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "Denne siden har ikke en blueprint enda. Du kan definere oppsettet i <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Kode",
|
||||
"toolbar.button.bold": "Fet tekst",
|
||||
"toolbar.button.email": "Epost",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "E-mailadres",
|
||||
"email.placeholder": "mail@voorbeeld.nl",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Omgeving",
|
||||
|
||||
"error.access.code": "Ongeldige code",
|
||||
|
@ -157,7 +160,7 @@
|
|||
|
||||
"error.template.default.notFound": "Het standaard template bestaat niet",
|
||||
|
||||
"error.unexpected": "An unexpected error occurred! Enable debug mode for more info: https://getkirby.com/docs/reference/system/options/debug",
|
||||
"error.unexpected": "Een onverwacht fout heeft plaats gevonden! Schakel debug-modus in voor meer informatie: https://getkirby.com/docs/reference/system/options/debug",
|
||||
|
||||
"error.user.changeEmail.permission": "Je hebt geen rechten om het e-mailadres van gebruiker \"{name}\" te wijzigen",
|
||||
"error.user.changeLanguage.permission": "Je hebt geen rechten om de taal voor gebruiker \"{name}\" te wijzigen",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Verberg",
|
||||
"hour": "Uur",
|
||||
"import": "Importeer",
|
||||
"info": "Info",
|
||||
"insert": "Toevoegen",
|
||||
"insert.after": "Voeg toe na",
|
||||
"insert.before": "Voeg toe voor",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Licentie",
|
||||
"license.buy": "Koop een licentie",
|
||||
"license.register": "Registreren",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Je hebt de licentie via e-mail gekregen nadat je de aankoop hebt gedaan. Kopieer en plak de licentie om te registreren. ",
|
||||
"license.register.label": "Vul je licentie in",
|
||||
"license.register.success": "Bedankt dat je Kirby ondersteunt",
|
||||
"license.unregistered": "Dit is een niet geregistreerde demo van Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Link",
|
||||
"link.text": "Linktekst",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "De sectie is verplicht",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Selecteren",
|
||||
"server": "Server",
|
||||
"settings": "Opties",
|
||||
"show": "Toon",
|
||||
"site.blueprint": "Deze website heeft nog geen ontwerp. Je kan het ontwerp hier plaatsen<strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Grootte",
|
||||
"slug": "URL-toevoeging",
|
||||
"sort": "Sorteren",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Titel",
|
||||
"template": "Template",
|
||||
"today": "Vandaag",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "Deze website heeft nog geen ontwerp. Je kan het ontwerp hier plaatsen<strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Code",
|
||||
"toolbar.button.bold": "Dikgedrukte tekst",
|
||||
"toolbar.button.email": "E-mailadres",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Email",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "Wpisy",
|
||||
"entry": "Wpis",
|
||||
|
||||
"environment": "Środowisko",
|
||||
|
||||
"error.access.code": "Nieprawidłowy kod",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Ukryj",
|
||||
"hour": "Godzina",
|
||||
"import": "Importuj",
|
||||
"info": "Informacje",
|
||||
"insert": "Wstaw",
|
||||
"insert.after": "Wstaw po",
|
||||
"insert.before": "Wstaw przed",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Licencja",
|
||||
"license.buy": "Kup licencję",
|
||||
"license.register": "Zarejestruj",
|
||||
"license.manage": "Zarządzaj swoimi licencjami",
|
||||
"license.register.help": "Po zakupieniu licencji otrzymałaś/-eś mailem klucz. Skopiuj go i wklej tutaj, aby dokonać rejestracji.",
|
||||
"license.register.label": "Wprowadź swój kod licencji",
|
||||
"license.register.success": "Dziękujemy za wspieranie Kirby",
|
||||
"license.unregistered": "To jest niezarejestrowana wersja demonstracyjna Kirby",
|
||||
"license.unregistered.label": "Niezarejestrowane",
|
||||
|
||||
"link": "Link",
|
||||
"link.text": "Tekst linku",
|
||||
|
@ -354,7 +360,7 @@
|
|||
"lock.unlock": "Odblokuj",
|
||||
"lock.isUnlocked": "Twoje niezapisane zmiany zostały nadpisane przez innego użytkownika. Możesz pobrać swoje zmiany, by scalić je ręcznie.",
|
||||
|
||||
"login": "Zaloguj",
|
||||
"login": "Zaloguj się",
|
||||
"login.code.label.login": "Kod logowania się",
|
||||
"login.code.label.password-reset": "Kod resetowania hasła",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Sekcja jest wymagana",
|
||||
|
||||
"security": "Bezpieczeństwo",
|
||||
"select": "Wybierz",
|
||||
"server": "Serwer",
|
||||
"settings": "Ustawienia",
|
||||
"show": "Pokaż",
|
||||
"site.blueprint": "Ta strona nie ma jeszcze wzorca. Możesz go zdefiniować w <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Rozmiar",
|
||||
"slug": "Końcówka URL",
|
||||
"sort": "Sortuj",
|
||||
|
||||
"stats.empty": "Brak raportów",
|
||||
"system.issues.content": "Zdaje się, że folder „content” jest wystawiony na publiczny dostęp",
|
||||
"system.issues.debug": "Debugowanie musi być wyłączone w środowisku produkcyjnym",
|
||||
"system.issues.git": "Zdaje się, że folder „.git” jest wystawiony na publiczny dostęp",
|
||||
"system.issues.https": "Zalecamy HTTPS dla wszystkich Twoich witryn",
|
||||
"system.issues.kirby": "Zdaje się, że folder „kirby” jest wystawiony na publiczny dostęp",
|
||||
"system.issues.site": "Zdaje się, że folder „site” jest wystawiony na publiczny dostęp",
|
||||
|
||||
"title": "Tytuł",
|
||||
"template": "Szablon",
|
||||
"today": "Dzisiaj",
|
||||
|
||||
"server": "Serwer",
|
||||
|
||||
"site.blueprint": "Ta strona nie ma jeszcze wzorca. Możesz go zdefiniować w <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Kod",
|
||||
"toolbar.button.bold": "Pogrubienie",
|
||||
"toolbar.button.email": "Email",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Email",
|
||||
"email.placeholder": "mail@exemplo.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Ambiente",
|
||||
|
||||
"error.access.code": "Código inválido",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Ocultar",
|
||||
"hour": "Hora",
|
||||
"import": "Importar",
|
||||
"info": "Info",
|
||||
"insert": "Inserir",
|
||||
"insert.after": "Inserir após",
|
||||
"insert.before": "Inserir antes",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Licen\u00e7a do Kirby ",
|
||||
"license.buy": "Comprar licença",
|
||||
"license.register": "Registrar",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Você recebeu o código da sua licença por email ao efetuar sua compra. Por favor, copie e cole o código para completar seu registro.",
|
||||
"license.register.label": "Por favor, digite o código da sua licença",
|
||||
"license.register.success": "Obrigado por apoiar o Kirby",
|
||||
"license.unregistered": "Esta é uma cópia de demonstração não registrada do Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Link",
|
||||
"link.text": "Texto do link",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Esta seção é obrigatória",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Selecionar",
|
||||
"server": "Servidor",
|
||||
"settings": "Configurações",
|
||||
"show": "Mostrar",
|
||||
"site.blueprint": "Este site não tem planta. Você pode definir sua planta em <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Tamanho",
|
||||
"slug": "Anexo de URL",
|
||||
"sort": "Ordenar",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Título",
|
||||
"template": "Tema",
|
||||
"today": "Hoje",
|
||||
|
||||
"server": "Servidor",
|
||||
|
||||
"site.blueprint": "Este site não tem planta. Você pode definir sua planta em <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Código",
|
||||
"toolbar.button.bold": "Negrito",
|
||||
"toolbar.button.email": "Email",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Email",
|
||||
"email.placeholder": "mail@exemplo.pt",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Ambiente",
|
||||
|
||||
"error.access.code": "Código inválido",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Ocultar",
|
||||
"hour": "Hora",
|
||||
"import": "Importar",
|
||||
"info": "Info",
|
||||
"insert": "Inserir",
|
||||
"insert.after": "Inserir após",
|
||||
"insert.before": "Inserir antes",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Licen\u00e7a do Kirby ",
|
||||
"license.buy": "Comprar uma licença",
|
||||
"license.register": "Registrar",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Recebeu o código da sua licença por email após a compra. Por favor, copie e cole-o para completar o registro.",
|
||||
"license.register.label": "Por favor, digite o código da sua licença",
|
||||
"license.register.success": "Obrigado por apoiar o Kirby",
|
||||
"license.unregistered": "Esta é uma demonstração não registrada do Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Link",
|
||||
"link.text": "Texto do link",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Esta seção é necessária",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Selecionar",
|
||||
"server": "Servidor",
|
||||
"settings": "Configurações",
|
||||
"show": "Mostrar",
|
||||
"site.blueprint": "Este site não tem planta. Você pode definir sua planta em <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Tamanho",
|
||||
"slug": "URL",
|
||||
"sort": "Ordenar",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Título",
|
||||
"template": "Tema",
|
||||
"today": "Hoje",
|
||||
|
||||
"server": "Servidor",
|
||||
|
||||
"site.blueprint": "Este site não tem planta. Você pode definir sua planta em <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Código",
|
||||
"toolbar.button.bold": "Negrito",
|
||||
"toolbar.button.email": "Email",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "Email",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "Записи",
|
||||
"entry": "Запись",
|
||||
|
||||
"environment": "Среда",
|
||||
|
||||
"error.access.code": "Неверный код",
|
||||
|
@ -174,7 +177,7 @@
|
|||
"error.user.duplicate": "Пользователь с Email \"{email}\" уже есть",
|
||||
"error.user.email.invalid": "Пожалуйста, введите правильный адрес эл. почты",
|
||||
"error.user.language.invalid": "Введите правильный язык",
|
||||
"error.user.notFound": "\u0410\u043a\u043a\u0430\u0443\u043d\u0442 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d",
|
||||
"error.user.notFound": "Пользователь \"{name}\" не найден",
|
||||
"error.user.password.invalid": "Пожалуйста, введите правильный пароль. Он должен состоять минимум из 8 символов.",
|
||||
"error.user.password.notSame": "\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c",
|
||||
"error.user.password.undefined": "У пользователя нет пароля",
|
||||
|
@ -235,11 +238,11 @@
|
|||
"field.blocks.delete.confirm": "Вы действительно хотите удалить этот блок?",
|
||||
"field.blocks.delete.confirm.all": "Вы действительно хотите удалить все блоки?",
|
||||
"field.blocks.delete.confirm.selected": "Вы действительно хотите удалить эти блоки?",
|
||||
"field.blocks.empty": "Еще нет блоков",
|
||||
"field.blocks.empty": "Блоков нет",
|
||||
"field.blocks.fieldsets.label": "Пожалуйста, выберите тип блока…",
|
||||
"field.blocks.fieldsets.paste": "Нажмите <kbd>{{ shortcut }}</kbd> чтобы вставить/импортировать блоки из буфера памяти",
|
||||
"field.blocks.gallery.name": "Галерея",
|
||||
"field.blocks.gallery.images.empty": "Еще нет изображений",
|
||||
"field.blocks.gallery.images.empty": "Изображений нет",
|
||||
"field.blocks.gallery.images.label": "Изображения",
|
||||
"field.blocks.heading.level": "Уровень",
|
||||
"field.blocks.heading.name": "Заголовок",
|
||||
|
@ -272,17 +275,17 @@
|
|||
"field.blocks.video.url.label": "Ссылка на видео",
|
||||
"field.blocks.video.url.placeholder": "https://youtube.com/?v=",
|
||||
|
||||
"field.files.empty": "Еще не выбраны файлы",
|
||||
"field.files.empty": "Файлы не выбраны",
|
||||
|
||||
"field.layout.delete": "Удалить разметку",
|
||||
"field.layout.delete.confirm": "Вы действительно хотите удалить эту разметку?",
|
||||
"field.layout.empty": "Еще нет строк",
|
||||
"field.layout.empty": "Строк нет",
|
||||
"field.layout.select": "Выберите разметку",
|
||||
|
||||
"field.pages.empty": "Еще не выбраны страницы",
|
||||
"field.pages.empty": "Страницы не выбраны",
|
||||
"field.structure.delete.confirm": "Вы точно хотите удалить эту запись?",
|
||||
"field.structure.empty": "Еще нет записей",
|
||||
"field.users.empty": "Еще нет пользователей",
|
||||
"field.structure.empty": "Записей нет",
|
||||
"field.users.empty": "Пользователей нет",
|
||||
|
||||
"file.blueprint": "У файла пока нет разметки. Вы можете определить новые секции и поля разметки в <strong>/site/blueprints/files/{blueprint}.yml</strong>",
|
||||
"file.delete.confirm": "Вы точно хотите удалить файл <br><strong>{filename}</strong>?",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Скрыть",
|
||||
"hour": "Час",
|
||||
"import": "Импортировать",
|
||||
"info": "Информация",
|
||||
"insert": "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c",
|
||||
"insert.after": "Вставить ниже",
|
||||
"insert.before": "Вставить выше",
|
||||
|
@ -329,17 +333,19 @@
|
|||
|
||||
"languages": "Языки",
|
||||
"languages.default": "Главный язык",
|
||||
"languages.empty": "Еще нет языков",
|
||||
"languages.empty": "Языков нет",
|
||||
"languages.secondary": "Дополнительные языки",
|
||||
"languages.secondary.empty": "Еще нет дополнительных языков",
|
||||
"languages.secondary.empty": "Дополнительных языков нет",
|
||||
|
||||
"license": "Лицензия",
|
||||
"license.buy": "Купить лицензию",
|
||||
"license.register": "Зарегистрировать",
|
||||
"license.manage": "Управление лицензиями",
|
||||
"license.register.help": "После покупки вы получили по эл. почте код лицензии. Пожалуйста скопируйте и вставьте сюда чтобы зарегистрировать.",
|
||||
"license.register.label": "Пожалуйста вставьте код лицензии",
|
||||
"license.register.success": "Спасибо за поддержку Kirby",
|
||||
"license.unregistered": "Это незарегистрированная версия Kirby",
|
||||
"license.unregistered.label": "Не зарегистрировано",
|
||||
|
||||
"link": "\u0421\u0441\u044b\u043b\u043a\u0430",
|
||||
"link.text": "\u0422\u0435\u043a\u0441\u0442 \u0441\u0441\u044b\u043b\u043a\u0438",
|
||||
|
@ -347,7 +353,7 @@
|
|||
"loading": "Загрузка",
|
||||
|
||||
"lock.unsaved": "Несохраненные изменения",
|
||||
"lock.unsaved.empty": "Больше нет несохраненных изменений",
|
||||
"lock.unsaved.empty": "Несохраненных изменений больше нет",
|
||||
"lock.isLocked": "Несохраненные изменения пользователя <strong>{email}</strong>",
|
||||
"lock.file.isLocked": "В данный момент этот файл редактирует {email}, поэтому его нельзя изменить.",
|
||||
"lock.page.isLocked": "В данный момент эту страницу редактирует {email}, поэтому его нельзя изменить.",
|
||||
|
@ -359,9 +365,9 @@
|
|||
"login.code.label.password-reset": "Код для сброса пароля",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
"login.code.text.email": "Если ваш Email уже зарегистрирован, запрашиваемый код был отправлен на него.",
|
||||
"login.email.login.body": "Привет, {user.nameOrEmail}!\n\nНедавно вы запросили код для входа в Панель управления {site}.\nСледующий код входа будет действителен в течение {timeout} минут:\n\n{code}\n\nЕсли вы не запрашивали код для входа, проигнорируйте это письмо или обратитесь к администратору, если у вас есть вопросы.\nВ целях безопасности НЕ ПЕРЕСЫЛАЙТЕ это письмо.",
|
||||
"login.email.login.body": "Привет, {user.nameOrEmail}!\n\nНедавно вы запросили код для входа на «{site}».\nСледующий код входа будет действителен в течение {timeout} минут:\n\n{code}\n\nЕсли вы не запрашивали код для входа, проигнорируйте это письмо или обратитесь к администратору, если у вас есть вопросы.\nВ целях безопасности НЕ ПЕРЕСЫЛАЙТЕ это письмо.",
|
||||
"login.email.login.subject": "Ваш код для входа",
|
||||
"login.email.password-reset.body": "Привет, {user.nameOrEmail}!\n\nНедавно вы запросили сброс пароля для входа в Панель управления {site}.\nСледующий код входа будет действителен в течение {timeout} минут:\n\n{code}\n\nЕсли вы не запрашивали сброс пароля, проигнорируйте это письмо или обратитесь к администратору, если у вас есть вопросы.\nВ целях безопасности НЕ ПЕРЕСЫЛАЙТЕ это письмо.",
|
||||
"login.email.password-reset.body": "Привет, {user.nameOrEmail}!\n\nНедавно вы запросили сброс пароля для входа на «{site}».\nСледующий код входа будет действителен в течение {timeout} минут:\n\n{code}\n\nЕсли вы не запрашивали сброс пароля, проигнорируйте это письмо или обратитесь к администратору, если у вас есть вопросы.\nВ целях безопасности НЕ ПЕРЕСЫЛАЙТЕ это письмо.",
|
||||
"login.email.password-reset.subject": "Ваш код для сброса пароля",
|
||||
"login.remember": "Сохранять вход активным",
|
||||
"login.reset": "Сбросить пароль",
|
||||
|
@ -400,7 +406,7 @@
|
|||
"open": "Открыть",
|
||||
"open.newWindow": "Открывать в новом окне",
|
||||
"options": "Опции",
|
||||
"options.none": "Нет параметров",
|
||||
"options.none": "Параметров нет",
|
||||
|
||||
"orientation": "Ориентация",
|
||||
"orientation.landscape": "Горизонтальная",
|
||||
|
@ -418,7 +424,7 @@
|
|||
"page.delete.confirm.subpages": "<strong>У этой страницы есть внутренние страницы</strong>.<br>Все внутренние страницы так же будут удалены.",
|
||||
"page.delete.confirm.title": "Напишите название страницы, чтобы подтвердить",
|
||||
"page.draft.create": "Создать черновик",
|
||||
"page.duplicate.appendix": "Скопировать",
|
||||
"page.duplicate.appendix": "(копия)",
|
||||
"page.duplicate.files": "Копировать файлы",
|
||||
"page.duplicate.pages": "Копировать страницы",
|
||||
"page.sort": "Изменить позицию",
|
||||
|
@ -431,7 +437,7 @@
|
|||
"page.status.unlisted.description": "Страница доступна только по URL",
|
||||
|
||||
"pages": "Страницы",
|
||||
"pages.empty": "Еще нет страниц",
|
||||
"pages.empty": "Страниц нет",
|
||||
"pages.status.draft": "Черновики",
|
||||
"pages.status.listed": "Опубликовано",
|
||||
"pages.status.unlisted": "Скрытая",
|
||||
|
@ -456,7 +462,7 @@
|
|||
"role.admin.description": "Администратор имеет все права",
|
||||
"role.admin.title": "Администратор",
|
||||
"role.all": "Все",
|
||||
"role.empty": "Нет пользователей с такой ролью",
|
||||
"role.empty": "Пользователей с такой ролью нет",
|
||||
"role.description.placeholder": "Без описания",
|
||||
"role.nobody.description": "Эта роль применяется если у пользователя нет никаких прав",
|
||||
"role.nobody.title": "Никто",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Секция обязательна",
|
||||
|
||||
"security": "Безопасность",
|
||||
"select": "Выбрать",
|
||||
"server": "Сервер",
|
||||
"settings": "Настройка",
|
||||
"show": "Показать",
|
||||
"site.blueprint": "У сайта пока нет разметки. Вы можете определить новые секции и поля разметки в <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Размер",
|
||||
"slug": "Понятная ссылка",
|
||||
"sort": "Сортировать",
|
||||
|
||||
"stats.empty": "Статистики нет",
|
||||
"system.issues.content": "Похоже, к папке content есть несанкционированный доступ",
|
||||
"system.issues.debug": "Включен режим отладки (debugging). Используйте его только при разработке.",
|
||||
"system.issues.git": "Похоже, к папке .git есть несанкционированный доступ",
|
||||
"system.issues.https": "Рекомендуется использовать HTTPS на всех сайтах",
|
||||
"system.issues.kirby": "Похоже, к папке kirby есть несанкционированный доступ",
|
||||
"system.issues.site": "Похоже, к папке site есть несанкционированный доступ",
|
||||
|
||||
"title": "Название",
|
||||
"template": "\u0428\u0430\u0431\u043b\u043e\u043d",
|
||||
"today": "Сегодня",
|
||||
|
||||
"server": "Сервер",
|
||||
|
||||
"site.blueprint": "У сайта пока нет разметки. Вы можете определить новые секции и поля разметки в <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Код",
|
||||
"toolbar.button.bold": "\u0416\u0438\u0440\u043d\u044b\u0439 \u0448\u0440\u0438\u0444\u0442",
|
||||
"toolbar.button.email": "Email",
|
||||
|
@ -510,9 +524,9 @@
|
|||
"translation.locale": "ru_RU",
|
||||
|
||||
"upload": "Закачать",
|
||||
"upload.error.cantMove": "Загруженный файл не может быть перемещен",
|
||||
"upload.error.cantMove": "Не удается переместить загруженный файл",
|
||||
"upload.error.cantWrite": "Не получилось записать файл на диск",
|
||||
"upload.error.default": "Не получилось загрузить файл",
|
||||
"upload.error.default": "Не удалось загрузить файл",
|
||||
"upload.error.extension": "Загрузка файла не удалась из за расширения",
|
||||
"upload.error.formSize": "Загруженный файл больше чем MAX_FILE_SIZE настройка в форме",
|
||||
"upload.error.iniPostSize": "Загружаемый файл больше чем post_max_size настройка в php.ini",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "E-mail",
|
||||
"email.placeholder": "mail@example.com",
|
||||
|
||||
"entries": "Entries",
|
||||
"entry": "Entry",
|
||||
|
||||
"environment": "Environment",
|
||||
|
||||
"error.access.code": "Neplatný kód",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Hide",
|
||||
"hour": "Hodina",
|
||||
"import": "Import",
|
||||
"info": "Info",
|
||||
"insert": "Vložiť",
|
||||
"insert.after": "Insert after",
|
||||
"insert.before": "Insert before",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Licencia",
|
||||
"license.buy": "Zakúpiť licenciu",
|
||||
"license.register": "Registrovať",
|
||||
"license.manage": "Manage your licenses",
|
||||
"license.register.help": "Licenčný kód vám bol doručený e-mailom po úspešnom nákupe. Prosím, skopírujte a prilepte ho na uskutočnenie registrácie.",
|
||||
"license.register.label": "Prosím, zadajte váš licenčný kód",
|
||||
"license.register.success": "Ďakujeme za vašu podporu Kirby",
|
||||
"license.unregistered": "Toto je neregistrované demo Kirby",
|
||||
"license.unregistered.label": "Unregistered",
|
||||
|
||||
"link": "Odkaz",
|
||||
"link.text": "Text odkazu",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "The section is required",
|
||||
|
||||
"security": "Security",
|
||||
"select": "Zvoliť",
|
||||
"server": "Server",
|
||||
"settings": "Nastavenia",
|
||||
"show": "Show",
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Veľkosť",
|
||||
"slug": "URL appendix",
|
||||
"sort": "Zoradiť",
|
||||
|
||||
"stats.empty": "No reports",
|
||||
"system.issues.content": "The content folder seems to be exposed",
|
||||
"system.issues.debug": "Debugging must be turned off in production",
|
||||
"system.issues.git": "The .git folder seems to be exposed",
|
||||
"system.issues.https": "We recommend HTTPS for all your sites",
|
||||
"system.issues.kirby": "The kirby folder seems to be exposed",
|
||||
"system.issues.site": "The site folder seems to be exposed",
|
||||
|
||||
"title": "Titulok",
|
||||
"template": "Šablóna",
|
||||
"today": "Dnes",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "The site has no blueprint yet. You can define the setup in <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Kód",
|
||||
"toolbar.button.bold": "Tučný",
|
||||
"toolbar.button.email": "E-mail",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "E-postadress",
|
||||
"email.placeholder": "namn@exempel.se",
|
||||
|
||||
"entries": "Poster",
|
||||
"entry": "Post",
|
||||
|
||||
"environment": "Miljö",
|
||||
|
||||
"error.access.code": "Ogiltig kod",
|
||||
|
@ -157,7 +160,7 @@
|
|||
|
||||
"error.template.default.notFound": "Standardmallen existerar inte",
|
||||
|
||||
"error.unexpected": "An unexpected error occurred! Enable debug mode for more info: https://getkirby.com/docs/reference/system/options/debug",
|
||||
"error.unexpected": "Ett oväntat fel uppstod! Aktivera felsökningsläge för mer information: https://getkirby.com/docs/reference/system/options/debug",
|
||||
|
||||
"error.user.changeEmail.permission": "Du har inte behörighet att ändra e-postadressen för användaren \"{name}\"",
|
||||
"error.user.changeLanguage.permission": "Du har inte behörighet att ändra språket för användaren \"{name}\"",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Göm",
|
||||
"hour": "Timme",
|
||||
"import": "Importera",
|
||||
"info": "Info",
|
||||
"insert": "Infoga",
|
||||
"insert.after": "Infoga efter",
|
||||
"insert.before": "Infoga före",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Licens",
|
||||
"license.buy": "Köp en licens",
|
||||
"license.register": "Registrera",
|
||||
"license.manage": "Hantera dina licenser",
|
||||
"license.register.help": "Du fick din licenskod via e-post efter inköpet. Kopiera och klistra in den för att registrera licensen.",
|
||||
"license.register.label": "Ange din licenskod",
|
||||
"license.register.success": "Tack för att du stödjer Kirby",
|
||||
"license.unregistered": "Detta är en oregistrerad demo av Kirby",
|
||||
"license.unregistered.label": "Oregistrerad",
|
||||
|
||||
"link": "L\u00e4nk",
|
||||
"link.text": "L\u00e4nktext",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Sektionen krävs",
|
||||
|
||||
"security": "Säkerhet",
|
||||
"select": "Välj",
|
||||
"server": "Server",
|
||||
"settings": "Inställningar",
|
||||
"show": "Visa",
|
||||
"site.blueprint": "Webbplatsen har ingen blueprint än. Du kan skapa en i <strong>/site/blueprints/site.yml</strong>",
|
||||
"size": "Storlek",
|
||||
"slug": "URL-appendix",
|
||||
"sort": "Sortera",
|
||||
|
||||
"stats.empty": "Inga rapporter",
|
||||
"system.issues.content": "Mappen content verkar vara exponerad",
|
||||
"system.issues.debug": "Felsökningsläget måste vara avstängt i produktion",
|
||||
"system.issues.git": "Mappen .git verkar vara exponerad",
|
||||
"system.issues.https": "Vi rekommenderar HTTPS för alla dina webbplatser",
|
||||
"system.issues.kirby": "Mappen kirby verkar vara exponerad",
|
||||
"system.issues.site": "Mappen site verkar vara exponerad",
|
||||
|
||||
"title": "Titel",
|
||||
"template": "Mall",
|
||||
"today": "Idag",
|
||||
|
||||
"server": "Server",
|
||||
|
||||
"site.blueprint": "Webbplatsen har ingen blueprint än. Du kan skapa en i <strong>/site/blueprints/site.yml</strong>",
|
||||
|
||||
"toolbar.button.code": "Kod",
|
||||
"toolbar.button.bold": "Fet",
|
||||
"toolbar.button.email": "E-post",
|
||||
|
|
|
@ -49,6 +49,9 @@
|
|||
"email": "E-Posta",
|
||||
"email.placeholder": "eposta@ornek.com",
|
||||
|
||||
"entries": "Girdiler",
|
||||
"entry": "Girdi",
|
||||
|
||||
"environment": "Ortam",
|
||||
|
||||
"error.access.code": "Geçersiz kod",
|
||||
|
@ -294,6 +297,7 @@
|
|||
"hide": "Gizle",
|
||||
"hour": "Saat",
|
||||
"import": "İçe aktar",
|
||||
"info": "Bilgi",
|
||||
"insert": "Ekle",
|
||||
"insert.after": "Sonrasına ekle",
|
||||
"insert.before": "Öncesine ekle",
|
||||
|
@ -336,10 +340,12 @@
|
|||
"license": "Lisans",
|
||||
"license.buy": "Bir lisans satın al",
|
||||
"license.register": "Kayıt Ol",
|
||||
"license.manage": "Lisanslarınızı yönetin",
|
||||
"license.register.help": "Satın alma işleminden sonra e-posta yoluyla lisans kodunuzu aldınız. Lütfen kayıt olmak için kodu kopyalayıp yapıştırın.",
|
||||
"license.register.label": "Lütfen lisans kodunu giriniz",
|
||||
"license.register.success": "Kirby'yi desteklediğiniz için teşekkürler",
|
||||
"license.unregistered": "Bu Kirby'nin kayıtsız bir demosu",
|
||||
"license.unregistered.label": "Kayıtsız",
|
||||
|
||||
"link": "Ba\u011flant\u0131",
|
||||
"link.text": "Ba\u011flant\u0131 yaz\u0131s\u0131",
|
||||
|
@ -354,7 +360,7 @@
|
|||
"lock.unlock": "Kilidi Aç",
|
||||
"lock.isUnlocked": "Kaydedilmemiş değişikliklerin üzerine başka bir kullanıcı yazmış. Değişikliklerinizi el ile birleştirmek için değişikliklerinizi indirebilirsiniz.",
|
||||
|
||||
"login": "Giri\u015f",
|
||||
"login": "Giriş",
|
||||
"login.code.label.login": "Giriş kodu",
|
||||
"login.code.label.password-reset": "Şifre sıfırlama kodu",
|
||||
"login.code.placeholder.email": "000 000",
|
||||
|
@ -469,20 +475,28 @@
|
|||
|
||||
"section.required": "Bölüm gereklidir",
|
||||
|
||||
"security": "Güvenlik",
|
||||
"select": "Seç",
|
||||
"server": "Sunucu",
|
||||
"settings": "Ayarlar",
|
||||
"show": "Göster",
|
||||
"site.blueprint": "Sitenin henüz bir planı yok. Kurulumu <strong>/site/blueprints/site.yml</strong>'de tanımlayabilirsiniz.",
|
||||
"size": "Boyut",
|
||||
"slug": "Web Adres Uzantısı",
|
||||
"sort": "Sırala",
|
||||
|
||||
"stats.empty": "Rapor yok",
|
||||
"system.issues.content": "İçerik klasörü açığa çıkmış görünüyor",
|
||||
"system.issues.debug": "Canlı modda hata ayıklama kapatılmalıdır",
|
||||
"system.issues.git": ".git klasörü açığa çıkmış görünüyor",
|
||||
"system.issues.https": "Tüm siteleriniz için HTTPS'yi öneriyoruz",
|
||||
"system.issues.kirby": "Kirby klasörü açığa çıkmış görünüyor",
|
||||
"system.issues.site": "Site klasörü açığa çıkmış görünüyor",
|
||||
|
||||
"title": "Başlık",
|
||||
"template": "\u015eablon",
|
||||
"today": "Bugün",
|
||||
|
||||
"server": "Sunucu",
|
||||
|
||||
"site.blueprint": "Sitenin henüz bir planı yok. Kurulumu <strong>/site/blueprints/site.yml</strong>'de tanımlayabilirsiniz.",
|
||||
|
||||
"toolbar.button.code": "Kod",
|
||||
"toolbar.button.bold": "Kalın Yazı",
|
||||
"toolbar.button.email": "E-Posta",
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
module.exports = {
|
||||
extends: [
|
||||
"eslint:recommended",
|
||||
"plugin:cypress/recommended",
|
||||
"plugin:vue/recommended",
|
||||
"prettier"
|
||||
],
|
||||
rules: {
|
||||
"vue/attributes-order": "error",
|
||||
"vue/component-definition-name-casing": "off",
|
||||
"vue/html-closing-bracket-newline": [
|
||||
"error",
|
||||
{
|
||||
singleline: "never",
|
||||
multiline: "always"
|
||||
}
|
||||
],
|
||||
"vue/multi-word-component-names": "off",
|
||||
"vue/require-default-prop": "off",
|
||||
"vue/require-prop-types": "error"
|
||||
}
|
||||
};
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"trailingComma": "none"
|
||||
}
|
11
kirby/panel/cypress.config.js
Normal file
11
kirby/panel/cypress.config.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
const { defineConfig } = require("cypress");
|
||||
|
||||
module.exports = defineConfig({
|
||||
video: false,
|
||||
|
||||
e2e: {
|
||||
baseUrl: "http://sandbox.test",
|
||||
specPattern: "src/**/*.e2e.js",
|
||||
supportFile: false
|
||||
}
|
||||
});
|
2
kirby/panel/dist/css/style.css
vendored
2
kirby/panel/dist/css/style.css
vendored
File diff suppressed because one or more lines are too long
117
kirby/panel/dist/img/icons.svg
vendored
Executable file → Normal file
117
kirby/panel/dist/img/icons.svg
vendored
Executable file → Normal file
|
@ -24,12 +24,18 @@
|
|||
<symbol id="icon-angle-up" viewBox="0 0 16 16">
|
||||
<path d="M12 11.4l-4-4-4 4L2.6 10 8 4.6l5.4 5.4z" />
|
||||
</symbol>
|
||||
<symbol id="icon-archive" viewBox="0 0 16 16">
|
||||
<path d="M15.977 4.887a.975.975 0 0 0-.04-.2.909.909 0 0 0-.089-.186 1.048 1.048 0 0 0-.048-.1l-3-4A1 1 0 0 0 12 0H4a1 1 0 0 0-.8.4l-3 4a1.048 1.048 0 0 0-.048.1.892.892 0 0 0-.089.187.957.957 0 0 0-.04.2A.885.885 0 0 0 0 5v9a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V5a.87.87 0 0 0-.023-.113ZM8 13.5 5 10h2V7h2v3h2ZM3 4l1.5-2h7L13 4Z" />
|
||||
</symbol>
|
||||
<symbol id="icon-attachment" viewBox="0 0 16 16">
|
||||
<path d="M5,5v4c0,1.7,1.3,3,3,3s3-1.3,3-3V4.5C11,2,9,0,6.5,0S2,2,2,4.5V10c0,3.3,2.7,6,6,6s6-2.7,6-6V4h-2v6 c0,2.2-1.8,4-4,4s-4-1.8-4-4V4.5C4,3.1,5.1,2,6.5,2S9,3.1,9,4.5V9c0,0.6-0.4,1-1,1S7,9.6,7,9V5H5z" />
|
||||
</symbol>
|
||||
<symbol id="icon-audio" viewBox="0 0 16 16">
|
||||
<path d="M14,0H5C4.4,0,4,0.4,4,1v9.2C3.7,10.1,3.4,10,3,10c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3V5h7v3.2 C12.7,8.1,12.4,8,12,8c-1.7,0-3,1.3-3,3s1.3,3,3,3s3-1.3,3-3V1C15,0.4,14.6,0,14,0z" />
|
||||
</symbol>
|
||||
<symbol id="icon-badge" viewBox="0 0 16 16">
|
||||
<path d="M14,6V3c0-0.552-0.448-1-1-1h-3L8,0L6,2H3C2.448,2,2,2.448,2,3v3L0,8l2,2v3c0,0.552,0.448,1,1,1h3l2,2l2-2h3 c0.552,0,1-0.448,1-1v-3l2-2L14,6z" />
|
||||
</symbol>
|
||||
<symbol id="icon-bars" viewBox="0 0 16 16">
|
||||
<path d="M15 7H1c-.6 0-1 .4-1 1s.4 1 1 1h14c.6 0 1-.4 1-1s-.4-1-1-1zM15 1H1c-.6 0-1 .4-1 1s.4 1 1 1h14c.6 0 1-.4 1-1s-.4-1-1-1zM15 13H1c-.6 0-1 .4-1 1s.4 1 1 1h14c.6 0 1-.4 1-1s-.4-1-1-1z" />
|
||||
</symbol>
|
||||
|
@ -60,6 +66,10 @@
|
|||
<symbol id="icon-bug" viewBox="0 0 16 16">
|
||||
<path d="M16,4V3h-2v1c0,0.6-0.4,1-1,1h-1c-0.3-0.4-0.6-0.7-1-1V3c0-1.7-1.3-3-3-3S5,1.3,5,3v1C4.6,4.3,4.3,4.6,4,5H3 C2.4,5,2,4.6,2,4V3H0v1c0,1.7,1.3,3,3,3h0.1C3,7.3,3,7.7,3,8H0v2h3v1c-1.7,0-3,1.3-3,3v1h2v-1c0-0.6,0.4-1,1-1h0.4 C4.2,14.8,6,16,8,16s3.8-1.2,4.6-3H13c0.6,0,1,0.4,1,1v1h2v-1c0-1.7-1.3-3-3-3v-1h3V8h-3c0-0.3,0-0.7-0.1-1H13C14.7,7,16,5.7,16,4z"/>
|
||||
</symbol>
|
||||
<symbol id="icon-brush" viewBox="0 0 16 16">
|
||||
<path d="M9,10L6,7l6.4-6.4c0.8-0.8,2.2-0.8,3,0l0,0c0.8,0.8,0.8,2.2,0,3L9,10z" />
|
||||
<path d="M1.4,10.3c1.2-1.2,3.1-1.2,4.2,0s1.2,3.1,0,4.2S0,16,0,16S0.2,11.5,1.4,10.3z" />
|
||||
</symbol>
|
||||
<symbol id="icon-calendar" viewBox="0 0 16 16">
|
||||
<path d="M15 2h-2V0h-2v2H9V0H7v2H5V0H3v2H1a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1zm-1 12H2V5h12v9z" />
|
||||
<path d="M4 7h2v2H4V7zM7 7h2v2H7V7zM4 10h2v2H4v-2zM7 10h2v2H7v-2zM10 7h2v2h-2V7zM10 10h2v2h-2v-2z" />
|
||||
|
@ -140,6 +150,15 @@
|
|||
<symbol id="icon-dashboard" viewBox="0 0 16 16">
|
||||
<path d="M6 9H1a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1zM6 16H1a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1zM15 6h-5a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1zM15 16h-5a1 1 0 0 1-1-1V9a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1z" />
|
||||
</symbol>
|
||||
<symbol id="icon-discord" viewBox="0 0 16 16">
|
||||
<path d="M6.552,6.712a.891.891,0,0,0,0,1.776A.852.852,0,0,0,7.368,7.6.847.847,0,0,0,6.552,6.712Zm2.92,0a.891.891,0,1,0,.816.888A.852.852,0,0,0,9.472,6.712Z" />
|
||||
<path d="M13.36,0H2.64A1.644,1.644,0,0,0,1,1.648V12.464a1.644,1.644,0,0,0,1.64,1.648h9.072l-.424-1.48,1.024.952.968.9L15,16V1.648A1.644,1.644,0,0,0,13.36,0ZM10.272,10.448S9.984,10.1,9.744,9.8a2.524,2.524,0,0,0,1.448-.952,4.578,4.578,0,0,1-.92.472,5.265,5.265,0,0,1-1.16.344A5.6,5.6,0,0,1,7.04,9.656a6.716,6.716,0,0,1-1.176-.344,4.683,4.683,0,0,1-.912-.472,2.488,2.488,0,0,0,1.4.944c-.24.3-.536.664-.536.664a2.9,2.9,0,0,1-2.44-1.216A10.713,10.713,0,0,1,4.528,4.568a3.956,3.956,0,0,1,2.248-.84l.08.1a5.4,5.4,0,0,0-2.1,1.048s.176-.1.472-.232a6.008,6.008,0,0,1,1.816-.5.788.788,0,0,1,.136-.016A6.769,6.769,0,0,1,8.792,4.1a6.521,6.521,0,0,1,2.408.768A5.324,5.324,0,0,0,9.208,3.856l.112-.128a3.956,3.956,0,0,1,2.248.84A10.713,10.713,0,0,1,12.72,9.232,2.924,2.924,0,0,1,10.272,10.448Z" />
|
||||
</symbol>
|
||||
<symbol id="icon-discount" viewBox="0 0 16 16">
|
||||
<rect x="-0.211" y="7" width="16.422" height="2" transform="translate(-3.094 10.219) rotate(-56.31)" />
|
||||
<path d="M7,4A3,3,0,1,0,4,7,3,3,0,0,0,7,4ZM3,4A1,1,0,1,1,4,5,1,1,0,0,1,3,4Z" />
|
||||
<path d="M12,9a3,3,0,1,0,3,3A3,3,0,0,0,12,9Zm0,4a1,1,0,1,1,1-1A1,1,0,0,1,12,13Z" />
|
||||
</symbol>
|
||||
<symbol id="icon-display" viewBox="0 0 16 16">
|
||||
<path d="M15,0H1C0.4,0,0,0.4,0,1v11c0,0.6,0.4,1,1,1h5v1H3v2h10v-2h-3v-1h5c0.6,0,1-0.4,1-1V1C16,0.4,15.6,0,15,0z M14,2v7H2V2H14z" />
|
||||
</symbol>
|
||||
|
@ -175,69 +194,35 @@
|
|||
<symbol id="icon-facebook" viewBox="0 0 16 16">
|
||||
<path d="M15.3 0H.7C.3 0 0 .3 0 .7v14.7c0 .3.3.6.7.6H8v-5H6V8h2V6c0-2.1 1.2-3 3-3h2v3h-1c-.6 0-1 .4-1 1v1h2.6l-.6 3h-2v5h4.3c.4 0 .7-.3.7-.7V.7c0-.4-.3-.7-.7-.7z" />
|
||||
</symbol>
|
||||
<symbol id="icon-file-word" viewBox="0 0 32 32">
|
||||
<g>
|
||||
<circle cx="14" cy="17" r="1" />
|
||||
<path d="M28,32H0V0h28V32z M2,30h24V2H2V30z" />
|
||||
<path d="M17.6,25h-7.2l-4.6-8.1L14,6.4l8.2,10.5L17.6,25z M11.6,23h4.8l3.4-5.9L14,9.6l-5.8,7.5L11.6,23z" />
|
||||
<rect x="7" y="23" width="14" height="2" />
|
||||
<circle cx="14" cy="17" r="2" />
|
||||
</g>
|
||||
<symbol id="icon-file" viewBox="0 0 32 32">
|
||||
<use href="#icon-attachment" />
|
||||
</symbol>
|
||||
<symbol id="icon-file-audio" viewBox="0 0 32 32">
|
||||
<path d="M28,32H0V0h28V32z M2,30h24V2H2V30z" />
|
||||
<polygon points="12,20.5 10,20.5 10,8 21,8 21,18.5 19,18.5 19,10 12,10" />
|
||||
<path d="M8.5,24C6.6,24,5,22.4,5,20.5S6.6,17,8.5,17s3.5,1.6,3.5,3.5S10.4,24,8.5,24z M8.5,19C7.7,19,7,19.7,7,20.5 S7.7,22,8.5,22s1.5-0.7,1.5-1.5S9.3,19,8.5,19z" />
|
||||
<path d="M17.5,22c-1.9,0-3.5-1.6-3.5-3.5s1.6-3.5,3.5-3.5s3.5,1.6,3.5,3.5S19.4,22,17.5,22z M17.5,17 c-0.8,0-1.5,0.7-1.5,1.5s0.7,1.5,1.5,1.5s1.5-0.7,1.5-1.5S18.3,17,17.5,17z" />
|
||||
</symbol>
|
||||
<symbol id="icon-file-image" viewBox="0 0 32 32">
|
||||
<polygon points="13.1,23.4 8.1,19.3 5,22.4 3.6,21 7.9,16.7 12.9,20.6 19,13.4 24.4,20.2 22.8,21.4 19,16.6 " />
|
||||
<path d="M28,32H0V0h28V32z M2,30h24V2H2V30z" />
|
||||
<path d="M12.5,14C10.6,14,9,12.4,9,10.5S10.6,7,12.5,7S16,8.6,16,10.5S14.4,14,12.5,14z M12.5,9 C11.7,9,11,9.7,11,10.5s0.7,1.5,1.5,1.5s1.5-0.7,1.5-1.5S13.3,9,12.5,9z" />
|
||||
</symbol>
|
||||
<symbol id="icon-file-text" viewBox="0 0 32 32">
|
||||
<path d="M32,32H0V0h32V32z M2,30h28V2H2V30z" />
|
||||
<polygon points="23.1,25.4 16.3,8 15.7,8 8.9,25.4 7.1,24.6 14.3,6 17.7,6 24.9,24.6 " />
|
||||
<rect x="11.1" y="16" width="9.8" height="2" />
|
||||
<rect x="5" y="24" width="6" height="2" />
|
||||
<rect x="21" y="24" width="6" height="2" />
|
||||
</symbol>
|
||||
<symbol id="icon-file-video" viewBox="0 0 32 32">
|
||||
<path d="M32,32H0V0h32V32z M2,30h28V2H2V30z" />
|
||||
<path d="M11,18.8V5.2L21.9,12L11,18.8z M13,8.8v6.4l5.1-3.2L13,8.8z" />
|
||||
<rect x="24" y="23" width="4" height="2" />
|
||||
<rect x="4" y="23" width="12" height="2" />
|
||||
<path d="M18,28c-2.2,0-4-1.8-4-4s1.8-4,4-4c2.2,0,4,1.8,4,4S20.2,28,18,28z M18,22c-1.1,0-2,0.9-2,2s0.9,2,2,2 c1.1,0,2-0.9,2-2S19.1,22,18,22z" />
|
||||
<use href="#icon-audio" />
|
||||
</symbol>
|
||||
<symbol id="icon-file-code" viewBox="0 0 32 32">
|
||||
<path d="M28,32H0V0h28V32z M2,30h24V2H2V30z" />
|
||||
<polygon points="9,20.4 4.6,16 9,11.6 10.4,13 7.4,16 10.4,19 " />
|
||||
<polygon points="19,20.4 17.6,19 20.6,16 17.6,13 19,11.6 23.4,16 " />
|
||||
<rect x="13" y="8.7" transform="matrix(0.9488 0.3159 -0.3159 0.9488 5.7719 -3.6035)" width="2" height="14.6" />
|
||||
</symbol>
|
||||
<symbol id="icon-file-zip" viewBox="0 0 32 32">
|
||||
<polygon points="28,32 0,32 0,0 15,0 15,8 13,8 13,2 2,2 2,30 26,30 26,2 18,2 18,0 28,0 " />
|
||||
<path d="M18,19h-8v-9h8V19z M12,17h4v-5h-4V17z" />
|
||||
<rect x="12" y="25" width="4" height="2" />
|
||||
<rect x="12" y="21" width="4" height="2" />
|
||||
<use href="#icon-code" />
|
||||
</symbol>
|
||||
<symbol id="icon-file-document" viewBox="0 0 32 32">
|
||||
<path d="M28,32H0V0h28V32z M2,30h24V2H2V30z" />
|
||||
<rect x="16" y="7" width="6" height="2" />
|
||||
<rect x="16" y="12" width="6" height="2" />
|
||||
<rect x="6" y="17" width="16" height="2" />
|
||||
<rect x="6" y="22" width="16" height="2" />
|
||||
<path d="M14,14H6V7h8V14z M8,12h4V9H8V12z" />
|
||||
<use href="#icon-document" />
|
||||
</symbol>
|
||||
<symbol id="icon-file-image" viewBox="0 0 32 32">
|
||||
<use href="#icon-image" />
|
||||
</symbol>
|
||||
<symbol id="icon-file-spreadsheet" viewBox="0 0 32 32">
|
||||
<path d="M28,32H0V0h28V32z M2,30h24V2H2V30z" />
|
||||
<rect x="13" y="10" width="2" height="12" />
|
||||
<rect x="8" y="17" width="2" height="5" />
|
||||
<rect x="18" y="14" width="2" height="8" />
|
||||
<use href="#icon-table" />
|
||||
</symbol>
|
||||
<symbol id="icon-file" viewBox="0 0 32 32">
|
||||
<path d="M28,32H0V0h28V32z M2,30h24V2H2V30z" />
|
||||
<path d="M19.5,22h-11C6.6,22,5,20.4,5,18.5c0-1.8,1.3-3.3,3.1-3.5c0.5-2.8,2.9-5,5.9-5s5.5,2.2,5.9,5 c1.7,0.2,3.1,1.7,3.1,3.5C23,20.4,21.4,22,19.5,22z M8.5,17C7.7,17,7,17.7,7,18.5S7.7,20,8.5,20h11c0.8,0,1.5-0.7,1.5-1.5 S20.3,17,19.5,17c-0.1,0-0.2,0-0.3,0L18,17.3l0-1.3c0-2.2-1.8-3.9-4-3.9c-2.2,0-4,1.8-4,3.9l0,0.1v1.2L8.8,17C8.7,17,8.6,17,8.5,17 z" />
|
||||
<symbol id="icon-file-text" viewBox="0 0 32 32">
|
||||
<use href="#icon-markdown" />
|
||||
</symbol>
|
||||
<symbol id="icon-file-video" viewBox="0 0 32 32">
|
||||
<use href="#icon-video" />
|
||||
</symbol>
|
||||
<symbol id="icon-file-word" viewBox="0 0 32 32">
|
||||
<use href="#icon-pen" />
|
||||
</symbol>
|
||||
<symbol id="icon-file-zip" viewBox="0 0 32 32">
|
||||
<use href="#icon-archive" />
|
||||
</symbol>
|
||||
<symbol id="icon-filter" viewBox="0 0 16 16">
|
||||
<use href="#icon-funnel" />
|
||||
|
@ -248,6 +233,11 @@
|
|||
<symbol id="icon-folder" viewBox="0 0 16 16">
|
||||
<path d="M15,3H8V1c0-0.6-0.4-1-1-1H1C0.4,0,0,0.4,0,1v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1V4C16,3.4,15.6,3,15,3z M6,2v2c0,0.6,0.4,1,1,1h7v2H2V2H6z M2,14V9h12v5H2z"/>
|
||||
</symbol>
|
||||
<symbol id="icon-folder-structure" viewBox="0 0 16 16">
|
||||
<path d="M15,10H7c-0.552,0-1,0.448-1,1v1v2v1c0,0.552,0.448,1,1,1h8c0.552,0,1-0.448,1-1v-4 C16,10.448,15.552,10,15,10z" />
|
||||
<path d="M5,12H2V6h3V4H2V1c0-0.552-0.448-1-1-1S0,0.448,0,1v12c0,0.553,0.448,1,1,1h4V12z" />
|
||||
<path d="M15,2H7C6.448,2,6,2.448,6,3v1v2v1c0,0.552,0.448,1,1,1h8c0.552,0,1-0.448,1-1V3C16,2.448,15.552,2,15,2z" />
|
||||
</symbol>
|
||||
<symbol id="icon-food" viewBox="0 0 16 16">
|
||||
<path d="M6,0,5.6,5H4.4L4,0H3L2.6,5H1.4L1,0H0V6A2,2,0,0,0,2,8v6.5a1.5,1.5,0,0,0,3,0V8A2,2,0,0,0,7,6V0Z" />
|
||||
<path d="M15,0a5,5,0,0,0-5,5v6h2v3.5A1.5,1.5,0,0,0,13.5,16h0A1.5,1.5,0,0,0,15,14.5V0Z" />
|
||||
|
@ -255,6 +245,9 @@
|
|||
<symbol id="icon-funnel" viewBox="0 0 16 16">
|
||||
<path d="M9 15H7a1 1 0 0 1 0-2h2a1 1 0 0 1 0 2zM11 11H5a1 1 0 0 1 0-2h6a1 1 0 0 1 0 2zM13 7H3a1 1 0 0 1 0-2h10a1 1 0 0 1 0 2zM15 3H1a1 1 0 0 1 0-2h14a1 1 0 0 1 0 2z" />
|
||||
</symbol>
|
||||
<symbol id="icon-github" viewBox="0 0 16 16">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M8,0.2c-4.4,0-8,3.6-8,8c0,3.5,2.3,6.5,5.5,7.6 C5.9,15.9,6,15.6,6,15.4c0-0.2,0-0.7,0-1.4C3.8,14.5,3.3,13,3.3,13c-0.4-0.9-0.9-1.2-0.9-1.2c-0.7-0.5,0.1-0.5,0.1-0.5 c0.8,0.1,1.2,0.8,1.2,0.8C4.4,13.4,5.6,13,6,12.8c0.1-0.5,0.3-0.9,0.5-1.1c-1.8-0.2-3.6-0.9-3.6-4c0-0.9,0.3-1.6,0.8-2.1 c-0.1-0.2-0.4-1,0.1-2.1c0,0,0.7-0.2,2.2,0.8c0.6-0.2,1.3-0.3,2-0.3c0.7,0,1.4,0.1,2,0.3c1.5-1,2.2-0.8,2.2-0.8 c0.4,1.1,0.2,1.9,0.1,2.1c0.5,0.6,0.8,1.3,0.8,2.1c0,3.1-1.9,3.7-3.7,3.9C9.7,12,10,12.5,10,13.2c0,1.1,0,1.9,0,2.2 c0,0.2,0.1,0.5,0.6,0.4c3.2-1.1,5.5-4.1,5.5-7.6C16,3.8,12.4,0.2,8,0.2z" />
|
||||
</symbol>
|
||||
<symbol id="icon-globe" viewBox="0 0 16 16">
|
||||
<path d="M8 0C3.6 0 0 3.6 0 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm5.9 7H12c-.1-1.5-.4-2.9-.8-4.1 1.4.9 2.4 2.4 2.7 4.1zM8 14c-.6 0-1.8-1.9-2-5h4c-.2 3.1-1.4 5-2 5zM6 7c.2-3.1 1.3-5 2-5s1.8 1.9 2 5H6zM4.9 2.9C4.4 4.1 4.1 5.5 4 7H2.1c.3-1.7 1.3-3.2 2.8-4.1zM2.1 9H4c.1 1.5.4 2.9.8 4.1-1.4-.9-2.4-2.4-2.7-4.1zm9 4.1c.5-1.2.7-2.6.8-4.1h1.9c-.2 1.7-1.2 3.2-2.7 4.1z" />
|
||||
</symbol>
|
||||
|
@ -422,6 +415,10 @@
|
|||
<symbol id="icon-mobile" viewBox="0 0 16 16">
|
||||
<path d="M12,0H4C2.897,0,2,0.897,2,2v12c0,1.103,0.897,2,2,2h8c1.103,0,2-0.897,2-2V2C14,0.897,13.103,0,12,0z M8,14 c-0.552,0-1-0.448-1-1s0.448-1,1-1s1,0.448,1,1S8.552,14,8,14z M12,10H4V2h8V10z" />
|
||||
</symbol>
|
||||
<symbol id="icon-money" viewBox="0 0 16 16">
|
||||
<path d="M15,2H1C0.4,2,0,2.4,0,3v10c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1V3C16,2.4,15.6,2,15,2z M11.1,12H4.9 C4.5,10.6,3.4,9.5,2,9.1V6.9C3.4,6.5,4.5,5.4,4.9,4h6.3c0.4,1.4,1.5,2.5,2.9,2.9v2.3C12.6,9.5,11.5,10.6,11.1,12z" />
|
||||
<circle cx="8" cy="8" r="2" />
|
||||
</symbol>
|
||||
<symbol id="icon-moon" viewBox="0 0 16 16">
|
||||
<path d="M5.2,2C2.2,2.8,0,5.6,0,8.9C0,12.8,3.2,16,7.1,16c3.3,0,6-2.2,6.9-5.2C8.7,12.2,3.8,7.3,5.2,2z" />
|
||||
<circle cx="10" cy="1" r="1" />
|
||||
|
@ -456,6 +453,9 @@
|
|||
<path d="M14 0H2c-.6 0-1 .4-1 1v14c0 .6.4 1 1 1h12c.6 0 1-.4 1-1V1c0-.6-.4-1-1-1zm-1 14H3V2h10v12z" />
|
||||
<path d="M4 3h4v4H4V3zM9 4h3v1H9V4zM9 6h3v1H9V6zM4 8h8v1H4V8zM4 10h8v1H4v-1zM4 12h5v1H4v-1z" />
|
||||
</symbol>
|
||||
<symbol id="icon-palette" viewBox="0 0 16 16">
|
||||
<path d="M13.9,3.8c-3.6-1.7-6.6,1.8-8,0c-0.5-0.7,0.7-2,0-2.9c-0.5-0.6-1.7-0.5-2.4,0C1.4,2.4,0,4.8,0,7.5 c0,4.4,3.6,8,8,8c3.7,0,6.8-2.5,7.7-5.9C16.1,8.5,16.5,5.1,13.9,3.8z M3,8C2.4,8,2,7.6,2,7c0-0.6,0.4-1,1-1s1,0.4,1,1 C4,7.6,3.6,8,3,8z M5,12c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1s1,0.4,1,1C6,11.6,5.6,12,5,12z M9,14c-0.6,0-1-0.4-1-1c0-0.6,0.4-1,1-1 s1,0.4,1,1C10,13.6,9.6,14,9,14z M12,10c-1.1,0-2-0.9-2-2c0-1.1,0.9-2,2-2s2,0.9,2,2C14,9.1,13.1,10,12,10z" />
|
||||
</symbol>
|
||||
<symbol id="icon-paragraph" viewBox="0 0 16 16">
|
||||
<path d="M6,0V0A4,4,0,0,0,6,8v8H8V2h3V16h2V2h2V0Z" />
|
||||
</symbol>
|
||||
|
@ -466,6 +466,9 @@
|
|||
<path d="M12.8,1.2C12,0.4,10.7,0,9,0H4C3.6,0,3.4,0.3,3.3,0.6L1.2,13.7c0,0.3,0.2,0.5,0.4,0.5h3.1l0.7-4.7 c0.1-0.3,0.4-0.6,0.7-0.6h1.5c2.9,0,5.1-1.2,5.8-4.5C13.4,4.3,13.7,2.3,12.8,1.2z" />
|
||||
<path d="M14.3,4.8c-0.8,3.3-3,5.1-6.7,5.1H6.4L5.5,16h2c0.3,0,0.6-0.2,0.6-0.5l0.5-3.2l0-0.2c0.1-0.6,1-0.5,1-0.5 c2.5,0,4.5-1,5-4C14.9,6.5,14.8,5.5,14.3,4.8z" />
|
||||
</symbol>
|
||||
<symbol id="icon-pen" viewBox="0 0 16 16">
|
||||
<path d="M15.207,8.793l-5.5-5.5c-0.391-0.391-1.023-0.391-1.414,0l-7,7c-0.128,0.128-0.219,0.289-0.263,0.464l-1,4 c-0.085,0.341,0.015,0.701,0.263,0.95C0.483,15.897,0.738,16,1,16c0.081,0,0.162-0.01,0.243-0.03l4-1 c0.176-0.044,0.336-0.135,0.464-0.263L12,8.414L13.086,9.5l-3.293,3.293c-0.391,0.391-0.391,1.023,0,1.414 c0.391,0.391,1.023,0.391,1.414,0l4-4C15.598,9.816,15.598,9.184,15.207,8.793z"></path> <path d="M11.121,1.879l3,3l1.258-1.258c0.828-0.828,0.828-2.172,0-3v0c-0.828-0.828-2.172-0.828-3,0 L11.121,1.879L11.121,1.879z" />
|
||||
</symbol>
|
||||
<symbol id="icon-phone" viewBox="0 0 16 16">
|
||||
<path d="M15.285 12.305l-2.578-2.594a1 1 0 0 0-1.416-.002L9 12 4 7l2.294-2.294a1 1 0 0 0 .001-1.414L3.715.708a1 1 0 0 0-1.415 0L.004 3.003 0 3c0 7.18 5.82 13 13 13l2.283-2.283a1 1 0 0 0 .002-1.412z" />
|
||||
</symbol>
|
||||
|
@ -573,6 +576,9 @@
|
|||
<symbol id="icon-star-outline" viewBox="0 0 16 16">
|
||||
<path d="M11.86,15.542L8,13.513l-3.86,2.029c-0.727,0.387-1.592-0.235-1.451-1.054l0.737-4.299L0.302,7.145 c-0.594-0.58-0.263-1.587,0.555-1.706l4.316-0.627L7.104,0.9c0.336-0.683,1.457-0.683,1.793,0l1.931,3.911l4.316,0.627 c0.818,0.119,1.148,1.126,0.555,1.706l-3.124,3.045l0.737,4.299C13.453,15.311,12.586,15.924,11.86,15.542z M8.466,11.498 l2.532,1.331l-0.483-2.82c-0.056-0.324,0.052-0.655,0.287-0.885l2.049-1.998L10.02,6.715C9.693,6.668,9.412,6.463,9.267,6.168 L8,3.602L6.733,6.168c-0.146,0.295-0.427,0.5-0.753,0.547L3.149,7.126l2.049,1.998c0.235,0.229,0.343,0.561,0.287,0.885 l-0.483,2.82l2.532-1.331C7.826,11.344,8.174,11.344,8.466,11.498z" />
|
||||
</symbol>
|
||||
<symbol id="icon-store" viewBox="0 0 16 16">
|
||||
<path d="M13.9,0.5C13.7,0.2,13.4,0,13,0H3C2.6,0,2.3,0.2,2.1,0.5C0,4.5,0,4.7,0,5c0,1.1,0.9,2,2,2v8c0,0.6,0.4,1,1,1 h10c0.6,0,1-0.4,1-1V7c1.1,0,2-0.9,2-2C16,4.7,16,4.5,13.9,0.5z M10,14v-4H6v4H4V6.7C4.3,6.9,4.6,7,5,7c0.6,0,1.1-0.3,1.5-0.7 C6.9,6.7,7.4,7,8,7s1.1-0.3,1.5-0.7C9.9,6.7,10.4,7,11,7c0.4,0,0.7-0.1,1-0.3V14H10z" />
|
||||
</symbol>
|
||||
<symbol id="icon-strikethrough" viewBox="0 0 16 16">
|
||||
<path d="M9,13.27924V11H7v2.27924c0,0.43042-0.27545,0.81256-0.68378,0.94867L4,15v1h4h4v-1l-2.31622-0.77209 C9.27545,14.0918,9,13.70966,9,13.27924z"/>
|
||||
<path d="M9,2h3.38196c0.37878,0,0.72504,0.21399,0.89441,0.5528L14,4h1V0H8H1v4h1l0.72363-1.4472 C2.89301,2.21399,3.23926,2,3.61804,2H7v5h2V2z"/>
|
||||
|
@ -626,6 +632,9 @@
|
|||
<rect y="9" width="16" height="2" />
|
||||
<rect x="6" y="13" width="10" height="2" />
|
||||
</symbol>
|
||||
<symbol id="icon-ticket" viewBox="0 0 16 16">
|
||||
<path d="M16,6.003v-4c0-0.552-0.448-1-1-1H1c-0.552,0-1,0.448-1,1v4c1.1,0,2,0.9,2,2c0,1.1-0.9,2-2,2V14 c0,0.552,0.448,1,1,1h14c0.552,0,1-0.448,1-1v-3.997c-1.1,0-2-0.9-2-2C14,6.902,14.9,6.003,16,6.003z" />
|
||||
</symbol>
|
||||
<symbol id="icon-tiktok" viewBox="0 0 16 16">
|
||||
<path d="M6.793,5.958V8.706a2.392,2.392,0,0,0-3,2.216,2.163,2.163,0,0,0,2.312,2.3,2.155,2.155,0,0,0,2.311-2.326V0h2.719c.463,2.876,1.9,3.544,3.827,3.852V6.608a8.19,8.19,0,0,1-3.75-1.266v5.445C11.21,13.25,9.75,16,6.125,16A5.11,5.11,0,0,1,1.04,10.761,5.01,5.01,0,0,1,6.793,5.958Z" />
|
||||
</symbol>
|
||||
|
|
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 60 KiB |
2
kirby/panel/dist/js/index.js
vendored
2
kirby/panel/dist/js/index.js
vendored
File diff suppressed because one or more lines are too long
15
kirby/panel/dist/js/vendor.js
vendored
15
kirby/panel/dist/js/vendor.js
vendored
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue