Skip to content

Commit c926bdc

Browse files
Upgrade to 3.6.6
1 parent f7dd8d1 commit c926bdc

File tree

12 files changed

+190
-24
lines changed

12 files changed

+190
-24
lines changed

kirby/cacert.pem

+68-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
##
22
## Bundle of CA Root Certificates
33
##
4-
## Certificate data from Mozilla as of: Tue Mar 29 03:12:05 2022 GMT
4+
## Certificate data from Mozilla as of: Tue Apr 26 03:12:05 2022 GMT
55
##
66
## This is a bundle of X.509 certificates of public Certificate Authorities
77
## (CA). These were automatically extracted from Mozilla's root certificates
@@ -14,7 +14,7 @@
1414
## Just configure this file as the SSLCACertificateFile.
1515
##
1616
## Conversion done with mk-ca-bundle.pl version 1.29.
17-
## SHA256: d59c5c83ce7a7635fa95521d8d245677949b86d5574bfcc6f855b6a48f2d5566
17+
## SHA256: 34a54d5191775c1bd37be6cfd3f09e831e072555dc3a2e51f4a2c4b0f8ada5cc
1818
##
1919

2020

@@ -3279,3 +3279,69 @@ PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C
32793279
r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh
32803280
4rsUecrNIdSUtUlD
32813281
-----END CERTIFICATE-----
3282+
3283+
Telia Root CA v2
3284+
================
3285+
-----BEGIN CERTIFICATE-----
3286+
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
3311+
-----END CERTIFICATE-----
3312+
3313+
D-TRUST BR Root CA 1 2020
3314+
=========================
3315+
-----BEGIN CERTIFICATE-----
3316+
MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE
3317+
RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy
3318+
MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV
3319+
BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG
3320+
ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7
3321+
dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu
3322+
QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t
3323+
MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu
3324+
bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj
3325+
dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP
3326+
PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD
3327+
AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom
3328+
AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87
3329+
-----END CERTIFICATE-----
3330+
3331+
D-TRUST EV Root CA 1 2020
3332+
=========================
3333+
-----BEGIN CERTIFICATE-----
3334+
MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE
3335+
RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy
3336+
MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV
3337+
BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG
3338+
ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8
3339+
ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ
3340+
raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL
3341+
MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu
3342+
bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj
3343+
dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP
3344+
PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD
3345+
AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR
3346+
AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW
3347+
-----END CERTIFICATE-----

kirby/composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"description": "The Kirby 3 core",
44
"license": "proprietary",
55
"type": "kirby-cms",
6-
"version": "3.6.5",
6+
"version": "3.6.6",
77
"keywords": [
88
"kirby",
99
"cms",

kirby/composer.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

kirby/config/areas/site/dialogs.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616
'page.changeSort' => [
1717
'pattern' => 'pages/(:any)/changeSort',
1818
'load' => function (string $id) {
19-
$page = Find::page($id);
20-
$position = null;
19+
$page = Find::page($id);
2120

2221
if ($page->blueprint()->num() !== 'default') {
2322
throw new PermissionException([

kirby/panel/dist/js/index.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

kirby/src/Cms/Blueprint.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -289,13 +289,16 @@ public static function find(string $name): array
289289
$file = $kirby->extension('blueprints', $name);
290290
}
291291

292+
// callback option can be return array or blueprint file path
293+
if (is_callable($file) === true) {
294+
$file = $file($kirby);
295+
}
296+
292297
// now ensure that we always return the data array
293298
if (is_string($file) === true && F::exists($file) === true) {
294299
return static::$loaded[$name] = Data::read($file);
295300
} elseif (is_array($file) === true) {
296301
return static::$loaded[$name] = $file;
297-
} elseif (is_callable($file) === true) {
298-
return static::$loaded[$name] = $file($kirby);
299302
}
300303

301304
// neither a valid file nor array data

kirby/src/Cms/Roles.php

+7-1
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,20 @@ public static function factory(array $roles, array $inject = [])
9797
*/
9898
public static function load(string $root = null, array $inject = [])
9999
{
100+
$kirby = App::instance();
100101
$roles = new static();
101102

102103
// load roles from plugins
103-
foreach (App::instance()->extensions('blueprints') as $blueprintName => $blueprint) {
104+
foreach ($kirby->extensions('blueprints') as $blueprintName => $blueprint) {
104105
if (substr($blueprintName, 0, 6) !== 'users/') {
105106
continue;
106107
}
107108

109+
// callback option can be return array or blueprint file path
110+
if (is_callable($blueprint) === true) {
111+
$blueprint = $blueprint($kirby);
112+
}
113+
108114
if (is_array($blueprint) === true) {
109115
$role = Role::factory($blueprint, $inject);
110116
} else {

kirby/src/Http/Uri.php

+38-6
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ public function __clone()
130130
* Creates a new URI object
131131
*
132132
* @param array|string $props
133-
* @param array $inject
133+
* @param array $inject Additional props to inject if a URL string is passed
134134
*/
135135
public function __construct($props = [], array $inject = [])
136136
{
@@ -144,10 +144,7 @@ public function __construct($props = [], array $inject = [])
144144

145145
// parse the path and extract params
146146
if (empty($props['path']) === false) {
147-
$extract = Params::extract($props['path']);
148-
$props['params'] ??= $extract['params'];
149-
$props['path'] = $extract['path'];
150-
$props['slash'] ??= $extract['slash'];
147+
$props = static::parsePath($props);
151148
}
152149

153150
$this->setProperties($this->props = $props);
@@ -372,11 +369,17 @@ public function setHost(string $host = null)
372369
}
373370

374371
/**
375-
* @param \Kirby\Http\Params|string|array|null $params
372+
* @param \Kirby\Http\Params|string|array|false|null $params
376373
* @return $this
377374
*/
378375
public function setParams($params = null)
379376
{
377+
// ensure that the special constructor value of `false`
378+
// is never passed through as it's not supported by `Params`
379+
if ($params === false) {
380+
$params = [];
381+
}
382+
380383
$this->params = is_a($params, 'Kirby\Http\Params') === true ? $params : new Params($params);
381384
return $this;
382385
}
@@ -539,4 +542,33 @@ public function unIdn()
539542
}
540543
return $this;
541544
}
545+
546+
/**
547+
* Parses the path inside the props and extracts
548+
* the params unless disabled
549+
*
550+
* @param array $props
551+
* @return array Modified props array
552+
*/
553+
protected static function parsePath(array $props): array
554+
{
555+
// extract params, the rest is the path;
556+
// only do this if not explicitly disabled (set to `false`)
557+
if (isset($props['params']) === false || $props['params'] !== false) {
558+
$extract = Params::extract($props['path']);
559+
$props['params'] ??= $extract['params'];
560+
$props['path'] = $extract['path'];
561+
$props['slash'] ??= $extract['slash'];
562+
563+
return $props;
564+
}
565+
566+
// use the full path;
567+
// automatically detect the trailing slash from it if possible
568+
if (is_string($props['path']) === true) {
569+
$props['slash'] = substr($props['path'], -1, 1) === '/';
570+
}
571+
572+
return $props;
573+
}
542574
}

kirby/src/Toolkit/A.php

+23
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,29 @@ public static function last(array $array)
335335
return array_pop($array);
336336
}
337337

338+
/**
339+
* Returns a number of random elements from an array,
340+
* either in original or shuffled order
341+
*
342+
* @param array $array
343+
* @param int $count
344+
* @param bool $shuffle
345+
* @return array
346+
*/
347+
public static function random(array $array, int $count = 1, bool $shuffle = false): array
348+
{
349+
if ($shuffle) {
350+
return array_slice(self::shuffle($array), 0, $count);
351+
}
352+
353+
if ($count === 1) {
354+
$key = array_rand($array);
355+
return [$key => $array[$key]];
356+
}
357+
358+
return self::get($array, array_rand($array, $count));
359+
}
360+
338361
/**
339362
* Fills an array up with additional elements to certain amount.
340363
*

kirby/src/Toolkit/Collection.php

+19
Original file line numberDiff line numberDiff line change
@@ -870,6 +870,25 @@ public function query(array $arguments = [])
870870
return $result;
871871
}
872872

873+
/**
874+
* Returns a new collection consisting of random elements,
875+
* from the original collection, shuffled or ordered
876+
*
877+
* @param int $count
878+
* @param bool $shuffle
879+
* @return static
880+
*/
881+
public function random(int $count = 1, bool $shuffle = false)
882+
{
883+
if ($shuffle) {
884+
return $this->shuffle()->slice(0, $count);
885+
}
886+
887+
$collection = clone $this;
888+
$collection->data = A::random($collection->data, $count);
889+
return $collection;
890+
}
891+
873892
/**
874893
* Removes an element from the array by key
875894
*

kirby/src/Toolkit/Obj.php

+22-4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Kirby\Toolkit;
44

5+
use Kirby\Exception\InvalidArgumentException;
56
use stdClass;
67

78
/**
@@ -62,14 +63,31 @@ public function __get(string $property)
6263
}
6364

6465
/**
65-
* Property Getter
66+
* Gets one or multiple properties of the object
6667
*
67-
* @param string $property
68-
* @param mixed $fallback
68+
* @param string|array $property
69+
* @param mixed $fallback If multiple properties are requested:
70+
* Associative array of fallback values per key
6971
* @return mixed
7072
*/
71-
public function get(string $property, $fallback = null)
73+
public function get($property, $fallback = null)
7274
{
75+
if (is_array($property)) {
76+
if ($fallback === null) {
77+
$fallback = [];
78+
}
79+
80+
if (!is_array($fallback)) {
81+
throw new InvalidArgumentException('The fallback value must be an array when getting multiple properties');
82+
}
83+
84+
$result = [];
85+
foreach ($property as $key) {
86+
$result[$key] = $this->$key ?? $fallback[$key] ?? null;
87+
}
88+
return $result;
89+
}
90+
7391
return $this->$property ?? $fallback;
7492
}
7593

kirby/vendor/composer/installed.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php return array(
22
'root' => array(
3-
'pretty_version' => '3.6.5',
4-
'version' => '3.6.5.0',
3+
'pretty_version' => '3.6.6',
4+
'version' => '3.6.6.0',
55
'type' => 'kirby-cms',
66
'install_path' => __DIR__ . '/../../',
77
'aliases' => array(),
@@ -29,8 +29,8 @@
2929
'dev_requirement' => false,
3030
),
3131
'getkirby/cms' => array(
32-
'pretty_version' => '3.6.5',
33-
'version' => '3.6.5.0',
32+
'pretty_version' => '3.6.6',
33+
'version' => '3.6.6.0',
3434
'type' => 'kirby-cms',
3535
'install_path' => __DIR__ . '/../../',
3636
'aliases' => array(),

0 commit comments

Comments
 (0)