Upgrade to 3.2.0
This commit is contained in:
@@ -25,7 +25,7 @@ return function (App $app) {
|
||||
/**
|
||||
* Converts the field value into a proper boolean and inverts it
|
||||
*
|
||||
* @param Field $field
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return boolean
|
||||
*/
|
||||
'isFalse' => function (Field $field): bool {
|
||||
@@ -35,7 +35,7 @@ return function (App $app) {
|
||||
/**
|
||||
* Converts the field value into a proper boolean
|
||||
*
|
||||
* @param Field $field
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return boolean
|
||||
*/
|
||||
'isTrue' => function (Field $field): bool {
|
||||
@@ -58,7 +58,7 @@ return function (App $app) {
|
||||
/**
|
||||
* Parses the field value with the given method
|
||||
*
|
||||
* @param Field $field
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @param string $method [',', 'yaml', 'json']
|
||||
* @return array
|
||||
*/
|
||||
@@ -76,7 +76,7 @@ return function (App $app) {
|
||||
/**
|
||||
* Converts the field value into a proper boolean
|
||||
*
|
||||
* @param Field $field
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @param bool $default Default value if the field is empty
|
||||
* @return bool
|
||||
*/
|
||||
@@ -88,27 +88,30 @@ return function (App $app) {
|
||||
/**
|
||||
* Converts the field value to a timestamp or a formatted date
|
||||
*
|
||||
* @param Field $field
|
||||
* @param string $format PHP date formatting string
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @param string|null $format PHP date formatting string
|
||||
* @param string|null $fallback Fallback string for `strtotime` (since 3.2)
|
||||
* @return string|int
|
||||
*/
|
||||
'toDate' => function (Field $field, string $format = null) use ($app) {
|
||||
if (empty($field->value) === true) {
|
||||
'toDate' => function (Field $field, string $format = null, string $fallback = null) use ($app) {
|
||||
if (empty($field->value) === true && $fallback === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$time = empty($field->value) === true ? strtotime($fallback) : $field->toTimestamp();
|
||||
|
||||
if ($format === null) {
|
||||
return $field->toTimestamp();
|
||||
return $time;
|
||||
}
|
||||
|
||||
return $app->option('date.handler', 'date')($format, $field->toTimestamp());
|
||||
return $app->option('date.handler', 'date')($format, $time);
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns a file object from a filename in the field
|
||||
*
|
||||
* @param Field $field
|
||||
* @return File|null
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\Cms\File|null
|
||||
*/
|
||||
'toFile' => function (Field $field) {
|
||||
return $field->toFiles()->first();
|
||||
@@ -117,7 +120,9 @@ return function (App $app) {
|
||||
/**
|
||||
* Returns a file collection from a yaml list of filenames in the field
|
||||
*
|
||||
* @return Files
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @param string $separator
|
||||
* @return Kirby\Cms\Files
|
||||
*/
|
||||
'toFiles' => function (Field $field, string $separator = 'yaml') {
|
||||
$parent = $field->parent();
|
||||
@@ -135,7 +140,7 @@ return function (App $app) {
|
||||
/**
|
||||
* Converts the field value into a proper float
|
||||
*
|
||||
* @param Field $field
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @param float $default Default value if the field is empty
|
||||
* @return float
|
||||
*/
|
||||
@@ -147,7 +152,7 @@ return function (App $app) {
|
||||
/**
|
||||
* Converts the field value into a proper integer
|
||||
*
|
||||
* @param Field $field
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @param int $default Default value if the field is empty
|
||||
* @return int
|
||||
*/
|
||||
@@ -159,7 +164,7 @@ return function (App $app) {
|
||||
/**
|
||||
* Wraps a link tag around the field value. The field value is used as the link text
|
||||
*
|
||||
* @param Field $field
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @param mixed $attr1 Can be an optional Url. If no Url is set, the Url of the Page, File or Site will be used. Can also be an array of link attributes
|
||||
* @param mixed $attr2 If `$attr1` is used to set the Url, you can use `$attr2` to pass an array of additional attributes.
|
||||
* @return string
|
||||
@@ -183,8 +188,8 @@ return function (App $app) {
|
||||
/**
|
||||
* Returns a page object from a page id in the field
|
||||
*
|
||||
* @param Field $field
|
||||
* @return Page|null
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\Cms\Page|null
|
||||
*/
|
||||
'toPage' => function (Field $field) use ($app) {
|
||||
return $field->toPages()->first();
|
||||
@@ -193,8 +198,9 @@ return function (App $app) {
|
||||
/**
|
||||
* Returns a pages collection from a yaml list of page ids in the field
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @param string $separator Can be any other separator to split the field value by
|
||||
* @return Pages
|
||||
* @return Kirby\Cms\Pages
|
||||
*/
|
||||
'toPages' => function (Field $field, string $separator = 'yaml') use ($app) {
|
||||
return $app->site()->find(false, false, ...$field->toData($separator));
|
||||
@@ -202,6 +208,9 @@ return function (App $app) {
|
||||
|
||||
/**
|
||||
* Converts a yaml field to a Structure object
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\Cms\Structure
|
||||
*/
|
||||
'toStructure' => function (Field $field) {
|
||||
return new Structure(Yaml::decode($field->value), $field->parent());
|
||||
@@ -209,22 +218,29 @@ return function (App $app) {
|
||||
|
||||
/**
|
||||
* Converts the field value to a Unix timestamp
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return int
|
||||
*/
|
||||
'toTimestamp' => function (Field $field) {
|
||||
'toTimestamp' => function (Field $field): int {
|
||||
return strtotime($field->value);
|
||||
},
|
||||
|
||||
/**
|
||||
* Turns the field value into an absolute Url
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return string
|
||||
*/
|
||||
'toUrl' => function (Field $field) {
|
||||
'toUrl' => function (Field $field): string {
|
||||
return Url::to($field->value);
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts a user email address to a user object
|
||||
*
|
||||
* @return User|null
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\Cms\User|null
|
||||
*/
|
||||
'toUser' => function (Field $field) use ($app) {
|
||||
return $field->toUsers()->first();
|
||||
@@ -233,7 +249,9 @@ return function (App $app) {
|
||||
/**
|
||||
* Returns a users collection from a yaml list of user email addresses in the field
|
||||
*
|
||||
* @return Users
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @param string $separator
|
||||
* @return Kirby\Cms\Users
|
||||
*/
|
||||
'toUsers' => function (Field $field, string $separator = 'yaml') use ($app) {
|
||||
return $app->users()->find(false, false, ...$field->toData($separator));
|
||||
@@ -261,7 +279,7 @@ return function (App $app) {
|
||||
* Escapes the field value to be safely used in HTML
|
||||
* templates without the risk of XSS attacks
|
||||
*
|
||||
* @param Field $field
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @param string $context html, attr, js or css
|
||||
*/
|
||||
'escape' => function (Field $field, string $context = 'html') {
|
||||
@@ -272,6 +290,12 @@ return function (App $app) {
|
||||
/**
|
||||
* Creates an excerpt of the field value without html
|
||||
* or any other formatting.
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @param int $cahrs
|
||||
* @param boolean $strip
|
||||
* @param string $rep
|
||||
* @return Kirby\Cms\Field
|
||||
*/
|
||||
'excerpt' => function (Field $field, int $chars = 0, bool $strip = true, string $rep = '…') {
|
||||
$field->value = Str::excerpt($field->kirbytext()->value(), $chars, $strip, $rep);
|
||||
@@ -280,6 +304,9 @@ return function (App $app) {
|
||||
|
||||
/**
|
||||
* Converts the field content to valid HTML
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\Cms\Field
|
||||
*/
|
||||
'html' => function (Field $field) {
|
||||
$field->value = htmlentities($field->value, ENT_COMPAT, 'utf-8');
|
||||
@@ -288,6 +315,9 @@ return function (App $app) {
|
||||
|
||||
/**
|
||||
* Converts the field content from Markdown/Kirbytext to valid HTML
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\Cms\Field
|
||||
*/
|
||||
'kirbytext' => function (Field $field) use ($app) {
|
||||
$field->value = $app->kirbytext($field->value, [
|
||||
@@ -299,8 +329,12 @@ return function (App $app) {
|
||||
},
|
||||
|
||||
/**
|
||||
* Converts the field content from inline Markdown/Kirbytext to valid HTML
|
||||
* Converts the field content from inline Markdown/Kirbytext
|
||||
* to valid HTML
|
||||
* @since 3.1.0
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\Cms\Field
|
||||
*/
|
||||
'kirbytextinline' => function (Field $field) use ($app) {
|
||||
$field->value = $app->kirbytext($field->value, [
|
||||
@@ -313,6 +347,9 @@ return function (App $app) {
|
||||
|
||||
/**
|
||||
* Parses all KirbyTags without also parsing Markdown
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\Cms\Field
|
||||
*/
|
||||
'kirbytags' => function (Field $field) use ($app) {
|
||||
$field->value = $app->kirbytags($field->value, [
|
||||
@@ -325,6 +362,9 @@ return function (App $app) {
|
||||
|
||||
/**
|
||||
* Converts the field content to lowercase
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\Cms\Field
|
||||
*/
|
||||
'lower' => function (Field $field) {
|
||||
$field->value = Str::lower($field->value);
|
||||
@@ -333,6 +373,9 @@ return function (App $app) {
|
||||
|
||||
/**
|
||||
* Converts markdown to valid HTML
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\Cms\Field
|
||||
*/
|
||||
'markdown' => function (Field $field) use ($app) {
|
||||
$field->value = $app->markdown($field->value);
|
||||
@@ -341,6 +384,9 @@ return function (App $app) {
|
||||
|
||||
/**
|
||||
* Converts the field content to valid XML
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\Cms\Field
|
||||
*/
|
||||
'xml' => function (Field $field) {
|
||||
$field->value = Xml::encode($field->value);
|
||||
@@ -348,11 +394,13 @@ return function (App $app) {
|
||||
},
|
||||
|
||||
/**
|
||||
* Cuts the string after the given length and adds "…" if it is longer
|
||||
* Cuts the string after the given length and
|
||||
* adds "…" if it is longer
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @param int $length The number of characters in the string
|
||||
* @param string $appendix An optional replacement for the missing rest
|
||||
* @return Field
|
||||
* @return Kirby\Cms\Field
|
||||
*/
|
||||
'short' => function (Field $field, int $length, string $appendix = '…') {
|
||||
$field->value = Str::short($field->value, $length, $appendix);
|
||||
@@ -361,6 +409,9 @@ return function (App $app) {
|
||||
|
||||
/**
|
||||
* Converts the field content to a slug
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\cms\Field
|
||||
*/
|
||||
'slug' => function (Field $field) {
|
||||
$field->value = Str::slug($field->value);
|
||||
@@ -369,6 +420,9 @@ return function (App $app) {
|
||||
|
||||
/**
|
||||
* Applies SmartyPants to the field
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\cms\Field
|
||||
*/
|
||||
'smartypants' => function (Field $field) use ($app) {
|
||||
$field->value = $app->smartypants($field->value);
|
||||
@@ -377,6 +431,9 @@ return function (App $app) {
|
||||
|
||||
/**
|
||||
* Splits the field content into an array
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\cms\Field
|
||||
*/
|
||||
'split' => function (Field $field, $separator = ',') {
|
||||
return Str::split((string)$field->value, $separator);
|
||||
@@ -384,6 +441,9 @@ return function (App $app) {
|
||||
|
||||
/**
|
||||
* Converts the field content to uppercase
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\cms\Field
|
||||
*/
|
||||
'upper' => function (Field $field) {
|
||||
$field->value = Str::upper($field->value);
|
||||
@@ -391,7 +451,11 @@ return function (App $app) {
|
||||
},
|
||||
|
||||
/**
|
||||
* Avoids typographical widows in strings by replacing the last space with
|
||||
* Avoids typographical widows in strings by replacing
|
||||
* the last space with ` `
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return Kirby\cms\Field
|
||||
*/
|
||||
'widont' => function (Field $field) {
|
||||
$field->value = Str::widont($field->value);
|
||||
@@ -402,6 +466,9 @@ return function (App $app) {
|
||||
|
||||
/**
|
||||
* Parses yaml in the field content and returns an array
|
||||
*
|
||||
* @param Kirby\Cms\Field $field
|
||||
* @return array
|
||||
*/
|
||||
'yaml' => function (Field $field): array {
|
||||
return $field->toData('yaml');
|
||||
|
Reference in New Issue
Block a user