Upgrade to 3.5.5
This commit is contained in:
140
kirby/cacert.pem
140
kirby/cacert.pem
@@ -1,7 +1,7 @@
|
|||||||
##
|
##
|
||||||
## Bundle of CA Root Certificates
|
## Bundle of CA Root Certificates
|
||||||
##
|
##
|
||||||
## Certificate data from Mozilla as of: Tue Jan 19 04:12:04 2021 GMT
|
## Certificate data from Mozilla as of: Tue Apr 13 03:12:04 2021 GMT
|
||||||
##
|
##
|
||||||
## This is a bundle of X.509 certificates of public Certificate Authorities
|
## This is a bundle of X.509 certificates of public Certificate Authorities
|
||||||
## (CA). These were automatically extracted from Mozilla's root certificates
|
## (CA). These were automatically extracted from Mozilla's root certificates
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
## Just configure this file as the SSLCACertificateFile.
|
## Just configure this file as the SSLCACertificateFile.
|
||||||
##
|
##
|
||||||
## Conversion done with mk-ca-bundle.pl version 1.28.
|
## Conversion done with mk-ca-bundle.pl version 1.28.
|
||||||
## SHA256: 3bdc63d1de27058fec943a999a2a8a01fcc6806a611b19221a7727d3d9bbbdfd
|
## SHA256: f377673fa3c22ba2188a4cea041c7b8c99a4817ffde6821e98325ce89324e5aa
|
||||||
##
|
##
|
||||||
|
|
||||||
|
|
||||||
@@ -718,51 +718,6 @@ vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz
|
|||||||
TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
|
TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
GeoTrust Primary Certification Authority - G2
|
|
||||||
=============================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC
|
|
||||||
VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu
|
|
||||||
Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD
|
|
||||||
ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1
|
|
||||||
OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
|
|
||||||
MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl
|
|
||||||
b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG
|
|
||||||
BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc
|
|
||||||
KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD
|
|
||||||
VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+
|
|
||||||
EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m
|
|
||||||
ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2
|
|
||||||
npaqBA+K
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
VeriSign Universal Root Certification Authority
|
|
||||||
===============================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE
|
|
||||||
BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO
|
|
||||||
ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk
|
|
||||||
IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u
|
|
||||||
IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV
|
|
||||||
UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
|
|
||||||
cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
|
|
||||||
IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0
|
|
||||||
aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj
|
|
||||||
1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP
|
|
||||||
MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72
|
|
||||||
9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I
|
|
||||||
AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR
|
|
||||||
tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G
|
|
||||||
CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O
|
|
||||||
a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
|
|
||||||
DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3
|
|
||||||
Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx
|
|
||||||
Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx
|
|
||||||
P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P
|
|
||||||
wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4
|
|
||||||
mJO37M2CYfE45k+XmCpajQ==
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
NetLock Arany (Class Gold) Főtanúsítvány
|
NetLock Arany (Class Gold) Főtanúsítvány
|
||||||
========================================
|
========================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@@ -1980,36 +1935,6 @@ uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
|
|||||||
yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
|
yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
Staat der Nederlanden Root CA - G3
|
|
||||||
==================================
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
|
|
||||||
CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
|
|
||||||
Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC
|
|
||||||
TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
|
|
||||||
ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y
|
|
||||||
olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t
|
|
||||||
x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy
|
|
||||||
EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K
|
|
||||||
Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur
|
|
||||||
mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5
|
|
||||||
1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp
|
|
||||||
07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo
|
|
||||||
FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE
|
|
||||||
41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB
|
|
||||||
AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu
|
|
||||||
yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD
|
|
||||||
U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq
|
|
||||||
KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1
|
|
||||||
v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA
|
|
||||||
8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b
|
|
||||||
8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r
|
|
||||||
mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq
|
|
||||||
1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI
|
|
||||||
JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV
|
|
||||||
tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
|
|
||||||
Staat der Nederlanden EV Root CA
|
Staat der Nederlanden EV Root CA
|
||||||
================================
|
================================
|
||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
@@ -3226,3 +3151,64 @@ qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG
|
|||||||
I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg
|
I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg
|
||||||
kpzNNIaRkPpkUZ3+/uul9XXeifdy
|
kpzNNIaRkPpkUZ3+/uul9XXeifdy
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
AC RAIZ FNMT-RCM SERVIDORES SEGUROS
|
||||||
|
===================================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF
|
||||||
|
UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy
|
||||||
|
NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4
|
||||||
|
MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt
|
||||||
|
UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB
|
||||||
|
QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA
|
||||||
|
BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2
|
||||||
|
LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw
|
||||||
|
AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG
|
||||||
|
SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD
|
||||||
|
zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
GlobalSign Root R46
|
||||||
|
===================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV
|
||||||
|
BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv
|
||||||
|
b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX
|
||||||
|
BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi
|
||||||
|
MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es
|
||||||
|
CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/
|
||||||
|
r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje
|
||||||
|
2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt
|
||||||
|
bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj
|
||||||
|
K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4
|
||||||
|
12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on
|
||||||
|
ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls
|
||||||
|
eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9
|
||||||
|
vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD
|
||||||
|
VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM
|
||||||
|
BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg
|
||||||
|
JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy
|
||||||
|
gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92
|
||||||
|
CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm
|
||||||
|
OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq
|
||||||
|
JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye
|
||||||
|
qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz
|
||||||
|
nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7
|
||||||
|
DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3
|
||||||
|
QEUxeCp6
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
||||||
|
GlobalSign Root E46
|
||||||
|
===================
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT
|
||||||
|
AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg
|
||||||
|
RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV
|
||||||
|
BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq
|
||||||
|
hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB
|
||||||
|
jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj
|
||||||
|
QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL
|
||||||
|
gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk
|
||||||
|
vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+
|
||||||
|
CAezNIm8BZ/3Hobui3A=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
"core"
|
"core"
|
||||||
],
|
],
|
||||||
"homepage": "https://getkirby.com",
|
"homepage": "https://getkirby.com",
|
||||||
"version": "3.5.4",
|
"version": "3.5.5",
|
||||||
"license": "proprietary",
|
"license": "proprietary",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
@@ -21,13 +21,13 @@
|
|||||||
"php": ">=7.3.0 <8.1.0",
|
"php": ">=7.3.0 <8.1.0",
|
||||||
"ext-ctype": "*",
|
"ext-ctype": "*",
|
||||||
"ext-mbstring": "*",
|
"ext-mbstring": "*",
|
||||||
"claviska/simpleimage": "3.5.1",
|
"claviska/simpleimage": "3.6.3",
|
||||||
"filp/whoops": "2.9.1",
|
"filp/whoops": "2.12.1",
|
||||||
"getkirby/composer-installer": "^1.2.0",
|
"getkirby/composer-installer": "^1.2.0",
|
||||||
"laminas/laminas-escaper": "2.7.0",
|
"laminas/laminas-escaper": "2.7.0",
|
||||||
"michelf/php-smartypants": "1.8.1",
|
"michelf/php-smartypants": "1.8.1",
|
||||||
"mustangostang/spyc": "0.6.3",
|
"mustangostang/spyc": "0.6.3",
|
||||||
"phpmailer/phpmailer": "6.2.0",
|
"phpmailer/phpmailer": "6.4.1",
|
||||||
"true/punycode": "2.1.1"
|
"true/punycode": "2.1.1"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
|
76
kirby/composer.lock
generated
76
kirby/composer.lock
generated
@@ -4,20 +4,20 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "70ee865c7f7cf618466ffb0f90bca1d8",
|
"content-hash": "ba5945c6fe31aba44aa33539dcc34c83",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "claviska/simpleimage",
|
"name": "claviska/simpleimage",
|
||||||
"version": "3.5.1",
|
"version": "3.6.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/claviska/SimpleImage.git",
|
"url": "https://github.com/claviska/SimpleImage.git",
|
||||||
"reference": "ab2ab8a4672738ab77b39b00922ee4e79aeadb11"
|
"reference": "21b6f4bf4ef1927158b3e29bd0c2d99c6681c750"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/claviska/SimpleImage/zipball/ab2ab8a4672738ab77b39b00922ee4e79aeadb11",
|
"url": "https://api.github.com/repos/claviska/SimpleImage/zipball/21b6f4bf4ef1927158b3e29bd0c2d99c6681c750",
|
||||||
"reference": "ab2ab8a4672738ab77b39b00922ee4e79aeadb11",
|
"reference": "21b6f4bf4ef1927158b3e29bd0c2d99c6681c750",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
"description": "A PHP class that makes working with images as simple as possible.",
|
"description": "A PHP class that makes working with images as simple as possible.",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/claviska/SimpleImage/issues",
|
"issues": "https://github.com/claviska/SimpleImage/issues",
|
||||||
"source": "https://github.com/claviska/SimpleImage/tree/3.5.1"
|
"source": "https://github.com/claviska/SimpleImage/tree/3.6.3"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -53,20 +53,20 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-10-30T20:47:26+00:00"
|
"time": "2021-04-20T12:18:18+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "filp/whoops",
|
"name": "filp/whoops",
|
||||||
"version": "2.9.1",
|
"version": "2.12.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/filp/whoops.git",
|
"url": "https://github.com/filp/whoops.git",
|
||||||
"reference": "307fb34a5ab697461ec4c9db865b20ff2fd40771"
|
"reference": "c13c0be93cff50f88bbd70827d993026821914dd"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/filp/whoops/zipball/307fb34a5ab697461ec4c9db865b20ff2fd40771",
|
"url": "https://api.github.com/repos/filp/whoops/zipball/c13c0be93cff50f88bbd70827d993026821914dd",
|
||||||
"reference": "307fb34a5ab697461ec4c9db865b20ff2fd40771",
|
"reference": "c13c0be93cff50f88bbd70827d993026821914dd",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -116,9 +116,15 @@
|
|||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/filp/whoops/issues",
|
"issues": "https://github.com/filp/whoops/issues",
|
||||||
"source": "https://github.com/filp/whoops/tree/2.9.1"
|
"source": "https://github.com/filp/whoops/tree/2.12.1"
|
||||||
},
|
},
|
||||||
"time": "2020-11-01T12:00:00+00:00"
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/denis-sokolov",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2021-04-25T12:00:00+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "getkirby/composer-installer",
|
"name": "getkirby/composer-installer",
|
||||||
@@ -232,24 +238,26 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "laminas/laminas-zendframework-bridge",
|
"name": "laminas/laminas-zendframework-bridge",
|
||||||
"version": "1.1.1",
|
"version": "1.2.0",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/laminas/laminas-zendframework-bridge.git",
|
"url": "https://github.com/laminas/laminas-zendframework-bridge.git",
|
||||||
"reference": "6ede70583e101030bcace4dcddd648f760ddf642"
|
"reference": "6cccbddfcfc742eb02158d6137ca5687d92cee32"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6ede70583e101030bcace4dcddd648f760ddf642",
|
"url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6cccbddfcfc742eb02158d6137ca5687d92cee32",
|
||||||
"reference": "6ede70583e101030bcace4dcddd648f760ddf642",
|
"reference": "6cccbddfcfc742eb02158d6137ca5687d92cee32",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^5.6 || ^7.0 || ^8.0"
|
"php": "^7.3 || ^8.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1 || ^9.3",
|
"phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1 || ^9.3",
|
||||||
"squizlabs/php_codesniffer": "^3.5"
|
"psalm/plugin-phpunit": "^0.15.1",
|
||||||
|
"squizlabs/php_codesniffer": "^3.5",
|
||||||
|
"vimeo/psalm": "^4.6"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
@@ -288,7 +296,7 @@
|
|||||||
"type": "community_bridge"
|
"type": "community_bridge"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-09-14T14:23:00+00:00"
|
"time": "2021-02-25T21:54:58+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "league/color-extractor",
|
"name": "league/color-extractor",
|
||||||
@@ -454,16 +462,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpmailer/phpmailer",
|
"name": "phpmailer/phpmailer",
|
||||||
"version": "v6.2.0",
|
"version": "v6.4.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/PHPMailer/PHPMailer.git",
|
"url": "https://github.com/PHPMailer/PHPMailer.git",
|
||||||
"reference": "e38888a75c070304ca5514197d4847a59a5c853f"
|
"reference": "9256f12d8fb0cd0500f93b19e18c356906cbed3d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e38888a75c070304ca5514197d4847a59a5c853f",
|
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/9256f12d8fb0cd0500f93b19e18c356906cbed3d",
|
||||||
"reference": "e38888a75c070304ca5514197d4847a59a5c853f",
|
"reference": "9256f12d8fb0cd0500f93b19e18c356906cbed3d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -481,7 +489,7 @@
|
|||||||
"yoast/phpunit-polyfills": "^0.2.0"
|
"yoast/phpunit-polyfills": "^0.2.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"ext-mbstring": "Needed to send email in multibyte encoding charset",
|
"ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
|
||||||
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
|
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
|
||||||
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
|
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
|
||||||
"psr/log": "For optional PSR-3 debug logging",
|
"psr/log": "For optional PSR-3 debug logging",
|
||||||
@@ -518,7 +526,7 @@
|
|||||||
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
|
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
|
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
|
||||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.2.0"
|
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.4.1"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -526,20 +534,20 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2020-11-25T15:24:57+00:00"
|
"time": "2021-04-29T12:25:04+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "psr/log",
|
"name": "psr/log",
|
||||||
"version": "1.1.3",
|
"version": "1.1.4",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/php-fig/log.git",
|
"url": "https://github.com/php-fig/log.git",
|
||||||
"reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
|
"reference": "d49695b909c3b7628b6289db5479a1c204601f11"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
|
"url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
|
||||||
"reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
|
"reference": "d49695b909c3b7628b6289db5479a1c204601f11",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -563,7 +571,7 @@
|
|||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "PHP-FIG",
|
"name": "PHP-FIG",
|
||||||
"homepage": "http://www.php-fig.org/"
|
"homepage": "https://www.php-fig.org/"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Common interface for logging libraries",
|
"description": "Common interface for logging libraries",
|
||||||
@@ -574,9 +582,9 @@
|
|||||||
"psr-3"
|
"psr-3"
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/php-fig/log/tree/1.1.3"
|
"source": "https://github.com/php-fig/log/tree/1.1.4"
|
||||||
},
|
},
|
||||||
"time": "2020-03-23T09:12:05+00:00"
|
"time": "2021-05-03T11:20:27+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/polyfill-mbstring",
|
"name": "symfony/polyfill-mbstring",
|
||||||
|
@@ -36,7 +36,10 @@ return [
|
|||||||
[
|
[
|
||||||
'pattern' => [
|
'pattern' => [
|
||||||
'pages/(:any)/blueprints',
|
'pages/(:any)/blueprints',
|
||||||
// Deprecated: remove in 3.6.0
|
/**
|
||||||
|
* @deprecated
|
||||||
|
* @todo remove in 3.6.0
|
||||||
|
*/
|
||||||
'pages/(:any)/children/blueprints',
|
'pages/(:any)/children/blueprints',
|
||||||
],
|
],
|
||||||
'method' => 'GET',
|
'method' => 'GET',
|
||||||
|
@@ -49,7 +49,10 @@ return [
|
|||||||
[
|
[
|
||||||
'pattern' => [
|
'pattern' => [
|
||||||
'site/blueprints',
|
'site/blueprints',
|
||||||
// Deprecated: remove in 3.6.0
|
/**
|
||||||
|
* @deprecated
|
||||||
|
* @todo remove in 3.6.0
|
||||||
|
*/
|
||||||
'site/children/blueprints',
|
'site/children/blueprints',
|
||||||
],
|
],
|
||||||
'method' => 'GET',
|
'method' => 'GET',
|
||||||
|
@@ -330,6 +330,8 @@ return [
|
|||||||
* @param Closure $originalHandler Deprecated: Callback function to the original URL handler with `$path` and `$options` as parameters
|
* @param Closure $originalHandler Deprecated: Callback function to the original URL handler with `$path` and `$options` as parameters
|
||||||
* Use `$kirby->nativeComponent('url')` inside your URL component instead.
|
* Use `$kirby->nativeComponent('url')` inside your URL component instead.
|
||||||
* @return string
|
* @return string
|
||||||
|
*
|
||||||
|
* @todo Remove $originalHandler parameter in 3.6.0
|
||||||
*/
|
*/
|
||||||
'url' => function (App $kirby, string $path = null, $options = null, Closure $originalHandler = null): string {
|
'url' => function (App $kirby, string $path = null, $options = null, Closure $originalHandler = null): string {
|
||||||
$language = null;
|
$language = null;
|
||||||
|
@@ -8,5 +8,10 @@ return [
|
|||||||
'marks' => function ($marks = true) {
|
'marks' => function ($marks = true) {
|
||||||
return $marks;
|
return $marks;
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
'computed' => [
|
||||||
|
'value' => function () {
|
||||||
|
return trim($this->value);
|
||||||
|
}
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
@@ -12,9 +12,22 @@ return [
|
|||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* Sets the allowed HTML formats. Available formats: `bold`, `italic`, `underline`, `strike`, `code`, `link`. Activate them all by passing `true`. Deactivate them all by passing `false`
|
* Sets the allowed HTML formats. Available formats: `bold`, `italic`, `underline`, `strike`, `code`, `link`. Activate them all by passing `true`. Deactivate them all by passing `false`
|
||||||
|
* @param array|bool $marks
|
||||||
*/
|
*/
|
||||||
'marks' => function ($marks = true) {
|
'marks' => function ($marks = true) {
|
||||||
return $marks;
|
return $marks;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* Sets the allowed nodes. Available nodes: `bulletList`, `orderedList`, `heading`, `horizontalRule`, `listItem`. Activate/deactivate them all by passing `true`/`false`. Default nodes are `heading`, `bulletList`, `orderedList`.
|
||||||
|
* @param array|bool|null $nodes
|
||||||
|
*/
|
||||||
|
'nodes' => function ($nodes = null) {
|
||||||
|
return $nodes;
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
'computed' => [
|
||||||
|
'value' => function () {
|
||||||
|
return trim($this->value);
|
||||||
|
}
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
@@ -171,14 +171,13 @@ if (function_exists('e') === false) {
|
|||||||
* Escape context specific output
|
* Escape context specific output
|
||||||
*
|
*
|
||||||
* @param string $string Untrusted data
|
* @param string $string Untrusted data
|
||||||
* @param string $context Location of output
|
* @param string $context Location of output (`html`, `attr`, `js`, `css`, `url` or `xml`)
|
||||||
* @param bool $strict Whether to escape an extended set of characters (HTML attributes only)
|
|
||||||
* @return string Escaped data
|
* @return string Escaped data
|
||||||
*/
|
*/
|
||||||
function esc($string, $context = 'html', $strict = false)
|
function esc($string, $context = 'html')
|
||||||
{
|
{
|
||||||
if (method_exists('Kirby\Toolkit\Escape', $context) === true) {
|
if (method_exists('Kirby\Toolkit\Escape', $context) === true) {
|
||||||
return Escape::$context($string, $strict);
|
return Escape::$context($string);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $string;
|
return $string;
|
||||||
@@ -308,15 +307,25 @@ function invalid(array $data = [], array $rules = [], array $messages = [])
|
|||||||
|
|
||||||
// See: http://php.net/manual/en/types.comparisons.php
|
// See: http://php.net/manual/en/types.comparisons.php
|
||||||
// only false for: null, undefined variable, '', []
|
// only false for: null, undefined variable, '', []
|
||||||
$filled = isset($data[$field]) && $data[$field] !== '' && $data[$field] !== [];
|
$value = $data[$field] ?? null;
|
||||||
|
$filled = $value !== null && $value !== '' && $value !== [];
|
||||||
$message = $messages[$field] ?? $field;
|
$message = $messages[$field] ?? $field;
|
||||||
|
|
||||||
// True if there is an error message for each validation method.
|
// True if there is an error message for each validation method.
|
||||||
$messageArray = is_array($message);
|
$messageArray = is_array($message);
|
||||||
|
|
||||||
foreach ($validations as $method => $options) {
|
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) {
|
if (is_numeric($method) === true) {
|
||||||
$method = $options;
|
$method = $options;
|
||||||
|
$options = [$value];
|
||||||
|
} else {
|
||||||
|
if (is_array($options) === false) {
|
||||||
|
$options = [$options];
|
||||||
|
}
|
||||||
|
|
||||||
|
array_unshift($options, $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
$validationIndex++;
|
$validationIndex++;
|
||||||
@@ -327,12 +336,6 @@ function invalid(array $data = [], array $rules = [], array $messages = [])
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
} elseif ($filled) {
|
} elseif ($filled) {
|
||||||
if (is_array($options) === false) {
|
|
||||||
$options = [$options];
|
|
||||||
}
|
|
||||||
|
|
||||||
array_unshift($options, $data[$field] ?? null);
|
|
||||||
|
|
||||||
if (V::$method(...$options) === true) {
|
if (V::$method(...$options) === true) {
|
||||||
// Field is filled and passes validation method.
|
// Field is filled and passes validation method.
|
||||||
continue;
|
continue;
|
||||||
|
@@ -337,7 +337,7 @@ return function (App $app) {
|
|||||||
* templates without the risk of XSS attacks
|
* templates without the risk of XSS attacks
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\Field $field
|
* @param \Kirby\Cms\Field $field
|
||||||
* @param string $context html, attr, js or css
|
* @param string $context Location of output (`html`, `attr`, `js`, `css`, `url` or `xml`)
|
||||||
*/
|
*/
|
||||||
'escape' => function (Field $field, string $context = 'html') {
|
'escape' => function (Field $field, string $context = 'html') {
|
||||||
$field->value = esc($field->value, $context);
|
$field->value = esc($field->value, $context);
|
||||||
@@ -528,7 +528,7 @@ return function (App $app) {
|
|||||||
* Converts the field content to a slug
|
* Converts the field content to a slug
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\Field $field
|
* @param \Kirby\Cms\Field $field
|
||||||
* @return \Kirby\cms\Field
|
* @return \Kirby\Cms\Field
|
||||||
*/
|
*/
|
||||||
'slug' => function (Field $field) {
|
'slug' => function (Field $field) {
|
||||||
$field->value = Str::slug($field->value);
|
$field->value = Str::slug($field->value);
|
||||||
@@ -539,7 +539,7 @@ return function (App $app) {
|
|||||||
* Applies SmartyPants to the field
|
* Applies SmartyPants to the field
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\Field $field
|
* @param \Kirby\Cms\Field $field
|
||||||
* @return \Kirby\cms\Field
|
* @return \Kirby\Cms\Field
|
||||||
*/
|
*/
|
||||||
'smartypants' => function (Field $field) use ($app) {
|
'smartypants' => function (Field $field) use ($app) {
|
||||||
$field->value = $app->smartypants($field->value);
|
$field->value = $app->smartypants($field->value);
|
||||||
@@ -560,7 +560,7 @@ return function (App $app) {
|
|||||||
* Converts the field content to uppercase
|
* Converts the field content to uppercase
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\Field $field
|
* @param \Kirby\Cms\Field $field
|
||||||
* @return \Kirby\cms\Field
|
* @return \Kirby\Cms\Field
|
||||||
*/
|
*/
|
||||||
'upper' => function (Field $field) {
|
'upper' => function (Field $field) {
|
||||||
$field->value = Str::upper($field->value);
|
$field->value = Str::upper($field->value);
|
||||||
@@ -572,7 +572,7 @@ return function (App $app) {
|
|||||||
* the last space with ` `
|
* the last space with ` `
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\Field $field
|
* @param \Kirby\Cms\Field $field
|
||||||
* @return \Kirby\cms\Field
|
* @return \Kirby\Cms\Field
|
||||||
*/
|
*/
|
||||||
'widont' => function (Field $field) {
|
'widont' => function (Field $field) {
|
||||||
$field->value = Str::widont($field->value);
|
$field->value = Str::widont($field->value);
|
||||||
|
@@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
use Kirby\Cms\Html;
|
use Kirby\Cms\Html;
|
||||||
use Kirby\Cms\Url;
|
use Kirby\Cms\Url;
|
||||||
|
use Kirby\Text\KirbyTag;
|
||||||
|
use Kirby\Toolkit\F;
|
||||||
|
use Kirby\Toolkit\Str;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default KirbyTags definition
|
* Default KirbyTags definition
|
||||||
@@ -236,23 +239,113 @@ return [
|
|||||||
*/
|
*/
|
||||||
'video' => [
|
'video' => [
|
||||||
'attr' => [
|
'attr' => [
|
||||||
'class',
|
'autoplay',
|
||||||
'caption',
|
'caption',
|
||||||
|
'controls',
|
||||||
|
'class',
|
||||||
'height',
|
'height',
|
||||||
'width'
|
'loop',
|
||||||
|
'muted',
|
||||||
|
'poster',
|
||||||
|
'preload',
|
||||||
|
'style',
|
||||||
|
'width',
|
||||||
],
|
],
|
||||||
'html' => function ($tag) {
|
'html' => function ($tag) {
|
||||||
$video = Html::video(
|
// all available video tag attributes
|
||||||
$tag->value,
|
$availableAttrs = KirbyTag::$types[$tag->type]['attr'];
|
||||||
$tag->kirby()->option('kirbytext.video.options', []),
|
|
||||||
[
|
|
||||||
'height' => $tag->height ?? $tag->kirby()->option('kirbytext.video.height'),
|
|
||||||
'width' => $tag->width ?? $tag->kirby()->option('kirbytext.video.width'),
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
return Html::figure([$video], $tag->caption, [
|
// global video tag options
|
||||||
'class' => $tag->class ?? $tag->kirby()->option('kirbytext.video.class', 'video'),
|
$attrs = $tag->kirby()->option('kirbytext.video', []);
|
||||||
|
$options = $attrs['options'] ?? [];
|
||||||
|
|
||||||
|
// removes options from attributes
|
||||||
|
if (isset($attrs['options']) === true) {
|
||||||
|
unset($attrs['options']);
|
||||||
|
}
|
||||||
|
|
||||||
|
// injects default values from global options
|
||||||
|
// applies only defined attributes to safely update tag props
|
||||||
|
foreach ($attrs as $key => $value) {
|
||||||
|
if (
|
||||||
|
in_array($key, $availableAttrs) === true &&
|
||||||
|
(isset($tag->{$key}) === false || $tag->{$key} === null)
|
||||||
|
) {
|
||||||
|
$tag->{$key} = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// checks and gets if poster is local file
|
||||||
|
if (
|
||||||
|
empty($tag->poster) === false &&
|
||||||
|
Str::startsWith($tag->poster, 'http://') !== true &&
|
||||||
|
Str::startsWith($tag->poster, 'https://') !== true
|
||||||
|
) {
|
||||||
|
if ($poster = $tag->file($tag->poster)) {
|
||||||
|
$tag->poster = $poster->url();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// converts tag attributes to supported formats (listed below) to output correct html
|
||||||
|
// booleans: autoplay, controls, loop, muted
|
||||||
|
// strings : height, poster, preload, width
|
||||||
|
// for ex : `autoplay` will not work if `false` is a `string` instead of a `boolean`
|
||||||
|
$attrs = [
|
||||||
|
'autoplay' => $autoplay = Str::toType($tag->autoplay, 'bool'),
|
||||||
|
'controls' => Str::toType($tag->controls ?? true, 'bool'),
|
||||||
|
'height' => $tag->height,
|
||||||
|
'loop' => Str::toType($tag->loop, 'bool'),
|
||||||
|
'muted' => Str::toType($tag->muted ?? $autoplay, 'bool'),
|
||||||
|
'poster' => $tag->poster,
|
||||||
|
'preload' => $tag->preload,
|
||||||
|
'width' => $tag->width
|
||||||
|
];
|
||||||
|
|
||||||
|
// handles local and remote video file
|
||||||
|
if (
|
||||||
|
Str::startsWith($tag->value, 'http://') !== true &&
|
||||||
|
Str::startsWith($tag->value, 'https://') !== true
|
||||||
|
) {
|
||||||
|
// handles local video file
|
||||||
|
if ($tag->file = $tag->file($tag->value)) {
|
||||||
|
$source = Html::tag('source', null, [
|
||||||
|
'src' => $tag->file->url(),
|
||||||
|
'type' => $tag->file->mime()
|
||||||
|
]);
|
||||||
|
$video = Html::tag('video', [$source], $attrs);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// firstly handles supported video providers as youtube, vimeo, etc
|
||||||
|
try {
|
||||||
|
$video = Html::video(
|
||||||
|
$tag->value,
|
||||||
|
$options,
|
||||||
|
// providers only support width and height attributes
|
||||||
|
[
|
||||||
|
'height' => $tag->height,
|
||||||
|
'width' => $tag->width
|
||||||
|
]
|
||||||
|
);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
// if not one of the supported video providers
|
||||||
|
// it checks if there is a valid remote video file
|
||||||
|
$extension = F::extension($tag->value);
|
||||||
|
$type = F::extensionToType($extension);
|
||||||
|
$mime = F::extensionToMime($extension);
|
||||||
|
|
||||||
|
if ($type === 'video') {
|
||||||
|
$source = Html::tag('source', null, [
|
||||||
|
'src' => $tag->value,
|
||||||
|
'type' => $mime
|
||||||
|
]);
|
||||||
|
$video = Html::tag('video', [$source], $attrs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Html::figure([$video ?? ''], $tag->caption, [
|
||||||
|
'class' => $tag->class ?? 'video',
|
||||||
|
'style' => $tag->style
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@@ -5,4 +5,4 @@
|
|||||||
* @var string $code
|
* @var string $code
|
||||||
* @var int $timeout
|
* @var int $timeout
|
||||||
*/
|
*/
|
||||||
echo I18n::template('login.email.login.body', null, compact('user', 'code', 'timeout'));
|
echo I18n::template('login.email.login.body', null, compact('user', 'code', 'timeout'), $user->language());
|
||||||
|
@@ -5,4 +5,4 @@
|
|||||||
* @var string $code
|
* @var string $code
|
||||||
* @var int $timeout
|
* @var int $timeout
|
||||||
*/
|
*/
|
||||||
echo I18n::template('login.email.password-reset.body', null, compact('user', 'code', 'timeout'));
|
echo I18n::template('login.email.password-reset.body', null, compact('user', 'code', 'timeout'), $user->language());
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
||||||
"error.page.notFound": "Страницата \"{slug}\" не може да бъде намерена",
|
"error.page.notFound": "Страницата \"{slug}\" не може да бъде намерена",
|
||||||
"error.page.num.invalid": "Моля въведете валидно число за сортиране. Числата не трябва да са негативни.",
|
"error.page.num.invalid": "Моля въведете валидно число за сортиране. Числата не трябва да са негативни.",
|
||||||
"error.page.slug.invalid": "Моля въведете валиден URL префикс",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||||
"error.page.sort.permission": "Страницата \"{slug}\" не може да бъде сортирана",
|
"error.page.sort.permission": "Страницата \"{slug}\" не може да бъде сортирана",
|
||||||
"error.page.status.invalid": "Моля изберете валиден статус на страницата",
|
"error.page.status.invalid": "Моля изберете валиден статус на страницата",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Моля въведете валидна парола. Тя трабва да съдържа поне 8 символа.",
|
"error.user.password.invalid": "Моля въведете валидна парола. Тя трабва да съдържа поне 8 символа.",
|
||||||
"error.user.password.notSame": "\u041c\u043e\u043b\u044f, \u043f\u043e\u0442\u0432\u044a\u0440\u0434\u0435\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u0430\u0442\u0430",
|
"error.user.password.notSame": "\u041c\u043e\u043b\u044f, \u043f\u043e\u0442\u0432\u044a\u0440\u0434\u0435\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u0430\u0442\u0430",
|
||||||
"error.user.password.undefined": "Потребителят няма парола",
|
"error.user.password.undefined": "Потребителят няма парола",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Моля въведете валидна роля",
|
"error.user.role.invalid": "Моля въведете валидна роля",
|
||||||
"error.user.update.permission": "Нямате права да обновите този потребител \"{name}\"",
|
"error.user.update.permission": "Нямате права да обновите този потребител \"{name}\"",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "No tens permís per duplicar \"{slug}\"",
|
"error.page.duplicate.permission": "No tens permís per duplicar \"{slug}\"",
|
||||||
"error.page.notFound": "La pàgina \"{slug}\" no s'ha trobat",
|
"error.page.notFound": "La pàgina \"{slug}\" no s'ha trobat",
|
||||||
"error.page.num.invalid": "Si us plau, introdueix un número d 'ordenació vàlid. Els números no poden ser negatius.",
|
"error.page.num.invalid": "Si us plau, introdueix un número d 'ordenació vàlid. Els números no poden ser negatius.",
|
||||||
"error.page.slug.invalid": "Introduïu un prefix d'URL vàlid",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "La longitud del nom ha de tenir menys de caràcters \"{length}\"",
|
"error.page.slug.maxlength": "La longitud del nom ha de tenir menys de caràcters \"{length}\"",
|
||||||
"error.page.sort.permission": "La pàgina \"{slug}\" no es pot ordenar",
|
"error.page.sort.permission": "La pàgina \"{slug}\" no es pot ordenar",
|
||||||
"error.page.status.invalid": "Si us plau, estableix un estat de pàgina vàlid",
|
"error.page.status.invalid": "Si us plau, estableix un estat de pàgina vàlid",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Introduïu una contrasenya vàlida. Les contrasenyes han de tenir com a mínim 8 caràcters.",
|
"error.user.password.invalid": "Introduïu una contrasenya vàlida. Les contrasenyes han de tenir com a mínim 8 caràcters.",
|
||||||
"error.user.password.notSame": "Les contrasenyes no coincideixen",
|
"error.user.password.notSame": "Les contrasenyes no coincideixen",
|
||||||
"error.user.password.undefined": "L'usuari no té una contrasenya",
|
"error.user.password.undefined": "L'usuari no té una contrasenya",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Si us plau, introdueix un rol vàlid",
|
"error.user.role.invalid": "Si us plau, introdueix un rol vàlid",
|
||||||
"error.user.update.permission": "No tens permís per actualitzar l'usuari \"{name}\"",
|
"error.user.update.permission": "No tens permís per actualitzar l'usuari \"{name}\"",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "Nemáte dovoleno duplikovat \"{slug}\"",
|
"error.page.duplicate.permission": "Nemáte dovoleno duplikovat \"{slug}\"",
|
||||||
"error.page.notFound": "Str\u00e1nku se nepoda\u0159ilo nal\u00e9zt.",
|
"error.page.notFound": "Str\u00e1nku se nepoda\u0159ilo nal\u00e9zt.",
|
||||||
"error.page.num.invalid": "Zadejte prosím platné pořadové číslo. Čísla nesmí být záporná.",
|
"error.page.num.invalid": "Zadejte prosím platné pořadové číslo. Čísla nesmí být záporná.",
|
||||||
"error.page.slug.invalid": "Zadejte prosím platnou předponu URL",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "URL musí mít méně než \"{length}\" znaků",
|
"error.page.slug.maxlength": "URL musí mít méně než \"{length}\" znaků",
|
||||||
"error.page.sort.permission": "Stránce \"{slug}\" nelze změnit pořadí",
|
"error.page.sort.permission": "Stránce \"{slug}\" nelze změnit pořadí",
|
||||||
"error.page.status.invalid": "Nastavte prosím platný status stránky",
|
"error.page.status.invalid": "Nastavte prosím platný status stránky",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Zadejte prosím platné heslo. Heslo musí být dlouhé alespoň 8 znaků.",
|
"error.user.password.invalid": "Zadejte prosím platné heslo. Heslo musí být dlouhé alespoň 8 znaků.",
|
||||||
"error.user.password.notSame": "Pros\u00edm potvr\u010fte heslo",
|
"error.user.password.notSame": "Pros\u00edm potvr\u010fte heslo",
|
||||||
"error.user.password.undefined": "Uživatel nemá nastavené heslo.",
|
"error.user.password.undefined": "Uživatel nemá nastavené heslo.",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Zadejte prosím platnou roli",
|
"error.user.role.invalid": "Zadejte prosím platnou roli",
|
||||||
"error.user.update.permission": "Nemáte dovoleno upravit uživatele \"{name}\"",
|
"error.user.update.permission": "Nemáte dovoleno upravit uživatele \"{name}\"",
|
||||||
|
|
||||||
@@ -232,7 +233,7 @@
|
|||||||
"field.blocks.image.name": "Obrázek",
|
"field.blocks.image.name": "Obrázek",
|
||||||
"field.blocks.image.placeholder": "Vyberte obrázek",
|
"field.blocks.image.placeholder": "Vyberte obrázek",
|
||||||
"field.blocks.image.ratio": "Poměr stran",
|
"field.blocks.image.ratio": "Poměr stran",
|
||||||
"field.blocks.image.url": "Image URL",
|
"field.blocks.image.url": "URL obrázku",
|
||||||
"field.blocks.list.name": "Seznam",
|
"field.blocks.list.name": "Seznam",
|
||||||
"field.blocks.markdown.name": "Markdown",
|
"field.blocks.markdown.name": "Markdown",
|
||||||
"field.blocks.markdown.label": "Text",
|
"field.blocks.markdown.label": "Text",
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "Du har ikke mulighed for at duplikere \"{slug}\"",
|
"error.page.duplicate.permission": "Du har ikke mulighed for at duplikere \"{slug}\"",
|
||||||
"error.page.notFound": "Siden kunne ikke findes",
|
"error.page.notFound": "Siden kunne ikke findes",
|
||||||
"error.page.num.invalid": "Indtast venligst et gyldigt sorteringsnummer. Nummeret kan ikke være negativt.",
|
"error.page.num.invalid": "Indtast venligst et gyldigt sorteringsnummer. Nummeret kan ikke være negativt.",
|
||||||
"error.page.slug.invalid": "Indtast venligst en gyldig URL prefix",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Navnet skal være kortere end \"{length}\" tegn",
|
"error.page.slug.maxlength": "Navnet skal være kortere end \"{length}\" tegn",
|
||||||
"error.page.sort.permission": "Siden \"{slug}\" kan ikke sorteres",
|
"error.page.sort.permission": "Siden \"{slug}\" kan ikke sorteres",
|
||||||
"error.page.status.invalid": "Sæt venligst en gyldig status for siden",
|
"error.page.status.invalid": "Sæt venligst en gyldig status for siden",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Indtast venligst en gyldig adgangskode. Adgangskoder skal minimum være 8 tegn lange.",
|
"error.user.password.invalid": "Indtast venligst en gyldig adgangskode. Adgangskoder skal minimum være 8 tegn lange.",
|
||||||
"error.user.password.notSame": "Bekr\u00e6ft venligst adgangskoden",
|
"error.user.password.notSame": "Bekr\u00e6ft venligst adgangskoden",
|
||||||
"error.user.password.undefined": "Brugeren har ikke en adgangskode",
|
"error.user.password.undefined": "Brugeren har ikke en adgangskode",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Indtast venligst en gyldig rolle",
|
"error.user.role.invalid": "Indtast venligst en gyldig rolle",
|
||||||
"error.user.update.permission": "Du har ikke tilladelse til at opdatere brugeren \"{name}\"",
|
"error.user.update.permission": "Du har ikke tilladelse til at opdatere brugeren \"{name}\"",
|
||||||
|
|
||||||
|
@@ -71,7 +71,7 @@
|
|||||||
"error.file.extension.missing": "Du kannst keine Dateien ohne Dateiendung hochladen",
|
"error.file.extension.missing": "Du kannst keine Dateien ohne Dateiendung hochladen",
|
||||||
"error.file.maxheight": "Die Bildhöhe darf {height} Pixel nicht überschreiten",
|
"error.file.maxheight": "Die Bildhöhe darf {height} Pixel nicht überschreiten",
|
||||||
"error.file.maxsize": "Die Datei ist zu groß",
|
"error.file.maxsize": "Die Datei ist zu groß",
|
||||||
"error.file.maxwidth": "Die Bildbreite darf {height} Pixel nicht überschreiten",
|
"error.file.maxwidth": "Die Bildbreite darf {width} Pixel nicht überschreiten",
|
||||||
"error.file.mime.differs": "Die Datei muss den Medientyp \"{mime}\" haben.",
|
"error.file.mime.differs": "Die Datei muss den Medientyp \"{mime}\" haben.",
|
||||||
"error.file.mime.forbidden": "Der Medientyp \"{mime}\" ist nicht erlaubt",
|
"error.file.mime.forbidden": "Der Medientyp \"{mime}\" ist nicht erlaubt",
|
||||||
"error.file.mime.invalid": "Ungültiger Dateityp: {mime}",
|
"error.file.mime.invalid": "Ungültiger Dateityp: {mime}",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Bitte gib ein gültiges Passwort ein. Passwörter müssen mindestens 8 Zeichen lang sein.",
|
"error.user.password.invalid": "Bitte gib ein gültiges Passwort ein. Passwörter müssen mindestens 8 Zeichen lang sein.",
|
||||||
"error.user.password.notSame": "Die Passwörter stimmen nicht überein",
|
"error.user.password.notSame": "Die Passwörter stimmen nicht überein",
|
||||||
"error.user.password.undefined": "Der Account hat kein Passwort",
|
"error.user.password.undefined": "Der Account hat kein Passwort",
|
||||||
|
"error.user.password.wrong": "Falsches Passwort",
|
||||||
"error.user.role.invalid": "Bitte gib eine gültige Rolle an",
|
"error.user.role.invalid": "Bitte gib eine gültige Rolle an",
|
||||||
"error.user.update.permission": "Du darfst den den Account \"{name}\" nicht bearbeiten",
|
"error.user.update.permission": "Du darfst den den Account \"{name}\" nicht bearbeiten",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
||||||
"error.page.notFound": "Δεν ήταν δυνατή η εύρεση της σελίδας \"{slug}\"",
|
"error.page.notFound": "Δεν ήταν δυνατή η εύρεση της σελίδας \"{slug}\"",
|
||||||
"error.page.num.invalid": "Παρακαλώ εισάγετε έναν έγκυρο αριθμό ταξινόμησης. Οι αριθμοί δεν μπορεί να είναι αρνητικοί.",
|
"error.page.num.invalid": "Παρακαλώ εισάγετε έναν έγκυρο αριθμό ταξινόμησης. Οι αριθμοί δεν μπορεί να είναι αρνητικοί.",
|
||||||
"error.page.slug.invalid": "Παρακαλώ εισάγετε ένα έγκυρο πρόθεμα διεύθυνσης URL",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||||
"error.page.sort.permission": "Δεν είναι δυνατή η ταξινόμηση της σελίδας \"{slug}\"",
|
"error.page.sort.permission": "Δεν είναι δυνατή η ταξινόμηση της σελίδας \"{slug}\"",
|
||||||
"error.page.status.invalid": "Ορίστε μια έγκυρη κατάσταση σελίδας",
|
"error.page.status.invalid": "Ορίστε μια έγκυρη κατάσταση σελίδας",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Παρακαλώ εισάγετε έναν έγκυρο κωδικό πρόσβασης. Οι κωδικοί πρόσβασης πρέπει να έχουν μήκος τουλάχιστον 8 χαρακτήρων.",
|
"error.user.password.invalid": "Παρακαλώ εισάγετε έναν έγκυρο κωδικό πρόσβασης. Οι κωδικοί πρόσβασης πρέπει να έχουν μήκος τουλάχιστον 8 χαρακτήρων.",
|
||||||
"error.user.password.notSame": "\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03bf\u03cd\u03bc\u03b5 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03ce\u03c3\u03c4\u03b5 \u03c4\u03bf\u03bd \u039a\u03c9\u03b4\u03b9\u03ba\u03cc \u03a0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2",
|
"error.user.password.notSame": "\u03a0\u03b1\u03c1\u03b1\u03ba\u03b1\u03bb\u03bf\u03cd\u03bc\u03b5 \u03b5\u03c0\u03b9\u03b2\u03b5\u03b2\u03b1\u03b9\u03ce\u03c3\u03c4\u03b5 \u03c4\u03bf\u03bd \u039a\u03c9\u03b4\u03b9\u03ba\u03cc \u03a0\u03c1\u03cc\u03c3\u03b2\u03b1\u03c3\u03b7\u03c2",
|
||||||
"error.user.password.undefined": "Ο χρήστης δεν έχει κωδικό πρόσβασης",
|
"error.user.password.undefined": "Ο χρήστης δεν έχει κωδικό πρόσβασης",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Παρακαλώ εισαγάγετε έναν έγκυρο ρόλο",
|
"error.user.role.invalid": "Παρακαλώ εισαγάγετε έναν έγκυρο ρόλο",
|
||||||
"error.user.update.permission": "Δεν επιτρέπεται η ενημέρωση του χρήστη \"{name}\"",
|
"error.user.update.permission": "Δεν επιτρέπεται η ενημέρωση του χρήστη \"{name}\"",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
||||||
"error.page.notFound": "The page \"{slug}\" cannot be found",
|
"error.page.notFound": "The page \"{slug}\" cannot be found",
|
||||||
"error.page.num.invalid": "Please enter a valid sorting number. Numbers must not be negative.",
|
"error.page.num.invalid": "Please enter a valid sorting number. Numbers must not be negative.",
|
||||||
"error.page.slug.invalid": "Please enter a valid URL prefix",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||||
"error.page.sort.permission": "The page \"{slug}\" cannot be sorted",
|
"error.page.sort.permission": "The page \"{slug}\" cannot be sorted",
|
||||||
"error.page.status.invalid": "Please set a valid page status",
|
"error.page.status.invalid": "Please set a valid page status",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Please enter a valid password. Passwords must be at least 8 characters long.",
|
"error.user.password.invalid": "Please enter a valid password. Passwords must be at least 8 characters long.",
|
||||||
"error.user.password.notSame": "The passwords do not match",
|
"error.user.password.notSame": "The passwords do not match",
|
||||||
"error.user.password.undefined": "The user does not have a password",
|
"error.user.password.undefined": "The user does not have a password",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Please enter a valid role",
|
"error.user.role.invalid": "Please enter a valid role",
|
||||||
"error.user.update.permission": "You are not allowed to update the user \"{name}\"",
|
"error.user.update.permission": "You are not allowed to update the user \"{name}\"",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "No tienes permitido duplicar \"{slug}\"",
|
"error.page.duplicate.permission": "No tienes permitido duplicar \"{slug}\"",
|
||||||
"error.page.notFound": "La página \"{slug}\" no se encuentra",
|
"error.page.notFound": "La página \"{slug}\" no se encuentra",
|
||||||
"error.page.num.invalid": "Por favor, introduce un número de posición válido. Los números no deben ser negativos.",
|
"error.page.num.invalid": "Por favor, introduce un número de posición válido. Los números no deben ser negativos.",
|
||||||
"error.page.slug.invalid": "Por favor ingresa un prefijo de URL válido",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||||
"error.page.sort.permission": "La página \"{slug}\" no se puede ordenar",
|
"error.page.sort.permission": "La página \"{slug}\" no se puede ordenar",
|
||||||
"error.page.status.invalid": "Por favor, establece una estado de página válido",
|
"error.page.status.invalid": "Por favor, establece una estado de página válido",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Por favor ingresa una contraseña valida. Las contraseñas deben tener al menos 8 caracteres de largo.",
|
"error.user.password.invalid": "Por favor ingresa una contraseña valida. Las contraseñas deben tener al menos 8 caracteres de largo.",
|
||||||
"error.user.password.notSame": "Por favor confirma la contrase\u00f1a",
|
"error.user.password.notSame": "Por favor confirma la contrase\u00f1a",
|
||||||
"error.user.password.undefined": "El usuario no tiene contraseña",
|
"error.user.password.undefined": "El usuario no tiene contraseña",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Por favor ingresa un rol valido",
|
"error.user.role.invalid": "Por favor ingresa un rol valido",
|
||||||
"error.user.update.permission": "No tienes permiso para actualizar al usuario \"{name}\"",
|
"error.user.update.permission": "No tienes permiso para actualizar al usuario \"{name}\"",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
||||||
"error.page.notFound": "La página \"{slug}\" no puede ser encontrada",
|
"error.page.notFound": "La página \"{slug}\" no puede ser encontrada",
|
||||||
"error.page.num.invalid": "Por favor, introduzca un número válido. Estos no deben ser negativos.",
|
"error.page.num.invalid": "Por favor, introduzca un número válido. Estos no deben ser negativos.",
|
||||||
"error.page.slug.invalid": "Por favor ingrese un prefijo de URL válido",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||||
"error.page.sort.permission": "La página \"{slug}\" no se puede ordenar",
|
"error.page.sort.permission": "La página \"{slug}\" no se puede ordenar",
|
||||||
"error.page.status.invalid": "Por favor, establezca un estado de página válido",
|
"error.page.status.invalid": "Por favor, establezca un estado de página válido",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Por favor introduce una contraseña válida. Las contraseñas deben tener al menos 8 caracteres de largo.",
|
"error.user.password.invalid": "Por favor introduce una contraseña válida. Las contraseñas deben tener al menos 8 caracteres de largo.",
|
||||||
"error.user.password.notSame": "Las contraseñas no coinciden",
|
"error.user.password.notSame": "Las contraseñas no coinciden",
|
||||||
"error.user.password.undefined": "El usuario no tiene contraseña",
|
"error.user.password.undefined": "El usuario no tiene contraseña",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Por favor ingrese un rol válido",
|
"error.user.role.invalid": "Por favor ingrese un rol válido",
|
||||||
"error.user.update.permission": "No tienes permitido actualizar al usuario \"{name}\"",
|
"error.user.update.permission": "No tienes permitido actualizar al usuario \"{name}\"",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
||||||
"error.page.notFound": "صفحه مورد نظر با آدرس «{slug}» پیدا نشد.",
|
"error.page.notFound": "صفحه مورد نظر با آدرس «{slug}» پیدا نشد.",
|
||||||
"error.page.num.invalid": "لطفا شماره ترتیب را بدرستی وارد نمایید. اعداد نباید منفی باشند.",
|
"error.page.num.invalid": "لطفا شماره ترتیب را بدرستی وارد نمایید. اعداد نباید منفی باشند.",
|
||||||
"error.page.slug.invalid": "لطفا یک پیشوند Url صحیح وارد کنید",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||||
"error.page.sort.permission": "امکان مرتبسازی «{slug}» نیست",
|
"error.page.sort.permission": "امکان مرتبسازی «{slug}» نیست",
|
||||||
"error.page.status.invalid": "لطفا وضعیت صحیحی برای صفحه انتخاب کنید",
|
"error.page.status.invalid": "لطفا وضعیت صحیحی برای صفحه انتخاب کنید",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "لطفا گذرواژه صحیحی با حداقل طول 8 حرف وارد کنید. ",
|
"error.user.password.invalid": "لطفا گذرواژه صحیحی با حداقل طول 8 حرف وارد کنید. ",
|
||||||
"error.user.password.notSame": "\u0644\u0637\u0641\u0627 \u062a\u06a9\u0631\u0627\u0631 \u06af\u0630\u0631\u0648\u0627\u0698\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u0646\u0645\u0627\u06cc\u06cc\u062f",
|
"error.user.password.notSame": "\u0644\u0637\u0641\u0627 \u062a\u06a9\u0631\u0627\u0631 \u06af\u0630\u0631\u0648\u0627\u0698\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u0646\u0645\u0627\u06cc\u06cc\u062f",
|
||||||
"error.user.password.undefined": "کاربر فاقد گذرواژه است",
|
"error.user.password.undefined": "کاربر فاقد گذرواژه است",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "لطفا نقش صحیحی وارد نمایید",
|
"error.user.role.invalid": "لطفا نقش صحیحی وارد نمایید",
|
||||||
"error.user.update.permission": "شما اجازه بروزرسانی کاربر «{name}» را ندارید",
|
"error.user.update.permission": "شما اجازه بروزرسانی کاربر «{name}» را ندارید",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "Sinulla ei ole oikeutta kahdentaa sivua \"{slug}\"",
|
"error.page.duplicate.permission": "Sinulla ei ole oikeutta kahdentaa sivua \"{slug}\"",
|
||||||
"error.page.notFound": "Sivua \"{slug}\" ei löytynyt",
|
"error.page.notFound": "Sivua \"{slug}\" ei löytynyt",
|
||||||
"error.page.num.invalid": "Anna kelpaava järjestysnumero. Numero ei voi olla negatiivinen.",
|
"error.page.num.invalid": "Anna kelpaava järjestysnumero. Numero ei voi olla negatiivinen.",
|
||||||
"error.page.slug.invalid": "Anna kelpaava URL-etuliite",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||||
"error.page.sort.permission": "Sivua \"{slug}\" ei voi järjestellä",
|
"error.page.sort.permission": "Sivua \"{slug}\" ei voi järjestellä",
|
||||||
"error.page.status.invalid": "Aseta kelvollinen sivun tila",
|
"error.page.status.invalid": "Aseta kelvollinen sivun tila",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Anna kelpaava salasana. Salasanan täytyy olla ainakin 8 merkkiä pitkä.",
|
"error.user.password.invalid": "Anna kelpaava salasana. Salasanan täytyy olla ainakin 8 merkkiä pitkä.",
|
||||||
"error.user.password.notSame": "Salasanat eivät täsmää",
|
"error.user.password.notSame": "Salasanat eivät täsmää",
|
||||||
"error.user.password.undefined": "Käyttäjällä ei ole salasanaa",
|
"error.user.password.undefined": "Käyttäjällä ei ole salasanaa",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Anna kelpaava käyttäjätaso",
|
"error.user.role.invalid": "Anna kelpaava käyttäjätaso",
|
||||||
"error.user.update.permission": "Sinulla ei ole oikeutta päivittää käyttäjää \"{name}\"",
|
"error.user.update.permission": "Sinulla ei ole oikeutta päivittää käyttäjää \"{name}\"",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "Vous n'êtes pas autorisé à dupliquer « {slug} »",
|
"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.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.num.invalid": "Veuillez saisir un numéro de position valide. Les numéros ne doivent pas être négatifs.",
|
||||||
"error.page.slug.invalid": "Veuillez saisir un préfixe d’URL valide",
|
"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.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.sort.permission": "La page « {slug} » ne peut être réordonnée",
|
||||||
"error.page.status.invalid": "Veuillez choisir un statut de page valide",
|
"error.page.status.invalid": "Veuillez choisir un statut de page valide",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"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.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.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.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.role.invalid": "Veuillez saisir un rôle valide",
|
||||||
"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} »",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "Nincs engedélyed a(z) \"{slug}\" másolat keszítéséhez",
|
"error.page.duplicate.permission": "Nincs engedélyed a(z) \"{slug}\" másolat keszítéséhez",
|
||||||
"error.page.notFound": "Az oldal nem tal\u00e1lhat\u00f3",
|
"error.page.notFound": "Az oldal nem tal\u00e1lhat\u00f3",
|
||||||
"error.page.num.invalid": "Kérlek megfelelő oldalszámozást adj meg. Negatív szám itt nem használható.",
|
"error.page.num.invalid": "Kérlek megfelelő oldalszámozást adj meg. Negatív szám itt nem használható.",
|
||||||
"error.page.slug.invalid": "Kérlek megfelelő URL-előtagot adj meg",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||||
"error.page.sort.permission": "A(z) \"{slug}\" oldal nem illeszthető a sorrendbe",
|
"error.page.sort.permission": "A(z) \"{slug}\" oldal nem illeszthető a sorrendbe",
|
||||||
"error.page.status.invalid": "Kérlek add meg a megfelelő oldalstátuszt",
|
"error.page.status.invalid": "Kérlek add meg a megfelelő oldalstátuszt",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Kérlek adj meg egy megfelelő jelszót. A jelszónak legalább 8 karakter hosszúságúnak kell lennie.",
|
"error.user.password.invalid": "Kérlek adj meg egy megfelelő jelszót. A jelszónak legalább 8 karakter hosszúságúnak kell lennie.",
|
||||||
"error.user.password.notSame": "K\u00e9rlek er\u0151s\u00edtsd meg a jelsz\u00f3t",
|
"error.user.password.notSame": "K\u00e9rlek er\u0151s\u00edtsd meg a jelsz\u00f3t",
|
||||||
"error.user.password.undefined": "A felhasználónak nincs jelszó megadva",
|
"error.user.password.undefined": "A felhasználónak nincs jelszó megadva",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Kérlek adj meg egy megfelelő szerepkört",
|
"error.user.role.invalid": "Kérlek adj meg egy megfelelő szerepkört",
|
||||||
"error.user.update.permission": "Nincs jogosultságod frissíteni \"{name}\" felhasználó adatait",
|
"error.user.update.permission": "Nincs jogosultságod frissíteni \"{name}\" felhasználó adatait",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "Anda tidak diizinkan menduplikasi \"{slug}\"",
|
"error.page.duplicate.permission": "Anda tidak diizinkan menduplikasi \"{slug}\"",
|
||||||
"error.page.notFound": "Halaman \"{slug}\" tidak dapat ditemukan",
|
"error.page.notFound": "Halaman \"{slug}\" tidak dapat ditemukan",
|
||||||
"error.page.num.invalid": "Masukkan nomor urut yang valid. Nomor tidak boleh negatif.",
|
"error.page.num.invalid": "Masukkan nomor urut yang valid. Nomor tidak boleh negatif.",
|
||||||
"error.page.slug.invalid": "Masukkan awalan URL yang valid",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Panjang slug harus kurang dari \"{length}\" karakter",
|
"error.page.slug.maxlength": "Panjang slug harus kurang dari \"{length}\" karakter",
|
||||||
"error.page.sort.permission": "Halaman \"{slug}\" tidak dapat diurutkan",
|
"error.page.sort.permission": "Halaman \"{slug}\" tidak dapat diurutkan",
|
||||||
"error.page.status.invalid": "Atur status halaman yang valid",
|
"error.page.status.invalid": "Atur status halaman yang valid",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Masukkan sandi yang valid. Sandi setidaknya mengandung 8 karakter.",
|
"error.user.password.invalid": "Masukkan sandi yang valid. Sandi setidaknya mengandung 8 karakter.",
|
||||||
"error.user.password.notSame": "Sandi tidak cocok",
|
"error.user.password.notSame": "Sandi tidak cocok",
|
||||||
"error.user.password.undefined": "Pengguna tidak memiliki sandi",
|
"error.user.password.undefined": "Pengguna tidak memiliki sandi",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Masukkan peran yang valid",
|
"error.user.role.invalid": "Masukkan peran yang valid",
|
||||||
"error.user.update.permission": "Anda tidak diizinkan memperbaharui pengguna \"{name}\"",
|
"error.user.update.permission": "Anda tidak diizinkan memperbaharui pengguna \"{name}\"",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "Non ti è permesso duplicare \"{slug}\"",
|
"error.page.duplicate.permission": "Non ti è permesso duplicare \"{slug}\"",
|
||||||
"error.page.notFound": "La pagina \"{slug}\" non è stata trovata",
|
"error.page.notFound": "La pagina \"{slug}\" non è stata trovata",
|
||||||
"error.page.num.invalid": "Inserisci un numero di ordinamento valido. I numeri non devono essere negativi",
|
"error.page.num.invalid": "Inserisci un numero di ordinamento valido. I numeri non devono essere negativi",
|
||||||
"error.page.slug.invalid": "Inserisci un prefisso URL valido",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Lo \"slug\" dev'essere più corto di \"{length}\" caratteri",
|
"error.page.slug.maxlength": "Lo \"slug\" dev'essere più corto di \"{length}\" caratteri",
|
||||||
"error.page.sort.permission": "La pagina \"{slug}\" non può essere ordinata",
|
"error.page.sort.permission": "La pagina \"{slug}\" non può essere ordinata",
|
||||||
"error.page.status.invalid": "Imposta uno stato valido per la pagina",
|
"error.page.status.invalid": "Imposta uno stato valido per la pagina",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Per favore inserisci una password valida. Le password devono essere lunghe almeno 8 caratteri",
|
"error.user.password.invalid": "Per favore inserisci una password valida. Le password devono essere lunghe almeno 8 caratteri",
|
||||||
"error.user.password.notSame": "Le password non corrispondono",
|
"error.user.password.notSame": "Le password non corrispondono",
|
||||||
"error.user.password.undefined": "L'utente non ha una password",
|
"error.user.password.undefined": "L'utente non ha una password",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Inserisci un ruolo valido",
|
"error.user.role.invalid": "Inserisci un ruolo valido",
|
||||||
"error.user.update.permission": "Non ti è permesso aggiornare l'utente \"{name}\"",
|
"error.user.update.permission": "Non ti è permesso aggiornare l'utente \"{name}\"",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "페이지({slug})를 복제할 권한이 없습니다.",
|
"error.page.duplicate.permission": "페이지({slug})를 복제할 권한이 없습니다.",
|
||||||
"error.page.notFound": "페이지({slug})가 없습니다.",
|
"error.page.notFound": "페이지({slug})가 없습니다.",
|
||||||
"error.page.num.invalid": "올바른 정수를 입력하세요.",
|
"error.page.num.invalid": "올바른 정수를 입력하세요.",
|
||||||
"error.page.slug.invalid": "올바른 접두어를 입력하세요.",
|
"error.page.slug.invalid": "올바른 URL을 입력하세요.",
|
||||||
"error.page.slug.maxlength": "{length}자 이하로 고유 주소를 입력하세요.",
|
"error.page.slug.maxlength": "{length}자 이하로 고유 주소를 입력하세요.",
|
||||||
"error.page.sort.permission": "페이지({slug})를 정렬할 수 없습니다.",
|
"error.page.sort.permission": "페이지({slug})를 정렬할 수 없습니다.",
|
||||||
"error.page.status.invalid": "올바른 상태를 설정하세요.",
|
"error.page.status.invalid": "올바른 상태를 설정하세요.",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "암호를 8자 이상으로 설정하세요.",
|
"error.user.password.invalid": "암호를 8자 이상으로 설정하세요.",
|
||||||
"error.user.password.notSame": "\uc554\ud638\ub97c \ud655\uc778\ud558\uc138\uc694.",
|
"error.user.password.notSame": "\uc554\ud638\ub97c \ud655\uc778\ud558\uc138\uc694.",
|
||||||
"error.user.password.undefined": "암호가 설정되지 않았습니다.",
|
"error.user.password.undefined": "암호가 설정되지 않았습니다.",
|
||||||
|
"error.user.password.wrong": "암호가 올바르지 않습니다.",
|
||||||
"error.user.role.invalid": "올바른 역할을 지정하세요.",
|
"error.user.role.invalid": "올바른 역할을 지정하세요.",
|
||||||
"error.user.update.permission": "사용자({name})의 정보를 변경할 권한이 없습니다.",
|
"error.user.update.permission": "사용자({name})의 정보를 변경할 권한이 없습니다.",
|
||||||
|
|
||||||
@@ -301,7 +302,7 @@
|
|||||||
"language.direction.rtl": "오른쪽에서 왼쪽",
|
"language.direction.rtl": "오른쪽에서 왼쪽",
|
||||||
"language.locale": "PHP 로캘 문자열",
|
"language.locale": "PHP 로캘 문자열",
|
||||||
"language.locale.warning": "사용자 지정 로캘을 사용 중입니다. 폴더(<code>/site/languages</code>)의 언어 파일을 수정하세요.",
|
"language.locale.warning": "사용자 지정 로캘을 사용 중입니다. 폴더(<code>/site/languages</code>)의 언어 파일을 수정하세요.",
|
||||||
"language.name": "이름",
|
"language.name": "언어명",
|
||||||
"language.updated": "언어를 변경했습니다.",
|
"language.updated": "언어를 변경했습니다.",
|
||||||
|
|
||||||
"languages": "언어",
|
"languages": "언어",
|
||||||
@@ -328,7 +329,7 @@
|
|||||||
"lock.isLocked": "다른 사용자(<strong>{email}</strong>)가 수정한 사항이 저장되지 않았습니다.",
|
"lock.isLocked": "다른 사용자(<strong>{email}</strong>)가 수정한 사항이 저장되지 않았습니다.",
|
||||||
"lock.file.isLocked": "파일을 편집할 수 없습니다. 다른 사용자({email})가 편집 중입니다.",
|
"lock.file.isLocked": "파일을 편집할 수 없습니다. 다른 사용자({email})가 편집 중입니다.",
|
||||||
"lock.page.isLocked": "페이지를 편집할 수 없습니다. 다른 사용자({email})가 편집 중입니다.",
|
"lock.page.isLocked": "페이지를 편집할 수 없습니다. 다른 사용자({email})가 편집 중입니다.",
|
||||||
"lock.unlock": "잠금",
|
"lock.unlock": "잠금 해제",
|
||||||
"lock.isUnlocked": "다른 사용자가 이미 내용을 수정했으므로 현재 내용이 올바르게 저장되지 않았습니다. 저장되지 않은 내용은 다운로드해 수동으로 대치할 수 있습니다.",
|
"lock.isUnlocked": "다른 사용자가 이미 내용을 수정했으므로 현재 내용이 올바르게 저장되지 않았습니다. 저장되지 않은 내용은 다운로드해 수동으로 대치할 수 있습니다.",
|
||||||
|
|
||||||
"login": "\ub85c\uadf8\uc778",
|
"login": "\ub85c\uadf8\uc778",
|
||||||
@@ -405,7 +406,7 @@
|
|||||||
"page.status.unlisted": "비공개",
|
"page.status.unlisted": "비공개",
|
||||||
"page.status.unlisted.description": "URL을 통해 접근할 수 있습니다.",
|
"page.status.unlisted.description": "URL을 통해 접근할 수 있습니다.",
|
||||||
|
|
||||||
"pages": "하위 페이지",
|
"pages": "페이지",
|
||||||
"pages.empty": "페이지가 없습니다.",
|
"pages.empty": "페이지가 없습니다.",
|
||||||
"pages.status.draft": "초안",
|
"pages.status.draft": "초안",
|
||||||
"pages.status.listed": "발행",
|
"pages.status.listed": "발행",
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "Neturite leidimo dubliuoti \"{slug}\"",
|
"error.page.duplicate.permission": "Neturite leidimo dubliuoti \"{slug}\"",
|
||||||
"error.page.notFound": "Puslapis \"{slug}\" nerastas",
|
"error.page.notFound": "Puslapis \"{slug}\" nerastas",
|
||||||
"error.page.num.invalid": "Įrašykite teisingą eiliškumo numerį. Numeris negali būti neigiamas.",
|
"error.page.num.invalid": "Įrašykite teisingą eiliškumo numerį. Numeris negali būti neigiamas.",
|
||||||
"error.page.slug.invalid": "Įrašykite teisingą URL prefiksą",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "url adreso maksimalus simbolių kiekis: \"{length}\"",
|
"error.page.slug.maxlength": "url adreso maksimalus simbolių kiekis: \"{length}\"",
|
||||||
"error.page.sort.permission": "Puslapiui \"{slug}\" negalima pakeisti eiliškumo",
|
"error.page.sort.permission": "Puslapiui \"{slug}\" negalima pakeisti eiliškumo",
|
||||||
"error.page.status.invalid": "Nustatykite teisingą puslapio statusą",
|
"error.page.status.invalid": "Nustatykite teisingą puslapio statusą",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Prašome įrašyti galiojantį slaptažodį. Slaptažodį turi sudaryti bent 8 simboliai.",
|
"error.user.password.invalid": "Prašome įrašyti galiojantį slaptažodį. Slaptažodį turi sudaryti bent 8 simboliai.",
|
||||||
"error.user.password.notSame": "Slaptažodžiai nesutampa",
|
"error.user.password.notSame": "Slaptažodžiai nesutampa",
|
||||||
"error.user.password.undefined": "Vartotojas neturi slaptažodžio",
|
"error.user.password.undefined": "Vartotojas neturi slaptažodžio",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Įrašykite teisingą rolę",
|
"error.user.role.invalid": "Įrašykite teisingą rolę",
|
||||||
"error.user.update.permission": "Neturite teisės keisti vartotojo \"{name}\"",
|
"error.user.update.permission": "Neturite teisės keisti vartotojo \"{name}\"",
|
||||||
|
|
||||||
@@ -232,7 +233,7 @@
|
|||||||
"field.blocks.image.name": "Nuotrauka",
|
"field.blocks.image.name": "Nuotrauka",
|
||||||
"field.blocks.image.placeholder": "Pasirinkite nuotrauką",
|
"field.blocks.image.placeholder": "Pasirinkite nuotrauką",
|
||||||
"field.blocks.image.ratio": "Proporcijos",
|
"field.blocks.image.ratio": "Proporcijos",
|
||||||
"field.blocks.image.url": "Image URL",
|
"field.blocks.image.url": "Nuotraukos URL",
|
||||||
"field.blocks.list.name": "Sąrašas",
|
"field.blocks.list.name": "Sąrašas",
|
||||||
"field.blocks.markdown.name": "Markdown",
|
"field.blocks.markdown.name": "Markdown",
|
||||||
"field.blocks.markdown.label": "Tekstas",
|
"field.blocks.markdown.label": "Tekstas",
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
||||||
"error.page.notFound": "Siden \"{slug}\" ble ikke funnet",
|
"error.page.notFound": "Siden \"{slug}\" ble ikke funnet",
|
||||||
"error.page.num.invalid": "Vennligst skriv inn et gyldig sorteringsnummer. Tallet må ikke være negativt.",
|
"error.page.num.invalid": "Vennligst skriv inn et gyldig sorteringsnummer. Tallet må ikke være negativt.",
|
||||||
"error.page.slug.invalid": "Vennligst skriv inn en gyldig URL-prefiks",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||||
"error.page.sort.permission": "Siden \"{slug}\" kan ikke sorteres",
|
"error.page.sort.permission": "Siden \"{slug}\" kan ikke sorteres",
|
||||||
"error.page.status.invalid": "Vennligst angi en gyldig sidestatus",
|
"error.page.status.invalid": "Vennligst angi en gyldig sidestatus",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Vennligst skriv inn et gyldig passord. Passordet må minst være 8 tegn langt.",
|
"error.user.password.invalid": "Vennligst skriv inn et gyldig passord. Passordet må minst være 8 tegn langt.",
|
||||||
"error.user.password.notSame": "Vennligst bekreft passordet",
|
"error.user.password.notSame": "Vennligst bekreft passordet",
|
||||||
"error.user.password.undefined": "Brukeren har ikke et passord",
|
"error.user.password.undefined": "Brukeren har ikke et passord",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Vennligst skriv inn en gyldig rolle",
|
"error.user.role.invalid": "Vennligst skriv inn en gyldig rolle",
|
||||||
"error.user.update.permission": "Du har ikke tillatelse til å oppdatere brukeren \"{name}\"",
|
"error.user.update.permission": "Du har ikke tillatelse til å oppdatere brukeren \"{name}\"",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "Je bent niet gemachtigd om \"{slug}\" te dupliceren",
|
"error.page.duplicate.permission": "Je bent niet gemachtigd om \"{slug}\" te dupliceren",
|
||||||
"error.page.notFound": "De pagina \"{slug}\" kan niet worden gevonden",
|
"error.page.notFound": "De pagina \"{slug}\" kan niet worden gevonden",
|
||||||
"error.page.num.invalid": "Vul een geldig sorteer-cijfer in. Het cijfer mag niet negatief zijn",
|
"error.page.num.invalid": "Vul een geldig sorteer-cijfer in. Het cijfer mag niet negatief zijn",
|
||||||
"error.page.slug.invalid": "Vul een geldige URL-prefix in",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Slug lengte moet minder dan \"{length}\" tekens bevatten",
|
"error.page.slug.maxlength": "Slug lengte moet minder dan \"{length}\" tekens bevatten",
|
||||||
"error.page.sort.permission": "De pagina \"{slug}\" kan niet worden gesorteerd",
|
"error.page.sort.permission": "De pagina \"{slug}\" kan niet worden gesorteerd",
|
||||||
"error.page.status.invalid": "Zorg voor een geldige paginastatus",
|
"error.page.status.invalid": "Zorg voor een geldige paginastatus",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Gelieve een geldig wachtwoord in te voeren. Wachtwoorden moeten minstens 8 karakters lang zijn.",
|
"error.user.password.invalid": "Gelieve een geldig wachtwoord in te voeren. Wachtwoorden moeten minstens 8 karakters lang zijn.",
|
||||||
"error.user.password.notSame": "De wachtwoorden komen niet overeen",
|
"error.user.password.notSame": "De wachtwoorden komen niet overeen",
|
||||||
"error.user.password.undefined": "De gebruiker heeft geen wachtwoord",
|
"error.user.password.undefined": "De gebruiker heeft geen wachtwoord",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Gelieve een geldige rol in te voeren",
|
"error.user.role.invalid": "Gelieve een geldige rol in te voeren",
|
||||||
"error.user.update.permission": "Je hebt geen rechten om gebruiker \"{name}\" te updaten",
|
"error.user.update.permission": "Je hebt geen rechten om gebruiker \"{name}\" te updaten",
|
||||||
|
|
||||||
@@ -232,7 +233,7 @@
|
|||||||
"field.blocks.image.name": "Afbeelding",
|
"field.blocks.image.name": "Afbeelding",
|
||||||
"field.blocks.image.placeholder": "Selecteer een afbeelding",
|
"field.blocks.image.placeholder": "Selecteer een afbeelding",
|
||||||
"field.blocks.image.ratio": "Verhouding",
|
"field.blocks.image.ratio": "Verhouding",
|
||||||
"field.blocks.image.url": "Image URL",
|
"field.blocks.image.url": "Afbeeldings-URL",
|
||||||
"field.blocks.list.name": "Lijst",
|
"field.blocks.list.name": "Lijst",
|
||||||
"field.blocks.markdown.name": "Markdown",
|
"field.blocks.markdown.name": "Markdown",
|
||||||
"field.blocks.markdown.label": "Tekst",
|
"field.blocks.markdown.label": "Tekst",
|
||||||
@@ -286,13 +287,13 @@
|
|||||||
"installation.issues.mbstring": "De <code>MB String</code> extensie is verplicht",
|
"installation.issues.mbstring": "De <code>MB String</code> extensie is verplicht",
|
||||||
"installation.issues.media": "De map <code>/media</code>bestaat niet of heeft geen schrijfrechten",
|
"installation.issues.media": "De map <code>/media</code>bestaat niet of heeft geen schrijfrechten",
|
||||||
"installation.issues.php": "Gebruik <code>PHP7+</code>",
|
"installation.issues.php": "Gebruik <code>PHP7+</code>",
|
||||||
"installation.issues.server": "Kirby vereist <code>Apache</code>, <code>Nginx</code>of <code>Caddy</code>",
|
"installation.issues.server": "Kirby vereist <code>Apache</code>, <code>Nginx</code> of <code>Caddy</code>",
|
||||||
"installation.issues.sessions": "De map <code>/site/sessions</code> bestaat niet of heeft geen schrijfrechten",
|
"installation.issues.sessions": "De map <code>/site/sessions</code> bestaat niet of heeft geen schrijfrechten",
|
||||||
|
|
||||||
"language": "Taal",
|
"language": "Taal",
|
||||||
"language.code": "Code",
|
"language.code": "Code",
|
||||||
"language.convert": "Maak standaard",
|
"language.convert": "Maak standaard",
|
||||||
"language.convert.confirm": "<p>Weet je zeker dat je <strong>{name}</strong>wilt aanpassen naar de standaard taal? Dit kan niet ongedaan worden gemaakt</p><p>Als <strong>{name}</strong> nog niet vertaalde content heeft, is er geen content meer om op terug te vallen en zouden delen van je site leeg kunnen zijn.</p>",
|
"language.convert.confirm": "<p>Weet je zeker dat je <strong>{name}</strong> wilt aanpassen naar de standaard taal? Dit kan niet ongedaan worden gemaakt</p><p>Als <strong>{name}</strong> nog niet vertaalde content heeft, is er geen content meer om op terug te vallen en zouden delen van je site leeg kunnen zijn.</p>",
|
||||||
"language.create": "Nieuwe taal toevoegen",
|
"language.create": "Nieuwe taal toevoegen",
|
||||||
"language.delete.confirm": "Weet je zeker dat je de taal <strong>{name}</strong> inclusief alle vertalingen wilt verwijderen? Je kunt dit niet ongedaan maken!",
|
"language.delete.confirm": "Weet je zeker dat je de taal <strong>{name}</strong> inclusief alle vertalingen wilt verwijderen? Je kunt dit niet ongedaan maken!",
|
||||||
"language.deleted": "De taal is verwijderd",
|
"language.deleted": "De taal is verwijderd",
|
||||||
@@ -335,10 +336,10 @@
|
|||||||
"login.code.label.login": "Log in code",
|
"login.code.label.login": "Log in code",
|
||||||
"login.code.label.password-reset": "Wachtwoord herstel code",
|
"login.code.label.password-reset": "Wachtwoord herstel code",
|
||||||
"login.code.placeholder.email": "000 000",
|
"login.code.placeholder.email": "000 000",
|
||||||
"login.code.text.email": "If your email address is registered, the requested code was sent via email.",
|
"login.code.text.email": "Als uw e-mailadres geregistreerd is, werd de gevraagde code per e-mail verzonden.",
|
||||||
"login.email.login.body": "Hi {user.nameOrEmail},\n\nYou recently requested a login code for the Kirby Panel.\nThe following login code will be valid for {timeout} minutes:\n\n{code}\n\nIf you did not request a login code, please ignore this email or contact your administrator if you have questions.\nFor security, please DO NOT forward this email.",
|
"login.email.login.body": "Hallo {user.nameOrEmail},\n\nU heeft onlangs een inlogcode aangevraagd voor het Kirby Panel.\nDe volgende inlogcode is geldig voor {timeout} minuten:\n\n{code}\n\nIndien u geen inlogcode heeft aangevraagd, negeer dan alstublieft deze email of neem contact op met uw beheerder indien u vragen heeft.\nVoor de veiligheid, gelieve deze email NIET door te sturen.",
|
||||||
"login.email.login.subject": "Jouw log in code",
|
"login.email.login.subject": "Jouw log in code",
|
||||||
"login.email.password-reset.body": "Hi {user.nameOrEmail},\n\nYou recently requested a password reset code for the Kirby Panel.\nThe following password reset code will be valid for {timeout} minutes:\n\n{code}\n\nIf you did not request a password reset code, please ignore this email or contact your administrator if you have questions.\nFor security, please DO NOT forward this email.",
|
"login.email.password-reset.body": "Hallo {user.nameOrEmail},\n\nU heeft onlangs een wachtwoord reset code aangevraagd voor het Kirby Panel.\nDe volgende wachtwoord reset code is geldig voor {timeout} minuten:\n\n{code}\n\nAls u geen wachtwoord reset code heeft aangevraagd, negeer deze e-mail dan alstublieft of neem contact op met uw beheerder als u vragen heeft.\nVoor de veiligheid, gelieve deze email NIET door te sturen.",
|
||||||
"login.email.password-reset.subject": "Jouw wachtwoord herstel code",
|
"login.email.password-reset.subject": "Jouw wachtwoord herstel code",
|
||||||
"login.remember": "Houd mij ingelogd",
|
"login.remember": "Houd mij ingelogd",
|
||||||
"login.reset": "Wachtwoord herstellen",
|
"login.reset": "Wachtwoord herstellen",
|
||||||
@@ -503,7 +504,7 @@
|
|||||||
"user.changeRole.select": "Kies een nieuwe rol",
|
"user.changeRole.select": "Kies een nieuwe rol",
|
||||||
"user.create": "Voeg een nieuwe gebruiker toe",
|
"user.create": "Voeg een nieuwe gebruiker toe",
|
||||||
"user.delete": "Verwijder deze gebruiker",
|
"user.delete": "Verwijder deze gebruiker",
|
||||||
"user.delete.confirm": "Weet je zeker dat je <br><strong>{email}</strong>wil verwijderen?",
|
"user.delete.confirm": "Weet je zeker dat je <br><strong>{email}</strong> wil verwijderen?",
|
||||||
|
|
||||||
"users": "Gebruikers",
|
"users": "Gebruikers",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "Nie masz uprawnień, by zduplikować \"{slug}\"",
|
"error.page.duplicate.permission": "Nie masz uprawnień, by zduplikować \"{slug}\"",
|
||||||
"error.page.notFound": "Nie można znaleźć strony \"{slug}\"",
|
"error.page.notFound": "Nie można znaleźć strony \"{slug}\"",
|
||||||
"error.page.num.invalid": "Wprowadź poprawny numer sortujący. Liczby nie mogą być ujemne.",
|
"error.page.num.invalid": "Wprowadź poprawny numer sortujący. Liczby nie mogą być ujemne.",
|
||||||
"error.page.slug.invalid": "Wprowadź poprawną końcówkę adresu URL",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||||
"error.page.sort.permission": "Nie można sortować strony \"{slug}\"",
|
"error.page.sort.permission": "Nie można sortować strony \"{slug}\"",
|
||||||
"error.page.status.invalid": "Ustaw prawidłowy status strony",
|
"error.page.status.invalid": "Ustaw prawidłowy status strony",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Wprowadź prawidłowe hasło. Hasła muszą mieć co najmniej 8 znaków.",
|
"error.user.password.invalid": "Wprowadź prawidłowe hasło. Hasła muszą mieć co najmniej 8 znaków.",
|
||||||
"error.user.password.notSame": "Hasła nie są takie same",
|
"error.user.password.notSame": "Hasła nie są takie same",
|
||||||
"error.user.password.undefined": "Użytkownik nie ma hasła",
|
"error.user.password.undefined": "Użytkownik nie ma hasła",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Wprowadź poprawną rolę",
|
"error.user.role.invalid": "Wprowadź poprawną rolę",
|
||||||
"error.user.update.permission": "Nie masz uprawnień, by zaktualizować użytkownika \"{name}\"",
|
"error.user.update.permission": "Nie masz uprawnień, by zaktualizować użytkownika \"{name}\"",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
||||||
"error.page.notFound": "Página\"{slug}\" não encontrada",
|
"error.page.notFound": "Página\"{slug}\" não encontrada",
|
||||||
"error.page.num.invalid": "Digite um número de ordenação válido. Este número não pode ser negativo.",
|
"error.page.num.invalid": "Digite um número de ordenação válido. Este número não pode ser negativo.",
|
||||||
"error.page.slug.invalid": "Por favor, digite uma URL válida",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||||
"error.page.sort.permission": "A página \"{slug}\" não pode ser ordenada",
|
"error.page.sort.permission": "A página \"{slug}\" não pode ser ordenada",
|
||||||
"error.page.status.invalid": "Por favor, defina um estado de página válido",
|
"error.page.status.invalid": "Por favor, defina um estado de página válido",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Digite uma senha válida. Sua senha deve ter pelo menos 8 caracteres.",
|
"error.user.password.invalid": "Digite uma senha válida. Sua senha deve ter pelo menos 8 caracteres.",
|
||||||
"error.user.password.notSame": "As senhas não combinam",
|
"error.user.password.notSame": "As senhas não combinam",
|
||||||
"error.user.password.undefined": "O usuário não possui uma senha",
|
"error.user.password.undefined": "O usuário não possui uma senha",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Digite um papel válido",
|
"error.user.role.invalid": "Digite um papel válido",
|
||||||
"error.user.update.permission": "Você não tem permissão para atualizar o usuário \"{name}\"",
|
"error.user.update.permission": "Você não tem permissão para atualizar o usuário \"{name}\"",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "Não tem permissão para duplicar \"{slug}\"",
|
"error.page.duplicate.permission": "Não tem permissão para duplicar \"{slug}\"",
|
||||||
"error.page.notFound": "Página\"{slug}\" não encontrada",
|
"error.page.notFound": "Página\"{slug}\" não encontrada",
|
||||||
"error.page.num.invalid": "Digite um número de ordenação válido. Este número não pode ser negativo.",
|
"error.page.num.invalid": "Digite um número de ordenação válido. Este número não pode ser negativo.",
|
||||||
"error.page.slug.invalid": "Por favor, digite um prefixo de URL válido",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "O slug não pode conter mais do que \"{length}\" caracteres",
|
"error.page.slug.maxlength": "O slug não pode conter mais do que \"{length}\" caracteres",
|
||||||
"error.page.sort.permission": "A página \"{slug}\" não pode ser ordenada",
|
"error.page.sort.permission": "A página \"{slug}\" não pode ser ordenada",
|
||||||
"error.page.status.invalid": "Por favor, defina um estado de página válido",
|
"error.page.status.invalid": "Por favor, defina um estado de página válido",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Digite uma palavra-passe válida. A sua palavra-passe deve ter pelo menos 8 caracteres.",
|
"error.user.password.invalid": "Digite uma palavra-passe válida. A sua palavra-passe deve ter pelo menos 8 caracteres.",
|
||||||
"error.user.password.notSame": "As palavras-passe não combinam",
|
"error.user.password.notSame": "As palavras-passe não combinam",
|
||||||
"error.user.password.undefined": "O utilizador não possui uma palavra-passe",
|
"error.user.password.undefined": "O utilizador não possui uma palavra-passe",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Digite uma função válida",
|
"error.user.role.invalid": "Digite uma função válida",
|
||||||
"error.user.update.permission": "Não tem permissões para atualizar o utilizador \"{name}\"",
|
"error.user.update.permission": "Não tem permissões para atualizar o utilizador \"{name}\"",
|
||||||
|
|
||||||
|
@@ -38,7 +38,7 @@
|
|||||||
"dialog.pages.empty": "Нет страниц для выбора",
|
"dialog.pages.empty": "Нет страниц для выбора",
|
||||||
"dialog.users.empty": "Нет пользователей для выбора",
|
"dialog.users.empty": "Нет пользователей для выбора",
|
||||||
|
|
||||||
"email": "Эл. почта",
|
"email": "Email",
|
||||||
"email.placeholder": "mail@example.com",
|
"email.placeholder": "mail@example.com",
|
||||||
|
|
||||||
"error.access.code": "Неверный код",
|
"error.access.code": "Неверный код",
|
||||||
@@ -69,9 +69,9 @@
|
|||||||
"error.file.extension.forbidden": "Расширение файла \"{extension}\" неразрешено",
|
"error.file.extension.forbidden": "Расширение файла \"{extension}\" неразрешено",
|
||||||
"error.file.extension.invalid": "Неверное разрешение: {extension}",
|
"error.file.extension.invalid": "Неверное разрешение: {extension}",
|
||||||
"error.file.extension.missing": "Файлу \"{filename}\" не хватает расширения",
|
"error.file.extension.missing": "Файлу \"{filename}\" не хватает расширения",
|
||||||
"error.file.maxheight": "Высота картинки не должна превышать {height} px",
|
"error.file.maxheight": "Высота изображения не должна превышать {height} px",
|
||||||
"error.file.maxsize": "Файл слишком большой",
|
"error.file.maxsize": "Файл слишком большой",
|
||||||
"error.file.maxwidth": "Ширина картинки не должна превышать {width} px",
|
"error.file.maxwidth": "Ширина изображения не должна превышать {width} px",
|
||||||
"error.file.mime.differs": "Загруженный файл должен быть того же mime типа: \"{mime}\"",
|
"error.file.mime.differs": "Загруженный файл должен быть того же mime типа: \"{mime}\"",
|
||||||
"error.file.mime.forbidden": "Тип медиа \"{mime}\" не допустим",
|
"error.file.mime.forbidden": "Тип медиа \"{mime}\" не допустим",
|
||||||
"error.file.mime.invalid": "Неверный тип mime: {mime}",
|
"error.file.mime.invalid": "Неверный тип mime: {mime}",
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
"error.file.minwidth": "Ширина файла должна быть хотя бы {width} px",
|
"error.file.minwidth": "Ширина файла должна быть хотя бы {width} px",
|
||||||
"error.file.name.missing": "Название файла не может быть пустым",
|
"error.file.name.missing": "Название файла не может быть пустым",
|
||||||
"error.file.notFound": "\u0424\u0430\u0439\u043b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d",
|
"error.file.notFound": "\u0424\u0430\u0439\u043b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d",
|
||||||
"error.file.orientation": "Ориентация картинки должна быть \"{orientation}\"",
|
"error.file.orientation": "Ориентация изображения должна быть \"{orientation}\"",
|
||||||
"error.file.type.forbidden": "У вас нет права загружать файлы {type}",
|
"error.file.type.forbidden": "У вас нет права загружать файлы {type}",
|
||||||
"error.file.type.invalid": "Неверный тип файла: {type}",
|
"error.file.type.invalid": "Неверный тип файла: {type}",
|
||||||
"error.file.undefined": "\u0424\u0430\u0439\u043b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d",
|
"error.file.undefined": "\u0424\u0430\u0439\u043b \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d",
|
||||||
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "У вас нет права дублировать \"{slug}\"",
|
"error.page.duplicate.permission": "У вас нет права дублировать \"{slug}\"",
|
||||||
"error.page.notFound": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430",
|
"error.page.notFound": "\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430",
|
||||||
"error.page.num.invalid": "Пожалуйста, впишите правильное число сортировки. Число не может быть отрицательным.",
|
"error.page.num.invalid": "Пожалуйста, впишите правильное число сортировки. Число не может быть отрицательным.",
|
||||||
"error.page.slug.invalid": "Пожалуйста, впишите правильный префикс URL",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Длина ссылки (ЧПУ) должна быть короче \"{length}\" символов",
|
"error.page.slug.maxlength": "Длина ссылки (ЧПУ) должна быть короче \"{length}\" символов",
|
||||||
"error.page.sort.permission": "Невозможно сортировать страницу \"{slug}\"",
|
"error.page.sort.permission": "Невозможно сортировать страницу \"{slug}\"",
|
||||||
"error.page.status.invalid": "Пожалуйста, установите верный статус страницы",
|
"error.page.status.invalid": "Пожалуйста, установите верный статус страницы",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Пожалуйста, введите правильный пароль. Он должен состоять минимум из 8 символов.",
|
"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.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": "У пользователя нет пароля",
|
"error.user.password.undefined": "У пользователя нет пароля",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Введите правильную роль",
|
"error.user.role.invalid": "Введите правильную роль",
|
||||||
"error.user.update.permission": "У вас нет права обновить пользователя \"{name}\"",
|
"error.user.update.permission": "У вас нет права обновить пользователя \"{name}\"",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
"error.page.duplicate.permission": "You are not allowed to duplicate \"{slug}\"",
|
||||||
"error.page.notFound": "Stránku \"{slug}\" nie je možné nájsť",
|
"error.page.notFound": "Stránku \"{slug}\" nie je možné nájsť",
|
||||||
"error.page.num.invalid": "Prosím, zadajte platné číslo pre radenie. Čísla nemôžu byť záporné.",
|
"error.page.num.invalid": "Prosím, zadajte platné číslo pre radenie. Čísla nemôžu byť záporné.",
|
||||||
"error.page.slug.invalid": "Prosím, zadajte platný URL prefix.",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
"error.page.slug.maxlength": "Slug length must be less than \"{length}\" characters",
|
||||||
"error.page.sort.permission": "Stránku \"{slug}\" nie je možné preradiť.",
|
"error.page.sort.permission": "Stránku \"{slug}\" nie je možné preradiť.",
|
||||||
"error.page.status.invalid": "Prosím, nastavte platnú status pre stránku",
|
"error.page.status.invalid": "Prosím, nastavte platnú status pre stránku",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Prosím, zadajte platné heslo. Dĺžka hesla musí byť aspoň 8 znakov.",
|
"error.user.password.invalid": "Prosím, zadajte platné heslo. Dĺžka hesla musí byť aspoň 8 znakov.",
|
||||||
"error.user.password.notSame": "Heslá nie sú rovnaké",
|
"error.user.password.notSame": "Heslá nie sú rovnaké",
|
||||||
"error.user.password.undefined": "Užívateľ nemá heslo",
|
"error.user.password.undefined": "Užívateľ nemá heslo",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Prosím, zadajte platnú rolu",
|
"error.user.role.invalid": "Prosím, zadajte platnú rolu",
|
||||||
"error.user.update.permission": "Nemáte povolenie na aktualizáciu užívateľa \"{name}\"",
|
"error.user.update.permission": "Nemáte povolenie na aktualizáciu užívateľa \"{name}\"",
|
||||||
|
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "Du har inte behörighet att duplicera \"{slug}\"",
|
"error.page.duplicate.permission": "Du har inte behörighet att duplicera \"{slug}\"",
|
||||||
"error.page.notFound": "Sidan \"{slug}\" kan inte hittas",
|
"error.page.notFound": "Sidan \"{slug}\" kan inte hittas",
|
||||||
"error.page.num.invalid": "Ange ett giltigt nummer för sortering. Numret får inte vara negativt.",
|
"error.page.num.invalid": "Ange ett giltigt nummer för sortering. Numret får inte vara negativt.",
|
||||||
"error.page.slug.invalid": "Ange ett giltigt URL-prefix",
|
"error.page.slug.invalid": "Please enter a valid URL appendix",
|
||||||
"error.page.slug.maxlength": "Permalänkens längd måste vara kortare än \"{length}\" tecken",
|
"error.page.slug.maxlength": "Permalänkens längd måste vara kortare än \"{length}\" tecken",
|
||||||
"error.page.sort.permission": "Sidan \"{slug}\" kan inte sorteras",
|
"error.page.sort.permission": "Sidan \"{slug}\" kan inte sorteras",
|
||||||
"error.page.status.invalid": "Sätt en giltig status för sidan",
|
"error.page.status.invalid": "Sätt en giltig status för sidan",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Ange ett giltigt lösenord. Lösenordet måste vara minst 8 tecken långt.",
|
"error.user.password.invalid": "Ange ett giltigt lösenord. Lösenordet måste vara minst 8 tecken långt.",
|
||||||
"error.user.password.notSame": "Lösenorden matchar inte",
|
"error.user.password.notSame": "Lösenorden matchar inte",
|
||||||
"error.user.password.undefined": "Användaren har inget lösenord",
|
"error.user.password.undefined": "Användaren har inget lösenord",
|
||||||
|
"error.user.password.wrong": "Wrong password",
|
||||||
"error.user.role.invalid": "Ange en giltig roll",
|
"error.user.role.invalid": "Ange en giltig roll",
|
||||||
"error.user.update.permission": "Du har inte behörighet att uppdatera användaren \"{name}\"",
|
"error.user.update.permission": "Du har inte behörighet att uppdatera användaren \"{name}\"",
|
||||||
|
|
||||||
@@ -232,7 +233,7 @@
|
|||||||
"field.blocks.image.name": "Bild",
|
"field.blocks.image.name": "Bild",
|
||||||
"field.blocks.image.placeholder": "Välj en bild",
|
"field.blocks.image.placeholder": "Välj en bild",
|
||||||
"field.blocks.image.ratio": "Bildförhållande",
|
"field.blocks.image.ratio": "Bildförhållande",
|
||||||
"field.blocks.image.url": "Image URL",
|
"field.blocks.image.url": "Bild-URL",
|
||||||
"field.blocks.list.name": "Punktlista",
|
"field.blocks.list.name": "Punktlista",
|
||||||
"field.blocks.markdown.name": "Markdown",
|
"field.blocks.markdown.name": "Markdown",
|
||||||
"field.blocks.markdown.label": "Text",
|
"field.blocks.markdown.label": "Text",
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
"error.page.duplicate.permission": "\"{slug}\" öğesini çoğaltmanıza izin verilmiyor",
|
"error.page.duplicate.permission": "\"{slug}\" öğesini çoğaltmanıza izin verilmiyor",
|
||||||
"error.page.notFound": "\"{slug}\" uzantısındaki sayfa bulunamadı",
|
"error.page.notFound": "\"{slug}\" uzantısındaki sayfa bulunamadı",
|
||||||
"error.page.num.invalid": "Lütfen geçerli bir sıralama numarası girin. Sayılar negatif olmamalıdır.",
|
"error.page.num.invalid": "Lütfen geçerli bir sıralama numarası girin. Sayılar negatif olmamalıdır.",
|
||||||
"error.page.slug.invalid": "Lütfen geçerli bir adres öneki girin",
|
"error.page.slug.invalid": "Lütfen geçerli bir URL eki girin",
|
||||||
"error.page.slug.maxlength": "Adres uzantısı \"{length}\" karakterden az olmalıdır",
|
"error.page.slug.maxlength": "Adres uzantısı \"{length}\" karakterden az olmalıdır",
|
||||||
"error.page.sort.permission": "\"{slug}\" sayfası sıralanamıyor",
|
"error.page.sort.permission": "\"{slug}\" sayfası sıralanamıyor",
|
||||||
"error.page.status.invalid": "Lütfen geçerli bir sayfa durumu ayarlayın",
|
"error.page.status.invalid": "Lütfen geçerli bir sayfa durumu ayarlayın",
|
||||||
@@ -163,6 +163,7 @@
|
|||||||
"error.user.password.invalid": "Lütfen geçerli bir şifre giriniz. Şifreler en az 8 karakter uzunluğunda olmalıdır.",
|
"error.user.password.invalid": "Lütfen geçerli bir şifre giriniz. Şifreler en az 8 karakter uzunluğunda olmalıdır.",
|
||||||
"error.user.password.notSame": "L\u00fctfen \u015fifreyi do\u011frulay\u0131n",
|
"error.user.password.notSame": "L\u00fctfen \u015fifreyi do\u011frulay\u0131n",
|
||||||
"error.user.password.undefined": "Bu kullanıcının şifresi yok",
|
"error.user.password.undefined": "Bu kullanıcının şifresi yok",
|
||||||
|
"error.user.password.wrong": "Yanlış şifre",
|
||||||
"error.user.role.invalid": "Lütfen geçerli bir rol girin",
|
"error.user.role.invalid": "Lütfen geçerli bir rol girin",
|
||||||
"error.user.update.permission": "\"{name}\" kullanıcısını güncellemenize izin verilmiyor",
|
"error.user.update.permission": "\"{name}\" kullanıcısını güncellemenize izin verilmiyor",
|
||||||
|
|
||||||
@@ -286,7 +287,7 @@
|
|||||||
"installation.issues.mbstring": "<code>MB String</code> eklentisi gerekli",
|
"installation.issues.mbstring": "<code>MB String</code> eklentisi gerekli",
|
||||||
"installation.issues.media": "<code>/media</code> klasörü yok yada yazılamaz",
|
"installation.issues.media": "<code>/media</code> klasörü yok yada yazılamaz",
|
||||||
"installation.issues.php": "<code>PHP 7+</code> kullandığınızdan emin olun. ",
|
"installation.issues.php": "<code>PHP 7+</code> kullandığınızdan emin olun. ",
|
||||||
"installation.issues.server": "Kirby <code>Apache</code>, <code>Nginx</code> or <code>Caddy</code> gerektirir",
|
"installation.issues.server": "Kirby <code>Apache</code>, <code>Nginx</code> veya <code>Caddy</code> gerektirir",
|
||||||
"installation.issues.sessions": "<code>/site/sessions</code> klasörü mevcut değil veya yazılabilir değil",
|
"installation.issues.sessions": "<code>/site/sessions</code> klasörü mevcut değil veya yazılabilir değil",
|
||||||
|
|
||||||
"language": "Dil",
|
"language": "Dil",
|
||||||
|
2
kirby/panel/dist/css/app.css
vendored
2
kirby/panel/dist/css/app.css
vendored
File diff suppressed because one or more lines are too long
2
kirby/panel/dist/js/app.js
vendored
2
kirby/panel/dist/js/app.js
vendored
File diff suppressed because one or more lines are too long
@@ -476,7 +476,7 @@ class Api
|
|||||||
* Setter for the authentication callback
|
* Setter for the authentication callback
|
||||||
*
|
*
|
||||||
* @param \Closure|null $authentication
|
* @param \Closure|null $authentication
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setAuthentication(Closure $authentication = null)
|
protected function setAuthentication(Closure $authentication = null)
|
||||||
{
|
{
|
||||||
@@ -488,7 +488,7 @@ class Api
|
|||||||
* Setter for the collections definition
|
* Setter for the collections definition
|
||||||
*
|
*
|
||||||
* @param array|null $collections
|
* @param array|null $collections
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setCollections(array $collections = null)
|
protected function setCollections(array $collections = null)
|
||||||
{
|
{
|
||||||
@@ -502,7 +502,7 @@ class Api
|
|||||||
* Setter for the injected data
|
* Setter for the injected data
|
||||||
*
|
*
|
||||||
* @param array|null $data
|
* @param array|null $data
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setData(array $data = null)
|
protected function setData(array $data = null)
|
||||||
{
|
{
|
||||||
@@ -514,7 +514,7 @@ class Api
|
|||||||
* Setter for the debug flag
|
* Setter for the debug flag
|
||||||
*
|
*
|
||||||
* @param bool $debug
|
* @param bool $debug
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setDebug(bool $debug = false)
|
protected function setDebug(bool $debug = false)
|
||||||
{
|
{
|
||||||
@@ -526,7 +526,7 @@ class Api
|
|||||||
* Setter for the model definitions
|
* Setter for the model definitions
|
||||||
*
|
*
|
||||||
* @param array|null $models
|
* @param array|null $models
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setModels(array $models = null)
|
protected function setModels(array $models = null)
|
||||||
{
|
{
|
||||||
@@ -541,7 +541,7 @@ class Api
|
|||||||
* Setter for the request data
|
* Setter for the request data
|
||||||
*
|
*
|
||||||
* @param array|null $requestData
|
* @param array|null $requestData
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setRequestData(array $requestData = null)
|
protected function setRequestData(array $requestData = null)
|
||||||
{
|
{
|
||||||
@@ -559,7 +559,7 @@ class Api
|
|||||||
* Setter for the request method
|
* Setter for the request method
|
||||||
*
|
*
|
||||||
* @param string|null $requestMethod
|
* @param string|null $requestMethod
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setRequestMethod(string $requestMethod = null)
|
protected function setRequestMethod(string $requestMethod = null)
|
||||||
{
|
{
|
||||||
@@ -571,7 +571,7 @@ class Api
|
|||||||
* Setter for the route definitions
|
* Setter for the route definitions
|
||||||
*
|
*
|
||||||
* @param array|null $routes
|
* @param array|null $routes
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setRoutes(array $routes = null)
|
protected function setRoutes(array $routes = null)
|
||||||
{
|
{
|
||||||
|
@@ -77,7 +77,7 @@ class Collection
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|array|null $keys
|
* @param string|array|null $keys
|
||||||
* @return self
|
* @return $this
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public function select($keys = null)
|
public function select($keys = null)
|
||||||
@@ -168,7 +168,7 @@ class Collection
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $view
|
* @param string $view
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function view(string $view)
|
public function view(string $view)
|
||||||
{
|
{
|
||||||
|
@@ -84,7 +84,7 @@ class Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param null $keys
|
* @param null $keys
|
||||||
* @return self
|
* @return $this
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public function select($keys = null)
|
public function select($keys = null)
|
||||||
@@ -225,7 +225,7 @@ class Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @return self
|
* @return $this
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public function view(string $name)
|
public function view(string $name)
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Kirby\Cache;
|
namespace Kirby\Cache;
|
||||||
|
|
||||||
|
use Kirby\Exception\Exception;
|
||||||
use Kirby\Toolkit\Dir;
|
use Kirby\Toolkit\Dir;
|
||||||
use Kirby\Toolkit\F;
|
use Kirby\Toolkit\F;
|
||||||
use Kirby\Toolkit\Str;
|
use Kirby\Toolkit\Str;
|
||||||
@@ -178,10 +179,41 @@ class FileCache extends Cache
|
|||||||
{
|
{
|
||||||
$file = $this->file($key);
|
$file = $this->file($key);
|
||||||
|
|
||||||
if (is_file($file) === true) {
|
if (is_file($file) === true && F::remove($file) === true) {
|
||||||
return F::remove($file);
|
$this->removeEmptyDirectories(dirname($file));
|
||||||
} else {
|
return true;
|
||||||
return false;
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes empty directories safely by checking each directory
|
||||||
|
* up to the root directory
|
||||||
|
*
|
||||||
|
* @param string $dir
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function removeEmptyDirectories(string $dir): void
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
// ensure the path doesn't end with a slash for the next comparison
|
||||||
|
$dir = rtrim($dir, '/\/');
|
||||||
|
|
||||||
|
// checks all directory segments until reaching the root directory
|
||||||
|
while (Str::startsWith($dir, $this->root()) === true && $dir !== $this->root()) {
|
||||||
|
$files = array_diff(scandir($dir) ?? [], ['.', '..']);
|
||||||
|
|
||||||
|
if (empty($files) === true && Dir::remove($dir) === true) {
|
||||||
|
// continue with the next level up
|
||||||
|
$dir = dirname($dir);
|
||||||
|
} else {
|
||||||
|
// no need to continue with the next level up as `$dir` was not deleted
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception $e) { // @codeCoverageIgnore
|
||||||
|
// silently stops the process
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -25,6 +25,8 @@ class Value
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* the number of minutes until the value expires
|
* the number of minutes until the value expires
|
||||||
|
* @todo Rename this property to $expiry to reflect
|
||||||
|
* both minutes and absolute timestamps
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
protected $minutes;
|
protected $minutes;
|
||||||
@@ -40,7 +42,8 @@ class Value
|
|||||||
*
|
*
|
||||||
* @param mixed $value
|
* @param mixed $value
|
||||||
* @param int $minutes the number of minutes until the value expires
|
* @param int $minutes the number of minutes until the value expires
|
||||||
* @param int $created the unix timestamp when the value has been created
|
* or an absolute UNIX timestamp
|
||||||
|
* @param int $created the UNIX timestamp when the value has been created
|
||||||
*/
|
*/
|
||||||
public function __construct($value, int $minutes = 0, int $created = null)
|
public function __construct($value, int $minutes = 0, int $created = null)
|
||||||
{
|
{
|
||||||
@@ -72,6 +75,11 @@ class Value
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->minutes > 1000000000) {
|
||||||
|
// absolute timestamp
|
||||||
|
return $this->minutes;
|
||||||
|
}
|
||||||
|
|
||||||
return $this->created + ($this->minutes * 60);
|
return $this->created + ($this->minutes * 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,7 +87,7 @@ class Value
|
|||||||
* Creates a value object from an array
|
* Creates a value object from an array
|
||||||
*
|
*
|
||||||
* @param array $array
|
* @param array $array
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function fromArray(array $array)
|
public static function fromArray(array $array)
|
||||||
{
|
{
|
||||||
@@ -91,7 +99,7 @@ class Value
|
|||||||
* returns null on error
|
* returns null on error
|
||||||
*
|
*
|
||||||
* @param string $json
|
* @param string $json
|
||||||
* @return self|null
|
* @return static|null
|
||||||
*/
|
*/
|
||||||
public static function fromJson(string $json)
|
public static function fromJson(string $json)
|
||||||
{
|
{
|
||||||
|
@@ -258,7 +258,7 @@ class Api extends BaseApi
|
|||||||
* Setter for the parent Kirby instance
|
* Setter for the parent Kirby instance
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\App $kirby
|
* @param \Kirby\Cms\App $kirby
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setKirby(App $kirby)
|
protected function setKirby(App $kirby)
|
||||||
{
|
{
|
||||||
|
@@ -11,6 +11,7 @@ use Kirby\Exception\NotFoundException;
|
|||||||
use Kirby\Http\Request;
|
use Kirby\Http\Request;
|
||||||
use Kirby\Http\Router;
|
use Kirby\Http\Router;
|
||||||
use Kirby\Http\Server;
|
use Kirby\Http\Server;
|
||||||
|
use Kirby\Http\Uri;
|
||||||
use Kirby\Http\Visitor;
|
use Kirby\Http\Visitor;
|
||||||
use Kirby\Session\AutoSession;
|
use Kirby\Session\AutoSession;
|
||||||
use Kirby\Toolkit\A;
|
use Kirby\Toolkit\A;
|
||||||
@@ -224,7 +225,7 @@ class App
|
|||||||
/**
|
/**
|
||||||
* Normalizes and globally sets the configured options
|
* Normalizes and globally sets the configured options
|
||||||
*
|
*
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function bakeOptions()
|
protected function bakeOptions()
|
||||||
{
|
{
|
||||||
@@ -260,7 +261,7 @@ class App
|
|||||||
* Sets the directory structure
|
* Sets the directory structure
|
||||||
*
|
*
|
||||||
* @param array|null $roots
|
* @param array|null $roots
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function bakeRoots(array $roots = null)
|
protected function bakeRoots(array $roots = null)
|
||||||
{
|
{
|
||||||
@@ -273,7 +274,7 @@ class App
|
|||||||
* Sets the Url structure
|
* Sets the Url structure
|
||||||
*
|
*
|
||||||
* @param array|null $urls
|
* @param array|null $urls
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function bakeUrls(array $urls = null)
|
protected function bakeUrls(array $urls = null)
|
||||||
{
|
{
|
||||||
@@ -342,7 +343,7 @@ class App
|
|||||||
*
|
*
|
||||||
* @param array $props
|
* @param array $props
|
||||||
* @param bool $setInstance If false, the instance won't be set globally
|
* @param bool $setInstance If false, the instance won't be set globally
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function clone(array $props = [], bool $setInstance = true)
|
public function clone(array $props = [], bool $setInstance = true)
|
||||||
{
|
{
|
||||||
@@ -609,7 +610,7 @@ class App
|
|||||||
*
|
*
|
||||||
* @param \Kirby\Cms\App|null $instance
|
* @param \Kirby\Cms\App|null $instance
|
||||||
* @param bool $lazy If `true`, the instance is only returned if already existing
|
* @param bool $lazy If `true`, the instance is only returned if already existing
|
||||||
* @return self|null
|
* @return static|null
|
||||||
*/
|
*/
|
||||||
public static function instance(self $instance = null, bool $lazy = false)
|
public static function instance(self $instance = null, bool $lazy = false)
|
||||||
{
|
{
|
||||||
@@ -1226,6 +1227,10 @@ class App
|
|||||||
*/
|
*/
|
||||||
public function session(array $options = [])
|
public function session(array $options = [])
|
||||||
{
|
{
|
||||||
|
// never cache responses that depend on the session
|
||||||
|
$this->response()->cache(false);
|
||||||
|
$this->response()->header('Cache-Control', 'no-store', true);
|
||||||
|
|
||||||
return $this->sessionHandler()->get($options);
|
return $this->sessionHandler()->get($options);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1244,7 +1249,7 @@ class App
|
|||||||
* Create your own set of languages
|
* Create your own set of languages
|
||||||
*
|
*
|
||||||
* @param array|null $languages
|
* @param array|null $languages
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setLanguages(array $languages = null)
|
protected function setLanguages(array $languages = null)
|
||||||
{
|
{
|
||||||
@@ -1266,7 +1271,7 @@ class App
|
|||||||
* used for the router
|
* used for the router
|
||||||
*
|
*
|
||||||
* @param string|null $path
|
* @param string|null $path
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setPath(string $path = null)
|
protected function setPath(string $path = null)
|
||||||
{
|
{
|
||||||
@@ -1278,7 +1283,7 @@ class App
|
|||||||
* Sets the request
|
* Sets the request
|
||||||
*
|
*
|
||||||
* @param array|null $request
|
* @param array|null $request
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setRequest(array $request = null)
|
protected function setRequest(array $request = null)
|
||||||
{
|
{
|
||||||
@@ -1293,7 +1298,7 @@ class App
|
|||||||
* Create your own set of roles
|
* Create your own set of roles
|
||||||
*
|
*
|
||||||
* @param array|null $roles
|
* @param array|null $roles
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setRoles(array $roles = null)
|
protected function setRoles(array $roles = null)
|
||||||
{
|
{
|
||||||
@@ -1310,7 +1315,7 @@ class App
|
|||||||
* Sets a custom Site object
|
* Sets a custom Site object
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\Site|array|null $site
|
* @param \Kirby\Cms\Site|array|null $site
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setSite($site = null)
|
protected function setSite($site = null)
|
||||||
{
|
{
|
||||||
@@ -1479,11 +1484,26 @@ class App
|
|||||||
* Returns a system url
|
* Returns a system url
|
||||||
*
|
*
|
||||||
* @param string $type
|
* @param string $type
|
||||||
* @return string
|
* @param bool $object If set to `true`, the URL is converted to an object
|
||||||
|
* @return string|\Kirby\Http\Uri
|
||||||
*/
|
*/
|
||||||
public function url(string $type = 'index'): string
|
public function url(string $type = 'index', bool $object = false)
|
||||||
{
|
{
|
||||||
return $this->urls->__get($type);
|
$url = $this->urls->__get($type);
|
||||||
|
|
||||||
|
if ($object === true) {
|
||||||
|
if (Url::isAbsolute($url)) {
|
||||||
|
return Url::toObject($url);
|
||||||
|
}
|
||||||
|
|
||||||
|
// index URL was configured without host, use the current host
|
||||||
|
return Uri::current([
|
||||||
|
'path' => $url,
|
||||||
|
'query' => null
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -83,7 +83,7 @@ trait AppErrors
|
|||||||
$fatal = $this->option('fatal');
|
$fatal = $this->option('fatal');
|
||||||
|
|
||||||
if (is_a($fatal, 'Closure') === true) {
|
if (is_a($fatal, 'Closure') === true) {
|
||||||
echo $fatal($this);
|
echo $fatal($this, $exception);
|
||||||
} else {
|
} else {
|
||||||
include $this->root('kirby') . '/views/fatal.php';
|
include $this->root('kirby') . '/views/fatal.php';
|
||||||
}
|
}
|
||||||
@@ -144,6 +144,7 @@ trait AppErrors
|
|||||||
});
|
});
|
||||||
|
|
||||||
$this->setWhoopsHandler($handler);
|
$this->setWhoopsHandler($handler);
|
||||||
|
$this->whoops()->sendHttpCode(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -158,7 +158,8 @@ trait AppTranslations
|
|||||||
/**
|
/**
|
||||||
* Set locale settings
|
* Set locale settings
|
||||||
*
|
*
|
||||||
* @deprecated 3.5.0 Use \Kirby\Toolkit\Locale::set() instead
|
* @deprecated 3.5.0 Use `\Kirby\Toolkit\Locale::set()` instead
|
||||||
|
* @todo Remove in 3.6.0
|
||||||
*
|
*
|
||||||
* @param string|array $locale
|
* @param string|array $locale
|
||||||
*/
|
*/
|
||||||
|
@@ -116,7 +116,7 @@ class Asset
|
|||||||
* Setter for the path
|
* Setter for the path
|
||||||
*
|
*
|
||||||
* @param string $path
|
* @param string $path
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setPath(string $path)
|
protected function setPath(string $path)
|
||||||
{
|
{
|
||||||
|
@@ -56,12 +56,12 @@ class EmailChallenge extends Challenge
|
|||||||
|
|
||||||
$kirby = $user->kirby();
|
$kirby = $user->kirby();
|
||||||
$kirby->email([
|
$kirby->email([
|
||||||
'from' => $kirby->option('auth.challenge.email.from', 'noreply@' . $kirby->system()->indexUrl()),
|
'from' => $kirby->option('auth.challenge.email.from', 'noreply@' . $kirby->url('index', true)->host()),
|
||||||
'fromName' => $kirby->option('auth.challenge.email.fromName', $kirby->site()->title()),
|
'fromName' => $kirby->option('auth.challenge.email.fromName', $kirby->site()->title()),
|
||||||
'to' => $user,
|
'to' => $user,
|
||||||
'subject' => $kirby->option(
|
'subject' => $kirby->option(
|
||||||
'auth.challenge.email.subject',
|
'auth.challenge.email.subject',
|
||||||
I18n::translate('login.email.' . $mode . '.subject')
|
I18n::translate('login.email.' . $mode . '.subject', null, $user->language())
|
||||||
),
|
),
|
||||||
'template' => 'auth/' . $mode,
|
'template' => 'auth/' . $mode,
|
||||||
'data' => [
|
'data' => [
|
||||||
|
@@ -153,7 +153,7 @@ class Status
|
|||||||
* Sets the type of the active challenge
|
* Sets the type of the active challenge
|
||||||
*
|
*
|
||||||
* @param string|null $challenge
|
* @param string|null $challenge
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setChallenge(?string $challenge = null)
|
protected function setChallenge(?string $challenge = null)
|
||||||
{
|
{
|
||||||
@@ -166,7 +166,7 @@ class Status
|
|||||||
* a fallback when $challenge is `null`
|
* a fallback when $challenge is `null`
|
||||||
*
|
*
|
||||||
* @param string|null $challengeFallback
|
* @param string|null $challengeFallback
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setChallengeFallback(?string $challengeFallback = null)
|
protected function setChallengeFallback(?string $challengeFallback = null)
|
||||||
{
|
{
|
||||||
@@ -178,7 +178,7 @@ class Status
|
|||||||
* Sets the email address of the current/pending user
|
* Sets the email address of the current/pending user
|
||||||
*
|
*
|
||||||
* @param string|null $email
|
* @param string|null $email
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setEmail(?string $email = null)
|
protected function setEmail(?string $email = null)
|
||||||
{
|
{
|
||||||
@@ -190,7 +190,7 @@ class Status
|
|||||||
* Sets the Kirby instance for user lookup
|
* Sets the Kirby instance for user lookup
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\App $kirby
|
* @param \Kirby\Cms\App $kirby
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setKirby(App $kirby)
|
protected function setKirby(App $kirby)
|
||||||
{
|
{
|
||||||
@@ -202,7 +202,7 @@ class Status
|
|||||||
* Sets the authentication status
|
* Sets the authentication status
|
||||||
*
|
*
|
||||||
* @param string $status `active|impersonated|pending|inactive`
|
* @param string $status `active|impersonated|pending|inactive`
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setStatus(string $status)
|
protected function setStatus(string $status)
|
||||||
{
|
{
|
||||||
|
@@ -3,6 +3,7 @@
|
|||||||
namespace Kirby\Cms;
|
namespace Kirby\Cms;
|
||||||
|
|
||||||
use Kirby\Exception\InvalidArgumentException;
|
use Kirby\Exception\InvalidArgumentException;
|
||||||
|
use Kirby\Toolkit\Str;
|
||||||
use Throwable;
|
use Throwable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -86,6 +87,10 @@ class Block extends Item
|
|||||||
/**
|
/**
|
||||||
* Deprecated method to return the block type
|
* Deprecated method to return the block type
|
||||||
*
|
*
|
||||||
|
* @deprecated 3.5.0 Use `\Kirby\Cms\Block::type()` instead
|
||||||
|
* @todo Add deprecated() helper warning in 3.6.0
|
||||||
|
* @todo Remove in 3.7.0
|
||||||
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function _key(): string
|
public function _key(): string
|
||||||
@@ -96,6 +101,10 @@ class Block extends Item
|
|||||||
/**
|
/**
|
||||||
* Deprecated method to return the block id
|
* Deprecated method to return the block id
|
||||||
*
|
*
|
||||||
|
* @deprecated 3.5.0 Use `\Kirby\Cms\Block::id()` instead
|
||||||
|
* @todo Add deprecated() helper warning in 3.6.0
|
||||||
|
* @todo Remove in 3.7.0
|
||||||
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function _uid(): string
|
public function _uid(): string
|
||||||
@@ -131,6 +140,19 @@ class Block extends Item
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts the block to HTML and then
|
||||||
|
* uses the Str::excerpt method to create
|
||||||
|
* a non-formatted, shortened excerpt from it
|
||||||
|
*
|
||||||
|
* @param mixed ...$args
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function excerpt(...$args)
|
||||||
|
{
|
||||||
|
return Str::excerpt($this->toHtml(), ...$args);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the block is empty
|
* Checks if the block is empty
|
||||||
*
|
*
|
||||||
|
@@ -219,7 +219,7 @@ class BlockConverter
|
|||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'content' => [
|
'content' => [
|
||||||
'text' => $params['content']
|
'text' => '<p>' . $params['content'] . '</p>'
|
||||||
],
|
],
|
||||||
'type' => 'text'
|
'type' => 'text'
|
||||||
];
|
];
|
||||||
|
@@ -219,7 +219,7 @@ class Blueprint
|
|||||||
* @param string $name
|
* @param string $name
|
||||||
* @param string|null $fallback
|
* @param string|null $fallback
|
||||||
* @param \Kirby\Cms\Model $model
|
* @param \Kirby\Cms\Model $model
|
||||||
* @return self
|
* @return static|null
|
||||||
*/
|
*/
|
||||||
public static function factory(string $name, string $fallback = null, Model $model)
|
public static function factory(string $name, string $fallback = null, Model $model)
|
||||||
{
|
{
|
||||||
|
@@ -271,7 +271,7 @@ class Collection extends BaseCollection
|
|||||||
* Any part of the query is optional.
|
* Any part of the query is optional.
|
||||||
*
|
*
|
||||||
* @param array $query
|
* @param array $query
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function query(array $query = [])
|
public function query(array $query = [])
|
||||||
{
|
{
|
||||||
|
@@ -198,7 +198,7 @@ class Content
|
|||||||
* passed key(s)
|
* passed key(s)
|
||||||
*
|
*
|
||||||
* @param string ...$keys
|
* @param string ...$keys
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function not(...$keys)
|
public function not(...$keys)
|
||||||
{
|
{
|
||||||
@@ -227,7 +227,7 @@ class Content
|
|||||||
* Set the parent model
|
* Set the parent model
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\Model $parent
|
* @param \Kirby\Cms\Model $parent
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function setParent(Model $parent)
|
public function setParent(Model $parent)
|
||||||
{
|
{
|
||||||
@@ -252,7 +252,7 @@ class Content
|
|||||||
*
|
*
|
||||||
* @param array|null $content
|
* @param array|null $content
|
||||||
* @param bool $overwrite
|
* @param bool $overwrite
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function update(array $content = null, bool $overwrite = false)
|
public function update(array $content = null, bool $overwrite = false)
|
||||||
{
|
{
|
||||||
|
@@ -163,7 +163,7 @@ class ContentTranslation
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $code
|
* @param string $code
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setCode(string $code)
|
protected function setCode(string $code)
|
||||||
{
|
{
|
||||||
@@ -173,7 +173,7 @@ class ContentTranslation
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array|null $content
|
* @param array|null $content
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setContent(array $content = null)
|
protected function setContent(array $content = null)
|
||||||
{
|
{
|
||||||
@@ -183,7 +183,7 @@ class ContentTranslation
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param \Kirby\Cms\Model $parent
|
* @param \Kirby\Cms\Model $parent
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setParent(Model $parent)
|
protected function setParent(Model $parent)
|
||||||
{
|
{
|
||||||
@@ -193,7 +193,7 @@ class ContentTranslation
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $slug
|
* @param string|null $slug
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setSlug(string $slug = null)
|
protected function setSlug(string $slug = null)
|
||||||
{
|
{
|
||||||
@@ -216,7 +216,7 @@ class ContentTranslation
|
|||||||
*
|
*
|
||||||
* @param array|null $data
|
* @param array|null $data
|
||||||
* @param bool $overwrite
|
* @param bool $overwrite
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function update(array $data = null, bool $overwrite = false)
|
public function update(array $data = null, bool $overwrite = false)
|
||||||
{
|
{
|
||||||
|
@@ -179,7 +179,7 @@ class Field
|
|||||||
* Provides a fallback if the field value is empty
|
* Provides a fallback if the field value is empty
|
||||||
*
|
*
|
||||||
* @param mixed $fallback
|
* @param mixed $fallback
|
||||||
* @return self
|
* @return $this|static
|
||||||
*/
|
*/
|
||||||
public function or($fallback = null)
|
public function or($fallback = null)
|
||||||
{
|
{
|
||||||
|
@@ -254,6 +254,8 @@ class File extends ModelWithContent
|
|||||||
} else {
|
} else {
|
||||||
if ($this->type() === 'image') {
|
if ($this->type() === 'image') {
|
||||||
return '(image: ' . $url . ')';
|
return '(image: ' . $url . ')';
|
||||||
|
} elseif ($this->type() === 'video') {
|
||||||
|
return '(video: ' . $url . ')';
|
||||||
} else {
|
} else {
|
||||||
return '(file: ' . $url . ')';
|
return '(file: ' . $url . ')';
|
||||||
}
|
}
|
||||||
@@ -265,7 +267,7 @@ class File extends ModelWithContent
|
|||||||
*
|
*
|
||||||
* @internal
|
* @internal
|
||||||
* @param mixed $props
|
* @param mixed $props
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function factory($props)
|
public static function factory($props)
|
||||||
{
|
{
|
||||||
@@ -661,7 +663,7 @@ class File extends ModelWithContent
|
|||||||
* Sets the Blueprint object
|
* Sets the Blueprint object
|
||||||
*
|
*
|
||||||
* @param array|null $blueprint
|
* @param array|null $blueprint
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setBlueprint(array $blueprint = null)
|
protected function setBlueprint(array $blueprint = null)
|
||||||
{
|
{
|
||||||
@@ -677,7 +679,7 @@ class File extends ModelWithContent
|
|||||||
* Sets the filename
|
* Sets the filename
|
||||||
*
|
*
|
||||||
* @param string $filename
|
* @param string $filename
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setFilename(string $filename)
|
protected function setFilename(string $filename)
|
||||||
{
|
{
|
||||||
@@ -689,7 +691,7 @@ class File extends ModelWithContent
|
|||||||
* Sets the parent model object
|
* Sets the parent model object
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\Model|null $parent
|
* @param \Kirby\Cms\Model|null $parent
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setParent(Model $parent = null)
|
protected function setParent(Model $parent = null)
|
||||||
{
|
{
|
||||||
@@ -702,7 +704,7 @@ class File extends ModelWithContent
|
|||||||
* auto root detection
|
* auto root detection
|
||||||
*
|
*
|
||||||
* @param string|null $root
|
* @param string|null $root
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setRoot(string $root = null)
|
protected function setRoot(string $root = null)
|
||||||
{
|
{
|
||||||
@@ -712,7 +714,7 @@ class File extends ModelWithContent
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|null $template
|
* @param string|null $template
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setTemplate(string $template = null)
|
protected function setTemplate(string $template = null)
|
||||||
{
|
{
|
||||||
@@ -724,7 +726,7 @@ class File extends ModelWithContent
|
|||||||
* Sets the url
|
* Sets the url
|
||||||
*
|
*
|
||||||
* @param string|null $url
|
* @param string|null $url
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setUrl(string $url = null)
|
protected function setUrl(string $url = null)
|
||||||
{
|
{
|
||||||
|
@@ -25,7 +25,7 @@ trait FileActions
|
|||||||
*
|
*
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @param bool $sanitize
|
* @param bool $sanitize
|
||||||
* @return self
|
* @return $this|static
|
||||||
* @throws \Kirby\Exception\LogicException
|
* @throws \Kirby\Exception\LogicException
|
||||||
*/
|
*/
|
||||||
public function changeName(string $name, bool $sanitize = true)
|
public function changeName(string $name, bool $sanitize = true)
|
||||||
@@ -84,7 +84,7 @@ trait FileActions
|
|||||||
* Changes the file's sorting number in the meta file
|
* Changes the file's sorting number in the meta file
|
||||||
*
|
*
|
||||||
* @param int $sort
|
* @param int $sort
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function changeSort(int $sort)
|
public function changeSort(int $sort)
|
||||||
{
|
{
|
||||||
@@ -161,7 +161,7 @@ trait FileActions
|
|||||||
* way of generating files.
|
* way of generating files.
|
||||||
*
|
*
|
||||||
* @param array $props
|
* @param array $props
|
||||||
* @return self
|
* @return static
|
||||||
* @throws \Kirby\Exception\InvalidArgumentException
|
* @throws \Kirby\Exception\InvalidArgumentException
|
||||||
* @throws \Kirby\Exception\LogicException
|
* @throws \Kirby\Exception\LogicException
|
||||||
*/
|
*/
|
||||||
@@ -256,7 +256,7 @@ trait FileActions
|
|||||||
* Move the file to the public media folder
|
* Move the file to the public media folder
|
||||||
* if it's not already there.
|
* if it's not already there.
|
||||||
*
|
*
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function publish()
|
public function publish()
|
||||||
{
|
{
|
||||||
@@ -272,7 +272,7 @@ trait FileActions
|
|||||||
* source.
|
* source.
|
||||||
*
|
*
|
||||||
* @param string $source
|
* @param string $source
|
||||||
* @return self
|
* @return static
|
||||||
* @throws \Kirby\Exception\LogicException
|
* @throws \Kirby\Exception\LogicException
|
||||||
*/
|
*/
|
||||||
public function replace(string $source)
|
public function replace(string $source)
|
||||||
@@ -295,7 +295,7 @@ trait FileActions
|
|||||||
/**
|
/**
|
||||||
* Remove all public versions of this file
|
* Remove all public versions of this file
|
||||||
*
|
*
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function unpublish()
|
public function unpublish()
|
||||||
{
|
{
|
||||||
|
@@ -189,7 +189,7 @@ trait FileFoundation
|
|||||||
* Setter for the root
|
* Setter for the root
|
||||||
*
|
*
|
||||||
* @param string|null $root
|
* @param string|null $root
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setRoot(string $root = null)
|
protected function setRoot(string $root = null)
|
||||||
{
|
{
|
||||||
@@ -201,7 +201,7 @@ trait FileFoundation
|
|||||||
* Setter for the file url
|
* Setter for the file url
|
||||||
*
|
*
|
||||||
* @param string $url
|
* @param string $url
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setUrl(string $url)
|
protected function setUrl(string $url)
|
||||||
{
|
{
|
||||||
|
@@ -97,7 +97,7 @@ class FileVersion
|
|||||||
* Applies the stored modifications and
|
* Applies the stored modifications and
|
||||||
* saves the file on disk
|
* saves the file on disk
|
||||||
*
|
*
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function save()
|
public function save()
|
||||||
{
|
{
|
||||||
|
@@ -31,7 +31,7 @@ class Files extends Collection
|
|||||||
* current collection
|
* current collection
|
||||||
*
|
*
|
||||||
* @param mixed $object
|
* @param mixed $object
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function add($object)
|
public function add($object)
|
||||||
{
|
{
|
||||||
@@ -57,7 +57,7 @@ class Files extends Collection
|
|||||||
*
|
*
|
||||||
* @param array $files List of file ids
|
* @param array $files List of file ids
|
||||||
* @param int $offset Sorting offset
|
* @param int $offset Sorting offset
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function changeSort(array $files, int $offset = 0)
|
public function changeSort(array $files, int $offset = 0)
|
||||||
{
|
{
|
||||||
@@ -76,7 +76,7 @@ class Files extends Collection
|
|||||||
*
|
*
|
||||||
* @param array $files
|
* @param array $files
|
||||||
* @param \Kirby\Cms\Model $parent
|
* @param \Kirby\Cms\Model $parent
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function factory(array $files, Model $parent)
|
public static function factory(array $files, Model $parent)
|
||||||
{
|
{
|
||||||
@@ -124,7 +124,7 @@ class Files extends Collection
|
|||||||
* Filter all files by the given template
|
* Filter all files by the given template
|
||||||
*
|
*
|
||||||
* @param null|string|array $template
|
* @param null|string|array $template
|
||||||
* @return self
|
* @return $this|static
|
||||||
*/
|
*/
|
||||||
public function template($template)
|
public function template($template)
|
||||||
{
|
{
|
||||||
|
@@ -90,7 +90,7 @@ class Form extends BaseForm
|
|||||||
/**
|
/**
|
||||||
* @param \Kirby\Cms\Model $model
|
* @param \Kirby\Cms\Model $model
|
||||||
* @param array $props
|
* @param array $props
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function for(Model $model, array $props = [])
|
public static function for(Model $model, array $props = [])
|
||||||
{
|
{
|
||||||
|
@@ -213,7 +213,7 @@ trait HasChildren
|
|||||||
* Sets the Children collection
|
* Sets the Children collection
|
||||||
*
|
*
|
||||||
* @param array|null $children
|
* @param array|null $children
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setChildren(array $children = null)
|
protected function setChildren(array $children = null)
|
||||||
{
|
{
|
||||||
@@ -228,7 +228,7 @@ trait HasChildren
|
|||||||
* Sets the Drafts collection
|
* Sets the Drafts collection
|
||||||
*
|
*
|
||||||
* @param array|null $drafts
|
* @param array|null $drafts
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setDrafts(array $drafts = null)
|
protected function setDrafts(array $drafts = null)
|
||||||
{
|
{
|
||||||
|
@@ -203,7 +203,7 @@ trait HasFiles
|
|||||||
* Sets the Files collection
|
* Sets the Files collection
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\Files|null $files
|
* @param \Kirby\Cms\Files|null $files
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setFiles(array $files = null)
|
protected function setFiles(array $files = null)
|
||||||
{
|
{
|
||||||
|
@@ -70,7 +70,7 @@ class Ingredients
|
|||||||
*
|
*
|
||||||
* @internal
|
* @internal
|
||||||
* @param array $ingredients
|
* @param array $ingredients
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function bake(array $ingredients)
|
public static function bake(array $ingredients)
|
||||||
{
|
{
|
||||||
|
@@ -197,7 +197,7 @@ class Language extends Model
|
|||||||
*
|
*
|
||||||
* @internal
|
* @internal
|
||||||
* @param array $props
|
* @param array $props
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function create(array $props)
|
public static function create(array $props)
|
||||||
{
|
{
|
||||||
@@ -445,7 +445,7 @@ class Language extends Model
|
|||||||
* Saves the language settings in the languages folder
|
* Saves the language settings in the languages folder
|
||||||
*
|
*
|
||||||
* @internal
|
* @internal
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function save()
|
public function save()
|
||||||
{
|
{
|
||||||
@@ -476,7 +476,7 @@ class Language extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $code
|
* @param string $code
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setCode(string $code)
|
protected function setCode(string $code)
|
||||||
{
|
{
|
||||||
@@ -486,7 +486,7 @@ class Language extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param bool $default
|
* @param bool $default
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setDefault(bool $default = false)
|
protected function setDefault(bool $default = false)
|
||||||
{
|
{
|
||||||
@@ -496,7 +496,7 @@ class Language extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $direction
|
* @param string $direction
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setDirection(string $direction = 'ltr')
|
protected function setDirection(string $direction = 'ltr')
|
||||||
{
|
{
|
||||||
@@ -506,7 +506,7 @@ class Language extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|array $locale
|
* @param string|array $locale
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setLocale($locale = null)
|
protected function setLocale($locale = null)
|
||||||
{
|
{
|
||||||
@@ -521,7 +521,7 @@ class Language extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setName(string $name = null)
|
protected function setName(string $name = null)
|
||||||
{
|
{
|
||||||
@@ -531,7 +531,7 @@ class Language extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $slugs
|
* @param array $slugs
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setSlugs(array $slugs = null)
|
protected function setSlugs(array $slugs = null)
|
||||||
{
|
{
|
||||||
@@ -541,7 +541,7 @@ class Language extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $smartypants
|
* @param array $smartypants
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setSmartypants(array $smartypants = null)
|
protected function setSmartypants(array $smartypants = null)
|
||||||
{
|
{
|
||||||
@@ -551,7 +551,7 @@ class Language extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $translations
|
* @param array $translations
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setTranslations(array $translations = null)
|
protected function setTranslations(array $translations = null)
|
||||||
{
|
{
|
||||||
@@ -561,7 +561,7 @@ class Language extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $url
|
* @param string $url
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setUrl(string $url = null)
|
protected function setUrl(string $url = null)
|
||||||
{
|
{
|
||||||
@@ -639,7 +639,7 @@ class Language extends Model
|
|||||||
*
|
*
|
||||||
* @internal
|
* @internal
|
||||||
* @param array $props
|
* @param array $props
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function update(array $props = null)
|
public function update(array $props = null)
|
||||||
{
|
{
|
||||||
|
@@ -19,7 +19,7 @@ class Languages extends Collection
|
|||||||
/**
|
/**
|
||||||
* Creates a new collection with the given language objects
|
* Creates a new collection with the given language objects
|
||||||
*
|
*
|
||||||
* @param array $objects
|
* @param array $objects `Kirby\Cms\Language` objects
|
||||||
* @param null $parent
|
* @param null $parent
|
||||||
* @throws \Kirby\Exception\DuplicateException
|
* @throws \Kirby\Exception\DuplicateException
|
||||||
*/
|
*/
|
||||||
@@ -76,7 +76,7 @@ class Languages extends Collection
|
|||||||
* Convert all defined languages to a collection
|
* Convert all defined languages to a collection
|
||||||
*
|
*
|
||||||
* @internal
|
* @internal
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function load()
|
public static function load()
|
||||||
{
|
{
|
||||||
|
@@ -76,7 +76,7 @@ abstract class Model
|
|||||||
* Setter for the parent Kirby object
|
* Setter for the parent Kirby object
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\App|null $kirby
|
* @param \Kirby\Cms\App|null $kirby
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setKirby(App $kirby = null)
|
protected function setKirby(App $kirby = null)
|
||||||
{
|
{
|
||||||
@@ -89,7 +89,7 @@ abstract class Model
|
|||||||
*
|
*
|
||||||
* @internal
|
* @internal
|
||||||
* @param \Kirby\Cms\Site|null $site
|
* @param \Kirby\Cms\Site|null $site
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function setSite(Site $site = null)
|
public function setSite(Site $site = null)
|
||||||
{
|
{
|
||||||
|
@@ -231,7 +231,7 @@ abstract class ModelWithContent extends Model
|
|||||||
* @param string $field
|
* @param string $field
|
||||||
* @param int $by
|
* @param int $by
|
||||||
* @param int $min
|
* @param int $min
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function decrement(string $field, int $by = 1, int $min = 0)
|
public function decrement(string $field, int $by = 1, int $min = 0)
|
||||||
{
|
{
|
||||||
@@ -306,7 +306,7 @@ abstract class ModelWithContent extends Model
|
|||||||
* @param string $field
|
* @param string $field
|
||||||
* @param int $by
|
* @param int $by
|
||||||
* @param int|null $max
|
* @param int|null $max
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function increment(string $field, int $by = 1, int $max = null)
|
public function increment(string $field, int $by = 1, int $max = null)
|
||||||
{
|
{
|
||||||
@@ -569,7 +569,7 @@ abstract class ModelWithContent extends Model
|
|||||||
* @param array|null $data
|
* @param array|null $data
|
||||||
* @param string|null $languageCode
|
* @param string|null $languageCode
|
||||||
* @param bool $overwrite
|
* @param bool $overwrite
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function save(array $data = null, string $languageCode = null, bool $overwrite = false)
|
public function save(array $data = null, string $languageCode = null, bool $overwrite = false)
|
||||||
{
|
{
|
||||||
@@ -585,7 +585,7 @@ abstract class ModelWithContent extends Model
|
|||||||
*
|
*
|
||||||
* @param array|null $data
|
* @param array|null $data
|
||||||
* @param bool $overwrite
|
* @param bool $overwrite
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
protected function saveContent(array $data = null, bool $overwrite = false)
|
protected function saveContent(array $data = null, bool $overwrite = false)
|
||||||
{
|
{
|
||||||
@@ -607,7 +607,7 @@ abstract class ModelWithContent extends Model
|
|||||||
* @param array|null $data
|
* @param array|null $data
|
||||||
* @param string|null $languageCode
|
* @param string|null $languageCode
|
||||||
* @param bool $overwrite
|
* @param bool $overwrite
|
||||||
* @return self
|
* @return static
|
||||||
* @throws \Kirby\Exception\InvalidArgumentException If the language for the given code does not exist
|
* @throws \Kirby\Exception\InvalidArgumentException If the language for the given code does not exist
|
||||||
*/
|
*/
|
||||||
protected function saveTranslation(array $data = null, string $languageCode = null, bool $overwrite = false)
|
protected function saveTranslation(array $data = null, string $languageCode = null, bool $overwrite = false)
|
||||||
@@ -653,7 +653,7 @@ abstract class ModelWithContent extends Model
|
|||||||
* Sets the Content object
|
* Sets the Content object
|
||||||
*
|
*
|
||||||
* @param array|null $content
|
* @param array|null $content
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setContent(array $content = null)
|
protected function setContent(array $content = null)
|
||||||
{
|
{
|
||||||
@@ -669,7 +669,7 @@ abstract class ModelWithContent extends Model
|
|||||||
* Create the translations collection from an array
|
* Create the translations collection from an array
|
||||||
*
|
*
|
||||||
* @param array|null $translations
|
* @param array|null $translations
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setTranslations(array $translations = null)
|
protected function setTranslations(array $translations = null)
|
||||||
{
|
{
|
||||||
@@ -752,7 +752,7 @@ abstract class ModelWithContent extends Model
|
|||||||
* @param array|null $input
|
* @param array|null $input
|
||||||
* @param string|null $languageCode
|
* @param string|null $languageCode
|
||||||
* @param bool $validate
|
* @param bool $validate
|
||||||
* @return self
|
* @return static
|
||||||
* @throws \Kirby\Exception\InvalidArgumentException If the input array contains invalid values
|
* @throws \Kirby\Exception\InvalidArgumentException If the input array contains invalid values
|
||||||
*/
|
*/
|
||||||
public function update(array $input = null, string $languageCode = null, bool $validate = false)
|
public function update(array $input = null, string $languageCode = null, bool $validate = false)
|
||||||
|
@@ -239,7 +239,7 @@ class Page extends ModelWithContent
|
|||||||
* @param string|null $inSection
|
* @param string|null $inSection
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function blueprints(string $inSection = null): array
|
public function blueprints(?string $inSection = null): array
|
||||||
{
|
{
|
||||||
if ($inSection !== null) {
|
if ($inSection !== null) {
|
||||||
return $this->blueprint()->section($inSection)->blueprints();
|
return $this->blueprint()->section($inSection)->blueprints();
|
||||||
@@ -304,7 +304,7 @@ class Page extends ModelWithContent
|
|||||||
* @param string|null $languageCode
|
* @param string|null $languageCode
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function contentFileData(array $data, string $languageCode = null): array
|
public function contentFileData(array $data, ?string $languageCode = null): array
|
||||||
{
|
{
|
||||||
return A::prepend($data, [
|
return A::prepend($data, [
|
||||||
'title' => $data['title'] ?? null,
|
'title' => $data['title'] ?? null,
|
||||||
@@ -320,7 +320,7 @@ class Page extends ModelWithContent
|
|||||||
* @param string|null $languageCode
|
* @param string|null $languageCode
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function contentFileName(string $languageCode = null): string
|
public function contentFileName(?string $languageCode = null): string
|
||||||
{
|
{
|
||||||
return $this->intendedTemplate()->name();
|
return $this->intendedTemplate()->name();
|
||||||
}
|
}
|
||||||
@@ -466,7 +466,7 @@ class Page extends ModelWithContent
|
|||||||
*
|
*
|
||||||
* @internal
|
* @internal
|
||||||
* @param mixed $props
|
* @param mixed $props
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function factory($props)
|
public static function factory($props)
|
||||||
{
|
{
|
||||||
@@ -885,7 +885,7 @@ class Page extends ModelWithContent
|
|||||||
* @internal
|
* @internal
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @param array $props
|
* @param array $props
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function model(string $name, array $props = [])
|
public static function model(string $name, array $props = [])
|
||||||
{
|
{
|
||||||
@@ -1175,11 +1175,11 @@ class Page extends ModelWithContent
|
|||||||
$response = $kirby->response()->toArray();
|
$response = $kirby->response()->toArray();
|
||||||
|
|
||||||
// cache the result
|
// cache the result
|
||||||
if ($cache !== null) {
|
if ($cache !== null && $kirby->response()->cache() === true) {
|
||||||
$cache->set($cacheId, [
|
$cache->set($cacheId, [
|
||||||
'html' => $html,
|
'html' => $html,
|
||||||
'response' => $response
|
'response' => $response
|
||||||
]);
|
], $kirby->response()->expires() ?? 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1244,7 +1244,7 @@ class Page extends ModelWithContent
|
|||||||
* Sets the Blueprint object
|
* Sets the Blueprint object
|
||||||
*
|
*
|
||||||
* @param array|null $blueprint
|
* @param array|null $blueprint
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setBlueprint(array $blueprint = null)
|
protected function setBlueprint(array $blueprint = null)
|
||||||
{
|
{
|
||||||
@@ -1262,7 +1262,7 @@ class Page extends ModelWithContent
|
|||||||
* than computing the dirname afterwards
|
* than computing the dirname afterwards
|
||||||
*
|
*
|
||||||
* @param string|null $dirname
|
* @param string|null $dirname
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setDirname(string $dirname = null)
|
protected function setDirname(string $dirname = null)
|
||||||
{
|
{
|
||||||
@@ -1274,7 +1274,7 @@ class Page extends ModelWithContent
|
|||||||
* Sets the draft flag
|
* Sets the draft flag
|
||||||
*
|
*
|
||||||
* @param bool $isDraft
|
* @param bool $isDraft
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setIsDraft(bool $isDraft = null)
|
protected function setIsDraft(bool $isDraft = null)
|
||||||
{
|
{
|
||||||
@@ -1286,7 +1286,7 @@ class Page extends ModelWithContent
|
|||||||
* Sets the sorting number
|
* Sets the sorting number
|
||||||
*
|
*
|
||||||
* @param int|null $num
|
* @param int|null $num
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setNum(int $num = null)
|
protected function setNum(int $num = null)
|
||||||
{
|
{
|
||||||
@@ -1298,7 +1298,7 @@ class Page extends ModelWithContent
|
|||||||
* Sets the parent page object
|
* Sets the parent page object
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\Page|null $parent
|
* @param \Kirby\Cms\Page|null $parent
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setParent(Page $parent = null)
|
protected function setParent(Page $parent = null)
|
||||||
{
|
{
|
||||||
@@ -1310,7 +1310,7 @@ class Page extends ModelWithContent
|
|||||||
* Sets the absolute path to the page
|
* Sets the absolute path to the page
|
||||||
*
|
*
|
||||||
* @param string|null $root
|
* @param string|null $root
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setRoot(string $root = null)
|
protected function setRoot(string $root = null)
|
||||||
{
|
{
|
||||||
@@ -1322,7 +1322,7 @@ class Page extends ModelWithContent
|
|||||||
* Sets the required Page slug
|
* Sets the required Page slug
|
||||||
*
|
*
|
||||||
* @param string $slug
|
* @param string $slug
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setSlug(string $slug)
|
protected function setSlug(string $slug)
|
||||||
{
|
{
|
||||||
@@ -1334,7 +1334,7 @@ class Page extends ModelWithContent
|
|||||||
* Sets the intended template
|
* Sets the intended template
|
||||||
*
|
*
|
||||||
* @param string|null $template
|
* @param string|null $template
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setTemplate(string $template = null)
|
protected function setTemplate(string $template = null)
|
||||||
{
|
{
|
||||||
@@ -1349,7 +1349,7 @@ class Page extends ModelWithContent
|
|||||||
* Sets the Url
|
* Sets the Url
|
||||||
*
|
*
|
||||||
* @param string|null $url
|
* @param string|null $url
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setUrl(string $url = null)
|
protected function setUrl(string $url = null)
|
||||||
{
|
{
|
||||||
|
@@ -30,7 +30,7 @@ trait PageActions
|
|||||||
* siblings will not be resorted.
|
* siblings will not be resorted.
|
||||||
*
|
*
|
||||||
* @param int|null $num
|
* @param int|null $num
|
||||||
* @return self
|
* @return $this|static
|
||||||
* @throws \Kirby\Exception\LogicException If a draft is being sorted or the directory cannot be moved
|
* @throws \Kirby\Exception\LogicException If a draft is being sorted or the directory cannot be moved
|
||||||
*/
|
*/
|
||||||
public function changeNum(int $num = null)
|
public function changeNum(int $num = null)
|
||||||
@@ -77,7 +77,7 @@ trait PageActions
|
|||||||
*
|
*
|
||||||
* @param string $slug
|
* @param string $slug
|
||||||
* @param string|null $languageCode
|
* @param string|null $languageCode
|
||||||
* @return self
|
* @return $this|static
|
||||||
* @throws \Kirby\Exception\LogicException If the directory cannot be moved
|
* @throws \Kirby\Exception\LogicException If the directory cannot be moved
|
||||||
*/
|
*/
|
||||||
public function changeSlug(string $slug, string $languageCode = null)
|
public function changeSlug(string $slug, string $languageCode = null)
|
||||||
@@ -141,7 +141,7 @@ trait PageActions
|
|||||||
*
|
*
|
||||||
* @param string $slug
|
* @param string $slug
|
||||||
* @param string|null $languageCode
|
* @param string|null $languageCode
|
||||||
* @return self
|
* @return static
|
||||||
* @throws \Kirby\Exception\NotFoundException If the language for the given language code cannot be found
|
* @throws \Kirby\Exception\NotFoundException If the language for the given language code cannot be found
|
||||||
* @throws \Kirby\Exception\InvalidArgumentException If the slug for the default language is being changed
|
* @throws \Kirby\Exception\InvalidArgumentException If the slug for the default language is being changed
|
||||||
*/
|
*/
|
||||||
@@ -176,7 +176,7 @@ trait PageActions
|
|||||||
*
|
*
|
||||||
* @param string $status "draft", "listed" or "unlisted"
|
* @param string $status "draft", "listed" or "unlisted"
|
||||||
* @param int|null $position Optional sorting number
|
* @param int|null $position Optional sorting number
|
||||||
* @return self
|
* @return static
|
||||||
* @throws \Kirby\Exception\InvalidArgumentException If an invalid status is being passed
|
* @throws \Kirby\Exception\InvalidArgumentException If an invalid status is being passed
|
||||||
*/
|
*/
|
||||||
public function changeStatus(string $status, int $position = null)
|
public function changeStatus(string $status, int $position = null)
|
||||||
@@ -194,7 +194,7 @@ trait PageActions
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
protected function changeStatusToDraft()
|
protected function changeStatusToDraft()
|
||||||
{
|
{
|
||||||
@@ -208,7 +208,7 @@ trait PageActions
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int|null $position
|
* @param int|null $position
|
||||||
* @return self
|
* @return $this|static
|
||||||
*/
|
*/
|
||||||
protected function changeStatusToListed(int $position = null)
|
protected function changeStatusToListed(int $position = null)
|
||||||
{
|
{
|
||||||
@@ -233,7 +233,7 @@ trait PageActions
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return self
|
* @return $this|static
|
||||||
*/
|
*/
|
||||||
protected function changeStatusToUnlisted()
|
protected function changeStatusToUnlisted()
|
||||||
{
|
{
|
||||||
@@ -257,7 +257,7 @@ trait PageActions
|
|||||||
* status isn't yet `listed`, it will be changed to it.
|
* status isn't yet `listed`, it will be changed to it.
|
||||||
*
|
*
|
||||||
* @param int|null $position
|
* @param int|null $position
|
||||||
* @return self
|
* @return $this|static
|
||||||
*/
|
*/
|
||||||
public function changeSort(int $position = null)
|
public function changeSort(int $position = null)
|
||||||
{
|
{
|
||||||
@@ -268,7 +268,7 @@ trait PageActions
|
|||||||
* Changes the page template
|
* Changes the page template
|
||||||
*
|
*
|
||||||
* @param string $template
|
* @param string $template
|
||||||
* @return self
|
* @return $this|static
|
||||||
* @throws \Kirby\Exception\LogicException If the textfile cannot be renamed/moved
|
* @throws \Kirby\Exception\LogicException If the textfile cannot be renamed/moved
|
||||||
*/
|
*/
|
||||||
public function changeTemplate(string $template)
|
public function changeTemplate(string $template)
|
||||||
@@ -316,7 +316,7 @@ trait PageActions
|
|||||||
*
|
*
|
||||||
* @param string $title
|
* @param string $title
|
||||||
* @param string|null $languageCode
|
* @param string|null $languageCode
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function changeTitle(string $title, string $languageCode = null)
|
public function changeTitle(string $title, string $languageCode = null)
|
||||||
{
|
{
|
||||||
@@ -443,7 +443,7 @@ trait PageActions
|
|||||||
* Creates and stores a new page
|
* Creates and stores a new page
|
||||||
*
|
*
|
||||||
* @param array $props
|
* @param array $props
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function create(array $props)
|
public static function create(array $props)
|
||||||
{
|
{
|
||||||
@@ -498,7 +498,7 @@ trait PageActions
|
|||||||
* Creates a child of the current page
|
* Creates a child of the current page
|
||||||
*
|
*
|
||||||
* @param array $props
|
* @param array $props
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function createChild(array $props)
|
public function createChild(array $props)
|
||||||
{
|
{
|
||||||
@@ -655,7 +655,7 @@ trait PageActions
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return self
|
* @return $this|static
|
||||||
* @throws \Kirby\Exception\LogicException If the folder cannot be moved
|
* @throws \Kirby\Exception\LogicException If the folder cannot be moved
|
||||||
*/
|
*/
|
||||||
public function publish()
|
public function publish()
|
||||||
@@ -693,7 +693,7 @@ trait PageActions
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Clean internal caches
|
* Clean internal caches
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function purge()
|
public function purge()
|
||||||
{
|
{
|
||||||
@@ -788,9 +788,10 @@ trait PageActions
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated 3.5.0 Use `Page::changeSort()` instead
|
* @deprecated 3.5.0 Use `Page::changeSort()` instead
|
||||||
|
* @todo Remove in 3.6.0
|
||||||
*
|
*
|
||||||
* @param null $position
|
* @param null $position
|
||||||
* @return self
|
* @return $this|static
|
||||||
*/
|
*/
|
||||||
public function sort($position = null)
|
public function sort($position = null)
|
||||||
{
|
{
|
||||||
@@ -803,7 +804,7 @@ trait PageActions
|
|||||||
* Convert a page from listed or
|
* Convert a page from listed or
|
||||||
* unlisted to draft.
|
* unlisted to draft.
|
||||||
*
|
*
|
||||||
* @return self
|
* @return $this|static
|
||||||
* @throws \Kirby\Exception\LogicException If the folder cannot be moved
|
* @throws \Kirby\Exception\LogicException If the folder cannot be moved
|
||||||
*/
|
*/
|
||||||
public function unpublish()
|
public function unpublish()
|
||||||
@@ -841,7 +842,7 @@ trait PageActions
|
|||||||
* @param array|null $input
|
* @param array|null $input
|
||||||
* @param string|null $languageCode
|
* @param string|null $languageCode
|
||||||
* @param bool $validate
|
* @param bool $validate
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function update(array $input = null, string $languageCode = null, bool $validate = false)
|
public function update(array $input = null, string $languageCode = null, bool $validate = false)
|
||||||
{
|
{
|
||||||
|
@@ -254,12 +254,6 @@ class PageRules
|
|||||||
*/
|
*/
|
||||||
public static function changeTitle(Page $page, string $title): bool
|
public static function changeTitle(Page $page, string $title): bool
|
||||||
{
|
{
|
||||||
if (Str::length($title) === 0) {
|
|
||||||
throw new InvalidArgumentException([
|
|
||||||
'key' => 'page.changeTitle.empty',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($page->permissions()->changeTitle() !== true) {
|
if ($page->permissions()->changeTitle() !== true) {
|
||||||
throw new PermissionException([
|
throw new PermissionException([
|
||||||
'key' => 'page.changeTitle.permission',
|
'key' => 'page.changeTitle.permission',
|
||||||
@@ -269,6 +263,12 @@ class PageRules
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Str::length($title) === 0) {
|
||||||
|
throw new InvalidArgumentException([
|
||||||
|
'key' => 'page.changeTitle.empty',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -283,9 +283,12 @@ class PageRules
|
|||||||
*/
|
*/
|
||||||
public static function create(Page $page): bool
|
public static function create(Page $page): bool
|
||||||
{
|
{
|
||||||
if (Str::length($page->slug()) < 1) {
|
if ($page->permissions()->create() !== true) {
|
||||||
throw new InvalidArgumentException([
|
throw new PermissionException([
|
||||||
'key' => 'page.slug.invalid',
|
'key' => 'page.create.permission',
|
||||||
|
'data' => [
|
||||||
|
'slug' => $page->slug()
|
||||||
|
]
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -300,15 +303,6 @@ class PageRules
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($page->permissions()->create() !== true) {
|
|
||||||
throw new PermissionException([
|
|
||||||
'key' => 'page.create.permission',
|
|
||||||
'data' => [
|
|
||||||
'slug' => $page->slug()
|
|
||||||
]
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$siblings = $page->parentModel()->children();
|
$siblings = $page->parentModel()->children();
|
||||||
$drafts = $page->parentModel()->drafts();
|
$drafts = $page->parentModel()->drafts();
|
||||||
$slug = $page->slug();
|
$slug = $page->slug();
|
||||||
@@ -377,6 +371,8 @@ class PageRules
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self::validateSlugLength($slug);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -403,19 +399,27 @@ class PageRules
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ensures that the slug doesn't exceed the maximum length to make
|
* Ensures that the slug is not empty and doesn't exceed the maximum length
|
||||||
* sure that the directory name will be accepted by the filesystem
|
* to make sure that the directory name will be accepted by the filesystem
|
||||||
*
|
*
|
||||||
* @param string $slug New slug to check
|
* @param string $slug New slug to check
|
||||||
* @return void
|
* @return void
|
||||||
* @throws \Kirby\Exception\InvalidArgumentException If the slug is too long
|
* @throws \Kirby\Exception\InvalidArgumentException If the slug is empty or too long
|
||||||
*/
|
*/
|
||||||
protected static function validateSlugLength(string $slug): void
|
protected static function validateSlugLength(string $slug): void
|
||||||
{
|
{
|
||||||
|
$slugLength = Str::length($slug);
|
||||||
|
|
||||||
|
if ($slugLength === 0) {
|
||||||
|
throw new InvalidArgumentException([
|
||||||
|
'key' => 'page.slug.invalid',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
if ($slugsMaxlength = App::instance()->option('slugs.maxlength', 255)) {
|
if ($slugsMaxlength = App::instance()->option('slugs.maxlength', 255)) {
|
||||||
$maxlength = (int)$slugsMaxlength;
|
$maxlength = (int)$slugsMaxlength;
|
||||||
|
|
||||||
if (Str::length($slug) > $maxlength) {
|
if ($slugLength > $maxlength) {
|
||||||
throw new InvalidArgumentException([
|
throw new InvalidArgumentException([
|
||||||
'key' => 'page.slug.maxlength',
|
'key' => 'page.slug.maxlength',
|
||||||
'data' => [
|
'data' => [
|
||||||
|
@@ -49,7 +49,7 @@ class Pages extends Collection
|
|||||||
* current collection
|
* current collection
|
||||||
*
|
*
|
||||||
* @param mixed $object
|
* @param mixed $object
|
||||||
* @return self
|
* @return $this
|
||||||
* @throws \Kirby\Exception\InvalidArgumentException
|
* @throws \Kirby\Exception\InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
public function add($object)
|
public function add($object)
|
||||||
@@ -146,7 +146,7 @@ class Pages extends Collection
|
|||||||
* @param array $pages
|
* @param array $pages
|
||||||
* @param \Kirby\Cms\Model|null $model
|
* @param \Kirby\Cms\Model|null $model
|
||||||
* @param bool $draft
|
* @param bool $draft
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function factory(array $pages, Model $model = null, bool $draft = false)
|
public static function factory(array $pages, Model $model = null, bool $draft = false)
|
||||||
{
|
{
|
||||||
@@ -389,7 +389,7 @@ class Pages extends Collection
|
|||||||
* Include all given items in the collection
|
* Include all given items in the collection
|
||||||
*
|
*
|
||||||
* @param mixed ...$args
|
* @param mixed ...$args
|
||||||
* @return self
|
* @return $this|static
|
||||||
*/
|
*/
|
||||||
public function merge(...$args)
|
public function merge(...$args)
|
||||||
{
|
{
|
||||||
|
@@ -153,7 +153,7 @@ class Permissions
|
|||||||
* @param string $category
|
* @param string $category
|
||||||
* @param string $action
|
* @param string $action
|
||||||
* @param $setting
|
* @param $setting
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setAction(string $category, string $action, $setting)
|
protected function setAction(string $category, string $action, $setting)
|
||||||
{
|
{
|
||||||
@@ -169,7 +169,7 @@ class Permissions
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param bool $setting
|
* @param bool $setting
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setAll(bool $setting)
|
protected function setAll(bool $setting)
|
||||||
{
|
{
|
||||||
@@ -182,7 +182,7 @@ class Permissions
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $settings
|
* @param array $settings
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setCategories(array $settings)
|
protected function setCategories(array $settings)
|
||||||
{
|
{
|
||||||
@@ -204,7 +204,7 @@ class Permissions
|
|||||||
/**
|
/**
|
||||||
* @param string $category
|
* @param string $category
|
||||||
* @param bool $setting
|
* @param bool $setting
|
||||||
* @return self
|
* @return $this
|
||||||
* @throws \Kirby\Exception\InvalidArgumentException
|
* @throws \Kirby\Exception\InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
protected function setCategory(string $category, bool $setting)
|
protected function setCategory(string $category, bool $setting)
|
||||||
|
@@ -135,7 +135,7 @@ class Plugin extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @return self
|
* @return $this
|
||||||
* @throws \Kirby\Exception\InvalidArgumentException
|
* @throws \Kirby\Exception\InvalidArgumentException
|
||||||
*/
|
*/
|
||||||
protected function setName(string $name)
|
protected function setName(string $name)
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Kirby\Cms;
|
namespace Kirby\Cms;
|
||||||
|
|
||||||
|
use Kirby\Exception\InvalidArgumentException;
|
||||||
use Kirby\Toolkit\Mime;
|
use Kirby\Toolkit\Mime;
|
||||||
use Kirby\Toolkit\Str;
|
use Kirby\Toolkit\Str;
|
||||||
|
|
||||||
@@ -16,6 +17,14 @@ use Kirby\Toolkit\Str;
|
|||||||
*/
|
*/
|
||||||
class Responder
|
class Responder
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Timestamp when the response expires
|
||||||
|
* in Kirby's cache
|
||||||
|
*
|
||||||
|
* @var int|null
|
||||||
|
*/
|
||||||
|
protected $expires = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HTTP status code
|
* HTTP status code
|
||||||
*
|
*
|
||||||
@@ -30,6 +39,14 @@ class Responder
|
|||||||
*/
|
*/
|
||||||
protected $body = null;
|
protected $body = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flag that defines whether the current
|
||||||
|
* response can be cached by Kirby's cache
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $cache = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HTTP headers
|
* HTTP headers
|
||||||
*
|
*
|
||||||
@@ -58,7 +75,7 @@ class Responder
|
|||||||
* Setter and getter for the response body
|
* Setter and getter for the response body
|
||||||
*
|
*
|
||||||
* @param string|null $body
|
* @param string|null $body
|
||||||
* @return string|self
|
* @return string|$this
|
||||||
*/
|
*/
|
||||||
public function body(string $body = null)
|
public function body(string $body = null)
|
||||||
{
|
{
|
||||||
@@ -70,11 +87,77 @@ class Responder
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setter and getter for the flag that defines
|
||||||
|
* whether the current response can be cached
|
||||||
|
* by Kirby's cache
|
||||||
|
*
|
||||||
|
* @param bool|null $cache
|
||||||
|
* @return bool|$this
|
||||||
|
*/
|
||||||
|
public function cache(?bool $cache = null)
|
||||||
|
{
|
||||||
|
if ($cache === null) {
|
||||||
|
return $this->cache;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->cache = $cache;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setter and getter for the cache expiry
|
||||||
|
* timestamp for Kirby's cache
|
||||||
|
*
|
||||||
|
* @param int|string|null $expires Timestamp, number of minutes or time string to parse
|
||||||
|
* @param bool $override If `true`, the already defined timestamp will be overridden
|
||||||
|
* @return int|null|$this
|
||||||
|
*/
|
||||||
|
public function expires($expires = null, bool $override = false)
|
||||||
|
{
|
||||||
|
// getter
|
||||||
|
if ($expires === null && $override === false) {
|
||||||
|
return $this->expires;
|
||||||
|
}
|
||||||
|
|
||||||
|
// explicit un-setter
|
||||||
|
if ($expires === null) {
|
||||||
|
$this->expires = null;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
// normalize the value to an integer timestamp
|
||||||
|
if (is_int($expires) === true && $expires < 1000000000) {
|
||||||
|
// number of minutes
|
||||||
|
$expires = time() + ($expires * 60);
|
||||||
|
} elseif (is_int($expires) !== true) {
|
||||||
|
// time string
|
||||||
|
$parsedExpires = strtotime($expires);
|
||||||
|
|
||||||
|
if (is_int($parsedExpires) !== true) {
|
||||||
|
throw new InvalidArgumentException('Invalid time string "' . $expires . '"');
|
||||||
|
}
|
||||||
|
|
||||||
|
$expires = $parsedExpires;
|
||||||
|
}
|
||||||
|
|
||||||
|
// by default only ever *reduce* the cache expiry time
|
||||||
|
if (
|
||||||
|
$override === true ||
|
||||||
|
$this->expires === null ||
|
||||||
|
$expires < $this->expires
|
||||||
|
) {
|
||||||
|
$this->expires = $expires;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter and getter for the status code
|
* Setter and getter for the status code
|
||||||
*
|
*
|
||||||
* @param int|null $code
|
* @param int|null $code
|
||||||
* @return int|self
|
* @return int|$this
|
||||||
*/
|
*/
|
||||||
public function code(int $code = null)
|
public function code(int $code = null)
|
||||||
{
|
{
|
||||||
@@ -94,6 +177,7 @@ class Responder
|
|||||||
public function fromArray(array $response): void
|
public function fromArray(array $response): void
|
||||||
{
|
{
|
||||||
$this->body($response['body'] ?? null);
|
$this->body($response['body'] ?? null);
|
||||||
|
$this->expires($response['expires'] ?? null);
|
||||||
$this->code($response['code'] ?? null);
|
$this->code($response['code'] ?? null);
|
||||||
$this->headers($response['headers'] ?? null);
|
$this->headers($response['headers'] ?? null);
|
||||||
$this->type($response['type'] ?? null);
|
$this->type($response['type'] ?? null);
|
||||||
@@ -104,9 +188,10 @@ class Responder
|
|||||||
*
|
*
|
||||||
* @param string $key
|
* @param string $key
|
||||||
* @param string|false|null $value
|
* @param string|false|null $value
|
||||||
* @return string|self
|
* @param bool $lazy If `true`, an existing header value is not overridden
|
||||||
|
* @return string|$this
|
||||||
*/
|
*/
|
||||||
public function header(string $key, $value = null)
|
public function header(string $key, $value = null, bool $lazy = false)
|
||||||
{
|
{
|
||||||
if ($value === null) {
|
if ($value === null) {
|
||||||
return $this->headers[$key] ?? null;
|
return $this->headers[$key] ?? null;
|
||||||
@@ -117,6 +202,10 @@ class Responder
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($lazy === true && isset($this->headers[$key]) === true) {
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
$this->headers[$key] = $value;
|
$this->headers[$key] = $value;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@@ -125,7 +214,7 @@ class Responder
|
|||||||
* Setter and getter for all headers
|
* Setter and getter for all headers
|
||||||
*
|
*
|
||||||
* @param array|null $headers
|
* @param array|null $headers
|
||||||
* @return array|self
|
* @return array|$this
|
||||||
*/
|
*/
|
||||||
public function headers(array $headers = null)
|
public function headers(array $headers = null)
|
||||||
{
|
{
|
||||||
@@ -141,7 +230,7 @@ class Responder
|
|||||||
* Shortcut to configure a json response
|
* Shortcut to configure a json response
|
||||||
*
|
*
|
||||||
* @param array|null $json
|
* @param array|null $json
|
||||||
* @return string|self
|
* @return string|$this
|
||||||
*/
|
*/
|
||||||
public function json(array $json = null)
|
public function json(array $json = null)
|
||||||
{
|
{
|
||||||
@@ -157,7 +246,7 @@ class Responder
|
|||||||
*
|
*
|
||||||
* @param string|null $location
|
* @param string|null $location
|
||||||
* @param int|null $code
|
* @param int|null $code
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function redirect(?string $location = null, ?int $code = null)
|
public function redirect(?string $location = null, ?int $code = null)
|
||||||
{
|
{
|
||||||
@@ -204,7 +293,7 @@ class Responder
|
|||||||
* Setter and getter for the content type
|
* Setter and getter for the content type
|
||||||
*
|
*
|
||||||
* @param string|null $type
|
* @param string|null $type
|
||||||
* @return string|self
|
* @return string|$this
|
||||||
*/
|
*/
|
||||||
public function type(string $type = null)
|
public function type(string $type = null)
|
||||||
{
|
{
|
||||||
|
@@ -21,7 +21,7 @@ class Response extends \Kirby\Http\Response
|
|||||||
*
|
*
|
||||||
* @param string $location
|
* @param string $location
|
||||||
* @param int $code
|
* @param int $code
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function redirect(string $location = '/', int $code = 302)
|
public static function redirect(string $location = '/', int $code = 302)
|
||||||
{
|
{
|
||||||
|
@@ -49,7 +49,7 @@ class Role extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $inject
|
* @param array $inject
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function admin(array $inject = [])
|
public static function admin(array $inject = [])
|
||||||
{
|
{
|
||||||
@@ -92,7 +92,7 @@ class Role extends Model
|
|||||||
/**
|
/**
|
||||||
* @param array $props
|
* @param array $props
|
||||||
* @param array $inject
|
* @param array $inject
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function factory(array $props, array $inject = [])
|
public static function factory(array $props, array $inject = [])
|
||||||
{
|
{
|
||||||
@@ -126,7 +126,7 @@ class Role extends Model
|
|||||||
/**
|
/**
|
||||||
* @param string $file
|
* @param string $file
|
||||||
* @param array $inject
|
* @param array $inject
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function load(string $file, array $inject = [])
|
public static function load(string $file, array $inject = [])
|
||||||
{
|
{
|
||||||
@@ -146,7 +146,7 @@ class Role extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $inject
|
* @param array $inject
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function nobody(array $inject = [])
|
public static function nobody(array $inject = [])
|
||||||
{
|
{
|
||||||
@@ -166,8 +166,8 @@ class Role extends Model
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param [type] $description
|
* @param mixed $description
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setDescription($description = null)
|
protected function setDescription($description = null)
|
||||||
{
|
{
|
||||||
@@ -177,7 +177,7 @@ class Role extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setName(string $name)
|
protected function setName(string $name)
|
||||||
{
|
{
|
||||||
@@ -186,8 +186,8 @@ class Role extends Model
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param [type] $permissions
|
* @param mixed $permissions
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setPermissions($permissions = null)
|
protected function setPermissions($permissions = null)
|
||||||
{
|
{
|
||||||
@@ -196,8 +196,8 @@ class Role extends Model
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param [type] $title
|
* @param mixed $title
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setTitle($title = null)
|
protected function setTitle($title = null)
|
||||||
{
|
{
|
||||||
|
@@ -23,7 +23,7 @@ class Roles extends Collection
|
|||||||
* roles that can be created by the
|
* roles that can be created by the
|
||||||
* current user
|
* current user
|
||||||
*
|
*
|
||||||
* @return self
|
* @return $this|static
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public function canBeChanged()
|
public function canBeChanged()
|
||||||
@@ -47,7 +47,7 @@ class Roles extends Collection
|
|||||||
* roles that can be created by the
|
* roles that can be created by the
|
||||||
* current user
|
* current user
|
||||||
*
|
*
|
||||||
* @return self
|
* @return $this|static
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public function canBeCreated()
|
public function canBeCreated()
|
||||||
@@ -69,7 +69,7 @@ class Roles extends Collection
|
|||||||
/**
|
/**
|
||||||
* @param array $roles
|
* @param array $roles
|
||||||
* @param array $inject
|
* @param array $inject
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function factory(array $roles, array $inject = [])
|
public static function factory(array $roles, array $inject = [])
|
||||||
{
|
{
|
||||||
@@ -93,7 +93,7 @@ class Roles extends Collection
|
|||||||
/**
|
/**
|
||||||
* @param string|null $root
|
* @param string|null $root
|
||||||
* @param array $inject
|
* @param array $inject
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function load(string $root = null, array $inject = [])
|
public static function load(string $root = null, array $inject = [])
|
||||||
{
|
{
|
||||||
|
@@ -30,14 +30,14 @@ class Site extends ModelWithContent
|
|||||||
/**
|
/**
|
||||||
* The SiteBlueprint object
|
* The SiteBlueprint object
|
||||||
*
|
*
|
||||||
* @var SiteBlueprint
|
* @var \Kirby\Cms\SiteBlueprint
|
||||||
*/
|
*/
|
||||||
protected $blueprint;
|
protected $blueprint;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The error page object
|
* The error page object
|
||||||
*
|
*
|
||||||
* @var Page
|
* @var \Kirby\Cms\Page
|
||||||
*/
|
*/
|
||||||
protected $errorPage;
|
protected $errorPage;
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ class Site extends ModelWithContent
|
|||||||
/**
|
/**
|
||||||
* The home page object
|
* The home page object
|
||||||
*
|
*
|
||||||
* @var Page
|
* @var \Kirby\Cms\Page
|
||||||
*/
|
*/
|
||||||
protected $homePage;
|
protected $homePage;
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ class Site extends ModelWithContent
|
|||||||
/**
|
/**
|
||||||
* The current page object
|
* The current page object
|
||||||
*
|
*
|
||||||
* @var Page
|
* @var \Kirby\Cms\Page
|
||||||
*/
|
*/
|
||||||
protected $page;
|
protected $page;
|
||||||
|
|
||||||
@@ -142,7 +142,7 @@ class Site extends ModelWithContent
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Makes it possible to convert the site model
|
* Makes it possible to convert the site model
|
||||||
* to a string. Mostly useful for debugging
|
* to a string. Mostly useful for debugging.
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
@@ -208,7 +208,7 @@ class Site extends ModelWithContent
|
|||||||
* @param string|null $languageCode
|
* @param string|null $languageCode
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function contentFileData(array $data, string $languageCode = null): array
|
public function contentFileData(array $data, ?string $languageCode = null): array
|
||||||
{
|
{
|
||||||
return A::prepend($data, [
|
return A::prepend($data, [
|
||||||
'title' => $data['title'] ?? null,
|
'title' => $data['title'] ?? null,
|
||||||
@@ -360,11 +360,15 @@ class Site extends ModelWithContent
|
|||||||
*
|
*
|
||||||
* @param string|null $format
|
* @param string|null $format
|
||||||
* @param string|null $handler
|
* @param string|null $handler
|
||||||
* @return mixed
|
* @return int|string
|
||||||
*/
|
*/
|
||||||
public function modified(string $format = null, string $handler = null)
|
public function modified(?string $format = null, ?string $handler = null)
|
||||||
{
|
{
|
||||||
return Dir::modified($this->root(), $format, $handler ?? $this->kirby()->option('date.handler', 'date'));
|
return Dir::modified(
|
||||||
|
$this->root(),
|
||||||
|
$format,
|
||||||
|
$handler ?? $this->kirby()->option('date.handler', 'date')
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -376,10 +380,11 @@ class Site extends ModelWithContent
|
|||||||
* prop, the home page will be returned if
|
* prop, the home page will be returned if
|
||||||
* it can be found. (see `Site::homePage()`)
|
* it can be found. (see `Site::homePage()`)
|
||||||
*
|
*
|
||||||
* @param string|null $path
|
* @param string|null $path omit for current page,
|
||||||
|
* otherwise e.g. `notes/across-the-ocean`
|
||||||
* @return \Kirby\Cms\Page|null
|
* @return \Kirby\Cms\Page|null
|
||||||
*/
|
*/
|
||||||
public function page(string $path = null)
|
public function page(?string $path = null)
|
||||||
{
|
{
|
||||||
if ($path !== null) {
|
if ($path !== null) {
|
||||||
return $this->find($path);
|
return $this->find($path);
|
||||||
@@ -496,7 +501,7 @@ class Site extends ModelWithContent
|
|||||||
* @param array $params
|
* @param array $params
|
||||||
* @return \Kirby\Cms\Pages
|
* @return \Kirby\Cms\Pages
|
||||||
*/
|
*/
|
||||||
public function search(string $query = null, $params = [])
|
public function search(?string $query = null, $params = [])
|
||||||
{
|
{
|
||||||
return $this->index()->search($query, $params);
|
return $this->index()->search($query, $params);
|
||||||
}
|
}
|
||||||
@@ -505,9 +510,9 @@ class Site extends ModelWithContent
|
|||||||
* Sets the Blueprint object
|
* Sets the Blueprint object
|
||||||
*
|
*
|
||||||
* @param array|null $blueprint
|
* @param array|null $blueprint
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setBlueprint(array $blueprint = null)
|
protected function setBlueprint(?array $blueprint = null)
|
||||||
{
|
{
|
||||||
if ($blueprint !== null) {
|
if ($blueprint !== null) {
|
||||||
$blueprint['model'] = $this;
|
$blueprint['model'] = $this;
|
||||||
@@ -524,7 +529,7 @@ class Site extends ModelWithContent
|
|||||||
* else is set.
|
* else is set.
|
||||||
*
|
*
|
||||||
* @param string $id
|
* @param string $id
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setErrorPageId(string $id = 'error')
|
protected function setErrorPageId(string $id = 'error')
|
||||||
{
|
{
|
||||||
@@ -539,7 +544,7 @@ class Site extends ModelWithContent
|
|||||||
* else is set.
|
* else is set.
|
||||||
*
|
*
|
||||||
* @param string $id
|
* @param string $id
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setHomePageId(string $id = 'home')
|
protected function setHomePageId(string $id = 'home')
|
||||||
{
|
{
|
||||||
@@ -552,9 +557,9 @@ class Site extends ModelWithContent
|
|||||||
*
|
*
|
||||||
* @internal
|
* @internal
|
||||||
* @param \Kirby\Cms\Page|null $page
|
* @param \Kirby\Cms\Page|null $page
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function setPage(Page $page = null)
|
public function setPage(?Page $page = null)
|
||||||
{
|
{
|
||||||
$this->page = $page;
|
$this->page = $page;
|
||||||
return $this;
|
return $this;
|
||||||
@@ -564,7 +569,7 @@ class Site extends ModelWithContent
|
|||||||
* Sets the Url
|
* Sets the Url
|
||||||
*
|
*
|
||||||
* @param string|null $url
|
* @param string|null $url
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setUrl($url = null)
|
protected function setUrl($url = null)
|
||||||
{
|
{
|
||||||
@@ -615,7 +620,7 @@ class Site extends ModelWithContent
|
|||||||
* @param array|null $options
|
* @param array|null $options
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function urlForLanguage(string $languageCode = null, array $options = null): string
|
public function urlForLanguage(?string $languageCode = null, ?array $options = null): string
|
||||||
{
|
{
|
||||||
if ($language = $this->kirby()->language($languageCode)) {
|
if ($language = $this->kirby()->language($languageCode)) {
|
||||||
return $language->url();
|
return $language->url();
|
||||||
@@ -634,7 +639,7 @@ class Site extends ModelWithContent
|
|||||||
* @param string|null $languageCode
|
* @param string|null $languageCode
|
||||||
* @return \Kirby\Cms\Page
|
* @return \Kirby\Cms\Page
|
||||||
*/
|
*/
|
||||||
public function visit($page, string $languageCode = null)
|
public function visit($page, ?string $languageCode = null)
|
||||||
{
|
{
|
||||||
if ($languageCode !== null) {
|
if ($languageCode !== null) {
|
||||||
$this->kirby()->setCurrentTranslation($languageCode);
|
$this->kirby()->setCurrentTranslation($languageCode);
|
||||||
|
@@ -51,7 +51,7 @@ trait SiteActions
|
|||||||
*
|
*
|
||||||
* @param string $title
|
* @param string $title
|
||||||
* @param string|null $languageCode
|
* @param string|null $languageCode
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function changeTitle(string $title, string $languageCode = null)
|
public function changeTitle(string $title, string $languageCode = null)
|
||||||
{
|
{
|
||||||
@@ -82,7 +82,7 @@ trait SiteActions
|
|||||||
/**
|
/**
|
||||||
* Clean internal caches
|
* Clean internal caches
|
||||||
*
|
*
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function purge()
|
public function purge()
|
||||||
{
|
{
|
||||||
|
@@ -23,7 +23,7 @@ class Structure extends Collection
|
|||||||
/**
|
/**
|
||||||
* Creates a new Collection with the given objects
|
* Creates a new Collection with the given objects
|
||||||
*
|
*
|
||||||
* @param array $objects
|
* @param array $objects Kirby\Cms\StructureObject` objects or props arrays
|
||||||
* @param object|null $parent
|
* @param object|null $parent
|
||||||
*/
|
*/
|
||||||
public function __construct($objects = [], $parent = null)
|
public function __construct($objects = [], $parent = null)
|
||||||
|
@@ -35,7 +35,7 @@ class StructureObject extends Model
|
|||||||
protected $id;
|
protected $id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var Page|Site|File|User
|
* @var \Kirby\Cms\Site|\Kirby\Cms\Page|\Kirby\Cms\File|\Kirby\Cms\User|null
|
||||||
*/
|
*/
|
||||||
protected $parent;
|
protected $parent;
|
||||||
|
|
||||||
@@ -131,7 +131,7 @@ class StructureObject extends Model
|
|||||||
* Sets the Content object with the given parent
|
* Sets the Content object with the given parent
|
||||||
*
|
*
|
||||||
* @param array|null $content
|
* @param array|null $content
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setContent(array $content = null)
|
protected function setContent(array $content = null)
|
||||||
{
|
{
|
||||||
@@ -146,7 +146,7 @@ class StructureObject extends Model
|
|||||||
* specified.
|
* specified.
|
||||||
*
|
*
|
||||||
* @param string $id
|
* @param string $id
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setId(string $id)
|
protected function setId(string $id)
|
||||||
{
|
{
|
||||||
@@ -155,11 +155,10 @@ class StructureObject extends Model
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the parent Model. This can either be a
|
* Sets the parent Model
|
||||||
* Page, Site, File or User object
|
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\Model|null $parent
|
* @return $this
|
||||||
* @return self
|
* @param \Kirby\Cms\Site|\Kirby\Cms\Page|\Kirby\Cms\File|\Kirby\Cms\User|null $parent
|
||||||
*/
|
*/
|
||||||
protected function setParent(Model $parent = null)
|
protected function setParent(Model $parent = null)
|
||||||
{
|
{
|
||||||
@@ -171,7 +170,7 @@ class StructureObject extends Model
|
|||||||
* Sets the parent Structure collection
|
* Sets the parent Structure collection
|
||||||
*
|
*
|
||||||
* @param \Kirby\Cms\Structure|null $structure
|
* @param \Kirby\Cms\Structure|null $structure
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setStructure(Structure $structure = null)
|
protected function setStructure(Structure $structure = null)
|
||||||
{
|
{
|
||||||
|
@@ -7,8 +7,6 @@ use Kirby\Exception\Exception;
|
|||||||
use Kirby\Exception\InvalidArgumentException;
|
use Kirby\Exception\InvalidArgumentException;
|
||||||
use Kirby\Exception\PermissionException;
|
use Kirby\Exception\PermissionException;
|
||||||
use Kirby\Http\Remote;
|
use Kirby\Http\Remote;
|
||||||
use Kirby\Http\Uri;
|
|
||||||
use Kirby\Http\Url;
|
|
||||||
use Kirby\Toolkit\A;
|
use Kirby\Toolkit\A;
|
||||||
use Kirby\Toolkit\Dir;
|
use Kirby\Toolkit\Dir;
|
||||||
use Kirby\Toolkit\F;
|
use Kirby\Toolkit\F;
|
||||||
@@ -115,19 +113,7 @@ class System
|
|||||||
*/
|
*/
|
||||||
public function indexUrl(): string
|
public function indexUrl(): string
|
||||||
{
|
{
|
||||||
$url = $this->app->url('index');
|
return $this->app->url('index', true)->setScheme(null)->setSlash(false)->toString();
|
||||||
|
|
||||||
if (Url::isAbsolute($url)) {
|
|
||||||
$uri = Url::toObject($url);
|
|
||||||
} else {
|
|
||||||
// index URL was configured without host, use the current host
|
|
||||||
$uri = Uri::current([
|
|
||||||
'path' => $url,
|
|
||||||
'query' => null
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $uri->setScheme(null)->setSlash(false)->toString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -139,15 +139,17 @@ class Translation
|
|||||||
* @param string $code
|
* @param string $code
|
||||||
* @param string $root
|
* @param string $root
|
||||||
* @param array $inject
|
* @param array $inject
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function load(string $code, string $root, array $inject = [])
|
public static function load(string $code, string $root, array $inject = [])
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
return new Translation($code, array_merge(Data::read($root), $inject));
|
$data = array_merge(Data::read($root), $inject);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
return new Translation($code, []);
|
$data = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return new static($code, $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -39,7 +39,7 @@ class Translations extends Collection
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array $translations
|
* @param array $translations
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function factory(array $translations)
|
public static function factory(array $translations)
|
||||||
{
|
{
|
||||||
@@ -56,7 +56,7 @@ class Translations extends Collection
|
|||||||
/**
|
/**
|
||||||
* @param string $root
|
* @param string $root
|
||||||
* @param array $inject
|
* @param array $inject
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function load(string $root, array $inject = [])
|
public static function load(string $root, array $inject = [])
|
||||||
{
|
{
|
||||||
|
@@ -254,7 +254,7 @@ class User extends ModelWithContent
|
|||||||
*
|
*
|
||||||
* @internal
|
* @internal
|
||||||
* @param mixed $props
|
* @param mixed $props
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function factory($props)
|
public static function factory($props)
|
||||||
{
|
{
|
||||||
@@ -566,7 +566,7 @@ class User extends ModelWithContent
|
|||||||
* Create a dummy nobody
|
* Create a dummy nobody
|
||||||
*
|
*
|
||||||
* @internal
|
* @internal
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function nobody()
|
public static function nobody()
|
||||||
{
|
{
|
||||||
@@ -759,7 +759,7 @@ class User extends ModelWithContent
|
|||||||
* Sets the Blueprint object
|
* Sets the Blueprint object
|
||||||
*
|
*
|
||||||
* @param array|null $blueprint
|
* @param array|null $blueprint
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setBlueprint(array $blueprint = null)
|
protected function setBlueprint(array $blueprint = null)
|
||||||
{
|
{
|
||||||
@@ -775,7 +775,7 @@ class User extends ModelWithContent
|
|||||||
* Sets the user email
|
* Sets the user email
|
||||||
*
|
*
|
||||||
* @param string $email|null
|
* @param string $email|null
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setEmail(string $email = null)
|
protected function setEmail(string $email = null)
|
||||||
{
|
{
|
||||||
@@ -789,7 +789,7 @@ class User extends ModelWithContent
|
|||||||
* Sets the user id
|
* Sets the user id
|
||||||
*
|
*
|
||||||
* @param string $id|null
|
* @param string $id|null
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setId(string $id = null)
|
protected function setId(string $id = null)
|
||||||
{
|
{
|
||||||
@@ -801,7 +801,7 @@ class User extends ModelWithContent
|
|||||||
* Sets the user language
|
* Sets the user language
|
||||||
*
|
*
|
||||||
* @param string $language|null
|
* @param string $language|null
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setLanguage(string $language = null)
|
protected function setLanguage(string $language = null)
|
||||||
{
|
{
|
||||||
@@ -813,7 +813,7 @@ class User extends ModelWithContent
|
|||||||
* Sets the user name
|
* Sets the user name
|
||||||
*
|
*
|
||||||
* @param string $name|null
|
* @param string $name|null
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setName(string $name = null)
|
protected function setName(string $name = null)
|
||||||
{
|
{
|
||||||
@@ -825,7 +825,7 @@ class User extends ModelWithContent
|
|||||||
* Sets the user's password hash
|
* Sets the user's password hash
|
||||||
*
|
*
|
||||||
* @param string $password|null
|
* @param string $password|null
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setPassword(string $password = null)
|
protected function setPassword(string $password = null)
|
||||||
{
|
{
|
||||||
@@ -837,7 +837,7 @@ class User extends ModelWithContent
|
|||||||
* Sets the user role
|
* Sets the user role
|
||||||
*
|
*
|
||||||
* @param string $role|null
|
* @param string $role|null
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setRole(string $role = null)
|
protected function setRole(string $role = null)
|
||||||
{
|
{
|
||||||
@@ -942,7 +942,7 @@ class User extends ModelWithContent
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (password_verify($password, $this->password()) !== true) {
|
if (password_verify($password, $this->password()) !== true) {
|
||||||
throw new InvalidArgumentException(['key' => 'user.password.notSame']);
|
throw new InvalidArgumentException(['key' => 'user.password.wrong']);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@@ -26,7 +26,7 @@ trait UserActions
|
|||||||
* Changes the user email address
|
* Changes the user email address
|
||||||
*
|
*
|
||||||
* @param string $email
|
* @param string $email
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function changeEmail(string $email)
|
public function changeEmail(string $email)
|
||||||
{
|
{
|
||||||
@@ -47,7 +47,7 @@ trait UserActions
|
|||||||
* Changes the user language
|
* Changes the user language
|
||||||
*
|
*
|
||||||
* @param string $language
|
* @param string $language
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function changeLanguage(string $language)
|
public function changeLanguage(string $language)
|
||||||
{
|
{
|
||||||
@@ -68,7 +68,7 @@ trait UserActions
|
|||||||
* Changes the screen name of the user
|
* Changes the screen name of the user
|
||||||
*
|
*
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function changeName(string $name)
|
public function changeName(string $name)
|
||||||
{
|
{
|
||||||
@@ -89,7 +89,7 @@ trait UserActions
|
|||||||
* Changes the user password
|
* Changes the user password
|
||||||
*
|
*
|
||||||
* @param string $password
|
* @param string $password
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function changePassword(string $password)
|
public function changePassword(string $password)
|
||||||
{
|
{
|
||||||
@@ -108,7 +108,7 @@ trait UserActions
|
|||||||
* Changes the user role
|
* Changes the user role
|
||||||
*
|
*
|
||||||
* @param string $role
|
* @param string $role
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function changeRole(string $role)
|
public function changeRole(string $role)
|
||||||
{
|
{
|
||||||
@@ -172,7 +172,7 @@ trait UserActions
|
|||||||
* Creates a new User from the given props and returns a new User object
|
* Creates a new User from the given props and returns a new User object
|
||||||
*
|
*
|
||||||
* @param array|null $props
|
* @param array|null $props
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function create(array $props = null)
|
public static function create(array $props = null)
|
||||||
{
|
{
|
||||||
@@ -304,7 +304,7 @@ trait UserActions
|
|||||||
* @param array|null $input
|
* @param array|null $input
|
||||||
* @param string|null $languageCode
|
* @param string|null $languageCode
|
||||||
* @param bool $validate
|
* @param bool $validate
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function update(array $input = null, string $languageCode = null, bool $validate = false)
|
public function update(array $input = null, string $languageCode = null, bool $validate = false)
|
||||||
{
|
{
|
||||||
|
@@ -38,7 +38,7 @@ class Users extends Collection
|
|||||||
* current collection
|
* current collection
|
||||||
*
|
*
|
||||||
* @param mixed $object
|
* @param mixed $object
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function add($object)
|
public function add($object)
|
||||||
{
|
{
|
||||||
@@ -63,7 +63,7 @@ class Users extends Collection
|
|||||||
*
|
*
|
||||||
* @param array $users
|
* @param array $users
|
||||||
* @param array $inject
|
* @param array $inject
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function factory(array $users, array $inject = [])
|
public static function factory(array $users, array $inject = [])
|
||||||
{
|
{
|
||||||
@@ -98,7 +98,7 @@ class Users extends Collection
|
|||||||
*
|
*
|
||||||
* @param string $root
|
* @param string $root
|
||||||
* @param array $inject
|
* @param array $inject
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public static function load(string $root, array $inject = [])
|
public static function load(string $root, array $inject = [])
|
||||||
{
|
{
|
||||||
@@ -131,7 +131,7 @@ class Users extends Collection
|
|||||||
* Shortcut for `$users->filter('role', 'admin')`
|
* Shortcut for `$users->filter('role', 'admin')`
|
||||||
*
|
*
|
||||||
* @param string $role
|
* @param string $role
|
||||||
* @return self
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function role(string $role)
|
public function role(string $role)
|
||||||
{
|
{
|
||||||
|
@@ -157,7 +157,7 @@ class Database
|
|||||||
* Returns one of the started instances
|
* Returns one of the started instances
|
||||||
*
|
*
|
||||||
* @param string|null $id
|
* @param string|null $id
|
||||||
* @return self|null
|
* @return static|null
|
||||||
*/
|
*/
|
||||||
public static function instance(string $id = null)
|
public static function instance(string $id = null)
|
||||||
{
|
{
|
||||||
|
@@ -294,7 +294,7 @@ class Query
|
|||||||
* @param string $table Name of the table, which should be joined
|
* @param string $table Name of the table, which should be joined
|
||||||
* @param string $on The on clause for this join
|
* @param string $on The on clause for this join
|
||||||
* @param string $type The join type. Uses an inner join by default
|
* @param string $type The join type. Uses an inner join by default
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function join(string $table, string $on, string $type = 'JOIN')
|
public function join(string $table, string $on, string $type = 'JOIN')
|
||||||
{
|
{
|
||||||
|
@@ -63,7 +63,7 @@ class Body
|
|||||||
* Sets the HTML content for the email body
|
* Sets the HTML content for the email body
|
||||||
*
|
*
|
||||||
* @param string|null $html
|
* @param string|null $html
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setHtml(string $html = null)
|
protected function setHtml(string $html = null)
|
||||||
{
|
{
|
||||||
@@ -75,7 +75,7 @@ class Body
|
|||||||
* Sets the plain text content for the email body
|
* Sets the plain text content for the email body
|
||||||
*
|
*
|
||||||
* @param string|null $text
|
* @param string|null $text
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setText(string $text = null)
|
protected function setText(string $text = null)
|
||||||
{
|
{
|
||||||
|
@@ -296,7 +296,7 @@ class Email
|
|||||||
* Sets the email attachments
|
* Sets the email attachments
|
||||||
*
|
*
|
||||||
* @param array|null $attachments
|
* @param array|null $attachments
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setAttachments($attachments = null)
|
protected function setAttachments($attachments = null)
|
||||||
{
|
{
|
||||||
@@ -308,7 +308,7 @@ class Email
|
|||||||
* Sets the email body
|
* Sets the email body
|
||||||
*
|
*
|
||||||
* @param string|array $body
|
* @param string|array $body
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setBody($body)
|
protected function setBody($body)
|
||||||
{
|
{
|
||||||
@@ -336,7 +336,7 @@ class Email
|
|||||||
* Sets the "beforeSend" callback
|
* Sets the "beforeSend" callback
|
||||||
*
|
*
|
||||||
* @param \Closure|null $beforeSend
|
* @param \Closure|null $beforeSend
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setBeforeSend(?Closure $beforeSend = null)
|
protected function setBeforeSend(?Closure $beforeSend = null)
|
||||||
{
|
{
|
||||||
@@ -348,7 +348,7 @@ class Email
|
|||||||
* Sets "cc" recipients
|
* Sets "cc" recipients
|
||||||
*
|
*
|
||||||
* @param string|array|null $cc
|
* @param string|array|null $cc
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setCc($cc = null)
|
protected function setCc($cc = null)
|
||||||
{
|
{
|
||||||
@@ -360,7 +360,7 @@ class Email
|
|||||||
* Sets the "from" email address
|
* Sets the "from" email address
|
||||||
*
|
*
|
||||||
* @param string $from
|
* @param string $from
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setFrom(string $from)
|
protected function setFrom(string $from)
|
||||||
{
|
{
|
||||||
@@ -372,7 +372,7 @@ class Email
|
|||||||
* Sets the "from" name
|
* Sets the "from" name
|
||||||
*
|
*
|
||||||
* @param string|null $fromName
|
* @param string|null $fromName
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setFromName(string $fromName = null)
|
protected function setFromName(string $fromName = null)
|
||||||
{
|
{
|
||||||
@@ -384,7 +384,7 @@ class Email
|
|||||||
* Sets the "reply to" email address
|
* Sets the "reply to" email address
|
||||||
*
|
*
|
||||||
* @param string|null $replyTo
|
* @param string|null $replyTo
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setReplyTo(string $replyTo = null)
|
protected function setReplyTo(string $replyTo = null)
|
||||||
{
|
{
|
||||||
@@ -396,7 +396,7 @@ class Email
|
|||||||
* Sets the "reply to" name
|
* Sets the "reply to" name
|
||||||
*
|
*
|
||||||
* @param string|null $replyToName
|
* @param string|null $replyToName
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setReplyToName(string $replyToName = null)
|
protected function setReplyToName(string $replyToName = null)
|
||||||
{
|
{
|
||||||
@@ -408,7 +408,7 @@ class Email
|
|||||||
* Sets the email subject
|
* Sets the email subject
|
||||||
*
|
*
|
||||||
* @param string $subject
|
* @param string $subject
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setSubject(string $subject)
|
protected function setSubject(string $subject)
|
||||||
{
|
{
|
||||||
@@ -420,7 +420,7 @@ class Email
|
|||||||
* Sets the recipients of the email
|
* Sets the recipients of the email
|
||||||
*
|
*
|
||||||
* @param string|array $to
|
* @param string|array $to
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setTo($to)
|
protected function setTo($to)
|
||||||
{
|
{
|
||||||
@@ -432,7 +432,7 @@ class Email
|
|||||||
* Sets the email transport settings
|
* Sets the email transport settings
|
||||||
*
|
*
|
||||||
* @param array|null $transport
|
* @param array|null $transport
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
protected function setTransport($transport = null)
|
protected function setTransport($transport = null)
|
||||||
{
|
{
|
||||||
|
@@ -92,7 +92,7 @@ abstract class FieldClass
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DEPRECATED!
|
* @deprecated
|
||||||
*
|
*
|
||||||
* Returns the field data
|
* Returns the field data
|
||||||
* in a format to be stored
|
* in a format to be stored
|
||||||
@@ -379,7 +379,7 @@ abstract class FieldClass
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DEPRECATED
|
* @deprecated
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
|
@@ -23,7 +23,7 @@ class Fields extends Collection
|
|||||||
*
|
*
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @param object|array $field
|
* @param object|array $field
|
||||||
* @return self
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function __set(string $name, $field)
|
public function __set(string $name, $field)
|
||||||
{
|
{
|
||||||
|
@@ -40,7 +40,7 @@ class Options
|
|||||||
* Brings options through api
|
* Brings options through api
|
||||||
*
|
*
|
||||||
* @param $api
|
* @param $api
|
||||||
* @param $model
|
* @param \Kirby\Cms\Model|null $model
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public static function api($api, $model = null): array
|
public static function api($api, $model = null): array
|
||||||
@@ -71,7 +71,7 @@ class Options
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $model
|
* @param \Kirby\Cms\Model $model
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected static function data($model): array
|
protected static function data($model): array
|
||||||
@@ -100,14 +100,14 @@ class Options
|
|||||||
*
|
*
|
||||||
* @param $options
|
* @param $options
|
||||||
* @param array $props
|
* @param array $props
|
||||||
* @param null $model
|
* @param \Kirby\Cms\Model|null $model
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public static function factory($options, array $props = [], $model = null): array
|
public static function factory($options, array $props = [], $model = null): array
|
||||||
{
|
{
|
||||||
switch ($options) {
|
switch ($options) {
|
||||||
case 'api':
|
case 'api':
|
||||||
$options = static::api($props['api']);
|
$options = static::api($props['api'], $model);
|
||||||
break;
|
break;
|
||||||
case 'query':
|
case 'query':
|
||||||
$options = static::query($props['query'], $model);
|
$options = static::query($props['query'], $model);
|
||||||
@@ -160,7 +160,7 @@ class Options
|
|||||||
* Brings options with query
|
* Brings options with query
|
||||||
*
|
*
|
||||||
* @param $query
|
* @param $query
|
||||||
* @param null $model
|
* @param \Kirby\Cms\Model|null $model
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public static function query($query, $model = null): array
|
public static function query($query, $model = null): array
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user