Array syntax in blueprints (filterBy method)

Hi folks,

I’ve done a few websites with kirby 3 but this is my first question. So thumbs up. Great work!

I was searching the whole docs about a general syntax about advanced queries in a blueprint file. In my case i need to filter files by extension.

Here is my example:

image:
  label: Bild
  type: files
  multiple: false
  query: page.files.filterBy('extension', 'in', array('jpg', 'svg'))
  required: true

The query is not working because the syntax “array” is not correct. Is it even possible to filter by array in blueprints?

Thanks for your help.

1 Like

Will be in the upcoming Kirby 3.2 release.

Current solution: create a custom files method or a page model.

almost relevant: have you tried:

query: page.images

?

1 Like

4 sure. But svgs are not images!

well, Kirby seems to consider them images: https://github.com/getkirby/kirby/blob/3.1.4/src/Toolkit/F.php#L71

Also: https://www.iana.org/assignments/media-types/media-types.xhtml#image

But if you want only jpg and svg in particular, then using page.images doesn’t really do the job.

I’d create a custom page method/model customImages (or whatever) that returns a set of filtered images.

Kirby 3.2 is supposed to be published next week…

The Kirby Docs say:
What is an image file?

svg

Sorry rasteiner, svgs are images and show up if I use

query: page.images

But I remember used that in previous projects. Must be a bug in the panel.