I have a form on the front-end that allows users to create a page by uploading files and inputting text to a variety of fields. I have this mostly working however I would like to include a ‘videos’ field that allows the user to upload a youtube link and caption which is the same as the field in the panel
I’m creating a draft page like so in the controller
my issue is how do I convert content from fields submitted as a series of structure items? I thought I could mimic the text formatting of what’s written in the text file when I do this manually in the panel and add it that way but I’m not having much luck with that approach.
You will have to adapt the code an pass the yaml encode array to your data variable instead of updating inside the function, but you should get the idea how to fetch the original content of the field and add the new entries.
Or maybe I got this wrong and you want to create a sort of structure field in the frontend?
What I have is a textarea on the front end for videos with instructions to format the first line in the textarea as the video link, the second as a caption, then two line breaks followed by the second video link and so on…
Within the controller, I am then chopping this supplied info up and formatting it to match the expected structure field output…
-
link: https://vimeo.com/123456789
caption: >
Some text for the caption
-
link: https://vimeo.com/987654321
caption: >
Some text for the second video caption
I’m then saving that value into $data['videos'] and passing that with the rest of the $data as the content param with createChild and it does seem to submit and add all the various structure items as I can see and edit it the panel afterwards as expected.
Is there anything inherently wrong with that approach or have I just made it difficult for myself?