Populate select field with a text file?

What’s the best method for populating a blueprint select field with data from a text file? Ideally, I’d just have a text file with a list of values that get parsed by the blueprint.

You can’t do that directly within the blueprint, but you could create your own custom field http://getkirby.com/docs/panel/custom-form-fields that reads the data from the field and returns it. Or go for the data API see changelog http://getkirby.com/changelog/kirby-2-1-0

The data API looks promising, but I can’t get it to work properly.

My blueprint has the follow code:

category:
    label: Category
    type: select
    options: /assets/data/category.json

And the JSON file is…

{
  'key1' : 'value1',
  'key2' : 'value2'
}

The select box shows up, but has no options. Any thoughts?

I would have thought that passing a complete URL would do the trick but couldn’t get it to work.

[Edit:] It didn’t work on localhost, but once I copied it to a remote server with a “real” URL, it worked like a charm. Apparently, v::url expects a URL scheme with a domain name, so that http://localhost/kirby/ or whatever, doesn’t work and of course, relative paths won’t work at all.

Even with an absolute URL (http://domain.com/assets/data/category.json) it doesn’t work. In fact, when I do that it gives an error:

Does it say anything in your server error logs which might help to pinpoint the problem? As I said, it works for me after passing a real URL. You are on Kirby 2.1.0, aren’t you?

[Edit:] One more thing: Contrary to the changelog documentation, the key-value pairs need to be enclosed in double quotes instead of single quotes …

{
 "key1": "value1",
 "key2": "value2" 
}

OK, I fixed it. Logs showed Kirby was trying to use curl_init(), which I didn’t have installed. Now it works as expected.

Thanks for the help, texnixe.

edit: How do I mark this as “solved?”

Click on the edit button next to the headline of this post and select category “solved”.